Ask HN:学习现代网络的好书?

学习现代计算机网络,最好结合经典教材、协议参考资料和大量动手实验。评论者重点提到了《TCP/IP Illustrated》、《计算机网络:自顶向下的方法》(Tanenbaum 的《Computer Networks》也被提及)以及《The Illustrated Network》等资源,同时也推荐在线讲座、RFC 和偏浏览器方向的文本。一个反复出现的主题是:核心概念(Ethernet、IP、TCP、DNS)变化缓慢且依然关键,而实践实验——家庭路由器、VLAN、Wireshark 抓包和虚拟实验室——对于弥合理论与真实故障排查之间的差距至关重要。

“现代网络”的范围

  • 许多评论者认为,“现代”网络仍然建立在数十年前的基础之上:Ethernet、IP、TCP/UDP、DNS、DHCP、HTTP。
  • 较新的主题(云、SDN、VPC、CDN、QUIC、WebSockets、WebRTC、VXLAN、数据中心中的 BGP、用户态网络、SmartNICs)更多被视为额外的层/抽象。
  • 有人强调 IPv4/IPv6 的政策和实践已经发生了显著变化;也有人声称 TCP/IP 核心“根本没有变化”,这反映出分歧。

基础书籍和参考资料

  • 《TCP/IP Illustrated》(尤其是第 1 卷)和《Unix Network Programming》这类经典著作因其对协议的深入理解和网络编程而广受好评。
  • No Starch 出版的一本大型 TCP/IP 书被定位为百科/参考书,而不是入门书;其年代久远使得部分 IPv4/IPv6 内容已经过时。
  • 其他推荐的概览包括:Computer Networking: A Top-Down ApproachComputer Networking: A Systems ApproachThe Illustrated NetworkThe TCP/IP GuideInterconnections 以及各种工程/架构类文本。
  • 一些担忧:有些教材几乎不涉及物理层;另一些则因承认 SDN 以及控制平面/转发平面的分离而受到称赞。教材价格/授权也受到批评。

面向 Web 和浏览器的材料

  • 《High-Performance Browser Networking》被反复推荐给 Web 开发者:简洁、实用,但偏向浏览器,且在现代 CDN/VPN 方面略显过时。

适合初学者和替代形式

  • 建议包括 YouTube 系列、大学讲座视频、小册子、面向“系统管理员/程序员”的简短网络书籍,以及 CCNA 风格的材料。
  • 通过编码来学习的网络编程入门也受到推荐,例如 Beej 风格的指南、C 套接字书籍、ZeroMQ 指南。

动手实验和故障排查练习

  • 普遍认为实践至关重要:搭建过于复杂的家庭网络、VLAN 分段、访客网络、跨 VLAN 的 mDNS、Pi-hole、WireGuard/VPN、PBX 等。
  • 使用 Wireshark、tcpdump、ping、netstat、ifconfig/route 等工具;一种观点认为,处理这些设置中的问题比单纯理论更能建立直觉。
  • 还建议使用 GNS3、Packet Tracer、mininet 等模拟器进行虚拟实验;有评论者设想一个“网络版 LeetCode”,提供结构化的故障排查场景。
  • 在掌握基础之后,RFC 和 IEEE 802 规范被推荐作为主要来源,而 Wikipedia 则可作为进入 RFC 的更温和入口。