首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

APP直播源码,TCP传输下是怎么做到不丢包的

TCP协议虽然是一种面向连接,给APP直播源码提供可靠、基于字节流的传输层通信协议,但它依然是基于不可靠的网络实现可靠传输的,肯定会存在丢包问题,如果在通信过程中发现缺少数据或者丢包的情况,那么大概率是因为程序发送过程中或者接收过程中出现了问题,面对丢包,TCP协议是怎么解决的呢?

一、TCP协议不丢包的解决方案

1、数据分片,发送端对数据进行分片,接受端要对数据进行重组,由TCP确定APP直播源码分片的大小并合理控制分片和重组

2、数据到达确认,接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认

3、超时重发,发送方式在发送分片时设置超时定时器,如果在超时后还没有收到相应的确认,APP直播源码就会重发分片数据

4、滑动窗口,TCP连接的每一方接受缓冲空间大小都是固定的,接收端只允许另一端发送接收端缓冲区所能接纳的数据,TCP在滑动窗口基础上提供流量控制,防止较快主机让较慢主机的缓冲区溢出

5、失序处理,做为IP数据报APP直播源码来传输的TCP分片到达时可能会失序,TCP将对接收到的数据重新进行排序,将收到的数据以正确的顺序交给应用层

6、重复处理,做为IP数据报来传输的TCP分片时会发生重复,TCP的接收端必须丢弃重复的数据

7、数据校验,APP直播源码使用的TCP协议将保持它首部和数据的校验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化,如果收到分片的检验和有差错,TCP将丢弃这个分片,并不确认收到此报文段导致对端超时并重发

二、什么是面向连接传输层协议

当我们区分TCP协议和UDP协议时,我们会通过是否是面向连接协议来判断,那么什么是面向连接传输层协议呢?它将来自上层的数据到达传输后首先双方发送同步数据包建立连接,在做TCP分组分片,把数据分成符合大小的块,然后分别传送,在TCP的头部有记录顺序的序列号,通过APP直播源码接收端校验数据包的正确性,发送相应序列号确认。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Ox8C8IAtuxUdw5IDYkRsHiJg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券