首页 > 编程知识 正文

udp丢包解决方案,tcp丢包重传软件处理

时间:2023-05-05 20:17:41 阅读:40467 作者:3172

另一方面,在回答这个问题之前,必须考虑TCP协议为什么会丢包,以及在什么情况下会丢包。

1 .传输控制协议定义(TCP )是基于面向连接的可靠字节流的传输层通信协议。

2. TCP为了基于不可靠网络实现可靠的传输,一定存在丢包的问题。

3 .在通信过程中,如果数据丢失或丢包,其中最大的可能性是在发送或接收程序时出现了问题。

例如,我有两台服务器,a和b服务器。

如果a服务向b服务发送数据的频率太高,b服务将来不及处理,导致数据丢包。 (原因可能是程序逻辑问题、多线程同步问题或缓冲区溢出问题。)

如果a服务器不控制发送频率,或者重新发送数据的话,b服务器接受的数据会变少。 数据将会丢失

二、TCP协议丢包后如何解决丢包问题

不丢失数据包以满足TCP协议。 TCP协议有以下规定:

1 .数据切片:发送方将数据切片,接收方重组数据。 TCP决定切片的大小,控制切片和重组

2 .到达确认:在接收方接收到片数据的情况下,基于片数据号码向发送方发送确认

3 .超时重发:发送端在发送分片时设置超时定时器,定时器超时后,未收到相应确认的,重发分片数据

4 .滑动窗口: TCP连接的每个接收缓冲器的大小恒定,并允许接收方仅发送能够由另一个接收方缓冲器接收的数据。 TCP基于滑动窗口提供业务控制,以防止快主机溢出慢主机上的缓冲器

5 .失序处理:作为IP数据报传输的TCP分片到达时,可能会发生失序。 TCP对收到的数据进行排序,并将收到的数据按正确的顺序传递给APP应用层。

6 .重复处理:作为IP数据报传输的TCP分片发生重复,TCP接收方必须丢弃重复数据;

7 .数据检查: TCP保持其前端和数据检查。 这是端到端的检查,目的是检测数据传输过程中的任何变化。 如果经过分片检查或出现错误,TCP将放弃此分片,并且不会确认由于接收到此消息段而导致的端到端超时和重传

TCP握手3次,释放4次图:

【编辑推荐】

【责任编辑: ggdxtdtel:(010 ) 68476606】

好耶0

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。