讲数据链路层讲解打印

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章数据链路层(6学时)

本章概述:

数据链路层主要内容为: 两台相邻机器之间实现可靠、有效的通信而涉及到的一些算法。所谓相邻,意思是指两台机器通过一条通信信道连接起来,这里的通信信道在概念上就像一条线(比如同轴电缆、电话线或者点到点的无线信道)。一条信道像一条线, 这也暗示了它的一个本质特性, 即在一条信道上递交的数据位的顺序与发送的顺序完全相同。

相邻机器的通信并不简单, 影响因素有:通信线路的偶尔错误, 通信线路的数据传输率有限, 传输延迟等. 所以协议必须考虑这些因素的影响.

数据链路层的任务是将物理层提供的原始位流转换成可供网络层使用的帧流。数据链路层用到了各种成帧的方法,包括字符计数法、字节填充法和位填充法。数据链路协议可以提供错误控制能力,以便重传损环的或者丢失的帧。为了避免快速的发送方淹没一个慢速的接收方, 数据链路协议还要提供流控制功能。滑动窗口机制是—种被广泛使用的技术,它可以方便地将错误控制和流控制结合在一起来考虑。

滑动窗口协议可以按照发送方的窗口大小和接收方的窗口大小来进行分类。当两个窗口的大小都是l的时候,滑动窗口协议变成了停—等协议。当发送方的窗口大于1(例如,为了避免发送方由于长的传输延迟而阻塞线路)的时候,接收方可以有两种实现办法:除了下一个顺序帧以外其他的帧都丢弃;或者将所有乱序的帧都缓存起来,一直到需要这些帧的时候。

3.1 数据链路层设计要点

数链层基本功能: 向网络层提供一个定义良好的服务接口; 处理传输错误; 调节数据流, 防止淹死接收方.

图3.1 分组和帧之间的关系

3.1.1为网络层提供服务

图3.2 (a)虚拟通信过程; (b)实际通信过程

图3.3 数据链路层协议的位置

3.1.2成帧

1.字符计数法

在帧头中用一个域来表示整个帧的字符个数

缺点:若计数出错,对本帧和后面的帧有影响

图3.4 一个字符流(a) 无差错(b) 有一个差错

2.带字符填充的首尾字符定界法

缺点:局限于8位字符和ASCII字符传送。

图3.5 (a) 有标志字节作为分界的帧; (b) 字节填充前后的4个字节序列例子3.带位填充的首尾标记定界法

-帧的起始和结束都用一个特殊的位串“”,称为标记(flag)

-“0”比特插入删除技术

图3.6 位填充(a) 原始数据; (b) 线路上的数据; (c) 删除填充之后存储在接收方存储器中的数据4.物理层编码违例法

802 LAN:曼彻斯特编码或差分曼彻斯特编码用high-low pair/low-high pair表示1/0,

high-high/low-low不表示数据,可以用来做定界符。

注意:在很多数据链路协议中,使用字符计数法和一种其它方法的组合。

● 3.1.3 错误控制

帧完全丢失

一般方法:接收方给发送方一个反馈(响应)。

接收方反馈接收情况信息→确认: 肯定性确认否定性确认

出错情况

-帧(包括发送帧和响应帧)出错;

-帧(包括发送帧和响应帧)丢失→计数器(计时用)

-收到重复帧→帧编号

通过计时器和序号保证每帧最终交给目的网络层仅一次是数据链路层的一个主要功能。

● 3.1.4流控制

淹没问题, 两种流控制策略: 基于反馈的流控制和基于速率的流控制(第5章讲)

3.2 错误检测和纠正

▪差错出现的特点(错误分为两种):随机的, 单个位, 孤立的错误,

连续突发(burst)一次连续许多位错误更难以纠正▪处理差错的两种基本策略

-使用纠错码:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误。

-使用检错码:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,但不能判断哪里有错。

●纠错码(error-correcting code),技术上又称为前向纠错(forward error correction)(适用于低可靠性

信道—无线链路, 在数据块中加入足够冗余信息, 减少重传, 因重传也可能是错误的) -码字(codeword):一个帧包括m个数据位,r个校验位,n = m + r,则此n比特单元称为n位码字。

-海明距离(Hamming distance):两个码字之间不同的比特位数目。

例:0000000000 与0000011111的海明距离为5

如果两个码字的海明距离为d,则需要d个单比特错就可以把一个码字转换成另一个码字;

为了检查出d个错(单比特错),需要使用海明距离为d + 1 的编码;

为了纠正d个错,需要使用海明距离为2d + 1 的编码。

▪最简单的例子是奇偶校验,在数据后填加一个奇偶位

-例:使用偶校验(“1”的个数为偶数)

10110101 ——> 101101011

10110001 ——> 101100010

-奇偶校验可以用来检查奇数个错误。

▪设计纠错码

-要求:m个报文位,r个校验位,纠正单比特错;

-对2m个合法报文中任何一个,有n=m+r个与其距离为1的非法码字,因此每个合法的报文都要求n+1个位模式, 专门供它使用. 由于总共只有2n个位模式, 所以有:(n +

1) 2m ≤ 2n

-利用n = m + r,得到(m + r + 1) ≤ 2r。给定m,利用该式可以得出校正单比特误码的校验位数目的下界. 例如, m=8, 则r>=4.

▪海明码

-码位从左边开始编号,从“1”开始;

-位号为2的幂的位是校验位,其余是信息位;

-每个校验位使得包括自己在内的一些位的奇偶值为偶数(或奇数)。

-为看清数据位k对哪些校验位有影响,将k写成2的幂的和。例:11 = 1 + 2 + 8

▪海明码工作过程

-每个码字到来前,接收方计数器清零;

-接收方检查每个校验位k (k = 1, 2, 4 …)的奇偶值是否正确;

-若第k 位奇偶值不对,计数器加k;

-所有校验位检查完后,若计数器值为0,则码字有效;若计数器值为m,则第m位出错。例:若校验位1、2、8出错,则第11位变反。

▪使用海明码纠正突发错误

-可采用k个码字(n = m + r)组成k ⨯ n 矩阵,按列发送,接收方恢复成k ⨯ n 矩阵-kr个校验位,km个数据位,可纠正最多为k个的突发性连续比特错。

图3.7 利用海明码来纠正突发性错误

相关文档
最新文档