1 / 30

EEC-484/584 Computer Networks

EEC-484/584 Computer 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

teide
Download Presentation

EEC-484/584 Computer Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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)

  2. Outline • Quiz#3 results • Introduction to transport layer • Multiplexing/demultiplexing • Sliding window protocols EEC-484/584: Computer Networks

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt) Principles of Reliable Data Transfer EEC-484/584: Computer Networks

  11. 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

  12. 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 EEC-484/584: Computer Networks

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. Pipelining and Error Recovery Go back n: Effective receiver window size is 1 Packets discarded EEC-484/584: Computer Networks

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

More Related