TCP/IP 五层协议栈

一、应用层

二、传输层

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 分片,提升传输效率)
相关推荐
午安~婉3 小时前
浏览器与网络
前端·javascript·网络·http·浏览器
无聊的小坏坏3 小时前
基于 TCP 线程池服务器封装 HTTP 服务器:从协议解析到适配落地
服务器·tcp/ip·http
0和1的舞者6 小时前
网络通信的奥秘:网络层ip与路由详解(四)
大数据·网络·计算机网络·计算机·智能路由器·计算机科学与技术
Dobby_056 小时前
【Docker】容器网络探索(二):实战理解 host 网络
网络·docker·云原生
小糖学代码6 小时前
网络:4.应用层自定义协议与序列化
网络
RAN_PAND8 小时前
计算机组成原理实验
网络·计算机组成原理
守城小轩9 小时前
轻量级HTTP&Socks代理GOST: Win编译安装
网络·网络协议·代理网络
七七七七0710 小时前
【计算机网络】深入理解ARP协议:工作原理、报文格式与安全防护
linux·服务器·网络·计算机网络·安全
守城小轩10 小时前
轻量级HTTP&Socks代理GOST: Linux编译安装
运维·网络·网络协议