Forum Discussion
Amedeo_Hu_37541
Aug 29, 2012Nimbostratus
Behavior When Receiving a RST From Server Side Connection
When Configuring WebAccelerator, an issue I encountered is as follows:
The site needs to deliver a large file, which size is about 70MB and can be cached on the surrogate appliances, to the website visitors. After deploying WA (V10.2.1), the download is unable to complete. The packet trace indicates no matter whether the policy caches the file on the WA or always proxies it to the OWS, the WA will send a RST to the client. In fact, the RST is sent by the OWS because of the server-side connection timeouts.
When caching the file on WA, a conditional GET to the OWS would open a server-side connection. After receiving a 304 response, no more data was transmitted within this connection. However, it spent much more time for the client side transmission to complete. Meanwhile, the OWS sent RST to WA for TCP idle timeout ( In fact, OWS first sent FIN to close the connection, but FINWAIT TIMEOUT would also be triggered! ). The RST was then sent to the client side.
When always proxies the file to OWS, the WA would receive the whole file before transmitting it to the client side. Once WA got the file, the OWS began to count the connection idle timeout. Just like the conditional GET, the server side connection would timeout before the client got the whole file. Thus RST was sent to the client terminating the file download.
I know by using OneConnect profile or forcing caching no matter what cache-control header from OWS, the issue can be overcome. However, I still want to get clear:
1, is this behavior determined by LTM? I mean the connection mapping is irrelevant for WA Module.
2, if the answer to Q1 is yes, given that no OneConnect profile is selected for the virtual server, how does the LTM treate RST and FIN from the server-side connection? If there is still some data to be transmitted to client from BIG-IP, and at this time, RST is received from the server, will BIG-IP stop the file transfer and send a RST directly, or will it first keep transmitting the rest part of the file before reset the connection? And, what is the behavior when getting FIN from server?
No RepliesBe the first to reply
Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects