Why is my UDP bandwidth significantly lower than TCP bandwidth in iperf

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












1















I am running a simple bandwidth test between two VMs using iperf. I am getting very different bandwidth reading for TCP and UDP where the UDP bandwidth is terribly lower than TCP.



TCP:




root@i-sahmed-node2: ~ # iperf -c 10.160.24.123
------------------------------------------------------------
Client connecting to 10.160.24.123, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 10.160.24.170 port 48339 connected with 10.160.24.123 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 7.41 GBytes 6.36 Gbits/sec
root@i-sahmed-node2: ~ #


UDP:




root@i-sahmed-node2: ~ # iperf -c 10.160.24.123 -u -b 6g
------------------------------------------------------------
Client connecting to 10.160.24.123, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 10.160.24.170 port 51922 connected with 10.160.24.123 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 962 MBytes 807 Mbits/sec
[ 3] Sent 686548 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 630 MBytes 528 Mbits/sec 0.009 ms 237368/686547 (35%)
[ 3] 0.0-10.0 sec 9 datagrams received out-of-order
root@i-sahmed-node2: ~ #


I can reproduce this almost every time. Since I am running on VMs, I don't directly have access to the underlying hardware. Does anyone know why this is happening?










share|improve this question


























    1















    I am running a simple bandwidth test between two VMs using iperf. I am getting very different bandwidth reading for TCP and UDP where the UDP bandwidth is terribly lower than TCP.



    TCP:




    root@i-sahmed-node2: ~ # iperf -c 10.160.24.123
    ------------------------------------------------------------
    Client connecting to 10.160.24.123, TCP port 5001
    TCP window size: 85.0 KByte (default)
    ------------------------------------------------------------
    [ 3] local 10.160.24.170 port 48339 connected with 10.160.24.123 port 5001
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-10.0 sec 7.41 GBytes 6.36 Gbits/sec
    root@i-sahmed-node2: ~ #


    UDP:




    root@i-sahmed-node2: ~ # iperf -c 10.160.24.123 -u -b 6g
    ------------------------------------------------------------
    Client connecting to 10.160.24.123, UDP port 5001
    Sending 1470 byte datagrams
    UDP buffer size: 208 KByte (default)
    ------------------------------------------------------------
    [ 3] local 10.160.24.170 port 51922 connected with 10.160.24.123 port 5001
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-10.0 sec 962 MBytes 807 Mbits/sec
    [ 3] Sent 686548 datagrams
    [ 3] Server Report:
    [ 3] 0.0-10.0 sec 630 MBytes 528 Mbits/sec 0.009 ms 237368/686547 (35%)
    [ 3] 0.0-10.0 sec 9 datagrams received out-of-order
    root@i-sahmed-node2: ~ #


    I can reproduce this almost every time. Since I am running on VMs, I don't directly have access to the underlying hardware. Does anyone know why this is happening?










    share|improve this question
























      1












      1








      1








      I am running a simple bandwidth test between two VMs using iperf. I am getting very different bandwidth reading for TCP and UDP where the UDP bandwidth is terribly lower than TCP.



      TCP:




      root@i-sahmed-node2: ~ # iperf -c 10.160.24.123
      ------------------------------------------------------------
      Client connecting to 10.160.24.123, TCP port 5001
      TCP window size: 85.0 KByte (default)
      ------------------------------------------------------------
      [ 3] local 10.160.24.170 port 48339 connected with 10.160.24.123 port 5001
      [ ID] Interval Transfer Bandwidth
      [ 3] 0.0-10.0 sec 7.41 GBytes 6.36 Gbits/sec
      root@i-sahmed-node2: ~ #


      UDP:




      root@i-sahmed-node2: ~ # iperf -c 10.160.24.123 -u -b 6g
      ------------------------------------------------------------
      Client connecting to 10.160.24.123, UDP port 5001
      Sending 1470 byte datagrams
      UDP buffer size: 208 KByte (default)
      ------------------------------------------------------------
      [ 3] local 10.160.24.170 port 51922 connected with 10.160.24.123 port 5001
      [ ID] Interval Transfer Bandwidth
      [ 3] 0.0-10.0 sec 962 MBytes 807 Mbits/sec
      [ 3] Sent 686548 datagrams
      [ 3] Server Report:
      [ 3] 0.0-10.0 sec 630 MBytes 528 Mbits/sec 0.009 ms 237368/686547 (35%)
      [ 3] 0.0-10.0 sec 9 datagrams received out-of-order
      root@i-sahmed-node2: ~ #


      I can reproduce this almost every time. Since I am running on VMs, I don't directly have access to the underlying hardware. Does anyone know why this is happening?










      share|improve this question














      I am running a simple bandwidth test between two VMs using iperf. I am getting very different bandwidth reading for TCP and UDP where the UDP bandwidth is terribly lower than TCP.



      TCP:




      root@i-sahmed-node2: ~ # iperf -c 10.160.24.123
      ------------------------------------------------------------
      Client connecting to 10.160.24.123, TCP port 5001
      TCP window size: 85.0 KByte (default)
      ------------------------------------------------------------
      [ 3] local 10.160.24.170 port 48339 connected with 10.160.24.123 port 5001
      [ ID] Interval Transfer Bandwidth
      [ 3] 0.0-10.0 sec 7.41 GBytes 6.36 Gbits/sec
      root@i-sahmed-node2: ~ #


      UDP:




      root@i-sahmed-node2: ~ # iperf -c 10.160.24.123 -u -b 6g
      ------------------------------------------------------------
      Client connecting to 10.160.24.123, UDP port 5001
      Sending 1470 byte datagrams
      UDP buffer size: 208 KByte (default)
      ------------------------------------------------------------
      [ 3] local 10.160.24.170 port 51922 connected with 10.160.24.123 port 5001
      [ ID] Interval Transfer Bandwidth
      [ 3] 0.0-10.0 sec 962 MBytes 807 Mbits/sec
      [ 3] Sent 686548 datagrams
      [ 3] Server Report:
      [ 3] 0.0-10.0 sec 630 MBytes 528 Mbits/sec 0.009 ms 237368/686547 (35%)
      [ 3] 0.0-10.0 sec 9 datagrams received out-of-order
      root@i-sahmed-node2: ~ #


      I can reproduce this almost every time. Since I am running on VMs, I don't directly have access to the underlying hardware. Does anyone know why this is happening?







      linux networking performance






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jun 16 '15 at 19:00









      syedsyed

      62




      62




















          1 Answer
          1






          active

          oldest

          votes


















          0














          ./iPerf in UDP mode has to keep track of the performance of every UDP packet, whereas in TCP mode, the only interaction is the final summary.



          800Mb/sec is about the limit for guest VM's that I've seen.






          share|improve this answer
























            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',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            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%2f210062%2fwhy-is-my-udp-bandwidth-significantly-lower-than-tcp-bandwidth-in-iperf%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            ./iPerf in UDP mode has to keep track of the performance of every UDP packet, whereas in TCP mode, the only interaction is the final summary.



            800Mb/sec is about the limit for guest VM's that I've seen.






            share|improve this answer





























              0














              ./iPerf in UDP mode has to keep track of the performance of every UDP packet, whereas in TCP mode, the only interaction is the final summary.



              800Mb/sec is about the limit for guest VM's that I've seen.






              share|improve this answer



























                0












                0








                0







                ./iPerf in UDP mode has to keep track of the performance of every UDP packet, whereas in TCP mode, the only interaction is the final summary.



                800Mb/sec is about the limit for guest VM's that I've seen.






                share|improve this answer















                ./iPerf in UDP mode has to keep track of the performance of every UDP packet, whereas in TCP mode, the only interaction is the final summary.



                800Mb/sec is about the limit for guest VM's that I've seen.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Oct 26 '15 at 23:29









                Thomas Dickey

                53.7k5103175




                53.7k5103175










                answered Oct 26 '15 at 22:39









                user140336user140336

                1




                1



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f210062%2fwhy-is-my-udp-bandwidth-significantly-lower-than-tcp-bandwidth-in-iperf%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown






                    Popular posts from this blog

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

                    Displaying single band from multi-band raster using QGIS

                    How many registers does an x86_64 CPU actually have?