The flow on a TCP connection should obey a ‘conservation of packets’ principle. … A new packet isn't put into the network until an old packet leaves.
TCP connection establishment and termination.
TCP timeout and retransmission.
TCP interactive data flow, using telnet as an example.
TCP bulk data flow, using sock as a traffic generator.
Further comparison of TCP and UDP.
Tuning the TCP/IP kernel.
Study TCP flow control, congestion control, and error control using DBS and NIST Net.
TCP is the transport layer protocol in the TCP/IP protocol family that provides a connection-oriented, reliable service to applications. TCP achieves this by incorporating the following features.
Error control: TCP uses cumulative acknowledgements to report lost segments or out of order reception, and a time out and retransmission mechanism to guarantee that application data is received reliably.
Flow control: TCP uses sliding window flow control to prevent the receiver buffer from overflowing.
Congestion control: TCP uses slow start, congestion avoidance, and fast retransmit/fast recovery to adapt to congestion in the routers and achieve high throughput.
The TCP header, shown in Fig. 0.16, consists of fields for the implementation of the above functions. Because of its complexity, TCP only supports unicast, while UDP, which is much simpler, supports both unicast and multicast. TCP is widely used in internet applications, e.g., the Web (HTTP), email (SMTP), file transfer (FTP), remote access (telnet), etc.