1 The utopia protocol  Unrealistic assumptions: –processing time ignored –infinite buffer space available –simplex: data transmitted in one direction.

Slides:



Advertisements
Similar presentations
Data Link Layer Protocols Flow Control in Data Link Layer.
Advertisements

Network Operations & administration CS 4592 Lecture 15 Instructor: Ibrahim Tariq.
Primitives for Achieving Reliability 3035/GZ01 Networked Systems Kyle Jamieson Department of Computer Science University College London.
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Go-Back-N Improve Stop-and-Wait by not waiting!
Chapter 11 Data Link Control
Data link control. Data Link Control –Flow Control how much data may sent –Error Control How can error be detected and corrected.
Flow and Error Control. Flow Control Flow control coordinates the amount of data that can be sent before receiving acknowledgement It is one of the most.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Chapter 11 Data Link Control and Protocols.
ELEN 602 Lecture 5 Review of last lecture –Error Detection -- parity/CRC etc. Automatic Retransmission Request (ARQ) Reading: Chap
Data Link Layer Review Advanced Computer Networks.
Networks: Data Link Layer1 Data Link Layer. Networks: Data Link Layer2 Data Link Layer Provides a well-defined service interface to the network layer.
Protocols. Basics Defining Interactions VERTICAL Application Presentation Session Transport Network Data Link Physical Please do this for me OK It’s.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 13 Introduction to Computer Networks.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
Transport Layer3-1 Reliable Data Transfer. Transport Layer3-2 Principles of Reliable data transfer r important in app., transport, link layers r top-10.
3-1 Sect. 3.4 Principles of reliable data transfer Computer Networking: A Top Down Approach Featuring the Internet, 1 st edition. Jim Kurose, Keith Ross.
2: Application Layer 1 1DT066 Distributed Information System Chapter 3 Transport Layer.
1 Reliable Data Transfer. 2 r Problem: Reliability  Want an abstraction of a reliable link even though packets can be corrupted or get lost r Solution:
Link-Level Flow and Error Control
Principles of Reliable Data Transfer. Reliable Delivery Making sure that the packets sent by the sender are correctly and reliably received by the receiver.
Data Link Control Protocols
ARQ Mechanisms Rudra Dutta ECE/CSC Fall 2010, Section 001, 601.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Chapter 11 Data Link Control Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction.
11.1 Chapter 11 Data Link Control Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Data Link Layer We have now discussed the prevalent shared channel technologies  Ethernet/IEEE  Wireless LANs (802.11) We have now covered chapters.
3: Transport Layer 3a-1 8: Principles of Reliable Data Transfer Last Modified: 10/15/2015 7:04:07 PM Slides adapted from: J.F Kurose and K.W. Ross,
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Data Link Layer Part I – Designing Issues and Elementary.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Data Link Control and Protocols.
CSC 311 Chapter Eight FLOW CONTROL TECHNIQUES. CSC 311 Chapter Eight How do we manage the large amount of data on the network? How do we react to a damaged.
Chapter 5 Peer-to-Peer Protocols and Data Link Layer PART I: Peer-to-Peer Protocols ARQ Protocols and Reliable Data Transfer Flow Control.
1 Transport Layer Lecture 10 Imran Ahmed University of Management & Technology.
Eighth Edition by William Stallings Chapter 7 – Data Link Control Protocols Data Link Control Protocols need layer of logic above Physical to manage exchange.
Chapter 3: Channel Coding (part 3). Automatic repeat request (ARQ) protocols ▫Used in combination with error detection/correction ▫Block of data with.
Transport Layer: Sliding Window Reliability
11.1 Flow and Error Control Flow Control Error Control.
Data Link Layer Flow and Error Control. Flow Control Flow Control Flow Control Specifies the amount of data can be transmitted by sender before receiving.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
Retransmission. Automatic Repeat reQuest (ARQ) 2 Time Packet ACK Timeout Automatic Repeat Request –Receiver sends acknowledgment (ACK) when it receives.
1 Flow&Error Control R. Supakorn. 2 Flow Control Flow control refers to a set of procedure used to restrict the amount of data that the sender can send.
1 Direct Link Networks: Reliable Transmission Sections 2.5.
Data Link Layer. Data link layer The communication between two machines that can directly communicate with each other. Basic property – If bit A is sent.
CSCI 465 D ata Communications and Networks Lecture 11 Martin van Bommel CSCI 465 Data Communications & Networks 1.
Chi-Cheng Lin, Winona State University CS412 Introduction to Computer Networking & Telecommunication Data Link Layer Part II – Sliding Window Protocols.
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
DATA LINK CONTROL. DATA LINK LAYER RESPONSIBILTIES  FRAMING  ERROR CONTROL  FLOW CONTROL.
Data Link Layer as a Reliable Data Transport Protocol Advanced Computer Networks Advanced Computer Networks Term D11.
Computer Networking Lecture 16 – Reliable Transport.
Ch 3. Transport Layer Myungchul Kim
NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS ( NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS (PRACTICAL PART) Tutorial 4 : Chapter 7 Data & computer.
Data Link Layer.
Chapter 3: The Data Link Layer –to achieve reliable, efficient communication between two physically connected machines. –Design issues: services interface.
Powerpoint Templates Data Communication Muhammad Waseem Iqbal Lec # 15.
9. Principles of Reliable Data Transport – Part 1
Computer Communication & Networks
Reliable Transmission
Data Link Layer Flow Control.
Data Link Layer - 3 Dr. Sanjay P. Ahuja, Ph.D.
CMPT 371 Data Communications and Networking
Instructor Mazhar Hussain
Flow Control.
Data Link Layer: Data Link Control
Flow and Error Control.
Overview Jaringan Komputer (2)
Data Link Layer as a Reliable Data Transport Protocol
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
CS4470 Computer Networking Protocols
Getting Connected (Chapter 2 Part 3)
9: Pipelined Protocols and RTT
Presentation transcript:

1 The utopia protocol  Unrealistic assumptions: –processing time ignored –infinite buffer space available –simplex: data transmitted in one direction only –channel is perfect (never loses, damages or reorders segments) App Trans Net SenderReceiver message segment message segment message segment message segment message segment message segment message segment message segment message segment message segment message segment message App Trans Net

2 void sender1(void) { while (true) { take some data from the application layer stick a segment header on it send it to the network layer } void receiver1(void) { while (true) { get one segment from the network layer strip off the header pass up the contents to the application layer } if only all protocols could be so simple! The utopia protocol  just inf. loops that copy data  kind, seq, ack fields not used

3 from utopia to stop-and-wait flow control  Problem with utopia: –Even if there are no errors on the channel... –There may be a flow control problem (fast sender, slow receiver)  Suppose we still assume a perfect channel, but try to solve just the flow control problem: GO –Provide feedback from receiver to sender telling it when to maybe it should be called stop-and-go instead of stop-and-wait... STOPor GO.

4 stop and wait flow control void sender2(void) { while (true) { take some data from the application layer stick a segment header on it send it to the network layer wait_for an ack; /* do not proceed until given the go ahead */ } void receiver2(void) { while (true) { get one segment from the network layer strip off the headers pass up the contents to the application layer send an ack /* send a dummy segment to awaken sender */ } sender waits for message_arrival from receiver; essentially, the sender is waiting for an “ack” receiver is sending an acknowledgment segment to let the sender know its ok to proceed. GO

5 segment message segment Protocol 2 Timeline AppTransNetTransApp segment message segment segment segment message segment segment message segment message GO GO (wait)

6 par: positive acknowledgement with retransmission = stop and wait flow control + buffers, acks, timeouts, retransmissions  Basic idea: Since messages may be damaged, sender should retransmit if it doesn’t receive ack within reasonable time segment.  First suggestion: slight modification of protocol 2 with sender operating as follows: send message  Allow for noise. if acknowledgment arrives first, send a new message. if timer expires first, resend message start_timer timeout messages may be corrupted, or may be totally lost. start timer, and wait for the acknowledgment

7 Timeline of protocol 3 retransmission AppTransNetTransApp segment message segment segment message segment segment message segment message GO start_timer timeout start_timer

8 Do we need numbers on messages? Yes... AppTransNetTransApp segment message segment message segment segment message segment message 1 message 2 GO start_timer timeout segment message segment message 1 oops! receiver delivered a duplicate! segment start_timer

9 Fix by adding sequence numbers to segments AppTransNetTransApp segment message 1 message 2 GO start_timer timeout trans sees that seq number is same as previous, and doesn’t deliver duplicate segment start_timer segment message segment 1 message segment 1 message segment 1 message segment 1 now expecting 0 now expecting 1 still expecting 0

10 Timeout might be premature NetDllPhyDllNet segment message 7 message 8 GO start premature timeout segment segment message segment 1 message segment 1 message segment 1 message segment 1 message segment 0GO message 9 segment message segment oops! skipped 8,9! misinterpreting ack of 1 as ack of 0 start segment message segment 1 now expecting 0 now expecting 1 still expecting GO message 10 segment message segment 0 start segment message segment 0 message 10

11 Fix by adding seq numbers to acks AppTransNetTransApp segment message 7 message 8 GO start premature timeout segment segment message segment 1 message segment 1 message segment 1 message segment 1 message segment 0 message segment message 8 successful recovery! sender looking for ack of 0, so doesn’t issue GO signal to net layer; instead retransmits 0. start expecting 1 expecting 0 receiver acks, but doesn’t deliver the duplicate segment message segment 0 still expecting 0

12 Terminology: par, ABP, ARQ, stop-and-wait  PAR is positive acknowledgement with retransmission PAR is also called “Automatic Repeat Request” or ARQ {PAR,ARQ} protocols use buffers, acks, retransmission, timeouts  the “stop-and-wait” part is designed to solve the problem of fast sender overwhelming slow receiver; it’s a form of flow control  for stop-and-wait, one-bit sequence numbers are necessary and sufficient therefore (stop-and-wait + ARQ) is sometimes called the Alternating Bit Protocol (ABP).  Note the distinction: – stop-and-wait is a flow control technique – PAR (which is also known as ARQ) is an error control technique  Also note: –while many authors just lump the PAR part in with stop-and-wait –you can have stop-and-wait without necessarily having retransmissions (e.g., if a lower layer is handling reliability...)

13 t0t0 t t 0 + a t a t a t0t0 t 0 + a t t a t a  Transmission time = 1 propagation delay = a>1  Link always under utilized  Transmission time = 1 propagation delay = a < 1  Link still inefficiently utilized (source: Stallings DCC5e, p.160ff) Link utilization with stop-and-wait

14 “The pipelining principle” Main idea: if line holds more than one message, stop and wait underutilizes the link: AppTransNetTransApp TransNetTransApp GO Instead of stopping, send several messages at once to keep line utilized e.g., if window size is four: This is better! But how big would the window need to be to really use the line effectively? Maybe: enough to keep the entire pipe full… if a=4, window size should be 8? GO We’ll see how go-back-N and selective repeat apply the basic idea of pipelining to increase throughput!

15  Continue with Kurose and Ross slides at the performance of rdt3.0 slides