How Error Recovery Is Accomplished

Regardless of which protocol specification performs the error recovery, all work in basically the same way. Generically, the transmitted data is labeled or numbered. After receipt, the receiver signals back to the sender that the data was received, using the same label or number to identify the data. Figure 3-7 summarizes the operation.

Figure 3-7 Forward Acknowledgment

As Figure 3-7 illustrates, the data is numbered, as shown with the numbers 1, 2, and 3. These numbers are placed into the header used by that particular protocol; for example, the TCP header contains similar numbering fields. When Barney sends his next frame to Fred, Barney acknowledges that all three frames were received by setting his acknowledgment field to 4. The number 4 refers to the next data to be received, which is called forward acknowledgment. This means that the acknowledgment number in the header identifies the next data that is to be received, not the last one received. (In this case, 4 is next to be received.)

In some protocols, such as LLC2, the numbering always starts with zero. In other protocols, such as TCP, the number is stated during initialization by the sending machine. Also, some protocols count the frame/packet/segment as 1; others count the number of bytes sent. In any case, the basic idea is the same.

Of course, error recovery has not been covered yet. Take the case of Fred and Barney again, but notice Barney's reply in Figure 3-8.

Figure 3-8 Recovery Example

Because Barney is expecting packet number 2 next, what could Fred do? Two choices exist. Fred could send numbers 2 and 3 again, or Fred could send number 2 and wait, hoping that Barney's next acknowledgment will say 4, indicating that Barney just got number 2 and already had number 3 from earlier.

Finally, error recovery typically uses two sets of counters: one to count data in one direction, and one to count data in the opposite direction. So, when Barney acknowledges packet number 2 with the number acknowledged field in the header, the header would also have a number sent field that identifies the data in Barney's packet. For instance, assume in Figure 3-8 that the previous packet Barney had sent was number 5. The packet shown in the figure would be labeled 6.

Table 3-5 summarizes the concepts behind error recovery and lists the behavior of three popular error-recovery protocols.

Table 3-5 Examples of Error-Recovery Protocols and Their Features





Acknowledges data in both directions?




Uses forward acknowledgment?




Counts bytes or frame/packets?




Necessitates resending of all data, or just one part and wait when resending?

One and wait

Resend all

Resend all

0 0

Post a comment