socketstcpmultiplexingmultihomed

Multiplexing data transfer over multiple sockets and interfaces


I have a two machines that each have 12 network interfaces. Each interface is connected to the corresponding interface on the other machine via a point-to-point radio link (e.g machine1:intf0 -> machine2:intf0, machine1:intf1 -> machine2:intf1, etc). Each link can be thought of an ethernet link with its own MAC address similar to a multi-homed server.

I'm trying to make a system that stripes data across all these interfaces and is capable of handling data loss and link outage on one or more interfaces.

I have a feeling this problem has been solved many times over. Before going off and reinventing the wheel, I'm trying to figure out if anybody knows of an opensource library that can handle such a thing on a Linux system.

Thanks


Solution

  • It sounds like you are be looking for link aggregation, also known as bonding on Linux.

    The Linux bonding driver provides a method for aggregating multiple network interfaces into a single logical "bonded" interface. The behavior of the bonded interfaces depends upon the mode; generally speaking, modes provide either hot standby or load balancing services. Additionally, link integrity monitoring may be performed.

    See:

    The HOWTO has information on configuration for maximum throughput.