3.1数据链路层概述
一、数据链路层在网络体系结构中所处的地位
链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层以帧为单位传输和处理数据。
二、数据链路层的三个重要问题
1.封装成帧
数据链路层给上层交付的协议数据单元,添加帧头帧尾,使其以帧为单位传输的操作。
2.差错检测
帧在传输过程中遭遇干扰后可能会出现误码(0变成1,1变成0)
发送方在发送帧之前,基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾
接收方根据帧尾的检错码,就可以检测帧中是否有误码
3.可靠传输
尽管误码是不能避免的,但是若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输
注意:以上是使用点对点信道的数据链路层
三、使用广播信道的数据链路层(共享式局域网)
如何识别帧的目的地址?
将帧的目的地址添加在帧中一起传输
当总线上多台主机同时使用总线来传输帧时,传输信号就会产生碰撞,如何避免?
使用以太网的媒体接入控制协议CSMA/CD实现碰撞检测
3.2封装成帧
1.封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
- 帧头和帧尾中包含有重要的控制信息。
- 帧头和帧尾的作用之一就是帧定界。
- 接收方可以根据帧定界标志,从物理层交付的比特流中提取出一个一个的帧(ppp帧)
- 并非每一种数据链路层协议的帧都包含有帧定界标志,例如MAC帧使用前导码和帧间间隔
2.透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据的链路层不存在一样
面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输
ESC:特殊的控制字符,长度为1字节,十进制值为27
每出现一个帧定界符或者转义字符,就在其前面插入一个转义字符
面向比特的物理链路使用比特填充的方法实现透明传输
每5个连续的比特1后面就插入1个比特0
3.为了提高帧的传输效率,应当是帧的数据部分的长度尽可能大些,远大于帧头和帧尾
4.考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
3.3差错检测
- 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。
- 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
- 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
1.奇偶校验
- 在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)
- 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
- 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)
2.循环冗余校验CRC
- 收发双方约定好一个生成多项式G(x);
- 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
- 接收方通过生成多项式来计算收到的数据是否产生了误码;
练习
总结
- 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
- 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用
- 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。
- 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
3.4可靠传输
3.4.1可靠传输的基本概念
1、使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。
2、数据链路层向上层提供的服务类型
- 不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做:
- 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么,
3、一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供
可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
4、无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务
传输差错
1、比特差错只是传输差错中的一种。
2、从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序及分组重复
3、分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
4、可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。
5、可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。
3.4.2 可靠传输的实现机制——停止-等待协议SW
发送方每发送一个数据分组(DATA),就停止发送下一个数据分组,等待来自接收方的确认分组(ACK)或者否认分组(NAK),若收到确认分组,则可发送下一个数据分组,若收到否认分组,则重新发送之前的数据分组
注意事项
信道利用率
3.4.3 可靠传输的实现机制——回退N帧协议GBN
- 回退N帧协议在流水线传输的基础上利用发送窗回来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。
- 在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议。
- 由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高。
累计确认
优点:即使确认分组丢失,发送方也可能不必重传;减小接收方的开销;减少对网络资源的占用
缺点:不能向发送方及时的反映出接收方已经正确接收的数组分组信息
3.4.4 可靠传输的实现机制——选择重传协议SR
这三种可靠传输实现机制的基本原理并不仅限于数据链路层,也可以应用到计算机网络体系结构的各层协议中
3.5点对点协议PPP
1.点对点协议PPP是目前使用最广泛的点对点数据链路层协议
2.PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]。
3.PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由三部分构成
4.帧格式
5.透明传输
(1)面向字节的异步链路采用插入转义字符的字节填充法
(2)面向比特的同步链路采用插入比特0的比特填充法
6.差错检测
CRC:循环冗余校验
7.工作状态
3.6媒体接入控制
3.6.1媒体接入控制的基本概念
媒体接入控制MAC:共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。
3.6.2媒体接入控制——静态划分信道
1.信道复用
复用:通信技术中的一个重要概念,复用就是通过一条物理线路同时传输多路用户的信号
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条
物理线路上建立多条通信信道来充分利用传输媒体的带宽。
2.信道复用种类
(1)频分复用FDM
当多路信号输入一个多路复用器时,这个复用器将每一路信号调制到不同频率的载波上,接收端由相应的分用器通过滤波将各路信号分开,将合成的复用信号恢复成原始的多路信号
(2)时分复用TDM
时分复用技术将时间划分成了一段段等长的时分复用帧,每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙,每一个用户所占用的时隙是周期性出现的,其周期就是时分复用帧的长度
(3)波分复用WDM
光的频分复用
(4)码分复用CDM
3.6.3媒体接入控制——动态接入控制——随机接入
1.CSMA/CD协议简介
为了解决上述问题,采用载波监听多址接入/碰撞检测CSMA/CD协议
96比特时间:发送96比特所耗费的时间,也称帧间最小间隔
2.CSMA/CD协议——争用期(碰撞窗口)
3.CSMA/CD协议——最小帧长
4.CSMA/CD协议——最大帧长
5. CSMA/CD协议——截断二进制指数退避算法
6. CSMA/CD协议——信道利用率
正常情况下发送一帧所需要的平均时间为:
多个争用期2t+一个帧的发送时延T0+单程端到端的传播时延t