计算机网络——数据链路层-功能、组帧和差错控制

一、数据链路层

数据链路层传送的是帧

数据链路层的功能:

  1. 提供给网络层服务
  2. 组帧、帧同步与透明传输
  3. 差错控制
  4. 流量控制
  5. 可靠传输机制
  6. 链路管理

二、组帧

组帧的关键问题是能够让接收端在接收到物理层上交的比特流后, 就可以根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束,这样在出错时就不必重发全部数据而只重发出错的帧即可。

• 字符计数法

• 字符填充的首尾定界符法

• 比特填充的首尾标志法

1、封装成帧

• 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。

• 首部和尾部的一个重要作用就是进行帧定界。

2、字符填充的首尾定界符法

3、透明传输

• 发送端的数据链路层在数据中出现控制字符"SOH"或"EOT"的前面插入一个转义字符"ESC"(其十六进制编码是1B)

• 字节填充(byte stuffing)或字符填充(character stuffing)------接收端的数据链路层在将数据送往网络

层之前删除插入的转义字符。

• 如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

4、差错控制

检错编码:高度可靠的信道上,比如光纤

纠错编码:错误发生频繁的信道,如无线链路

5、检错编码

• 在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。

• 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。

1)奇偶校验码

2)循环冗余检验码

6、纠错编码

纠错编码在接收端不但能检查错误,而且能纠正检查出来的错误。

海明码将码字内的位从左到右依次编号,第1位是1号,第2位是2号......第 n 位是 n 号,记为 M ;( i =1,..., n )。其中,编号为2的幂的位(1号位、2号位、4号位、8号位等)是校验位,其余的位填入 k 位数据。为了知道编号为 k 的数据位对哪些校验位有影响,将编号 k 改写为2的幂的和,如10=2+8,31=1+2+4+8+16等。一个位只有扩展式中所示编号的位检测,如编号为10的位只有编号为2和8的校验位检测。

海明码的构造及检验方法如下:

1)根据关系式2"≥ k + r +1计算冗余位(即检验码)的位数;

2)确定信息位与冗余位(即检验码)的位置关系,2'( i =0,1,..., r )的位置上放冗余位(即检验码) P ,其余位置上放信息位(即数据位) D ,( j =1,... j );

3)找出冗余位(即检验码)与信息位(即数据位)的校验关系;

4)根据校验关系来确定冗余位(即检验码)

相关推荐
云边云科技_云网融合7 分钟前
工业制造多厂区、供应链远程数据传输网络如何优化?
运维·服务器·网络
clear sky .14 分钟前
[TCP]MCU上如何编辑TCP服务端程序,思路框架
服务器·网络·tcp/ip
FungLeo20 分钟前
Flutter 带 TTL 的多级缓存设计:内存+磁盘+网络三层实战
网络·flutter·缓存·性能优化
牛马也想出海44 分钟前
使用Playwright被检测为机器人的原因及反检测方案
开发语言·网络·人工智能·机器人·php
暗暗别做白日梦1 小时前
CompletableFuture 并发统计
网络·数据库·oracle
倔强的小石头_1 小时前
中兴F50只能本地管理?刷入UFI-TOOLS后这样远程访问
网络
@CLoudbays_Martin112 小时前
Linux 服务器如何查看是否被植入后门?
linux·服务器·网络·安全·github·ssl
拾光Ծ2 小时前
【Linux网络】深入理解网络层:从IP协议格式,子网划分到NAT与路由机制
linux·网络·网络协议·tcp/ip·计算机网络
2301_7807896612 小时前
DDoS 攻击溯源:DNS 水印标记 + 区块链存证的双保险
运维·服务器·网络·云原生·ddos
2601_9494999418 小时前
芯瑞科技 DT-1414 光模块工程实测:完美兼容博通(安华高) HFBR-1414PTZ,VCSEL 替代方案
大数据·网络·人工智能·科技·光模块