物理层标准举例
RS-232-C 接口标准
? DTE (Data Terminal Equipment) 是 数
据终端设备,是具有一定的数据处理
能力和发送、接收数据能力的设备。
? DCE (Data Circuit-terminating Equipment)
是 数据电路端接设备,它在 DTE 和传输线
路之间提供信号变换和编码的功能,并且负
责建立、保持和释放数据链路的连接。
DTE 通过 DCE
与通信传输线路相连
DTE
DCE DCE 串行比特传输
信号线与控制线 用户环境
通信环境 用户设施
通信设施
DTE
信号线与控制线
用户设施
用户环境
RS-232/V.24 的信号定义
(1) 保护地
(2) 发送数据
(3) 接收数据
(4) 请求发送
(5) 允许发送
(6) DCE 就绪
(7) 信号地
(8) 载波检测
(20) DTE 就绪
(22) 振铃指示
DTE DCE
计算机

终端 调制解调器
两个 DTE 通过 DCE
进行通信的例子
RS-232/ V.24
接口 调制解调器
DTE-A DTE-B
DCE-A DCE-B
RS-232/ V.24
接口
调制解调器
网 络
利用调制解调器
与两台计算机相连
插头 插头 插座 插座
计算机 虚调制解调器 计算机
( 1)保护地
( 2)发送
( 3)接收
( 4)请求发送
( 5)允许发送
( 6) DCE 就绪
( 7)信号地
( 8)载波检测
( 20) DTE 就绪
( 22)振铃指示
( 1)保护地
( 2)发送
( 3)接收
( 4)请求发送
( 5)允许发送
( 6) DCE 就绪
( 7)信号地
( 8)载波检测
( 20) DTE 就绪
( 22)振铃指示
数据链路层的基本概念
? 链路 (link)是一条无源的点到点的物理线
路段,中间没有任何其他的交换结点。
? 一条链路只是一条通路的一个组成部分。
? 数据链路 (data link) 除了物理线路外,还必须
有通信协议来控制这些数据的传输。若把实现
这些协议的硬件和软件加到链路上,就构成了
数据链路。
? 现在最常用的方法是使用适配器(即网卡)来实现
这些协议的硬件和软件。
? 一般的适配器都包括了数据链路层和物理层这两层
的功能。
数据链路层像个数字管道
? 常常在两个对等的数据链路层之间画出
一个数字管道,而在这条数字管道上传
输的数据单位是 帧 。
? 早期的数据通信协议曾叫作 通信规程
(procedure)。因此在数据链路层,规程
和协议是同义语。
结点 结点 帧 帧
数据链路层的简单模型
局域网 广域网
主机 H1 主机 H
2
路由器 R1 路由器
R2 路由器 R3
电话网 局域网
主机 H1 向 H2 发送数据
链路层
应用层
运输层
网络层
物理层
链路层
应用层
运输层
网络层
物理层
链路层
网络层
物理层
链路层
网络层
物理层
链路层
网络层
物理层
R1 R2 R3
H1 H2 从层次上来看数据的流动
数据链路层的简单模型
( 续)
局域网 广域网
主机 H1 主机 H
2
路由器 R1 路由器
R2 路由器 R3
电话网 局域网
主机 H1 向 H2 发送数据
链路层
应用层
运输层
网络层
物理层
链路层
应用层
运输层
网络层
物理层
链路层
网络层
物理层
链路层
网络层
物理层
链路层
网络层
物理层
R1 R2 R3
H1 H2 仅从数据链路层观察帧的流动
停止等待协议
完全理想化的数据传输
数据链路层


A
缓存


B
数据链路
AP2 AP1
缓存
发送方 接收方

高层

两种情况的对比(传输均无差错)
A B
送主机 B
送主机 B
送主机 B
送主机 B
A B
送主机 B
送主机 B


不需要流量控制 需要流量控制
实用的停止等待协议


A B






(a) 正常情况
A B



(c) 数据帧丢失


tout



A B





(d) 确认帧丢失


tout 丢


A B



(b) 数据帧出错


出错
四种情况
? 1974年,IBM 公司推出了面向比特的规程
SDLC (Synchronous Data Link Control)。
? 后来 ISO 把 SDLC 修改后称为 HDLC (High-
level Data Link Control),译为高级数据链路控
制,作为国际标准 ISO 3309。
? CCITT 则将 HDLC 再修改后称为链路接入规程
LAP (Link Access Procedure)。不久,HDLC 的
新版本又把 LAP 修改为 LAPB,,B”表示平衡
型 (Balanced),所以 LAPB 叫做链路接入规程
(平衡型 )。
HDLC 的帧结构
? 标志字段 F (Flag) 为 6 个连续 1 加上两
边各一个 0 共 8 bit。在接收端只要找到
标志字段就可确定一个帧的位置。
比特 8 8 8 可变 16 8
信息
Info
标志
F
标志
F
地址
A
控制
C
帧检验序列
FCS
透明传输区间
FCS 检验区间
零比特填充法
? HDLC 采用零比特填充法使一帧中两个 F
字段之间不会出现 6 个连续 1。
? 在发送端,当一串比特流数据中有 5 个
连续 1 时,就立即填入一个 0。
? 在接收帧时,先找到 F 字段以确定帧的
边界。接着再对比特流进行扫描。每当
发现 5 个连续 1 时,就将其后的一个 0
删除,以还原成原来的比特流。
零比特的填充与删除
数据中某一段比特组合恰好
出现和 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
其他字段
? 地址字段 A 是 8 bit。
? 帧检验序列 FCS 字段共 16 bit。所检验
的范围是从地址字段的第一个比特起,
到信息字段的最末一个比特为止。
? 控制字段 C 共 8 bit,是最复杂的字段。
HDLC 的许多重要功能都靠控制字段来实
现。
因特网的点对点协议 PPP
? 现在全世界使用得最多的数据链路层协
议是 点对点协议 PPP (Point-to-Point
Protocol)。
? 用户使用拨号电话线接入因特网时,一
般都是使用 PPP 协议。
用户拨号入网的示意图
路由器
调制解调器
调制解调器
因特网服务提供者 (ISP) 用户家庭
拨号电话线
使用 TCP/IP 的
PPP 连接
使用 TCP/IP 的
客户进程
路由选择
进程



网 …
PC 机
PPP 协议
? 1992 年制订了 PPP 协议。经过 1993 年
和 1994 年的修订,现在的 PPP 协议已
成为因特网的正式标准 [RFC 1661]。
? PPP协议有三个组成部分
? 一个将 IP 数据报封装到串行链路的方法。
? 链路控制协议 LCP (Link Control Protocol)。
? 网络控制协议 NCP (Network Control
Protocol)。
PPP 协议的帧格式
? PPP 的帧格式和 HDLC 的相似。
? 标志字段 F 仍为 0x7E (符号, 0x”表示
后面的字符是用十六进制表示。十六进
制的 7E 的二进制表示是 01111110)。
? 地址字段 A 只置为 0xFF。地址字段实际
上并不起作用。
? 控制字段 C 通常置为 0x03。
? PPP 是面向字节的,所有的 PPP 帧的长
度都是整数字节。
PPP 协议的帧格式
? PPP 有一个 2 个字节的协议字段。
? 当协议字段为 0x0021 时,PPP 帧的信息字段就是
IP 数据报。
? 若为 0xC021,则信息字段是 PPP 链路控制数据。
? 若为 0x8021,则表示这是网络控制数据。
IP 数据报
1 2 1 1 字节 1 2 不超过 1500 字节
PPP 帧
先发送
7E FF 03
F A C FCS F
7E 协议 信 息 部 分
首部 尾部
不提供使用序号和确认
的可靠传输
? PPP 协议之所以不使用序号和确认机制是
出于以下的考虑,
? 在数据链路层出现差错的概率不大时,使用比
较简单的 PPP 协议较为合理。
? 在因特网环境下,PPP 的信息字段放入的数
据是 IP 数据报。 数据链路层的可靠传输并不
能够保证网络层的传输也是可靠的。
? 帧检验序列 FCS 字段可保证无差错接受。
PPP 协议的工作状态
? 当用户拨号接入 ISP 时,路由器的调制解调器对
拨号做出确认,并建立一条物理连接。
? PC 机向路由器发送一系列的 LCP 分组(封装成
多个 PPP 帧)。
? 这些分组及其响应选择一些 PPP 参数,和进行
网络层配置,NCP 给新接入的 PC机分配一个临
时的 IP 地址,使 PC 机成为因特网上的一个主
机。
? 通信完毕时,NCP 释放网络层连接,收回原来分
配出去的 IP 地址。接着,LCP 释放数据链路层
连接。最后释放的是物理层的连接。
PPP 协议的状态图
建立
失败
失败
NCP 配置
鉴别成功
通信
结束
载波
停止
检测到
载波
双方协商
一些选项
鉴别
网络
打开 终止
静止
提供数据报服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
H1 向 H5 发送分组
H2 向 H6 发送分组
路径可能变化
网络随时接受主机发送的分组(即数据报)
网络为每个分组独立地选择路由。
提供数据报服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
网络尽最大努力地将分组交付给目的主机,
但网络对源主机没有任何承诺。
提供数据报服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
网络不保证所传送的分组不丢失
也不保证按源主机发送分组的先后顺序
以及在时限内必须将分组交付给目的主机
提供数据报服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
当网络发生拥塞时
网络中的结点可根据情况将一些分组丢弃
提供数据报服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
数据报提供的服务是不可靠的,
它不能保证服务质量。
实际上, 尽最大努力交付, 的服务
就是没有质量保证的服务。
提供虚电路服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
H1 要和 H5 通信
主机 H1 先向主机 H5 发出一个特定格式的控制信息分组,
要求进行通信,同时寻找一条合适路由。若主机 H5 同意
通信就发回响应,然后双方就建立了虚电路。
虚电路
H1 向 H5 发送的
所有分组都沿此
虚电路传送。
提供虚电路服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
同理,主机 H2 和主机 H6 通信之前,也要建立虚电路。
提供虚电路服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
在虚电路建立后,网络向用户提供的服务就好像在
两个主机之间建立了一对穿过网络的 数字管道 。
所有发送的分组都按顺序进入管道,然后按照
先进先出的原则沿着此管道传送到目的站主机。
提供虚电路服务的特点
H1
H5
H2 H4
H3
A
C
D
B
H6
E
分组交换网
到达目的站的分组顺序就与发送时的顺序一致,
因此网络提供虚电路服务对通信的
服务质量 QoS (Quality of Service)有较好的保证。
两种服务的思路来源不同
? 虚电路服务的思路来源于传统的电信网。
? 电信网负责保证可靠通信的一切措施,因此
电信网的结点交换机复杂而昂贵。
? 数据报服务力求使网络生存性好和使对网
络的控制功能分散,因而只能要求网络提
供尽最大努力的服务。
? 可靠通信由用户终端中的软件(即 TCP)来
保证。
数据报服务与虚电路服务之争
? 让网络只提供数据报服务就可大大简化网
络层的结构。
? 技术的进步使得网络出错的概率已越来越
小,因而让主机负责端到端的可靠性不但
不会给主机增加更多的负担,反而能够使
更多的应用在这种简单的网络上运行。
? 因特网发展到今天的规模,充分说明了在
网络层提供数据报服务是非常成功的。
数据报服务和虚电路服务
优缺点的归纳
对比的方面 虚电路服务 数据报服务
思路 可靠通信应当 可靠通信应当
由网络来保证 由用户主机来保证
连接的建立 必须有 不要
目的站地址 仅在连接建立阶段 每个分组都有
使用,每个分组使 目的站的全地址
用短的虚电路号
数据报服务和虚电路服务
优缺点的归纳
对比的方面 虚电路服务 数据报服务
分组的转发 属于同一条虚电路 每个分组独立选择
的分组均按照同一 路由进行转发
路由进行转发
当结点出 所有通过出故障的 故障结点可能丢失
故障时 结点的虚电路 分组,一些路由
均不能工作 可能会发生变化
数据报服务和虚电路服务
优缺点的归纳
对比的方面 虚电路服务 数据报服务
分组的顺序 总是按发送顺序 到达目的站时不一定
到达目的站 按发送顺序
端到端的 可以由分组交换网 由用户主机负责
差错处理和 负责也可以由用户
流量控制 主机负责
RIP
(Routing Information Protocol)
1,工作原理
? RIP 是一种分布式的基于 距离向量 的路
由选择协议。
? RIP 协议要求网络中的每一个路由器都
要维护从它自己到其他每一个目的网络
的距离记录。
“距离, 的定义
? 从一路由器到 直接连接 的网络的距离定
义为 1。
? 从一个路由器到非直接连接的网络的距
离定义为所经过的路由器数加 1。
? RIP 协议中的, 距离, 也称为, 跳
数, (hop count),因为每经过一个路由
器, 跳数就加 1。
“距离, 的定义
? RIP 认为一个好的路由就是它通过的路由器的
数目少, 即, 距离短, 。
? RIP 允许一条路径最多只能包含 15 个路由器 。
?, 距离, 的最大值为 16 时即相当于不可达 。
可见 RIP 只适用于小型互联网 。
? RIP 不能在两个网络之间同时使用多条路由 。
RIP 选择一个具有最少路由器的路由 ( 即最短
路由 ), 哪怕还存在另一条高速 (低时延 )但路
由器较多的路由 。
RIP 协议的三个要点
? 仅和相邻路由器交换信息 。
? 交换的信息是当前本路由器所知道的全
部信息, 即自己的路由表 。
? 按固定的时间间隔交换路由信息, 例如,
每隔 30 秒 。
路由表的建立
? 路由器在刚刚开始工作时, 只知道到直接连
接的网络的距离 ( 此距离定义为 1) 。
? 以后, 每一个路由器也只和数目非常有限的
相邻路由器交换并更新路由信息 。
? 经过若干次更新后, 所有的路由器最终都会
知道到达本自治系统中任何一个网络的最短
距离和下一跳路由器的地址 。
? RIP 协议的 收敛 (convergence)过程较快, 即
在自治系统中所有的结点都得到正确的路由
选择信息的过程 。
距离向量算法
收到相邻路由器(其地址为 X)的一个 RIP 报文,
(1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地
址都改为 X,并将所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤,
若项目中的目的网络不在路由表中,则将该项目加到路由表中。
否则
若下一跳字段给出的路由器地址是同样的,则将收到的项 目
替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路
由器记为不可达的路由器,即将距离置为 16(距离为 16表
示不可达)。
(4) 返回。
路由器之间交换信息
? RIP协议让互联网中的所有路由器都和
自己的相邻路由器不断交换路由信息,
并不断更新其路由表, 使得从每一个路
由器到每一个目的网络的路由都是最短
的 ( 即跳数最少 ) 。
? 虽然所有的路由器最终都拥有了整个自
治系统的全局路由信息, 但由于每一个
路由器的位置不同, 它们的路由表当然
也应当是不同的 。
1 1 ?
2 1 ?
3 1 ?
F
E
D
C
B
A
5 1 ?
6 1 ? 2 1 ? 5 1 ?
3 1 ?
4 1 ?
4 1 ?
6 1 ?
1 1 ?
5 1 ?
一开始,各路由表只有到相邻路由器的信息
网 3
网 2
网 4
网 6
网 5 网 1
“4”表示“从本路由
器到网 4”,1”表示“距离是 1”
“?”表示“直接交付”
1 1 ?
2 1 ?
3 1 ?
F
E
D
C
B
A
5 1 ?
6 1 ? 2 1 ? 5 1 ?
3 1 ?
4 1 ?
4 1 ?
6 1 ?
1 1 ?
5 1 ?
路由器 B 收到相邻路由器 A 和 C 的路由表
网 3
网 2
网 4
网 6
网 5 网 1
1 2 A
2 2 A
3 1 ?
4 1 ?
6 2 C
更新后
A 说:“我到网 1 的距离是 1。”
因此 B 现在也可以到网 1,
距离是 2,经过 A。”
1 1 ?
2 1 ?
3 1 ?
F
E
D
C
B
A
5 1 ?
6 1 ? 2 1 ? 5 1 ?
3 1 ?
4 1 ?
4 1 ?
6 1 ?
1 1 ?
5 1 ?
路由器 B 收到相邻路由器 A 和 C 的路由表
网 3
网 2
网 4
网 6
网 5 网 1
1 1 ?
2 1 ?
3 1 ?
4 1 ?
6 1 ?
1 2 A
2 2 A
3 1 ?
4 1 ?
6 2 C
更新后
A 说:“我到网 2 的距离是 1。”
因此 B 现在也可以到网 2,
距离是 2,经过 A。”
1 1 ?
2 1 ?
3 1 ?
F
E
D
C
B
A
5 1 ?
6 1 ? 2 1 ? 5 1 ?
3 1 ?
4 1 ?
4 1 ?
6 1 ?
1 1 ?
5 1 ?
路由器 B 收到相邻路由器 A 和 C 的路由表
网 3
网 2
网 4
网 6
网 5 网 1
1 1 ?
2 1 ?
3 1 ?
4 1 ?
6 1 ?
1 2 A
2 2 A
3 1 ?
4 1 ?
6 2 C
更新后
A 说:“我到网 3 的距离是 1。”
但 B 没有必要绕道经过路由器 A
再到达网 3,因此这一项目不变。
1 1 ?
2 1 ?
3 1 ?
F
E
D
C
B
A
5 1 ?
6 1 ? 2 1 ? 5 1 ?
3 1 ?
4 1 ?
4 1 ?
6 1 ?
1 1 ?
5 1 ?
路由器 B 收到相邻路由器 A 和 C 的路由表
网 3
网 2
网 4
网 6
网 5 网 1
1 1 ?
2 1 ?
3 1 ?
4 1 ?
6 1 ?
1 2 A
2 2 A
3 1 ?
4 1 ?
6 2 C
更新后
C 说:“我到网 4 的距离是 1。”
但 B 没有必要绕道经过路由器 C
再到达网 4,因此这一项目不变。
1 1 ?
2 1 ?
3 1 ?
F
E
D
C
B
A
5 1 ?
6 1 ? 2 1 ? 5 1 ?
3 1 ?
4 1 ?
4 1 ?
6 1 ?
1 1 ?
5 1 ?
路由器 B 收到相邻路由器 A 和 C 的路由表
网 3
网 2
网 4
网 6
网 5 网 1
1 1 ?
2 1 ?
3 1 ?
4 1 ?
6 1 ?
1 2 A
2 2 A
3 1 ?
4 1 ?
6 2 C
更新后
C 说:“我到网 6 的距离是 1。”
因此 B 现在也可以到网 6,
距离是 2,经过 C。”
最终所有的路由器的路由表都更新了
F
E
D
C B
A
1 1 ?
2 1 ?
3 1 ?
4 2 B
5 2 E
6 3 B
1 1 ?
2 2 A
3 2 A
4 3 A
5 1 ?
6 2 F
1 2 E
2 2 D
3 3 C
4 2 C
5 1 ?
6 1 ?
1 3 B
2 3 B
3 2 B
4 1 ?
5 2 F
6 1 ?
网 2
网 6
网 5 网 1
网 3
网 4
1 2 A
2 1 ?
3 2 A
4 3 A
5 1 ?
6 2 F 1 2 A 2 2 A
3 1 ?
4 1 ?
5 3 C
6 2 C
RIP 协议的优缺点
? RIP 存在的一个问题是当网络出现故障时, 要
经过比较长的时间才能将此信息传送到所有
的路由器 。
? RIP 协议最大的优点就是实现简单, 开销较
小 。
? RIP 限制了网络的规模, 它能使用的最大距离
为 15( 16 表示不可达 ) 。
? 路由器之间交换的路由信息是路由器中的完
整路由表, 因而随着网络规模的扩大, 开销
也就增加 。
R2 R1
网 1 网 3 网 2




1 1 ? 1 2 R1
R1 说:“我到网 1 的距离是 1,是直接交付。”
“1”表示“从本路由
器到网 1”,1”表示“距离是 1”
“?”表示“直接交付”
R2 R1
网 1 网 3 网 2




1 1 ? 1 2 R1
R2 说:“我到网 1 的距离是 2,是经过 R1。”
“1”表示“从本路由
器到网 1”
“2”表示“距离是 2”
“R1”表示
经过 R1
R2 R1
网 1 网 3 网 2
R2 R1
网 1 网 3 网 2
网 1出了故障




1 1 ?
1 16 ?
1 2 R1
1 2 R1
R1 说:“我到网 1 的距离是 16 (表示无法到达),
是直接交付。”
但 R2 在收到 R1 的更新报文之前,还发送原来的报文,
因为这时 R2 并不知道 R1 出了故障。
R2 R1
网 1 网 3 网 2
R2 R1
网 1 网 3 网 2
网 1出了故障




1 1 ?
1 16 ?
1 2 R1
1 2 R1
R1 收到 R2 的更新报文后, 误认为可经过 R2 到达
网 1,于是更新自己的路由表, 说:, 我到网 1 的
距离是 3,下一跳经过 R2”。 然后将此更新信息发
送给 R2。
1 3 R2
R2 R1
网 1 网 3 网 2
R2 R1
网 1 网 3 网 2
网 1出了故障




1 1 ?
1 16 ?
1 2 R1
1 2 R1
R2 以后又更新自己的路由表为, 1,4,R1”,表明
,我到网 1 距离是 4,下一跳经过 R1”。
1 3 R2
1 4 R1
R2 R1
网 1 网 3 网 2
R2 R1
网 1 网 3 网 2
网 1出了故障




1 1 ?

1 16 ?
1 3 R2
1 5 R2
1 16 R2
1 2 R1
1 2 R1
1 4 R1
1 16 R1

这样不断更新下去, 直到 R1 和 R2 到网 1 的距离都增
大到 16 时, R1 和 R2 才知道网 1是不可达的 。
这就是 好消息传播得快, 而坏消息传播得慢 。 网络出
故障的传播时间往往需要较长的时间 (例如数分钟 )。 这
是 RIP 的一个主要缺点 。
OSPF
(Open Shortest Path First)
1,OSPF 协议的基本特点
?, 开放, 表明 OSPF 协议不是受某一家厂商控
制,而是公开发表的。
?, 最短路径优先, 是因为使用了 Dijkstra 提出
的最短路径算法 SPF
? OSPF 只是一个协议的名字,它并不表示其他
的路由选择协议不是, 最短路径优先, 。
? 是分布式的 链路状态协议 。
三个要点
? 向本自治系统中所有路由器发送信息,这里
使用的方法是洪泛法。
? 发送的信息就是与本路由器相邻的所有路由
器的链路状态,但这只是路由器所知道的部
分信息。
?, 链路状态, 就是说明本路由器都和哪些路由器相
邻,以及该链路的, 度量, (metric)。
? 只有当链路状态发生变化时,路由器才用洪
泛法向所有路由器发送此信息。
链路状态数据库
(link-state database)
? 由于各路由器之间频繁地交换链路状态信息,
因此所有的路由器最终都能建立一个链路状态
数据库。
? 这个数据库实际上就是全网的拓扑结构图,它
在全网范围内是一致的(这称为链路状态数据
库的同步)。
? OSPF 的链路状态数据库能较快地进行更新,
使各个路由器能及时更新其路由表。 OSPF 的
更新过程收敛得快是其重要优点。
OSPF 的区域 (area)
? 为了使 OSPF 能够用于规模很大的网络,OSPF
将一个自治系统再划分为若干个更小的范围,
叫作 区域 。
? 每一个区域都有一个 32 bit 的区域标识符(用
点分十进制表示)。
? 区域也不能太大,在一个区域内的路由器最好
不超过 200 个。
自治系统 AS
OSPF 划分为两种不同的区域
区域 0.0.0.1 区域 0.0.0.3
主干区域 0.0.0.0
至其他自治系统
R9 R7
R6
R5
R4
R3
R2
R1
网 8
网 6
网 3
网 2
网 1
网 7
区域 0.0.0.2
网 4 网
5 R8
划分区域
? 划分区域的好处就是将利用洪泛法交换链路状
态信息的范围局限于每一个区域而不是整个的
自治系统,这就减少了整个网络上的通信量。
? 在一个区域内部的路由器只知道本区域的完整
网络拓扑,而不知道其他区域的网络拓扑的情
况。
? OSPF 使用层次结构的区域划分。在上层的区
域叫作 主干区域 (backbone area)。主干区域的
标识符规定为 0.0.0.0。主干区域的作用是用来
连通其他在下层的区域。
自治系统 AS
主干路由器
区域 0.0.0.1 区域 0.0.0.3
主干区域 0.0.0.0
至其他自治系统
R9 R7
R6
R5
R4
R3
R2
R1
网 8
网 6
网 3
网 2
网 1
网 7
区域 0.0.0.2
网 4 网
5 R8
自治系统 AS
区域边界路由器
区域 0.0.0.1 区域 0.0.0.3
主干区域 0.0.0.0
至其他自治系统
R9 R7
R6
R5
R4
R3
R2
R1
网 8
网 6
网 3
网 2
网 1
网 7
区域 0.0.0.2
网 4 网
5 R8
OSPF 直接用 IP 数据报传送
? OSPF 不用 UDP 而是直接用 IP 数据报传送,
可见 OSPF 的位置在网络层。
? OSPF 构成的数据报很短。这样做可减少路由
信息的通信量。
? 数据报很短的另一好处是可以不必将长的数据
报分片传送。分片传送的数据报只要丢失一个,
就无法组装成原来的数据报,而整个数据报就
必须重传。
OSPF 的其他特点
? OSPF 对不同的链路可根据 IP 分组的不同服务类
型 TOS 而设置成不同的代价。因此,OSPF 对于
不同类型的业务可计算出不同的路由。
? 如果到同一个目的网络有多条相同代价的路径,
那么可以将通信量分配给这几条路径。这叫作多
路径间的负载平衡。
? 所有在 OSPF 路由器之间交换的分组都具有鉴别
的功能。
? 支持可变长度的子网划分和无分类编址 CIDR。
? 每一个链路状态都带上一个 32 bit 的序号,序号
越大状态就越新。
IP 数据报
OSPF 分组
IP数据报首部 OSPF 分组
OSPF 分组首部 类型 1 至类型 5 的 OSPF 分组
24 字节
0 8 16 31
版 本
路 由 器 标 识 符
类 型 分 组 长 度
检 验 和
鉴 别
比特
鉴 别
区 域 标 识 符
鉴 别 类 型
2,OSPF 的五种分组类型
? 类型 1,问候 (Hello)分组。
? 类型 2,数据库描述 (Database Description)分组。
? 类型 3,链路状态请求 (Link State Request)分组。
? 类型 4,链路状态更新 (Link State Update)分组,
用洪泛法对全网更新链路状态。
? 类型 5,链路状态确认 (Link State Acknowledgment)
分组。
OSPF的基本操作
问候
问候
数据库描述
数据库描述
数据库描述
数据库描述
链路状态请求
链路状态更新
链路状态确认
确定可达性
达到数据库的同步
新情况下的同步
OSPF 使用的是可靠的洪泛法
t
更新报文
ACK报文
R
R
R
R
t1
t2
t3
t4
OSPF 的其他特点
? OSPF 还规定每隔一段时间,如 30 分钟,要
刷新一次数据库中的链路状态。
? 由于一个路由器的链路状态只涉及到与相邻路
由器的连通状态,因而与整个互联网的规模并
无直接关系。因此当互联网规模很大时,
OSPF 协议要比距离向量协议 RIP 好得多。
? OSPF 没有, 坏消息传播得慢, 的问题,据统
计,其响应网络变化的时间小于 100 ms。
网络互连
1 互联网与因特网
2 因特网的网际协议 IP
3 划分子网和构造超网
4 虚拟专用网 VPN 和网络地址转换
NAT
? 互连在一起的网络要进行通信,会遇到许多问题需要
解决,如,
? 不同的寻址方案
? 不同的最大分组长度
? 不同的网络接入机制
? 不同的超时控制
? 不同的差错恢复方法
? 不同的状态报告方法
? 不同的路由选择技术
? 不同的用户接入控制
? 不同的服务(面向连接服务和无连接服务)
? 不同的管理与控制方式
互联网与因特网
? 中间设备 又称为 中间系统 或 中继 (relay)系统。
? 物理层中继系统,转发器 (repeater)。
? 数据链路层中继系统,网桥 或 桥接器 (bridge)。
? 网络层中继系统,路由器 (router)。
? 网桥和路由器的混合物,桥路器 (brouter)。
? 网络层以上的中继系统,网关 (gateway)。
网络互相连接起来
要使用一些中间设备
? 当中继系统是转发器或网桥时,一般并不
称之为网络互连,因为这仅仅是把一个网
络扩大了,而这仍然是一个网络。
? 网关由于比较复杂,目前使用得较少。
? 互联网都是指用路由器进行互连的网络。
? 由于历史的原因,许多有关 TCP/IP 的文献
将网络层使用的路由器称为网关。
网络互连使用路由器
互连网络与虚拟互连网络
网络
网络
网络
网络 网络
(a) 互连网络 (b) 虚拟互连网络
路由器
虚拟互连网络
( IP 网)
虚拟互连网络的意义
? 所谓虚拟互连网络也就是逻辑互连网络, 它的
意思就是互连起来的各种物理网络的异构性本
来是客观存在的, 但是我们利用 IP 协议就可
以使这些性能各异的网络从用户看起来好像是
一个统一的网络 。
? 使用 IP 协议的虚拟互连网络可简称为 IP 网 。
? 使用虚拟互连网络的好处是:当互联网上的主
机进行通信时, 就好像在一个网络上通信一样,
而看不见互连的各具体的网络异构细节 。
路由器在
网际互连中的作用
路由器的构成
? 当主机 A 要向另一个主机 B 发送数据报时,
先要检查目的主机 B 是否与源主机 A 连接在
同一个网络上 。
? 如果是, 就将数据报 直接交付 给目的主机 B 而
不需要通过路由器 。
? 但如果目的主机与源主机 A 不是连接在同一个
网络上, 则应将数据报发送给本网络上的某个
路由器, 由该路由器按照转发表指出的路由将
数据报转发给下一个路由器 。 这就叫作 间接交
付 。
直接交付和间接交付
间接交付 间接交付 间接交付
A
B
C
直接交付
直接交付
直接交付不需要使用路由器
但间接交付就必须使用路由器
典型的路由器的结构
路由
选择
路由选择处理机
路由选择协议
路由表
3
输入端口
3 交换结构
输入端口
输出端口
分组
转发 转发表
分组处理
输出端口


1
1 1
3
3
1 2
2
2
2
3——网络层
2——数据链路层
1——物理层
输入端口对线路上
收到的分组的处理
? 数据链路层剥去帧首部和尾部后, 将分组送到
网络层的队列中排队等待处理 。 这会产生一定
的时延 。
物理层处理 数据链路层 处理
网络层处理
分组排队




输入端口的处理

线




组 查表和转发
输出端口将交换结构传送
来的分组发送到线路
? 当交换结构传送过来的分组先进行缓存 。 数据
链路层处理模块将分组加上链路层的首部和尾
部, 交给物理层后发送到外部线路 。
物理层处理 数据链路层 处理
网络层处理
分组排队
输出端口的处理

线




组 缓存管理




因特网的网际协议 IP
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之
一 。与 IP 协议配套使用的还有四个协议,
? 地址解析协议 ARP
(Address Resolution Protocol)
? 逆地址解析协议 RARP
(Reverse Address Resolution Protocol)
? 因特网控制报文协议 ICMP
(Internet Control Message Protocol)
? 因特网组管理协议 IGMP
(Internet Group Management Protocol)
网际协议 IP 及其配套协议
各种应用层协议
网络接口层
(TELNET,FTP,SMTP 等 )
物理硬件
运输层 TCP,UDP
应用层
ICMP
IP
RARP ARP
与各种网络接口
网际层
IGMP
IP 地址及其表示方法
? 我们把整个因特网看成为一个单一的, 抽
象的网络 。 IP 地址就是给每个连接在因特
网上的主机 ( 或路由器 ) 分配一个在全世
界范围是惟一的 32 bit 的标识符 。
? IP 地址现在由因特网名字与号码指派公司
ICANN (Internet Corporation for Assigned
Names and Numbers)进行分配
IP 地址的编址方法
? 分类的 IP 地址 。 这是最基本的编址方法,
在 1981 年就通过了相应的标准协议 。
? 子网的划分 。 这是对最基本的编址方法的
改进, 其标准 [RFC 950]在 1985 年通过 。
? 构成超网 。 这是比较新的无分类编址方法 。
1993 年提出后很快就得到推广应用 。
分类 IP 地址
? 每一类地址都由两个固定长度的字段组成,
其中一个字段是网络号 net-id,它标志主
机 ( 或路由器 ) 所连接到的网络, 而另一
个字段则是主机号 host-id,它标志该主机
( 或路由器 ) 。
? 两级的 IP 地址可以记为,
IP 地址,:= { <网络号 >,<主机号 >}
(6-1),:= 代表,定义为,
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0 A 类地址
host-id
16 bit
B 类地址
C 类地址 0 1 1
host-id
8 bit
D 类地址 1 1 1 0 多 播 地 址
E 类地址 保 留 为 今 后 使 用 1 1 1 1 0
0 1
IP 地址与硬件地址
TCP 报文
IP 数据报
MAC 帧
应用层数据 首部
首部
尾部 首部
链路层及以下
使用硬件地址
硬件地址
网络层及以上
使用 IP 地址
IP 地址
HA1 HA5 HA4 HA3 HA6
主机 H1 主机 H2
路由器 R1 硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
通信的路径
H1→ 经过 R1 转发 → 再经过 R2 转发 → H2
查找路由表 查找路由表
HA1 HA5 HA4 HA3 HA6
主机 H1 主机 H2
路由器 R1 硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5 HA4 HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4 IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧 MAC 帧
IP 数据报
从协议栈的层次上看数据的流动
HA1 HA5 HA4 HA3 HA6
主机 H1 主机 H2
路由器 R1 硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5 HA4 HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4 IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧 MAC 帧
IP 数据报
从虚拟的 IP 层上看 IP 数据报的流动
HA1 HA5 HA4 HA3 HA6
主机 H1 主机 H2
路由器 R1 硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5 HA4 HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4 IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧 MAC 帧
IP 数据报
在链路上看 MAC 帧的流动
IP1
HA1 HA5 HA4 HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4 IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧 MAC 帧
IP 数据报
在 IP 层抽象的互联网上只能看到 IP 数据报
图中的 IP1→ IP2 表示从源地址 IP1 到目的地址 IP2
两个路由器的 IP 地址并不出现在 IP 数据报的首部中
IP1
HA1 HA5 HA4 HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4 IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧 MAC 帧
IP 数据报
路由器只根据目的站的 IP 地址的网络号进行路由选择
IP1
HA1 HA5 HA4 HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
IP2
IP4 IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
MAC 帧
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧 MAC 帧
IP 数据报
在具体的物理网络的链路层
只能看见 MAC 帧而看不见 IP 数据报
IP1
HA1 HA5 HA4 HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
IP2
IP4 IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
MAC 帧
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧 MAC 帧
IP 数据报
IP层抽象的互联网屏蔽了下层很复杂的细节
在抽象的网络层上讨论问题,就能够使用
统一的、抽象的 IP 地址
研究主机和主机或主机和路由器之间的通信
IP 数据报的格式
? 一个 IP 数据报由首部和数据两部分组成。
? 首部的前一部分是固定长度,共 20 字节,
是所有 IP 数据报必须具有的。
? 在首部的固定部分的后面是一些可选字
段,其长度是可变的。




可变
部分
0 4 8 16 19 24 31
版 本
标志
生 存 时 间 协 议
标 识
服 务 类 型 总 长 度
片 偏 移
填 充
首 部 检 验 和
源 地 址
目 的 地 址
可 选 字 段 (长 度 可 变)
比特
首部长度
0 1 2 3 4 5 6 7
D T R C 未用 优 先 级
数 据 部 分
比特
数 据 部 分 首 部 传送
IP 数据报


分组转发算法
(1) 从数据报的首部提取目的站的 IP 地址 D,得出目的
网络地址为 N。
(2) 若网络 N 与此路由器直接相连, 则 直接 将数据报交
付给目的站 D;否则是 间接 交付, 执行 (3)。
(3) 若路由表中有目的地址为 D 的特定主机路由, 则
将数据报传送给路由表中所指明的下一跳路由器;
否则, 执行 (4)。
(4) 若路由表中有到达网络 N 的路由, 则将数据报传
送给路由表指明的下一跳路由器;否则, 执行 (5)。
(5) 若路由表中有一个默认路由, 则将数据报传送给路
由表中所指明的默认路由器;否则, 执行 (6)。
(6) 报告转发分组出错 。
划分子网
1,从两级 IP 地址到三级 IP 地址
? 在 ARPANET 的早期, IP 地址的设计确
实不够合理 。
? IP 地址空间的利用率有时很低 。
? 给每一个物理网络分配一个网络号会使路由
表变得太大因而使网络性能变坏 。
? 两级的 IP 地址不够灵活 。
? 从 1985 年起在 IP 地址中又增加了一个
,子网号字段,,使两级的 IP 地址变成为
三级的 IP 地址 。
? 这种做法叫作 划分子网 (subnetting) 。划
分子网已成为因特网的正式标准协议。
三级的 IP 地址
? 划分子网纯属一个 单位内部的事情 。 单位对外仍然
表现为没有划分子网的网络 。
? 从主机号 借用 若干个比特作为 子网号 subnet-id,而
主机号 host-id 也就相应减少了若干个比特 。
IP地址,:= {<网络号 >,<子网号 >,<主机号 >}
(6-2)
划分子网的基本思路
? 凡是从其他网络发送给本单位某个主机的 IP 数据报,
仍然是根据 IP 数据报的 目的网络号 net-id,先找到
连接在 本单位网络上的路由器 。
? 然后 此路由器 在收到 IP 数据报后, 再按目的网络号
net-id 和子网号 subnet-id 找到目的子网 。
? 最后就将 IP 数据报直接交付给目的主机 。
划分子网的基本思路(续)
145.13.3.10
145.13.3.11 145.13.3.101 145.13.7.34
145.13.7.35
145.13.7.56
145.13.21.23
145.13.21.9
145.13.21.8 所有到网络 145.13.0.0的分组均
到达此路由器
我的网络地址
是 145.13.0.0
R1
R3
R2
网络
145.13.0.0
一个未划分子网的 B 类网络 145.13.0.0
划分为三个子网后对外仍是一个网络
145.13.3.10 145.13.3.11
145.13.3.101 145.13.7.34
145.13.7.35
145.13.7.56
145.13.21.23
145.13.21.9
145.13.21.8



子网 145.13.21.0
子网 145.13.3.0
子网
145.13.7.0
所有到达网络
145.13.0.0
的分组均到达
此路由器
网络
145.13.0.0
R1 R
3
R2
? 当没有划分子网时, IP 地址是两级结构,
地址的网络号字段也就是 IP 地址的, 因
特网部分,, 而主机号字段是 IP 地址的
,本地部分, 。
? 划分子网后 IP 地址就变成了三级结构 。
划分子网只是将 IP 地址的 本地部分 进行
再划分, 而 不改变 IP 地址的因特网部分 。
划分子网后变成了三级结构
? 从一个 I P数据报的首部并 无法判断 源
主机或目的主机所连接的网络是否进行
了子网的划分 。
? 使用 子网掩码 (subnet mask)可以找出
IP 地址中的子网部分 。
2,子网掩码
IP 地址的各字段和子网掩码
网络号 net-id 主机号 host-id 两级 IP 地址
网络号
net-id host-id 三级 IP 地址
主机号
subnet-id
子网号
子网掩码
因特网部分 本地部分
因特网部分 本地部分
划分子网时
的网络地址
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
net-id subnet-id host-id 为全 0
(IP 地址 ) AND (子网掩码 ) =
网络地址
网络号 net-id 主机号 host-id 两级 IP 地址
网络号
三级 IP 地址
主机号
net-id host-id subnet-id
子网号
子网掩码
因特网部分 本地部分
因特网部分 本地部分
划分子网时
的网络地址
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
net-id subnet-id host-id 为全 0
AND
net-id
net-id host-id 为全 0
net-id
网络地址 A 类

址 默认子网掩码 255.0.0.0
网络地址 B 类

址 默认子网掩码 255.255.0.0
网络地址 C 类

址 默认子网掩码
255.255.255.0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
host-id 为全 0
host-id 为全 0
A 类,B 类和 C 类 IP 地址的默认子网掩码
? 在不划分子网的两级 IP 地址下,从 IP 地
址得出网络地址是个很简单的事。
? 但在划分子网的情况下,从 IP地址却不能惟
一地得出网络地址来,这是因为网络地址取
决于那个网络所采用的子网掩码,但数据报
的首部并没有提供子网掩码的信息。
? 因此分组转发的算法也必须做相应的改动。
使用子网掩码的分组转发过程
128.30.33.1 0
目的网络地址 子网掩码 下一跳
128.30.33.0
128.30.33.128
128.30.36.0
255.255.255.128
255.255.255.128
255.255.255.0
接口 0
接口 1
R2
128.30.33.13
H1 子网 1,网络地址 128.30.33.0
子网掩码 255.255.255.128
128.30.33.130
R1 的路由表(未给出默认路由器)
R1
1
R2
子网 2:网络地址 128.30.33.128
子网掩码 255.255.255.128
H2 128.30.33.138 0
1
128.30.33.129
H3
128.30.36.2
子网 3:网络地址 128.30.36.0
子网掩码 255.255.255.0 128.30.36.12
划分子网后分组的转发举例
主机 H1 要发送分组给 H2
128.30.33.1 0
目的网络地址 子网掩码 下一跳
128.30.33.0
128.30.33.128
128.30.36.0
255.255.255.128
255.255.255.128
255.255.255.0
接口 0
接口 1
R2
R1 的路由表(未给出默认路由器)
128.30.33.13
H1 子网 1,网络地址 128.30.33.0
子网掩码 255.255.255.128
128.30.33.130
R1
1
R2
子网 2:网络地址 128.30.33.128
子网掩码 255.255.255.128
H2 128.30.33.138
0
1
128.30.33.129
H3
128.30.36.2
子网 3:网络地址 128.30.36.0
子网掩码 255.255.255.0 128.30.36.12
要发送的分组的目的 IP 地址,128.30.33.138
请注意,H1 并不知道 H2 连接在哪一个网络上。
H1 仅仅知道 H2 的 IP 地址是
128.30.33.138
因此 H1 首先检查主机 128.30.33.138 是否连接在本网络上
如果是,则直接交付;
否则,就送交路由器 R1,并逐项查找路由表。
128.30.33.1 0
目的网络地址 子网掩码 下一跳
128.30.33.0
128.30.33.128
128.30.36.0
255.255.255.128
255.255.255.128
255.255.255.0
接口 0
接口 1
R2
R1 的路由表(未给出默认路由器)
H1
子网 1,
网络地址 128.30.33.0
子网掩码 255.255.255.128
128.30.33.130
R1
1
R2
子网 2:网络地址 128.30.33.128
子网掩码 255.255.255.128
H2
128.30.33.13
128.30.33.138
0
1
128.30.33.129
H3
128.30.36.2
子网 3:网络地址 128.30.36.0
子网掩码 255.255.255.0 128.30.36.12
主机 H1 首先将
本子网的子网掩码 255.255.255.128
与分组的 IP 地址 128.30.33.138 逐比特相, 与, (AND 操
作 )
255.255.255.128 AND 128.30.33.138 的计算
255 就是二进制的全 1,因此 255 AND xyz = xyz,
这里只需计算最后的 128 AND 138 即可。
12 → 10000000
138 → 10001010
逐比特 AND 操作后,10000000 → 128
255.255.255.128
128,30,33.138
255.255.255.128
逐比特 AND 操作
? H1 的网络地址
因此 H1 必须把分组传送到路由器 R1
然后逐项查找路由表
128.30.33.1 0
目的网络地址 子网掩码 下一跳
128.30.33.0
128.30.33.128
128.30.36.0
255.255.255.128
255.255.255.128
255.255.255.0
接口 0
接口 1
R2
R1 的路由表(未给出默认路由器)
128.30.33.13
H1 子网 1,网络地址 128.30.33.0
子网掩码 255.255.255.128
128.30.33.130
R1
1
R2
子网 2:网络地址 128.30.33.128
子网掩码 255.255.255.128
H2 128.30.33.138
0
1
128.30.33.129
H3
128.30.36.2
子网 3:网络地址 128.30.36.0
子网掩码 255.255.255.0 128.30.36.12
路由器 R1 收到分组后就用路由表中第 1 个项目的
子网掩码和 128.30.33.138 逐比特 AND 操作
128.30.33.1 0
目的网络地址 子网掩码 下一跳
128.30.33.0
128.30.33.128
128.30.36.0
255.255.255.128
255.255.255.128
255.255.255.0
接口 0
接口 1
R2
R1 的路由表(未给出默认路由器)
128.30.33.13
H1 子网 1,网络地址 128.30.33.0
子网掩码 255.255.255.128
128.30.33.130
R1
1
R2
子网 2:网络地址 128.30.33.128
子网掩码 255.255.255.128
H2 128.30.33.138
0
1
128.30.33.129
H3
128.30.36.2
子网 3:网络地址 128.30.36.0
子网掩码 255.255.255.0 128.30.36.12
255.255.255.128 AND 128.30.33.138 = 128.30.33.128
不匹配 !
(因为 128.30.33.128 与路由表中的 128.30.33.0 不一致)
R1 收到的分组的目的 IP 地址,128.30.33.138
不一致
路由器 R1 再用路由表中第 2 个项目的
子网掩码和 128.30.33.138 逐比特 AND 操作
128.30.33.1 0
目的网络地址 子网掩码 下一跳
128.30.33.0
128.30.33.128
128.30.36.0
255.255.255.128
255.255.255.128
255.255.255.0
接口 0
接口 1
R2
R1 的路由表(未给出默认路由器)
128.30.33.13
H1 子网 1,网络地址 128.30.33.0
子网掩码 255.255.255.128
128.30.33.130
R1
1
R2
子网 2:网络地址 128.30.33.128
子网掩码 255.255.255.128
H2 128.30.33.138
0
1
128.30.33.129
H3
128.30.36.2
子网 3:网络地址 128.30.36.0
子网掩码 255.255.255.0 128.30.36.12
255.255.255.128 AND 128.30.33.138 = 128.30.33.128
匹配 !
这表明子网 2 就是收到的分组所要寻找的目的网络
R1 收到的分组的目的 IP 地址,128.30.33.138
一致 !
在划分子网的情况下路由器转发分组的算法
(1) 从收到的分组的首部提取目的 IP 地址 D。
(2) 先用各网络的子网掩码和 D 逐比特相“与”,看是
否和
相应的网络地址匹配。若匹配,则将分组直接交付。
否则就是间接交付,执行 (3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则将
分组传送给指明的下一跳路由器;否则,执行 (4)。
(4) 对路由表中的每一行的子网掩码和 D 逐比特相
“与”,
若其结果与该行的目的网络地址匹配,则将分组传送
给该行指明的下一跳路由器;否则,执行 (5)。
(5) 若路由表中有一个默认路由,则将分组传送给路由表
中所指明的默认路由器;否则,执行 (6)。
(6) 报告转发分组出错。
划分子网在一定程度上缓解了因特网在发展中遇
到的困难 。 然而在 1992 年因特网仍然面临三个必
须尽早解决的问题, 这就是,
? B 类地址在 1992 年已分配了近一半, 眼看就
要在 1994 年 3 月全部分配完毕 !
? 因特网主干网上的路由表中的项目数急剧增长
( 从几千个增长到几万个 ) 。
? 整个 IPv4 的地址空间最终将全部耗尽 。
无分类编址 CIDR
网络前缀
? 1987 年, RFC 1009 就指明了在一个划
分子网的网络中可同时使用几个不同的子
网掩码 。 使用 变 长 子 网 掩 码 VLSM
(Variable Length Subnet Mask)可进一步
提高 IP 地址资源的利用率 。
? 在 VLSM 的基础上又进一步研究出无分
类编址方法, 它的正式名字是 无分类域间
路由选择 CIDR (Classless Inter-Domain
Routing)。
IP 编址问题的演进
? CIDR 消除了传统的 A 类, B 类和 C 类地址
以及划分子网的概念, 因而可以更加有效地
分配 IPv4 的地址空间 。
? CIDR 使 用 各 种 长 度 的, 网 络 前
缀, (network-prefix)来代替分类地址中的
网络号和子网号 。
? IP 地址从三级编址 ( 使用子网掩码 ) 又回
到了两级编址 。
CIDR 最主要的特点
? 无分类的两级编址的记法是,
IP地址,:= {<网络前缀 >,<主机号 >} (6-3)
? CIDR 还使用, 斜线记法, (slash notation),它又
称为 CIDR记法, 即在 IP地址后面加上一个斜线
,/”,然后写上网络前缀所占的比特数 ( 这个数
值对应于三级编址中子网掩码中比特 1 的个数 ) 。
? CIDR 将网络前缀都相同的连续的 IP 地址组成
,CIDR地址块, 。
无分类 的两级编址
CIDR 地址块
? 128.14.32.0/20 表示的地址块共有 212 个地址 ( 因
为 斜线后面的 20 是网络前缀的比特数, 所以主机
号的比特数是 12) 。
? 这个地址块的起始地址是 128.14.32.0。
? 128.14.32.0/20 地址块的最小地址,128.14.32.0
? 128.14.32.0/20 地址块的最大地址,128.14.47.255
? 全 0 和全 1 的主机号地址一般不使用 。
128.14.32.0/20 表示的地址( 212 个地址)
10000000 00001110 00100000 00000000
10000000 00001110 00100000 00000001
10000000 00001110 00100000 00000010
10000000 00001110 00100000 00000011
10000000 00001110 00100000 00000100
10000000 00001110 00100000 00000101
10000000 00001110 00101111 11111011
10000000 00001110 00101111 11111100
10000000 00001110 00101111 11111101
10000000 00001110 00101111 11111110
10000000 00001110 00101111 11111111
? ?
所有地址
的 20 bit
前缀都是
一样的
最小地址
最大地址
? 一个 CIDR 地址块可以表示很多地址, 这种地
址的聚合常称为 路由聚合, 它使得路由表中的
一个项目可以表示很多个 ( 例如上千个 ) 原来
传统分类地址的路由 。
? 路由聚合也称为 构成超网 (supernetting)。
? CIDR 虽然不使用子网了, 但仍然使用, 掩码,
这一名词 ( 但不叫子网掩码 ) 。
? 对于 /20 地址块, 它的掩码是 20 个连续的 1。
斜线记法中的数字就是掩码中 1的个数 。
路由聚合 (route aggregation)
构成超网
? 前缀长度不超过 23 bit 的 CIDR 地址块
都包含了多个 C 类地址 。
? 这些 C 类地址合起来就构成了超网 。
? CIDR 地址块中的地址数一定是 2 的整数
次幂 。
? 网络前缀越短, 其地址块所包含的地址
数就越多 。 而在三级结构的 IP地址中,
划分子网是使网络前缀变长 。
CIDR 地址块划分举例
因特网 206.0.68.0/22 206.0.64.0/18
ISP 大学 X
一系 二系
三系 四系
206.0.71.128/26
206.0.71.192/26
206.0.68.0/25
206.0.68.128/25
206.0.69.0/25
206.0.69.128/25
206.0.70.0/26
206.0.70.64/26
206.0.70.128/26
206.0.70.192/26
206.0.70.0/24 206.0.71.0/25
206.0.71.0/26
206.0.71.64/26
206.0.71.128/25 206.0.68.0/23
单位 地址块 二进制表示 地址数
ISP 206.0.64.0/18 11001110.00000000.01* 16384
大学 206.0.68.0/22 11001110.00000000.010001* 1024
一系 206.0.68.0/23 11001110.00000000.0100010* 512
二系 206.0.70.0/24 11001110.00000000.01000110.* 256
三系 206.0.71.0/25 11001110.00000000.01000111.0* 128
四系 206.0.71.128/25 11001110.00000000.01000111.1* 128
CIDR 地址块划分举例
因特网 206.0.68.0/22 206.0.64.0/18
ISP 大学 X
一系 二系
三系 四系
206.0.71.128/26
206.0.71.192/26
206.0.68.0/25
206.0.68.128/25
206.0.69.0/25
206.0.69.128/25
206.0.70.0/26
206.0.70.64/26
206.0.70.128/26
206.0.70.192/26
206.0.70.0/24 206.0.71.0/25
206.0.71.0/26
206.0.71.64/26
206.0.71.128/25 206.0.68.0/23
这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技
术,则在与该 ISP 的路由器交换路由信息的每一个路
由器的路由表中,就需要有 64 个项目。但采用地址聚
合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就
能找到该 ISP。
最长前缀匹配
? 使用 CIDR 时, 路由表中的每个项目由, 网络
前缀, 和, 下一跳地址, 组成 。 在查找路由表
时可能会得到不止一个匹配结果 。
? 应当从匹配结果中选择具有最长网络前缀的路
由,最长前缀匹配 (longest-prefix matching)。
? 网络前缀越长, 其地址块就越小, 因而路由就
越具体 。
? 最长前缀匹配又称为 最长匹配 或 最佳匹配 。
最长前缀匹配举例
收到的分组的目的地址 D = 206.0.71.130
路由表中的项目,206.0.68.0/22 ( ISP)
206.0.71.128/25 (四系)
查找路由表中的第 1 个项目
AND D = 206,0,01000111,0
第 1 个项目 206.0.68.0/22 的掩码 M 有 22 个连续的 1。
M = 11111111 11111111 11111100 00000000
因此只需把 D 的第 3 个字节转换成二进制。
M = 11111111 11111111 11111100 00000000
206,0,01000100,0
与 206.0.68.0/22 匹配
最长前缀匹配举例
收到的分组的目的地址 D = 206.0.71.130
路由表中的项目,206.0.68.0/22 ( ISP)
206.0.71.128/25 (四系)
再查找路由表中的第 2 个项目
AND D = 206,0,71,10000000
第 2 个项目 206.0.71.128/25 的掩码 M 有 25 个连续的 1。
M = 11111111 11111111 11111111 10000000
因此只需把 D 的第 4 个字节转换成二进制。
M = 11111111 11111111 11111111 10000000
206,0,71,10000000
与 206.0.71.128/25 匹配
最长前缀匹配
D AND (11111111 11111111 11111100 00000000)
= 206.0.68.0/22 匹配
D AND (11111111 11111111 11111111 10000000)
= 206.0.71.128/25 匹配
? 选择两个匹配的地址中更具体的一个,即选择最长
前缀的地址。
虚拟专用网 VPN 和网络地址转换 NAT
虚拟专用网 VPN
? 本地地址 ——仅在机构内部使用的 IP 地
址,可以由本机构自行分配,而不需要
向因特网的管理机构申请。
? 全球地址 ——全球惟一的 IP地址,必须
向因特网的管理机构申请。
[RFC 1918]指明的专用地址
(private address)
? 10.0.0.0 到 10.255.255.255
? 172.16.0.0 到 172.31.255.255
? 192.168.0.0 到 192.168.255.255
? 这些地址只能用于一个机构的内部通信,而不
能用于和因特网上的主机通信。
? 专用地址只能用作本地地址而不能用作全球地
址。在因特网中的所有路由器对目的地址是专
用地址的数据报一律不进行转发。
X
10.1.0.1
用隧道技术实现虚拟专用网
部门 A
因特网
部门 B
R1 R2
隧道 125.1.2.3 194.4.5.6
Y
10.2.0.3
使用隧道技术
本地地址 本地地址 全球地址
X
10.1.0.1
用隧道技术实现虚拟专用网
部门 A
因特网
部门 B
R1 R2
隧道 125.1.2.3 194.4.5.6
Y
10.2.0.3
使用隧道技术
加密的从 X 到 Y 的内部数据报
外部数据报的数据部分
源地址,125.1.2.3
目的地址,194.4.5.6
数据报首部
部门 A 部门 B
X Y R1 R2
125.1.2.3 194.4.5.6
10.1.0.1 10.2.0.3
虚拟专用网 VPN
内联网 Intranet 和外联网 Extranet
(都是基于 TCP/IP协议)
? 由部门 A 和 B 的内部网络所构成的虚拟专用
网 VPN 又称为 内联网 (Intranet),表示部门 A
和 B 都是在同一个机构的内部。
? 一个机构和某些外部机构共同建立的虚拟专用
网 VPN 又称为 外联网 (Extranet)。
部门 A 部门 B
X Y R1 R2
125.1.2.3 194.4.5.6
10.1.0.1 10.2.0.3
虚拟专用网 VPN
网络地址转换 NAT
(Network Address Translation)
? 网络地址转换 NAT 方法于 1994年提出。
? 需要在专用网连接到因特网的路由器上安装
NAT 软件。装有 NAT 软件的路由器叫做 NAT
路由器,它至少有一个有效的外部全球地址
IPG。
? 所有使用本地地址的主机在和外界通信时都要
在 NAT 路由器上将其本地地址转换成 IPG 才
能和因特网连接。
网络地址转换的过程
? 内部主机 X 用本地地址 IPX 和因特网上主机 Y 通
信所发送的数据报必须经过 NAT 路由器。
? NAT 路由器将数据报的源地址 IPX 转换成全球地
址 IPG,但目的地址 IPY 保持不变,然后发送到
因特网。
? NAT 路由器收到主机 Y 发回的数据报时,知道数
据报中的源地址是 IPY 而目的地址是 IPG。
? 根据 NAT 转换表,NAT 路由器将目的地址 IPG
转换为 IPX,转发给最终的内部主机 X。
X.25 网
? X.25 网就是 X.25 分组交换网,它是在二十
多年前根据 CCITT(即现在的 ITU-T)的
X.25 建议书实现的计算机网络。
? X.25 只是一个对公用分组交换网接口的规约。
X.25 所讨论的都是以 面向连接的虚电路服务
为基础。
X.25 规定了 DTE-DCE 的接口
X.25 接口
X.25 接口
X.25 公用分组交换网
VC2
VC1
DTE
DTE
DCE
DCE
DCE DTE
X.25 接口
X.25 的层次关系
? 用户数据在 X.25 的分组层(相当于网络层)加上
X.25 的首部控制信息后,就组装成为 X.25 分组。
? 在数据链路层使用的是 HDLC 的一个子集 ——平衡
型链路接入规程 LAPB。
? 在分组层 DTE 与 DCE 之间可建立多条逻辑信道
(0~4095 号 ),使一个 DTE 同时和网上其他多个
DTE 建立虚电路并进行通信。
? X.25 还规定了在经常需要进行通信的两个 DTE 之
间可以建立永久虚电路。这些虚电路号以及分组序
号等控制信息都写在 X.25 分组的首部中。
X.25 的层次关系
LAPB 帧
X.25 分组
分组层(网络层)
数据链路层
用户数据
用户数据 X.25首部
LAPB首部 LAPB尾部
X.25 网与 IP 网
? 基于 IP 协议的因特网是无连接的,只提供
尽最大努力交付的数据报服务,无服务质量
可言。
? X.25 网是面向连接的,能够提供可靠交付的
虚电路服务,能保证服务质量。
? 正因为 X.25 网能保证服务质量,在二十多
年前它曾经是颇受欢迎的一种计算机网络。
X.25 网退出了历史舞台
? 到了 20 世纪 90 年代, 情况就发生了很大
的变化 。 通信主干线路已大量使用光纤技
术, 数据传输质量大大提高使得误码率降
低好几个数量级, 而 X.25 十分复杂的数据
链路层协议和分组层协议已成为多余的 。
? PC 机的价格急剧下降使得无硬盘的哑终端
退出了通信市场 。 这正好符合因特网当初
的设计思想:网络应尽量简单而智能应尽
可能放在网络以外的用户端 。
帧中继 FR
帧中继的工作原理
? 在 20 世纪 80 年代后期,许多应用都迫切要求增
加分组交换服务的速率。
? 帧中继 FR (Frame Relay)就是一种支持高速交换的
网络体系结构。
? 帧中继在许多方面非常类似于 X.25,被称为第二
代的 X.25。
? 今天的数字光纤网比早期的电话网具有低得多的误
码率,如果减少结点对每个分组的处理时间,则各
分组通过网络的时延亦可减少,同时结点对分组的
处理能力也就增大了。
帧中继减少结点处理时间
? 帧中继不使用差错恢复和流量控制机制。
? 当帧中继交换机收到一个帧的首部时,只
要一查出帧的目的地址就立即进行转发。
? 因此在帧中继网络中,一个帧的处理时间
比 X.25 网约减少一个数量级。这样,帧中
继网络的吞吐量要比 X.25 网络的提高一个
数量级以上。
帧中继对差错的处理
? 当检测到有误码时,结点要立即中止这次传输。
? 当中止传输的指示到达下个结点后,下个结点也
立即中止该帧的传输,并丢弃该帧。
? 如果需要重传出错的帧,则由源站使用高层协议
(而不是帧中继协议)请求重传该帧。
? 因此,仅当帧中继网络本身的误码率非常低时,
帧中继技术才是可行的。
帧中继网
帧中继交换机
路由器
局域网 局域网
虚电路
路由器
帧中继提供虚电路服务
帧中继网
路由器
局域网 局域网
虚电路
路由器
虚电路像一条专用电路
用户看不见帧中继网络内的帧中继交换机