Network protocols for anyone who knows a programming language (2017)
destroyallsoftware.com
destroyallsoftware.com
This one left me laughing hard.
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 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.
Edit: also, it has an entire section about HTTP/2 https://hpbn.co/http2/
Alas, I'm a lazy #$%@&
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.
Gary is more of a prose guy, to me.
Agreed with other commenters, this is a great article- thanks for posting!
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.
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.
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?"
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 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.
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
Any comments on the above? Or other suggestions?I can't speak to the others.
https://technicshistory.com/the-backbone/
There's also The Switch by the same person: