Browse Prior Art Database

Window and Acknowledgement Strategy in TCP (RFC0813) Disclosure Number: IPCOM000003862D
Original Publication Date: 1982-Jul-01
Included in the Prior Art Database: 2000-Sep-13
Document File: 20 page(s) / 38K

Publishing Venue

Internet Society Requests For Comment (RFCs)

Related People

D.D. Clark: AUTHOR


This document describes implementation strategies to deal with two

This text was extracted from a ASCII document.
This is the abbreviated version, containing approximately 7% of the total text.

RFC: 813


David D. Clark

MIT Laboratory for Computer Science

Computer Systems and Communications Group

July, 1982

1. Introduction

This document describes implementation strategies to deal with two

mechanisms in TCP, the window and the acknowledgement. These mechanisms

are described in the specification document, but it is possible, while

complying with the specification, to produce implementations which yield

very bad performance. Happily, the pitfalls possible in window and

acknowledgement strategies are very easy to avoid.

It is a much more difficult exercise to verify the performance of a

specification than the correctness. Certainly, we have less experience

in this area, and we certainly lack any useful formal technique.

Nonetheless, it is important to attempt a specification in this area,

because different implementors might otherwise choose superficially

reasonable algorithms which interact poorly with each other. This

document presents a particular set of algorithms which have received

testing in the field, and which appear to work properly with each other.

With more experience, these algorithms may become part of the formal

specification: until such time their use is recommended.


2. The Mechanisms

The acknowledgement mechanism is at the heart of TCP. Very simply,

when data arrives at the recipient, the protocol requires that it send

back an acknowledgement of this data. The protocol specifies that the

bytes of data are sequentially numbered, so that the recipient can

acknowledge data by naming the highest numbered byte of data it has

received, which also acknowledges the previous bytes (actually, it

identifies the first byte of data which it has not yet received, but

this is a small detail). The protocol contains only a general assertion

that data should be acknowledged promptly, but gives no more specific

indication as to how quickly an acknowledgement must be sent, or how

much data should be acknowledged in each separate acknowledgement.

The window mechanism is a flow control tool. Whenever appropriate,

the recipient of data returns to the sender a number, which is (more or

less) the size of the buffer which the receiver currently has available

for additional data. This number of bytes, called the window, is the

maximum which the sender is permitted to transmit until the receiver

returns some additional window. Sometimes, the receiver will have no