To my amazement, I just discovered that my Ubuntu 13.04 system seems to support something like automatic network interface bonding.
If I establish a TCP connection over WiFi (eg using netcat on client and server), and then also switch on the wired interface, all further traffic on this connection seems to transparently go through the wired interface. I have verified that with Wireshark, and I can also tell from the change in throughput when copying files.
This works, however, only as long as I keep the WiFi connection established. If disconnect the WiFi, the TCP connection also breaks down.
The machine that I'm testing with has different MAC and different IP addresses for the WiFi and wired interface. They are connected to the same network though.
I do not have the ifenslave package installed, and I did not set up a bridge or anything like that either. I am using NetworkManager.
My question is: how does this work? Which layer is responsible for redirecting the packets, and how does it know where to send them? And why does this stop working if the WiFi connection is shut down?