无论网络设计得如何完美,都可能发生数据丢失现象。因此,TCP 提供了管理数据段丢失的方法,其中一个方法就是重新发送未确认的数据。
TCP—重新传输数据
原创
©著作权归作者所有:来自51CTO博客作者bbc12000的原创作品,请联系作者获取转载授权,否则将追究法律责任
使用 TCP 的目的主机服务通常只确认相邻序列的数据。如果一个或多个数据段丢失,只确认已完成数据流中的数据段。
例如,如果接收到序列号为 1500 到 3000 以及 3400 到 3500 的数据段,那么确认号应为 3001。这是因为未收到序列号为 3001 到 3399 之间的数据段。
如果源主机上的 TCP 未在规定时间内收到确认消息,它将根据收到的最后一个确认号重新发送数据。
RFC 中未对重新发送过程进行说明,这属于 TCP 的特殊实施过程。
TCP 的标准实施流程是:主机传输数据段,并将数据段的副本列入重新发送队列,然后启动计时器。当接收到数据确认信息时,主机将从队列中删除对应数据段;如果到计时器超时还没有收到确认信息,将重新传输数据段。
现在,主机还拥有一项备选功能:选择性确认. 如果两台主机都支持选择性确认功能,目的主机便可以确认间断数据段中的数据,那么源主机就只需要重新传输丢失的数据。
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
SAP STMS传输请求报错无法重新传输请求
SAP STMS传输请求报错无法重新传输请求
sap erp ABAP 重传 解决方案 -
java tcp发送数据 java tcp传输
目录步骤概述常用方法示例需求:演示Tcp传输客户端服务端编码图解 步骤概述 Socket与ServerSocket。 建立客户端和服务器端。 建立连接后,通过Socket中的
java tcp发送数据 TCP 客户端 服务端 套接字