d-to-end notification of network congestion RFC 3168 without dropping packets Dynamic routing protocol RFC 2328 Protocol that implements reliable connection setup, teardown, RFC 4340 congestion control, and feature negotiation (c) Internet layer Datagram oriented protocol See Ref. [20,21] Protocols used by computers to send error messages RFC 792 Communications protocol used to manage the membership of IP RFC 3376 multicast groups Networks Fundamentals and Present Architectures offset Source port Destination port Sequence number Acknowledgment number CEUAPRSE Data offset Reserved WCRCSSYI Window size REGKHTNN Checksum Urgent pointer Options (if data offset >5) FIGURE 3.23 TCP header content. Error-free data transfer: The TCP checksum is a weak check by modern standards. The weak checksum is partially compensated for by the common use of more powerful error correcting codes (ECCs) or error detecting codes (EDCs) at layer 2 or even at the physical layer. However, this does not mean that the 16 bit TCP checksum is redundant: introduc- tion of errors in packets between code-protected hops is common, but the end-to-end 16 bit TCP checksum catches most of them. Flow control limits the rate a sender transfers data to guarantee reliable delivery. The receiver continually hints the sender on how much data can be received (controlled by the sliding window). When the receiving host's buffer fills, the next acknowledgment contains a 0 in the window size, to stop transfer and allow the data in the buffer to be processed. Congestion control TCP also performs congestion control. It uses a number of mechanisms to achieve high performance and avoid "congestion collapse," where network performance falls. These mechanisms control the rate of data entering the network, keeping the data flow below a rate that would trigger collapse. 3.2.3.1.3 Connection Termination The connection termination phase uses, at most, a four-way handshake, with each side of the connection terminating independently. It is also possible to terminate the conn