Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points).

Slides:



Advertisements
Similar presentations
Reliability & Channel Coding
Advertisements

Error Detection and Correction
Chapter 6 Errors, Error Detection, and Error Control.
Transmission Errors Error Detection and Correction
Error Detection and Correction
Coding and Error Control
Error Detection and Correction
PART III DATA LINK LAYER. Position of the Data-Link Layer.
Lecture 9-10: Error Detection and Correction Anders Västberg Slides are a selection from the slides from chapter 8 from:
Transmission Errors1 Error Detection and Correction.
The Data Link Layer Chapter 3. Position of the data-link layer.
The OSI Reference Model
Chapter 9: Data Link Control Business Data Communications, 4e.
20101 The Data Link Layer Chapter Design Issues Controls communication between 2 machines directly connected by “wire”-like link Services Provided.
Gursharan Singh Tatla Transport Layer 16-May
Transmission Errors Error Detection and Correction
18-Aug-154/598N: Computer Networks Overview Direct link networks –Error detection - Section 2.4 –Reliable transmission - Section 2.5.
Link-Level Flow and Error Control
1 Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer Application Layer Presentation Layer.
COM342 Networks and Data Communications
Data and Computer Communications. The Data Link Layer.
Overview of Network Protocols, Services & Layering OSI Reference Model TCP/IP Architecture Error Detection and Correction.
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
University of the Western Cape Chapter 12: The Transport Layer.
PART III DATA LINK LAYER. Position of the Data-Link Layer.
1 CSE3213 Computer Network I Service Model, Error Control, Flow Control, and Link Sharing (Ch. 5.1 – and 5.7.1) Course page:
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Data Link Layer Part I – Designing Issues and Elementary.
Error Coding Transmission process may introduce errors into a message.  Single bit errors versus burst errors Detection:  Requires a convention that.
CSC 535 Communication Networks I Section 3.8 Error Detection and Correction Dr. Cheer-Sun Yang.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 14.
Cyclic Code. Linear Block Code Hamming Code is a Linear Block Code. Linear Block Code means that the codeword is generated by multiplying the message.
Chapt 3 Data Link Layer1 Data Link Layer Functions –Provides services to network layer Well-defined interface –Framing –Flow control – between adjacent.
Chapter 3 Digital Transmission Fundamentals Line Coding Error Detection and Correction.
Chapter 5 Peer-to-Peer Protocols and Data Link Layer PART I: Peer-to-Peer Protocols ARQ Protocols and Reliable Data Transfer Flow Control.
Data and Computer Communications Chapter 6 – Digital Data Communications Techniques.
Data and Computer Communications by William Stallings Eighth Edition Digital Data Communications Techniques Digital Data Communications Techniques Click.
Lecture 3-2: Coding and Error Control (Cont.) ECE
COSC 3213: Computer Networks I Instructor: Dr. Amir Asif Department of Computer Science York University Section M Topics: 1. Error Detection Techniques:
1 Chapter 8. Coding and Error Control Wen-Shyang Hwang KUAS EE.
1 Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer Application Layer Presentation Layer.
CS3505: DATA LINK LAYER. data link layer  phys. layer subject to errors; not reliable; and only moves information as bits, which alone are not meaningful.
Error/Flow Control Modeling (ARQ Modeling). © Tallal Elshabrawy 2 Data Link Layer  Data Link Layer provides a service for Network Layer (transfer of.
Digital Transmission Fundamentals
1/30/ :20 PM1 Chapter 6 ─ Digital Data Communication Techniques CSE 3213 Fall 2011.
Transmission Errors Error Detection and Correction.
COSC 3213: Computer Networks I Instructor: Dr. Amir Asif Department of Computer Science York University Section M Topics: 1.Flow Control and ARQ Protocols.
Chapter 9: Data Link Control Business Data Communications, 4e.
Powerpoint Templates Computer Communication & Network Week # 10.
Powerpoint Templates Data Communication Muhammad Waseem Iqbal Lec # 15.
Coding and Error Control
Lecture 4 Error Detecting and Correcting Techniques Dr. Ghalib A. Shah
Data Link Layer Objective: to achieve reliable and efficient communication between 2 adjacent machines Data link layer design issues services provided.
Data Link Layer.
Error Detection and Correction (Pengesanan dan Pembetulan ralat)
Communication Networks: Technology & Protocols
Advanced Computer Networks
Data Link Layer What does it do?
Chapter 3 Digital Transmission Fundamentals
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
Lecture 3 Digital Transmission Fundamentals
Data Link Layer Objective: to achieve reliable and efficient communication between 2 adjacent machines Data link layer design issues services provided.
Transmission Errors Error Detection and Correction
Data Link Layer Objective: to achieve reliable and efficient communication between 2 adjacent machines Data link layer design issues services provided.
Transmission Errors Error Detection and Correction
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
Lecture 4 Peer-to-Peer Protocols and Data Link Layer
Error detection: Outline
Data Link Layer. Position of the data-link layer.
Presentation transcript:

Quiz #3 Compare the cross-bar switch and the multistage switch in terms of fault tolerance, blockness, and space complexity (i.e., number of cross points).

ECE 683 Computer Network Design & Analysis Note 5: Peer-to-Peer Protocols

Outline Peer-to-Peer Protocols and Service Models Error Control (Detection and Correction) Forward Error Control (FEC) Error detection (3.8) Automatic Retransmission Request (ARQ)

Note 5: Peer-to-Peer Protocols and Data Link Control Peer-to-Peer Protocols and Service Models

Peer-to-Peer Protocols n – 1 peer process n peer process n + 1 peer process    Peer-to-Peer processes execute layer-n protocol to provide service to layer-(n+1) Layer-(n+1) peer calls layer-n and passes Service Data Units (SDUs) for transfer SDU SDU PDU Layer-n peers exchange Protocol Data Units (PDUs) to effect transfer Layer-n delivers SDUs to destination layer-(n+1) peer

Service Models The service model specifies the information transfer service layer-n provides to layer-(n+1) The most important distinction is whether the service is: Connection-oriented Connectionless Other possible features of a service model : Arbitrary message size or structure Sequencing and Reliability Timing, Pacing, and Flow control Multiplexing Privacy, integrity, and authentication

Connection-Oriented Transfer Service Connection Establishment Connection must be established between layer-n peers Layer-n protocol must: Set initial parameters, e.g. sequence numbers; and Allocate resources, e.g. buffers Message transfer phase Exchange of SDUs Disconnect phase Example: TCP, PPP n + 1 peer process send receive Layer n connection-oriented service SDU

Connectionless Transfer Service No Connection setup, simply send SDU Each message send independently Must provide all address information per message Simple & quick Example: UDP, IP n + 1 peer process send n + 1 peer process receive SDU Layer n connectionless service

Message Size and Structure What message size and structure will a service model accept? Different services impose restrictions on size & structure of data it will transfer Single bit? Block of bytes? Byte stream? Ex: Transfer of voice mail = 1 long message Ex: Transfer of voice call = byte stream 1 voice mail= 1 message = entire sequence of speech samples (a) 1 call = sequence of 1-byte messages (b)

Segmentation & Blocking To accommodate arbitrary message size, a layer may have to deal with messages that are too long or too short for its protocol Segmentation & Reassembly: a layer breaks long messages into smaller blocks and reassembles these at the destination Blocking & Unblocking: a layer combines small messages into bigger blocks prior to transfer 1 long message 2 or more blocks 2 or more short messages 1 block

Reliability & Sequencing Reliability: Are messages or information stream delivered error-free and without loss or duplication? Sequencing: Are messages or information stream delivered in order? ARQ protocols combine error detection, retransmission, and sequence numbering to provide reliability & sequencing Examples: TCP and HDLC ARQ=automatic retransmission request

Pacing and Flow Control Messages can be lost if receiving system does not have sufficient buffering to store arriving messages Pacing & Flow Control provide backpressure mechanisms that control transfer according to availability of buffers at the destination Examples: TCP and HDLC

Timing Applications involving voice and video generate units of information that are related temporally Destination application must reconstruct temporal relation in voice/video units Network transfer introduces delay & jitter Timing Recovery protocols use timestamps & sequence numbering to control the delay & jitter in delivered information Examples: RTP & associated protocols in Voice over IP

Multiplexing Multiplexing enables multiple layer-(n+1) users to share a layer-n service A multiplexing tag is required to identify specific users at the destination Examples: UDP, IP

Privacy, Integrity, & Authentication Privacy: ensuring that information transferred cannot be read by others Integrity: ensuring that information is not altered during transfer Authentication: verifying that sender and/or receiver are who they claim to be Security protocols provide these services and are discussed in Chapter 11 Examples: IPSec, SSL

End-to-End vs. Hop-by-Hop A service feature can be provided by implementing a protocol end-to-end across the entire network across every hop in the network Example: Perform error control at every hop in the network or only between the source and destination? Perform flow control between every hop in the network or only between source & destination? We next consider the tradeoffs between the two approaches

Error control in Data Link Layer Physical A B Packets Frames 3 2 1 Medium Data Link operates over wire-like, directly-connected systems Frames can be corrupted or lost, but arrive in order Data link performs error-checking & retransmission Ensures error-free packet transfer between two systems (a) (b) 1 2 Physical layer entity Data link layer entity 3 Network layer entity

Error Control in Transport Layer Transport layer protocol (e.g. TCP) sends segments across network and performs end-to-end error checking & retransmission Underlying network is assumed to be unreliable Physical layer Data link End system A Network Transport Messages Segments B

C End System α β A B Network Segments can experience long delays, can be lost, or arrive out-of-order because packets can follow different paths across network End-to-end error control protocol more difficult 1 3 2 Medium A B C 4 End System α β Network Network layer entity Transport layer entity

End-to-End Approach Preferred 1 2 5 Data ACK/NAK Hop-by-hop 3 4 Hop-by-hop cannot ensure E2E correctness Faster recovery Simple inside the network End-to-end ACK/NAK More scalable if complexity at the edge 1 2 3 4 5 Data Data Data Data

Note 5: Peer-to-Peer Protocols and Data Link Control Error Control: Detection & Correction

Error Control Digital transmission systems introduce errors Copper wires, BER = 10-6 Optical fiber, BER= 10-9 Wireless transmission, BER = 10-3 Applications require certain reliability level Data applications require error-free transfer Voice & video applications tolerate some errors Error control is used when transmission system does not meet application requirement Error control ensures a data stream is transmitted to a certain level of accuracy despite errors

Error Control Approaches Error detection & ARQ The receiver detects errors and sends an automatic retransmission request (ARQ) when errors are detected A return channel is required for retransmissions requests Forward error correction (FEC) The sender adds redundant data to its messages, also known as an error correction code. This allows the receiver to detect and correct errors (within some bound) without the need to ask the sender for additional data. A return channel is not required, or that retransmission of data can often be avoided, at the cost of higher bandwidth requirements on average. Applied in situations where retransmissions are relatively costly or impossible: satellite and deep-space communications; audio/video CD recordings

Key Idea of Error Detection All transmitted data blocks (“codewords”) satisfy a pattern If received block doesn’t satisfy pattern, it is in error Redundancy: additional information required to transmit Blindspot: when channel transforms a codeword into another codeword Channel Encoder User information Pattern checking All inputs to channel satisfy pattern or condition output Deliver user information or set error alarm

Single Parity Check Info Bits: b1, b2, b3, …, bk Append an overall parity check to k information bits Info Bits: b1, b2, b3, …, bk Check Bit: bk+1= b1+ b2+ b3+ …+ bk modulo 2 Codeword: (b1, b2, b3, …, bk,, bk+1) All codewords have even # of 1s Receiver checks to see if # of 1s in a codeword is even All error patterns that change an odd # of bits are detectable All even-numbered patterns are undetectable Parity bit used in ASCII code

Example of Single Parity Code Information (7 bits): (0, 1, 0, 1, 1, 0, 0) Parity Bit: b8 = 0 + 1 +0 + 1 +1 + 0 = 1 Codeword (8 bits): (0, 1, 0, 1, 1, 0, 0, 1) If single error in bit 3 : (0, 1, 1, 1, 1, 0, 0, 1) # of 1’s in the codeword = 5, odd; Error detected If errors in bits 3 and 5: (0, 1, 1, 1, 0, 0, 0, 1) # of 1’s =4, even; Error not detected

Checkbits & Error Detection Calculate check bits Channel Recalculate check bits Compare Information bits Received information bits Sent check bits Information accepted if check bits match Received check bits k bits

How good is the single parity check code? Redundancy: Single parity check code adds 1 redundant bit per k information bits: overhead = 1/(k + 1) Coverage: all error patterns with odd # of errors can be detected An error patten is a binary (k + 1)-tuple with 1s where errors occur and 0’s elsewhere Of 2k+1 binary (k + 1)-tuples, ½ are odd, so 50% of error patterns can be detected Is it possible to detect more errors if we add more check bits? Yes, with the right codes

What is a good code? If codewords are close to each other, then detection failures will occur. Good codes should maximize separation between codewords to minimize the likelihood of the channel converting one valid codeword into another. o x Poor distance properties x = codewords o = noncodewords x o Good distance properties

What if bit errors are random? Many transmission channels introduce bit errors at random, independently of each other, and with probability p Some error patterns are more probable than others: P[10000000] = p(1 – p)7 = (1 – p)8 and P[11000000] = p2(1 – p)6 = (1 – p)8 In any worthwhile channel p < 0.5, and so p/(1 – p) < 1 It follows that patterns with 1 error are more likely than patterns with 2 errors and so forth What is the probability that an undetectable error pattern occurs?

Single parity check code with random bit errors Undetectable error pattern if even # of bit errors: P[error detection failure] = P[undetectable error pattern] = P[error patterns with even number of 1s] = p2(1 – p)n-2 + p4(1 – p)n-4 + … n 2 4 Example: Evaluate above for n = 32, p = 10-3 P[undetectable error] = (10-3)2 (1 – 10-3)30 + (10-3)4 (1 – 10-3)28 ≈ 496 (10-6) + 35960 (10-12) ≈ 4.96 (10-4) 32 2 4 For this example, roughly 1 in 2000 error patterns is undetectable

Two-Dimensional Parity Check More parity bits to improve coverage Arrange information as columns Add single parity bit to each column Add a final “parity” column Used in early error control systems 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 Bottom row consists of check bit for each column Last column consists of check bits for each row

Error-detecting capability 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 Arrows indicate failed check bits Two errors One error Three errors Four errors (undetectable) 1, 2, or 3 errors can always be detected; Not all patterns >4 errors can be detected

Other Error Detection Codes Many applications require very low error rate Need codes that detect the vast majority of errors Single parity check codes do not detect enough errors Two-dimensional codes require too many check bits The following error detecting codes used in practice: Internet Check Sums CRC Polynomial Codes

Internet Checksum b0, b1, b2, ..., bL-1 Several Internet protocols (e.g. IP, TCP, UDP) use check bits to detect errors in the IP header (or in the header and data for TCP/UDP) A checksum is calculated for header contents and included in a special field. Checksum recalculated at every router, so algorithm selected for ease of implementation in software Let header consist of L, 16-bit words, b0, b1, b2, ..., bL-1 The algorithm appends a 16-bit checksum bL

Checksum Calculation The checksum bL is calculated as follows: Treating each 16-bit word as an integer, find x = b0 + b1 + b2+ ...+ bL-1 modulo 216-1 The checksum is then given by: bL = - x modulo 216-1 Thus, the headers must satisfy the following pattern: 0 = b0 + b1 + b2+ ...+ bL-1 + bL modulo 216-1 The checksum calculation is carried out in software using one’s complement arithmetic

Internet Checksum Example Use Modulo Arithmetic Assume 4-bit words Use mod 24-1 arithmetic b0=1100 = 12 b1=1010 = 10 b0+b1=12+10=7 mod15 b2 = -7 = 8 mod15 Therefore b2=1000 Use Binary Arithmetic Note 16 =1 mod15 So: 10000 = 0001 mod15 leading bit wraps around b0 + b1 = 1100+1010 =10110 =10000+0110 =0001+0110 =0111 =7 Take 1s complement b2 = -0111 =1000

Polynomial Codes Polynomials instead of vectors for codewords Polynomial arithmetic instead of checksums Implemented using shift-register circuits Also called cyclic redundancy check (CRC) codes Most data communications standards use polynomial codes for error detection Polynomial codes also basis for powerful error-correction methods

Binary Polynomial Arithmetic Binary vectors map to polynomials (ik-1 , ik-2 ,…, i2 , i1 , i0)  ik-1xk-1 + ik-2xk-2 + … + i2x2 + i1x + i0 Addition: (x7 + x6 + 1) + (x6 + x5) = x7 + x6 + x6 + x5 + 1 = x7 +(1+1)x6 + x5 + 1 = x7 +x5 + 1 since 1+1=0 mod2 Multiplication: (x + 1) (x2 + x + 1) = x(x2 + x + 1) + 1(x2 + x + 1) = (x3 + x2 + x) + (x2 + x + 1) = x3 + 1

Binary Polynomial Division Division with Decimal Numbers 35 ) 1222 3 105 17 2 4 140 divisor quotient remainder dividend 1222 = 34 x 35 + 32 dividend = quotient x divisor +remainder 32 x3 + x + 1 ) x6 + x5 x6 + x4 + x3 x5 + x4 + x3 x5 + x3 + x2 x4 + x2 x4 + x2 + x x = q(x) quotient = r(x) remainder divisor dividend + x + x2 x3 Polynomial Division Lecture #5 finished here. Note: Degree of r(x) is less than degree of divisor

xn-ki(x) = q(x)g(x) + r(x) Polynomial Coding Code has binary generating polynomial of degree n–k g(x) = xn-k + gn-k-1xn-k-1 + … + g2x2 + g1x + 1 k information bits define polynomial of degree k – 1 i(x) = ik-1xk-1 + ik-2xk-2 + … + i2x2 + i1x + i0 Find remainder polynomial of at most degree n – k – 1 g(x) ) xn-k i(x) q(x) r(x) xn-ki(x) = q(x)g(x) + r(x) n>k is precondition. Define the codeword polynomial of degree n – 1 b(x) = xn-ki(x) + r(x) n bits k bits n-k bits

Polynomial example: k = 4, n=7, n–k = 3 Generator polynomial: g(x)= x3 + x + 1 Information: (1,1,0,0) i(x) = x3 + x2 Encoding: x3i(x) = x6 + x5 x3 + x + 1 ) x6 + x5 x3 + x2 + x x6 + x4 + x3 x5 + x4 + x3 x5 + x3 + x2 x4 + x2 x4 + x2 + x x 1011 ) 1100000 1110 1011 1010 010 Transmitted codeword: b(x) = xn-ki(x) + r(x) b(x) =x3 (x3 + x2)+ x= x6 + x5 + x b = (1,1,0,0,0,1,0)

The Pattern in Polynomial Coding All codewords satisfy the following pattern: b(x) = xn-ki(x) + r(x) = q(x)g(x) + r(x) + r(x) = q(x)g(x) All codewords are a multiple of g(x)! Receiver should divide received n-tuple by g(x) and check if remainder is zero If remainder is nonzero, then received n-tuple is not a codeword

Undetectable error patterns b(x) e(x) R(x)=b(x)+e(x) + (Receiver) (Transmitter) Error polynomial (Channel) e(x) has 1s in error locations & 0s elsewhere Receiver divides the received polynomial R(x) by g(x) Blindspot: If e(x) is a multiple of g(x), that is, e(x) is a nonzero codeword, then R(x) = b(x) + e(x) = q(x)g(x) + q’(x)g(x) Choose the generator polynomial so that selected error patterns can be detected.

Designing good polynomial codes Select generator polynomial so that likely error patterns are not multiples of g(x) Detecting Single Errors e(x) = xi for error in location i + 1 If g(x) has more than 1 term, it cannot divide xi Detecting Double Errors e(x) = xi + xj = xi(xj-i+1) where 0 <= i< j <= n-1 If g(x) is a primitive polynomial, it cannot divide xm+1 for all m<2n-k-1 (Need to keep codeword length not larger than 2n-k-1) Primitive polynomials can be found by consulting coding theory books

Designing good polynomial codes Detecting Odd Numbers of Errors Suppose all codeword polynomials have an even # of 1s, then all odd numbers of errors can be detected As well, b(x) evaluated at x = 1 is zero because b(x) has an even number of 1s This implies x + 1 must be a factor of all b(x) Pick g(x) = (x + 1) p(x) where p(x) is primitive

Detecting error bursts

Standard Generator Polynomials CRC = cyclic redundancy check CRC-8: CRC-16: CCITT-16: CCITT-32: = x8 + x2 + x + 1 ATM = x16 + x15 + x2 + 1 = (x + 1)(x15 + x + 1) Bisync HDLC, XMODEM, V.41 = x16 + x12 + x5 + 1 IEEE 802, DoD, V.42 = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

FEC based on Erasure Codes Basic idea All packets in error are considered lost or erased Given a message of M blocks, generate N blocks for N>M, such that the original message can be recovered from any M’ of those encoded blocks M’/N – the rate M’=M – optimal erasure codes, often costly in terms of memory usage, CPU time or both when N is large M’= (1+r)M – nearly optimal erasure codes; r can be reduced at the cost of CPU time Rateless erasure codes (fountain codes): N can be potentially limitless, i.e., the percentage of packets that must be received to decode the message can be arbitrarily small FEC=Forward Error Correction

Erasure Codes Illustration ’

Automatic Repeat Request (ARQ) Purpose: ensure a sequence of information packets is delivered in order and without errors or duplications despite transmission errors & losses We will look at: Stop-and-Wait ARQ Go-Back N ARQ Selective Repeat ARQ Basic elements of ARQ: Error-detecting code with high error coverage Information frames (I-frame) Control frames (C-frame) Time-out methanisms

Timer set after each frame transmission Basic Elements of ARQ Transmit a frame, wait for ACK Error-free packet Packet Information frame Transmitter (Process A) Receiver (Process B) Timer set after each frame transmission Control frame CRC Information packet Header Information frame Control frame: ACKs or NAKs CRC Header

Stop-and-Wait ARQ The transmitter A and receiver B works on delivering one frame at a time A sends an I-frame to B and then stops and waits for an ACK from B If no ACK is received within some time-out period, A resends the frame and once gain stops and waits

Need for Sequence Numbers (a) Frame 0 OK but 1 lost A B Frame 1 ACK Time Time-out 2 (b) Frame 1’s ACK lost A B Frame 1 ACK Time Time-out 2 In cases (a) & (b) the transmitting station A acts the same way But in case (b) the receiving station B accepts frame 1 twice Question: How is the receiver to know the second frame is also frame 1? Answer: Add frame sequence number in header Slast is sequence number of most recent transmitted frame

Sequence Numbers (c) Premature Time-out Frame ACK 1 Time Time-out 2 The transmitting station A misinterprets duplicate ACKs Incorrectly assumes second ACK acknowledges Frame 1 Question: How is the receiver to know second ACK is for frame 0? Answer: Add frame sequence number in ACK header Rnext is sequence number of next frame expected by the receiver Implicitly acknowledges receipt of all prior frames

1-Bit Sequence Numbering Suffices Transmitter A Receiver B Slast Rnext 0 1 Timer Global State: (Slast, Rnext) Error-free frame 0 arrives at receiver (0,0) (0,1) ACK for frame 0 arrives at transmitter ACK for frame 1 arrives at transmitter Error-free frame 1 arrives at receiver (1,0) (1,1)

Stop-and-Wait ARQ Transmitter Ready state Wait state Receiver Await request from higher layer for packet transfer When request arrives, transmit frame with updated Slast and CRC Go to Wait State Wait state Wait for ACK or timer to expire; block requests from higher layer If timeout expires retransmit frame and reset timer If ACK received: If sequence number is incorrect or if errors detected: ignore ACK If sequence number is correct (Rnext = Slast +1): accept frame, go to Ready state Receiver Always in Ready State Wait for arrival of new frame When frame arrives, check for errors If no errors detected and sequence number is correct (Slast=Rnext), then accept frame, update Rnext, send ACK frame with Rnext, deliver packet to higher layer If no errors detected but wrong sequence number discard frame send ACK frame with Rnext If errors detected

Applications of Stop-and-Wait ARQ IBM Binary Synchronous Communications protocol (Bisync): character-oriented data link control Xmodem: modem file transfer protocol Trivial File Transfer Protocol (RFC 1350): simple protocol for file transfer over UDP

Stop-and-Wait Efficiency B First frame bit enters channel Last frame bit enters channel Channel idle while transmitter waits for ACK Last frame bit arrives at receiver Receiver processes frame and prepares ACK ACK arrives First frame bit arrives at receiver t 10000 bit frame @ 1 Mbps takes 10 ms to transmit If wait for ACK = 1 ms, then efficiency = 10/11= 91% If wait for ACK = 20 ms, then efficiency =10/30 = 33%

Stop-and-Wait Model tf time tprop tack tproc frame tf time A B tprop tack tproc t0 = total time to transmit 1 frame bits/info frame bits/ACK frame channel transmission rate

S&W Efficiency on Error-free channel bits for header & CRC Effective transmission rate: Transmission efficiency: Effect of frame overhead Effect of Delay-Bandwidth Product Effect of ACK frame

Example: Impact of Delay-Bandwidth Product nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits 2xDelayxBW Efficiency 1 ms 200 km 10 ms 2000 km 100 ms 20000 km 1 sec 200000 km 1 Mbps 103 88% 104 49% 105 9% 106 1% 1 Gbps 107 0.1% 108 0.01% 109 0.001% Stop-and-Wait does not work well for very high speeds or long propagation delays. The higher the speed, the lower the transmission efficiency. The longer the propagation delay, the lower the efficiency.

S&W Efficiency in Channel with Errors Let 1 – Pf = probability frame arrives w/o errors Avg. # of transmissions to first correct arrival is then 1/ (1–Pf ) “If 1-in-10 get through without error, then avg. 10 tries to succeed” Avg. Total Time per frame is then t0/(1 – Pf) Effect of frame loss

Example: Impact Bit Error Rate nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits, R= 1Mbps, 2(tprop+tproc) =1 ms Find efficiency for random bit errors with p=0, 10-6, 10-5, ad 10-4 1 Mbps & 1 ms 10-6 10-5 10-4 1 – Pf Efficiency 1 88% 0.99 86.6% 0.905 79.2% 0.368 32.2% Bit errors impact performance as nfp approaches 1.