hong's Studio.

TCP的应用解密

字数统计: 363阅读时长: 1 min
2020/05/31 Share

小互动

  • 人多病少财富
  • 养猪大如山老鼠头头瘟
  • 酿酒缸缸好造醋坛坛酸

数据流

TCP数据流.png

  • 窗口机制:数据在传输时,采用了数据编号、校验计算、确认、重传等措施,保证可靠有序的传输。只有落在发送窗口内的数据帧才允许被发送;同时接收方也始终保持着一个接收窗口,通过发送窗口和接收窗口实现流量控制。
  • 拥塞控制:防止过多的数据注入到网络中,避免交换结点中的缓存和处理机超过工作极限,出现过载的问题。
  • 流量控制:接收方通过ACK传递信息给发送方,告知发送方控制发送数据量,使接收端来得及接收。

0_1295685917RR04

流应用(分包 & 粘包)

TCP分包粘包

分包原因

  • 应用层待发送数据大于系统缓冲区长度
  • 系统传输策略引起的分包(数据丢失重传,接收方读取缓冲区时机等)

粘包原因

  • 发送端需要等系统缓冲区满才发送出去(Nagle算法),造成粘包
  • 接收方不及时接收系统缓冲区的包,造成多个包一起接收

封包

  • 发送固定长度的数据(data = x * byte)
  • 把数据的长度和数据一起发送(length + data = head + body)
  • 使用特殊标记给数据做分段间隔(data + flag)

拆包

TCPDecoder

CATALOG
  1. 1. 小互动
  2. 2. 数据流
  3. 3. 流应用(分包 & 粘包)
    1. 3.1. 分包原因
    2. 3.2. 粘包原因
  4. 4. 封包
  5. 5. 拆包