1 / 12

CS 5565 Network Architecture and Protocols

Understand key principles of reliable data transfer protocols, including rdt1-3 variations, ARQ protocol, and pipelining for increased utilization in networking. Explore lossy channels, error detection, and receiver feedback mechanisms.

Download Presentation

CS 5565 Network Architecture and Protocols

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. CS 5565Network Architecture and Protocols Godmar Back Lecture 17

  2. Announcements • Problem Set 1 graded • Project 1A feedback by Monday • Project 1B due March 17, 11:59pm • Will put code online this evening • Problem Set 2 due Mar 4 12:20pm • Reading Assignment: Chapter 3 • 3.1-3.3 already covered • 3.4 now CS 5565 Spring 2006

  3. important in app., transport, link layers top-10 list of important networking topics! characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt) Principles of Reliable Data Transfer CS 5565 Spring 2006

  4. Evolution of Assumptions perfect channel error detection: checksums, receiver feedback: acknowledgements; retransmissions Automatic Repeat reQuest (ARQ protocol) • rdt1-3 are stop-and-waitprotocols rdt1.0 bit errors rdt2.0 (redundant) retransmissions duplicates sequence numbers 0/1: “alternating bit” protocol corrupted acks rdt2.1 eliminate NAK: use ACK+seq num ---- rdt2.2 timeouts lossy channel rdt3.0 lossy channel with bit errors CS 5565 Spring 2006

  5. New assumption:underlying channel can also lose packets (data or ACKs) checksum, seq. #, ACKs, retransmissions will be of help, but not enough Approach: sender waits “reasonable” amount of time for ACK retransmits if no ACK received in this time if pkt (or ACK) just delayed (not lost): retransmission will be duplicate, but use of seq. #’s already handles this receiver must specify seq # of pkt being ACKed requires countdown timer rdt3.0: Channels w/ Errors and Loss CS 5565 Spring 2006

  6. Wait for ACK0 Wait for ACK1 Wait for call 1 from above Wait for call 0 from above rdt3.0 Sender FSM rdt_send(data) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) ) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) start_timer L rdt_rcv(rcvpkt) L timeout udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) stop_timer stop_timer timeout udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) L rdt_send(data) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,0) ) sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) start_timer L CS 5565 Spring 2006

  7. rdt3.0 in action CS 5565 Spring 2006

  8. rdt3.0 in action (2) CS 5565 Spring 2006

  9. rdt3.0 works, but performance stinks example: 1 Gbps link, 15 ms e-e prop. delay, 1KB packet: Performance of rdt3.0 L (packet length in bits) 8kb/pkt T = = = 8 microsec transmit R (transmission rate, bps) 10**9 b/sec • U sender: utilization – fraction of time sender busy sending • 1KB pkt every 30 msec -> 33kB/sec thruput over 1 Gbps link • network protocol limits use of physical resources! CS 5565 Spring 2006

  10. rdt3.0: stop-and-wait operation sender receiver first packet bit transmitted, t = 0 last packet bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R CS 5565 Spring 2006

  11. Pipelining: sender allows multiple, “in-flight”, yet-to-be-acknowledged pkts range of sequence numbers must be increased buffering at sender and/or receiver Two generic forms of pipelined protocols: Go-Back-N (“GBN”), Selective Repeat (“SR”) Pipelined Protocols CS 5565 Spring 2006

  12. Pipelining: Increased Utilization sender receiver first packet bit transmitted, t = 0 last bit transmitted, t = L / R first packet bit arrives RTT last packet bit arrives, send ACK last bit of 2nd packet arrives, send ACK last bit of 3rd packet arrives, send ACK ACK arrives, send next packet, t = RTT + L / R Increase utilization by a factor of 3! CS 5565 Spring 2006

More Related