计网_数据链路层概述

2024.07.27:计算机网络数据链路层概述学习笔记


在这里插入图片描述


4.1 概述

数据链路)指的并不是物理的链路,而是物理链路和实现协议的硬件和软件的总和。
现在最常用的方法是直接使用网络适配器来实现协议,市面上常见的网卡都是集成在主板上的,作为主板的一部分出现。网卡工作在物理层和数据链路层.

4.1.1 数据链路层信道类型

在数据链路层,我们将会接触到两种信道

  • 点对点信道:使用一对一的点对点通信方式
  • 广播信道:使用一对多的广播通信方式,过程比较复杂;广播信道上连接的主机很多,必须使用某些共享信道协议协调数据发送

4.1.2 学习注意事项

在这里插入图片描述

  • 当我们去研究数据链路层的问题时,我们只需要去关注协议栈中水平方向的每一个数据两路层,去想象数据时直接在这种链路层中水平发送的。
  • 计算机网络主机间的通信实际上是进程之间的通信,而进程它一定是运行在这个应用层的,所以说相当于你要发送一个数据的话,它是从发送方的应用层逐层往下去封装,然后编程比特流在这个链路上去传输
  • 不同的链路层可能使用了不同的数据链路层协议,从理论上来讲,如果你协议不同,肯定是不兼容的,但是后面学到的(链路层设备交换机)和(网络层设备路由器),有了这两种物理设备,就可以在同一种物理媒介上去使用不同的链路层协议,进行数据转发

在这里插入图片描述


4.2 封装成帧

封装成帧的字面意思就是在一段数据的前后,给它添加首部跟尾部,构成一个帧
在这里插入图片描述
首部和尾部最重要的作用:帧定界,也就是从收到的比特流中识别出一个帧的开始和结束
当你的数据是由可打印的ASCII码组成的文本的时候,我们的帧定界是可以使用特殊的帧定界符的

  • SOH:放在帧最前面,表示帧的首部开始
  • EOT:放在帧最后面,表示帧结束了
  • SOH(二进制0000 0001)和EOT(二进制0000 0100)都只是这个控制字符的名称,二者是由自己对应的比特的

4.2.1 字节填充法

在这里插入图片描述

4.2.2 字符计数法

在帧的首部用一个计数字段来记录该帧所含的字节数(包含计数字段自身占用的1个字节)
在这里插入图片描述
但是这种方法一旦计数字段出错,失去了帧边界划分的依据,收发双发会失去同步,造成灾难性后果

4.2.3 零比特填充法

在HDLC协议(408考纲已删除)中使用这种方法,允许数据帧包含任意个数的比特,使用0111 1110来表示帧的开始和结束
在这里插入图片描述

4.2.4 违规编码法

物理层进行比特编码时常采用的方法,采用一些在数据比特中原本是违规的,没有采用的方法来实现帧定界
在这里插入图片描述

  • 局域网IEEE802标准)就采用了这种方法,违规编码不采用任何填充技术就能实现透明传输,但只适用于采用冗余编码的特殊编码环境

只适用于冗余编码的特殊环境意思就是违规编码主要就是用于那些在编码过程中可以引入额外信息以实现特定功能的系统,这个额外信息就被称为冗余

  • 因为字符计数法中计数字段的脆弱性和字节填充法实现上的复杂和不兼容性,目前最常用的组帧方法是(零比特填充法)和(违规编码法

4.3 透明传输

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


4.4 差错控制

现实的通信链路不会是理想的,随时都有可能产生误码,比如比特差错
在这里插入图片描述

4.4.1 CRC循环冗余码

CRC循环冗余校验码同时具有纠错和检错的能力,但是数据链路层只将它用于检错

循环冗余码的使用步骤如下:

  • 收发双方约定好一个生成多项式G(X)
  • 发送方根据要发送的数据和生成多项式计算出(差错检测码(冗余码)),将其添加到待传输数据的后面一起传输
  • 接收方通过生成多项式来计算收到数据是否产生了误码

计算要发出的数据步骤:

  • 根据生成多项式拿到除数的比特串(这个可能题目直接给)
  • 根据生成多项式最高此项给原始数据后面填0
  • 进行模2除法,除到最终的余数
  • 余数加回初始添0后的数据,即为要发出的数据

收到以后验证数据正确的步骤:

  • 拿到约定好的除数的比特串(这个可能题目直接给)
  • 对收到的数据进行模2除法
  • 如果余数是0,那就没问题,上交;如果余数非0,那就证明数据出错

注意:

  • 生成多项式必须包含最低此项(最后一个一定是1)
  • 带r个检验位的多项式编码可以检测到所有长度不大于r的错误
  • CRC有纠错能力,但是数据链路层只用到了检测错误的能力,出错了直接丢弃

4.4.2 奇偶校验码

检验整个数据部分,通过调整检验位的取值让整个检验码中的1为奇数(奇校验码)或者偶数(偶校验码)。

在这里插入图片描述
注意:奇偶校验码只能检测出奇数个比特的错误,一旦出现偶数比特个错误就无法检测出来


4.4.3 海明码

海明码是最常见的纠错编码,通过在数据中加入几位校验码来检测错误,并且具有一定的纠正错误的能力
在这里插入图片描述


  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麻溜学习

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值