Main.50Gbps History

Hide minor edits - Show changes to output

April 20, 2021, at 03:04 PM by matttbe - 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@@
December 29, 2015, at 07:10 PM by 2601:647:4680:2f:4ccc:f737:b82d:6f97 -
Changed line 39 from:
This custom kernel is available on %newwin%[[http://github.com/multipath-tcp/mptcp|github]] in branch 10gig_record.
to:
All the customizations have been integrated into the latest v0.89 stable release of MPTCP.
March 24, 2013, at 01:23 PM by 81.240.27.20 -
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
March 22, 2013, at 02:34 PM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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, ...
March 22, 2013, at 10:21 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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.
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 !
March 22, 2013, at 10:16 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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>
March 22, 2013, at 10:08 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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]].
March 22, 2013, at 10:04 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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.
March 22, 2013, at 09:33 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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''\\
March 22, 2013, at 09:33 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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''\\
March 22, 2013, at 09:31 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Changed line 22 from:
VIDEO
to:
<iframe width="560" height="315" src="http://www.youtube.com/embed/OfQuBAW5_kI" frameborder="0" allowfullscreen></iframe>
March 22, 2013, at 09:18 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Changed line 29 from:
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
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
March 22, 2013, at 08:58 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
March 22, 2013, at 08:57 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Changed line 1 from:
|| border=0 width=600px
to:
|| border=0 width=800px
March 22, 2013, at 08:57 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Changed line 1 from:
|| border=0 width=400px
to:
|| border=0 width=600px
March 22, 2013, at 08:57 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Changed lines 1-3 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"]]
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"]]
March 22, 2013, at 08:56 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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"]]
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"]]
March 22, 2013, at 08:55 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Added line 2:
%right newwin%[[http://change-project.eu/ | http://multipath-tcp.org/pub/change-logo.jpg"Change Project"]]
March 22, 2013, at 08:53 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Added lines 1-2:
%left newwin%[[http://www.trilogy2.it.uc3m.es/ | http://multipath-tcp.org/pub/trilogy2.png"Trilogy 2"]]
March 22, 2013, at 08:47 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Changed line 58 from:
What are the options?
to:
What are these options?
March 22, 2013, at 08:47 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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.
March 22, 2013, at 08:46 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Added line 6:
March 22, 2013, at 08:46 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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 :

Changed lines 12-27 from:
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.

-> '''''How to reproduce this?'''''

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:
* 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 %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:
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
:
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:
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 :
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.
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:
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!
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.
March 22, 2013, at 08:33 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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
''
March 22, 2013, at 08:32 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
Changed line 1 from:
%center%[+++'''The fastest TCP connection with Multipath TCP'''+++]
to:
%center%[+++'''The fastest TCP connection with Multipath TCP'''+++]\\
March 22, 2013, at 08:32 AM by 2001:6a8:3080:2:a4c3:8827:e1:84da -
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''
March 21, 2013, at 10:08 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.
March 21, 2013, at 10:06 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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'''.''++]
March 21, 2013, at 10:06 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.''++]
March 21, 2013, at 10:05 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.''++]
March 21, 2013, at 10:05 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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." ''++]
March 21, 2013, at 10:03 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.''++]
\\
\\

March 21, 2013, at 10:03 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.''++]
March 21, 2013, at 10:02 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.''+]
March 21, 2013, at 10:02 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.''+]
March 21, 2013, at 10:02 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.+]
March 21, 2013, at 10:01 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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:'''
March 21, 2013, at 10:00 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Added line 4:
March 21, 2013, at 10:00 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Added line 4:
March 21, 2013, at 10:00 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed line 1 from:
-> ->  [+++'''The fastest data stream in the world!!!'''+++]
to:
%center%[+++'''The fastest data stream in the world!!!'''+++]
March 21, 2013, at 09:59 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed line 1 from:
->->  [+++'''The fastest data stream in the world!!!'''+++]
to:
-> ->  [+++'''The fastest data stream in the world!!!'''+++]
March 21, 2013, at 09:59 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed lines 1-2 from:
->  [+++'''The fastest data stream in the world!!!'''+++]
to:
->->  [+++'''The fastest data stream in the world!!!'''+++]
\\
\\
March 21, 2013, at 09:59 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed line 1 from:
->  [++The fastest data stream in the world!!!++]
to:
->  [+++'''The fastest data stream in the world!!!'''+++]
March 21, 2013, at 09:59 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed line 1 from:
->  [++larger++] The fastest data stream in the world!!! [++larger++] 
to:
->  [++The fastest data stream in the world!!!++]
March 21, 2013, at 09:58 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed lines 1-2 from:
! The fastest data stream in the world!!!
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!
March 21, 2013, at 09:58 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed line 1 from:
-> ! The fastest data stream in the world!!!
to:
! The fastest data stream in the world!!!
March 21, 2013, at 09:57 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed line 1 from:
! The fastest data stream in the world!!!
to:
-> ! The fastest data stream in the world!!!
March 21, 2013, at 09:57 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Added lines 46-47:

-> '''''How to reproduce this?'''''
March 21, 2013, at 09:49 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.
March 21, 2013, at 09:49 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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!
March 21, 2013, at 09:43 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.
March 21, 2013, at 09:41 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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.
March 21, 2013, at 09:40 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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]]).
March 21, 2013, at 09:39 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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]].
March 21, 2013, at 09:38 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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]].
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]].
March 21, 2013, at 09:38 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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]].
March 21, 2013, at 09:35 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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,
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]]
March 21, 2013, at 09:24 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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,
March 21, 2013, at 09:17 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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"
March 21, 2013, at 09:17 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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"
March 21, 2013, at 09:17 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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"
March 21, 2013, at 09:17 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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"
March 21, 2013, at 09:16 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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"
March 21, 2013, at 09:16 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
Changed line 45 from:
%center newwin%[[http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"]]
to:
http://multipath-tcp.org/data/10gig/10gig_lab.png"10Gig Lab"
March 21, 2013, at 09:15 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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"]]
March 21, 2013, at 09:07 AM by 2001:6a8:3080:2:90d2:b43e:6aed:418f -
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:
March 20, 2013, at 02:24 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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 (
March 20, 2013, at 02:16 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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'''''

March 20, 2013, at 02:15 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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.
March 20, 2013, at 02:14 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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.
March 20, 2013, at 02:14 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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.
March 20, 2013, at 02:14 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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.
March 20, 2013, at 02:13 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
Changed lines 5-6 from:
to:
\\
Changed lines 22-23 from:
\\
to:
Added line 26:
\\
March 20, 2013, at 02:13 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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:
!!! Let's remove some doubts about our setup:
to:
-> '''''Let's remove some doubts about our setup:'''''
March 20, 2013, at 02:12 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
Changed line 6 from:
-> ''How can one increase its network-speed?''
to:
-> '''''How can one increase its network-speed?'''''
March 20, 2013, at 02:11 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
Changed lines 6-7 from:
!!! How can one increase its network-speed?
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:

!!! What does this means for you?
to:
\\

-> ''
What does this means for you?''
Changed lines 20-22 from:


!!!
So, how do we do this?
to:
\\
\\

-> ''
So, how do we do this?''
March 20, 2013, at 02:10 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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.
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.
March 20, 2013, at 02:09 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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 !!!'''
March 20, 2013, at 02:08 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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:
March 20, 2013, at 02:02 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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.
March 20, 2013, at 01:58 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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 !!!

to:
* more than 1 DVD per second !!!
* 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.
March 20, 2013, at 01:57 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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
!!!
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
!!!
March 20, 2013, at 01:49 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
Changed line 1 from:
!! The fastest data stream in the world!!!
to:
! The fastest data stream in the world!!!
March 20, 2013, at 01:49 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
Changed lines 9-11 from:
  * 9 CDs in one single second
  * up to 7 DVDs in 5 seconds
  * a whole Blu-Ray disk in 5 seconds!!!
to:
* 9 CDs in one single second
* up to 7 DVDs in 5 seconds
* a whole Blu-Ray disk in 5 seconds!!!
March 20, 2013, at 01:48 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
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
.
March 20, 2013, at 01:40 PM by 2001:6a8:3080:2:4488:7b86:6475:2b17 -
March 19, 2013, at 04:20 PM by 130.104.228.20 -
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.