2024.09.04:网工老姜&beokayy网工学习笔记
第5节 可靠传输机制
- 5.1 可靠传输
- 5.2 ARQ机制、ARQ协议
- 5.3 ARQ简介(可靠传输)
- 5.3.1 停止等待协议
- (1)无差错情况
- (2)有差错情况
- 确认丢失
- 确认迟到
- 5.3.2 连续ARQ协议
- (1)流水线传输
- (2)滑动窗口
- (3)累计确认
- (4)后退N帧协议GBN
- (5)选择重传协议SR
- 5.4 信道利用率
- 5.5 本章小结
注意数据链路层不是一定要实现可靠传输
5.1 可靠传输
通俗理解:发送端发送什么,接收端就接收什么
传输差错除了可能发生的比特差错,还可能存在帧在传输过程中失序、重复、丢失等差错
过去,OSI模型比较老,在当时那个时期就必须要求数据链路层必须向上提供一个可靠传输,因此在CRC检测的基础上,就增加了编号、确认、重传
现在,计算机网络并没有强制数据链路层提供可靠传输。
- 如果数据链路质量好,数据链路层就不使用可靠传输机制,相应的,如果数据链路层传输数据时出了差错需要纠正,那么将由上层协议(如传输层TCP)来完成
- 如果数据链路质量差,那还是需要数据链路层使用可靠传输机制的
5.2 ARQ机制、ARQ协议
ARQ机制:ARQ机制是一种通用的错误控制原理,用于在不可靠的通信信道中保证数据传输的可靠性。
ARQ协议:ARQ协议是基于ARQ机制具体实现的通信规则和标准,定义了数据包格式、时序、状态机等细节。
类比理解
- ARQ机制 ≈ 交通规则中的“红灯停、绿灯行”(通用原则)
- ARQ协议 ≈ 某城市具体的交通信号灯时序方案(如绿灯持续30秒,黄灯3秒)
5.3 ARQ简介(可靠传输)
面向连接?发送数据前打招呼,发送完数据后要反馈
无连接?广场发广告单,无需认识、无需反馈
ARQ协议,即自动重传请求,是OSI模型中的(数据链路层)和(传输层)错误纠正协议之一,它通过使用(确认)和(重传)这两个机制,在不可靠的基础上实现可靠的信息传输,是一种面向连接的协议
数据链路层的HDLC协议、传输层的TCP协议均使用了ARQ机制
采用确认和超时重传两种机制的可靠传输协议称为自动重传请求(ARQ)
- 如果发送方在发送后一段时间内没有收到确认帧,它通常会重新发送
- 重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组
ARQ协议有3种:停止等待ARQ协议、连续ARQ协议(连续后退N帧协议、选择重传协议)
5.3.1 停止等待协议
发送方每次只允许发送一个帧,接收方每接收一个帧都要反馈应答,表示可以接收下一个帧,发送方收到应答信号后才能发送下一个帧
(1)无差错情况
做题目一般会忽略确认帧的发送时间,或者数据帧和确认帧都在考虑在内
(2)有差错情况
另一种设置:可靠传输协议中,也可以在有差错的时候发送“否认报文NAK”给对方,这样能让发送方及时知道出了差错。但是这样的处理会让协议复杂化,目前实用的可靠传输协议都不使用这种否认报文了
为了实现超时重传,需要注意三点:
- 发送方发送完一个帧后,需要暂时保留已发送帧的副本供超时重传时使用,只有收到确认后才能清除副本
- 帧和确认帧都需要编号,这样才能明确是哪一个发出去的帧收到了确认。编号是循环使用的,比如使用2bit来编号,范围就只能是0~3,再增加一个号又会回到0
- 超时计时器设置的重传时间应比帧传输的RTT更长一些
确认丢失
确认迟到
丢掉后来的重复确认帧
5.3.2 连续ARQ协议
(1)流水线传输
(2)滑动窗口
为了搞懂剩下的两种连续ARQ协议,我们需要引入滑动窗口的概念
滑动窗口机制特点
- 发送方只有收到一帧的确认,才能将窗口划过该帧
- 接收方只有收到一帧并发送确认,才能将窗口划过该帧
- 当接收窗口大小为1时,可以保证按序接收
- 数据链路层的滑动窗口大小不变,而传输层的滑动窗口大小可变
(3)累计确认
(4)后退N帧协议GBN
(5)选择重传协议SR
5.4 信道利用率
发送周期指的是发送方去发送分组(一般化,信道利用率的问题也不只是在数据链路层出现,每层的PDU不一样,统称分组)到它收到第一个确认分组的时间
- 信道利用率
- 有效数据传输速率 = 有效数据长度 / 发送周期
- 信道吞吐率 = 信道利用率 * 发送方发送速率(数据传输速率)