80 likes | 198 Views
Introduction to Transport Layer. Recall that NL is responsible for forwarding a packet from one HOST to another HOST But it is the applications that communicate! How do you make applications on HOSTs to communicate? Need a new layer, called the “Transport Layer”
E N D
Recall that NL is responsible for forwarding a packet from one HOST to another HOST But it is the applications that communicate! How do you make applications on HOSTs to communicate? Need a new layer, called the “Transport Layer” Responsible for providing communication between applications running in different hosts A Web Browser talking to a Web Server Network Link Physical Network Link Physical Network Link Physical Network Link Physical Network Link Physical Transport Network Link Physical Transport Network Link Physical Transport Network Link Physical Web Browser Web Server FTP Client Transport Layer: Motivation B FTP Server A R1 R2 C
provide logical communication between app processes running on different hosts transport protocols run in end systems send side: breaks app messages into segments, passes to network layer rcv side: reassembles segments into messages, passes to app layer more than one transport protocol available to apps Internet: UDP, TCP, SCTP application transport network data link physical application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical logical end-end transport Transport services and protocols
network layer: logical communication between hosts transport layer: logical communication between processes relies on, enhances, network layer services Household analogy: 12 kids sending letters to 12 kids processes = kids app messages = letters in envelopes hosts = houses transport protocol = Ann and Bill network-layer protocol = postal service Transport vs. network layer
Transport Layer Functions • Demultiplexing to upper layer -- Obligatory • Deliver an incoming packet to the correct application • Define Delivery Sematics and Implement them • Reliable vs. unreliable • Unicast vs. multicast • Ordered vs. unordered • Flow control -- Optional • Do not allow sender to overrun receiver’s buffer resources • Congestion control -- Optional • Do not allow the sender to overrun the network capacity
Internet transport-layer protocols • User Datagram Protocol (UDP) • unreliable (“best-effort”), • unordered • unicast or multicast delivery • no flow, no congestion control • Transmission Control Protocol (TCP) • reliable • in-order • unicast • flow & congestion control • Stream Control Transport Protocol (SCTP) (will not cover in class) • RFC 2960 • reliable • optional ordering • unicast • flow & congestion control
Why need demultiplexing? Assume you are running 3 network applications all using the same transport protocol, e.g., TCP FTP Server, Telnet Client, Web Browser When a packet arrives at a host, it moves up the protocol stack until it reaches the transport layer, e.g., TCP Now, the transport layer needs a way to determine which application the packet needs to be delivered. This is the demultiplexing problem. Recall that all protocol layers perform multiplexing/demultiplexing: e.g., IP needs to determine which transport protocol a given packet needs to be delivered, UDP or TCP? P2 P2 P3 P1 P1 P3 Multiplexing/demultiplexing – Why? transport network link physical Demultiplexing transport network link physical Multiplexing
host receives IP datagrams each datagram has source IP address, destination IP address each datagram carries 1 transport-layer segment each segment has source, destination port number(well-known port numbers for specific applications) Port #s: 16 bits 65535 ports 0-1023 are called well-known and are reserved HTTP uses port 80 Telnet uses port 23 RFC 1700 lists the reserved ports Demultiplexing: How? 32 bits source port # dest port # other header fields application data (message) TCP/UDP segment format