数据链路层
概述
链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点 数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路 数据链路层以帧为单位传输和处理数据 数据链路层的三个重要问题:
- 封装成帧
- 差错检测
- 可靠传输
点对点信道的数据链路层只有以上三个问题
使用广播信道的数据链路层(共享式局域网)还有以下问题
- 编址问题
- 当总线上多态主机同时使用总线来传输帧时,传输信号就会产生碰撞,这是采用广播信道的共享式局域网不可避免的。以太网使用的协调方法是使用一种特殊的协议CSMA/CD(载波监听多点接入/碰撞检测
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,那么网络中的交换机又是如何转发帧的呢
无线局域网仍使用共享式局域网
封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
- 帧头和帧尾中包含重要的控制信息
- 帧头和帧尾的作用之一就是帧定界
例如PPP帧格式中,帧头和帧尾各有一个标志位字节用于帧定界 但是以太网的MAC帧并没有帧定界字符,是因为物理层在帧前面添加了前导码(标识了时钟信号和什么时候开始是帧),同时物理层发送数据的帧间间隔时间为96比特时间,所以不需要帧定界符
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样
- 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输
- 面向比特的物理链路使用比特填充的方法实现透明传输(例如,每五个连续的比特1后面插入一个比特0)
为了提高帧的传输效率,应当使帧的数据部分的长度尽可能长些
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
差错检测
比特差错:实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1变成0,0变成1。 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER(Bit Error Rate) 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一
FCS字段就是用来检测是否产生了误码
奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)
- 如果有奇数个位发生了误码,则奇偶性发生变化,可以检查出误码
- 如果有偶数个位发生了误码,则奇偶性不发生改变,不能检查出误码(漏检)
循环冗余校验CRC(Cyclic Redundancy Check)
可靠传输
可靠传输的基本概念
- 使用差错检测技术(例如CRC循环冗余校验),接收方的数据链路层就可以检测出传输过程是否产生了误码(比特错误)
- 链路层向上提供的服务类型
- 不可靠传输服务:仅仅丢弃有误码的帧,其他什么都不做
- 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么
- 一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输问题由其上层处理
- 无线链路易受干扰,误码率较高,因此要求数据链路层必须向上层提供可靠传输服务
- 比特差错只是传输差错的一种
- 从整个计算机网络体系结构来看,传输差错还包括分组丢失,分组失序以及分组重复
- 分组丢失,分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层
- 可靠传输服务并不局限于数据链路层,其它层均可实现可靠传输
- 可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求
可靠传输实现机制
- 这三种可靠传输协议实现机制的原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中
停止等待协议SW
- 对于数据链路层的点对点信道,往返时间比较固定,不会出现确认迟到的情况,因此,如果只在数据链路层实现停止等待协议,可以不用给确认分组编号
停止等待协议的信道利用率
一般Ta都远小于TD,可以忽略 ARQ:自动请求重传(Automatic Repeat reQuest)
回退N帧协议GBN
同等条件下,相同时间内SW只能发送一个分组,而流水线传输的发送方,可以发送5个分组
回退N帧协议:在流水线的基础上,采用发送窗口来限制发送方可连续发送数据分组的个数,是一种连续ARQ协议
在协议工作过程中,发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议
由于回退N帧协议的特性,当通信质量不好时,其信道利用率并不比停止等待协议高
具体实现
累计确认:接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(有具体实现决定),对按序到达的最后一个数据分组发送确认,ACKn表示序号为n及以前的所有数据分组都已正确接收
小结:
选择重传协议SR
- 回退N帧协议的接收窗口尺寸Wr只能为1,因此接收方只能按序接收正确到达的数据分组
- 一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管他们无误码和乱序)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费
- 为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸Wr不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一起送交上层。这就是选择重传协议
- 注意:选择重传协议为了使发送方仅重传出差错的分组,接收方不能再采用累计确认,而要对每一个正确接收到的数据分组进行逐一确认
工作原理
窗口大小问题:
小结
点对点协议PPP
- 点对点协议:是目前使用最广泛的点对点数据链路层协议
- PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LCP:用于建立、配置以及测试数据链路的连接
- 一套网络控制协议NCps:其中的每一个协议支持不同的网络层协议
帧格式
透明传输
例子:面向字节的异步链路采用插入转义字符的字节填充法
面向比特的同步链路采用插入比特0的比特填充法
差错检测
工作状态
媒体接入控制
媒体接入控制的基本概念
-
共享信道要着重考虑的一个问题是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制(Medium Access Control) -
技术主要分为两类
- 静态划分信道:预先固定分配好信道,这类方法非常不灵活,对于突发性数据传输信道利用率会很低,通常在无线网络的物理层中使用,而不是在数据链路层中使用
- 频分多址
- 时分多址
- 码分多址
- 动态接入控制:
- 受控接入(被淘汰)
- 集中控制:有一个主站以循环方式轮询每个站点有无数据发送,只有被轮询到的站点才能发送数据。最大的缺点是存在单点故障问题
- 分散控制:各个站点是平等的,并连接成一个环形网络。令牌(一个特殊的控制帧)沿还逐站传递,接收到令牌的站点才有权发送数据,并在发送完数据后将令牌传递给下一个站点
- 随机接入:所有站点通过竞争,随机地在信道上发送数据。如果恰巧有两个或更多的站点在同一时刻发送数据,则信号在共享媒体上就要产生碰撞(即发生了冲突)。使得这些站点的发送都失败。因此,这类协议要解决的关键问题就是如何尽量避免冲突及在发生冲突后如何尽快恢复通信。著名的共享式以太网采用的就是随机接入
-
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术
静态划分信道
信道复用:
- 复用:是通信技术的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号
- 当网络中传输媒体的传输容量大于多条单一信道传输容量的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽
常见的信道复用技术:频分复用FDM,时分复用TDM,波分复用WDM 码分复用CDM
频分复用FDM
频分复用的所有用户同时占用不同的频带资源并行通信
时分复用TDM
时分复用的所有用户在不同的时间占用同样的频带宽度
波分复用WDM
即光的频分复用 因为光会衰减,所以一段时间需要用放大器放大光
码分复用CDM
这种通信方式称为直接序列扩频DSSS
随机接入
多个主机连接到一根总线上,各主机随机发送帧,当两个或多个主机同时发送帧时,帧信号就会发生碰撞 早期的以太网采用载波监听多址接入/碰撞检测CSMA/CD(Carrier Semse Multiple Access/Collision Detection)
载波监听多址接入/碰撞检测(CSMA/CD)
是总线局域网使用的协议
争用期:
最小帧长: 最大帧长: 退避时间的计算方法:截断二进制指数退避算法 CSMA/CD协议的信道利用率
帧发送流程 帧接收流程 例子
总结
载波监听多址接入/碰撞避免(CSMA/CA)
隐蔽站问题
退避算法
例如
信号预约
虚拟载波监听
例题
MAC地址、IP地址以及ARP协议
MAC地址是以太网的MAC子层所使用的的地址(数据链路层)
IP地址是TCP/IP体系结构网际层所使用的的地址(网际层)
ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址(网际层)
MAC地址
MAC格式
举例
可以了解一下随机MAC地址
IP地址
ARP协议
ARP高速缓存表中的类型:
- 动态:自动获取,生命周期默认为两分钟
- 静态:手工设置,不同操作系统下的生命周期不同,例如系统重启不存在或系统重启依然有效
ARP协议只能在一个链路或一个网络上使用,而不能跨网络使用 ARP协议没有安全验证机制,存在ARP欺骗(攻击)问题
除ARP请求和响应外,ARP还有其他类型的报文(例如用于检查IP地址冲突的“无故ARP、免费ARP”)
集线器与交换机的区别
使用集线器在物理层拓展以太网
交换机
忽略ARP过程 假设交换机的帧交换表已经配置好
对比
拓展以太网
竞争总线
自学习和转发帧
- 以太网交换机工作在数据链路层(也包括物理层)
- 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧
- 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表
- 帧交换表中每条记录都有自己的有效时间,到期自动删除,因为MAC地址与交换机接口的对应关系不是永久性的
例题:
以太网交换机生成树协议STP
- 如何提高以太网的可靠性?
- 添加冗余链路可以提高以太网的可靠性
- 但是,冗余链路也会带来负面效应——形成网络环路
- 网络环路带来以下问题:
- 广播风暴(大量消耗网络资源,使得网络无法正常转发其他数据帧)
- 主机收到重复的广播帧(大量消耗主机资源)
- 交换机的帧交换表震荡(漂移)
虚拟局域网VLAN概述
实现机制
|