Will multiple network cards increase bandwidth?

7,112

Solution 1

TL;DR Probably not.

You will have a different IP address on each network. Outgoing traffic will be determined by your routing table, and it is (theoretically at least) fairly easy to send half the packets out each connection, because the decision is under your control. However, you could run into reverse-path checking that thinks those are spoofed packets and drops them.

Incoming is a different story. Packets will come in one connection or the other depending on the IP address. You can use multiple addresses simultaneously, but your P2P software would have to do that explicitly, and incoming packets won't automatically split up optimally, instead whichever peers are given address A will use connection A, and peers given address B will use connection B to send you data. Estimating the bandwidth to each peer in order to set up the P2P link using the right address for optimal balancing is decidedly non-trivial.

And none of this is going to "just happen" in any OS, neither to the best of my knowledge does Windows XP SP3 provide the tools necessary to make it happen. On linux, with weighted multipath routing, you'd at least be able to load balance outgoing traffic. On Windows you'll need additional drivers which bypass the TCP/IP stack and kernel routing decision in order to get multipath routing, or you can have deterministic routing tables that use one connection for half the internet and the other connection for the other half (but half the addresses likely doesn't represent half the traffic). This is far from optimal. And the P2P app needs to be rewritten to use multiple sockets with explicitly bound IP addresses in order to split incoming traffic.

Solution 2

There are ways to do that using loadbalancing techniques. And while this could be fairly easily configured using UNIX/Linux or one of the Windows Servers, I'm not so sure about the windows client variants. Basically, it works by loadbalancing not simple packets (which wouldn't work in your case) but whole TCP connections. So new TCP connection would be dispatched to one the available network connections (normally alternating, but could be configurable)

According to some posts on the net [1], [2], it appears as if Windows 7 does automatic round-robin loadbalancing over all available networks. But there seems to be little actual information. You should better just try it yourself.

Solution 3

With wired ethernet you have Link aggregation but, so far as I know, there is no equivalent for Wireless.

Wireless LANS have a limited number of frequencies to operate on, a greater number of wireless devices (including wireless routers or access points) increases the chances of a conflict and can actually reduce throughput for some devices.

Share:
7,112

Related videos on Youtube

liorda
Author by

liorda

Updated on September 17, 2022

Comments

  • liorda
    liorda almost 2 years

    Possible Duplicate:
    Combining two ethernet ports

    I have two available wireless networks in my area, and currently I'm connected to one of them. I want to get a USB wireless adapter and connect to the second network and thus improving my bandwidth, mainly for P2P purposes. Will windows (XP Pro. SP3) know how to handle such configuration? Will my bandwidth be widened?

    TL;DR Will simultaneous connection to two different networks improve my P2P bandwidth?

    • Moab
      Moab over 13 years
      Are you "borrowing" someone else's bandwidth?, and do they know about it?
    • MDMarra
      MDMarra over 13 years
      possible duplicate of Combining two ethernet ports. While the specifics are slightly different, the principle and answer is the same.
    • Ben Voigt
      Ben Voigt over 13 years
      @MarkM: Not really. That other question involves two connections to a single network and (most importantly) a single router. Here there are two different routers. No answer to the other question will be relevant here at all.
    • liorda
      liorda over 13 years
      @Moab: one's is my university's and the other is the external ISP we got to our dorms apartment. I don't want anyone else sniffin' my packets.
    • Moab
      Moab over 13 years
      @ liorda, you didn't say anything about encryption, just bandwidth, you would need to use wireless encryption in the routers to stop packet sniffing, another subject all together.
    • MDMarra
      MDMarra over 13 years
      @Ben you need link aggregation to see improvements in a situation like this. The fact that they are two independent connections only illustrates how much less feasible the scenario is.
    • Ben Voigt
      Ben Voigt over 13 years
      @MarkM: No you don't need ethernet link aggregation, which the other question discusses. Linux can use multiple connections simultaneously, but this is by divvying up sessions amongst the connections, it doesn't give more bandwidth to a single session.
  • Synetech
    Synetech over 13 years
    So if you max out the connection and have another one available, Windows won’t be smart enough by default to try using the other one even if it is enabled? What about bridging the connections?
  • Ben Voigt
    Ben Voigt over 13 years
    @Synetech: No, Windows will send outgoing traffic using the route with the lowest metric (which by default means the one with the highest detected bandwidth). Besides, it's the sender (and his router) who decides how to get the packet to you, and he has no way of knowing one connection is saturated or even that you're reachable via a second path. Bridging will just cause other peoples' traffic on both networks to behave funny, and make them mad at you.
  • Ben Voigt
    Ben Voigt over 13 years
    #1 - is not loadbalancing, but multihoming. All new traffic uses a single connection (the one with the lowest metric). The only reason both are in use simultaneously is because there are still active sessions which were established using the slower link before the faster link became available. #2 - not relevant, that's bonding two connections to the SAME network. And using dial-up specific technology. And it's not new in Win7.
  • Holger Just
    Holger Just over 13 years
    Okay, then strip that my remarks about Windows 7. But at least the server variants support true TCP loadbalancing. Although it was probably intended for reverse proxying, I'm pretty sure it could be hacked into loadbalancing as intended here. And using a UNIX, this would be a piece'o'cake :)