throughput limitation of single TCP session when small RWIN does not seem to be the cause

The name of the pictureThe name of the pictureThe name of the pictureClash 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?







share|improve this question
























    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?







    share|improve this question






















      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?







      share|improve this question












      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?









      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 5 at 17:23









      Martin

      5032364120




      5032364120

























          active

          oldest

          votes











          Your Answer







          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );








           

          draft saved


          draft discarded


















          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



































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes










           

          draft saved


          draft discarded


























           


          draft saved


          draft discarded














          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













































































          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Bahrain

          Postfix configuration issue with fips on centos 7; mailgun relay