| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
TCP Sliding Window Acknowledgment System For Data Transport, Reliability and Flow Control (Page 4 of 9) Improving the Utility of PAR Through Message Identification and Send Limits PAR is a technique that is used widely in networking and communications for protocols that exchange relatively small amounts of data, or exchange data infrequently. The basic method is functional, but it is not well-suited to a protocol like TCP for two reasons. The first is that it is inefficient. Device A sends a message and then waits for the acknowledgment. Device A cannot send another message to Device B until it hears that its original message was received, which is very wasteful and would make the protocol extremely slow. The first improvement we can make to this system is to provide some means of identification to the messages sent and to the acknowledgments. For example, we could put a message ID field in the message header. The device sending the message would uniquely identify it, and the recipient would use this identifier in the acknowledgment. For example, Device A might send a piece of data in a message with the message ID #1. Device B would receive the message and then send its own message back to Device A saying Device A, I received your message #1. The advantage of this system is that Device A can send multiple messages at once. It must keep track of each one sent, and whether or not it was acknowledged. Each also requires a separate timer, but that's not a big problem. Of course, we also need to consider this exchange from the standpoint of Device B. Before, it only had to deal with one message at a time from Device A. Now it may have several show up all at once. What if it is already busy with transmissions from another device (or ten)? We need some mechanism that lets Device B say I am only willing to handle the following number of messages from you at a time. We could do that by having the acknowledgment message contain a field, such as send limit, which specifies the maximum number of unacknowledged messages A was allowed to have in transit to B at one time. Device A would use this send limit field to restrict the rate at which it sent messages to Device B. Device B could adjust this field depending on its current load and other factors to maximize performance in its discussions with Device A. This enhanced system would thus provide reliability, efficiency and basic data flow control, as illustrated in Figure 205.
Home - Table Of Contents - Contact Us The TCP/IP Guide (http://www.TCPIPGuide.com) Version 3.0 - Version Date: September 20, 2005 © Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved. Not responsible for any loss resulting from the use of this site. |