Today marks the 40th anniversary of "The Ethernet: A Local Area Network; Data Link Layer and Physical Layer Specification," a version 1.0 specification published on 30th September 1980 and included in ACM SIGCOMM Computer Communication Review in July 1981. Ethernet is still used today in the majority of the lowest layer of computer networks, sitting underneath IP and higher level protocols like TCP/UDP.
In the 1970s and 1980s, networking between computers was proprietary and limited. To address this, an ex-engineer from Xerox called Robert Metcalfe got together with Xerox, Intel, and DEC to collaborate on a shared networking definition that would allow their computers to inter-operate. It would be based on Metcalfe's PhD thesis which looked at the Alohanet, a networking system that used radio waves to communicate instead of the telephone lines of other networks (such as proprietary Token Ring networks) at the time. The key realisation in Alohanet is that if two radio signals are broadcasting at once, there is a clash (radio is a simplex or half-duplex communication medium; you can transmit one way, or the other, but not both at the same time.) The realisation for both Alohanet, and the PhD that followed, was that this clash was acceptable if both the transmitting stations could detect this condition and then delay for a random amount of time before rebroadcasting. Metcalfe would later commercialise the technology in his computer network company 3-Com.
Metcalfe worked with David Boggs, Chuck Thacker, and Butler Lampson to publish the draft discussion "Ethernet: Distributed Packet Switching for Local Computer Networks," available in the Communications of the ACM Vol 19 No 7, published in July 1976. This set out the basics of the protocol, as a packet-based networking protocol with no controller or other procedures, unlike (say) Token Ring networking which circulated a token between all computers so that only one could use it at once. The abstract highlights the importance of random backoff and retry:
An Ethernet's shared communication facility, its Ether, is a passive broadcast medium with no central control. Coordination of access to the Ether for packet broadcasts is distributed among the contending transmitting stations using controlled statistical arbitration.
This allowed local area networks to be cabled together using network cables, and without a central control or switch be able to talk to each other. The original implementation used coaxial cable, as it was widely available for TV sets, to be able to act as the physical layer of the network – although with coaxial/10Base2 networks, the end of the co-axial cable run required the use of a terminator to avoid signal reflection. The Ethernet introduction paper highlights the benefits of using coaxial cables:
We chose to implement our experimental Ether using low-loss coaxial cable with off-the-shelf CATV taps and connectors. It is possible to mix Ethers on a single Ethernet; we use a smaller-diameter coax for convenient connection within station clusters and a larger-diameter coax for low-loss runs between clusters. The cost of coaxial cable Ether is insignificant relative to the cost of the distributed computing systems supported by Ethernet.
We expect that a reasonable maximum network size would be on the order of 1kilometer of cable.
The packet's structure uses an Ethernet address – these days, referred to as a network card's MAC address – using the first part of the packet, which allows networked computers to listen out for their address and ignore it if it is not addressed to that network card. The original implementation used a single byte – up to 256 computers – as the source and destination address, though by the time Ethernet 1.0 was released there were 6 octets (bytes) of data for the destination and the source, which remains the same to this day in the 802.3 Ethernet frame specification. Running ifconfig
(or ipconfig
on Windows) will show you information about your network card, incuding its MAC address (e.g. 12:34:56:78:9a:bc
) and MTU.
Interestingly the Ethernet 1.0 specification defines Ethernet as sitting on top of the physical layer (using a transceiver sitting on a coaxial cable) and on top of the data link layer, using an early version of the OSI 7-layer model (the draft was published in 1980, the formal OSI specification wasn't published until 1984, some four years after the Ethernet specification was published). Later versions of Ethernet would use the same framing but switch over to using 10BaseT (twisted pair, commonly known as Cat-5 or Cat-6 cables) or even fibre optic cables.
Ethernet frames include a CRC (Cyclic Redundancy Check) error code, which permits computers to discard packets that have had errors introduced during the encoding, delivery, or decoding of the packet. The draft version of Ethernet used a 16-bit CRC, but the version 1.0 upgraded it to a 32-bit CRC, which is still in use today. Modern network cards use hardware to calculate and verify the CRCs of Ethernet packets automatically, and invalid packets are silently dropped. Because the CRC is over the contents of the Ethernet frame, it forms the last part of the packet.
The body of Ethernet packets are variable lengths, and while the initial draft started off with 500 bytes of data, it was upgraded in the Ethernet 1.0 specification to allow for a variable length data field between 46 and 1500 bytes in size. Together with the header and checksum, it means that the Ethernet frame is between 64 and 1522 bytes in size. These days, this is known as the Maximum Transmission Unit (MTU) and is often reduced slightly in ADSL or PPPoE networks, where the ISP may suggest reducing the MTU to 1492 to allow for an 8 byte PPPoE header to be used. A (much) later version of the specification allowed for Jumbo frames of above 1500 up to 9000 bytes; however, these tend to only be used in local area networks where it is known that there is hardware support for large or jumbo frames.
Since the initial 10Mbps Ethernet network cards came out, faster networking protocols were created, from 100Mpbs "fast" Ethernet to Gigabit Ethernet and even 10Gigabit Ethernet. All that has changed is the signaling rate and the way that the packet data is encoded on the wire, but the same frames of packets that were defined 40 years ago are still used in today's computer networks. We've gone from a wired data connection to wireless (the author remembers setting up a Psion/Nokia IrDA modem to connect to the internet some decades ago) and even WiFi itself has evolved over time, with WiFi-6 the current standard for interconnecting computers wirelessly. But all of these networks still share the same Ethernet frames from the 1.0 specification, and terms like MAC address and MTU are as valid today as they were when computers were first networked together over a local area Ethernet network.
Of course, modern networking builds on top of the low-layer protocols; IP allowed for packets to be routed between different LANs over a WAN (and begat the Internet itself, hence Internet Protocol from which the name is derived) and higher level protocols such as TCP and UDP (and their specific protocol use cases like HTTP and QUIC) are the very protocols that are used, probably over a mobile network, to the device that you're reading this sentence on.
The ironic thing is, that in plain text at least, the whole article would fit in a single jumbo Ethernet packet or six regular-sized Ethernet packets— though with surrounding HTML tags and other content on the page, more likely a couple of hundred packets.
Not bad for a 40 year old protocol, eh?