0
第三章 数据链路层
1
主要内容
*使用广播信道的数据链路层4
*使用广播信道的以太网5
数据链路层的地位1
*使用点对点信道的数据链路层2
*点对点协议 PPP3
*扩展以太网6
*高速以太网7
8
第三章 数据链路层
2
第三章 数据链路层( 1)
3
主要内容第三章 数据链路层( 1)
数据链路层的地位
*使用点对点信道的数据链路层
*点对点协议 PPP
4
数据链路层的简单模型数据链路层的地位第三章 数据链路层( 1)
局域网 广域网主机 H1 主机 H
2
路由器 R1 路由器 R
2
路由器 R3
电话网 局域网链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层
R1 R2 R3
H1 H2从层次上来看数据的流动图 3-1 数据链路层的地位主机 H1 向 H2 发送数据
5
数据链路层的简单模型数据链路层的地位第三章 数据链路层( 1)
局域网 广域网主机 H1 主机 H
2
路由器 R1 路由器 R
2
路由器 R3
电话网 局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层
R1 R2 R3
H1 H2仅从数据链路层观察帧的流动图 3-2 只考虑数据在数据链路层的流动
6
数据链路层使用的信道主要有以下两种类型
点对点信道。 这种信道使用 一对一 的点对点通信方式。
广播信道。 这种信道使用 一对多 的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
数据链路层的地位第三章 数据链路层( 1)
7
,链路,和,数据链路,
链路的概念所谓 链路 (link),在这里是指一条 无源的点到点的物理线路段,且中间没有任何其它的交换结点,如图 3-3所示 。
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
A B
图 3-3 链路概念的示意图不存在
8
,链路,和,数据链路,
数据链路的概念当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的 规程 ( procedure) 来控制这些数据的传输 。 把实现相关规程的硬件和软件加到链路上,就构成了数据链路 。 数据链路就象一条数字管道,可以在它上面进行数据 ( 以 帧 为单位 ) 通信 。
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
9
数据链路层的协议数据单元 ——帧
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
IP 数据报
1010… …0110
帧取出数据链路层网络层链路结点 A 结点 B
物理层数据链路层结点 A 结点 B

(a)
(b)
发送帧接收链路
IP 数据报
1010… …0110
帧装入图 3-4 使用点对点信道的数据链路层
10
数据链路层的三个基本问题
封装成帧
透明传输
差错控制
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
11
封装成帧
封装成帧 (framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
帧结束帧首部
IP 数据报帧的数据部分 帧尾部
MTU
数据链路层的帧长开始发送帧开始图 3-5 用帧首部和尾部进行封装成帧
12
封装成帧
首部和尾部的一个重要作用就是进行 帧定界 。
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
图 3-5 用帧首部和尾部进行封装成帧
SOH 装在帧中的数据部分帧帧开始符 帧结束符发送在前
EOT
13
透明传输
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
SOH EOT
出现了,EOT”
被接收端当作无效帧而丢弃被接收端误认为是一个帧数据部分
EOT
完整的帧图 3-6 数据部分恰好出现与 EOT一样的代码
14
解决透明传输问题
发送端的数据链路层在数据中出现控制字符,SOH”
或,EOT”的前面插入一个转义字符,ESC”(其十六进制编码是 1B)。
字节填充 (byte stuffing)或 字符填充 (character
stuffing)—— 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
15
用字节填充法解决透明传输的问题
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
SOH
SOH EOT SOHESC
ESC EOT ESC SOH ESC ESC ESC SOH
原始数据
EOT
EOT
经过字节填充后发送的数据字节填充字节填充字节填充字节填充发送在前帧开始符 帧结束符
SOH
图 3-7 用字节填充法解决透明传输问题
16
差错控制
在传输过程中可能会产生 比特差错,1 可能会变成 0
而 0 也可能变成 1。
在一段时间内,传输错误的比特占所传输比特总数的比率称为 误码率 BER (Bit Error Rate)。
实际通信链路并非理想的,它不可能使误码率下降到零。
因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
目前,在数据链路层传送的帧中,广泛使用了 循环冗余检验 CRC 的检错技术。
3.1 使用点对点信道的数据链路层第三章 数据链路层( 1)
17
CRC方法的检错原理
设要被传输的二进制比特流长度为 m,引入 n个附加比特,作为所谓的 校验比特 ;
将 m位要被传输的数据比特与 n位校验比特 组合 在一起进行传输;
接收 方根据所收到的 n+m个二进制比特判断所收数据是否 正确 。
第三章 数据链路层( 1)
3.1 使用点对点信道的数据链路层
18
如何确定校验比特的值?
设 M代表 m位要传输的数据,N代表 n个 0,有 W为:
W= MN
再设 P为一个 给定 的二进制比特串,P的长度为 (n+1)位 。
n个校验位的取值等于 W除以 P所得余数 。 其中,运算过程遵从
mod 2运算法则 。
例,设发送方要发送的数据为 10110101,校验位取 4位,有
W= MN= 101101010000
P= 10011 (给定)
由 101101010000/10011
得余数 R 1110
实际被传输数据为 101101011110
第三章 数据链路层( 1)
3.1 使用点对点信道的数据链路层
19
接收方如何判断所收数据的正确性?
设接收方收到的数据为 U,用 U除以同一个 P,若余数为 0,则传输正确;反之,传输中出现错误,接收方通知发送方重发 。
例,
接受方收到的数据为
U= 101101011110
问,U/P的余数= 101101011110/10011=?
若接受方收到的数据为
U= 101001011110
问,U/P的余数= 101001011110/10011=?
第三章 数据链路层( 1)
3.1 使用点对点信道的数据链路层
20
P的值是如何确定的?
从前面的讨论可以看出,P的取值直接关系到 CRC方法检错的能力。事实上 P的取值由一套国际标准约束,这套国际标准称之为 生成多项式 。
例,采用 16个校验位的生成多项式为
CRC_16=X16+X15+X2+1
对应的 P为
11000000000000101
对前叙例子,对应的生成多项式为
CRC_4=X4+X+1
第三章 数据链路层( 1)
3.1 使用点对点信道的数据链路层
21
结论
CRC校验具有很强的校验能力,且其校验能力与生成多项式的构成密切相关,生成多项式的幂次越高,检错能力越强;
CRC校验不可能做到 100%的检错;
CRC校验是通过牺牲一定的网络带宽来换取传输错误的检测。
第三章 数据链路层( 1)
3.1 使用点对点信道的数据链路层
22
理解,可靠传输,的概念。
所谓,可靠传输,就是:数据链路层的发送端发送什么,
在接收端就收到什么。
传输错误可分为两大类,一类 就是前面所说的 比特差错,
而 另一类 传输差错是收到的帧 并没有出现比特差错,但是却出现了 帧丢失、帧重复或帧失序 。
传输的数据 帧 无 帧丢失、帧重复或帧失序现象,我们说数据在链路层是 可靠传输 的,是,无传输差错,的 。
要在数据链路层实现无差错传输,那么,在 CRC检错的基础上,还应 增加帧编号、确认和重传机制 。
第三章 数据链路层( 1)
3.1 使用点对点信道的数据链路层
23
1,PPP协议的特点
现在全世界使用得最多的数据链路层协议是 点对点协议 PPP (Point-to-Point Protocol)。
用户使用拨号电话线接入因特网时,一般都是使用
PPP 协议,如图 3-8所示。
第三章 数据链路层( 1)
3.2 点对点协议用户至因特网已向因特网管理机构申请到一批 IP 地址
ISP接入网
PPP 协议图 3-8
24
IETF认为在设计 PPP协议时必须考虑以下多方面的需求:
简单 —— 这是 首要的要求
封装成帧
透明性
多种网络层协议
多种类型链路
差错检测
检测连接状态
最大传送单元
网络层地址协商
数据压缩协商
在 RFC1547中还明确了 PPP协议不需要的功能:
纠错
流量控制
序号
多点线路
半双工或单工链路第三章 数据链路层( 1)
3.2 点对点协议
25
PPP 协议有三个组成部分
一个将 IP 数据报 封装到串行链路的方法。
链路控制协议 LCP (Link Control Protocol)。
用来建立,配置和测试数据链路连接的协议,通信双方可借助该协议协商一些通信选项,如通信速率等 。
网络控制协议 NCP (Network Control Protocol)。
用来支持不同的网络层协议,如 IP,OSI的网络层等,同时还承担 IP地址的分配任务 。
第三章 数据链路层( 1)
3.2 点对点协议
26
2,PPP 协议的帧格式第三章 数据链路层( 1)
3.2 点对点协议
PPP 有一个 2 个字节的协议字段。
当协议字段为 0x0021 时,PPP 帧的信息字段就是 IP 数据报。
若为 0xC021,则信息字段是 PPP 链路控制数据。
若为 0x8021,则表示这是网络控制数据。
1 21 1字节 1 2不超过 1500 字节
PPP 帧先发送
7E FF 03
F A C FCS F
7E协议 信 息 部 分首部 尾部
27
标志字段 F = 0x7E (符号,0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是
01111110)。
地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
控制字段 C 通常置为 0x03。
注意,PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
第三章 数据链路层( 1)
3.2 点对点协议
28
考虑一个问题因 PPP协议采用,7E” 作为帧的起始和结束标志,若信息字段中出现和标志字段一样的比特 ( 7E) 组合,怎么办?
PPP协议的透明传输原理
当 PPP 用在 异步传输 时,就使用一种特殊的 字符填充法 。
当 PPP 用在 同步传输( SONET/SDH 链路 ) 链路时,协议规定采用硬件来完成比特填充(零比特填充)。
第三章 数据链路层( 1)
3.2 点对点协议
29
PPP字符填充法为此 PPP协议引入了三条规则:
规则一:信息字段中出现的每 一个 7E字节都要变换成 2字节序列 7D5E( 01111101和 01011110),以破坏 7E字节的组合 。
7E 7D5E
规则二,若 信息字段中 出现一个 7D的字节,不管其后跟随的是不是 5E,都要将其变换成 2字节序列 7D5D(以破坏 7D5E的组合)。
7D 7D5D
规则三,若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
第三章 数据链路层( 1)
3.2 点对点协议
30
例如,
被传送的数据为:
变换后的数据为:
接收处理,接收方在接收数据的过程中,若遇到 7D字节,则判断其后所跟字节是 5E还是 5D。 若是 5E,则将 7D5E转换成 7E;若是
5D则将 7D5D转换成 7D。
3.2 点对点协议第三章 数据链路层( 1)
7E 7D
7D 5E 7D 5D
31
PPP协议的零比特填充第三章 数据链路层( 1)
3.2 点对点协议零比特填充法的思想:
发送,在发送端,当一串比特流尚未加上标志字段时,
先扫描整个帧,只要发现有 5个连续 1,则立即填入一个 0。
显然,经过此方法处理后的数据,肯定不会出现 6个连续 1。
接收,在接收一个帧时,先找到 F字段以确定帧的边界。接着再对其中的比特流进行扫描。每当发现 5个连续 1
时,就将此后的一个,0” 删除,以还原成原来的比特流。
32
思考:
被发送的原始数据,0101111111111001010
被发送端处理后的数据???
第三章 数据链路层( 1)
3.2 点对点协议数据中某一段比特组合恰好出现和 F 字段一样的情况
0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0
会被误认为是 F 字段发送端在 5 个连 1 之后填入 0 比特再发送出去填入 0 比特
0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
在接收端将 5 个连 1 之后的 0 比特删除,恢复原样在此位置删除填入的 0 比特
0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
33
考虑 PPP协议是否提供了,可靠传输,服务?
第三章 数据链路层( 1)
3.2 点对点协议
不提供使用序号和确认的可靠传输
PPP 协议之所以不使用序号和确认机制是出于以下的考虑:
在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。
在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
帧检验序列 FCS 字段可保证无差错接受。
34
第三章 数据链路层( 1)
3.2 点对点协议
3,PPP协议的工作状态
当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并 建立一条物理连接 。
PC 机与路由器发送一系列的 LCP 分组(封装成多个
PPP 帧),选择一些 PPP 参数,建立 LCP链路 。
然后,进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,建立 NCP链路,使 PC 机成为因特网上的一个主机。
通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
35
第三章 数据链路层( 1)
3.2 点对点协议设备之间无链路链路静止链路建立鉴别网络层协议链路打开链路终止物理链路
LCP 链路已鉴别的 LCP 链路已鉴别的 LCP 链路和 NCP 链路物理层连接建立
LCP 配置协商鉴别成功或无需鉴别
NCP 配置协商链路故障或关闭请求
LCP 链路终止鉴别失败
LCP 配置协商失败
36
课后练习
3-03
3-08
3-09
3-10
第三章 数据链路层( 1)