通信协议详解(分层技术解析)
通信协议详解(分层技术解析)
一、协议分层模型
1. OSI七层模型 vs TCP/IP四层模型
| OSI模型 | TCP/IP模型 | 核心协议 | 数据单元 |
|------------------|------------------|--------------------------|---------------|
| 应用层 | 应用层 | HTTP, FTP, DNS, SMTP | 报文/消息 |
| 表示层 | | TLS/SSL, JPEG, MPEG | |
| 会话层 | | NetBIOS, RPC | |
| 传输层 | 传输层 | TCP, UDP, SCTP | 段(Segment) |
| 网络层 | 网络层 | IP, ICMP, ARP, BGP | 包(Packet) |
| 数据链路层 | 网络接口层 | Ethernet, WiFi, PPP | 帧(Frame) |
| 物理层 | | RS-232, 光纤标准 | 比特流(Bit) |
2. 各层核心职责
- 物理层:定义电气/光学信号传输(如网线规格、无线频段)
- 数据链路层:MAC地址寻址、帧校验(CRC)、CSMA/CD
- 网络层:IP寻址、路由选择、分包重组
- 传输层:端到端连接管理、流量控制、差错校验
- 应用层:具体业务数据格式规范
二、关键协议深度解析
1. TCP协议
# 协议特性
- 三次握手建立连接:1. SYN → 2. SYN-ACK ← 3. ACK →
- 四次挥手断开连接:1. FIN → 2. ACK ← 3. FIN ← 4. ACK →
- 滑动窗口机制:┌───────────────┐│ 已确认 │ 可发送 │ 未发送 │└───────────────┘窗口大小 = 接收方剩余缓冲区# 报文结构(简版)0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 源端口 | 目的端口 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 序列号(Sequence Number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 确认号(Acknowledgment Number) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 头长 |保留|URG|ACK|PSH|RST|SYN|FIN| 窗口大小 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 校验和 | 紧急指针 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2. HTTP/1.1 vs HTTP/2 vs HTTP/3
特性 | HTTP/1.1 | HTTP/2 | HTTP/3 |
---|---|---|---|
传输协议 | TCP | TCP | QUIC(基于UDP) |
多路复用 | 管道化(有限支持) | 二进制分帧(真多路复用) | 独立流(stream) |
队头阻塞 | 存在(请求级别) | 存在(TCP包级别) | 完全消除 |
头部压缩 | 无 | HPACK | QPACK |
连接建立 | 3次TCP握手 + TLS握手 | 同HTTP/1.1 | 0-RTT快速重连 |
三、协议对比矩阵
1. 传输层协议对比
维度 | TCP | UDP | SCTP |
---|---|---|---|
连接方式 | 面向连接 | 无连接 | 多宿主连接 |
可靠性 | 可靠传输 | 不可靠 | 部分可靠 |
有序性 | 保证顺序 | 不保证 | 多流有序 |
头部开销 | 20字节 | 8字节 | 28字节 |
典型应用 | Web/邮件 | 视频流/DNS | 电信信令 |
2. 路由协议对比
协议类型 | OSPF | BGP | RIP |
---|---|---|---|
算法类型 | 链路状态 | 路径矢量 | 距离矢量 |
收敛速度 | 快(秒级) | 慢(分钟级) | 非常慢(分钟级) |
适用规模 | 企业内网 | 互联网骨干 | 小型网络 |
度量标准 | 带宽/成本 | AS跳数/策略 | 跳数 |
最新版本 | OSPFv3(支持IPv6) | BGP4+ | 已淘汰 |
四、协议数据单元示例
1. IP数据报结构
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|版本| 头长 | 服务类型 | 总长度 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 标识符 | 标志 | 片偏移 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 生存时间 | 协议类型 | 头部校验和 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 源IP地址 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 目标IP地址 |
+-+-+-+-+-+-+-+-+-+-+-+-