吴功宜 编著计算机网络第 4章数据链路层
《计算机网络》第 4章 数据链路层
3
本章学习要求,
了解:数据传输过程中 差错产生的原因与性质
掌握:误码率的定义与差错控制方法
掌握:数据链路层的基本概念
了解,面向字符型数据链路层协议实例 — BSC
掌握:面向比特型数据链路层协议实例 — HDLC
掌握,Internet中的数据链路层协议
《计算机网络》第 4章 数据链路层
4
4.1 差错产生与差错控制方法
4.1.1 为什么要设计数据链路层
在原始物理传输线路上传输数据信号是有差错的;
设计数据链路层的主要目的:
将有差错的物理线路改进成无差错的数据链路;
方法 — 差错检测差错控制流量控制
作用:改善数据传输质量,向网络层提供高质量的服务。
《计算机网络》第 4章 数据链路层
5
4.1.2 差错产生的原因和差错类型
传输差错 — 通过通信信道后接收的数据与发送数据不一致的现象 ;
差错控制 — 检查是否出现差错以及如何纠正差错;
通信信道的噪声分为两类:热噪声和冲击噪声;
由热噪声引起的差错是随机差错,或随机错;
冲击噪声引起的差错是突发差错,或突发错;
引起突发差错的位长称为突发长度;
在通信过程中产生的传输差错,是由随机差错与突发差错共同构成的。
《计算机网络》第 4章 数据链路层
6
传输差错产生过程信源 通信信道 信宿数据 噪声 数据+ 噪声
( a)
0
0
1
1
0
0
1 1
1 1
0
0 0
1
1
1
1
1 0
0
0
0
1
1
0
0
0
1
0
0
0 1 0 1 1 0 0 11 0 0 1 0 1 0传输数据数据信号波形噪声数据信号与噪声信号叠加后的波形采样时间接收数据原始数据出错的位
( b)
《计算机网络》第 4章 数据链路层
7
4.1.3 误码率的定义
误码率定义,
二进制比特在数据传输系统中被传错的概率,
它在数值上近似等于:
Pe = Ne/N
其中,N为传输的二进制比特总数
Ne为被传错的比特数
《计算机网络》第 4章 数据链路层
8
讨论
误码率应该是衡量数据传输系统正常工作状态 下 传输可靠性的参数;
对于一个实际的数据传输系统,不能笼统地说误码率越低越好,要根据实际传输要求提出误码率要求;
对于实际数据传输系统,如果传输的不是二进制比特,
要折合成二进制比特来计算;
差错的出现具有随机性,在实际测量一个数据传输系统时,只有被测量的传输二进制比特数越大,才会越接近于真正的误码率值。
《计算机网络》第 4章 数据链路层
9
4.1.4 检错码与纠错码
纠错码,
每个传输的分组带上足够的冗余信息;
接收端能发现并自动纠正传输差错 。
检错码,
分组仅包含足以使接收端发现差错的冗余信息;
接收端能发现出错,但不能确定哪一比特是错的,并且自己不能纠正传输差错。
《计算机网络》第 4章 数据链路层
10
常用的检错码
奇偶校验码垂直奇(偶)校验水平奇(偶)校验水平垂直奇(偶)校验(方阵码)
循环冗余编码 CRC
目前应用最广的检错码编码方法之一
《计算机网络》第 4章 数据链路层
11
4.1.5 循环冗余编码工作原理发送方 接收方发送数据 f ( x )
生成多项式 G ( x )
f (x ) x
k
.
G (x )
= Q( x) +
R (x )
G (x )
实际发送,f ( x ) x
k
.
+ R( x)
数据字段 校验字段
f (x ) x
k
,R (x )
发送数据 f ' ( x )
生成多项式 G ( x )
R ' ( x ) =R ( x ) 接收正确
R ' ( x ) =R ( x ) 接收出错发送
f '( x) x
k
.
G (x )
= Q( x) +
R '( x)
G (x )
《计算机网络》第 4章 数据链路层
12
举例,
1 1 0 0 1 1
发送数据比特序列
C RC 校验码比特序列
1 0 0 1
带C RC 校验码的发送数据比特序列
1 1 0 0 1 1 1 0 0 11 1 0 0 1
1 1 0 0 1
1 1 0 0 1
1 1 0 0 1
0
1 0 0 0 0 1
1 1 0 0 1 1 0 0 0 01 1 0 0 1G (x )
1 1 0 0 1
1 0 0 0 0
1 1 0 0 1
1 0 0 1 R (x )
1 0 0 0 0 1 Q (x )
f (x ),x
k
《计算机网络》第 4章 数据链路层
13
标准 CRC生成多项式 G( x)
CRC-12 G( x) = x12+x11+x3+x2+x+1
CRC-16 G( x) = x16+x15+x2+1
CRC-CCITT G( x) = x16+x12+x5+1
CRC-32 G( x) = x32+x26+x23+x22+x16+x12+x11+ x10
+x8+x7+x5+x4 + x2+x+1
《计算机网络》第 4章 数据链路层
14
CRC校验码的检错能力
CRC校验码能检查出全部单个错;
CRC校验码能检查出全部离散的二位错;
CRC校验码能检查出全部奇数个错;
CRC校验码能检查出全部长度小于或等于 K位的突发错;
CRC校验码能以 [1-( 1/2) K-1]的概率检查出长度为
( K+1) 位的突发错;
如果 K=16,则该 CRC校验码能全部检查出小于或等于
16 位的所有的突发差错,并能以 1-( 1/2) 16-1=99.997
%的概率检查出长度为 17位的突发错,漏检概率为
0.003%;
《计算机网络》第 4章 数据链路层
15
4.1.6 差错控制机制反馈重发机制信源校验码编码器存储器发送装置传输信道接收装置发送端校验码译码器接收端信宿反馈信号控制器反馈信号控制器
《计算机网络》第 4章 数据链路层
16
反馈重发机制的分类
停止等待方式接收端发送端
A C K N A K A C K
1 2 2 3
1 2 2 3
《计算机网络》第 4章 数据链路层
17
连续工作方式
拉回方式
选择重发方式发送端接收端
A CK 0
A CK 1
N AK A CK 2
A CK 3
( a)
A CK 0
A CK 1
N AK A CK 2
A CK 6
( b)
A CK 3
A CK 4
A CK 5
丢弃重传重传
0 1 2 3 4 5 2 3 4 5 6
0 1 2 3 4 5 2 3 4 5 6
0 1 2 3 4 5 2 6 7 8 9
0 1 2 3 4 5 2 6 7 8 9
发送端接收端丢弃
《计算机网络》第 4章 数据链路层
18
4.2 数据链路层的基本概念
4.2.1 物理线路与数据链路
线路 — 链路
物理线路 — 数据链路
《计算机网络》第 4章 数据链路层
19
4.2.2 数据链路控制
链路管理
帧同步
流量控制
差错控制
帧的透明传输
寻址数据链路层协议 — 为实现数据链路控制功能而制定的规程或协议。
《计算机网络》第 4章 数据链路层
20
4.2.3 数据链路层向网络层提供的服务数据链路层服务的类型,
面向连接确认服务( acknowledged connection-
oriented service)
无连接确认服务( acknowladged connectionless
service)
无连接不确认服务( unacknowledged
connectionless service)
《计算机网络》第 4章 数据链路层
21
实际数据路径与虚拟数据路径网 络 层数据链路层物 理 层传输介质应 用 层表 示 层会 话 层传 输 层网 络 层数据链路层物 理 层主机2
虚拟数据路径应 用 层表 示 层会 话 层传 输 层主机1
(a)虚拟数据路径网 络 层数据链路层物 理 层传输介质应 用 层表 示 层会 话 层传 输 层网 络 层数据链路层物 理 层主机2
实际数据路径应 用 层表 示 层会 话 层传 输 层主机1
(b)实际数据路径
《计算机网络》第 4章 数据链路层
22
4.3 面向字符型数据链路层协议实例,BSC
4.3.1 数据链路层协议的分类数据链路层协议点- 点线路广播线路面向字符型面向比特型逻辑链路子层逻辑链路子层
I B M B S C
I S O B M
I B M S D L C
A N S I A D L C
I S O H D L C
I E E E 8 0 2,2
I E E E 8 0 2,3
I E E E 8 0 2,4
I E E E 8 0 2,5
类型子层
《计算机网络》第 4章 数据链路层
23
4.3.2 面向字符型协议实例,BSC
什么是面向字符型协议?
以字符为控制传输信息的基本单元
ASIIC码:
格式字符,SOH( start of heading)
STX( start of text)
ETB( end of transmission block)
ETX( end of text)
控制字符,ACK( acknowledge)
NAK( negative acknowledge)
ENQ( enquire)
EOT( end of transmission)
SYN( synchrous)
DLE( data link escape)
《计算机网络》第 4章 数据链路层
24
面向字符型 BSC协议的数据报文格式:
S YN S YN S OH 报头 S TX 正文 E TB /E TX B CC
报文开始同步字符 用户定义报头结束 分组结束报文结束校验字段正文字段
《计算机网络》第 4章 数据链路层
25
建立、维护与释放数据链路流程图发送E NQ
接收A CK
A C K?
发送数据接收应答
A CK / N AK
结束?
重发发送E OT准备数据放送E NQ
发送A CK
接收数据,E OT
发送A CK 发送N AK
E NQ?
E OT?
B CC 正确?
结束结束
Y
Y
Y
Y
N
N
N
N
N Y
A C K
N A K
《计算机网络》第 4章 数据链路层
26
4.4 典型数据链路层协议分析 — 面向比特型
4.4.1 HDLC产生的背景面向字符型数据链路层协议的缺点,
报文格式不一样;
传输透明性不好;
等待发送方式,传输效率低。
面向比特型协议的设计目标,
以比特作为传输控制信息的基本单元;
数据帧与控制 帧格式相同;
传输透明性好;
连续发送,传输效率高。
《计算机网络》第 4章 数据链路层
27
4.4.2 数据链路的配置和数据传送方式数据链路的配置
非平衡配置
平衡配置非平衡配置中的主站与从站
主站:控制数据链路的工作过程。主站发出命令
从站:接受命令,发出响应,配合主站工作非平衡配置中的结构特点
点 -点方式
多点方式
《计算机网络》第 4章 数据链路层
28
数据链路的非平衡配置方式
《计算机网络》第 4章 数据链路层
29
非平衡配置方式正常响应模式( normal response mode,NRM)
主站可以随时向从站传输数据帧;
从站只有在主站向它发送命令帧进行探询( poll),从站响应后才可以向主站发送数据帧。
异步响应模式( asynchronous response mode,ARM)
主站和从站可以随时相互传输数据帧;
从站可以不需要等待主站发出探询就可以发送数据;
主站负责数据链路的初始化、链路的建立、释放与差错恢复等功能。
《计算机网络》第 4章 数据链路层
30
平衡配置方式
链路两端的两个站都是复合站( combined
station);
复合站同时具有主站与从站的功能;
每个复合站都可以发出命令与响应;
平衡配置结构中只有异步平衡模式
( asynchronous balanced mode,ABM);
异步平衡模式的每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的许可。
《计算机网络》第 4章 数据链路层
31
数据链路的平衡配置方式
《计算机网络》第 4章 数据链路层
32
4.4.3 HDLC的帧结构
F( flag),固定格式 — 01111110
作用 — 帧同步传输数据的透明性( 零 比特插入与删除)
A( address),地址
C( control),帧的类型、帧的编号、命令与控制信息
I( information),网络层数据,Nmax = 256B
CRC( checksum),校验 A,C,I字段的数据
G(X)= X16+X12+X5+1
标志字段F
( 8 位)
地址字段A
( 8 / 1 6 位)
控制字段C
( 8 / 1 6 位)
信息字段I
( 长度可变)
帧校验字段F C S
( 1 6 / 3 2 位)
标志字段F
( 8 位)
《计算机网络》第 4章 数据链路层
33
零比特插入 /删除工作过程
《计算机网络》第 4章 数据链路层
34
帧类型及控制字段的意义
±ê × F
£¨8 £?
μ·× A
£¨8/1 6 £?
× C
£¨8 £?
D¢ × I
(3 ¤?è?é ±? )
D£?é × FCS
£¨16/ 32 £?
±ê × F
(8 )
0 N(S) P/F N(R)
1 0?à P/F N(R)
1 1?′ · P/F?′ ·
D¢ ( I ) £o
à ( S ) £o
T ±à o
( U ) £o
b0 b4 b7b1 b2 b3 b5 b6
《计算机网络》第 4章 数据链路层
35
帧类型
I帧,N( S) — 发送 帧的顺序号
N( R) — 接收帧的顺序号
P/F= Poll / Final,P=1 询问,F=1 响应
P与 F成对出现
S帧,监控功能位
S = 00,RR( receive ready)
S = 01,RNR( receive not ready)
S = 10,RJE( reject)
S = 11,SREJ( select reject)
U帧,用于实现数据链路控制功能
《计算机网络》第 4章 数据链路层
36
U帧的格式与链路控制功能
M P/F M1 1A0 1 1 1 1 1 1 0 FCS 0 1 1 1 1 1 1 0
1 1 0 0 0
0 0 0 0 1
1 1 1 0 0
0 0 0 1 0
0 0 1 1 0
1 0 0 0 1
UA
CMAD
SARM
SNRM
SABM
DISC
命令 响应置异步响应置正常响应置异步平衡响应拆链无编号确认命令拒绝建立主从的点- 点结构建立主从的多点结构建立复合站的平衡结构结束已建立的数据链路从站响应主站的命令从站报告帧传输异常
《计算机网络》第 4章 数据链路层
37
4.4.4 数据链路层的工作过程
简化的信息帧结构的表示方法
一个信息帧的表示
I N(S) N(R) P/F Data
高层数据探询/ 终止位接收帧序号发送帧序号
I 帧标志
I,N ( S ) = 3,N ( R ) = 4,P = 1
《计算机网络》第 4章 数据链路层
38
无编号帧的表示方法
SNRM帧与 UA帧结构的表示方法
U,S N R M,P = 1
U,U A,F = 1
置异步响应模式:
无编号确认:
0 1 1 1 1 1 1 0 A 1 1 0 0 1 0 0 1 FCS 0 1 1 1 1 1 1 0
0 1 1 1 1 1 1 0 A 1 1 0 0 1 1 1 0 FCS 0 1 1 1 1 1 1 0
置异步响应模式:
无编号确认:
《计算机网络》第 4章 数据链路层
39
正常响应模式数据链路工作
《计算机网络》第 4章 数据链路层
40
讨论:数据链路层与物理层的关系
《计算机网络》第 4章 数据链路层
41
4.5 Internet中的数据链路层
4.5.1 Internet中主要的数据链路层协议
SLIP ( Serial Line IP)
— 串行线路的 Internet数据链路层协议
PPP ( Point-to-Point Protocol)
— 点 -点协议
SLIP与 PPP用于串行通信的拨号线路上,是目前家庭计算机或公司用户通过 ISP接到 Internet主要的协议。
《计算机网络》第 4章 数据链路层
42
4.5.2 SLIP协议
SLIP出现于 20世纪 80年代初,最早是在 BSD
UNIX 4.2版操作系统上实现的 ;
SLIP协议支持 TCP/IP协议 ;
对数据报进行了简单的封装,然后来用 RS-232
接口串行线路进行传输 ;
SLIP通常也用来将远程终端连接到 UNIX主机,
也可通过租用或拨号串行线路进行主机到路由器,以及路由器到路由器的通信。
《计算机网络》第 4章 数据链路层
43
典型的 SLIP接入方式
Internet的家庭或小型公司用户通过调制解调器、电话网络连接到 ISP的调制解调器;
ISP的调制解调器再通过它的路由器接入 Internet;
SLIP系统一般可以发送和接收 1006B的 IP数据报。
《计算机网络》第 4章 数据链路层
44
SLIP协议的帧结构
RFC 1055文件对 SLIP帧格式进行了讨论 ;
SLIP帧头与帧尾的,CO”,是协议使用的唯一的一个控制字符 ;
CO的二进制编码比特序列是 1000011 0000000;
CO的使用将影响 SLIP帧数据的透明性 ;
I P 数据包End End
I P 数据包
C0 C0
C 0 在数据传送中以“D B,“D C,表示
D B 在数据传送中以“D B,“D D,表示
《计算机网络》第 4章 数据链路层
45
SLIP协议的缺点
使用 SLIP协议时,通信的双方都必须知道对方的 IP地址,因为 SLIP协议没有为它们提供相互交换地址信息的方法;
没有设置协议类型字段,不具备同时处理多种网络层协议的能力;
没有校验和字段,差错控制功能由高层的协议承担;
SLIP协议并不是 Internet的协议标准,因此不同版本的之间就会存在着差别,使得互连变得困难 。
《计算机网络》第 4章 数据链路层
46
4.5.3 CSLIP协议
SLIP协议通常运行于传输速率相对较低的串行线路上 ;
在常用于 Telnet之类的应用程序中,人们提出了一种压缩的 SLIP( CSLIP ) 协议 ;
RFC 1144对 CSLIP进行了定义 ;
Telnet是一种交互式的应用程序,每次常常只传送几个字节的信息,通信效率低。
I P 报头( 2 0 位) T C P 报头( 2 0 位) 数据压缩T C P / I P 报头
( 3 到5 位)
数据
S L I P 帧:
C S L I P 帧:
《计算机网络》第 4章 数据链路层
47
4.5.4 PPP协议基本特点
PPP协议是 Internet标准,RFC 1660,RFC 1661定义了 PPP协议与帧结构;
PPP协议处理了差错检测,支持面向字符型协议与面向比特型协议,可以支持 IP协议及其他一些网络层协议
(例如 IPX协议);
PPP协议不仅在拨号电话线,并且在路由器 ─路由器之间的专用线上广泛应用 ;
PPP协议是在大多数家庭个人计算机和 ISP之间使用的协议,它可以作为在高速广域网和社区宽带网协议族的一部分。
《计算机网络》第 4章 数据链路层
48
PPP信息帧格式
标志 ( flag),01111110
地址 ( address),值为,FF”( 11111111),表示网中所有的站都接收该帧
控制 ( control),值为,03” ( 00000011)
协议 ( protocol),长度为 2字节,它标识出网络层协议数据域的类型 。 常用的网络层协议的类型主要有:
0021H— TCP/IP
0023H— OSI
0027H— DEC
数据字段,长度可变标志字段
( 7 E )
地址字段
( F F )
控制字段
( 0 3 ) 信息字段帧校验字段
( F C S )
标志字段
( 7 E )
协议字段
( C 0 2 1 )
《计算机网络》第 4章 数据链路层
49
链路控制帧( LCP) 与网络控制帧( NCP)
链路控制帧( LCP)
网络控制帧( NCP)
标志字段
(7E)
地址字段
(FF)
控制字段
(03) 链路控制数据帧校验字段
(FCS)
标志字段
(7E)
协议字段
( C 0 2 1 )
标志字段
(7E)
地址字段
(FF)
控制字段
(03) 网络控制数据帧校验字段
(FCS)
标志字段
(7E)
协议字段
( 8 0 2 1 )
《计算机网络》第 4章 数据链路层
50
小结
物理传输线路上传输数据信号是有差错的;
误码率是指二进制比特在数据传输过程中被传错的概率;
数据链路层是将一条原始的,有差错的物理线路变为对网络层无差错的数据链路;
数据链路层完成链路管理,帧传输,流量控制,
差错控制等功能;
《计算机网络》第 4章 数据链路层
51
数据链路层协议基本可以分为两类:面向字符型与面向比特型;
数据链路层的数据传送单位是帧,帧具有固定的结构;
HDLC的帧分为信息帧 ( I帧 ),无编号帧 ( U
帧 ) 与监控帧 ( S帧 ) ;
Internet数据链路层主要的协议是 SLIP与 PPP
协议;
PPP协议不仅用于拨号电话线,并且可以用于路由器 ─路由器之间的专用线路上 。