The Broadband Guide
SG
search advanced
 search
FAQs Categories:

What is TCP "excessive buffering" reported by the ICSI Netalyzr ?

When TCP encounters delay on the network (latency/ping/rtt), it uses "TCP Window" buffers to continue communicating before receiving acknowledgement (ACK) from the other end of the connection that data has been received. Those buffers are essentially the amount of data allowed to remain in the network before the sender stops transmitting and starts waiting for acknowledgement.

TCP is lossless protocol, meaning it sends ACKnowledgement for each received packet. When a server sends packets to a client, there is always some delay in getting those ACKs back from the client, especially noticeable with high-speed/high-latency broadband networks, such as all Cable/DSL internet connections.

TCP Window buffers need to be large enough to accomodate enough data to be send witout interruption (before the sender stops and waits for ACKnowledgements). The minimum necessary buffer size can be calculated using the BDP product based on bandwidth and latency.

An "excessive buffering" is a subjective value, meaning that your TCP Windows allow for "too much" unacknowledged data to remain on th network (higher than necessary TCP Window values). This is only a problem if you are experiencing packet loss, or high jitter on the line, because then more data is subject to being discarded/retransmitted by congested routers.

The trick to the perfect buffering is to find a balance between a "high enough" buffer that will not limit your speed, and "low enough" buffer that will reduce congestion on the network in general (the amount of data waiting to get to you).

It is worth to note the following points:

1. Congestion is a normal part of the TCP protocol, it tries to send data as fast as it can until it fills the buffers.
2. A buffer needs to be high enough to be called a buffer, i.e. by design it needs to allow for variations and increases in speed/latency.
3. Windows 7/8 auto-tunes the TCP Window, so you can only adjust how aggressive that auto-tuning algorithm is, you can't set the TCP Window buffer to a static number. Leaving it at "normal" works well for most broadband connections.

Because of the variations in latency in speed with residential broadband connections, we recommend leaving the TCP Window auto-tuning at "normal" and not limiting it further in Windows 7/8/10.

See Also: Bandwidth * Delay Product


  Post your review/comments
    rate:
   avg:
News Glossary of Terms FAQs Polls Cool Links SpeedGuide Teams SG Premium Services SG Gear Store
Registry Tweaks Broadband Tools Downloads/Patches Broadband Hardware SG Ports Database Security Default Passwords User Stories
Broadband Routers Wireless Firewalls / VPNs Software Hardware User Reviews
Broadband Security Editorials General User Articles Quick Reference
Broadband Forums General Discussions
Advertising Awards Link to us Server Statistics Helping SG About