计算机网络-数据链路层

260 阅读3分钟

数据链路层

1、封装成帧和差错检测

封装成帧就是把网络层向下传输的数据(叫做协议数据单元PDU)加上首部和尾部
但是对于不同的协议,加的首部和尾部不一样 以太网V2版本的MAC(Media Access Control)帧中,前三个字段是帧头,在PPP(Point to Point Protocol)帧中前四个字段是帧头。帧头和帧尾中间包着的就是网络层交付下来的数据,称为载荷 2.webp

3.webp 透明传输就是网络层想传什么数据就传什么数据。因为每一帧是通过帧头和帧尾中的标志字段(叫做帧定界符)来判定帧边界的,然后如果数据载荷中有类似于帧头或者帧尾的东西,即链路层检查载荷,如果出现和标志一样的数据就在其前面添加转义字符 ESC(Escape character),通过转义字符去转义,然后接收方接受时需要对转义字符进行丢弃

2.PNG 差错检测主要的差错检测的方法有两种:1、奇偶校验PC(Parity Check)2、循环冗余校验CRC(Cyclic Redundancy Check)
1、奇偶检验
在奇偶校验中,发送方在发送数据时,会在数据的末尾加上一个附加的比特,称为"校验比特",其值为0或1,使得数据加上校验比特的总比特数为偶数或奇数。例如,如果数据中有偶数个1,则校验比特被设置为1,使得总共有奇数个1;如果数据中有奇数个1,则校验比特被设置为0,使得总共有偶数个1。接收方在接收到数据后,会对接收到的数据和校验比特进行检验,如果发现接收到的数据中某一位出现了错误,那么就说明数据传输出现了错误。 奇偶校验只能检测单比特差错,并不能检测多比特差错或其他类型的错误。因此,在实际应用中,奇偶校验通常会和其他的纠错码或错误检测方法结合使用,以提高数据传输的可靠性。
2、循环冗余校验
循环冗余校验(Cyclic Redundancy Check,CRC)是一种常用的数据校验方法,可用于检测在数据传输过程中可能出现的多比特差错。 CRC的基本思路是将待传输的数据看作一个二进制数,并将其与一个固定的生成多项式进行除法运算,得到一个余数。发送方将这个余数附加到原始数据后面,作为校验码一起发送。接收方在接收到数据后,也将接收到的数据与相同的生成多项式进行除法运算,得到一个余数,如果余数为0,则说明接收到的数据没有出现错误;如果余数不为0,则说明接收到的数据存在差错。

2、可靠传输(不局限于数据链路层,而可以放眼到整个计算机网络体系)

传输差错主要有下图四种情况 2.PNG 数据链路层的可靠传输根据是否需要来确定是否实现

2.PNG 可靠传输可通过以下三种策略来实现

  1. 停止-等待协议
  2. 回退N帧协议
  3. 选择重传协议