什么是 TCP 粘包/拆包,发生原因、以及解决方案?

参考答案

TCP 粘包/拆包

一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和粘包问题。

TCP 粘包/拆包发生原因

  • 应用程序写入数据的字节大小大于套接字发送缓冲区的大小
  • 进行MSS大小的TCP分段。( MSS=TCP报文段长度-TCP首部长度)
  • 以太网的payload大于MTU进行IP分片。( MTU指:一种通信协议的某一层上面所能通过的最大数据包大小。)

TCP 粘包/拆包解决方案

  • 消息定长
  • 在包尾部增加回车或者空格符等特殊字符进行分割
  • 将消息分为消息头和消息尾
  • 使用其它复杂的协议,如RTMP协议等。

以上,是网络安全面试题【什么是 TCP 粘包/拆包,发生原因、以及解决方案?】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧