TeePipe - RAID for Internet connections

Overview

What RAID did for hard drives, TeePipe does for network connections. Today many users have access to multiple, inexpensive broadband connections like DSL, Cable, and Wifi. TeePipe software can transform any combination of links into a single mega-connection for fast, reliable, and cheap surfing!

Screen Shots

TeePipe Screen Shot

TeePipe options

TeePipe Home Edition

You are a power user. You have the fastest DSL link available in your area- 7Mbs downstream for $80 per month. It is a great deal, but you want faster. You call your DSL provider and tell them you want a faster link, but 7Mbs is the fastest DSL you can get. The next step up is a bonded T3 which offers 8Mbs for $2200 per month. With TeePipe, you could just order a second 7Mbs DSL line and combine it with the first to create a virtual 14Mbs link for only $160 per month.

But it gets better. Instead of ordering a second DSL line, you might want to consider ordering a cable modem link. You would still use TeePipe to combine the DSL connection with the cable connection and again have super-fast browsing at a reasonable price. But now if your DSL line ever goes down (and they do), you would still be able to use the cable link. And vice versa. TeePipe automatically uses whatever bandwidth is available, so the only impact an outage has on you is that your peak speed is reduced. You keep on surfing.

Why buy one big and expensive pipe when you can have lots of little ones?

TeePipe Server Edition

Your company has a web server and an email server. When your servers go down, you loose lots of money. You've installed RAID hard drives and have a UPS to make the machine as reliable as possible. You even ordered an expensive ($500 per month for 1.5Mbs) business-class T1 connection assuming that it would be much more reliable than a consumer-grade DSL line. One day a truck crashes into a telephone pole in the next town and your T1 is dead. Worse, your T1 provider tells you that there is nothing they can do to fix it, they have to wait for the local telephone company to repair the wires before they can even start fixing stuff on their end. You are out of business for a week.

You cancel your expensive and unreliable T1 line. Instead you order a DSL line from your local phone company and a cable modem from your local cable company. Combined, these two lines cost less than the T1 you are replacing and you are getting more bandwidth. You use TeePipe to connect both these new links into your computer. You even use two separate Ethernet ports on the back of the server - one for each link. This way, even if one of the ports or network cables fails, one of the links will still work. It also means you do not have any extra hub or switch. The links are completely separate right up until they connect to the server. No single point of failure.

Sometime later, there is a huge ice storm in your area. The ice pulls down the cable company's wires so no one on your block has cable service. Your server happily keeps humming, seamlessly shifting the over to the still-functioning DSL line. The only impact of the outage is that your peak bandwidth is reduced for as long as the cable outage lasts, but you are still in business.

Why buy one big and expensive pipe when you can have lots of little ones?

The Wonk Pitch

The price per megabit for technologies like DSL and Cable Modems are fantastic, but these technologies have fixed maximum capacities per link, and you are only able to use one link at any given moment. TeePipe solves this problem by letting users mix and match any number and combination of individual pipes to create a single virtual pipe that is as large and as reliable as they like, without having to move up to other technologies like NxT1s and T3s that cost much more per megabit.

The Numbers

Technology

Cost per month

Max speed available

Cost per Mbps per month

DSL
Verizon

$30

3Mbps

$10

Cable
RoadRunner

$60

5Mbps

$12

NxT1
MegaPath

$1,100

6Mbps

$183

TeePipe

Verizon + RoadRunner

$90

~8Mbps

$11

 

Once a single connection size gets bigger than 5Mbps, the cost per Mbps jumps 15x!
With TeePipe, you can build fat pipes by combining a cable connection* and one or more DSL connections without hitting the price hump.
A fault tolerant TeePipe connection is actually much more reliable than any of the single connections since *all* component lines must fail for an outage to happen.

*multiple cable connections don’t really help, but multiple DSL connections scale well up to about 3-4, especially when from different ISPs

 

The Presentation

Check out the heartwarming TeePipe presentation in either PowerPoint or HTML.

Note that this presentation was focused on a Vista version of TeePipe, but TeePipe works with XP and Win2003 also.

FAQ

Q: Can't I just use a hub or a switch to connect two internet links into my computer?

Not if you use Windows. Even though this seems like something Windows just should be able to do, it can't. If you want to get technical, Windows will only allow one active default gateway at a time. You can sort of tell windows to fail-over if the main connection fails, but for complicated reasons it doesn't really work they way you think it would or should. In any case, there is no way to have Windows use two or more internet connections at the same time.

There is this interesting product, but it (1) requires a extra gateway machine, (2) only works for outgoing connections, and (3) does not seem to load balance outgoing HTTP on a request-by-request basis. It is meant really for sharing multiple connections across multiple machines rather than letting you have multiple connections to one machine.

There are hardware products that load-balance and failover multiple connections, but (1) they are expensive, and (2) the introduce a new point of failure into a system you are trying to make more reliable.

It is apparently not hard to setup on OSX.

If you use Linux, it is easy (If you use Linux, then your definition of "easy" is probably a little different than most peoples').

Q: Don't I need some support from my ISP(s) to recombine my traffic coming off these multiple links?

No, as far as your ISP(s) are concerned, you are just a normal user. You don't need anything from them except a standard connection.

TeePipe Home includes an HTTP proxy that runs on your local machine. It intercepts the requests that your browser makes and automatically distributes them across the available links. Since each page you see on your screen is typically composed of many HTTP requests, this works quite well.

For FTP requests, the proxy can split the requested file into "chunks" and distribute the downloading of the chunks across the links.

For web pages that do not include any other HTTP requests (no images, no frames, no flash), there will be no speed improvement because the page can only go over one link. Luckily (unluckily?) there are not any pages like this left on the internet. :)

Note that the absolute best possible solution would be if you could distribute the traffic byte-by-byte across the available connections, rather than only load balancing HTTP requests. To do this, you would need something at the head end to recombine the streams together. There just happens to be a*perfect* system that already does exactly this. It is called Google Web Accelerator. If Google would only publish an API for this product (or even just tell me that they don't mind if I hack it), then TeePipe Home would be able to perfectly use all the bandwidth you've got. So, if you know anyone who works in the Google Web Accelerator department, please urge them to get in touch with me!

Q: Why don't you make your own accelerator service? I'd happily pay big money for a super-fast multi-link connection!

A: No thanks, but if you want to make one, let me know and I'll be happy to help you get it set up. I still think Google is the absolute bestest candidate to do this. It would take like a days' worth of work to make their existing, excellent accelerator work with multiple links. And they can give the service away for FREE because all the data they'd get about which links people are clicking on is so valuable to them. Are you listening, google?

Q: You mention using a DSL link plus a Cable link, or two DSL links. Why not two Cable links?

Cable is a "shared media" connection. That means that there are lots of people who all use the same cable at the same time. If you ordered two cable modems, they almost certainly would just get connected to the same cable. You would not get all the speed advantages of using two distinct connections, and you'd not get much redundancy because if that cable suffered an outage, both your cable modems would stop working.

Q: How do you do the fail-over on the TeePipe Server so incoming connections know where to go?

The TeePipe Server software includes an integrated DNS server that will automatically answer incoming DNS requests with the IP address of the adapter that the request was received on. So, you just list the different IP addresses of your different connections as your primary and secondary name server addresses, and clients will automatically connect on which ever link is up, or load-balance across the links if more than one is up. This is also really nice because you are eliminating the DNS server as a single point of failure.  As long as your server is up and the root DNS servers are working (if they aren't, then the whole internet will be down) and at least one of your links is up, then you will be up.

Q: Why don't I just run BGP?

BGP requires that you have (1) a huge amount of expertise in BGP, (2) your own assigned IP address space, and (2) the cooperation of all your upstream ISPs.

None of these are available to normal people.

Q: Can't I just set up Windows Clustering Server?

I don't know, can you? Most people can't. If you can, then you probably live in Seattle and setting up Windows Clusters is probably your full time job. Most people can't even afford the software, much less the extra computers you'd need.

Even if you did set it up, in my experience Windows Clusters go down at least as often as their non-clustered comrades, maybe even more so because they are so hard to set up correctly.

I believe the secret to high availability is to keep it simple. Less things to set up means less things to set up wrong. Less stuff means less stuff to fail. With TeePipe, you are trading one very small piece of software (written by one software-quality-obsessed programmer) for a huge mess of complicated software and hardware from lots of different people and places.

Q: Where can I download/buy TeePipe!?

Sorry, I've been busy so TeePipe is not yet ready for public consumption.

While I really want to finish it so that everyone can use it, I can't make any promises as to when that will be. If you really want TeePipe to be done soon, convince Google or Microsoft or EMC that it would be a strategic fit for them because, well, it really would be! :)

 

Poll

 

 

Questions

If you have any questions or suggestions, you can reach me at...

Support email address

Updates

8/7/07 - Initial Upload.

11/23/7 - Added FAQ on where to buy/download TeePipe.

###