第3章 数据链路层(1)

3.1数据链路层的功能

加强物理层传输原始比特流的功能,将可能出差错的物理连接改成逻辑上无差错的数据链路[节点的逻辑通道]

3.1.1 为网络提供服务

  • (1).无确认的无连接服务
    适合通信质量好的有线传输链路(实时通信或误码率较低的通信信道)【例如以太网】
  • (2).有确认的无连接服务
    接收到数据需要发送确认。适用于误码率较高的通信信道【例如无线通信】
  • (3).有确认的面向连接的服务
    服务可靠性高,适用于可靠性实时性较高的场所。

3.1.2 链路管理

数据链路层的连接的建立,维持,释放过程称为链路管理。主要用于面向连接的服务。

3.1.3 帧定界,帧同步与透明传输

数据链路层将网络层的分组封装成帧。将数据的首部和尾部添加信息构成帧。
同步是指的接收方能从接收到的二进制比特流中区分出帧的起始与终止
透明传输是指的任意比特组合的数据都能在链路上传输。

3.1.4流量控制

目的是控制发送方的发送速率。
许多高层也有流量控制功能,只是控制的对象不同。

层次流量控制对象
数据链路层节点与节点之间
网络层整个网络
传输层源端到目的端

3.1.5差错控制

接收方通过某些算法检测数据是否出差错,如果出现差错就丢弃。


3.2组帧

组帧的目的是在出错时仅仅重发出错部分。【解决帧定界,帧同步,透明传输等问题】

3.2.1 字符计数法(可靠性差,一个出错全部出错)

在帧头前面用一个计数字段表明帧内字符数
在这里插入图片描述

3.2.2 字符填充的首位定界符【异步】(适用文本文件)

使用开始字符"SOH"和结束字符"EOT"表示首尾,若数据中也有"SOH"或"EOT"就使用转义字符"ESC"插入在前面。出现转义字符就再插入一个转义字符。
在这里插入图片描述

3.2.3 零比特填充的首尾标志法【同步】(用硬件实现容易,性能高于字符填充法)

在传输比特前,若存在连续的5个1,就在后面加一个0
帧的首尾是 01111110 ,去除首尾的01111110才是真正的数据。
在这里插入图片描述

3.2.4违规编码法

曼彻斯特编码差分曼彻斯特斯特编码中所有码元都由两种电平组成。
因此高-高电平低-低电平可以用于起始和终止的定界符。

字符计数法的脆弱性和字符填充法实现的复杂性和不兼容性。目前常用的是零比特填充法和违规编码法。


3.3差错控制

对接收到的数据进行检错和纠错

3.3.1 检错编码

  • 1.奇偶校验码(只能检测出奇数个错误)
    奇校验码:填充0个或多个1使得整个数据有奇数个1
    偶校验码:填充0个或多个1使得整个数据有偶数个1

  • 2.循环冗余码

(1)准备数据,切割网络层分组为等长。
(2)每组都加上冗余码构成帧再发送

收发双发约定好生成多项式,通过做模2除法找到一个冗余码来校验。

生成多项式有两种形式:
可以写成二进制或者多项式形式:1110 001可以写成 x 6 + x 5 + x 4 + x + 1 x^6+x^5+x^4+x+1 x6+x5+x4+x+1
通过计算找到二进制长度减1位冗余码。其中减法是进行异或运算
在这里插入图片描述
通过循环冗余码,数据链路层做到了对帧的无差错接收。接受的的帧都认为传输过程无差错。接收端丢弃的也接收到了,但是因为差错而被丢弃。不是可靠传输。
可靠传输数据链路层发送什么就接收什么。

3.3.2 海明码[纠错编码]

设有效数据长度为n,k为校验位长度
2 k > = n + k + 1 2^k>=n+k+1 2k>=n+k+1

校验位放在 2 i 2^i 2i的位置,其中i∈[0,k-1]。
用的还是偶校验码

编码过程:
在这里插入图片描述


解码过程:
在这里插入图片描述
若在解码时校验位全是0,说明无差错。
若不为0,差错就在以纠正位组成的二进制对应的位置。(图中二进制101就是十进制5,第5位出错了)

检错纠错
位数d位d位
需要d+1位2*d+1位

下面是作者写的模拟海明码的一份c++代码链接:https://blog.csdn.net/qq_61249949/article/details/136790197

  • 43
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mystic Musings

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

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

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

打赏作者

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

抵扣说明:

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

余额充值