While the preamble allows the devices to sync their clocks, the gap allows them to reset.
The assumption is that there will be some drift between the clocks over the course of a transmission. A period of electrical silence makes it clearer when the last packet ends and when the next preamble begins.
I think of it like shouting in a canyon. Shout Hello and it’s intelligible, but shout a whole sentence, and it’s hard to make out among the echoes and wind and birds. With some time between words for noise to settle down, signal to noise ratio improves and everyone can resync with each word.
It’s not a big deal, and the gaps are smaller as line speeds increase. 10Base-T has big fat millisecond gaps, while 400G Ethernet has gaps that seem impossibly small.
I suspect it has (had) to do more with the fact that ethernet used to be a multi-access protocol and you were giving someone else a chance to talk. in general having read this its not clear how much of this is legacy and how much is modern. certainly there doesn't need to be a rest on a dedicated channel, and most other protocols leave the clock synched between peers (i.e. with 4b5b idle tokens)
Yeah the article skips past the multiple access (hub) era for sure, and I haven’t thought about it in many years myself (!).
I don’t know for sure how directly the IPG was related to multiple access. Early Ethernet would wait for silence, a la carrier sense multiple access, but it also used a collision detection and backoff mechanism. When someone tried to transmit, if someone else was talking, both would detect the collision and each would wait a semi-random period of time and try again, repeating with incrementally larger delays until a collision wasn’t detected and the frame could be transmitted.
When there were only hubs, or when everything was on one coaxial cable, collisions happened all the time. The more nodes on a segment, the more collisions would impede traffic. You’d design a network with gateways and routers and expensive little store-and-forward switches at what we’d now call the core, to partition everything into smallish segments and try to keep the collision domains small.
Cheap switching at what we’d now call the access level fixed all this by making all links effectively point to point.
Ethernet standards from 10G onward don’t even bother with multiple access (point to point only, meaning switched), but they still retain the inter-packet gap. In some places it’s referred to as a “guard interval.” So I do think it’s mostly to provide opportunities for resyncing.
Much of this applies in the RF domain as well. Before MIMO, Wi-Fi was directly analogous to an Ethernet hub… CSMA, one collision domain, incremental back off. Some access points still let you specify the guard interval manually. MIMO and things like beam-forming help reduce the collision domains by breaking the RF into cells and allowing something pretty close to a point to point link between the node and the AP. RF is its own dark art, but in terms of signaling, the problems and their solutions are much the same.
So you’re correct that the guard interval or IPG would create a bit of silence for someone else to jump into. Everyone would probably have to resolve the collision in that case, but Ethernet accommodates that scenario as well.
I wonder if they left it in because they just wanted to be really, really sure there wouldn't be any getting stuck in bad states like some I2C devices can.
It's still used to allow for timing discrepancies between the physical layer and higher layers. Phys will insert and delete symbols in the IPG when the FIFOs between layers have too few or too many entries. This allows for systems with ever so slightly different clocks to talk to each other without any packet loss.
In the Gemini spacecraft this was almost true. The ram they used would overheat if accessed too frequently so the assembly coders had to be sure to add no ops or find other things to do while the ram cooled down.
She's also fantastic. Their sense of humor is great and it makes digesting deep content a lot easier.
But Julia's concision in her Zines is what sets her apart, to me. So much great content in 3 or 4 panels. Incredible, it must be really hard and take a long time to achieve.
TCP sequence numbers count bytes not packets, which is why they don't increment by 1 for each packet (unless the previous packet only included one byte of payload).
Agreed with other commenters, this is a great article- thanks for posting!
> This is handled by IP, the Internet Protocol, whence IP addresses.
This is grammatically nonsense. Correct would be “whence IP addresses come”. Or, “from where IP addresses come”, if you want to write like somebody normal
One of my biggest pet peeves is when someone uses obscure words like “whence” in an effort to flex their knowledge - and it’s even worse when they actually use it wrong. Almost made me stop reading the article. Although I’m glad I didn’t, because the rest of the article is great.
That sentence's grammar is intentional. (I wrote the sentence.)
English is not a programming language. I'm sure that we can both name revered authors who have used far "worse" grammar consistently throughout their careers, whereas the word choice that has so ruffled you here involves a single word.
As to "flexing knowledge": I had some fun in a couple sentences in that article. I aim to be at least slightly more than a machine that extrudes gray paste of unit density. Fabricating an ulterior motivate and attributing it to me is offensive.
Do you react similarly when watching "wat" due to the misspelling, or "The Birth and Death of JavaScript" due to pronouncing the "J" like a "y"? Part of the charm of his content is the lighthearted, silly nature of it, and throwing in an antiquated sounding word seems to me like just another instance of not making technical content have to be overly dry and serious.
Even if it was grammatically incorrect, you understood what they meant, right? With such a vast field of knowledge as tech, should one strive to become a masterful writer on top of their technical studies? Maybe just being able to get an intelligible point across to the masses is good enough.
Not necessarily focusing my comment at you, either. I've seen this sentiment around a lot, and my reaction each time is "what am I, a software engineer or the one monkey that managed to type the complete works of William Shakespeare on a typewriter?"
I guess sometimes it takes a bit of knowledge about the author to read through their reading without cringing. In this case, I think it's on purpose, to give the author's (fictional) tone to the text. If you try watching one of the later talks, you'll see what style the text is trying to emulate.
> There are too many Internet nodes for it to work in this way. We can't provide a direct, uninterruptible path from each machine to each other machine it wants to talk to.
Is this true? Isn't a direct, uninterruptible path from each machine to the other a requirement for communication? The path must proceed through complex switching systems, like in the analog days, yes.
What is meant by the statement that it is no longer electrically equivalent to a single wire?
In old telephone systems, each telephone had a dedicated wire to the central, and centrals had a number of dedicated wires between, each one of which could be used for one conversation at a time. Setting up a call involved physically switching your line to one of the wires to the next central, and from there to the next, until the last central where there was a physical connection made to the line the person you were calling (unless if at some place no free wires were available; then you got a busy signal). Once all the switches were put in the correct position, there was practically speaking one uninterrupted wire between the two phones. If you were to put a voltage spike on your line, that could be measured at the other end. At the end of the call the switches were put in another position, and there was no electrical connection between those phones anymore.
In a packet-switched network, there is no direct electrical connection between two arbitrary nodes; there is only an electrical connection between your device and the first router, and between any router and the next one.
Of course nowadays telephone lines don't work with physical dedicated wires anymore either. It's all digitized and multiplexed now.
I think this refers to circuit switching (in the old telephone networks, when you called someone, the connection had to be physically established at the "intersections" by the phone network operators) vs. packet switching (where the underlying network is not changed, instead the data packet is forwarded from one "intersection" to the next and reaches its destination eventually).
Great read. This made me curious about “the story” of the creation of the internet.
ChatGPT suggested some books:
1. Where Wizards Stay Up Late: The Origins Of The Internet
2. The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution
3. Inventing the Internet
Not related to the "creation" of the Internet, but Clifford Stoll's The Cuckoo's Egg is a great read and I would highly recommend it. I also second "Where Wizards Stay Up Late".
This one left me laughing hard.