Presentation
Download
Report
Transcript Presentation
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