首页 > 其他分享 >TCP 粘包

TCP 粘包

时间:2023-08-24 11:44:13浏览次数:31  
标签:接收端 TCP 粘包 发送 数据包 应用层

TCP(Transmission Control Protocol,传输控制协议)是一种传输层协议。

TCP提供了以下主要功能:

  • 可靠性:TCP使用确认、重传和校验等机制来确保数据的可靠传输。它能够检测丢失、重复、损坏或乱序的数据,并采取相应的措施来保证数据的完整和正确性。
  • 有序性:TCP保证数据按照发送的顺序到达接收端,这对于许多应用程序来说非常重要。
  • 流量控制:TCP使用滑动窗口机制来进行流量控制,确保发送方不会淹没接收方,从而实现了对网络资源的合理利用。
  • 拥塞控制:TCP通过监测网络的拥塞状态并相应地调整发送速率,避免过载和网络拥塞的发生。

TCP 为什么会有粘包和拆包的问题。

这是因为 TCP 协议将数据分割成以报文段为单位进行传输,而不保证每个报文段和应用层的消息一一对应。

粘包问题:

  • 发送端粘包:当发送端连续发送多个小的数据包时,TCP 协议可能会将它们合并成一个较大的数据包发送。这样接收端可能无法准确识别每个应用层消息的边界。
  • 接收端粘包:当接收端连续接收到多个数据包,并且处理速度慢于发送速度时,TCP 协议可能将它们合并成一个较大的数据包交付给接收端。这样接收端需要处理缓冲区的逻辑,以正确解析应用层消息的边界。

拆包问题:

  • 发送端拆包:当发送端连续发送多个较大的数据包时,TCP 协议可能会将它们拆分成多个较小的数据包进行传输。这样接收端可能需要进行缓冲区的处理,以组合这些数据包并重新构建完整的应用层消息。
  • 接收端拆包:当接收端接收到一个较大的数据包,而应用层期望的消息边界不在该数据包内时,TCP 协议会将其拆分成多个较小的数据包交付给接收端。这样接收端需要掌握应用层消息的边界判定逻辑,以正确处理拆分后的数据包,并还原出完整的应用层消息。

标签:接收端,TCP,粘包,发送,数据包,应用层
From: https://www.cnblogs.com/lgxlsm/p/17632843.html

相关文章

  • TCP 和 UDP
    TCP和UDP区别:TCP和UDP应用场景:TCP和UDP可以使用同一个端口当主机收到数据包后,可以在IP包头的「协议号」字段知道该数据包是TCP/UDP,所以可以根据这个信息确定送给哪个模块(TCP/UDP)处理,送给TCP/UDP模块的报文根据「端口号」确定送给哪个应用程序处理。第三次握手是......
  • TCP --- 为什么是可靠的通信方式
    TCP包有CRC校验字段 序列号和应答 超时重传 拥塞控制根据网络情况和接收端接收数据能力调整发送量。滑动窗口控制解决了两台主机之间因传送速率而可能引起的丢包问题,在一方面保证了TCP数据传送的可靠性。然而如果网络非常拥堵,此时再发送数据就会加重网络负担,那么发送的......
  • OSI 7层模型与TCP/IP
    1,应用层:原始的数据2,表示层:数据的个格式转换,比如加密解密,压缩与解压缩。3,会话层:对应用的会话管理与同步,拥有不同机器翻译的功能。4,传输层:进程端口的确定5,网络层:ip的确定6,数据链路成:mac(网卡)的确定7,物理规则的确定。......
  • ⛳ TCP 协议详解
    ⛳TCP协议详解TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(TCP/IPProtocolSuite,或TCP/IPProtocols),简称TCP/IP。TCP/IP协议族提供了点对点的连接机制,并且将传输数据帧的封装、寻址、传输、路由以及接受方式,都予以标准化。......
  • sokit使用方法,检测TCP和UDP端口响应。
    输入IP和端口sokit中文版下载链接:https://github.com/sinpolib/sokit/releases/download/v1.3.20111130/sokit-1.3-win32-chs.zip......
  • 【校招VIP】测试专业课之TCP/IP模型
    考点介绍:大厂测试校招面试里经常会出现TCP/IP模型的考察,TCP/IP协议是网络基础知识,但是在校招面试中很多同学在基础回答中不到位,或者倒在引申问题里,就丢分了。一、考点题目1.TCP是网络传输的常用协议,下面为TCP的描述,哪项是不正确的()A.TCP提供一种面向连接的、可靠的字节流服务......
  • TCP的可靠性之道:确认重传和流量控制
    TCP全称为TransmissionControlProtocol(传输控制协议),是一种面向连接的、可靠的、基于字节流的传输层通信协议,其中可靠性是相对于其他传输协议的优势点。TCP为了确保数据传输的可靠性主要做了以下几点:发送确认机制丢包重传机制滑动窗口拥塞控制TCP的传输基于字节流,记录......
  • 直播平台源码搭建协议讲解篇:传输控制协议TCP
    简介:由于直播平台在当今时代发展的越来越迅速,使得直播平台的技术功能越来越智能,让用户在直播平台中能够和其他用户进行实时互动,让用户可以获取到全世界最新的资讯,让一些用户可以作为主播获得工作,让另一些用户作为观众获得放松快乐等,所以直播平台源码搭建也成为了众多创业者想要涉......
  • RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解
    大家好,RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验,最近得知RunnerGo新增对,WebSocket、Dubbo、TCP/IP,三种协议API的测试支持,本篇文章跟大家分享一下使用方法。WebSocket协议WebSocket是一种在单个TCP连接上进行全双工通信的API技术。相比于传统的HTTP请求,We......
  • RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解
    大家好,RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验,最近得知RunnerGo新增对,WebSocket、Dubbo、TCP/IP,三种协议API的测试支持,本篇文章跟大家分享一下使用方法。WebSocket协议WebSocket是一种在单个TCP连接上进行全双工通信的API技术。相比于传统的HTTP请......