🚡 数据链路层
一、思维导图
二、数据链路层的作用
基于物理层的问题:
数据链路层功能:
- 数据链路层在物理层提供服务的基础上为网络层提供服务。
- 其最基本的服务是将来自网络层的 IP 数据报封装成帧,可靠的传输到相邻结点的目标网络层。
- 其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路
- 流量控制:解决速度不匹配问题
- 差错处理技术:保证数据传输准确性
功能概述:
- 为网络层提供服务
- 链路管理,即连接的建立,维持,释放
- 组帧
- 流量控制(限制发送方)
- 差错控制
下面具体解释这些功能
三、封装成帧&透明传输
1. 封装成帧的概念
封装成帧就是在网络层传下来的IP数据报的前后部分添加首部,尾部,这样就构成了一个帧。
接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
2. 透明传输
- 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
- 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。方法如下:
3. 组帧的四种方法
① 字符计数法
帧首部使用一个计数字段(第一个字节)来标明帧内字符数
存在的问题:若一个帧出错,则它之后的帧都出错
② 字节填充法(转义符)
③ 零比特填充法
发送端:连续5个1,则立即填入1个0
接收端:连续5个1,则立即去除后面的0
④ 违规编码法(曼彻斯特编码)
可以用电平的 “高-高” “低-低“ 来判定帧的起始和终止
四、数据链路层的差错控制
1. 检测编码
① 奇偶校验码
校验位的取值应使整个码字(包括校验位)中为“1”的比特个数为奇(偶)数。
传输时,形成的校验位附加在信息字段之后传输。
直接举例:
0110001 采用奇校验码,应使 0110001中1的个数为奇数,所以添加0
偶校验码,应使0110001中的1的个数为偶数,所以添加1
奇偶校验码的特点:
只能检查出奇数个比特的错误,检测能力为50%
异步传输方式中采用偶校验,
同步传输方式中采用奇校验
② 循环冗余码CRC
冗余码
:在数据发送之前,先按某种关系附加上一定的冗余码,当要发送的数据发送变化时,相应的冗余码位也随之变化。接收端接收时判断数据信息和冗余码是否符合,从而判断是否出错。
类似于快递买了5本书,包装上写了5本,但是收到后里面只有3本,则可判断发送过来的数据出了问题
异或相除,同0异1,即 1 /0 = 0, 1 / 1 = 1,0 / 1 = 0,0 / 0 = 1
2. 纠错编码 — 海明码
工作流程:
确定校验码位数r
确定校验码和数据的位置
4位校验码P1,P2,P3,P4,分别放在 2^0 ,2^1 ,2^2 , 2^3这四个位置上,
其余位置依次从高到底填入原始数据求出校验码的值
检错并纠错
按照上一步的逻辑进行异或运算求出一个二进制序列
P1
异或 D1 异或 D2 异或 D4 异或 D5 = 1
P2
异或 D1 异或 D3 异或 D4 异或 D6 = 0
P3
异或 D2 异或 D3 异或 D4 = 1
P4
异或 D5 异或 D6 = 0
得出的二进制序列为 0101 = 5,由此可知第五位出错
五、流量控制&可靠传输
1. 流量控制的概念
限制发送方的发送速度,让发送发
慢点发
通过滑动窗口
来实现流量控制
2. 数据链路层流量控制的方法 —— ARQ协议
有些书中将这个协议放在运输层
以下三种协议都包含 自动重传请求(Automatic Repeat Request)ARQ,所以也称 ARQ 协议
传统自动重传请求分成为三种,即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ。后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。三者的区别在于对于出错的数据报文的处理机制不同。三种ARQ协议中,复杂性递增,效率也递增。
① 停等协议(停等式ARQ)
在停等式ARQ中,数据报文发送完成之后,发送方等待接收方的状态报告,如果状态报告报文发送成功,发送后续的数据报文,否则重传该报文。
停等式ARQ,
发送窗口和接收窗口大小均为1
,发送方每发送一帧之后就必须停下来等待接收方的确认返回,仅当接收方确认正确接收后再继续发送下一帧。该方法所需要的缓冲存储空间最小,缺点是信道效率很低。
② 后退N帧协议 GBN(后退N帧的ARQ)
发送窗口 >= 1,接收窗口 = 1
, 发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么从那个发生错误的帧开始及其之后所有的帧全部再重新发送。特点:(GBN)复杂度低,但是不必要的帧会再重发,所以大幅度范围内使用的话效率是不高的
③ 选择重传协议 SR(选择性重传ARQ)
发送窗口 >= 1,接收窗口 >= 1
, 发信侧不用等待收信侧的应答,持续的发送多个帧,接收方将确认一个正确接收的帧而不管其是否按序,失序的帧都将被缓存。假如发现已发送的帧中有错误发生,那么发信侧将只重新发送那个发生错误的帧。特点:相对于GBN 复杂度高,但是不需要发送没必要的帧,所以效率高。
3. 可靠传输
发送端发送什么,接收端原封不动接收什么
六、介质访问控制
1. 传播数据使用的两种信道/链路
① 点对点信道
一对一通信。
因为不会发生碰撞,因此也比较简单,使用 PPP 协议进行控制。常用于广域网
② 广播式信道
一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到。
所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。
主要有两种控制方法进行协调,一个是使用信道复用技术(静态划分信道),另一个是使用 CSMA/CD 协议。
详细控制方法如下
2. 介质访问控制的概念
介质访问控制 就是采取一定的措施,使得 广播式链路中 两对节点之间的通信不会发生互相干扰的情况
3. 静态划分信道
使得多路信号可以共用一个信道, 将多路信号组合在一条物理信道上传输,充分利用信道容量。
① 频分多路复用 FDM
对整个物理信道的可用带宽进行分割,每个用户分配不同的频带
频分复用如何避免各路信号间的干扰:
频分复用要求总频率宽度大于各个子信道频率之和,同时为了保证各子信道中所传输的信号互不干扰,应在各子信道之间设立隔离带(也就是保护频带,即插入一些 空白的频段 ),这样就保证了各路信号互不干扰。
② 时分多路复用 TDM
将时间段分为一段段等长的时分复用帧,每个用户在每一个TDM帧内占用固定序号的时隙,所用用户按序轮流占用信道
在一个TDM帧内:A先发送na比特,接着B发送nb比特,C发送nc比特,最后D发送nd比特
下一个TDM帧同样如此
③ 波分多路复用 WDM
就是光的频分多路复用,将不同路信号调制成不同波长的光,并借助同一光纤信道传输
④ 码分多路复用 CDM
⑤ 多路复用的特点
多路复用的特点:各个子信道(频分多路复用中的子 频段,时分多路复用中的时间片,波分多路复用中的波 长) 被静态地分配给各路信号传输,接收方可以直接 通过识别固定子频段、时间片或者波长来完成信号分离。
不足之处:信道利用率不够高,信号的传输往往是间断 的,在某个时刻,子信道会出现空闲状态**(无数据)
解决办法:集中传输 —— 动态按需分配子信道
4. 动态划分信道
a. 轮询访问介质访问控制
令牌传递协议
结点之间通过有序传递令牌(特定比特模式)来分配各结点对共享型总线的访问权利,形成闭合的逻辑环路
b. 随机访问介质访问控制
所有用户可随机发送信息,发送信息时占全部带宽
① ALOHA 协议 不听就说,想发就发
不监听信道
② CSMA 协议 先听再说
载波监听多路访问
- 载波监听:侦听媒体是否空闲(先听再说)
- 多路访问:多个结点共享媒体,多个结点同时获取信息
③ CSMA/CD 协议 先听再说,边听边说,冲突停发,随机重发
载波监听多点接入/碰撞检测
冲突检测:适配器边发送数据边检测信道上信号电压的变化情况,以便判断是否有人也在发送信号。
发现碰撞后采用 截断二进制指数规避算法
确定重传时机
CAMA/CD 碰撞检测协议一般用于有线连接的局域网
CSMA/CD 数据帧格式中,会有最小帧长(每个帧的长度不小于64字节)的限制,这是为了保证发送结点可以对发生的冲突进行有效的检测
④ CSMA/CA 协议 先听再说,空闲发送,协商频段,避免冲突
载波监听多点接入/碰撞避免
主要流程:
- 先听再说,但监听到信道空闲时,并不是立即发送数据,而是先发送一个很小的信道侦测帧 RTS,告知对方自己将要发送的数据长度和频段选择,如果收到最近的接入点返回的 响应 CTS,就认为信道是空闲的,然后再发送数据
- 接收端如果正确收到此数据帧,则经过一段时间间隔后,向发送端发送确认帧ACK。
- 发送端收到ACK帧,确定数据正确传输,在经历一段时间间隔后,再发送数据。
CSMA/CA 碰撞避免协议一般用于无线局域网
为什么 CSMA/CD 协议不适用于无线网呢?
碰撞检测”要求一个站点在发送本站数据的同时,还必须不间断地检测信道。一旦检测到碰撞,就立即停止发送。但由于无线信道的传输条件特殊,其信号强度的动态范围非常大,因此在802.11适配器上接收到的信号强度往往会远远小于发送信号的强度(信号强度可能相差百万倍)。如要在无线局域网的适配器上实现检测到碰撞,在硬件上需要的花费就会过大。
更重要的是,即使我们能够在硬件上实现无线局域网的碰撞检测功能,我们仍然无法避免碰撞的发生。这就表明,无线局域网不需要进行碰撞检测。
七、局域网 LAN
局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。
1. 局域网分类
以太网
- 令牌环网
- FDDI
- ATM
- 无线局域网 WLAN
2. 局域网拓扑结构
3. MAC子层和LLC子层
MAC子层和物理层对接,LLC子层和网络层对接
媒体访问控制(MAC)技术构成局域网的主要内容, 不同的媒体访问控制技术—不同的协议—不同的帧格式;
LLC的目的:屏蔽不同MAC技术,向高层提供统一服务和接口
八、以太网
以太网是一种星型拓扑结构局域网。
早期使用集线器进行连接,集线器是一种物理层设备, 作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞。
目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转发。
以太网提供 无连接,不可靠
的服务
MAC地址
MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。
一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。
九、PPP协议
互联网用户通常需要连接到某个 ISP(互联网服务提供商) 之后才能接入到互联网,PPP 协议是用户计算机和 ISP 进行通信时所使用的数据链路层协议。
用户使用拨号电话接入因特网一般都使用PPP协议。
只支持全双工链路
十、链路层设备
隔离冲突域,不隔离广播域
1. 网桥 / 二层交换机
工作于OSI模型的第2层,因而称为二层交换机
网桥:根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧的时候,并不向所有接口转发此帧(集线器),而是先检查此帧的目的MAC地址,然后再确定该帧转发到哪一个接口,或者是把他丢弃
网桥的功能在延长网络跨度上类似于中继器/集线器,然而它能提供智能化连接服务,即根据帧的终点地址处于哪一网段来进行转发和滤除
网桥只用于连接相同类型的网络。