300 likes | 307 Views
Learn about transport layer services, multiplexing/demultiplexing, reliable data transfer, and sliding window protocols in computer networks. Understand TCP, UDP, sliding window protocols and more. A comprehensive guide to foundational networking concepts.
E N D
EEC-484/584Computer Networks Lecture 14 Wenbing Zhao wenbing@ieee.org (Part of the slides are based on Drs. Kurose & Ross’s slides for their Computer Networking book, and on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall)
Outline • Quiz#3 results • Introduction to transport layer • Multiplexing/demultiplexing • Sliding window protocols EEC-484/584: Computer Networks
EEC 484/584 Quiz#3 Results • High: 98, low: 50, average: 85 • Q1: 26/30, Q2: 26/30, Q3: 8/10, Q4: 8/10, Q5: 18/20 EEC-484/584: Computer Networks
Our goals: Understand principles behind transport layer services: multiplexing/demultiplexing reliable data transfer flow control congestion control Learn about transport layer protocols in the Internet: UDP: connectionless transport TCP: connection-oriented transport TCP congestion control Transport Layer EEC-484/584: Computer Networks
Transport vs. Data Link Layer • Similarities: deal with error control, sequencing, flow control • Difference: operating environments Environment of the transport layer Environment of the data link layer EEC-484/584: Computer Networks
Network layer: logical communication between hosts Transport layer: logical communication between processes Relies on, enhances, network layer services Transport vs. Network Layer EEC-484/584: Computer Networks
Reliable, in-order delivery (TCP) congestion control flow control connection setup Unreliable, unordered delivery: UDP no-frills extension of “best-effort” IP Services not available: delay guarantees bandwidth guarantees 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 Internet Transport-Layer Protocols EEC-484/584: Computer Networks
Multiplexing at send host: Demultiplexing at rcv host: Multiplexing/Demultiplexing delivering received segments to correct socket gathering data from multiple sockets, enveloping data with header (later used for demultiplexing) = socket = process application P4 application application P1 P2 P3 P1 transport transport transport network network network link link link physical physical physical host 3 host 2 host 1 EEC-484/584: Computer Networks
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 Host uses IP addresses & port numbers to direct segment to appropriate socket How Demultiplexing Works 32 bits source port # dest port # other header fields application data (message) TCP/UDP segment format EEC-484/584: Computer Networks
characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt) Principles of Reliable Data Transfer EEC-484/584: Computer Networks
Reliable Data Transfer:Sliding Window Protocols • Recall that we have studies several simplex reliable transfer protocols in data link layer • Here we study a few more realistic protocols • A One-Bit Sliding Window Protocol • A Protocol Using Go Back n • A Protocol Using Selective Repeat EEC-484/584: Computer Networks
Sliding Window Protocols • Full-duplex: Use same connection for data in both directions (AB and BA) • Interleave data and ack packets • B piggybacks its ack for A’s packet onto B’s next packet • Savings of header in separate ack packet • If B sends data infrequently, use timeout to determine when B should send ack in separate ack packet EEC-484/584: Computer Networks
1st outstanding packet Last packet sent 0 3 6 2 5 1 4 7 0 3 6 2 5 1 4 7 A new packet sent (if send window allows) 0 3 6 2 5 1 4 7 0 3 6 2 5 1 4 7 Sent window shrinks when the ack corresponding to the 1st outstanding packet Is received Sent window enlarges when more packet is sent Sliding Window Protocols • Each packet contains sequence number in ranges 0..2n-1 (for n-bit sequence numbers) • Sending window– list of consecutive sequence numbers of packets that sender is permitted to send 3 ack EEC-484/584: Computer Networks
Sliding Window Protocols • When new packet arrives from application layer, it is given next highest sequence number, and upper edge of window is incremented • When ack arrives from receiver, lower edge of window is incremented • Within sending window, packets sent but not acked • Sender must keep those packets for possible retransmission • If max window size = w, need w buffers EEC-484/584: Computer Networks
0 3 6 2 5 1 4 7 Sliding Window Protocols • Receiving window– list of consecutive sequence numbers of packets that receiver is permitted to accept • When packet with (seq num = lower edge of window) arrives • Packet is passed to higher layer • Ack is generated • Window slid down by 1 (remains same size as was initially) 3 0 3 6 2 5 1 4 7 EEC-484/584: Computer Networks
One-Bit Sliding Window Protocol A sliding window of size 1, with a 3-bit sequence number After first ack received After first packet sent After first packet received Initially EEC-484/584: Computer Networks
One-Bit Sliding Window Protocol No duplicate, no omissions, no deadlock, but inefficient Normal case Abnormal case • The notation is (seq, ack, packet number) • An asterisk indicates where a packet is delivered EEC-484/584: Computer Networks
Sliding Window Protocols: Pipelining • Problem of one-bit sliding window protocol: • Sender blocks till receives acks • Solution: pipelining • Allow sender to send up to w packets before blocking • With pipelining, if packet in middle is lost or damaged, what to do with the packets following it ? • Solution: two strategies • Go Back n - all the packets following it are discarded • Selective repeat–nack the lost/damaged packet and retransmit that packet EEC-484/584: Computer Networks
Pipelining and Error Recovery Go back n: Effective receiver window size is 1 Packets discarded EEC-484/584: Computer Networks
Pipelining and Error Recovery Selective repeat Packets buffered Can you think of an alternative to go-back-n and selective-repeat? EEC-484/584: Computer Networks
Go Back n • Sender • Stores all packets in output buffer • Must get acks in order in which packets are sent • Receiver • Discards all packets following lost or damaged one • Works well • If transmission errors rare and few retransmissions • If lot of traffic in both directions EEC-484/584: Computer Networks
0 3 6 2 5 1 4 7 Selective Repeat • Receiver accepts and buffers packets following lost or damaged packets • Both sender and receiver maintain windows • Sender’s window starts at 0, grows to MAX SEQ • Receiver’s window fixed at MAX SEQ • Receiver has buffer reserved for each seq num in its window 0 3 6 2 5 1 4 7 EEC-484/584: Computer Networks
0 3 6 2 5 1 4 7 Selective Repeat • When packet arrives, receiver checks if seq num in window • If so and if not already received, this packet is accepted and stored • If all lower numbered packets delivered, this packet is delivered as well 5 3 0 3 6 2 5 0 3 6 1 4 7 2 5 1 4 7 EEC-484/584: Computer Networks
0 0 3 3 6 6 2 2 5 5 1 1 4 4 7 7 Non-Sequential Receive Problem • New range of valid sequence numbers for receiver can overlap old range • Overlap can contain duplicates • Example: n = 3-bit seq num (8 possible numbers, 0 through 7, back to 0) EEC-484/584: Computer Networks
0 0 3 3 6 6 2 2 5 5 1 1 4 4 7 7 0 3 6 0 3 6 2 5 2 5 1 4 7 1 4 7 Non-Sequential Receive Problem • Sender sends 0,1,2,3,4,5,6 • Receiver • Receives 0,1,2,3,4,5,6 • Sends ack but ack gets lost • Expects to receive 7,0,1,2,3,4,5 0 1 2 3 4 5 6 EEC-484/584: Computer Networks
0 3 6 0 3 6 2 5 2 5 1 4 7 1 4 7 Non-Sequential Receive Problem • Sender times out, retransmits 0,1,2,3,4,5,6 • Receiver checks 0 is in new window, thinks new 0 because has sent ack for old 6, waits for 7 0 1 2 3 4 5 6 EEC-484/584: Computer Networks
0 3 6 0 3 6 2 5 2 5 1 4 7 1 4 7 0 3 6 0 3 6 2 5 2 5 1 4 7 1 4 7 Non-Sequential Receive Problem • Sender receives ack for 0-6, sends 7 • Receiver receives 7, delivers 7 and old 0 (as new 0 !) 7 EEC-484/584: Computer Networks
0 0 3 3 6 6 2 2 5 5 1 1 4 4 7 7 0 3 6 0 3 6 2 5 2 5 1 4 7 1 4 7 Non-Sequential Receive Problem • The problem is caused by the overlap of sequence number between the new receiving window and the old receiving window 0 1 2 3 4 5 6 Overlap Overlap EEC-484/584: Computer Networks
0 0 3 3 6 6 2 2 5 5 1 1 4 4 7 7 0 3 6 0 3 6 2 5 2 5 1 4 7 1 4 7 No Overlap Non-Sequential Receive Problem • Solution: • make sure no overlap when receiver advances its window • Make window size w =1/2 range of seq numbers 0 1 2 3 EEC-484/584: Computer Networks
Selective Repeat • If no reverse traffic before timer goes off, separate ack is sent • When receiver suspects error, sends NAK back to sender (request for retransmission) • Two circumstances that trigger NAK • Damaged packet arrives • Packet other than expected one arrives, suspect expected one is lost • Receiver sends only one NAK for packet expected EEC-484/584: Computer Networks