140 likes | 371 Views
Advanced UNIX programming. Fall 2002, lecture 16 Instructor: Ashok Srinivasan. Acknowledgements: The syllabus and power point presentations are modified versions of those by T. Baker and X. Yuan. Announcements. Reading assignment Chapters 1 and 2 of Unix Network programming Chapters 3 and 4
E N D
Advanced UNIX programming Fall 2002, lecture 16 Instructor: Ashok Srinivasan Acknowledgements: The syllabus and power point presentations are modified versions of those by T. Baker and X. Yuan
Announcements • Reading assignment • Chapters 1 and 2 of Unix Network programming • Chapters 3 and 4 • No quiz Oct 7
Week 6 Topics • Introduction to UNIX network programming • Introduction • Overview of TCP/IP
Introduction • Application layer (telnet, ssh, http, ftp, etc) • Things that we use daily • Transport layer (TCP, UDP) • Allows processes (on different machines) to communicate (reliably or unreliably) with each other • Network layer (IPv4, IPv6) • Handles routing, fragmentation, and internetworking • Host to Network layer (Ethernet) • Communication between two machines that are directly connected
Introduction ... continued • The entities that implement each layer can be processes, system calls, hardware, etc • Protocol • Rules that govern how peer entities in the same layer (on different machines) communicate • Each layer provides services to the upper layer defined by the service interface • Example: TCP service interface is defined by a set of system calls • socket, bind, listen, accept, connect, read and write
Overview of TCP/IP • Some TCP/IP protocols: • TCP: transmission control protocol • Connection-oriented, reliable, full duplex, byte stream service • UDP: User datagram protocol • Connectionless, unreliable • IPv4: Internet Protocol, version 4. • The protocol that glues the Internet together. • Provides (unreliable) packet delivery service for TCP, UDP, ICMP, IGMP • IPv6: Internet Protocol, version 6. • 128 bits address, newer version of Internet Protocol
Overview of TCP/IP ... continued • Some TCP/IP protocols ... continued • ICMP: Internet Control Message Protocol • Handles errors and control information for IP (ping, traceroute) • IGMP: Internet Group Management Protocol • Used in IP multicast • Socket Programming • The use of TCP and UDP • Can also access the lower layers directly (raw socket)
UDP: User Datagram Protocol • Interface • socket, bind, sendto, recvfrom • Can also use the TCP interface (connect, read, write) • Unreliable, connectionless service • Data may be lost, duplicated, or reordered • Client and server do not have any long term relation • Can perform (unreliable) multicast
TCP: Transmission control protocol • Interface • socket, bind, listen, accept, connect, read, write, close • An analogy Socket: telephone Bind: assign telephone number to a telephone Listen: turn on the ringer so that you can hear the phone call Connect: dial a phone number Accept: answer the phone Read and write: listening and talking Close:
Reliable communication • Implementing reliable communication may require • Sequence number, acknowledgement, retransmission, timeout (RTT) • Sliding window protocol for efficiency • Flow control • Connection establishment and release
TCP connection establishment and termination • TCP connection establishment • Three way handshake • Figure 2.2 • TCP connection termination • Four way handshake • Can release the connection reliably • Practical solution: make the client wait for a while • Figure 2.3
TCP state transition Diagram (Figure 2.4 from text)
Packet exchange for TCP connection • See Figure 2.5 from text
Identifying a TCP connection • Need both • Source IP address and port • Destination IP address and port