2 Matching Annotations
  1. Oct 2024
    1. The original TCP specification allocated 16 bits for advertising the receive window size, which places a hard upper bound on the maximum value (216, or 65,535 bytes) that can be advertised by the sender and receiver. Turns out, this upper bound is often not enough to get optimal performance, especially in networks that exhibit high bandwidth delay product; more on this can be found Bandwidth-Delay Product. To address this, RFC 1323 was drafted to provide a "TCP window scaling" option, which allows us to raise the maximum receive window size from 65,535 bytes to 1 gigabyte! The window scaling option is communicated during the three-way handshake and carries a value that represents the number of bits to left-shift the 16-bit window size field in future ACKs. Today, TCP window scaling is enabled by default on all major platforms. However, intermediate nodes, routers, and firewalls can rewrite or even strip this option entirely. If your connection to the server, or the client, is unable to make full use of the available bandwidth, then checking the interaction of your window sizes is always a good place to start

      With 16 bits, you can represent 2^16 different values, because each bit can have 2 possible states (0 or 1), and there are 16 bits total.

    2. Should the roundtrip time exceed the maximum retransmission interval for any host, that host will begin to introduce more and more copies of the same datagrams into the net. The network is now in serious trouble. Eventually all available buffers in the switching nodes will be full and packets must be dropped. The roundtrip time for packets that are delivered is now at its maximum. Hosts are sending each packet several times, and eventually some copy of each packet arrives at its destination. This is congestion collapse. This condition is stable. Once the saturation point has been reached, if the algorithm for selecting packets to be dropped is fair, the network will continue to operate in a degraded condition.

      Lets Suppose the roundtrip takes 5ms and retransmission happens every 4ms Then roundtrip exceeds retransmission, means new sync request will be triggered before recieving ack from prev req, which will lead to high number of packet req until the saturation point is reached