Happy 50th Birthday, Ethernet
blog.apnic.net
blog.apnic.net
* https://www.youtube.com/watch?v=TkOVgkcrvbg
The Computer History Museum also had a discussion with Metcalfe (and others) on it:
* https://www.youtube.com/watch?v=T9On2L0-ObU
* https://computerhistory.org/blog/ethernet-turns-50/
* https://en.wikipedia.org/wiki/Robert_Metcalfe
Also perhaps see Computerphile's "Discussing PDF@30 Years Old", which celebrated its anniversary/birthday in January:
There is something intriguing about this image of localizing information along the cable...
> pingfs is a filesystem where the data is stored only in the Internet itself, as ICMP Echo packets (pings) travelling from you to remote servers and back again.
if you draw a Poincare disk model [1] where one dimension is nerdiness and the other is humor this guy is floating somewhere outside the boundary.
https://www.commscope.com/globalassets/digizuite/2799-latenc...
Ethernet used to be a collision domain on coaxial cable, not a switched full-duplex medium on twisted pair. It changed piece by piece into something that's conceptually fairly different from what it was, especially when it ceased being a collision domain.
https://en.wikipedia.org/wiki/Collision_domain
> Early Ethernet variants (10BASE5, 10BASE2) were based on a shared wire and inherently half-duplex, representing a single, potentially large collision domain. Collision domains are also found in an Ethernet hub or repeater environment where each host segment connects to a hub, and all segments represent only one collision domain within one broadcast domain. Collision domains are also found in other shared medium networks, e. g. wireless networks such as Wi-Fi.
> Modern wired networks use a network switch to reduce or eliminate collisions. By connecting each device directly to a port on the switch, either each port on a switch becomes its own collision domain (in the case of half-duplex links), or the possibility of collisions is eliminated entirely in the case of full-duplex links. For Gigabit Ethernet and faster, no hubs or repeaters exist and all devices require full-duplex links.
And it's come back full-circle to (radio) collision domains (à la AlohaNet) with Wifi, which I think the vast majority of people use on a day-to-day basis rather than plugging in.
[0] https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_... [1] https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_...
For last 100 feet yes, but for the entire rest of the network it's either fiber or copper. Notably, Ethernet framing sometimes with additional encapsulation is used everywhere along the path.
https://www.microwaves101.com/encyclopedias/simultaneous-tra...
Ethernet is stuck on 1500 byte frames, with the result of limiting TCP as well. That's just nuts on 100G or 400G networks, even on 10G it's a bit of a stretch already.
TCP is also sticking around for too long. Almost nothing wants a stream these days, lots and lots of applications reinvent datagrams on top of it.
Of course people came up with workarounds, but that's mostly adding a bunch of different layers on top. So on the surface everything looks stable, but in reality there's a huge amount of protocols piggybacking on top of TCP and UDP.
So maybe you run 9000 packets on internal interfaces, and 1500 externally, or more often, that's too hard and 1500 is it.
There are 9000 internet exchanges, so maybe there is hope, but I haven't seen any progress reports.
How limiting is 1500 for the end-nodes for most people? For access-, distribution-, and core-layer switches the ASICs process things at wire speed, so does it matter what the frame size is?
I can see some server applications, but we've had offloading for years now:
* https://en.wikipedia.org/wiki/TCP_offload_engine
Netflix is hitting (encrypted) 800 Gb/s:
* https://www.youtube.com/watch?v=36qZYL5RlgY
* https://news.ycombinator.com/item?id=32519881
> TCP is also sticking around for too long. Almost nothing wants a stream these days, lots and lots of applications reinvent datagrams on top of it.
Tallk to the vendors of middleware boxes (e.g., (CPE) firewalls): we've had (say) SCTP and DCCP for twenty years that offer variations, but they're never allowed to pass through. No new Layer 4 can really be allowed through because of ossification, and so kludging everything to TCP/UDP port 80/443 is what we're left with.
NAT and a lack of end-to-end also doesn't help: one has to futz around with things like STUN and TURN.
Not very. For most end users, connection speeds are much less than 1G and 1500 is a reasonable size.
> For access-, distribution-, and core-layer switches the ASICs process things at wire speed, so does it matter what the frame size is?
Yes, for these systems, one of the limiting factors is routing lookups per second. You'll see some systems that can only process wire speed with large packets, not with small packets, maybe with a mix. Increasing the size of packets reduces the packet count, reducing the routing lookups or other per packet work.
Well, here's my personal experience for instance.
If you take a Linux server and try to do put a 10G interface into a bridge, that disables a good amount of the offload capability of the network card. As a result you don't get 10G anymore even on fairly decent hardware.
So VMs in a bridge with a 10G interface is already a configuration that doesn't quite work.
VFIO does the trick fortunately.
Also, surely even for ASICs there's a cost that comes with having to handle 150M packets/s.
And yeah, you can do those speeds on switches and devices with limited functionality, but maybe I want some iptables rules on my server hooked up to 100G.
And all of those are really workarounds that shouldn't be necessary. Having more than a hundred million packets per second is something that only happens because things got fossilized on a tiny packet size, not because there's actually some point to splitting up a 2 GB download into more than a million tiny bits.
Encryption could have been IP layer, DNS could have always been secure, certificates don't need to exist if IP addresses and DNS were secure by themselves, separate IP and MAC addresses might not really be needed ...
But the fact that there is a global standard internet protocol is amazing!
The stream is an atom of data - it's a block of serialized memory. How else do we transfer arbitrary amounts of data?
What do you mean?
Lots and lots of programs work by building some sort of message system on top, with some sort of message type/length/payload system. Thousands of slightly different versions of reinventing that particular wheel.
Ooh! Can't wait.