Skip to content

数据链路层

image-20211031145623733

ARQ(Automatic Repeat-reQuest,自动重传请求)

滑动窗口协议(Sliding Window Protocol)以基于分组的数据传输协议为特征。因此该协议适用于对按顺序传送分组的可靠性要求较高的环境,例如在数据链路层(OSI模型)以及传输控制协议(TCP)中。

一. ARQ简介

ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中的错误纠正协议之一。

它通过使用确认和重传这两个机制,在不可靠服务的基础上实现可靠的信息传输。

如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。

重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组

ARQ包括停止等待ARQ协议和连续ARQ协议

传统自动重传请求分成为三种,即停止-等待(stop-and-wait)ARQ,后退N帧(go-back-n)ARQ,以及选择重传(selective repeat)ARQ。

后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。

三者的区别在于对于出错的数据报文的处理机制不同。三种ARQ协议中,复杂性递增,效率也递增。除了传统的ARQ,还有混合ARQ(Hybrid-ARQ)。

当发送窗口和接收窗口的大小都等于 1时,就是停止等待协议。

当发送窗口大于1,接收窗口等于1时,就是回退N步协议。

当发送窗口和接收窗口的大小均大于1时,就是选择重发协议

在这里插入图片描述

ARQ是一种可以在不可靠的数据通道上可靠地传输数据的方案,所以其实链路层和传输层都用了ARQ,并不专属某一层。

并不是一条连接只要有一层用了ARQ,它的上层的通信就是可靠的。因为ARQ只保证使用它的点到点是可靠的,比如数据链路层只保证你和你的路由器通信可靠,你的路由器到小区的路由器通信也可靠, 但是路由器本身会故障,会拥塞丢包,也就是点本身会产生问题。

所以需要在传输层或者应用层再加一层ARQ保障整条数据通道的可靠性。比如你自己写程序要在应用层通信,但传输层不用tcp想用udp,也可以在你程序里用ARQ协来实现可靠性。

滑动窗口

ARQ协议分等停ARQ协议和连续ARQ协议,连续ARQ协议了采用滑动窗口方法,又分为后退N帧协议和选择重传协议

序号为n位,可编码窗口大小为$2^n$

  • 对于后退N帧协议:发送窗口最大为$2^n - 1$,接收窗口为1

  • 对于选择重传协议:发送窗口最大为$2^{n-1}$,且$W_T + W_R <= 2^n$,也就是接收窗口最大也为$2^{n-1}$

VLAN

image-20210927193426642

802.11无线局域网

802.11帧的地址字段常用的两种情况

去往AP来自AP地址1地址2地址3地址4
01目的地址AP地址源地址
10AP地址源地址目的地址

核心是:地址1:下一跳是谁,谁发的,地址三就是剩下的那一个

  • 地址1:下一跳是是谁
  • 地址2:谁发的
  • 地址3:目的地址、AP地址和源地址剩下的那一个

Released under the MIT License.