Main.50Gbps History
Hide minor edits - Show changes to output
April 20, 2021, at 03:04 PM
by - tip about checksum
Added lines 54-55:
'''Note:''' with more recent versions, you might also want to disable MPTCP DSS checksum if you are in a controlled environment: @@sysctl -w net.mptcp.mptcp_checksum=0@@
Changed line 39 from:
to:
All the customizations have been integrated into the latest v0.89 stable release of MPTCP.
Changed line 12 from:
Transferring data quickly is a key objective for a large number of applications inside datacenters. While some datacenters are still using Gigabit/sec Ethernet interfaces, many are installing 10 Gigabit/sec interfaces on high-end servers. The next step will be 40 Gigabit/sec and 100 Gigabit/sec, but these technologies are still expensive today. Multipath TCP is a TCP extension specifiec in RFC6824 that allows endhosts to efficiently use multiple interfaces for a single TCP
to:
Transferring data quickly is a key objective for a large number of applications inside datacenters. While some datacenters are still using Gigabit/sec Ethernet interfaces, many are installing 10 Gigabit/sec interfaces on high-end servers. The next step will be 40 Gigabit/sec and 100 Gigabit/sec, but these technologies are still expensive today. Multipath TCP is a TCP extension specified in RFC6824 that allows endhosts to efficiently use multiple interfaces for a single TCP
Changed line 29 from:
interface. Additionally, MPTCP allows mobile hosts to handover traffic from WiFi to 3G, without disrupting the application (TODO - add link to android-video). Various other use case exist for Multipath TCP in datacenters, for IPv6/IPv4 coexistence, ...
to:
interface. Additionally, MPTCP allows mobile hosts to handover traffic from WiFi to 3G, without disrupting the application. Various other use case exist for Multipath TCP in datacenters, for IPv6/IPv4 coexistence, ...
Changed lines 19-21 from:
The video below demonstrates the goodput achieved by Multipath TCP in this setup. We use netperf and open a '''SINGLE TCP''' connection between the two servers. At startup, Multipath TCP is enabled on only one interface and netperf is able to fully use one interface. This is the
goodput that regular TCP would normally achieve. Then, we successively enable Multipath TCP on the other Ethernet interfaces. Multipath TCP adapts automatically to the available bandwidth and can quickly benefit from the new paths.
goodput that regular TCP would normally achieve. Then, we successively enable Multipath TCP on the other Ethernet interfaces. Multipath TCP adapts automatically to the available bandwidth and can quickly benefit from the new paths.
to:
The video below demonstrates the goodput achieved by Multipath TCP in this setup. We use netperf and open a '''SINGLE TCP''' connection between the two servers. At startup, Multipath TCP is enabled on only one interface and netperf is able to fully use one interface. This is the goodput that regular TCP would normally achieve. Then, we successively enable Multipath TCP on the other Ethernet interfaces. Multipath TCP adapts automatically to the available bandwidth and can quickly benefit from the new paths.
Changed line 23 from:
Using recent hardware and 3 dual-port 10Gig NICs, Multipath TCP is able to transmit a single data-stream at the rate of up to '''51.8 Gbit/s'''. This corresponds to more than 1 DVD per second, or an entire Blu-Ray disk (25GB) in only 5 seconds !
to:
Using recent hardware and 3 dual-port 10Gig NICs, Multipath TCP is able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s'''. This corresponds to more than 1 DVD per second, or an entire Blu-Ray disk (25GB) in only 5 seconds !
Changed line 22 from:
<iframe width="560" height="315" src="http://www.youtube.com/embed/OfQuBAW5_kI" frameborder="0" allowfullscreen></iframe>
to:
<iframe width="560" height="315" src="http://www.youtube.com/embed/VMdPI9Cfi9k" frameborder="0" allowfullscreen></iframe>
Changed line 56 from:
The last element of our setup is netperf. netperf is a standard tool that allows to benchmark the performance of TCP. We use a custom netperf implementation. The netperf implementation is extended to perform real zero-copy send/receive by using the omni-test. Our patch has been submitted to the netperf community but has not yet been included in the standard netperf implementation. It can be retrieved from %newwin%[[http://github.com/cpaasch/netperf|github]].
to:
The last element of our setup is netperf. netperf is a standard tool that allows to benchmark the performance of TCP. We use a custom netperf implementation. The netperf implementation is extended to perform real zero-copy send/receive by using the omni-test. Our patch has been submitted to the netperf community but has not yet been included in the standard netperf implementation. It can be retrieved from %newwin%[[http://github.com/multipath-tcp/netperf|github]].
Changed line 17 from:
Our lab uses two HP DL380p G7 generously provided by HP Belgium. Each server contains 3 Intel dual-port 10 Gig NICs (Intel 82599EB 10Gb Ethernet). Each server runs the Linux Kernel with our Multipath TCP implementation.
to:
Our lab uses two HP DL380p G7 generously provided by HP Belgium. Each server contains 3 Intel dual-port 10 Gig NICs (Intel 82599EB 10Gb Ethernet), offered by Intel. Each server runs the Linux Kernel with our Multipath TCP implementation.
Changed line 6 from:
''S. Barré, C. Paasch, G. Detal, S. Barré,F. Duchêne, O. Bonaventure''\\
to:
''C. Paasch, G. Detal, S. Barré, F. Duchêne, O. Bonaventure''\\
Changed line 6 from:
''S. Barré, C. Paasch, G. Detal, F. Duchêne, O. Bonaventure''\\
to:
''S. Barré, C. Paasch, G. Detal, S. Barré,F. Duchêne, O. Bonaventure''\\
Changed line 22 from:
to:
<iframe width="560" height="315" src="http://www.youtube.com/embed/OfQuBAW5_kI" frameborder="0" allowfullscreen></iframe>
Changed line 29 from:
to:
Multipath TCP is a solution that allows to simultaneously use multiple interfaces/IP-addresses for a single data-stream, while still presenting a standard TCP socket API to the application. Multipath TCP thus allows to increase the download-speed by aggregating the bandwidth of each
Changed line 1 from:
|| border=0 width=600px
to:
|| border=0 width=800px
Changed line 1 from:
|| border=0 width=400px
to:
|| border=0 width=600px
Changed lines 1-3 from:
to:
|| border=0 width=400px
||%newwin%[[http://www.trilogy2.it.uc3m.es/ | http://multipath-tcp.org/pub/trilogy2.png"Trilogy 2"]]||%newwin width=150px%[[http://change-project.eu/ | http://multipath-tcp.org/pub/change-logo.jpg"Change Project"]]
||%newwin%[[http://www.trilogy2.it.uc3m.es/ | http://multipath-tcp.org/pub/trilogy2.png"Trilogy 2"]]||%newwin width=150px%[[http://change-project.eu/ | http://multipath-tcp.org/pub/change-logo.jpg"Change Project"]]
Changed lines 1-2 from:
%left newwin%[[http://www.trilogy2.it.uc3m.es/ | http://multipath-tcp.org/pub/trilogy2.png"Trilogy 2"]]
%right newwin%[[http://change-project.eu/ | http://multipath-tcp.org/pub/change-logo.jpg"Change Project"]]
%right newwin%[[http://change-project.eu/ | http://multipath-tcp.org/pub/change-logo.jpg"Change Project"]]
to:
%left newwin%[[http://www.trilogy2.it.uc3m.es/ | http://multipath-tcp.org/pub/trilogy2.png"Trilogy 2"]]%right newwin%[[http://change-project.eu/ | http://multipath-tcp.org/pub/change-logo.jpg"Change Project"]]
Added line 2:
%right newwin%[[http://change-project.eu/ | http://multipath-tcp.org/pub/change-logo.jpg"Change Project"]]
Added lines 1-2:
%left newwin%[[http://www.trilogy2.it.uc3m.es/ | http://multipath-tcp.org/pub/trilogy2.png"Trilogy 2"]]
Changed line 58 from:
What are the options?
to:
What are these options?
Changed lines 20-22 from:
Using recent hardware and 3 dual-port 10Gig NICs, Multipath TCP is able to transmit a single data-stream at the rate of up to 51.8 Gbit/s. This corresponds to more than 1 DVD per second, or an entire Blu-Ray disk (25GB) in only 5 seconds !
to:
Using recent hardware and 3 dual-port 10Gig NICs, Multipath TCP is able to transmit a single data-stream at the rate of up to '''51.8 Gbit/s'''. This corresponds to more than 1 DVD per second, or an entire Blu-Ray disk (25GB) in only 5 seconds !
Changed line 69 from:
If you have any question or problems setting up this environment, let us know on the list.
to:
If you have any question or problems setting up this environment, let us know on the list.
Changed lines 7-56 from:
Today's high-end servers usually install 10Gigabit Ethernet cards, in order to allow a fast transmission of data between two machines.
Often this is not enough.
\\
-> '''''How can one increase its network-speed?'''''
* You can add additional 10Gig NICs to your server. However, one single data-stream will still be limited at 10 Gbps.
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably exceeding your budget (%newwin%[[http://www.networkworld.com/news/2012/111312-extreme-blackdiamond-264212.html|35000$ per 100Gig port]]).
So, either you are rich and can buy the expensive 100Gig NICs, or you are stuck at 10Gigabit/second for transmitting your data... '''But we have changed this:'''
\\
\\
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs, we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s'''.''++]
\\
\\
-> '''''What does this means for you?'''''
You can copy between two machines:
* more than '''1 DVD per second !!!'''
* a '''whole Blu-Ray disk (25GB) in 5 seconds !!!'''
\\
-> '''''So, how do we do this?'''''
We use %newwin%[[http://www.multipath-tcp.org|MultiPath TCP]] to send the data between two machines. Both machines have 6 10Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
\\
-> '''''Let's remove some doubts about our setup:'''''
* No, the application does not create multiple stream sockets (e.g., P2P-like). MultiPath TCP is transparent to the application. Applications think they are using regular TCP.
* No, we do not use link-bonding to aggregate the bandwidth.
* No, this is not per-packet load balancing.
Have a look at this video, which shows what happens if we enable one interface after the other:
TODO - include vid from youtube.
\\
-> '''''The technical details'''''
MultiPath TCP (short MPTCP) is being standardized at the %newwin%[[https://datatracker.ietf.org/wg/mptcp/|IETF]]. MultiPath TCP is a solution that allows to simultaneously use multiple interfaces/IP-addresses for a single data-stream, while still presenting a standard TCP socket API to the application. MultiPath TCP thus allows to increase the download-speed by aggregating the bandwidth of each interface. Additionally, MPTCP allows mobile hosts to handover traffic from WiFi to 3G, without disrupting the application (TODO - add link to android-video).
The %newwin%[[http:/inl.info.ucl.ac.be|IP Networking Lab]] from the UCLouvain in Belgium is implementing the reference implementation of MPTCP in the Linux Kernel.
Using the Linux Kernel MPTCP implementation on two servers : HP DL380p G7, with 3 Intel dual-port 10Gig NICs (Intel 82599EB 10Gb Ethernet). Thus, we have 6 paths between each server:
to:
Transferring data quickly is a key objective for a large number of applications inside datacenters. While some datacenters are still using Gigabit/sec Ethernet interfaces, many are installing 10 Gigabit/sec interfaces on high-end servers. The next step will be 40 Gigabit/sec and 100 Gigabit/sec, but these technologies are still expensive today. Multipath TCP is a TCP extension specifiec in RFC6824 that allows endhosts to efficiently use multiple interfaces for a single TCP
connection. To test the performance limits of Multipath TCP using 10 Gigabit/sec interfaces, we built the following setup in our lab :
connection. To test the performance limits of Multipath TCP using 10 Gigabit/sec interfaces, we built the following setup in our lab :
Changed lines 12-27 from:
-> '''''How to reproduce this?'''''
The Linux Kernel being used on these machines is based on the %newwin%[[http://multipath-tcp
* Rebased the kernel to the latest net-next
* Added hardware offloading-support for MPTCP (will be released in the next stable MPTCP-release)
* By default MPTCP establishes a full mesh of TCP subflows among all IP-addresses between both hosts. The custom kernel prevents this and only establishes 1 TCP subflow per interface.
* Some minor optimizations to
You can access our custom kernel on %newwin%[[http://github.com/multipath
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it %newwin%[[http://multipath-tcp.org/data/10gig/config_file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines, we run
to:
Our lab uses two HP DL380p G7 generously provided by HP Belgium. Each server contains 3 Intel dual-port 10 Gig NICs (Intel 82599EB 10Gb Ethernet). Each server runs the Linux Kernel with our Multipath TCP implementation.
The video below demonstrates the goodput achieved by Multipath TCP in this setup. We use netperf and open a '''SINGLE TCP''' connection between the two servers. At startup, Multipath TCP is enabled on only one interface and netperf is able to fully use one interface. This is the
goodput that regular TCP would normally achieve. Then, we successively enable Multipath TCP on the other Ethernet interfaces. Multipath TCP adapts automatically to the available bandwidth and can quickly benefit from the new paths.
VIDEO
Using recent hardware and 3 dual-port 10Gig NICs, Multipath TCP is able to transmit a single data-stream at the rate of up to 51.8 Gbit/s. This corresponds to more than 1 DVD per second, or an entire Blu-Ray disk (25GB) in only 5 seconds !
'''''The technical details'''''
MultiPath TCP is a solution that allows to simultaneously use multiple interfaces/IP-addresses for a single data-stream, while still presenting a standard TCP socket API to the application. MultiPath TCP thus allows to increase the download-speed by aggregating the bandwidth of each
interface. Additionally, MPTCP allows mobile hosts to handover traffic from WiFi to 3G, without disrupting the application (TODO - add link to android-video). Various other use case exist for Multipath TCP in datacenters, for IPv6/IPv4 coexistence, ...
To achieve this record, researchers from Université catholique de Louvain in Belgium have tuned their reference implementation of MPTCP in the Linux Kernel. All the software used to achieve this performance are open-source and publicly available.
The Linux Kernel being used on these machines is based on the %newwin%[[http://multipath-tcp.org/pmwiki.php?n=Main.Release86|stable v0.86]] release of Multipath TCP. This stable release has been tuned to improve its performance :
* the kernel has been rebased to the latest net-next
* we added hardware offloading-support for MPTCP (will be included in the next stable MPTCP-release)
* by default the v0.86 Multipath TCP kernel establishes a full mesh of TCP subflows among all available IP addresses between both hosts. The custom kernel prevents this and only establishes one TCP subflow per interface.
* Some minor optimizations to the Multipath TCP stack which will be part of the upcoming v0.87 release.
This custom kernel is available on %newwin%[[http://github.com/multipath-tcp/mptcp|github]] in branch 10gig_record.
Another factor that influences the performance of Multipath TCP is the configuration of the kernel. To achieve 50 Gbps, we have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it %newwin%[[http://multipath-tcp.org/data/10gig/config_file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines, we ran a special configuration-file on the client and the server. This configuration performs the following tuning :
The video below demonstrates the goodput achieved by Multipath TCP in this setup. We use netperf and open a '''SINGLE TCP''' connection between the two servers. At startup, Multipath TCP is enabled on only one interface and netperf is able to fully use one interface. This is the
goodput that regular TCP would normally achieve. Then, we successively enable Multipath TCP on the other Ethernet interfaces. Multipath TCP adapts automatically to the available bandwidth and can quickly benefit from the new paths.
VIDEO
Using recent hardware and 3 dual-port 10Gig NICs, Multipath TCP is able to transmit a single data-stream at the rate of up to 51.8 Gbit/s. This corresponds to more than 1 DVD per second, or an entire Blu-Ray disk (25GB) in only 5 seconds !
'''''The technical details'''''
MultiPath TCP is a solution that allows to simultaneously use multiple interfaces/IP-addresses for a single data-stream, while still presenting a standard TCP socket API to the application. MultiPath TCP thus allows to increase the download-speed by aggregating the bandwidth of each
interface. Additionally, MPTCP allows mobile hosts to handover traffic from WiFi to 3G, without disrupting the application (TODO - add link to android-video). Various other use case exist for Multipath TCP in datacenters, for IPv6/IPv4 coexistence, ...
To achieve this record, researchers from Université catholique de Louvain in Belgium have tuned their reference implementation of MPTCP in the Linux Kernel. All the software used to achieve this performance are open-source and publicly available.
The Linux Kernel being used on these machines is based on the %newwin%[[http://multipath-tcp.org/pmwiki.php?n=Main.Release86|stable v0.86]] release of Multipath TCP. This stable release has been tuned to improve its performance :
* the kernel has been rebased to the latest net-next
* we added hardware offloading-support for MPTCP (will be included in the next stable MPTCP-release)
* by default the v0.86 Multipath TCP kernel establishes a full mesh of TCP subflows among all available IP addresses between both hosts. The custom kernel prevents this and only establishes one TCP subflow per interface.
* Some minor optimizations to the Multipath TCP stack which will be part of the upcoming v0.87 release.
This custom kernel is available on %newwin%[[http://github.com/multipath-tcp/mptcp|github]] in branch 10gig_record.
Another factor that influences the performance of Multipath TCP is the configuration of the kernel. To achieve 50 Gbps, we have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it %newwin%[[http://multipath-tcp.org/data/10gig/config_file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines, we ran a special configuration-file on the client and the server. This configuration performs the following tuning :
Changed lines 47-56 from:
* Set the congestion-control, timestamp, sack,... parameters through the sysctl interface.
You can download the %newwin%[[http://multipath-tcp.org/data/10gig/client_script.sh|client's script]] and the %newwin%[[http://multipath-tcp.org/data/10gig/server_script.sh|server's script]].
Now, you can start running an experiment. We use a custom netperf implementation. The netperf implementation is extended to do real zero-copy send/receive with the omni-test. The %newwin%[[http://www.netperf.org/pipermail/netperf-talk/2013-March/001055.html|patch]] had been submitted to the netperf community but has up to now not been included in the standard netperf implementation.
So, for convenience, you can access our netperf implementation from%newwin%[[http://github.com/cpaasch/netperf|github]].
Now, you can launch netperf:
So, for convenience, you can access our netperf implementation from
to:
* Set the congestion-control, timestamp, sack,... parameters by using the sysctl interface.
Here are the %newwin%[[http://multipath-tcp.org/data/10gig/client_script.sh|client's script]] and the %newwin%[[http://multipath-tcp.org/data/10gig/server_script.sh|server's script]].
The last element of our setup is netperf. netperf is a standard tool that allows to benchmark the performance of TCP. We use a custom netperf implementation. The netperf implementation is extended to perform real zero-copy send/receive by using the omni-test. Our patch has been submitted to the netperf community but has not yet been included in the standard netperf implementation. It can be retrieved from %newwin%[[http://github.com/cpaasch/netperf|github]].
netperf was used with the following parameters :
Here are the %newwin%[[http://multipath-tcp.org/data/10gig/client_script.sh|client's script]] and the %newwin%[[http://multipath-tcp.org/data/10gig/server_script.sh|server's script]].
The last element of our setup is netperf. netperf is a standard tool that allows to benchmark the performance of TCP. We use a custom netperf implementation. The netperf implementation is extended to perform real zero-copy send/receive by using the omni-test. Our patch has been submitted to the netperf community but has not yet been included in the standard netperf implementation. It can be retrieved from %newwin%[[http://github.com/cpaasch/netperf|github]].
netperf was used with the following parameters :
Changed lines 60-61 from:
* @@-l 30@@ let's run the test for 30 seconds
* @@-T 1/1@@ we pin the applications on the client and the server side to CPU 1.
to:
* @@-l 30@@ the duration of the test (30 seconds)
* @@-T 1/1@@ to pin the applications on the client and the server side to CPU 1.
* @@-T 1/1@@ to pin the applications on the client and the server side to CPU 1.
Changed line 63 from:
* @@-m 512k@@ size of the send-buffer
to:
* @@-m 512k@@ specifies the size of the send-buffer
Changed lines 66-68 from:
If you have any question or problems setting up this environment, let us know on the list.
to:
If you experiment with this setup, please report the performance you achieved on the %newwin%[[https://listes-2.sipr.ucl.ac.be/sympa/info/mptcp-dev|mptcp-dev Mailing-List]].
If you have any question or problems setting up this environment, let us know on the list.
If you have any question or problems setting up this environment, let us know on the list.
Changed lines 2-3 from:
''S. Barré, C. Paasch, G. Detal, F. Duchêne, O. Bonaventure''
to:
''S. Barré, C. Paasch, G. Detal, F. Duchêne, O. Bonaventure''\\
''ICTEAM, UCLouvain, Louvain-la-Neuve, Belgium''
''ICTEAM, UCLouvain, Louvain-la-Neuve, Belgium''
Changed line 1 from:
%center%[+++'''The fastest TCP connection with Multipath TCP'''+++]
to:
%center%[+++'''The fastest TCP connection with Multipath TCP'''+++]\\
Changed lines 1-2 from:
%center%[+++'''The fastest data stream in the world!!!'''+++]
to:
%center%[+++'''The fastest TCP connection with Multipath TCP'''+++]
''S. Barré, C. Paasch, G. Detal, F. Duchêne, O. Bonaventure''
''S. Barré, C. Paasch, G. Detal, F. Duchêne, O. Bonaventure''
Added lines 56-57:
MPTCP will send the data over each of these interfaces by creating a TCP subflow along each of these paths. This allows MPTCP to aggregate the available bandwidth.
Changed line 20 from:
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs, we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
to:
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs, we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s'''.''++]
Changed line 20 from:
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
to:
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs, we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
Changed line 20 from:
%center%[++'' "Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts." ''++]
to:
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
Changed line 20 from:
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
to:
%center%[++'' "Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts." ''++]
Deleted lines 15-16:
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
Added lines 17-23:
\\
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
\\
\\
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
\\
\\
Changed line 17 from:
%center%[+''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''+]
to:
%center%[++''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''++]
Changed line 17 from:
[+''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''+]
to:
%center%[+''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''+]
Changed line 17 from:
[+Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.+]
to:
[+''Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.''+]
Changed line 17 from:
Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.
to:
[+Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.+]
Added lines 14-15:
So, either you are rich and can buy the expensive 100Gig NICs, or you are stuck at 10Gigabit/second for transmitting your data... '''But we have changed this:'''
Changed line 1 from:
to:
%center%[+++'''The fastest data stream in the world!!!'''+++]
Changed line 1 from:
->-> [+++'''The fastest data stream in the world!!!'''+++]
to:
-> -> [+++'''The fastest data stream in the world!!!'''+++]
Changed lines 1-2 from:
-> [+++'''The fastest data stream in the world!!!'''+++]
to:
->-> [+++'''The fastest data stream in the world!!!'''+++]
\\
\\
\\
\\
Changed line 1 from:
-> [++The fastest data stream in the world!!!++]
to:
-> [+++'''The fastest data stream in the world!!!'''+++]
Changed line 1 from:
-> [++larger++] The fastest data stream in the world!!! [++larger++]
to:
-> [++The fastest data stream in the world!!!++]
Changed lines 1-2 from:
to:
-> [++larger++] The fastest data stream in the world!!! [++larger++]
Changed line 89 from:
If you have any question or problems setting up this environment, let us know on the list. We are happy to help you!
to:
If you have any question or problems setting up this environment, let us know on the list. We are happy to help you!
Changed line 1 from:
to:
! The fastest data stream in the world!!!
Changed line 1 from:
! The fastest data stream in the world!!!
to:
-> ! The fastest data stream in the world!!!
Changed line 80 from:
* @@-T 1/1/@@ we pin the applications on the client and the server side to CPU 1.
to:
* @@-T 1/1@@ we pin the applications on the client and the server side to CPU 1.
Changed lines 70-87 from:
So, for convenience, you can access our netperf implementation from %newwin%[[http://github.com/cpaasch/netperf|github]].
to:
So, for convenience, you can access our netperf implementation from %newwin%[[http://github.com/cpaasch/netperf|github]].
Now, you can launch netperf:
@@root@comp9server:~# netperf -t omni -H 10.1.10.2 -l 30 -T 1/1 -c -C -- -m 512k -V@@
What are the options?
* @@-t omni@@ specifies the netperf-test to use. This sends a single data-stream between two hosts.
* @@-H 10.1.10.2@@ the destination-server's IP address
* @@-l 30@@ let's run the test for 30 seconds
* @@-T 1/1/@@ we pin the applications on the client and the server side to CPU 1.
* @@-c -C@@ output statistics on the CPU-usage at the end of the test
* @@-m 512k@@ size of the send-buffer
* @@-V@@ use zero-copy send and receive
Let us know what bandwidth you get in your setup on the %newwin%[[https://listes-2.sipr.ucl.ac.be/sympa/info/mptcp-dev|mptcp-dev Mailing-List]].
If you have any question or problems setting up this environment, let us know on the list. We are happy to help you!
Now, you can launch netperf:
@@root@comp9server:~# netperf -t omni -H 10.1.10.2 -l 30 -T 1/1 -c -C -- -m 512k -V@@
What are the options?
* @@-t omni@@ specifies the netperf-test to use. This sends a single data-stream between two hosts.
* @@-H 10.1.10.2@@ the destination-server's IP address
* @@-l 30@@ let's run the test for 30 seconds
* @@-T 1/1/@@ we pin the applications on the client and the server side to CPU 1.
* @@-c -C@@ output statistics on the CPU-usage at the end of the test
* @@-m 512k@@ size of the send-buffer
* @@-V@@ use zero-copy send and receive
Let us know what bandwidth you get in your setup on the %newwin%[[https://listes-2.sipr.ucl.ac.be/sympa/info/mptcp-dev|mptcp-dev Mailing-List]].
If you have any question or problems setting up this environment, let us know on the list. We are happy to help you!
Changed line 55 from:
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it %newwin%[[http://multipath-tcp.org/data/10gig/config-file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
to:
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it %newwin%[[http://multipath-tcp.org/data/10gig/config_file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
Changed line 25 from:
We use %newwin%[[http://www.multipath-tcp.org|MultiPath TCP]] to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
to:
We use %newwin%[[http://www.multipath-tcp.org|MultiPath TCP]] to send the data between two machines. Both machines have 6 10Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
Changed line 10 from:
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting your budget (%newwin%[[http://www.networkworld.com/news/2012/111312-extreme-blackdiamond-264212.html|35000$ per 100Gig port]]).
to:
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably exceeding your budget (%newwin%[[http://www.networkworld.com/news/2012/111312-extreme-blackdiamond-264212.html|35000$ per 100Gig port]]).
Changed line 59 from:
* Enable [[https://code.google.com/p/kernel/wiki/NetScalingGuide|Receive-Flow-Steering]].
to:
* Enable %newwin%[[https://code.google.com/p/kernel/wiki/NetScalingGuide|Receive-Flow-Steering]].
Changed lines 68-70 from:
Now, you can start running an experiment. We use a custom netperf implementation. The netperf implementation is extended to do real zero-copy send/receive with the omni-test. The [[http://www.netperf.org/pipermail/netperf-talk/2013-March/001055.html|patch]] had been submitted to the netperf community but has up to now not been included in the standard netperf implementation.
So, for convenience, you can access our netperf implementation from [[http://github.com/cpaasch/netperf|github]].
So, for convenience, you can access our netperf implementation from [[http://github.com/cpaasch/netperf|github]].
to:
Now, you can start running an experiment. We use a custom netperf implementation. The netperf implementation is extended to do real zero-copy send/receive with the omni-test. The %newwin%[[http://www.netperf.org/pipermail/netperf-talk/2013-March/001055.html|patch]] had been submitted to the netperf community but has up to now not been included in the standard netperf implementation.
So, for convenience, you can access our netperf implementation from %newwin%[[http://github.com/cpaasch/netperf|github]].
So, for convenience, you can access our netperf implementation from %newwin%[[http://github.com/cpaasch/netperf|github]].
Changed lines 66-70 from:
You can download the %newwin%[[http://multipath-tcp.org/data/10gig/client_script.sh|client's script]] and the %newwin%[[http://multipath-tcp.org/data/10gig/server_script.shserver's script]]
to:
You can download the %newwin%[[http://multipath-tcp.org/data/10gig/client_script.sh|client's script]] and the %newwin%[[http://multipath-tcp.org/data/10gig/server_script.sh|server's script]].
Now, you can start running an experiment. We use a custom netperf implementation. The netperf implementation is extended to do real zero-copy send/receive with the omni-test. The [[http://www.netperf.org/pipermail/netperf-talk/2013-March/001055.html|patch]] had been submitted to the netperf community but has up to now not been included in the standard netperf implementation.
So, for convenience, you can access our netperf implementation from [[http://github.com/cpaasch/netperf|github]].
Now, you can start running an experiment. We use a custom netperf implementation. The netperf implementation is extended to do real zero-copy send/receive with the omni-test. The [[http://www.netperf.org/pipermail/netperf-talk/2013-March/001055.html|patch]] had been submitted to the netperf community but has up to now not been included in the standard netperf implementation.
So, for convenience, you can access our netperf implementation from [[http://github.com/cpaasch/netperf|github]].
Changed line 47 from:
The Linux Kernel being used on these machines is based on the [[http://multipath-tcp.org/pmwiki.php?n=Main.Release86|stable v0.86]] release of MPTCP. However, some modifications have been done to this kernel:
to:
The Linux Kernel being used on these machines is based on the %newwin%[[http://multipath-tcp.org/pmwiki.php?n=Main.Release86|stable v0.86]] release of MPTCP. However, some modifications have been done to this kernel:
Changed lines 53-57 from:
You can access our custom kernel on [[http://github.com/multipath-tcp/mptcp|github]] in branch 10gig_record.
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it [[http://multipath-tcp.org/data/10gig/config-file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines,
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it [[http://multipath-tcp.org/data/10gig/config-file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines,
to:
You can access our custom kernel on %newwin%[[http://github.com/multipath-tcp/mptcp|github]] in branch 10gig_record.
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it %newwin%[[http://multipath-tcp.org/data/10gig/config-file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines, we run a configuration-file on the client and the server. Their purpose is the following:
* Enable [[https://code.google.com/p/kernel/wiki/NetScalingGuide|Receive-Flow-Steering]].
* Configure the MTU and tx-queue length of each interface
* Adjust interrupt-coalescing parameters of each interface
* Set the interrupt affinity of each NIC (interrupts are sent to another CPU than the one where the application is running)
* Increase the maximum memory settings of the TCP/IP stack
* Set the congestion-control, timestamp, sack,... parameters through the sysctl interface.
You can download the %newwin%[[http://multipath-tcp.org/data/10gig/client_script.sh|client's script]] and the %newwin%[[http://multipath-tcp.org/data/10gig/server_script.shserver's script]]
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it %newwin%[[http://multipath-tcp.org/data/10gig/config-file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines, we run a configuration-file on the client and the server. Their purpose is the following:
* Enable [[https://code.google.com/p/kernel/wiki/NetScalingGuide|Receive-Flow-Steering]].
* Configure the MTU and tx-queue length of each interface
* Adjust interrupt-coalescing parameters of each interface
* Set the interrupt affinity of each NIC (interrupts are sent to another CPU than the one where the application is running)
* Increase the maximum memory settings of the TCP/IP stack
* Set the congestion-control, timestamp, sack,... parameters through the sysctl interface.
You can download the %newwin%[[http://multipath-tcp.org/data/10gig/client_script.sh|client's script]] and the %newwin%[[http://multipath-tcp.org/data/10gig/server_script.shserver's script]]
Changed lines 45-57 from:
%center% %width=500px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
to:
%center% %width=500px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
The Linux Kernel being used on these machines is based on the [[http://multipath-tcp.org/pmwiki.php?n=Main.Release86|stable v0.86]] release of MPTCP. However, some modifications have been done to this kernel:
* Rebased the kernel to the latest net-next
* Added hardware offloading-support for MPTCP (will be released in the next stable MPTCP-release)
* By default MPTCP establishes a full mesh of TCP subflows among all IP-addresses between both hosts. The custom kernel prevents this and only establishes 1 TCP subflow per interface.
* Some minor optimizations to the MPTCP-stack which will be part of the upcoming v0.87 release.
You can access our custom kernel on [[http://github.com/multipath-tcp/mptcp|github]] in branch 10gig_record.
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it [[http://multipath-tcp.org/data/10gig/config-file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines,
The Linux Kernel being used on these machines is based on the [[http://multipath-tcp.org/pmwiki.php?n=Main.Release86|stable v0.86]] release of MPTCP. However, some modifications have been done to this kernel:
* Rebased the kernel to the latest net-next
* Added hardware offloading-support for MPTCP (will be released in the next stable MPTCP-release)
* By default MPTCP establishes a full mesh of TCP subflows among all IP-addresses between both hosts. The custom kernel prevents this and only establishes 1 TCP subflow per interface.
* Some minor optimizations to the MPTCP-stack which will be part of the upcoming v0.87 release.
You can access our custom kernel on [[http://github.com/multipath-tcp/mptcp|github]] in branch 10gig_record.
We have used a specific kernel configuration, optimized for our hardware in order to squeeze out the last bits of performance. You can access it [[http://multipath-tcp.org/data/10gig/config-file|here]]. If you use this config file, make sure that you adapt it accordingly to your hardware.
After booting the machines,
Changed line 45 from:
%width=500px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
to:
%center% %width=500px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
Changed line 45 from:
%width=250px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
to:
%width=500px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
Changed line 45 from:
%width=50px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
to:
%width=250px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
Changed line 45 from:
%center width=50px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
to:
%width=50px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
Changed line 45 from:
http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
to:
%center width=50px% http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
Changed line 45 from:
to:
http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
Changed lines 43-45 from:
Using the Linux Kernel MPTCP implementation on two servers : HP DL380p G7, with 3 Intel dual-port 10Gig NICs (Intel 82599EB 10Gb Ethernet). Thus, we have 6 paths between each server:
to:
Using the Linux Kernel MPTCP implementation on two servers : HP DL380p G7, with 3 Intel dual-port 10Gig NICs (Intel 82599EB 10Gb Ethernet). Thus, we have 6 paths between each server:
%center newwin%[[http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"]]
%center newwin%[[http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"]]
Changed line 43 from:
Using the Linux Kernel MPTCP implementation on two servers : HP DL380p G7, with 3 Intel dual-port 10Gig NICs (
to:
Using the Linux Kernel MPTCP implementation on two servers : HP DL380p G7, with 3 Intel dual-port 10Gig NICs (Intel 82599EB 10Gb Ethernet). Thus, we have 6 paths between each server:
Changed lines 40-43 from:
to:
MultiPath TCP (short MPTCP) is being standardized at the %newwin%[[https://datatracker.ietf.org/wg/mptcp/|IETF]]. MultiPath TCP is a solution that allows to simultaneously use multiple interfaces/IP-addresses for a single data-stream, while still presenting a standard TCP socket API to the application. MultiPath TCP thus allows to increase the download-speed by aggregating the bandwidth of each interface. Additionally, MPTCP allows mobile hosts to handover traffic from WiFi to 3G, without disrupting the application (TODO - add link to android-video).
The %newwin%[[http:/inl.info.ucl.ac.be|IP Networking Lab]] from the UCLouvain in Belgium is implementing the reference implementation of MPTCP in the Linux Kernel.
Using the Linux Kernel MPTCP implementation on two servers : HP DL380p G7, with 3 Intel dual-port 10Gig NICs (
The %newwin%[[http:/inl.info.ucl.ac.be|IP Networking Lab]] from the UCLouvain in Belgium is implementing the reference implementation of MPTCP in the Linux Kernel.
Using the Linux Kernel MPTCP implementation on two servers : HP DL380p G7, with 3 Intel dual-port 10Gig NICs (
Changed lines 32-40 from:
* No, this is not per-packet load balancing.
to:
* No, this is not per-packet load balancing.
Have a look at this video, which shows what happens if we enable one interface after the other:
TODO - include vid from youtube.
\\
-> '''''The technical details'''''
Have a look at this video, which shows what happens if we enable one interface after the other:
TODO - include vid from youtube.
\\
-> '''''The technical details'''''
Changed line 25 from:
We use [[http://www.multipath-tcp.org|MultiPath TCP]] to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
to:
We use %newwin%[[http://www.multipath-tcp.org|MultiPath TCP]] to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
Changed line 25 from:
We use [[www.multipath-tcp.org|MultiPath TCP]] to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
to:
We use [[http://www.multipath-tcp.org|MultiPath TCP]] to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
Changed line 25 from:
We use [[MultiPath TCP|www.multipath-tcp.org]] to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
to:
We use [[www.multipath-tcp.org|MultiPath TCP]] to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
Changed line 25 from:
We use MultiPath TCP to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
to:
We use [[MultiPath TCP|www.multipath-tcp.org]] to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
Changed lines 5-6 from:
to:
\\
Changed lines 22-23 from:
to:
Added line 26:
\\
Changed lines 14-15 from:
-> ''What does this means for you?''
to:
-> '''''What does this means for you?'''''
Changed lines 23-24 from:
-> ''So, how do we do this?''
to:
-> '''''So, how do we do this?'''''
Changed line 27 from:
to:
-> '''''Let's remove some doubts about our setup:'''''
Changed line 6 from:
-> ''How can one increase its network-speed?''
to:
-> '''''How can one increase its network-speed?'''''
Changed lines 6-7 from:
to:
-> ''How can one increase its network-speed?''
Changed lines 9-10 from:
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting your budget ([[http://www.networkworld.com/news/2012/111312-extreme-blackdiamond-264212.html|35000$ per 100Gig port]]).
to:
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting your budget (%newwin%[[http://www.networkworld.com/news/2012/111312-extreme-blackdiamond-264212.html|35000$ per 100Gig port]]).
Changed lines 12-14 from:
to:
\\
-> ''What does this means for you?''
-> ''What does this means for you?''
Changed lines 20-22 from:
!!!
to:
\\
\\
-> ''So, how do we do this?''
\\
-> ''So, how do we do this?''
Changed lines 9-11 from:
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting your budget.
Using commodity hardware and 3 dual-port 10Gig NICs(you can buy these for 400-500$), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.
Using commodity hardware and 3 dual-port 10Gig NICs
to:
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting your budget ([[http://www.networkworld.com/news/2012/111312-extreme-blackdiamond-264212.html|35000$ per 100Gig port]]).
Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.
Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$ per NIC), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.
Changed lines 17-18 from:
* more than 1 DVD per second !!!
* a whole Blu-Ray disk (25GB) in 5 seconds !!!
to:
* more than '''1 DVD per second !!!'''
* a '''whole Blu-Ray disk (25GB) in 5 seconds !!!'''
* a '''whole Blu-Ray disk (25GB) in 5 seconds !!!'''
Changed lines 6-7 from:
How can one increase its network-speed?
to:
!!! How can one increase its network-speed?
Changed lines 13-14 from:
What does this means for you?
to:
!!! What does this means for you?
Changed lines 21-22 from:
So, how do we do this?
to:
!!! So, how do we do this?
Changed line 25 from:
Let's remove some doubts about our setup:
to:
!!! Let's remove some doubts about our setup:
Changed lines 3-5 from:
Today's high-end servers often install 10Gigabit Ethernet cards, in order to allow a fast transmission of data between two machines. Often this is not enough, thus the 40/100 Gigabit Ethernet standard has been published. 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting most people's budget.
Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$), we are able to transmit a single data-stream at the rate of up to '''51.8 Gbit/s''' between two hosts.
to:
Today's high-end servers usually install 10Gigabit Ethernet cards, in order to allow a fast transmission of data between two machines.
Often this is not enough.
How can one increase its network-speed?
* You can add additional 10Gig NICs to your server. However, one single data-stream will still be limited at 10 Gbps.
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting your budget.
Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.
Often this is not enough.
How can one increase its network-speed?
* You can add additional 10Gig NICs to your server. However, one single data-stream will still be limited at 10 Gbps.
* You can upgrade to the new 40/100 Gigabit Ethernet standard. However, 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting your budget.
Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$), we are able to transmit a '''single data-stream''' at the rate of up to '''51.8 Gbit/s''' between two hosts.
Changed lines 11-15 from:
* 9 CDs in one single second !!!
*up to 7 DVDs in 5 seconds !!!
* a whole Blu-Ray disk in 5 seconds !!!
*
* a whole Blu-Ray disk
to:
* more than 1 DVD per second !!!
* a whole Blu-Ray disk (25GB) in 5 seconds !!!
* a whole Blu-Ray disk (25GB) in 5 seconds !!!
Changed line 23 from:
* No, this is not per-packet load balancing.
to:
* No, this is not per-packet load balancing.
Changed lines 3-11 from:
Today's transport protocol (TCP) only uses a single interface to send its data stream. MultiPath TCP is able to load-balance the traffic among all interfaces available to the end-host.
Using MultiPath TCP, we are able to send data at a very high rate. We are able to transmit traffic at the rate of up to 51.8 Gbit/s between two. What does this means for you?
You can copy over the network between two machines:
* 9 CDs in one single second
* up to 7 DVDs in 5 seconds
* a whole Blu-Ray disk in 5 seconds!!!
Using MultiPath TCP, we are able to send data at a very high rate. We are able to transmit traffic at the rate of up to 51.8 Gbit/s between two. What does this means for you?
You can copy over the network between two machines:
* 9 CDs in one single second
* up to 7 DVDs in 5 seconds
* a whole Blu-Ray disk in 5 seconds
to:
Today's high-end servers often install 10Gigabit Ethernet cards, in order to allow a fast transmission of data between two machines. Often this is not enough, thus the 40/100 Gigabit Ethernet standard has been published. 40/100 Gigabit Ethernet NICs and switches are still insanely expensive, probably outbusting most people's budget.
Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$), we are able to transmit a single data-stream at the rate of up to '''51.8 Gbit/s''' between two hosts.
What does this means for you?
You can copy between two machines:
* 9 CDs in one single second !!!
* up to 7 DVDs in 5 seconds !!!
* a whole Blu-Ray disk in 5 seconds !!!
Using commodity hardware and 3 dual-port 10Gig NICs (you can buy these for 400-500$), we are able to transmit a single data-stream at the rate of up to '''51.8 Gbit/s''' between two hosts.
What does this means for you?
You can copy between two machines:
* 9 CDs in one single second !!!
* up to 7 DVDs in 5 seconds !!!
* a whole Blu-Ray disk in 5 seconds !!!
Changed line 1 from:
to:
! The fastest data stream in the world!!!
Changed lines 9-11 from:
to:
* 9 CDs in one single second
* up to 7 DVDs in 5 seconds
* a whole Blu-Ray disk in 5 seconds!!!
* up to 7 DVDs in 5 seconds
* a whole Blu-Ray disk in 5 seconds!!!
Changed lines 5-22 from:
Using MultiPath TCP, we are able to send data at a very high rate. We are able to transmit traffic at the rate of up to 51.8 Gbit/s between two.
to:
Using MultiPath TCP, we are able to send data at a very high rate. We are able to transmit traffic at the rate of up to 51.8 Gbit/s between two. What does this means for you?
You can copy over the network between two machines:
* 9 CDs in one single second
* up to 7 DVDs in 5 seconds
* a whole Blu-Ray disk in 5 seconds!!!
So, how do we do this?
We use MultiPath TCP to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
Let's remove some doubts about our setup:
* No, the application does not create multiple stream sockets (e.g., P2P-like). MultiPath TCP is transparent to the application. Applications think they are using regular TCP.
* No, we do not use link-bonding to aggregate the bandwidth.
* No, this is not per-packet load balancing.
You can copy over the network between two machines:
* 9 CDs in one single second
* up to 7 DVDs in 5 seconds
* a whole Blu-Ray disk in 5 seconds!!!
So, how do we do this?
We use MultiPath TCP to send the data between two machines. Both machines have 6 10 Gigabit interfaces. MultiPath TCP is able to balance the traffic among these interfaces and thus will increase the bandwidth. TCP (today's standard protocol) is not able to do this.
Let's remove some doubts about our setup:
* No, the application does not create multiple stream sockets (e.g., P2P-like). MultiPath TCP is transparent to the application. Applications think they are using regular TCP.
* No, we do not use link-bonding to aggregate the bandwidth.
* No, this is not per-packet load balancing.
Added lines 1-5:
!! The fastest data stream in the world!!!
Today's transport protocol (TCP) only uses a single interface to send its data stream. MultiPath TCP is able to load-balance the traffic among all interfaces available to the end-host.
Using MultiPath TCP, we are able to send data at a very high rate. We are able to transmit traffic at the rate of up to 51.8 Gbit/s between two.
Today's transport protocol (TCP) only uses a single interface to send its data stream. MultiPath TCP is able to load-balance the traffic among all interfaces available to the end-host.
Using MultiPath TCP, we are able to send data at a very high rate. We are able to transmit traffic at the rate of up to 51.8 Gbit/s between two.

