美文网首页
计算机网络笔记——数据链路层

计算机网络笔记——数据链路层

作者: 阿西C梦 | 来源:发表于2020-04-19 16:14 被阅读0次

基本概念

  • 节点:主机、路由
  • 链路:物理通道
  • 数据链路:逻辑通道(控制协议的硬件+软件)
  • 帧:协议数据单元,封装数据报

数据链路层任务:向相邻节点传输数据报

功能

  • 功能二:为网络层提供服务: 无确认无连接服务有确认无连接服务有确认面向连接服务
  • 功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
  • 功能三:组帧。
  • 功能四:流量控制。
  • 功能五:差错控制(帧错/位错)。

组帧

封装成帧:在一段数据的前后部分添加 首部尾部 ,这样就构成了一个帧。
接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束.

Zg3zKf.png

首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

组帧的四种方法

1. 字符计数法

    做法:帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数(包括他自己)。
    缺点:若帧的第一个字节丢失就全体GG(一般不采用)
Zg3dCn.png

2. 字符(节)填充法

    做法:在首部和尾部分别添加特殊的控制信息,若数据中有相同比特流则在前面填充特殊的转义字符让接收方忽略它
    缺点:so复杂了点  
Zg8mrT.png

3. 零比特填充法

    做法:类似字符填充法,填充的字符不同(`01111110`),并且遵循`5110`
    `5110`:扫描整个数据段。若有连续5个1出现就在后面无脑加0,防止和首尾数据重复
ZgJu4J.png

4. 违规编码法。

    做法:比如我们使用曼彻斯特编码编码数据
    数据的定义是靠电平上升沿(低-高)和下降沿(高-低)表示。
    那我们产生一个(高-高)/(低-低)这样不符合编码规则的电平就可以和数据区分

字节计数法 : Count字段的脆弱性(其值若有差错将导致灾难性后果)
字符填充法 : 实现上的复杂性和不兼容性
目前较普遍使用的帧同步法是 比特填充违规编码法

差错控制

差错源于噪声:

  1. 全局噪声(链路电气随机干扰):提高信噪比解决
  2. 局部噪声(外界噪声干扰):编码技术解决

差错

  1. 位错:(比特位出错,1变成0,0变成1)
  2. 帧错:丢失、重复、失序

位错解决

冗余编码: 在数据前面添加校验数据,和最终收到的数据比对是否有误,有误证明传输出错

检错编码(只能检测出错)

  1. 奇偶检验码(检错能力50%)
    构成:1位检验元 + n-1位数据元  
    奇校验码:加上校验元后使得数据中的 1 个数位奇数
    偶校验码:加上校验元后使得数据中的 1 个数位偶数
eg:如果一个字符S的ASCll编码从低到高依次为1100101,采用奇校验,在下述收到的传输后字符中,哪种错误不能检测?
    A. 11000011
    B. 11001010
    C. 11001100
    D. 11010011

Ans:D。因为前采用奇校验,ABC三项中1都为偶数传输均错误,D有可能是正确的(万一是偶数位错呢)
  1. 循环冗余码CRC
1.发送端编码
    要传送的数据 / 生成多项式。取其余数作为冗余码
2.发送数据
    要传送的数据 + 冗余码
3.接收端校验
    接收到数据 / 生成多项式。庞贝余数是否为0,否则传输出错

板栗🌰


ZgtOj1.png
ZgNFgA.png

课件中商漏了一个1,但是过程是对的余数正确,故不影响结果
这个模2除法(异或)适应一下和以前数学不太一样

一段晦涩的话

在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接受的帧
我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。
“凡是接收端数据链路层接收的帧均无差错”。

“可靠传输”:数据链路层发送端发送什么,接收端就收到什么。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。

纠错编码(发现错误,还能找出出错位置)

海明码(发现双比特错,纠正单比特错)

原理: 多个校验位同时检验一个数据

构成: 检验位和数据位
检验位个数:海明不等式 2^r >= k + r + 1 计算得出(r为检验位个数,k为数据位位数)
检验位位置:2的(1-r次方)

编码: (以数据D = 101101为例)

  1. 计算检验位
1.1 第一个检验位,使得校验位和所有位数末尾第一位为1(二进制)的所有数据异或值为0  
    eg:P1 ⊕ D1 ⊕ D2 ⊕ D4 ⊕ D5 = 0   ==>   P1 = 0

1.2 第二个检验位,使得校验位和所有位数末尾第二位为1(二进制)的所有数据异或值为0  
    eg:P2 ⊕ D1 ⊕ D3 ⊕ D4 ⊕ D6 = 0   ==>   P2 = 0

……

以此类推,最终
P1 = 0
P2 = 0
P3 = 0
P4 = 1

最终传输数据(海明码): 0010011101

海明不等式和它的位置巧妙的使校验位 校验的位置都是数据位

校验:

  1. 校验异或值(假设传输中第五位传输错误变为0010111101)
1.1 第一个检验位
    eg:P1 ⊕ D1 ⊕ D2 ⊕ D4 ⊕ D5 = 1

1.2 第二个检验位
    eg:P2 ⊕ D1 ⊕ D3 ⊕ D4 ⊕ D6 = 0

1.3 第二个检验位
    eg:P3 ⊕ D2 ⊕ D3 ⊕ D4 = 1

1.4 第二个检验位
    eg:P4 ⊕ D5 ⊕ D6 = 0

2. 校验结果 "出栈" : `0101` 转换位十进制 `5`

3. 确认海明码第五位出错,将1改为0

校验结果出栈后 00000 位出错就不用解释了 它压根就没错

🌰🌰板栗+1


ZgBvzF.png
ZgBjRU.png

相关文章

  • 计算机网络 复习笔记 物理层

    目录 计算机网络 复习笔记 概述 计算机网络 复习笔记 物理层 计算机网络 复习笔记 数据链路层 计算机网络 复习...

  • 计算机网络-数据链路层

    计算机网络-数据链路层 数据链路层属于计算机网络的低层数据链路层使用的信道主要有以下两种类型 点对点信道 广播信道...

  • 《Tanenbaum计算机网络》学习笔记

    这是我学习大神Andrew的计算机网络时随手记下的笔记,由于从事互联网行业工作,因此物理层数据链路层的笔记非常简单...

  • 计算机网络 - 目录

    计算机网络01 - 应用层 计算机网络02 - 传输层 计算机网络03 - 网络层 计算机网络04 - 数据链路层...

  • 数据链路层功能——封装成帧&&差错控制

    本文内容 从本节开始介绍数据链路层的内容,数据链路层属于计算机网络的低层,需要对其上层网络层提供服务。本文主要介绍...

  • 计算机基础

    1、计算机网络(应用层,传输层,网络层,数据链路层,物理层) 物理层:利用传输介质为数据链路层提供物理连接,实现比...

  • 计算机网络-数据链路层(上)

    数据链路层最基本的服务是将源计算机网络层来的数据可靠的传输到相邻节点的目标计算机的网络层 数据链路层 功能 保证数...

  • TCP/IP 模型 数据链路层

    数据链路层属于计算机网络的底层,使用的信道主要有点对点信道和广播信道两种类型。 在TCP/IP协议族中,数据链路层...

  • 【山外笔记-计算机网络·第7版】第03章:数据链路层

    【山外笔记】第03章:数据链路层 本文打印版文件下载地址: [山外笔记]第03章_数据链路层-打印版.pdf 本章...

  • 网络基础——数据链路层

    数据链路层属于计算机网络的低层。数据链路层使用的通道主要由两种类型: 点对点信道:这种信道使用一对一的点对点通信方...

网友评论

      本文标题:计算机网络笔记——数据链路层

      本文链接:https://www.haomeiwen.com/subject/tpzoectx.html