网络协议栈

第一层:网络层(IPv4 / IPv6)

这是整个协议栈的基础。所有上层协议最终都要封装成 IP 数据包在网络中传输。

IPv4 是现在仍广泛使用的 32 位地址协议,但地址空间已接近耗尽,依赖 NAT 缓解。IPv6 采用 128 位地址,从根本上解决地址枯竭问题,同时内置了 IPsec 支持、无状态地址自动配置(SLAAC)等特性。

直接运行在 IP 之上的辅助协议有:ICMP(差错报告,ping/traceroute 用它)、IGMP(IPv4 组播组管理)、MLD(IPv6 的 IGMP 等价物)、ICMPv6(IPv6 的差错与控制消息,整合了邻居发现功能)、OSPF(链路状态路由协议,直接跑在 IP 上而非 TCP/UDP)、IPsec(提供网络层加密和认证)、GRE(通用路由封装,用于隧道)。


第二层:传输层(TCP / UDP / SCTP / DCCP)

TCP 是面向连接的可靠传输协议,提供三次握手、顺序保证、丢包重传、流量控制和拥塞控制,代价是延迟和开销更大。绝大多数需要可靠性的应用协议都建立在它之上。

UDP 是无连接的不可靠传输协议,没有握手,没有重传,延迟极低。适合对实时性要求高但能容忍少量丢包的场景,比如音视频流、DNS 查询、游戏。

SCTP 兼具 TCP 的可靠性和 UDP 的多流特性,支持多宿主(一个连接绑定多个 IP),在电信信令领域常用。

DCCP 是数据报拥塞控制协议,介于 TCP 和 UDP 之间——有拥塞控制但不保证可靠性,适合流媒体等场景。


第三层:TLS / QUIC(安全/多路复用层)

TLS 运行在 TCP 之上,为上层协议提供加密、身份认证和完整性保护。它本身不是应用协议,而是一个"透明加密套"——SMTP 加上 TLS 就成了 SMTPS,HTTP 加上 TLS 就成了 HTTPS。

QUIC 是 Google 设计、后被 IETF 标准化的传输协议,跑在 UDP 之上,将 TLS 1.3 内置于协议本身。它解决了 TCP 的"队头阻塞"问题,支持连接迁移(换 IP 不断连),是 HTTP/3 的唯一底层传输。


第四层:应用层协议

分为两大类:

邮件协议:SMTP(发信)、IMAP(多设备同步收信)、POP3(下载收信)。加上 TLS 后分别变成 SMTPS/IMAPS/POP3S。

Web 协议:HTTP/1.x 和 HTTP/2 走 TCP,HTTP/3 走 QUIC/UDP。HTTPS 是 TLS 包裹 HTTP 的结果。

远程访问:SSH(加密终端访问,独立实现加密不依赖 TLS)、RDP(Windows 远程桌面)、VNC(图形化远程桌面)。

目录与命名:DNS(域名解析,同时走 TCP 和 UDP)、LDAP / LDAPS(轻量目录访问,如 Active Directory)、mDNS(局域网内无中心服务器的域名解析,Bonjour 用它)、DHCP / DHCPv6(自动分配 IP 地址,走 UDP)。

路由协议:BGP(自治系统间的路径向量路由,互联网核心)、RIP(距离向量路由,小型网络)。

实时通信:SIP(VoIP 的信令协议,协商建立通话,实际音视频用 RTP 传)、RTP(实时音视频数据传输,走 UDP)。

网络管理:SNMP(轮询和监控网络设备)、NTP(时间同步,走 UDP)、DTLS(UDP 版的 TLS,用于 DTLS-SRTP 等需要加密但不能用 TCP 的场景)。