Forum Discussion
High-bandwidth WAN Best Practices
With regards to 3 and 4, the interactions between the various settings are still unclear. It appears that there's always two TCP protocol profiles in use, one on the client side and one on the server side. Each of these has a receive window (which would govern inbound traffic) and a send window (which would govern outbound traffic). It seems like if the Proxy Buffer were to be essentially synonymous with the Receive window, one or the other setting would be redundant.
My supposition is that it works like this for a flow outbound from a server to a client:
- Packets are received from the server and ACKed by the network layer according to the specified rules. The Receive Window is decremented appropriately.
- Packets are removed from the receive window by an "application process" and moved into the proxy buffer.
- Packets are removed from the proxy buffer by another "application process" and transmitted to the client, conceptually remaining in a "send buffer" until ACKed by the client.
- If the send buffer gets full, packets are no longer removed from the proxy buffer.
- If the proxy buffer gets full, packets are no longer removed from the receive buffer.
- If packets are not being removed from the proxy buffer, then the available window in the ACKs will decrease and eventually go to zero.
It seems like one could set up an client application which advertises a large window but doesn't read anything from it. If we assume that the server sends a data stream much larger than any of these buffer settings, the following sequence should be seen:
- The client would ACK packets inbound to it, advertising an ever-smaller window.
- Eventually, the client's receive window goes to zero.
- The F5 continues to receive data from the server without decreasing the presented window significantly until the proxy buffer fills up.
- Once the proxy buffer fills, the F5 will advertise smaller windows until the server-side receive window fills up.
All this is inference, of course. It's mostly based on two observations and assumptions:
- Both the Proxy Buffer and Receive Window are documented settings in TCP profiles. They are unlikely to be synonymous.
- It's highly likely that a conceptual application exists to move the data between the server-side networking stack and the client-side networking stack. (This is making no assumptions about how this application may actually be implemented in TMOS)
All of this is relevant to my question only in the fact that these areas aren't documented well enough.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
