数据链路层
文章目录
一、数据链路层的概述
Link链路:
就是从一个结点到相邻节点的一段物理线路,而中间没有其他的交换节点
Data Link数据链路:
是指把实现通讯协议的硬件和软件加到链路上,就构成了数据链路
数据链路层以帧为单位传输和处理数据
数据链路层的三个重要问题:封装成帧 差错检测 可靠运输
介绍这三个基本问题 本文采用的是使用点对点信道的数据链路层 来举例
1.1 封装成帧
MAC帧不需要结束定界符
透明传输:是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样
帧定界符 和转义字符
1.2 差错检测
发送方在发送帧之前,会把检错码封装到帧尾
1.2.1 奇偶校验(数据链路层漏检率高 一般不采用)
1.2.2 循环冗余校验CRC
1.3 可靠运输
尽管误码是不能完全避免的,但是若能实现发送发发送什么,接收方就能收到什么,就成为可靠运输。
比特差错只是传输差错中的一种
传输差错还包含分组丢失,分组失序以及分组重复
分组丢失,分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输
可靠传输的是实现比较复杂,开销也比较大,是否使用可靠运输取决于应用需求
1.3.1 SW (Stop-and-wait)停止等待协议
可靠传输的实现机制——停止等待协议
ACK 是确认 NAK是否认
1、接收方检测到数据分组有误码时,将其丢弃并等待发送方的超时等待。对于误码率较高的P2P链路,为了使发送方尽快重传,也可以给发送方发送NAK分组
2、 为了让接收方判断收到的数据分组是否是重复的,需要给数据分组编号,由于SW协议特性,只需要1比特编号就够了,即0和1
3、为了让发送方判断收到的ACK分组是否时重复的,需要给ACK分组编号,也只需要1比特编号,数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层上实现SW协议可以不用给ACK分组编号
4、 超时计时器设置的重传时间,一般略大于从发送方到接收方的平均往还时间
在数据链路层点对点的往返时间比较确定,重传时间比较好设定
然而在运输层 由于端对端往返时间非常不确定,设置合适的重传时间有时并不容易
自动请求重传ARQ: 重传的请求是自动的
SW协议缺点:
当往返时延RTT远大于数据帧发送时延TD时(如使用卫星链路 🛰️),信道利用率将非常低
1.3.2 回退N帧协议GBN
1 采用3个比特给分组编序号,即序号0-7
2 发送窗口的尺寸WT的取值
3 接收窗口的尺寸WR的取值 WR = 1
累计确认优点:即使确认分组丢失 发送发也可能不必重传
缺点:不能向发送方及时反映出接收方已经正确接受的数据分组信息
有差错情况:发送方收到重复的确认,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻重传! 至于收到几个重复去确认就立刻重传,由具体实现决定。
发送窗口的尺寸不能超出其上限,否则会使得接送方无法分辨新、旧数据分组
回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组。
一个数据分组的误码会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管他们🈚️乱序和误码),这样必然会造成发送方对这些数据分组的超时重传,显然会对通讯资源造成极大浪费
1.3.3 选择重传协议SR
为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。
选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累计确认,而需要对每个正确接收到的数据分组进行逐一确认。
二、点对点协议PPP(Point-to-Point Protocol)
2.1 PPP协议的概念
点对点协议PPP是目前使用最广泛的点对点数据链路层协议。
2.2 PPP协议的帧格式
2.3 PPP协议的透明运输
2.4 PPP协议的差错检测
2.5 PPP协议的工作状态
2.6 小结
三、媒体介入控制
3.1 媒体介入控制的基本概念
共享信道要着重考虑一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)
3.2 媒体接入控制——静态划分信道
常见的信道复用技术有:频分复用FDM,时分复用TDM,波分复用WDM,码分复用CDM
3.2.1 频分复用FDM
3.2.2 时分复用TDM
每对用户只在所分配的时隙里使用线路传输数据
时分复用技术将时间划分成了一段段等长的时分复用帧,每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙。
3.2.3 波分复用WDM
波分复用其实是光的频分复用
3.2.4 码分复用CDM
与FDM和TDM不同,CDM的每一个用户可以在同样的频带进行通讯。由于各用户经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
3.3 媒体接入控制—— 动态接入控制——随机接入
3.3.1 随机接入 - CSMA/CD协议(现在的以太网没有使用这个协议 )
先听后说,边说边听,一旦冲突,立即停说,等待时机,重新再说
1、载波监听多址接入 Carrier Sense Multiple Access
2、碰撞检测💥 Collision Detection
3、不适用于无线网络
显然,以太网中发送的帧的主机越多,端到端往返传播时延越大,因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。
碰撞窗口
最小帧长
最大帧长
截断二进制指数退避算法(了解)
信道利用率
帧发送流程
习题
小结
3.3.2 随机接入 - CSMA/CA协议
3.3.2.1 随机接入 - CSMA/CA协议
A和C互为隐蔽站
在802.11标准规定,所有的站点必须在持续坚持到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS
⏰ 帧间间隔的长短取决于该站点要发送的帧的类型:
高优先级帧需要等待的时间较短,因此可以优先获得发送权
低优先级帧需要等待的时间比较长⌛️,若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧以发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送,这样就减少了发送碰撞的机会💥
什么是SIFS❓
SIFS是最短帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能在这段时间内从发送方式切换到接收方式。
什么是DIFS❓
DIFS是DCF帧间间隔,它比短帧间间隔SIFS要长的多,在DCF方式中用来发送数据帧和管理帧
3.3.2.2 随机接入 - CSMA/CA协议的退避算法
3.3.2.3 CSMA/CA协议的信道预约和虚拟载波监听
为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。
1 源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(Request To Send),它包括源地址,目的地址以及这次通讯(包括相应的确认帧)所需的持续时间
2 若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Clear To Send),它也包括这次通讯所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)
3 源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧
4 若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK
⭕️ 除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中,这样就保证了源站和目的站之间的通讯不会受到其他站的干扰
⭕️ 除了RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制
⭕️ 由于利用虚拟载波监听机制,站点只要监听到RTS帧,CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号 📶 因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题