End user networking on laptops and desktops
Networking, from the point of view of a laptop, desktop or even mobile device user, is much different than from the operating system perspective. The user can differenciate the following network statuses:
1) I am connected to the internet and can access global services (mail, instant messaging, websites, …)
2) I am connected to the local configured network and can access local services (printers, file servers, …)
3) I am connected ad hoc to one or more other devices and can use their services (file sharing, local instant messaging, …)
The user usually doesn't care about his or her network devices, IP addresses, etc, unless absolutely necessary. Therefore I believe the rest of the system should behave according to the following rules:
1) Any of the available network interfaces can be used for global connectivity (internet)
2) If the interfaces are connected to the same network (e.g. laptop connected both through wifi and through docking station's ethernet port), the connections should be interchangable. The best way to achieve this is to share MAC addresses and therefore IP addresses and therefore connections. Which interface should be actually used for communication, should be determined by the local policy.
Connecting or disconnecting a device should not disrupt communication, unless it is the last device that was connected.
Possible solution: Desktop bonding