One of the most popular transport protocols—Transmission Control Protocol (TCP)—has a long history. The first document describing TCP protocol in early stages was published in 1974. Since then, TCP specification was changed several times, and finally in 1981 was standardised by RFC 793 (Postel, 1981). Two years later TCP, together with Internet Protocol (IP), became the official protocol suite of the Internet. In the same year the first widely available implementation of TCP in the 4.2 BSD operating system was built.
Key Terms in this Chapter
Transmission Control Protocol (TCP): The connection- oriented, multi-purpose transport protocol, designed for reliable data transfer. Since the beginning of the eighties, the primary transport protocol of the Internet. It’s used by such applications, as e-mail, WWW, file transfer (ftp), etc.
Congestion: A temporary or permanent loss of network stability. Congestion appears in network node when the traffic offered to a given resource exceeds its output capacity, that leads to saturation of buffers and, in result, to packet drops.
Transport Protocol: The protocol functionally located at the fourth (transport) layer of the OSI reference model of communication network. It provides end-to-end service (in contrast to chained service of lower layers), connection-oriented or connectionless, reliable or real-time. Internet technologies treat the transport protocol as an interface between a network (usually seen as Internet Protocol, IP) and an application. Applications utilize the functionality of IP via the transport service given by transport protocols.
TCP-Friendliness: The ability of a system to behave under congestion like the TCP protocol. Lack of TCPfriendliness manifests itself in a strong degradation of TCP connections when TCP competes for bandwidth with one or more TCP-unfriendly flows.
TCP-Friendly Protocol (System): A protocol (system), which applies TCP-like congestion control. TCP-friendly protocols (systems) directly apply TCP’s congestion control mechanism or emulate it using the TCP throughput equation. The main properties of TCP-friendly protocols (systems) are avoidance of TCP connections collapse and fairness toward competing flows.
TCP Throughput Equation: An analytical model of TCP protocol behaviour in the presence of packet losses. It describes throughput of a single TCP connection as a function of packet error rate (PER).
Flow Control: Methods and algorithms aimed at prevention of the receiver’s buffer overflow.
Port Number: The transport address (the third, apart from IP, and MAC, addressing usage in Internet technology). Port numbers range from 0 to 65535 and identify transport-level endpoints. Port numbers of endpoints (source and destination), together with IP addresses of endpoints and a protocol identifier, identify a single connection (e.g., single TCP flow).
Congestion Control: Methods and algorithms aimed at counteracting existing congestions and avoiding approaching congestions.
Error Control: A generic name of a set of intertwined methods and algorithms for detection, signalling, and correction of damaged or lost packets. Typically, error detection is based on checksum, packet sequence numbering, or retransmission timers; error signalling is based on acknowledgements (positive or negative) or receiver reports, and error correction is based on retransmission (go-back-N or selective) or forward error correction (FEC).