Review: - PowerPoint PPT Presentation

About This Presentation
Title:

Review:

Description:

How to create a TCP end point? ... How to specify the maximum number of connections for a socket? ... Different ways to build client/servers. How to get around ... – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 18
Provided by: wfa
Learn more at: http://www.cs.fsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Review:


1
  • Review
  • How to create a TCP end point?
  • What is the right format for sin_port and
    sin_addr in the sockaddr_in data structure?
  • How many different ways we can bind a socket?

2
  • How to specify the maximum number of connections
    for a socket?
  • How to find out the remote machine information?

3
  • Todays topic
  • Introduction to UDP
  • Some server design alternatives
  • Select

4
  • TCP Reliable byte stream service.
  • Different ways to build client/servers
  • How to get around blocking I/O
  • Assumption whatever sent will eventually be
    received!!
  • UDP Unreliable datagram service.
  • Data may get lost application may need to deal
    with more details in the communication.

5
  • Why UDP
  • Applications that do not need 100 reliability
    communication. E.g VoIP, video stream, DNS
    servers.
  • Applications care a lot about performance high
    performance computing (TCP cares too much about
    fairness).
  • Applications that need multicast or broadcast
    (TCP only supports point to point communication).

6
  • Basic UDP service interface
  • Socket, bind, sendto, recvfrom, close

UDP server client socket
socket bind sendto recvfrom
recvfrom Sendto close
TCP server client socket socket Bind
connect Listen
close close
7
  • include ltsys/socket.hgt
  • ssize_t recvfrom(int sockfd, void buff, size_t
    nbytes, int flags, struct sockaddr from,
    socklen_t addrlen)
  • ssize_t sendto(int sockfd, void buff, size_t
    nbytes, int flags, const struct sockaddr to,
    socklen_t addrlen)
  • See udpsender.c/udprecv.c for communication using
    UDP.

8
  • Server design alternatives concurrent and
    multiplexed server.
  • Concurrent server (see lect3/example5.c)
  • Use a new child process to handle a new
    connection requests.

9
  • Multiplexed Server The use of select.
  • I/O multiplexing check the file descriptor
    before performing a blocking operation (what
    happen to the client when a concurrent server
    clushs?).

10
  • The select function that allows
  • To detect any of the descriptors in the read set
    are ready for reading.
  • To detect any of the descriptors in the write set
    are ready for writing
  • To detect any of the descriptors in the error set
    have exception conditions pending.
  • To wait for a period for something to happen.

11
  • include ltsys/select.hgt
  • include ltsys/time.hgt
  • int select (int maxfdp1, fd_set readset, fd_set
    writeset, fd_set exceptset, struct timeval
    timeout)

12
  • Set the timeout value
  • Struct timeval
  • long tv_sec / seconds /
  • long tv_usec / microseconds /
  • Wait forever (blocking select) timeout NULL
  • Non blocking select (return right away tv_sec
    0 tv_usec 0
  • Wait for a certain amount of time tv_sec and
    tv_usec

13
  • Set the set of file descriptors value
  • void FD_ZERO(fd_set fdset)
  • void FD_SET(int fd, fd_set fdset)
  • void FD_CLR(int fd, fd_set fdset)
  • void FD_ISSET(int fd, fd_set fdset)

14
  • Maxfdp1 the maximum file descriptor number plus
    1. (can just specify a big number (64) if
    unknown).
  • Select clears the uninteresting file descriptors
    in the fd_sets always reset the fd_sets before
    calling select.

15
  • When is a socket ready for read?
  • The number of bytes in the socket is more than
    the low-water mark (can be set, default 1 for
    TCP/UDP socket)
  • Half of the connection is closed
  • Listening socket with nonzero of completed
    connections
  • Socket error.

16
  • When is a socket ready for write?
  • The available buffer space is larger than the
    low-water mark
  • Half the connection is closed
  • Error pending
  • Exception?
  • Out of band data exists.

17
  • A multiplexed server (multiserv.c)
  • A single process to handle everything including
    connection request and data processing.
  • Using select the check on all descriptors that
    might need communication.
  • Response to whatever from the clients.
Write a Comment
User Comments (0)
About PowerShow.com