Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP. 1 Orientation • We move one layer up and look at the transport layer. User Process User Process User Process TCP User Process Application Layer UDP Transport Layer ICMP IP IGMP Network Layer ARP Hardware Interface RARP Link Layer Media 2 Orientation • Transport layer protocols are end-to-end protocols • They are only implemented at the hosts HOST HOST Application Application Transport Transport Network Data Link Network Data Link Network Data Link Data Link 3 Transport Protocols in the Internet • The two major transport protocols of the Internet are • • • • • • UDP - User Datagram Protocol datagram oriented unreliable, connectionless simple unicast and multicast useful only for few applications, e.g., multimedia applications used a lot for services – network management (SNMP), routing (RIP), naming (DNS), etc. • • • • • TCP - Transmission Control Protocol stream oriented reliable, connection-oriented complex only unicast used for most Internet applications: – web (http), email (smtp), file transfer (ftp), terminal (telnet), etc. 4 UDP Format IP header UDP header 20 bytes UDP data 8 bytes Source Port Number Destination Port Number UDP message length Checksum DATA 0 15 16 31 • Port numbers identify sending and receiving applications (processes). Maximum port number is 216-1= 65,535 • Message Length is at least 8 bytes (I.e., Data field can be empty) and at most 65,535 • Checksum is for header (of UDP and some of the IP header fields) 5 Format of TCP segments • TCP segments have a min. 20 byte header with ≥ 0 bytes of data. IP header TCP header 20 bytes TCP data 20 bytes 0 15 16 Source Port Number 31 Destination Port Number Sequence number (32 bits) header length 0 Flags TCP checksum 20 bytes Acknowledgement number (32 bits) window size urgent pointer Options (if any) DATA 6 Port Numbers • UDP (and TCP) use port numbers to identify applications • A globally unique address for applications consists of <IP address, type of protocol, port number> • 65,535 ports per protocol User Process User Process User Process TCP User Process User Process UDP IP User Process Demultiplex based on port number Demultiplex based on Protocol field in IP header 7 UDP - User Datagram Protocol • UDP is supports unreliable transmissions of datagrams • UDP merely extends the host-to-to-host delivery service of IP datagram to an application-to-application service • The only thing that UDP adds to IP datagrams is multiplexing and demultiplexing (by adding port numbers) Applications Applications UDP UDP IP IP IP IP IP 8 New Transport Protocols • New Transport Protocols were added: – DCCP (2006): Datagram Congestion Control Protocol – SCTP (2000): Stream Control Transmission Protocol User Process User Process User Process User Process Application Layer DCCP SCTP TCP UDP Transport Layer ICMP IP IGMP Network Layer ARP Hardware Interface RARP Link Layer Media 9 DCCP and SCTP • Provide more service than UDP, but less than TCP • • • • • • • • • SCTP “TCP for datagrams” connection-oriented (full duplex) more delivery options than TCP Message-oriented – preserves message boundaries Supports multiple flows (“streams” per connection) unreliable or reliable ordered or partially ordered congestion control support for multi-homing Used for signaling in telephone networks DCCP “UDP with congestion control” “TCP without reliable byte stream” • • • • • connection-oriented message-oriented unreliable unordered congestion control • Intended for applications that transfer large volumes of data 10 SCTP Format IP header SCTP header 20 bytes 12 bytes SCTP data Source Port Destination Port Verification tag Checksum Type Flags Chunk 1 • Many different chunk types – Data chunks – Control chunks • Each chunk has a typedependent header Length Data ... Type Chunk N Flags Length Data 0 15 16 31 11 DCCP Format DCCP header IP header 20 bytes 0 DCCP data 12 or 16 bytes 15 16 Source Port Number 31 Destination Port Number Data offset CCVal CsCov 0 type X 0 Checksum Sequence number Options (if any) DATA 12