throughput limitation of single TCP session when small RWIN does not seem to be the cause
Clash Royale CLAN TAG#URR8PPP
up vote
0
down vote
favorite
I have a server with 10GigE NIC connected to ISP network. Bandwidth provided by ISP for this server is also 10Gbps. When I wget
a 100GB file from remote server(single TCP session), then I can see the throughput around 4Gbps. RTT to this remote server is 5ms. Now when I increase the RTT in my server to 33ms with netem
and download the very same file from the same server, then throughput of this single TCP session falls to around 700Mbps. In a nutshell, it looks like it is clearly a problem of too small TCP receive window. However, my server has TCP window scaling enabled and in initial SYN packet, the shift count is 8. This should mean that maximum RWIN is 16777216(16 MiB) bytes(calculated with (2^16)*(2^8)). When I analyze the packet capture of this download session, then actual maximum RWIN value sent by my server seems to be 6287104 bytes, but even this should provide >1.7Gbps throughput for a single TCP session in case of 33ms RTT. However, as I already mentioned, I see throughput for single TCP session around 700Mbps. What can cause such behavior?
wget tcp bandwidth
add a comment |Â
up vote
0
down vote
favorite
I have a server with 10GigE NIC connected to ISP network. Bandwidth provided by ISP for this server is also 10Gbps. When I wget
a 100GB file from remote server(single TCP session), then I can see the throughput around 4Gbps. RTT to this remote server is 5ms. Now when I increase the RTT in my server to 33ms with netem
and download the very same file from the same server, then throughput of this single TCP session falls to around 700Mbps. In a nutshell, it looks like it is clearly a problem of too small TCP receive window. However, my server has TCP window scaling enabled and in initial SYN packet, the shift count is 8. This should mean that maximum RWIN is 16777216(16 MiB) bytes(calculated with (2^16)*(2^8)). When I analyze the packet capture of this download session, then actual maximum RWIN value sent by my server seems to be 6287104 bytes, but even this should provide >1.7Gbps throughput for a single TCP session in case of 33ms RTT. However, as I already mentioned, I see throughput for single TCP session around 700Mbps. What can cause such behavior?
wget tcp bandwidth
add a comment |Â
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a server with 10GigE NIC connected to ISP network. Bandwidth provided by ISP for this server is also 10Gbps. When I wget
a 100GB file from remote server(single TCP session), then I can see the throughput around 4Gbps. RTT to this remote server is 5ms. Now when I increase the RTT in my server to 33ms with netem
and download the very same file from the same server, then throughput of this single TCP session falls to around 700Mbps. In a nutshell, it looks like it is clearly a problem of too small TCP receive window. However, my server has TCP window scaling enabled and in initial SYN packet, the shift count is 8. This should mean that maximum RWIN is 16777216(16 MiB) bytes(calculated with (2^16)*(2^8)). When I analyze the packet capture of this download session, then actual maximum RWIN value sent by my server seems to be 6287104 bytes, but even this should provide >1.7Gbps throughput for a single TCP session in case of 33ms RTT. However, as I already mentioned, I see throughput for single TCP session around 700Mbps. What can cause such behavior?
wget tcp bandwidth
I have a server with 10GigE NIC connected to ISP network. Bandwidth provided by ISP for this server is also 10Gbps. When I wget
a 100GB file from remote server(single TCP session), then I can see the throughput around 4Gbps. RTT to this remote server is 5ms. Now when I increase the RTT in my server to 33ms with netem
and download the very same file from the same server, then throughput of this single TCP session falls to around 700Mbps. In a nutshell, it looks like it is clearly a problem of too small TCP receive window. However, my server has TCP window scaling enabled and in initial SYN packet, the shift count is 8. This should mean that maximum RWIN is 16777216(16 MiB) bytes(calculated with (2^16)*(2^8)). When I analyze the packet capture of this download session, then actual maximum RWIN value sent by my server seems to be 6287104 bytes, but even this should provide >1.7Gbps throughput for a single TCP session in case of 33ms RTT. However, as I already mentioned, I see throughput for single TCP session around 700Mbps. What can cause such behavior?
wget tcp bandwidth
asked Mar 5 at 17:23
Martin
5032364120
5032364120
add a comment |Â
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f428326%2fthroughput-limitation-of-single-tcp-session-when-small-rwin-does-not-seem-to-be%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password