Live data from Hacker News

Show HN: I'm writing a free book called Computer Networks from Scratch

networksfromscratch.com

81–90 of 138 posts

Re: Show HN: I'm writing a free book called Computer Networks from Scratch

#82

> The answers I get have taught me that most programmers don't have a basic understanding of how the internet works outside of their narrow specialty. This lack of a rudimentary mental model is one of the largest contributors to wasted time and effort in web application development. I'm curious what specific mistakes you're thinking of that application developers make when they don't understand computer networks. In…

Off the top of my head, not understanding the implications of the 2 Generals Problem is a really big one. Specifically, time and again, I've seen engineers struggle with distributed sagas (or any kind of distributed coordination really), because they don't know enough about the underlying model to reason about it.

There are also simpler issues. Not knowing the difference between GET and POST, not understanding what a header is, how parameters are passed etc...

Then there are the problems in the middle like not knowing how to correctly configure an HTTP client library.

The purpose of writing the book though is to help people develop a good mental model of the system, so that they don't need to memorize a list of all the things that can go wrong.

Adding a few examples to the intro wouldn't be a bad idea though!

Re: Show HN: I'm writing a free book called Computer Networks from Scratch

#83

I feel like walkie talkies are something all network engineers need to play with. Furthermore, remember that real world telephone and radio networks were in fact... Networks. (Called 'nets' in the radio world) Ethernet, and 802.11, are both based on the concept of a singular channel shared by many individuals. When Alice talks, she says 'I'm Alice calling Bob, can you hear me Over'. Alice is the source address. Bob i…

> Dave knows to stay off the channel (otherwise he will cause interference) What would be the Bob-Alice-Dave equivalent to replacing the network hub with a switch?

There is no true radio analogue here in the sense of how OP was explaining it.

At least in a wireless context, CDMA and TDMA are flawed examples because, CDMA uses fancy math to split communications over multiple channels and TDMA cuts the channels up into timeslots. You don't get full bandwidth allotment and utilization.

To make a wireless switch, you'd need to have PTP optical/microwave/radio links which have highly directional antennas. This would give you full-bandwidth per user.

Re: Show HN: I'm writing a free book called Computer Networks from Scratch

#84

I feel like walkie talkies are something all network engineers need to play with. Furthermore, remember that real world telephone and radio networks were in fact... Networks. (Called 'nets' in the radio world) Ethernet, and 802.11, are both based on the concept of a singular channel shared by many individuals. When Alice talks, she says 'I'm Alice calling Bob, can you hear me Over'. Alice is the source address. Bob i…

> Ethernet, and 802.11

full duplex ethernet circuits (eg: a basic cheap 10Gbps 1310/LR carried over two $30 transceivers and a six foot fiber patch cable between two pieces of equipment) and a half-duplex TDD/CSMA regime like 802.11b/g/n/ac/ax are not the same thing.

yes they both enable ethernet connectivity between devices on fabrics of things that can see and arp each other.

the ethernet 10GbE might be shared by many individuals. but it's full speed both directions. one is half duplex, the other is not. one has contention on the shared media airtime, the other does not.

they are both possibly shared in the sense that many peoples' traffic may be carried across the 10GbE full duplex circuit, the the real world implementation is very different.

the real world implementations of FDD point to point (FCC part 101) or similar radio systems are closer to wired ethernet in concept, though with less capacity.

however I do agree with your general point that more people should familiarize themselves with the limitations and usage methodologies for half duplex IP data mediums and the best real world implementations.

Re: Show HN: I'm writing a free book called Computer Networks from Scratch

#85

This looks great so far! I like the approach. I'm looking forward to reading chapter 4 and beyond next!

Thanks! Working on chapter 4 now.

I really like how in depth you are going on foundational Layer 1 material so far. Example, I was so happy to see you discussing transceivers. I feel like mosts texts just give a cursory treatment to layer 1 and its hardware. I hope the next few chapters continue on with this layer 1 and hardware before moving up to Layer 2. I think it makes your book quite unique so far. Thanks for sharing.

Re: Show HN: I'm writing a free book called Computer Networks from Scratch

#86

Earlier quoted context omitted.

Potentially, once I cover the more basic topics. Part 1 will cover essentially a simplified Ethernet network (plus a few additions). Part 2 will cover the internet as it existed about 20 years ago. And part 3 will cover modern additions. I’ve done some IOT work so it is something that interests me.

What are you plans for addressing the fact that most modern network innovation is invisible to the end host’s kernel, let alone the application. I’ve struggled to find a book that doesn’t just hand wave layer 1 and assume layer 2 is ethernet everywhere.

Layers 1 and 2 of the osi model require electronics engineering, heavy math, and materials science.

It's not all that network related.

WiFi and xray transmissions is of course covered in most books though at least in terms of its capabilities.

What more do you want to know about level 1 and 2?

Re: Show HN: I'm writing a free book called Computer Networks from Scratch

#87
post #76

Question : Why would people (these days) be motivated to spend time on reading about a subject slowly as opposed to trying to read short targeted content (blogs/tutorials) quickly and jump into the practical bits? May be it's just me and the kind of people I have been meeting who do not seem to have as much patience and time and would prefer getting hands-on experience quickly. I can see how I might sound complaining…

People read books because grabbing bits and pieces from blogs and tutorials often means that you end up with holes in your understanding that you don't know are there. Books are also a nice place to start when you don't even know what blog posts to read.

Tutorials are great if you want to learn how to use library X. I prefer books if I want to understand the problem that library X solves. Of course that's a sweeping generalization.

Re: Show HN: I'm writing a free book called Computer Networks from Scratch

#88

> The answers I get have taught me that most programmers don't have a basic understanding of how the internet works outside of their narrow specialty. This lack of a rudimentary mental model is one of the largest contributors to wasted time and effort in web application development. I'm curious what specific mistakes you're thinking of that application developers make when they don't understand computer networks. In…

Can’t speak for OP, but there are a lot of things people do out there, not just web apps.

People building games, robots, trading systems, distributed databases, CDNs, etc could be really limited in their capability if they didn’t grok networking concepts on a deeper level. It also tends to tie in heavily to other systems concepts (things like zero-copy, or even basic elements like ring buffers).

I think you might also underestimate just how little knowledge a lot of people have. You went to a legit uni and took a legit course.

The interview question OP asks is an old favourite I used to ask too. A lot of people answered something like “clicky-linky-page-rendery!” So a bit of education on the many layers below that doesn’t hurt.

Re: Show HN: I'm writing a free book called Computer Networks from Scratch

#90
This is very interesting, thank you. I didn't get this line

> As it happens, 00101 is also binary for the number 5. If you start counting at 0 (A = 0, B = 1, C = 2, and so on), then R is also number 5.

R is 17, not 5. You might want to reword it. Stopped here to ask you this and haven't read further yet.

Post reply on HN