数据链路层的知识可以算是计算机网络中的重点了,内容比较多,所以我们来分两次来学习完它。
什么是数据链路层?
首先先理解一下几个概念:
结点: 主机、路由器都属于结点。
链路:网络中两个结点之间的物理通道。分为有线链路、无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
是给物理层的传输媒体提供连接,进行数据通信。媒体是长期的,而通信是有生命周期的,每次通信都需要建立、拆除通信联络。这种建立起来的数据收发关系就叫做数据链路。能帮助物理层弥补不足,为上层提供无差错的数据传输。
数据链路层的功能有哪些?
(1)为网络层提供服务
(2)链路管理,即连接的建立、维持、释放(用于面向连接的服务)
(3)组桢(四种方式,后面细说)
(4)流量控制(两类、三种方法)
(5)差错控制
标红字段为本文所涉及的内容。
一、组桢
先来了解一些概念
桢:数据链路层的数据协议单元,封装网络层数据报。
透明传输:可传输任意比特编码的信息。
可靠传输:能完好且完整的把数据传输过去。
桢的封装:
在一段数据的前后添加首部和尾部,用来确定桢的界限,进行桢定界。

组桢的四种方式:
(1)字符计数法
(2)字符填充法
(3)零比特填充法
(4)违规编码法
前两个出错对整体影响较大,现在已经不怎么使用。
后两个为现在所常用的组桢方式。
四种方式的具体操作:
(1)字符计数法(字符增加或者缺失的时候,变化太大了)
在桢的首部使用一个计数字段,来标明桢内字符数

(2)字符填充法
在桢的首、尾插入字符来识别。

如果在这个过程中遇到了假的尾部,我们会在这个假的胃不去前面进行字节扩充,如下图所示,来与真正的尾部进行一个区分。

(3)零比特填充法
在首部和尾部添加“01111110”,当桢中的数据部分出现五个一段时候,就在后面加上一个零。

(4)违规编码法(实现存在复杂性和不兼容性)
用编码中不会用到的电平方式来标注真正的起始和终止。

比如曼彻斯特编码中,编码是10或者01,那么我们就可以用11或者00作为头部或者尾部。
二、差错控制
差错产生的两种方式:
(1)随机噪声:固有的,随机的。
降低随机噪声的方法:提高信噪比。
(2)冲击噪声:有外界敲击等方式引起的。
降低冲击噪声的方法:编码技术的提高。
差错的两种类型:
(1)位错:比特位出错 0——>1、1——>0。
(2)桢错:
桢错的三种情况:
比如传输了1、2、3三个桢
1⃣️:桢的丢失 (1、2)
2⃣️:桢的重复 (1、2、2、3)
3⃣️:桢的乱序(1、3、2)
个人感觉这里和生物有点像哈哈哈,位错相当于基因突变,桢错相当于染色体变异。
位错两种控制方法:
1⃣️:检错编码
1、奇偶校验码。(纠错率百分之五十)
2、循环冗余码(CRC技术)。冗余码(FCS桢检查序列)
2⃣️:纠错编码
1、海明码(很神奇)
操作流程:
确定校验码位数r——>校验码的数据和位置(只能放在2的n次幂的位置上)——>校验码的值(看二进制可以知道检验位哪几位)——>检查和纠错(逆运算,将结果倒过来组成二进制值,找二进制的值就是出错位。)
海明不等式:
2的r次幂 大于等于 k+r+1
r冗余信息位
k为信息位
顾名思义,第一种可以找到错误,第二种不仅可以找到错误,还能进行修改。
以上两种控制位错的方法,大家可以去看“Echo*”z
https://blog.csdn.net/qq_40963076
三、流量控制
先介绍一些概念:
信道利用率 = (L/C)/T (发送信息的时间/总时间)
L:数据量
C:发送速率
T:周期
信道吞吐率 = 信道利用率*发送方发送速率
超时计时器(设定的时间大于往返时延RTT)
超过这个设定的时间,自动重传相应的数据。
超时的几种情况:
1、丢包————重新传递
2、丢ACK————丢弃重复的一桢,重传错误的一桢
3、ACK迟到————收下就丢弃
只有当窗口移动到下一组窗口位置的时候,收到上一组的ACK才叫ACK迟到。
流量控制的手段:接受方收不下就不回复确认
流量控制的方法:
(1)停止——等待协议 每发送一桢就stop,待确认后就continue
(2)滑动窗口协议:
1、后退N桢协议(GBN)——>发送窗口最大值为2的n次幂减1。 信道利用率低
累积确认,可以隔一段时间发送一个ACK,告诉发送方ACK和ACK之前的所有内容已经收到。
其余的情况丢弃桢,并且最近按序接受的桢重新发送ACK。
2、选择重传协议(SR)——>发送窗口最大值为2的(n-1)次幂
如果发送窗口太大,接收方就无法辨别是新桢还是旧桢。
后退N桢协议和停止等待协议的接收方窗口的大小都是1
要了解这些流量控制方法在传输中发生数据丢失会怎么办,也请参考上面那位博主的文章,在里面已经配图解释过了。
多次进行停止——等待协议就变成了后退N桢协议(GBN)————这种技术被称为流水线技术

被折叠的 条评论
为什么被折叠?



