CS 640 Introduction to Computer Networks Fall 2007
Programming Assignment 3: Transmission Control Protocol
Assigned: November 6, 2007 Due: November 20, 2007, 11:59pm
The Transmission Control Protocol (TCP) standard is defined in the Request For
Comment (RFC) standards document number 793 by the Internet Engineering Task Force
(IETF). The original specification written in 1981 was based on earlier research and
experimentation in the original ARPANET. The design of TCP was heavily influenced
by what has come to be known as the "end-to-end argument."
As it applies to the Internet, the end-to-end argument says that by putting excessive
intelligence in physical and link layers to handle error control, encryption or flow control
you unnecessarily complicate the system. This is because these functions will usually
need to be implemented at the endpoints anyways, so duplication of this functionality in
the intermediate points can be a waste. The result of an end-to-end network then, is to
provide minimal functionality on a hop-by-hop basis and maximal control between end-
to-end communicating systems.
The end-to-end argument helped determine the design of various components of
TCP's reliability, flow control, and congestion control algorithms.