Behold the data tsunami: IEEE begins work on 400Gbps and 1Tbps Ethernet
extremetech.com
extremetech.com
On the long-haul side, service providers like Level 3 Communications appear unlikely to invest aggressively to add a lot more capacity any time soon, because they are still dealing with the financial consequences of their over-investment during the 1990's telecom boom (remember Worldcom?). On the last-mile side, service providers like Comcast also appear unlikely to invest aggressively to add a lot more capacity any time soon, because their traditional business models are under threat from companies like Netflix -- our last-mile providers fear higher speeds.
So, we have demand for ever-faster speeds on one hand, and constrained supply on the other hand. Economics 101 suggests Internet service pricing is bound to stabilize or even (gasp!) increase over the coming years.
In core routers, the landscape is entirely different. It's actually very easy to saturate a 40-gig connection coming out of a major interchange, and there are lots of BGP tricks to work around that. Individual ISPs routinely only have one, for political reasons. It would be difficult to saturate 400. (For now.)
"Optical" audio connections are more about noise resistance than distance or throughput, especially if you're running cables behind gear with big magnets (speakers) and all that.
(We use optical fibre in electrical substations and switchyards for its resistance to noise and induction; not for the capacity. Most switchroom-switchroom SCADA systems wouldn't saturate 10Mbit Ethernet!)
Plus the red LED looks cool.
[0] I know a general purpose CPU would never be used for something like this, just putting the numbers into context.
To verify that intuition, I just did a quick experiment with an Intel 10Gbps NIC and a Xeon E5506. The workload was roughly similar to switching: read packet, parse the headers, extract some fields from the headers and use that as a key to a hash table lookup, write packet out to a different interface.
This was done using code from a much more complicated system that I didn't spend any time tuning for just this case, so it's absurdly wasteful (e.g. spending 10% of the runtime just on useless calls to RDTSC).
The result was 4.3 Mpps, or about 500 cycles / packet. That seems far from 83 Mpps / 42 cycles, but it was using a single core and a single rx queue on the NIC. Make it parallel with 16 cores / queues, and you're in the right ballpark. And then remember that we're talking of a 3.5 year old CPU, which was already low end when it launched.
Personally, I'd love ethernet to be used as the interconnect for more stuff. USB is kinda weird to me, I'd much rather have my disk drives be POE devices.
I had a whole startup sketched out, it's pretty obvious when you think about it.
Desktops get a software only version that will do reasonably well and is cheap.
Power users/small servers get a slightly more expensive (maybe 2x the cost of a PCI card) that does the remote DMA in hardware; this card is one ethernet port and only handles one DMA at a time.
Big servers get a multi port card that will run multiple streams at once.
I tried to get the disk drive people interested because there already is a processor down on the drives that is a general purpose CPU (there are two, one that controls the disk arm, that's special, and one that manages the cache, read ahead/write behind, that could run a stripped down Linux or whatever and do the other side of the protocol).
The drive people never got excited because the cost savings of el cheapo ethernet wasn't enough to offset the cost of the extra memory they felt they would need.
http://www.codinghorror.com/blog/2005/07/gigabit-ethernet-an...
Is this still true? What's the bottleneck?
The bottleneck is really the computer buses (memory included) and implementation of protocols.
Effectively a 1Gbit Ethernet node must transmit at least 512 bytes during its timeslot. If it has that much to send then it all goes out at 1gbit. If it only has a few bytes to send (a tcp ack for example) then it must idle for a bit to make sure there wasn't a collision.
In theory gigabit Ethernet should perform at 1gbit for sustained transfers but much worse for workloads with more sporadic sets of smaller packets. In practice, especially on core switches and routers, modern techniques like frame bursting (sending multiple small packets going to the same destination back to back) even things out more.
10gbit Ethernet and above get rid of the carrier sense collision detection support all together and require the entire network to be point to point with switches. It has no minimum timeslots or packet lengths.
Google Fiber is a great first step, but I think the only long-term viable solution is to have Municipal Fiber (in dense cities like SF and NY). There is no reason why we (I live in SF) should not have access to the same speeds as folks in Seoul and Tokyo, at similar prices.
There's a nascent effort in SF to bring Municipal Fiber to the City (I am just a mailing list subscriber): http://sffiber.info/ It could sure use some love.
In October 2003, Comcast doubled speeds from 1.5 to 3. $57 is about equivalent to today's 50Mbs plan. In theory, 9 years is 6 doubles (192Mbs), so they're about two doubles short of hitting the 18 month target, but they're actually ahead of schedule if you're willing to grant a two year timeline per double.
I was paying $150/month for 2x64 ISDN in 1998/1999. So, my price went from .85 kilobits/1$ to 434 kilobits/1$. 500x increase in price performance in 13 years, which is a bit better than the expected 256x increase over 13 years.
Things have plateaued recently - but I expect to see 1 Gigabit to the home to be pretty standard in the bay area by 2020 for $70 - which is completely in line with 18 month price performance doubling. (33x improvement) - it's just a little bursty.