tcp的可靠性

1.应答确认

TCP 发送的报文段是交给 IP 层传送的。但IP 层只能提供尽最大努力的服务,也就是说,TCP 下面的网络所提供的是不可靠的传输。因此,TCP 必须采用适当的措施才能使两个运输层之间的通信变得可靠。 TCP 的可靠传输是通过使用应答确认和超时重传来完成

2.超时重传机制

无差错时,数据的交互:

有差错数据的交互流程:

3.乱序重排,去重

接收方接收到数据,很大可能都是乱序的,因为我们发送的数据都是带有报头的(详见网络应用程序通信流程图),根据TCP报头中的序号进行乱序重排即可.

如果由于网络延迟导致数据重发,最终接收方收到了多份的数据,同理,根据报头中的序号进行去重即可。

TCP传输是可靠的,首先,TCP协议采用发送应答机制,即发送端发送的每个TCP报文段都必须得到接收方的应答,才认为这个TCP报文段传输成功.

其次,TCP协议采用超时重传机制,发送端在发送一个TCP报文段之后启动定时器,如果在定时时间内未收到应答,它将重发该报文段,最后,因为TCP报文段最终是以IP数据报发送的,而IP数据报到达接收端可能乱序,重复,所以TCP协议还会对接收到的TCP报文段重排,整理,再交付给应用层。

UDP协议则和IP协议一样,提供不可靠服务.它们都需要上层协议来处理数据确认和超时重传(现在理解IP协议为什么是不可靠的了吧?)

应答确认,超时重传,乱序重排,去重最终保证了tcp连接的可靠性

相关推荐
杨云龙UP1 分钟前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
舰长1154 分钟前
linux系统服务器加固1、中风险 未设置登录失败处理功能和登录连接超时处理功能。2、中风险 未限制默认账户的访问权限。3、中风险 未实现管理用户的权限分离。
linux·运维·服务器
mounter62543 分钟前
Linux 7.0 重磅更新:详解 nullfs 如何重塑根文件系统挂载与内核线程隔离
linux·运维·服务器·kernel
左手厨刀右手茼蒿1 小时前
Flutter 组件 http_requests 适配鸿蒙 HarmonyOS 实战:极简网络请求,构建边缘端轻量级 RESTful 通讯架构
网络·flutter·http
-Da-1 小时前
Unix哲学:一切皆文件与网络通信的统一抽象
服务器·unix
江南风月1 小时前
日志审计系统WGLOG支持syslog吗
运维·网络·日志审计
A.A呐2 小时前
【Linux第十三章】缓冲区
linux·服务器
Blurpath住宅代理2 小时前
代理IP全面解析:从协议原理到高阶应用场景的技术指南
网络·静态ip·动态代理·住宅ip·住宅代理
想唱rap3 小时前
Linux线程
java·linux·运维·服务器·开发语言·mysql
JFSJFX3 小时前
手机短信误删怎么办?这4种恢复办法亲测有效,轻松找回短信
运维·服务器