第三章 数据链路层

39
第第第 数数数数数 数数数数数数数数 数数数数数 数数数数 数数数数 数数数数数数数数 HDLC Internet 数数 PPP 数数 数数数数数数数数数数数数数数数 数数数数数数数数数数 数数数数数数数 数数数数数数数数数数数数数

Upload: gustav

Post on 19-Mar-2016

106 views

Category:

Documents


6 download

DESCRIPTION

第三章 数据链路层. 数据链路层的基本功能是在物理层传输比特流能力的基础上,通过协议在相邻两个节点之间进行可靠的数据传输。. 数据链路层的功能、模型与服务 流量控制 差错控制 面向位的控制规程 HDLC Internet 中的 PPP 协议. 网络层. 网络层. 数链层. 数链层. 物理层. 物理层. 数据. 数据. 帧. 第一节 数据链路层的功能、模型与服务. 3.1.1 数据链路层的模型.  数据链路层的基本服务: 把源主机网络层的数据以 帧 为单位透明、无差错地传输给目的主机的网络层。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第三章     数据链路层

第三章 数据链路层

数据链路层的功能、模型与服务 流量控制 差错控制 面向位的控制规程 HDLC Internet中的 PPP协议

数据链路层的基本功能是在物理层传输比特流能力的基础上,通过协议在相邻两个节点之间进行可靠的数据传输。

Page 2: 第三章     数据链路层

第一节 数据链路层的功能、模型与服务 数据链路层的基本服务:把源主机网络层的数据以帧为单位透明、无差错地传输给目的主机的网络层。 链路(又称为物理链路):指一条没有任何中间节点的点到点的物理线路。 数据链路(又称为逻辑链路):指链路连同实现控制数据传输的规程的软、硬件,在数据链路上才能进行数据通信。

网络层

数链层

物理层

网络层

数链层物理层

数据 数据

数据链路层模型请单击紫色图示标注显示动画效果

3.1.1 数据链路层的模型

3.1.2 数据链路层的基本功能 数据链路作用:是要将物理层提供的可能出错的物理链路改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的数据通路。

Page 3: 第三章     数据链路层

第一节 数据链路层的功能、模型与服务

数据链路层的主要功能:1 、链路管理:指数据链路的建立、维持和释放。 建立连接:通信双方建立起一条数据链路,并为数据传输做一些必要的准备。 拆除连接:释放所建立的数据链路,释放占用的资源。 2 、帧的封装与拆装 帧:数据链路层的传输单元,将过长的数据报文分成若干份,再配上一些数据链路层的控制信息构成的。 帧的封装:指发送方在发送数据时,将从网络层传下来的分组附上目的地址等数据链路控制信息构成帧的过程。 帧的拆装:指到达接收方,将接收到的信息中,发送方附上的数据链路控制信息去掉,并将纯信息 (即分组 )上交给网络层的过程。3、帧的同步:指接收方应能够从物理层上交来的无结构的比特流中准确地区分出一帧的开始和结束。

Page 4: 第三章     数据链路层

第一节 数据链路层的功能、模型与服务

4 、流量控制与顺序控制 流量控制:为避免通信双方因处理数据速度不同造成数据丢失而采取的措施,即当接收端来不及接收数据时应能够及时控制发送端发送数据的速率。 顺序控制:指数据链路层实体将收到的信息上交给网络层之前,能调整接收到的帧的顺序的功能。5、 差错控制 误码率:指发生错误的码元数与接收到的总码元数的比率。 数据链路层采用编码技术来实现差错控制。 两类编码技术: 前向纠错方式:接收端在收到有差错的数据帧时能自动根据冗余码将差错 改正过来。 检错重发方式:接收端可以根据冗余码检测出收到的帧中是否有差错,并 让发送端重复发送这一帧直到正确接收为止。

Page 5: 第三章     数据链路层

第一节 数据链路层的功能、模型与服务

6 、 使接收端能够区分数据信息和控制信息 由于数据和控制信息常在同一信道、甚至同一帧中传送,因此应采取相应的措施区分二者。7、 透明传输 透明传输:无论所传的数据帧中数据信息和控制信息是怎样组合的,都应能够在链路上传输。 当所传送的数据信息中的某些比特组合恰巧与控制信息的某组成部分完全一样时,须采取适当的措施使接收方不会将数据信息误认为是某种控制信息。例如:面向位的同步信息 F 标志和数据块中的“ 01111110”串。8、 寻址 在多点连接的情况下,提供相应的手段确保发送端发送的每一帧都能正确的到达目的地,同时还要使接收端知道该帧是哪个站发来的。

Page 6: 第三章     数据链路层

第一节 数据链路层的功能、模型与服务

3.1.3 数据链路层的服务 数据链路层的基本服务:将源主机中来自网络层的数据传输给目的主机的网络层。 数据链路层服务的实现:通过网络层与数据链路层之间的接口以服务原语的形式完成服务的调用与被调用。 数据链路层向网络层提供的服务: 1 、无确认的无连接服务:源主机和目的主机在通信前不建立连接,结束后也不释放;通信双方也无需对数据帧进行确认。适用于局域网。2 、 有确认的无连接服务:源主机和目的主机在通信之前不建立连接,但每发送一帧都要单独的确认,并具有超时重发的功能。3 、 有确认面向连接的服务:是最复杂的服务,源主机和目的主机在通信前须建立连接以保证数据可靠传输,传输过程分为建立连接、数据传输、断开连接三个阶段。

Page 7: 第三章     数据链路层

第一节 数据链路层的功能、模型与服务

数据链路层向网络层提供服务原语供网络层调用。例如,用于建立连接的服务原语有:

CONNECT.Request:从主叫方网络层发给数据链路层,请求建立连接。CONNECT.Indication:被叫方链路层用此原语通知其上的网络层,有连接请求。CONNECT.Response :被叫方网络层同意连接,发出的回应原语。CONNECT.Confirm:主叫方数据链路层将对方同意连接的信息告知其上的网络层。

数据传输和拆除连接也分别有服务原语。

Page 8: 第三章     数据链路层

第二节 流量控制 数据链路层的功能之一就是流量控制。影响接收方接收数据能力的因素主要有:设备的处理速度和缓冲区容量的大小。 与传输层流量控制的区别:控制的对象不同,在数据链路层上控制的是通信子网中相邻节点间的数据流量,而在传输层上控制的是发送方和接收方之间端到端的数据流量。 下面是两种常用的流量控制策略:停—等协议和滑动窗口协议。3.2.1 停—等协议——最简单的流量控制策略策略:当发送方发完一帧后,即停止发送,等待对方的应答,如果收到对方的肯定应答,则接着发送下一个帧;如果收到否定应答或超过规定的时间没有收到肯定应答,则重发该帧。 特点:在进行流量控制的同时也进行了差错控制,实现可靠的数据传输。

Page 9: 第三章     数据链路层

第二节 流量控制

( a)

( b)

( c )

( d)

DATA

DATA

ACK

ACK

A B

时间

DATA

DATA

ACK

tout

重发

×

A B

出错tout

重发 DATA

ACK

丢失DATA

A B

tout

重发DATA

ACK

DATA

丢失ACK

A B

请点击紫色字母显示动画效果

分别讨论几种数据传输的情况 :1、理想情况。传输完全可靠、不出错不丢失,不存在差错控制问题。 2 、数据帧出错。通过出错重发机制来解决,若连续重传超过一定次数则停止发送,向上一级报告故障情况。3、数据帧丢失。发送方发送的数据帧因严重干扰不能到达接收方,接收方不回答确认帧 ACK,通过超时重发机制来解决。4、数据帧无误但返回的确认帧丢失。解决重复帧:对每个数据帧赋序号,即每发一帧,序号加 1 。 因停—等协议每次只发送一个帧,且确认该帧被正确接收后才发下一个帧,所以只需用 0和 1两个编号区别相邻的两帧。

Page 10: 第三章     数据链路层

第二节 流量控制

停—等协议的算法: 1 、发送算法 2 、接收算法

收到确认帧 ACK, 从网络层取新的数据帧

V(S)←0,发送状态变量取值为 0从网络层取一个数据帧

N(S)←V(S),将发送序号值写入帧的发送序号送物理层发送

等待……等待下面的事情出现

V(S)←[V(S)-1]修改状态变量值

置超时定时器,选适当超时时间

是否超时? 是否

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

↓ ↓ ↓ ↓ ↓ ↓ 

V(R)←0,接收状态变量取值为 0等待

收到一个数据帧,检查是否有错是 否 有N(S)=V(R)

V(R)←[1-V(R)] 修改状态变量值

将收到的数据帧的数据部分上交给网络层

发送确认帧 ACK

是否

有错无错

Page 11: 第三章     数据链路层

第二节 流量控制

停等协议中要解决的关键问题:超时重发时间的长短的选取,应选取稍大于信号从发送端到接收端传输时间的两倍加上接收端的处理时间之和。 发送端须设发送缓冲区,以便在收到确认帧之前保留该数据帧的副本。 停等协议属于单工通信的 1 位滑动窗口协议,数据单向传输,反向传输确认帧。 优点:控制比较简单。缺点:信道的利用率不高,尤其是当信号的传输时延比较长时。3.2.2 滑动窗口的概念滑动窗口机制:允许发送方连续发送多个帧而不需要等待接收方应答的策略。 为能连续发送多帧需要对帧进行编号,以便进行差错控制和流量控制,帧的序号用帧序号字段的二进制比特来表示。 帧的序号循环使用,以便对允许发送的帧的数目加以限制。 原因:出错时全部重发会降低效率、帧序号位数太多会增加帧的额外开销。 序号空间:如果用 n 表示序号,则序号空间范围是 0到 2n -1 。

Page 12: 第三章     数据链路层

第二节 流量控制

01

2

34

5

67

( d )

01

2

34

5

67

( c )

01

2

34

5

67

( a )前沿

01

2

34

5

67

( b )

W=4

1 、发送窗口 发送窗口:把发送端允许连续发送的而未得到确认的一组帧的序号集合。 区别:序号空间是可使用的序号的范围;发送窗口是序号空间的一个子集。 发送窗口的尺寸:发送端可以连续发送的未得到确认的帧的最大数目。 发送窗口的后沿:发送端最早发送但还未收到应答的帧的序号。 发送窗口的前沿:发送端最晚发送但还未收到应答的帧的序号,数值上等于发送窗口后沿加上窗口尺寸再减 1 。 发送端收到发送窗口后沿所对应帧的肯定应答后,就将发送窗口向前滑动一个序号,并从发送缓冲区中将该数据帧的副本删除。例:如右图,其发送窗口尺寸为 4。

Page 13: 第三章     数据链路层

第二节 流量控制

0

1

2

34

5

6

7

( b )

0

1

2

34

5

6

7

( a )

2 、接收窗口 接收窗口:一组接收方允许接收的帧序号集合。 接收窗口尺寸:接收方最多允许接收的帧数目。 接收窗口的前、后沿:分别是指接收窗口的上下界。 无论接收窗口尺寸的大小如何,接收方交给上层的数据总是按顺序的。例:如右图所示,假设采用全部重发流水协议,接收窗口尺寸为 1。 发送窗口尺寸不一定等于接收窗口尺寸。 发送端应设缓冲区暂存已发出的而未得到应答的帧,以备重发,缓冲区满则停止发送,直至收到新的应答。 接收端可通过控制发送 ACK的速度,对发送端进行流量控制。

Page 14: 第三章     数据链路层

第二节 流量控制

3.2.3 一位滑动窗口协议 一位滑动窗口协议:发送窗口尺寸 = 1 ,接收窗口尺寸 = 1 。 特点:支持数据的双向传输;采取捎带应答的全双工通信方式工作,不必对每一帧进行单独确认,而是通过对某一帧的应答来代替对之前所有帧的应答。捎带应答:将应答信息搭载在数据帧上发送给对方的应答方式。

( a)正常接收 ( b)隔帧接收 请单击紫色图示标注显示动画效果

A发( 0 , 1 , A0)收( 0 , 0 , B0)发( 1 , 0 , A1)收( 1 , 1 , B1)发( 0 , 1 , A2)收( 0 , 0 , B2)发( 1 , 0 , A2)

B收( 0 , 1 , A0)发( 0 , 0 , B0)收( 1 , 0 , A1)发( 1 , 1 , B1)收( 0 , 1 , A2)发( 0 , 0 , B2)收( 1 , 0 , A2)

A发( 0 , 1 , A0 )收( 0 , 1 , B0 )重 发( 0 , 0 , A0 )丢 弃( 0 , 0 , B0 )发( 1 , 0 , A1 )收( 1 , 0 , B1 )重 发( 1 , 1 , A1 )丢 弃( 1 , 1 , B1 )

B发( 0 , 1 , B0 )收( 0 , 1 , A0 )重 发( 0 , 0 , B0 )丢 弃( 0 , 0 , A0 )发( 1 , 0 , B1 )收( 1 , 0 , A1 )重 发( 1 , 1 , B1 )丢 弃( 1 , 1 , A1 )

发送序号 应答序号 数据

Page 15: 第三章     数据链路层

第二节 流量控制

超时时间

丢弃出错帧

ACK3

ACK0ACK1

ACK2 ACK4ACK5

ACK6

0 1 E 2 3 4 5 6 7 8

0 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 10

3.2.4 全部重发流水线协议 全部重发流水线协议:发送窗口尺寸大于 1,接收窗口尺寸等于 1。 特点:当前面的某个帧丢失或出错后,接收方由于其后到达的帧都不接收,所以当发送方超时后,必须重发出错的帧及其以后的所有帧。 分三种情况: 1 、发送方按序号顺序在发送窗口范围内连续发送若干帧。 2 、信道不够可靠,会造成帧的丢失或损坏。 3 、应答帧丢失。

Page 16: 第三章     数据链路层

第二节 流量控制

3.2.5 选择重发流水线协议选择重发流水线协议:发送窗口尺寸大于 1,接收窗口尺寸大于 1。 接收方可将错帧之后的帧保留在接收缓冲区中;发送方超时后,只需重发出错的帧;接收方待收到发送方重发的帧后,可将其和保留在缓冲区内的帧重新排序,一起交给网络层。

超时时间

ACK8

ACK7

ACK6

ACK2ACK0ACK1 ACK9

ACK10ACK3ACK4

ACK5

出错帧 由数据链路层缓冲 将 2—8 帧送网络层

0 1 2 3 4 5 6 7 8 2 9 10 11 12 13 14

0 1 E 3 4 5 6 7 8 2 9 10 11 12

特点:与全部重发流水线协议相比,该协议改善了信道的利用率,但接收方的缓冲区要设置得比较大。

Page 17: 第三章     数据链路层

第二节 流量控制

3.2.6 最大窗口尺寸的确定 1 、全部重发流水线协议的最大发送窗口尺寸为 2n-1 若将最大发送窗口尺寸选为和序号空间的大小一致,则当应答丢失时接收方无法区分收到的是重发的老帧还是新帧。 例: n=3时,最大发送窗口尺寸为 7。2 、选择重发流水线协议的最大接收窗口尺寸为 2n-1 选择重发流水线协议的前后相邻的两个接收窗口所包含的序号不能有相同的,否则当某一帧在前一窗口被接收方妥收并发了确认以后,如果因为确认帧丢失而使发方重发了一个相同序号的帧,就回落在下一个窗口而被接收方再次接收。例: n=3时,最大接收窗口尺寸为 4。 在该协议中,发送窗口的尺寸一般取得和接收窗口一样,通常也不超过 2n-1 。

3.2.7 全部重发流水协议的最佳帧长影响信道利用率因素为:帧长、因传输差错而导致的不断重传。最佳帧长的近似公式: lotp= 其中 lotp表示最佳帧长, H 表示帧头的比特数, P 表示误码率。

H/P

Page 18: 第三章     数据链路层

第三节 差错控制 差错控制的目的和任务:发现和纠正计算机通信错误以提高信息的传输质量。 主要涉及的问题:一是如何检测出错误;二是发现错误后,如何进行纠正。 3.3.1 差错的特性及差错控制方式 差错监测和控制技术:在计算机通信系统中产生差错以后,一定要采取措施来监测和纠正错误,将错误控制在允许的最小范围内。1、差错的特性 传输中出现的错误种类:

随机错:由信道固有的、持续存在的随机热噪声引起的。 一般是孤立的;由它导致的错误通常较少。

突发错:通常是由外界特定的瞬间的冲击噪声引起。 常出现连续比特的错误,影响面较大;是传输中产生差错的主要原因。 突发长度:从突发错发生的第一个码元到连续有错的最后一个码元间的所有码元的个数。

突发错比随机错传输的效率较高;突发错的检错和纠错要比随机错困难。

Page 19: 第三章     数据链路层

第三节 差错控制

2 、误码率(又称比特差错率):用来衡量通信线路传输信息的质量,记为Pe 。 Pe = 发生差错的码元数 / 接收的总码元数

在数据通信中,不同业务、不同信道的误码率是不同的:例如:中速的电话系统误码率一般在 10-4—10-6 之间;广域网的误码率一般在 10-7—10-8之间;而局域网的误码率一般在 10-9—10-11 之间。

降低误码率的两种办法: 改善物理信道:降低通信线路自身的误码率,受经济上和技术上的限制难以得到理想的结果。 采取差错控制:核心的技术是编码。

差错控制编码:将发送之前在数据块中加入冗余信息的过程。 两种基本策略:

检错码:使编码只具有检错的功能,即接收方只能判断收到的数据块中是否有错,但有错时不能确切知道错误的位置,因而不能纠正错误 ; 纠错码:使编码具有一定的纠错功能。即接收方不仅能知道收到的数据块中是否有错,而且能知道错在什么地方,然后将出错的二进制位按位取反。

Page 20: 第三章     数据链路层

第三节 差错控制

3 、 差错控制方式 自动请求重发方式 ARQ:采用检错码;需有双向信道来传送收方的反馈信息;在发方要有数据缓冲区来存放已发出的数据;实现简单、传输效率高,是数据通信中常用的差错控制方式。 前向纠错方式 FEC:采用纠错码;不需要反向信道和数据缓冲区;由于纠错码使用更多的冗余位,故纠错设备比检错设备复杂。3.3.2 常用的简单差错控制编码1 、 奇偶校验码——最基本、最常用、最简单的检错码 编码规则:在信源输出的信息码后面附加一个校验元,使得码组中“ 1”的个数是奇数或偶数;在接收端再检测“ 1”的个数,根据是否与发送端原则相符判断传送中是否出现错码。 若传送的信息有 n-1个码元 Cn-1 Cn-2……C2C1 ,校验位为 C0 ,则:奇校验方程为: Cn-1⊕Cn-2⊕……⊕C2⊕C1 ⊕C0=1 ;偶校验方程为: Cn-1⊕Cn-2⊕……⊕C2⊕C1 ⊕C0=0 。(其中⊕表示模 2加运算) 特点:奇偶校验能查出传输中任意奇数个错,但不能发现偶数个错误。适合:在信道干扰不严重和码长 n 不大的时,尤其适于检测随机偶发的错误。

Page 21: 第三章     数据链路层

第三节 差错控制

2 、 二维奇偶校验码 1 )、垂直奇偶校验(又称为纵向奇偶校验、字符奇偶校验)原理:把要发送的信息码元按定长 m 比特分为若干段,每段纵向排列,对每列的信息元进行奇偶校验,得到的校验元附在每列后面,传输时按列的次序传输 。 编码效率: R=m/(m+1) 。

特点:能查出垂直列上的奇数位差错,不能查出偶数位差错;由于突发错出现奇数位错误码元与出现偶数位错误码元的概率各半,因此垂直奇偶校验只能查出 50%突发性错误。

小 组 码 字信 息 元

1 1 1 0 1 1 2 0 1 1 0 13 1 1 0 0 04 1 1 0 0 05 1 0 0 1 0

校验元 0 0 1 0 0

Page 22: 第三章     数据链路层

第三节 差错控制

2 )、水平奇偶校验(又称为横向奇偶校验)原理:把要发送的信息码元按定长 m 比特分为若干段,然后每段纵向排列,共计 n 行,对每行的信息元进行奇偶校验,得到的校验元附在每行后面;传输时也按列的次序传输。 编码效率: R=n/(n+1) 。 小组 码 字

信息元 校验元1 1 1 0 1 1 02 0 1 1 0 1 13 1 1 0 0 0 04 1 1 0 0 0 05 1 0 0 1 0 0

优点:检错能力强,不仅能检验出水平方向上每行的奇数位错,而且还能检测出突发长度≤ m 位的所有突发错。缺点:发送方和接收方都必须设置缓冲区,且产生检验码、检查检验码的逻辑也比较复杂。

Page 23: 第三章     数据链路层

第三节 差错控制

3 )、 水平垂直奇偶校验原理:是水平和垂直两个方向的奇偶校验的结合,又称纵横奇偶检验和方阵奇偶校验。 编码效率: R=mn/[(m+1)(n+1)] 。

小组 码 字信 息 元 校验元

1 1 1 0 1 1 02 0 1 1 0 1 13 1 1 0 0 0 04 1 1 0 0 0 05 1 0 0 1 0 0

校验元 0 0 1 0 0 1

特点:可检测出所有 3位或 3 位以下的错误、水平或垂直方向上的奇数个错误、突发长度< m的突发性错误以及部分偶数位错误,即它可检测出除了互相补偿的偶数位错以外的所有差错;当差错位数为 1位时能纠正差错。

Page 24: 第三章     数据链路层

第三节 差错控制

3.3.3 循环冗余码 (Cyclic Redundancy Code, CRC) ——又称为多项式码,是一种在计算机网络和数据通信中使用得最广泛的检错码。1、循环冗余码 (CRC)原理及运算规则 基本原理:给定一个 k 比特的帧或信息,发送装置产生一个 n 比特校验位,称为帧校验序列 FCS,使得产生的这个由 k+n比特组成的码字可被某个预定的整数相除,然后接受装置将收到的码字除以同样的数,当没有余数时,则认为没有错误。 基本运算规则:模 2运算,即异或运算,加法不进位,减法不借位。 1 1 0 1

+ 0 1 1 01 0 1 1

1 1 0 1× 0 0 1 1 1 1 0 11 1 0 11 0 1 1 1

1 0 1 1 11 1 0

1 0 1 1 1 1 0 1 0 0 01 1

Page 25: 第三章     数据链路层

第三节 差错控制

定义: T——待传输的 k+n比特信息位,一般 n<k; M——k 比特, T 的前 k 比特,要传送的信息位; R——n 比特, T 的后 n 比特,要传送的检验码; P——n+1比特特征值,这是待除的数,即特征多项式。求冗余码的方法:令 M·2n除以 P 的余数为 R 。证明:只需证明 T 是能被 P 整除的,则基本原理成立; 由定义可知, T = M·2n+R ; 由于 M·2n 除以 P 的余数为 R,则有 (M·2n)/P = Q+R/P (Q 为商,R 为余数 ), 且有 T/P = (M·2n)/P+R/P = Q+R/P+R/P , 因为任何二进制数加上其本身的模 2运算为 0,则有 T/P=Q 。 因此 T 是能被 P 整除的,即 R 可用作 FCS 。推理:简单地将 k 比特信息 M 左移 n 个比特(即乘以 2n ),即 M·2n ,除以 P得到的余数 R 即为帧校验序列 FCS 。执行过程:在发送端由 M 和 R 构成传输信息 T;在接收端,接收装置再将收到的 T 除以 P,如无余数,即 T=T,则说明无误码,再将后 n 位 FCS检验位去掉。

Page 26: 第三章     数据链路层

第三节 差错控制

2 、生成多项式 P(x)形式:CRC-12: P(x)=x12+x11+x3+x2+x+1CRC-16: P(x)=x16+x15+x2+1CRC-CCITT: P(x)=x16+x12+x5+13、 CRC码产生过程① 将数据 M 变成多项式 M(x) 。例如, M 为 111001 ,则M(x)=x5+x4+x3+1;②将 M(x)左移 n 位,得到一个新的多项式 xn·M(x);③用模 2 除法,将 xn·M(x) 除以 P(x)得到余数 R(x) ,与②中 的 码 xn·M(x) 和 起 来 得 到 T(x) , 即 T(x)=xn·M(x)+R(x)。④接收方收到 T(x)后与 P(x) 相除,若余数为 0,则表示无错码,同时去掉 T(x)后 n 比特检验位。

Page 27: 第三章     数据链路层

第三节 差错控制

4 、例如: M 为 110, G(x)=x4+x3+x2+1, 求 T(x)。由题意得: G = 11101 M·24 = 1100000用 1100000除以 11101 ,商 Q 为 101 ,余数 R 为 1001 ,则 R(x)= x3+1;而又有 M(x)·x4 = x6+x5 ,则 T(x) = M(x)·x4+ R(x) = x6+x5+x3+1,相应的码为 1101001 。 5 、 CRC码的特点①可以检验出所有单比特错误;②可以检验出所有双比特错误(条件为 P(x)具有三项因式);③ 可以检验出任何奇数个差错(条件为 P(x) 包含因式(x+1));④可以检验出任何长度小于 FCS长度的突发错误;⑤大多数较大的突发错误。

Page 28: 第三章     数据链路层

第四节 面向位的控制规程 HDLC

3.4.1 HDLC适用的两种链路配置和三种工作方式1 、两种链路配置非平衡配置:由一个主站和一个或多个次站组成,可以为点到点或点到多点工作方式。

主站 : 负责链路的控制,发出的帧叫命令。次站 :完成主站指示的工作,发出的帧叫响应。 在通信中发出呼叫的站是主站,被呼叫的站是次站。

平衡配置:每端都是一个复合站,只能为点到点的工作方式。2、三种操作方式 正常响应方式 NRM:适用于非平衡结构,只有主站能发起数据传送,次站仅当主站探询 (Poll)它时,才能传输响应帧。异步响应方式 ARM:适用于非平衡结构,准许次站不经探询发送响应帧。异步平衡方式 ABM :适用于平衡结构,每个复合站都可以发起数据传输。

主站 次站命令响应 主站

次站 次站次站 非平衡配置

复合站 A

复合站 A

平衡配置

Page 29: 第三章     数据链路层

第四节 面向位的控制规程 HDLC

01111110 8 8 可变 16 01111110

标志 F 地址 A 控制 C 信息 Info 帧校验序列 标志 F

校验范围

3.4.2 HDLC 帧格式HDLC以帧为单位传送数据,帧就是数据链路层的协议数据单元 PDU。

标志字段 F:表示一帧的开始和结束;当发送连续帧时,前一帧的结束标志 F,也就是下一帧的开始标志 F;暂无信息发送时,可以连续发送 F。“ ”0 比特插入 /删除法——实现数据的透明传输:发送方当信息字段中出现5个连续的1时,则在其后额外插入一个“0”;接收方在 F 之后每出现连续5个“1”时,就将其后的“0”删除,还原成原来的比特流。

地址字段 A:占8位,可通过每字节的最高位扩展(当最高位为 0时下一字节仍为地址字段 );在非平衡配置时对于主站发送到次站的帧,地址字段给出的是次站地址;在平衡配置时地址字段填入应答站地址。 帧的校验序列 FCS:占 16位,采用 CCITT建议的生成多项式 x16+x12+x5+1。 控制字段 C:占8位,根据前两位比特取值可分为信息帧 I、监督帧 S 和无编号帧 U 。 信息字段 Info:是从网络层交下来的分组,长度可变。

Page 30: 第三章     数据链路层

第四节 面向位的控制规程 HDLC

帧类型 控制字段 C 的各位 b1 b2 b3 b4 b5 b6 b7 b8

信息帧 I 0 N(S) 当前发送的帧序号 P 轮询/F 最后

N(R) 确认,序号 N(R)-1及以前各帧已妥收,准备接收序号为 N(R)的帧监督帧 S无信息字段,只用作应答,具有差错控制及流量控制的功能

1 0

00 RR 接收准备就绪(流、全)

P/F

N(R) 确认,序号 N(R)-1及以前各帧已妥收,准备接收序号为 N(R)的帧10 RNR 接收未准备就绪(流、全) N(R) 确认, N(R)意思同上,暂停接收01 REJ 全部拒绝接收(全) 拒绝接收 N(R)及以后各帧,出错全部重发, N(R)为重发开始帧号11 SREJ 选择拒绝接收(选) 确认已收到的正确的各帧,拒绝接收并只重发序号为 N(R)的帧

无编号帧U 1 1 M(无编号帧在传播中优先传送) P/F M,共有 25=32 种命令或应答功能

3.4.3 HDLC 三种类型帧

N(S)和 N(R)都模 8 计数。 在信息帧中 ,主站使 P 为 1表示要求次站响应 ,次站将最后一个响应帧的 F 置 1 表示停止发送;在监督帧的正常响应方式中,主站用 P=1要求次站响应,次站在独立应答帧或数据帧的最后一帧中将 F置 1 。

Page 31: 第三章     数据链路层

第四节 面向位的控制规程 HDLC

 

I 标志 N( S ) P=1 N( R )

00110100b1 b2 b3 b4 b5 b6 b7 b8

例 1 设 HDLC某一帧的控制字段 C 为 2CH=00101100B,试说明其意义。 这是信息帧,是发方的第二号帧,希望对方发第 1号帧( N(S) 、 N(R))序号低位在前),询问对方发送信息。这一帧简记为 I, 2, 1, P。

例 2 次站向主站发应答:已准备好接收,希望收第 5号帧,是次站发出的最后一帧。试写出控制手段。 是次站发向主站的应答,表明这是一个管理帧,控制字段 C 的 b1b2 应为 10。次站已准备好接收,表示准备就绪可继续接收, Type字段 b3b4=00。 由于是次站发的最后一帧,得知 F=1,即 C 的 b5=1。

因此, C=8DH=10001101B 这一帧可用符号表示为: RR5 F 。

S 标志 TYPE F=1 N ( R )

10110001b1 b2 b3 b4 b5 b6 b7 b8

Page 32: 第三章     数据链路层

第四节 面向位的控制规程 HDLC

U 标志 Type F=1 Type00001111

b1 b2 b3 b4 b5 b6 b7 b8

例 3 某通信主站在建立数据链路连接时,要求设置异步响应方式,无询问,试写出其帧的控制字段 C 的编码。 这是通信前的设置方式命令,所以是一个无编码帧,标志 b1b2=11。 置 异 步 响 应 方 式 命 令 SARM , 查 表 可 知 命 令 编 码 位 M=11000, 即b3b4b6b7b8=11000。 无询问,则 P=0,即 b5=0。综上,得控制字段编码如下:

C=F0H=11110000B

例 4 RNR用法。如右图所示:

主站 次站I , 4, 0,1 RNR, 5RR , 5 ,FI , 5 , 0

, P

……

请求暂停发送允许发送

Page 33: 第三章     数据链路层

第四节 面向位的控制规程 HDLC

例 5 正常响应操作方式,双向发送。示意图如下:主站 次站

I , 2 , 3, P

SNRM, PUA, FI, 0, 0

I , 1 , 0, PI , 0 ,2I , 1 ,2I, 2, 2,

FI, 3,3I , 4 , 3

, FI, 3, 5

Page 34: 第三章     数据链路层

第四节 面向位的控制规程 HDLC

例 6 主站发四帧,次站发两帧,主站发送帧有错,次占用 REJ请求全部重发。示意图如下: 主站 次站

I , 1 ,0

SNRM, PUA ,FI , 0

, 01 , 1 , 0I , 2, 0I , 3 ,0REJ , 1 ,F

I , 1 , 4 ,F

I, 2, 0I, 3, 0, PI, 0, 4

UA , FDISC , P

次站检查此帧有错

从 I , 1 , 0 开始全部重发

Page 35: 第三章     数据链路层

第五节 Internet中的 PPP协议 数据链路层不是 TCP/ IP协议的一部分,只是 TCP / IP赖以存在的基础,提供了各种通信网与 TCP/ IP之间的接口。各物理网络可以使用自己的数据链路层协议和物理层协议。 在数据链路层使用得最为广泛的就是 SLIP和 PPP协议。 3.5.1 串行线路网际协议 SLIP(Serial Line IP) 串行线路网际协议 SLIP:是一个在串行线路上对 IP分组进行封装的简单的面向字符的协议,用以使用户通过电话线和调制解调器接入 Internet 。SLIP帧的封装规则:IP数据报的首尾各加上一个特殊标志字符 END,其编码为 0xC0(11000000)。 若 IP数据报中的某个字节恰与特殊标志字符 END的编码 (0xC0)一样,则需用 2字节序列 0xDB(称为 SLIP转义字符 ) 和 0xDC替换该字节。 若 IP数据报中某个字节恰与 SLIP转义字符一样,则需用 2字节序列 0xDB和 0xDD将它替换。

C0 C0DB DDDBDC1 1字节 1 1 1 1

ESC END ESC END

IP 数据报 DB

1 C0

1

Page 36: 第三章     数据链路层

第五节 Internet中的 PPP协议

SLIP协议的缺点: 没有校验字段,不提供差错检测的功能,只能靠高层检验差错; 不能提供对方的 IP地址,对无固定 IP地址的拨号入网的用户来说不方便; 无协议类型字段,仅支持 IP协议,而不支持其他的协议。 适用:低速串行线路中的交互性业务 (附加信息开销大,数据传输效率较低 ) 。CSLIP协议 (压缩的 SLIP):在连续发送的数据报分组中会有许多相同的首部字节,若某一字段和前一分组中的相应字段相同,则不发送这个字段;若某一字段和前一个分组中的相应字段不同,则只发送改变的部分。3.5.2 点对点的 PPP协议 (Point-to-Point Protocol) 作用:完成链路的操作、维护和管理功能。运行条件:只需提供全双工电路 (专用的或交换式的 )以实现双向的数据传输。1 、 PPP协议的构成 在串行链路上封装 IP数据报的方法:既支持异步链路 (无奇偶校验的 8比特数据 ),也支持面向比特的同步链路。 链路控制协议 LCP:用于建立、配置和测试数据链路连接 ,通信的双方可协商一些选项。 网络控制协议 NCP:用于建立、配置多种不同网络层协议 , 每种网络层协议需要一个 NCP来进行配置,在单个 PPP链路上可支持同时运行多种网络协议。

Page 37: 第三章     数据链路层

第五节 Internet中的 PPP协议

2 、 PPP的帧格式 标志字段 (F1ag),编码为 01111110(0x7e),是帧的定界符,用以标识一帧的开始和结束。 地址字段 (Address),编码为 11111111(0xff),采用标准的广播地址。 控制字段 (Contro1),编码为 00000011(0x03),是一个无编号帧。 协议字段 (Protocol), 用于标识封装在 PPP帧中的信息所用的协议类型。 信息字段 (Information),包含零个或多个字节,是网络层协议数据报,缺省最大长度为 1500个字节。FCS帧校验序列字段,用 16 比特的循环冗余校验 CRC计算校验和。PPP是面向字符的,帧长度都是整数个字节。字符填充法:将信息字段中出现的每一个 0x7E字符转变成为 2字节序列 0x7D和0x5E;若信息字段中出现一个 0x7D字符则将其转变成为 2字节序列 0x7D和 0x5D;若信息字段中出现 ASCII码的控制字符 ( 即小于 0x20的字符 ) ,则在该字符前面要加入一个 0x7D字符。

A CF7E FF 03

F 7EFCS协议 信 息

IP 数据报

字节 1 1 1 2 不超过 1500 字节 2 1PPP的帧格式

Page 38: 第三章     数据链路层

第五节 Internet中的 PPP协议

3 、 PPP的协议族1) 链路控制协议 LCP(Link Control Protocol) 作用:用于建立、配置、维护和终止点对点的链路层连接。 工作过程:——通过交换 LCP帧来实现

第一阶段:链路的建立和配置协调; 第二阶段:链路质量检查 ( 可选 ) ,决定链路是否满足网络层协议的要求; 第三阶段:网络层协议配置; 第四阶段:关闭链路,可随时关闭链路,多因用户要求或发生物理故障。

LCP的三种帧: 链路建立帧:用于建立和配置 PPP链路并确定与该链路相关的参数; 链路终止帧:用于终止 PPP链路; 链路维护帧:用于管理和调试 PPP链路。2)网络控制协议 NCP(Network Control Protocol)

PPP使用一组网络控制协议 NCP配置不同的网络层,其中普遍使用的是用于配置 IP层的 IP控制协议 IPCP(Internet Protocol Control Protocol)。 使用与 LCP相同的报文结构及协商机制完成选项协商的任务。

Page 39: 第三章     数据链路层

第五节 Internet中的 PPP协议

建立和释放 PPP链路的状态转换图

网络

鉴别成功

NCP 配置

鉴别 建立静止

双方协商 一些选项

打开终止失败

失败 检测到载波

通信结束 载波停止

4 、 PPP的运行机制PPP不提供使用序号和确认的可靠传输。 当用户拨号接入 ISP时,路由器的调制解调器对拨号应答并建立一条物理连接;PC机向路由器发送一系列 LCP分组 (封装成多个 PPP帧 ),选择将要使用的一些 PPP参数; 进行网络层配置, NCP给新接入的 PC机分配一个临时的 IP地址。 当用户通信完毕时, NCP释放网络层连接,收回原来分配出去的 IP地址;LCP释放数据链路层连接;最后释放的是物理层连接。