数据链路层的基本功能简单总结

因为遇到了这样一道题,所以想借此机会记录一下数据链路层的基本功能。
题目如下:
(多选)下列属于数据链路层基本功能的有 ( )
A、流量控制
B、介质访问控制
C、成帧
D、差错控制

答案:ABCD

数据链路层位于物理层之上、网络层之下,为网络层提供有效、可靠的帧传输。
数据链路层的数据传输单元是“数据帧”
物理层是将发送端的网络电信号按照一定的规则进行传输,在接收端将收到的电信号按照一定的规则再转换成计算机内部可识别的信号(所以发送端与接收端就需要遵循相同的规则传输电信号,才能完成互联与数据传输)。
物理层主要负责将数据按照一定规则传输出去,而不需要了解传输的是什么,而数据链路层则是需要将数据处理后再转交给物理层。

封装成帧

简单地说,封装成帧是在一段数据的前后分别添加首部和尾部,于是构成了一个帧。其中,首部和尾部的一个重要作用是进行帧定界。在用控制字符进行帧定界的方法中,以控制字符SOH作为帧开始符,以EOT作为帧结束符。
数据链路层的基本功能简单总结_第1张图片
常用的封装成帧实现透明传输的方法有:
1.带字节/字符填充的首尾定界符法
2.使用比特填充的标志法(也称零比特填充法)

带字节/字符填充的首尾定界符法:让每一帧用一些特殊的字节(标志字节)作为开始和结束。缺点是当传输数据中出现这些特殊的字节时容易造成帧定界混淆。相应的解决方法是在二进制数中偶然出现的标志字节前加入一个转义字节“ESC”,这称为字节/字符填充法。

零比特填充法:我们以01111110作为一帧的开始和结束标志F字段。为避免混淆,当发送端的数据链路层碰到比特流数据中有5个连续1时,就立即在该比特流后填入一个0。接收端接收帧时,先找到F字段确定帧的边界,再对比特流进行扫描。每发现5个连续1时,删除其后的一个“0”,进行还原。零比特填充法使得一帧中两个F字段之间不会出现6个连续1。

对于帧而言,不同的数据链路层协议对应着不同的帧,因此帧有多种,例如,PPP帧和以太网MAC帧。

介质访问控制

介质访问控制,是指采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
介质访问控制的两大分类:
数据链路层的基本功能简单总结_第2张图片
数据链路层的基本功能简单总结_第3张图片

差错控制

第三个功能是检查数据是否出错,即差错控制,并在帧上面加入防止数据出错的编码,即差错控制编码。差错控制编码分为检错码和纠错码。

在传输过程中可能会产生差错。差错类型分为
1.位错
2.帧错
位错是指比特位出错,1变为0,0变为1
帧错是指出现了帧的丢失,帧的重复,帧的失序

那么对于差错,数据链路层提供了差错控制。
不同于物理层编码针对的是单个比特,数据链路层编码针对的是一组比特,通过循环冗余码CRC技术进行检测。(只检错,不纠错)

循环冗余检验CRC的检错技术:
CRC码又称为多项式码。任何一个由二进制数位串组成的代码都可以和一个只含有0和1两个系数的多项式建立一一对应的关系。如:
数据链路层的基本功能简单总结_第4张图片
发送端:
先将数据划分成组,假定一组k bit,为数据M。在求得r位冗余码(也称帧检验序列FCS)后,构成一个由k位信息位+r位冗余位组成的n=k+r位码字发送出去。
即信息位+冗余位=发送码字
冗余码的计算:
设待发送的k位的帧为M(x) 选定的生成多项式为G(x)
2^rM(x)/G(x)=Q(x)+R(x) Q(x)为商,R(x)为余数 R(x)为所求冗余码
为方便理解,举个例子:
要发送的一帧信息位M=101001,采用CRC检验,生成多项式为1101,那么最终发送的数据是:
补充:首先r值有时题目会说,如果没有说明,只给了生成多项式(即我们的除数G(x)),也能知道余数的位数比除数少一,在该题中r=4-1=3
数据链路层的基本功能简单总结_第5张图片
接收端:
接收端对收到的每一帧进行CRC检验,用收到的数据帧除以生成多项式,判断余数是否为0。但不能确定出现差错的比特是哪个。
若余数为0:接收正确,接受数据帧
若余数不为零:接收有错,丢弃数据帧

目前数据链路层广泛使用循环冗余检验CRC的检错技术,采用CRC校验码的系统,需要约定一个生成多项式,即G(x)。只要经过严格的挑选,并使用位数足够多的G(x),那么检测不到的差错的概率就很小。
在数据链路层使用CRC检验,只能实现无比特差错的传输,要做到“可靠传输”,就必须加上帧编号,确认和重传机制。
(“可靠传输”:数据链路层的发送端发送什么,在接收端就会收到什么。)

流量控制

数据链路层的第四个功能将帧交给物理层进行传输,因为传输链路上数据很多,需要防止数据冲突等突发状况,所以需要对数据传输进行控制,这叫做流量控制。流量控制的方法主要有两种:停等流量控制和滑动窗流量控制。

你可能感兴趣的:(数据链路层的基本功能简单总结)