TCP粘包的原因及解决办法

news/2024/5/18 11:52:32 标签: tcp/ip, 网络, udp

TCP粘包是指发送方发送的多个数据包到接收方后粘连在一起,导致数据包不能完整的提现发送的数据。问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。

1. 粘包出现原因

硬核图解|tcp为什么会粘包?背后的原因让人暖心

出现粘包现象的原因有很多方面,它既可能由发送方造成的,也可能是由接收方造成的。

1.1 发送方原因

发送方引起的粘包是由TCP协议本身造成的,TCP为提高传输效率,默认采用Nagle算法,发送方往往要收集到足够多的数据后合并相连的小数据包,才发送一包数据,这样接收方就收到了粘包数据。但接收方并不知晓发送方合并数据包,并数据包的合并在TCP协议中是没有分界线的,就会导致接收方不能还原其本来的数据包。

1.2 接收方原因

TCP是基于“流”的。网络传输数据的速度可能会快过接收方处理数据的速度,这时候就会导致,接收方在读取缓冲区时,缓冲区存在多个数据包。在TCP协议中接收方是一次读取缓冲区中的所有内容,就不能反映原本的数据信息。

1.3 粘包情况有两种:

一种是粘在一起的包都是完整的数据包;一种是粘在一起的包有不完整的包;

不是所有的粘包现象都需要处理,如果传输的数据为不带结构的连续流数据(如文件传输),就不必把粘连的包分开(简称分包)。但实际工程应用中一般为带结构的数据,这时就需要做分包处理。

特别是粘在一起的包有不


http://www.niftyadmin.cn/n/114934.html

相关文章

关于tf.gather函数batch_dims参数用法的理解

关于tf.gather函数batch_dims参数用法的理解0 前言1. 不考虑batch_dims2. 批处理(考虑batch_dims)2.1 batch_dims12.2 batch_dims02.3 batch_dims>22.4 batch_dims再降为12.5 再将axis降为12.6 batch_dims<02.7 batch_dims总结3. 补充4. 参数和返回值5. 其他相关论述6. 附…

常用的hive sql

细节&#xff1a;sql 中有涉及到正则匹配函数的&#xff0c;要注意转义符号 因为在不同语言下正则匹配规则是否需要加转义符号是不同的&#xff0c;举例&#xff0c;regexp_replace 函数&#xff0c;在hive sql的正则匹配规则的 \d 需要前面给它加上转义符号\&#xff0c;而在j…

《NFL橄榄球》:底特律雄狮·橄榄1号位

底特律雄狮另译底特律狮子&#xff08;英语:Detroit Lions&#xff09;是一队职业美式橄榄球球队&#xff0c;位于密歇根州的底特律。现时为NFC北区的球队&#xff0c;前身为朴次茅斯斯巴达人&#xff0c;1929年成立&#xff0c;当时是一支不属于任何联盟的职业球队&#xff0c…

Java——电话号码的字母组合

题目链接 leetcode在线oj题——电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 题目示例…

Camera | 5.Linux v4l2架构(基于rk3568)

上一篇我们讲解了如何编写基于V4L2的应用程序编写&#xff0c;本文主要讲解内核中V4L2架构&#xff0c;以及一些最重要的结构体、注册函数。 厂家在实现自己的摄像头控制器驱动时&#xff0c;总体上都遵循这个架构来实现&#xff0c;但是不同厂家、不同型号的SoC&#xff0c;具…

工作日记 1:TP5制作流量统计页面

1. 在写查询语句是mysql报错如下&#xff1a; SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column xxx.xxx_xxx.id which is not functionally dependent on columns in GRO…

OSCP-课外5(Web图片泄露服务信息、日志中毒)

目录 一、主机发现与端口扫描 二、Web信息收集 三、系统信息收集与提权 一、主机发现与端口扫描

3/2考试总结

时间安排 7:30–7:50 读题&#xff0c;T1 貌似是个构造&#xff0c;T2 应该是个圆方树 dp 加上一些神秘的暴力&#xff0c;T3 不知道是啥。 7:50–9:00 T1,发现没法暴力。考虑能不能构造什么的&#xff0c;好像也不好构造。可能是个别的什么东西。手玩样例有一些结论&#xff…