本专栏分为 5 个模块,帮助你系统地学习计算机网络相关的知识点,每个模块对应一个热门的面试方向,每一讲都会以高频面试题为引,介绍这个方向上涉及的重点内容,引出很多在工作中关心的问题和技术难点。
模块一:互联网和传输层协议这个模块会介绍互联网的体系和整体框架,参与的硬件设备,以及它们的作用。还会介绍传输层协议 TCP 和 UDP,重点讨论它们的的工作原理、算法和优化策略。这部分知识是计算机网络的基础,也最能体现网络设计的精髓。
模块二:网络层这个模块会围绕局域网和 IP 协议展开,包括 ARP、IPv4、IPv6、NAT 等基本概念,探讨 IPv6 的工作原理,以及 IPv6 和 IPv4 的兼容策略。IP 协议几乎是网络层的唯一协议,是大厂面试最为热门的内容之一。模块一和模块二属于基础篇,是计算机网络最底层的基础知识。
模块三:网络编程这个模块会围绕 Socket 讨论网络编程,介绍各种网络 I/O 模型和编程方式的优缺点,并以 RPC 框架设计为题去落地学到的这些知识和实现。讨论在不同的并发量、针对不同服务特性选择不同的 I/O 模型,等等,进而帮助你学习如何优化自己系统的网络,这部分内容会为企业带来实际价值,因此面试官会重点提问。
模块四:Web 技术这个模块会讨论平时使用最多且最重要的应用层协议——HTTP 协议(包括 HTTP 2.0),并扩大讨论范围到 Web 技术生态,比如从 DNS 看缓存、从 CDN 看负载均衡、从 HTTP 协议看开发规范、从流媒体技术看协议选择,以及从爬虫技术看网络安全。
模块五:网络安全这个模块会讨论网络安全技术,一部分是基础设施,比如证书、加解密、公私钥体系等;另一部分是具体的攻击手段,比如 DDoS、XSS、SQL 注入、中间人攻击等,以及它们的防御手段。安全是所有互联网公司的高压线,学完这块内容能够帮助你屏蔽掉一些高危操作,在工作中避免出现安全问题。
├── 01 漫游互联网:什么是蜂窝移动网络?.mp4
├── 02 传输层协议 TCP:TCP 为什么握手是 3 次、挥手是 4 次?.mp4
├── 03 TCP 的封包格式:TCP 为什么要粘包和拆包?.mp4
├── 04 TCP 的稳定性:滑动窗口和流速控制是怎么回事?.mp4
├── 05 UDP 协议:TCP 协议和 UDP 协议的优势和劣势?.mp4
├── 06 IPv4 协议:路由和寻址的区别是什么?.mp4
├── 07 IPv6 协议:Tunnel 技术是什么?.mp4
├── 08 局域网:NAT 是如何工作的?.mp4
├── 09 TCP 实战:如何进行 TCP 抓包调试?.mp4
├── 10 Socket 编程:epoll 为什么用红黑树?.mp4
├── 11 流和缓冲区:缓冲区的 flip 是怎么回事?.mp4
├── 12 网络 IO 模型:BIO、NIO 和 AIO 有什么区别?.mp4
├── 13 面试中如何回答“怎样实现 RPC 框架”的问题?.mp4
├── 14 DNS 域名解析系统:CNAME 记录的作用是?.mp4
├── 15 内容分发网络:请简述 CDN 回源如何工作?.mp4
├── 16 HTTP 协议面试通关:强制缓存和协商缓存的区别是?.mp4
├── 17 流媒体技术:直播网站是如何实现的?.mp4
├── 18 爬虫和反爬虫:如何防止黑产爬取我的数据?.mp4
├── 19 网络安全概述:对称、非对称加密的区别是?.mp4
├── 20 信任链:为什么可以相信一个 HTTPS 网站?.mp4
├── 21 攻防手段介绍:如何抵御 SYN 拒绝攻击?.mp4
├── 加餐 模块二思考题解答.mp4
├── 加餐 模块三思考题解答.mp4
├── 加餐 模块四思考题解答.mp4
├── 加餐 模块五思考题解答.mp4
├── 加餐 模块一思考题解答.mp4
├── 结束语 未来需要怎样的工程师.mp4
├── 开篇词 一次搞定计算机网络,高效修炼程序员内功.mp4
├── 课程列表信息.txt
├── 课前导读 程序员如何打好计算机领域的基础?.mp4
└── 文档
├── 01 漫游互联网:什么是蜂窝移动网络?.md
├── 02 传输层协议 TCP:TCP 为什么握手是 3 次、挥手是 4 次?.md
├── 03 TCP 的封包格式:TCP 为什么要粘包和拆包?.md
├── 04 TCP 的稳定性:滑动窗口和流速控制是怎么回事?.md
├── 05 UDP 协议:TCP 协议和 UDP 协议的优势和劣势?.md
├── 06 IPv4 协议:路由和寻址的区别是什么?.md
├── 07 IPv6 协议:Tunnel 技术是什么?.md
├── 08 局域网:NAT 是如何工作的?.md
├── 09 TCP 实战:如何进行 TCP 抓包调试?.md
├── 10 Socket 编程:epoll 为什么用红黑树?.md
├── 11 流和缓冲区:缓冲区的 flip 是怎么回事?.md
├── 12 网络 IO 模型:BIO、NIO 和 AIO 有什么区别?.md
├── 13 面试中如何回答“怎样实现 RPC 框架”的问题?.md
├── 14 DNS 域名解析系统:CNAME 记录的作用是?.md
├── 15 内容分发网络:请简述 CDN 回源如何工作?.md
├── 16 HTTP 协议面试通关:强制缓存和协商缓存的区别是?.md
├── 17 流媒体技术:直播网站是如何实现的?.md
├── 18 爬虫和反爬虫:如何防止黑产爬取我的数据?.md
├── 19 网络安全概述:对称、非对称加密的区别是?.md
├── 20 信任链:为什么可以相信一个 HTTPS 网站?.md
├── 21 攻防手段介绍:如何抵御 SYN 拒绝攻击?.md
├── 加餐 模块二思考题解答.md
├── 加餐 模块三思考题解答.md
├── 加餐 模块四思考题解答.md
├── 加餐 模块五思考题解答.md
├── 加餐 模块一思考题解答.md
├── 结束语 未来需要怎样的工程师.md
├── 开篇词 一次搞定计算机网络,高效修炼程序员内功.md
└── 课前导读 程序员如何打好计算机领域的基础?.md