Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao [email protected] (Part of the slides are based on Drs. Kurose & Ross’s slides for their Computer Networking book) 2 Outline • Reminder: – April 7 5pm: CSU IS&T data center tour • • • • • Quiz#3 results Introduction to transport layer Multiplexing/demultiplexing Reliable data transfer mechanisms Sliding window protocols (part I) Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 3 EEC 584 Quiz#3 Results • High: 100 (9 students!), low: 67, average: 93.4 • Q1: 46.9/50, Q2: 17.6/20, Q3: 9.7/10, Q4: 19.2/20 Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 4 Transport Layer Our goals: • Understand principles behind transport layer services: – multiplexing/demult iplexing – reliable data transfer – flow control – congestion control Spring Semester 2008 • Learn about transport layer protocols in the Internet: – UDP: connectionless transport – TCP: connectionoriented transport – TCP congestion control EEC-484/584: Computer Networks Wenbing Zhao 5 Transport vs. Data Link Layer • Similarities: deal with error control, sequencing, flow control • Difference: operating environments Environment of the data link layer Spring Semester 2008 Environment of the transport layer EEC-484/584: Computer Networks Wenbing Zhao 6 Transport vs. Network Layer • Network layer: logical communication between hosts • Transport layer: logical communication between processes – Relies on, enhances, network layer services Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao Internet Transport-Layer Protocols • Reliable, in-order delivery (TCP) application transport network data link physical – congestion control – flow control – connection setup • Unreliable, unordered delivery: UDP – no-frills extension of “besteffort” IP • Services not available: – delay guarantees – bandwidth guarantees Spring Semester 2008 EEC-484/584: Computer Networks network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical Wenbing Zhao 7 8 Multiplexing/Demultiplexing Multiplexing at send host: gathering data from multiple sockets, enveloping data with header (later used for demultiplexing) Demultiplexing at rcv host: delivering received segments to correct socket = socket application transport network link = process P3 P1 P1 application P2 transport network P4 application transport network link link physical host 1 Spring Semester 2008 physical host 2 EEC-484/584: Computer Networks physical host 3 Wenbing Zhao 9 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 Spring Semester 2008 32 bits source port # dest port # other header fields application data (message) TCP/UDP segment format EEC-484/584: Computer Networks Wenbing Zhao 10 Reliable Data Transfer characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt) Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 11 Reliable Data Transfer • Basic reliable data transfer mechanisms – Acknowledgement – Retransmission – Sequence numbers Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 12 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 • Each packet contains sequence number in ranges 0..2n-1 (for n-bit sequence numbers) Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 13 Sliding Window Protocols: Sending • Sending window – Start from 0 and grow to a maximum value – List of consecutive sequence numbers of outstanding packets 1st outstanding Last packet packet sent 0 0 1 2 3 4 5 6 1 1 2 3 4 5 6 3 4 5 6 7 4 5 6 7 7 A new packet sent (if send window allows) 0 2 0 7 1 ack 3 2 3 Sent window shrinks when the ack corresponding Sent window enlarges when more packet is sent to the 1st outstanding packet Is received Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 14 Sliding Window Protocols: Sending • 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 Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 15 Sliding Window Protocols: Receiving • 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 Spring Semester 2008 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 EEC-484/584: Computer Networks Wenbing Zhao 16 Reliable Data Transfer: Sliding Window Protocols • A One-Bit Sliding Window Protocol • A Protocol Using Go Back n • A Protocol Using Selective Repeat Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 17 One-Bit Sliding Window Protocol A sliding window of size 1, with a 3-bit sequence number Initially Spring Semester 2008 After first packet sent After first packet received EEC-484/584: Computer Networks After first ack received Wenbing Zhao 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 Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 19 Pipelining and Error Recovery Go back n: Effective receiver window size is 1 Packets discarded Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 20 Pipelining and Error Recovery Selective repeat Packets buffered Can you think of an alternative to go-back-n and selective-repeat? Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 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 Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 22 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 1 Spring Semester 2008 2 3 4 5 6 7 EEC-484/584: Computer Networks Wenbing Zhao 23 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 0 1 2 3 4 Spring Semester 2008 5 3 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 EEC-484/584: Computer Networks Wenbing Zhao 24 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) 0 1 Spring Semester 2008 2 3 4 5 6 7 0 1 2 EEC-484/584: Computer Networks 3 4 5 6 7 Wenbing Zhao 25 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 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 26 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 Spring Semester 2008 3 4 5 6 7 0 1 2 3 4 5 6 0 1 2 3 4 5 6 EEC-484/584: Computer Networks 7 Wenbing Zhao 27 Non-Sequential Receive Problem • Sender receives ack for 0-6, sends 7 • Receiver receives 7, delivers 7 and old 0 (as new 0 !) 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 28 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 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Overlap Spring Semester 2008 Overlap EEC-484/584: Computer Networks Wenbing Zhao 29 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 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 No Overlap Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao 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 Spring Semester 2008 EEC-484/584: Computer Networks Wenbing Zhao