I have an affiliate uploading files to one of our web servers and it's running slow according to them. They're network is Juniper SRX firewall to Bluecoat ProxySG to our Fortigate. They did a capture on the Bluecoat and sent me their capture file. They're saying that they are using scaling windows but that we are not. From what I researched with the scaling factors and their capture file, I can confirm that we actually are doing scaling windows and maybe a server issue? From them to us...
Next packet from us to them:
asked 04 Nov '16, 08:25 sedberg1 edited 04 Nov '16, 08:35 grahamb ♦ |
2 Answers:
There are several things to look at. First, to "use window scaling" may mean two things:
Your two packet dissections indicate indirectly that both the server and the client have declared support of window size scaling mechanism as the scaling factor differs from 1 in at least one of the directions (the one from the client). But as it is 1 in the packet sent by Fortigate to the Bluecoat, either your server or the Fortigate have decided to use a scaling factor of 1 which is equivalent to not using it in the sense of point 2., limiting the throughput in networks with higher round trip times. The next thing to look at is whether this behaviour comes from your server or from the Fortigate, so you should capture on the path between them (in worst case, at one of them but on the interface looking towards the other one) to see whether it is not the Fortigate box which reduces the maximum window size this way, e.g. to make its life easier when doing deep packet inspection. When you find out which of the boxes is responsible for using a window scaling factor of 1, you can start finding out why it does so and whether that can be changed. answered 04 Nov '16, 11:42 sindy |
Even though window scaling is used (as can be seen in the scaling factors in the two packets), it does not mean that the actually used Receive Window will be increased in size. It just means that the window size field has some extra bits to allow for larger values. In the packet send from you to the client, the calculated value is only 7936. Does this value increase during the upload? What is the largest value seen? You might have to re-configure the Maximum Window Size value in your TCP stack. Please note however that on a server, there are a lot of open connections, so setting the value too high could result in a lot of memory being reserved for all the buffers. answered 16 Nov '16, 02:19 SYN-bit ♦♦ |