EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (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)
2 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Outline Quiz#3 results Introduction to transport layer Multiplexing/demultiplexing Sliding window protocols
3 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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
4 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Transport Layer Our goals: Understand principles behind transport layer services: –multiplexing/demult iplexing –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
5 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Transport vs. Data Link Layer Similarities: deal with error control, sequencing, flow control Difference: operating environments Environment of the data link layer Environment of the transport layer
6 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Transport vs. Network Layer Network layer: logical communication between hosts Transport layer: logical communication between processes –Relies on, enhances, network layer services
7 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Internet Transport-Layer Protocols 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
8 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Multiplexing/Demultiplexing application transport network link physical P1 application transport network link physical application transport network link physical P2 P3 P4 P1 host 1 host 2 host 3 = process= socket delivering received segments to correct socket Demultiplexing at rcv host: gathering data from multiple sockets, enveloping data with header (later used for demultiplexing) Multiplexing at send host:
9 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao How Demultiplexing Works 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 source port #dest port # 32 bits application data (message) other header fields TCP/UDP segment format
10 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Principles of Reliable Data Transfer characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
11 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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
12 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Sliding Window Protocols Full-duplex: Use same connection for data in both directions (A B and B A) 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
13 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Sliding Window Protocols Each packet contains sequence number in ranges 0..2 n -1 (for n-bit sequence numbers) Sending window – list of consecutive sequence numbers of packets that sender is permitted to send st outstanding packet Last packet sent ack A new packet sent (if send window allows) Sent window enlarges when more packet is sent Sent window shrinks when the ack corresponding to the 1 st outstanding packet Is received
14 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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
15 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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)
16 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao One-Bit Sliding Window Protocol A sliding window of size 1, with a 3-bit sequence number Initially After first packet sent After first packet received After first ack received
17 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao One-Bit Sliding Window Protocol No duplicate, no omissions, no deadlock, but inefficient The notation is (seq, ack, packet number) An asterisk indicates where a packet is delivered Normal case Abnormal case
18 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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
19 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Pipelining and Error Recovery Go back n: Effective receiver window size is 1 Packets discarded
20 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Pipelining and Error Recovery Selective repeat Can you think of an alternative to go-back-n and selective-repeat? Packets buffered
21 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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
22 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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
23 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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
24 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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)
25 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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,
26 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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
27 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem Sender receives ack for 0-6, sends 7 Receiver receives 7, delivers 7 and old 0 (as new 0 !)
28 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem The problem is caused by the overlap of sequence number between the new receiving window and the old receiving window Overlap
29 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem Solution: –make sure no overlap when receiver advances its window –Make window size w =1/2 range of seq numbers No Overlap
30 Spring Semester 2007EEC-484/584: Computer NetworksWenbing Zhao 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