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.

I currently have two different Internet connections: one is a 1 Mbps 3G connection (very low downtime but unstable bandwidth, fair latency, mobile, already NAT-ed at ISP-level, tethering allowed, 2 GB monthly allowance) and the other is a cheap 5 Mbps Cable connection (stable bandwidth but fairly high downtime, high latency, not NAT-ed, no allowance). I connect to the 3G network by means of tethering, with my phone acting as modem through Bluetooth, and to the Cable via a WiFi router.

I want to use both connections on the same computer but for different purposes at the same time. Specifically, I want to use the 3G connection for usual Internet activities like browsing, e-mail, IM and whatnot, and the Cable connection for bandwidth-intensive activities like large file downloads via HTTP and BitTorrent, video streaming and the likes.

How can I do this on Windows?

share|improve this question

2 Answers 2

up vote 4 down vote accepted

You might have some luck with a piece of freeware software called ForceBindIP. It allows you to bind different programs to different network adapters.

ForceBindIP is a freeware Windows application that will inject itself into another application and alter how certain Windows Sockets calls are made, allowing you to force the other application to use a specific network interface / IP address. This is useful if you are in an environment with multiple interfaces and your application has no such option for binding to a specific interface.

share|improve this answer

I want to use the 3G connection for usual Internet activities like browsing, e-mail, IM and whatnot, and the Cable connection for bandwidth-intensive activities like large file downloads via HTTP and BitTorrent, video streaming and the likes.

The problem is that the system doesn't know whether a HTTP request belongs to "browsing" or "large downloads" until after it establishes the TCP connection, sends the request, and receives a response, at which point it's too late to switch connections.

It may be possible to do this in a proxy server program that would restart the connection completely, but I'm not aware of any existing implementations. Another way is to do it manually, by copying the file URL and giving it to a download tool that allows specifying network interfaces (command-line wget --bind-address=<address> or curl --interface=<address>, where <address> is your cable connection's IP address).

Most peer-to-peer programs, however, have a configuration option for using a specific network interface; in μTorrent, it's net.bind_ip under Advanced. Specify your cable IP address. For those programs that don't, see ForceBindIP as suggested by kez.

In some cases, when the remote end's address is known and static, you can add a host route for it through a specific interface: route add <remote address> <your cable address>. It will affect all IP communications.

share|improve this answer
    
Yeah, seems like customizing the routing table is the 'easiest' solution. I did that for a few known IP's, but it was cumbersome. I think I should get a low-power box and make it act as a proxy (although configuration will most likely be time-consuming). –  Larssend Jun 13 '11 at 18:33
    
@Barstow: kez suggested ForceBindIP, which may help with IM and web browsing. You'll still have to somehow reroute big downloads, though. –  grawity Jun 13 '11 at 18:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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