
Ask HN: What should I read to understand computer networking? - marimomo
I&#x27;m a data scientist, and I run into a number of networking-related frustrations periodically, which typically revolve around the interactions between two or more of the below:<p>- our corporate VPN&#x2F;proxy
- SSL certificates
- AWS
- docker<p>I have some amateur knowledge of networking stuff, but I feel like I struggle to get around these problems, and when I do, my &quot;solutions&quot; are just cobbled together based on bits of what seems to have worked before. I don&#x27;t know how to systematically debug a problem, other than trying to CURL stuff with different options and seeing what works and what doesn&#x27;t.<p>And sometimes I&#x27;ll find some solution by Google, but even if it works, I&#x27;ll feel a sense of ignorance rather than clarity. E.g., I was trying to route Docker traffic through Charles proxy, and naively set 127.0.0.1 as the proxy address. My Docker container thought this referred to itself and thus had no internet access. I solved it with a network alias [1], but I hadn&#x27;t even realized that was possible, and I still have no idea how it works, or what it &quot;looks like&quot; from the perspective inside the container and on my host OS.<p>This makes me feel like I could benefit from more formal knowledge of networking.<p>Can anybody recommend a course, book, or set of tools for improving at this, generally?<p>[1] https:&#x2F;&#x2F;www.bonusbits.com&#x2F;wiki&#x2F;HowTo:Setup_Docker_Container_to_Use_Charles_Proxy_on_macOS
======
dozzie
Well, you have experienced first hand that the Docker's idea that people
working with network should not need to understand network is dumb.

Start with old and venerable LARTC (Linux Advanced Routing & Traffic Control
HOWTO). TCP/IP hasn't changed all that much since it was written and last
updated, even with the advent of Docker.

------
zwischenzug
I have felt exactly this pain and toyed with the idea of writing a book on it,
mostly to learn networking myself.

There's such a divide between network engineers and everyone else, maybe
because most network knowledge is gained in the field and it's pretty hard to
get the experience without being in the networking corps.

~~~
dozzie
> There's such a divide between network engineers and everyone else,

Only between network engineers and programmers. Sysadmins are not that far
from netadmins, and they have no such problems.

> maybe because most network knowledge is gained in the field and it's pretty
> hard to get the experience without being in the networking corps.

No, not really. That's only because programmers are reluctant to learn from
administrators, OS, network, or otherwise. Admins have quite a lot of material
about networking, and on different levels, too, and the field is quite simple
if you don't reach the point of coordinating with everybody else (BGP,
autonomous systems, things like that).

