Shotgunning Ethernet Connections?
Jon Bardin asks: "I am currently living in a dorm at the University of South Florida. The dorms come wired straight to the Internet and my connection is pretty zippy, because I have seen 2 megabytes per second download speed. I was wondering if there was a way, with the new fancy 2.4 Linux kernel, that I could shotgun at least two of the eight ethernet ports in my suite together, as to effectively double or quadruple my download speed. It doesnt have to be a Linux solution either its just all this talk about the fancy TCP/IP stack and firewalling has me thinking about things. The ethernet ports are configured by DHCP and are reasonably static... I got a new IP when I got back from winter break. so any help would be greatly appreciated." This question gets asked a lot. I wasn't quite sure if this was possible for the 2.2.x kernels, but I figure it might be time to ask this now that 2.4 has been released.
Ethernet is a shared medium. In other words, all those ports go to the same place, and share the same aggregate bandwidth.
Now, if you're on switches (probably) and you were downloading from different places on different ports, you could probably get an improvement. However, I don't think it would improve things using all ports to download from the same port on the hub, because they still have to share the bandwidth incoming. This would depend on what the switch is using for uplink.
So, while it might be possible, I don't think it would do any good.
Nope. There's still only 10Mb/s incoming. He would still only be able to transfer 1MB/s in either direction. If he gets a 2MB/s download, he must be on 100baset ethernet or faster.
No.. they don't.
It's possible to do Etherchannel, wher statistically you get more throughput, but only when dealing with a mmultitude of hosts... most etherchannel devices/configurations use the last 4 byhtes of the mac address to determine which port to use.
If you are hooknig a computer up to a plain old pair of network connections, you could balance out bound traffic over them.. but there's nothing you could do about incoming, and both ports would still require separate IP addresses.
Just a note.. usually capital 'B' refers to 'Byte' and small 'b' refers to 'bit'.. so you're backwards.
10Mbps ethernet isn't just capped because it's shared; the 10Mbps is the signalling rate of the medium... when bits are clocked onto the wire, tehy are clocked on at exactly 10Mbps... but there are rules governing frame sizes, minimum inter-frame gaps, etc.....so it's impossible for 2 hosts (like you and a router) on 10Mbps ethernet to use the full 10Mbps, no matter what.
Both sides have to support it.
It doesn't increas bandwidth to one place, only across multiple hosts, as it uses the last 4 digits of a mac address to balance traffic over the ports.
it's good for a server on a lan.. if there's a router in front of it before anything else, you'll only end up using one port anyway.
Similar to EQL, but not the same. in EQL, you actually get double the throughput.
You think this is a bad example? The bandwidth the uni/dorms have isn't HIS to monopolise. He is actively taking resources away from other students who have an EQUAL right to the bandwidth as he does (it's not a matter of him being 'enterprising' to get around limitations).
Open Source. Closed Minds. We are Slashdot.
You're not being limited by ethernet. You're being limited by the built-in "fairness" of TCP: when there is a limited supply of bandwidth, TCP limits its packet rate to share the bandwidth equitably. Adding a second ethernet connection won't do anything to change that: what you need is to work around the semantics of TCP.
In other words, either open two TCP connections (remember back when Netscape used to open four connections at once to speed stuff up?) or hack your TCP implementation to be more aggressive.
And no, I'm not going to tell you how to do that.
Tarsnap: Online backups for the truly paranoid
Bastard. When I was there we fought over the few dialup lines that had 14.4.
But to answer the question, I doubt the bottleneck is the 10BaseT between your machine and wherever the main line comes in. If you really are getting 2 megabytes per second, it's possible. Maybe you're better off begging for a 100BaseT connection. Or go get a job with Academic Computing, Engineering Computing, or some other place on campus with better bandwidth.
Holy goatsex, Batman! I think you must be downloading of your university's LAN and not the internet proper because anyone who has a connection capable of sustaining a 2MB/sec per user connection has at *least* dual or triple t1's and probably more. Anyone with this kind of bandwidth has to keep it pretty saturated to pay for it. I'm a heavy downloader, but I *never* *never* *never* max out the 330k/s theoretical limit on my cablemodem.
The next Slashdot story will be ready soon, but subscribers can beat the rush and slashdot the links early!
In 2.2 and later, using the iproute2 interface, you can route traffic through multiple interfaces and connections will go through in a semi-equalized fasion. "ip route add default nexthop via <addr> dev <device>", and repeat for as many interfaces as you have.
This causes new connections to choose one or the other interfaces, a single connection's traffic goes through one or the other but not both. This is in 2.2 without the DiffServ patches; patched 2.2 and stock 2.4 can make both interfaces be used equally instead of on a per connection basis with the equalize keyword on the ip command.
You asked, "Where is the BottleNeck?" Clearly this kid is trying to be the bottleneck. What antisocial technohuckstering! Gobbling up all the available bandwidth is just plain irresponsible. Why should other people suffer because this kid wants to download his pr0n/mp3s/vcds a little faster.
Its clear that this kid can't figure out how to load balance network devices on his own, can't understand why it doesn't make any difference when done on ethernet, and doesn't care to consider the impact he'll have on those who share his bandwidth if he is succesful. I believe the correct answer to a question of the type the kid posed is, "Sorry, can't help you. Maybe you should think a little more before go ahead with that."
I can't believe that your bottleneck is the ethernet connection itself. You say that you've topped out at two megabytes per second but I think you probably meant two megabits per second. That's a big difference.
For just a moment, let's assume you were right and the NIC in your box or your port is slowing you down. I agree with ATS that chances are you won't see a speed increase by adding a port since you're probably going to be hitting the same hub/switch. If you've got a 100mbps NIC and connection and are just hitting 2Mbps (or even 2MBps for that matter), your connection is the the bottleneck. The problem is further up stream.
Chances are, the university's internet connection is your bottleneck. Ask your college how phat a pipe they've got and work the math back from there.
The only other situation I can see where adding another port would help you is if the dorm ports are bandwidth limited at the switch. If that's the case, The Man might have his jackboot on your neck. If that's the case, adding a second line will free you.
The technical details of this quest are best left to the student.
InitZero
From the linux 2.4.0 configuration options:
Bonding driver support
CONFIG_BONDING
Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet Channels together. This is called 'Etherchannel' by Cisco, 'Trunking' by Sun, and 'Bonding' in Linux.
If you have two ethernet connections to some other computer, you can make them behave like one double speed connection using this driver. Naturally, this has to be supported at the other end as well, either with a similar Bonding Linux driver, a Cisco 5500 switch or a SunTrunking SunSoft driver.
This is similar to the EQL driver, but it merges Ethernet segments instead of serial lines.
If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. The module will be called bonding.o.
There, at least one answer. I feel better now. Too bad I don't "reload" early in the day and post right away (meaning this will never get moderated up). Such is the way of slashdot.
Also, I should mention that I recently installed a HP2512 ethernet switch (you can find it on HP's web site....), and it had an option to connect up to four lines in parallel to another switch, for 400 Mbit/sec between the two. They have their manuals and even instructional training course material on-line, so you can learn quite a bit about it if you want.
PJRC: Electronic Projects, 8051 Microcontroller Tools
<TONGUE IN CHEEK>
This is yet another demonstration of how broadband is like a drug. The more of it you get, the more of it you want. For instance, all of those slow AOL users don't want any more. But give them one hit of cable modem, and they go nuts.
You get 2 MEGABYTES/sec!!!!!! AND you want more!!!! My suggestion: stop now while you still can, broadband almost has you in its clutches. Once it gets hold, it never lets go. Run, run for your life, run while you still can.
</TONGUE IN CHEEK>