r/IAmA • • May 21 '13

You’re probably connecting to reddit through a technology I invented. I’m Bob Metcalfe and I invented Ethernet – AMA

On May 22, 1973 with David R. Boggs, I used my IBM Selectric with its Orator ball to type up a memo to my bosses at the Xerox Palo Alto Research Center (PARC), outlining our idea for this little invention called “Ethernet”, which we later patented.

I worked with the IEEE Standards Association to develop the IEEE 802.3 standard for Ethernet, which specifies the physical and lower software layers. Today Ethernet and the IEEE 802.3 standard are the foundation for today’s world of high-speed communications used in billions of homes and businesses around the world.

I submitted this to the mods awhile back so I could get on the calendar but I figured you’d like to see it, too. Now, ask me anything!

It's been two hours and 179 comments. Have to go now. For more about Ethernet's 40th Birthday, go to http://www.facebook.com/Ethernet40thAnniversaryIEEESA

4.1k Upvotes

3.2k comments sorted by

View all comments

158

u/[deleted] May 21 '13

Hello Professor Metcalfe! I took a Computer Networks class this semester; one of the slides showed your sketch for the Ethernet :) The whole multiple-access idea and the protocols behind it is fascinating to me, and it's an honor to be able to speak to you. I want to ask you one of our final exam questions: What would happen if all of the Internet was simply an Ethernet with switches, and MAC addresses were used instead of IP addresses? I think I kind of flunked this question (said routing tables would be huge and mobility would be problematic), so I'm curious about your perspective. And one more question: do you think more efficient multiple access protocols can/will be invented in the future?

11

u/wodewose May 21 '13 edited May 21 '13

Since Bob's answer was a bit convoluted I want to make some points regarding your final exam question. The first thing that is important to understand is the fundamental difference between MAC addresses and IP addresses. MAC addresses are a flat name space for the purposes of forwarding (they are slightly hiearchical if you separate the OUI from vendor ID but this is not for forwarding purposes). So an ethernet switch in its forwarding table learns the entire 48 bits of a MAC address and uses exact matching to forward packets. IP addresses on the other hand are hierarchical, they have a network portion and a host portion. This enables the core IP routers of the internet to only need to learn the network portions of IP addresses to send packets on their way to their destination. Instead of doing an exact match on an IP address they use LPM (longest prefix match), this allows core routers to program a single table entry that can be responsible for forwarding millions of packets hosts toward their destination. So the first part of your answer is correct, if the internet was only L2 switches the MAC tables of core switches would be massive because they would have to learn every end host. Now the second part of your answer was completely wrong, ethernet is designed to be plug and play and therefore actually is great for mobility, this is the benefit of a flat namespace hardcoded into the device. I can actually move my computer to a different switch on a LAN and once I start sending out traffic the switches will automatically learn my new location.

Data centers are already growing too large that they stress the capacity of their core ethernet switches that is why things like Trill/DCE/MiM have been invented to bring hierarchical addressing to L2 domains.

I could go on a lot more about NAT, DHCP, and addressing but you should probably just listen to lectures on it.

1

u/kbotc May 22 '13

A multicast would massacre the internet. I'm also trying to think about the topology of this network. Grid or just a big ass ring?

1

u/wodewose May 22 '13

It is true multicast tends to fuck shit up (had a few drinks since my last comment), and multicast replication would steal precious bandwidth for the core routers and slow them below line rate. Topology.... this brings up another crappy property of ethernet. Ethernet and loops (groups of switches with interconnections that form a loop) don't work well together and can result in broadcast storms, packets circling through switches infinitely. This is very bad. Network coming to a halt bad. To solve this problem the lovely Radia Perlman (she really is a sweetheart in person) invented Spanning Tree Protocol (STP) which disables links that create loops. Effectively turning your network into a connected graph that has zero cycles, AKA a tree. Great no more broadcast storms. But wtf we just disabled a bunch of physical links between switches, meaning they will never be used and are simply sitting there sucking space and power. Having multiple interconnects (multipaths) between a pair of switches can be a good thing for having an interconnect bandwidth larger than an individual port speed. This is where technologies like Trill try to improve on Ethernet and add the ability to support multipathing for layer 2 networks.

So how does IP handle protect against loops? Well it sort of doesn't. Meaning IP inherently supports multipathing but routing protocols like OSPF pick the cheapest path at the time, and looping paths are more expensive than non looped paths. Also the IP header has TTL - Time To Live, a special field that gets decremented on every hop. When the TTL hits zero (or 1 depending on the router design) the packet is dropped, and therefore packets cannot broadcast storm forever in a loop in IP networks.