[HN Gopher] Network protocols for anyone who knows a programming...
___________________________________________________________________
Network protocols for anyone who knows a programming language
Author : yla92
Score : 238 points
Date : 2023-08-03 11:14 UTC (11 hours ago)
(HTM) web link (www.destroyallsoftware.com)
(TXT) w3m dump (www.destroyallsoftware.com)
| HL33tibCe7 wrote:
| > 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.
| starttoaster wrote:
| 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?"
| mjdowney wrote:
| Concise better, silly
| saghm wrote:
| 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.
| gary_bernhardt wrote:
| 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.
| davidrupp wrote:
| Flex on, lad. Flex. On. Long may you flex.
| capableweb wrote:
| 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.
| icedchai wrote:
| I think it's a simple typo... "hence IP addresses" makes more
| sense.
| depressedpanda wrote:
| I'm just happy they didn't write "from whence". I know it's
| accepted usage, but it just irks me when I see it as "from" is
| entirely redundant.
| monk1 wrote:
| > An interpacket gap of 96 bits (12 bytes) where the line is left
| idle. Presumably, this is to let the devices rest because they
| are tired.
|
| This one left me laughing hard.
| aequitas wrote:
| Thinking of the router in Warriors of the Net[0] and it makes
| perfect sense, he could use a rest once in a while.
|
| [0] https://www.youtube.com/watch?v=PBWhzz_Gn10
| jmbwell wrote:
| It's funny cos it's kinda true?
|
| 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.
| convolvatron wrote:
| 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)
| jmbwell wrote:
| 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.
| tambourine_man wrote:
| Gary Bernhardt is just so good, I wish I would dedicate more time
| to read and watch his content.
|
| Alas, I'm a lazy #$%@&
| s_dev wrote:
| He's basically a hardcore version of Julia Evans who also does
| great learning content for techies.
| tambourine_man wrote:
| 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.
|
| Gary is more of a prose guy, to me.
| lordnacho wrote:
| Cool, I didn't know that final wrinkle about the 8b/10b encoding.
| Physical layer stuff is not so common these days.
| ipython wrote:
| 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!
| jbirer wrote:
| Bookmarked.
| sesm wrote:
| You can find a more detailed (yet accessible) description of TCP
| congestion avoidance and slow start in this excellent and free
| book: https://hpbn.co/building-blocks-of-tcp/#congestion-
| avoidance...
|
| Edit: also, it has an entire section about HTTP/2
| https://hpbn.co/http2/
| z5h wrote:
| 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
|
| Any comments on the above? Or other suggestions?
| tiahura wrote:
| While not Internet-centric, hopefully you've read Hackers by
| Steven Levy.
| z5h wrote:
| No. (Shame). But I did just download "UNIX: A History and a
| Memoir".
| pjmorris wrote:
| I read 'Where Wizards Stay Up Late', thoroughly enjoyed it, and
| would recommend.
|
| I can't speak to the others.
| beeburrt wrote:
| The Backbone
|
| https://technicshistory.com/the-backbone/
|
| There's also The Switch by the same person:
|
| https://technicshistory.com/the-switch/
| ipython wrote:
| 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".
| whartung wrote:
| I looked at those titles and wondered if ChatGPT just made them
| up.
| id0ntw4ntit wrote:
| > 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?
| alfons_foobar wrote:
| 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).
| roelschroeven wrote:
| 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.
| yayitswei wrote:
| Good study guide for that one interview question, "what happens
| when I type google.com into the browser and press enter".
| glonq wrote:
| "The great firewall of china blocks me and I lose 10 social
| credit points"
___________________________________________________________________
(page generated 2023-08-03 23:02 UTC)