一、应用层
二、传输层
2.1 TCP
- TCP 头部总长度(含固定字段 + 选项字段),值为20 ~ 60
2.1.1 头部固定字段
- TCP 固定头部共 10 个字段,占 20 字节
- 源端口(2字节):0 ~ 2字节
- 目的端口(2字节):2 ~ 4字节
- 序列号(4字节):4 ~ 8字节
- 确认号(4字节):8 ~ 12字节
- 数据偏移(4比特):也叫 “头部长度”,单位为 “4 字节”,标识 TCP 头部总长度(含固定字段 + 选项字段)
- 标志位(6比特):URG,ACK,PSH,RST,SYN,FIN
- 窗口大小(2字节):标识接收方当前的 “接收缓冲区剩余容量”(单位:字节),用于 TCP 流量控制
2.1.2 头部选项字段
- 需 4 字节对齐(不足时用 0 填充)
- 最大分段大小(Maximum Segment Size)(4字节):类型(1)+ 长度(1,固定为 4)+ MSS 值(2),类型为2,值不含 TCP/IP 头部,,仅在 SYN 报文(3 次握手)中携带
- 窗口缩放选项(Window Scale)(4字节):类型(1)+ 长度(1,固定为 4)+ 缩放因子(2,0~14),类型为3,仅在 SYN 报文协商,连接建立后生效
- 时间戳选项(Timestamp Option)(10字节):类型(1)+ 长度(1,固定为 10)+ 发送方时间戳(4)+ 回显时间戳(4),类型为8
三、网络层
3.1 IPV4
- IPv4 头部采用 “固定头部 + 可选字段” 结构,固定部分 20 字节,可选字段 0~40 字节(需 4 字节对齐),总长度最大 60 字节
- 版本(0.5字节):0 ~ 0.5字节,值为4或者6
- 头部长度(0.5字节):0.5 ~ 1字节, 单位为 “4 字节”,值为20 ~ 60
- 总长度(2字节):2 ~ 4字节
- 协议(1字节):9 ~ 10字节,可选值(1-ICMP,6-TCP,17-UDP,41-IPv6-in-IPv4,50-ESP,51-AH)
- 源IP地址(4字节):12 ~ 16字节
- 目的IP地址(4字节):16 ~ 20字节
四、数据链路层
4.1 以太网
- MTU(Maximum Transmission Unit,最大传输单元):单次可传输的最大帧载荷长度(即数据部分的最大字节数,不含链路层头部和尾部),直接决定了上层协议(IP、TCP/UDP)数据包的最大尺寸
- 若MTU=1500 字节(载荷部分),那么以太网帧总长度为1518=14(头部)+1500(MTU)+4(尾部)
- MSS = 路径 MTU - IP 头部总长度(含选项) - TCP 头部总长度(含选项)
- MSS 设计的初衷是 “让 TCP 段 + IP 头部的总长度 ≤ MTU”,即使启用选项,也需通过 MSS 协商确保最终 IP 数据包不超过 MTU(避免 IPv4 分片,提升传输效率)