TCP
- TCP 的报文状态标志与链接状态,在排查网络问题时非常重要,必须要明白协议状态,才方便抓包分析。
- 另一个知识点是 Nagel 算法和 ACK 延迟,需要了解产生的背景,是要解决小包问题,提高数据载荷比。知道对于延迟比较敏感且发送数据频率较低的场景可以关闭 Nagel 算法。
- 关于 TCP 的 Keepalive,是一种长时间没有数据发送的场景下,TCP 保持链接可用的机制,需要知道 TCP Keepalive 的开启和设置方式。
- 需要明白 TCP 是如何通过滑动窗口机制来实现流量控制的。
Http
- 需要掌握 HTTP 协议的规范,知道协议中的 Method、Header、Cookies,需要了解常见状态码的含义,例如 404、503、302 等。
- 另外还有 HTTPS 的交互流程。
- HTTP2 目前还比较新,对 HTTP2 协议的了解可以在一定程度上体现对新技术的关注程度。可以关注:HTTP2 多路复用、Stream 流式交互、流量控制、服务端推送、头部压缩等新特性
-
除了 HTTP 和 TCP 外,UDP 也是一个比较常见的传输层协议,UDP 的特点是非链接、非可靠传输,但是效率非常高。
-
最后可以对 QUIC 协议进行一些了解,QUIC 已经被标准化为 HTTP3 协议。QUIC 是基于 UDP 协议,但 QUIC 提供了类似 TCP 的可靠性保证和流量控制。QUIC 可以有效避免 HTTP2 协议的前序包阻塞问题,能实现零 RTT 建连,提供 FEC 前向纠错能力。
-
除了 TCP 协议的特点,还可以进一步了解 TCP 协议的报文状态、滑动窗口的工作流程、 Keepalive 的参数设置和 Nagel 算法的规则等一些细节。
-
另外还有典型的 TCP 协议问题,例如特定场景下 Nagel 和 ACK 延迟机制配合使用可能会出现 delay40ms 超时后才回复 ACK 包的问题。