290 likes | 492 Views
Chapter 11: Flow Control – can occur at layer 2 (data link) and at layer 4 (transport). You saw the need in the most recent assignment. Data packets can be damaged, but it’s not only data that can be changed. If the sequence number is changed how do you know what packet was damaged?
E N D
Chapter 11: Flow Control – can occur at layer 2 (data link) and at layer 4 (transport) • You saw the need in the most recent assignment. • Data packets can be damaged, but it’s not only data that can be changed. • If the sequence number is changed how do you know what packet was damaged? • What if the acknowledgment is damaged?
What if a data packet is lost? • What if an acknowledgment is lost? • How many data packets can we acknowledge with one acknowledgment packet? • Book does some calculation of bit rates; you can skip that stuff. We’ll focus on the protocols. • Main thing is that the download speed is a function of not only the raw bit rate, but the flow control protocol used.
Recall the layering of protocols • Frame – layer 2 unit of transmission • Packet – layer 3 unit of transmission • Text uses layer 2 context for flow control, but it does occur at layer 4 (TCP) as well
Byte oriented • Frame interpreted as a sequence of bytes • Each byte means something • Old protocol typical of transferring text files • Flags (e.g. 01111110) delimit start and end of frame
Bit oriented • More typical of streaming, binary files, graphics, etc • Frame interpreted as a bit stream • Start and end of frame marked with a flag=01111110
Again, what if flag is part of the data? • Stuff a bogus 0 after 5 consecutive 1s.
Flow control Flow control refers to a set of procedures used to restrict the amount of data that the sender can send before waiting for acknowledgment.
Acronyms • ARQ – Automatic Repeat reQuest • ACK – acknowledgment • NAK – negative acknowledgment (indicates a problem with a frame – damaged or never arrived)
Figure 11.6 The design of the simplest protocol with no flow or error control • Has similarities to a streaming protocol
Algorithm 11.1Sender-site algorithm for the simplest protocol
Algorithm 11.2Receiver-site algorithm for the simplest protocol
Algorithm 11.3Sender-site algorithm for Stop-and-Wait Protocol
Algorithm 11.4Receiver-site algorithm for Stop-and-Wait Protocol
Assumes no errors in frames • Assumes frames are not lost • Assumes Acks are not lost
Each frame has a sequence number • Sequence nos range from 0 to 2m-1, where m is the number of bits used to represent the sequence number • If m=3, sequence nos are as follows 0,….7, 0,….7, 0,….7, etc
ARQ: adds simple error control • Distinguish Ack frames from NAK frames • Implement a timer if neither of the above does not arrive in timely fashion
Algorithm 11.5Sender-site algorithm for Stop-and-Wait ARQ (continued)
(continued) Algorithm 11.5Sender-site algorithm for Stop-and-Wait ARQ • Option: If a NAK frame arrives, proceed as in the timeout
Algorithm 11.6Receiver-site algorithm for Stop-and-Wait ARQ Protocol • Option: Doan error check and send either an Ack or NAK frame
What if an ack is not lost but just delayed past when the timer expires?