从层次上看数据的流动

TCP粘包/拆包发生的原因

名词与简写

MSS[RFC879]:Maximum Segment Size,最大报文段大小。运输层TCP协议的一个选项。不包含TCP首部
MTU:Maximum Transfer Unit,数据链路层规定所能传送的帧的数据部分长度上限,最大传输单元。数据链路层的协议数据单元为帧,如下图,MTU不包含首部与尾部
TCP粘包/拆包发生的原因
socket:套接字,根据RFC793的定义:端口号拼接到(concatenated with)IP地址即构成了套接字。

套接字 soket=(IP地址:端口号)

payload:有效荷载,可以理解为实际数据

TCP拆包发生的原因

  1. 应用程序write写入的字节大小大于套接口发送缓冲区大小
  2. 进行MSS大小的TCP分段
  3. 以太网帧的payload大于MTU进行IP分片

TCP粘包/拆包发生的原因

参考

  1. 《计算机网络(第7版)》-谢希仁
  2. 《Netty权威指南(第2版)》-李林锋

相关文章:

  • 2021-08-01
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
  • 2021-04-29
  • 2021-09-09
猜你喜欢
  • 2021-12-17
  • 2021-05-15
  • 2022-01-13
  • 2022-12-23
  • 2020-06-20
  • 2021-08-04
  • 2021-07-03
相关资源
相似解决方案