Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question

marked as duplicate by MDMarra, ChrisF, Daniel Beck, studiohack Feb 20 '11 at 19:29

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
Are you "borrowing" someone else's bandwidth?, and do they know about it? –  Moab Feb 19 '11 at 19:44
    
possible duplicate of Combining two ethernet ports. While the specifics are slightly different, the principle and answer is the same. –  MDMarra Feb 19 '11 at 20:08
    
@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. –  Ben Voigt Feb 19 '11 at 20:23
    
@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. –  liorda Feb 19 '11 at 21:12
    
@ 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. –  Moab Feb 19 '11 at 21:25
show 2 more comments

3 Answers

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.

share|improve this answer
    
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? –  Synetech Feb 19 '11 at 20:20
    
@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 Feb 19 '11 at 20:25
add comment

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.

share|improve this answer
    
#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. –  Ben Voigt Feb 19 '11 at 21:53
    
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 :) –  Holger Just Feb 19 '11 at 21:57
add comment

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|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.