数据通信——传输层TCP(可靠传输原理的ARQ)

引言

上一篇讲述了停止等待协议的工作流程,在最后提到了ARQ自动请求重传机制。接下来,我们就接着上一篇的篇幅,讲一下ARQ这个机制

还是这个图来镇楼

ARQ是什么?

发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为ARQ(Automatic Repeat reQuest),直译是自动重传请求,但意思是自动请求重传。

自动请求重传自然是发生在接收端,如果N(S)或者data数据不正确,就会请求重传数据。这个ARQ包含很多类型。

为什么要用ARQ?

传统的TCP传输,我们先是把一串串字节流分组后经过缓存转发,然后等待确认后在发送下一个分组。因此需要完成通信的时间是:一组数据发送完的时间(Td)+数据传输的时间(RTT)+等待ACK返回的时间(Ta),每一次这么传输虽然简单又安全,但是效率真差啊!每次都还要确认后再发送数据,中途停留时间太长。

为此,我们改进了ARQ,通过连续ARQ解决这个问题!

连续ARQ

它的特点是发送方可以连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。由于信道上一直有数据不间断的发送,因此他的利用率很高。

发送方发送数据后,不必停下来等待接收端的应答,可以继续发送数据;如果发送过程中收到对方同意发送的应答,则可以继续发送;如果某一个数据的确认超时则该数据开始的后续数据全部重发。这种也叫go-back-to-on协议。

也就是先发大量数据,不等待回复,这时压力给到了接收端,接收端疯狂的处理报文后返回ACKn,一旦接收端发现某一段数据有问题了,那么从这个数据之后发来的所有数据都会丢掉,并要求发送端重发这段数据。接收端得知后,停止后续发送,从副本中找到需要重新发送的数据再次发送。当然,每一次回复的ACKn都会让发送端删除该段和该段以前的数据缓存。

这个就是连续ARQ示意图,发送频率的效率明显更快。

后续

了解了停止等待协议后,也通过连续ARQ处理了错误数据和未接受到数据的发送问题。如今还有一个问题摆在面前------如何保证数据流量大小的控制呢?

相关推荐
深圳恒讯5 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
蓝天下的守望者5 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn5 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
2603_954708317 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全
其实防守也摸鱼7 小时前
蓝队相关知识学习(1)---常用堡垒机和服务器
服务器·功能测试·学习·网络安全·网络攻击模型·攻防对抗·蓝队
卖萌的斜阳8 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
单片机·网络协议·tcp/ip
用户8334423966148 小时前
Qt6 实现 TCP/UDP/组播 透明中继抓包工具 | 流量录制回放 | 工业设备调试
网络协议
云飞云共享云桌面10 小时前
单机建模卡顿运维繁琐!中小型机械制造厂云飞云 3D 云桌面落地
运维·服务器·网络·3d·自动化·电脑·负载均衡
CryptoPP10 小时前
BSE股票K线数据接入实战:从接口调用到前端图表展示
大数据·前端·网络·人工智能·websocket·网络协议
ITxiaobing202310 小时前
程序化广告RTB场景下IP地理定位服务的精度与工程架构选型
网络协议·tcp/ip·架构