01
协议封装概述
什么是协议封装 · 为什么需要封装 · 封装与解封装的过程
基础核心概念
02
OSI七层模型
物理层 · 数据链路层 · 网络层 · 传输层 · 会话层 · 表示层 · 应用层详解
分层理论
03
TCP/IP四层模型
网络接口层 · 网络层 · 传输层 · 应用层,与OSI模型的对应关系
TCP/IP对比
04
以太网帧结构
前导码 · 目标MAC · 源MAC · 类型/长度 · 数据 · FCS校验
数据链路帧
05
IP数据报结构
版本 · 首部长度 · 服务类型 · 总长度 · 标识 · 标志 · 片偏移 · TTL · 协议 · 首部校验和 · 源IP · 目标IP
网络层IPv4
06
TCP段结构
源端口 · 目标端口 · 序列号 · 确认号 · 数据偏移 · 标志位 · 窗口大小 · 校验和 · 紧急指针
传输层可靠
07
UDP段结构
源端口 · 目标端口 · 长度 · 校验和
传输层无连接
08
HTTP协议封装
请求行 · 请求头 · 空行 · 请求体;状态行 · 响应头 · 空行 · 响应体
应用层Web
09
DNS协议封装
DNS报文头部(标识 · 标志 · 问题数 · 资源记录数)· 问题部分 · 回答部分
应用层域名
10
ARP协议封装
硬件类型 · 协议类型 · 硬件地址长度 · 协议地址长度 · 操作码 · 发送方MAC/IP · 目标MAC/IP
网络层地址解析
11
ICMP协议封装
类型 · 代码 · 校验和 · 标识符 · 序列号 · 数据部分
网络层诊断
12
DHCP协议封装
操作码 · 硬件类型 · 硬件地址长度 · 跳数 · 事务ID · 秒数 · 标志位 · 客户IP · 你的IP · 服务器IP · 网关IP · 客户MAC · 选项字段
应用层配置
13
VLAN帧封装
802.1Q标签(TPID · 优先级 · CFI · VID)
数据链路虚拟局域网
14
PPP协议封装
标志 · 地址 · 控制 · 协议 · 数据 · FCS
数据链路点对点
15
MPLS标签封装
标签值 · 实验位 · 栈底位 · TTL
网络层标签交换
16
IPv6数据报结构
版本 · 流量类型 · 流标签 · 有效载荷长度 · 下一个首部 · 跳数限制 · 源地址 · 目标地址
网络层IPv6
17
TCP三次握手封装
SYN · SYN-ACK · ACK的序列号和确认号变化
传输层连接建立
18
TCP四次挥手封装
FIN · ACK · FIN · ACK的序列号和确认号变化
传输层连接释放
19
TLS/SSL握手协议封装
ClientHello · ServerHello · 证书 · 密钥交换 · ChangeCipherSpec · Finished
安全握手
20
WebSocket协议封装
握手阶段(HTTP Upgrade)· 数据帧(FIN · RSV · Opcode · Mask · Payload Length · Masking Key · Payload Data)
应用层全双工
21
HTTP/2帧封装
长度 · 类型 · 标志 · 保留位 · 流标识符 · 载荷
应用层多路复用
22
gRPC协议封装
HTTP/2帧 + Protobuf序列化 + gRPC头部(压缩标志 · 消息长度)
RPCProtobuf
23
MQTT协议封装
固定头(消息类型 · DUP · QoS · 保留)· 可变头 · 载荷
物联网发布/订阅
24
CoAP协议封装
版本 · 类型 · 长度 · 代码 · 消息ID · · 选项 · 载荷
物联网REST
25
RTP协议封装
版本 · 填充 · 扩展 · CSRC计数 · 标记 · 载荷类型 · 序列号 · 时间戳 · SSRC · CSRC
实时传输音视频
26
RTCP协议封装
版本 · 填充 · 接收报告计数 · 包类型 · 长度 · SSRC · 报告块
控制QoS
27
SIP协议封装
请求行/状态行 · 头部字段(Via · From · To · Call-ID · CSeq · Contact)· 空行 · 消息体
信令VoIP
28
自定义协议封装设计
协议设计原则 · 头部定义 · 序列化方式 · 校验机制 · 扩展性考虑
设计进阶
29
协议封装性能优化
头部压缩 · 批量传输 · 零拷贝 · 内存池 · 异步IO
性能优化
30
协议封装安全实践
加密 · 认证 · 防重放 · 完整性校验 · 防火墙穿越
安全实践