当前位置:文档之家› 3第三章 数据链路层

3第三章 数据链路层


数据链路层的概述
差错检测
差错检测的方法很多,常用的是利用信道编码 进行差错检测。 信道编码的基本思想是在传输的信息中加入一 些冗余码,或叫做监督吗。它与被传送的信息 有一定关系(规律),利用这些关系(规律), 我们可以判断信息的正误从而纠正他们。
数据链路层的概述
检错、纠错的原理:
案例一: 设发送端发送A、B两个消息,此时我们采用一 位编码,即1表示A,0表示B。 如果在发送过程中发生误码,将1错成0,将0 错成1,由于1和0都是发送的码元,接收端无法判 断收到的信息是否正确。 因此这种方法没有检错纠错能力。
点对点协议PPP
PPP协议的概述
早期通信线路质量很差,曾广泛使用一种叫高 级数据链路控制HDLC的数据链路层协议。 对于点对点链路,HDLC目前已经很少使用了, 现在使用较多的是简单得多的PPP协议。 PPP协议的典型案例就是用户调制解调器和远端 路由器之间的拨号连接。
已向因特网管理机构 申请到一批 IP 地址 用 户 接入网 ISP 至因特网
数据链路层的概述
检错、纠错的原理(续):
案例三: 若在上诉案例中再增加一位监督码元,一共是 三位监督码元,监督码元和信息码元依然一样, 此时我们用111表示A,用000表示B。 这时如果传输过程中出现一位错误,110或001 或101或010等等,此时接收端不但可以检查出是 否出错,而且还可以根据错码与000,111的相似程 度还原纠正错误的码元。 但如果出现了两位错误,此时虽然接收端可以 判断出信息出错,但是此时纠错的话会导致纠错 错误。
数据链路层的概述
数据链路层的传输单元----帧
结点 A 网络层 数据 链路层 物理层 帧
1010… …0110
结点 B IP 数据报 取出 帧
1010… …0110
IP 数据报 装入
(a) 链路 结点 A 数据 链路层 (b) 发送 帧 链路 接收 帧 结点 B
数据链路层的概述
数据链路层的基本问题:
如何控制帧在信道上传输; 如何进行差错控制和数据同步; 如何建立的收发双方通信连接。
数据链路层的三个基本功能:
(1) 封装成帧 (2) 透明传输
(3) 差错控制
数据链路层的概述
封装成帧
封装成帧(framing)就是在一段数据的前后分别 添加首部和尾部,然后就构成了一个帧。确定 帧的界限。 为什么要封装成帧? (1)统一的信息格式 (2)便于管理与同步 (3)可以添加控制信息(差错、流量)
在物理层扩展:集线器 在数据链路层扩展:网桥
典型以太网
数据链路层的概述
数据链路层的信道主要有以下两种类型:
点对点信道 这种信道使用一对一的点对点通信方式。 广播信道 这种信道使用一对多的广播通信方式,因此过 程比较复杂。广播信道上连接的主机很多,因 此必须使用专用的共享信道协议来协调这些主 机的数据发
数据链路层的概述
常用的CRC生成多项式
可以看出,生成多项式G(X)位数越多,校验能力 越强。 目前广泛使用的有以下四种:
(1)CRC12 (2)CRC16 (3)CRC16 (4)CRC32
= = = =
X12 X16 X16 X32 X10
+ + + + +
X11 + X3 + X2 + 1 X15 + X2 + 1 (IBM) X15 + X5 + 1 (ITU) X26 + X23 + X22 + X16 + X11 + X8 + X7 + X5 + X4 + X2 + X + 1
PPP 协议
点对点协议PPP
PPP协议的特点
简单:没有流量控制,没有纠错功能。 封装成帧 透明性
支持多种网络层协议 支持多种链路 差错检测 能够检测连接状态 控制最大传输单元
点对点协议PPP
PPP协议没有的功能
纠错:PPP协议不提供可靠服务 流量控制:在TCP/IP中,只有运输层负责 序号
多点线路 半双工或单工链路:PPP只支持全双工链路
数据链路层的概述
检错、纠错的原理(续):
案例二: 若在上诉案例中增加一位监督码元,且增加码 元与信息码元相同,即用11表示A,用00表示B。 如果在传输过程中发生一位错误,出现了10或 01,此时接收端就可以发现这种错误,因为发送 端不可能发送01或10。 但是此时发送端无法纠正这种错误,当接收到 10或01时,接收端无法确定发送端要发的是11还 是00。
数据链路层的概述
实现透明传输的几种方法
(1)使用字符填充的首尾定界符法 用特定字符来界定一帧的起始于终止(如BSC规 程)。这些特殊字符依赖于字符的编码集,兼 容性较差。 例子:
单片机聊天室的软件
这种方式称为 “字节填充法”或 “字符填充法”
数据链路层的概述
字节填充法举例
发送端的数据链路层在数据中出现控制字符 “SOH”或“EOT”的前面插入一个转义字符 “ESC”(其十六进制编码是 1B)。 是否完全解决透明传输问题了呢? 若数据部分出现“ESC”怎么办? 如果转义字符也出现数据当中,那么应在转义 字符前面插入一个转义字符。当接收端收到连 续的两个转义字符时,就删除其中前面的一个。
数据链路层的概述
奇偶校验(续)
(1)垂直奇偶校验(常规奇偶校验)(续)
垂直奇偶校验的例子
偶校验:1101 001 0
奇校验:1010 000 1 能检出所有奇数位错误,漏检率=1/2。
数据链路层的概述
奇偶校验(续)
(2)水平奇偶校验(加强奇偶校验) 例子:发送3组3位的信息 对于垂直奇偶校验,每组信息加一位,共4位3 组信息。 对于水平奇偶校验,每组不加任何位,发送3 组信息后再发送一组完全又奇偶校验位组成的信 息,分别对应每组信息的第一位、第二位和第三 位。 水平奇偶校验的检测率较垂直的高;但是检错 时间较长,必须收到校验帧才能开始检错。
数据链路层的概述
奇偶校验
(1)垂直奇偶校验(常规奇偶校验) 奇偶校验的原理: 在数据后面加1位,作为奇偶校验位。比如 ASCII编码一共7位,再加一位奇偶校验码,共8位。 通过控制校验位,可以改变数据中“1”码的 个数,因此来判断正误。 因此奇偶校验又可以分为: 偶校验:数据中“1”码的个数永远为偶数个。 奇校验:数据中“1”码的个数永远为奇数个。
在接收端把 5 个连 1 之后的 0 比特删除
数据链路层的概述
实现透明传输的几 种方法(续)
(3)违法编码 在物理层采用特定 的比特编码方法。 例如数据采用的是 曼彻斯特编码,这 时控制编码采用全 高和全低的不归零 码,这些不归零码 对于曼彻斯特编码 而言是违法的。
数据链路层的概述
实现透明传输的几种方法(续)
数据链路层的概述
(3) 发送信息流程: 1.发送信息前,收发双发必须约定一个大家都知 道的生成多项式G(X)。 2.发送端先把数据划分为组,假定每组k个比特位 (信息位)。然后在信息位后加上n位冗余码一起发 送,共k+n位。 例如:1011001(k=7);这里设 n=4 。 3.求冗余位R。这里用Xn乘以信息位,相当于在信 息位后补n个零。然后用得到的结果除以G(X),得到 的余数就是要求的冗余位R。
数据链路层的概述
字节填充法举例(续)
帧开始符
SOH EOT
原始数据
SOH ESC SOH
帧结束符
EOT
字节填充
SOH ESC EOT
字节填充
ESC SOH
字节填充
ESC ESC
字节填充
ESC SOH EOT
发送 在前
经过字节填充后发送的数据
数据链路层的特填充的首尾标志法 使用特定的比特模式(如01111110)来标志一 帧的起始于终止。如果出现如果数据中出现连 续5个“1”,则在最后一个“1”后加一个 “0”,然后再发送。接收端收到后则自动删除 多加的“0”。 我们成这种方式为“零比特填充”
帧开始符
SOH
帧结束符 装在帧中的数据部分 帧
EOT
发送在前
数据链路层的概述
透明传输
定义:就是无论什么样排列的代码都可以在信 道中传输,这样的数据对于收发控制端而言是 透明的。 用一个例子来理解: 出现了“EOT” 完整的帧 发送 在前 数据部分
SOH EOT EOT
被接收端 误认为是一个帧
被接收端当作无效帧而丢弃
数据链路层的概述
(2)信息码的组成 我们将要发送的信息的多项式设为T(X); T(X)由两部分组成,分别是信息位K(X)和冗余位R(X), 其中冗余位用于检测信息是否出错。 例如: 信息位:1011001 冗余位:1010 信息码:10110011010 K(X)= X6 +X4 +X3 +1 R(X)= X3 +X T(X)= X4· K(X)+R(X) = X10 +X8 +X7+ X4 +X3 +1
数据链路层的概述
帧的一般格式:
首部和尾部的一个重要作用就是进行帧定界。 中间是帧的信息部分,有长度限制。 帧开始 开始 发送 帧首部
IP 数据报
帧的数据部分 MTU 数据链路层的帧长
帧结束 帧尾部
数据链路层的概述
用控制字符进行帧定界的方法举例
这里我们以二进制同步通信协议(BSC)为例。 BSC是IBM公司最早提出的面向字符同步的协议,最 后ANSI和ISO也都提出了类似的标准。 BSC使用的信息编码是ASCII码 控制编码则是自定的编码,例如: SOH:报文报头开始 EOT:报文结束,拆除链路
第三章 数据链路层
自动化系 匡畅
本章内容
数据链路层的概述
相关主题