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直播源码接收端校验数据包的正确性,发送相应序列号确认。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任
领取专属 10元无门槛券
私享最新 技术干货