zoukankan      html  css  js  c++  java
  • 66、TCP粘包问题是什么?你会如何去解决它?

    TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧 接着前一包数据的尾。

    1.由TCP连接复用造成的粘包问题。

    2.因为TCP默认会使用Nagle算法,此算法会导致粘包问题。

      只有上一个分组得到确认,才会发送下一个分组;

      收集多个小分组,在一个确认到来时一起发送。

    3.数据包过大造成的粘包问题。

    4.流量控制,拥塞控制也可能导致粘包。

    5.接收方不及时接收缓冲区的包,造成多个包接收

    解决:

    1. Nagle算法问题导致的,需要结合应用场景适当关闭该算法

    2. 尾部标记序列。通过特殊标识符表示数据包的边界,例如 , ,或者一些隐藏字符。

    3. 头部标记分步接收。在TCP报文的头部加上表示数据长度。

    4. 应用层发送数据时定长发送。

  • 相关阅读:
    简单复利计算java板
    弹出提示框的方式——java
    实验一 命令解释程序
    简单复利计算c语言实现
    操作系统
    jsp 页面和 jsp标记
    对it行业的一些看法
    又穷自动机的构造
    复利计算——结对编程2.0
    汉堡包
  • 原文地址:https://www.cnblogs.com/crbhf/p/15122654.html
Copyright © 2011-2022 走看看