CS-Notes 学习笔记
Java 后端 · 计算机网络

什么是粘包?怎样解决?

先自己想一想,再看参考要点

参考要点

  • TCP 面向字节流,不保留应用写入的边界,一次读取可能读到两条消息拼在一起(粘包)或半条消息(拆包)
  • 原因有按缓冲区现有数据读取、Nagle 合并小数据、超过 MSS 被分段
  • 在应用层约定边界:固定长度、分隔符或长度字段(长度要限制上限)
  • UDP 面向报文,没有粘包
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。