0
点赞
收藏
分享

微信扫一扫

Tcp的粘包和拆包


粘包拆包是什么意思?[面试5.0]

指TCP是基于字节流传输的,数据是没有边界的
若数据大于剩余空间大小或大于TCP的MSS最大报文长度,TCP在传输时将数据拆开然后把数据发出去(即拆包)
若数据小于TCP发送缓冲区的大小,TCP会多次写数据到缓冲区,然后一次发出去(即粘包)
解决粘包或拆包:
固定消息数据长度,但是浪费存储和网络资源
使用分割符来区分包的界限
数据包的头部中增加数据包长度字段
处理逻辑:
若当前读取的数据不足以拼接成一个完整的包,就保留该数据,继续读
UDP是否有粘包或拆包问题:
UDP无粘包或拆包问题,因为UDP基于报文发送数据,而TCP是基于字节流发送数据


举报

相关推荐

0 条评论