当前位置:首页 >> 其它课程 >>

4网络层


计算机网络
第 4 章 网络层

信息科学与工程学院
Jack.meng@263.net

2011.2

第 4 章 网络层
4.1 4.2 4.3 4.4 4.5 4.6 4.7 网络层提供的两种服务 网际协议 IP 划分子网和构造超网 网际控制报文协议 ICMP 因特网的路由选择协议

IP 多播 虚拟专用网 VPN 和网络地址转换 NAT

? ? ? ?

网络层的概念和要素 IP及其基本作用机制 IP的编址与寻址 路由算法与协议

网络层功能
?

?

为终端设备提 供通过网络的 数据分组交换 服务。 控制分组从源 端经由网络传 抵目的端的延 时、可靠、路 径、安全等

4.1 网络层(可)提供的两种服务
数据报服务,虚电路服务

?

数据报服务----无连接服务(直接基于目的地址路由的无 状态交换)
H1 IP数据包

应用层 运输层 网络层 数据链路层 物理层

H2

丢失
H1 发送给 H2 的分组可能沿着不同路径传送

应用层 运输层 网络层 数据链路层 物理层

虚电路服务
?

面向连接服务,建立连接-数据传输-释放连接,基于连接标 识符路由的有状态交换

应用层 运输层 网络层 数据链路层 物理层

H1

H2

虚电路
H1 发送给 H2 的所有分组都沿着同一条虚电路传送

应用层 运输层 网络层 数据链路层 物理层

无连接的数据报子网内的路由原理图示
H3
分组交换节点

H1

B A C
下一转发 结点

D E 1
C的 转 发表

H2

F
E的 转 发表

目的结点

A的转 发表

A

-

A

A

A

C

B
C D E

B
C B C

B
C D E
? ? ?

A
D E

B
C D E

D
C D -

F

C

编址:交换机地址+主机地址

F

E

F

F

寻址:主机所在的交换机+交换机上的主机 转发:下一跳

面向连接的虚电路子网内的路由原理图示
H3
进程P3 路由器

H1

B A

D E C 1
H2
进程P2

进程P1

F

A的表 H1与H2的连接 H3与H2的连接 H2与H3的连接 H3与H1的连接

C的表 1 2

连接标识符 E的表

F的表

H1 1 H3 1 C
进 1

C C

A 1 A 2 E 1


E 1 E 2 A 1


C1 C2 F1


F 1 F 2 C 1


E E

1 2

H2 1
H2 2 E
1 出

H3 1 H1 1


H2 1


H3 2

每个路由器为每个虚电路维护的连接及其连接标识符

虚电路服务与数据报服务的对比
对比项
连接的建立
地址信息 分组的路由 状态信息 路由器故障 时 分组的顺序 网络服务质 量 差错和流量 控制

虚电路服务
必须有(有状态)

数据报服务
不需要(无状态)

仅在连接建立阶段使用,随后每个分 每个分组都有完整的源地址和 组仅包含短的虚电路号(连接标识符VC) 目的地址 属于同一条虚电路的分组均按照同一 (连接标识符) 路由进行转发 每个路由器为每个连接VC建立表项 所有通过故障结点的虚电路均不能工 作 总是按发送顺序到达终点 由网络负责 可以由网络负责,也可以由用户主机 负责 每个分组独立选择路由进行转 发 路由器不保留有关连接的信息 故障结点可能会丢失分组,路 由可能会发生变化 到达终点时不一定按发送顺序 网络很难实现,由用户主机 (端系统)负责。 网络很难实现,由用户主机 (端系统)负责

互联网(TCP/IP)体系结构网络的网络层(网际互联层)
?

?

?

网际互联层向上提供: 无连接、尽最大努力交付的数据报服务。即: ? 端系统在发送分组前不需要先建立连接。每一个分组(即IP 数据包)独立 发送,与其前后的分组无关(无状态)。 ? 网络层不提供可靠性承诺。即所传送的分组可能出错、丢失、重复和失 序(不按序到达终点),由端系统处理可靠性。 ? 不保证分组传送的时限。 尽力交付的设计 ? 简化网络分组交换机(路由器)功能。 ? 降低网络造价。 以最小开销(最佳路由)将数据包(packet/datagram) 传送到同一个网络或其它网络中的目的设备。 四个基本功能: 编址 封装/解封 路由(寻址) 转发

TCP/IP体系结构中的基本协议的结构形态特征
应用层 HTTP … SMTP DNS … RTP

运输层

TCP

UDP

网际层

IP

网络接口层

网络接口 1

网络接口 2



网络接口 3

IP overEverything Everythingover (物理网络) IP 沙漏计时器形状的 IP 可为各式各样的应用程序提供服务 TCP/IP协议族

4.2 网际协议IP ---TCP/IP 体系最主要协议之一

IP 协议配套使用的四个协议:
地址解析协议 ARP (Address Resolution Protocol) ? 逆地址解析协议 RARP (Reverse Address Resolution Protocol) ? 网际控制报文协议 ICMP (Internet Control Message Protocol) ? 网际组管理协议 IGMP (Internet Group Management Protocol)
?

各种应用层协议 (HTTP, FTP, SMTP 等)

应用层

TCP, UDP ICMP IGMP
IP RARP ARP

运输层

网络层 (网际层)

与各种网络接口

网络 接口层

物理网络

4.2.1 虚拟(逻辑)互连网络
?

异构性网络互连通信的问题,如:
? ?

?
? ? ? ? ? ? ?

不同的寻址方案 不同的最大分组长度 不同的网络接入机制 不同的超时控制 不同的差错恢复方法 不同的状态报告方法 不同的路由选择技术 不同的用户接入控制 不同的服务(面向连接服务和无连接服务) 不同的管理与控制方式

网际互联----构成虚拟(逻辑)网络
?逻辑网络:将各种物理网络的异构性利用IP协议互连实现网

络属性的统一。 ?虚拟网络:互联网上的主机进行通信时,就好像在一个网络 上通信一样,而看不见互连的各具体的物理网络异构细节。

网络

网络

网络

网络

虚拟互连网络 (互联网)
网络

(a) 互连网络

(b) 虚拟互连网络

5 4 3 2 1 主机 H1

H1

分组在互联网中的传送
3 2 1 2 1 R2 间接交付 间接交付 R1 2 1 3 2 1 R2

R3 3 2 1 R3 2 1

间接交付

R1

R5 3 5 4 3 2 1 H2 R5 间接交付

R4

2 1

2 1

R4

3 2 1 2 1

主机 H2

?

从网络层看,IP 数据报就象是在统一属性(同构)网络层中传送。
网络层 R1 网络层 R2 网络层 R3 网络层 R4 网络层 R5 网络层 H2

IP 数据报 网络层 H1

4.2.2 分类的 IP 地址
IP 地址及其表示方法
?

?

IP地址: 用于指示 IP 网 ( 支持 TCP/IP 协议的网络 ) 上主机位置的 32bit 标识 符。 表示方式: 两级结构化地址。

IP 地址 ::= { <网络号>, <主机号>}

例如:

{1, 1}

网络号(net-id) :n bit用于指示主机所连接到的网络。 主机号(host-id):m bit用于指示net-id网络上的主机。 n+m=32

例如 {11000000 10101000 10000010 , 00000101}

结构化IP 地址的意义
(1)方便 IP 地址的管理
? ?

IP 地址管理机构在分配 IP 地址时只分配网络号 主机号则由得到该网络号的单位自行分配。 网间寻址:全局处理,路由器/主机仅需根据网络号寻址, 缩减网络号存 储、查询等处理量。 网内寻址:网络内本地化处理。

(2)提高寻址效率
?

?

IP 地址及其表示方法示例

路由器 11000000 10101000 10000010 00000101
主机 H1

网络

网络 网络

网络 11000000 10101000 10000010 00000001

网络

IP 地址的点分十进制标记法
机器中存放的 IP 地址 是 32 位 二进制代码 每隔 8 位插入一个空格 能够提高可读性 将每 8 位的二进制数 转换为十进制数 采用点分十进制记法 则进一步提高可读性

10000000000010110000001100011111
10000000 00001011 00000011 00011111

128

11

3

31

128.11.3.31

IP地址编码方式的三次演变
? ? ?

传统分/有类IP地址编码方式 子网化IP地址编码方式 超网(无类)化IP地址编码方式

分类 IP 地址:
按固定长度网络号和主机号定义 IP 地址,每一类地址有固定的 编址范围或用途。
A 类地址
0 net-id 8位 B 类地址 1 0 net-id 16 位 C 类地址 1 1 0 net-id 24 位 D 类地址 1110 多播地址 保留为今后使用 host-id 8位 host-id 24 位

host-id 16 位

E 类地址 1 1 1 1

标准IP地址分类

A、B、C三种类别 IP 地址的编址范围
网络 类别 最大 网络数 126 (27 – 2) 16,383(214 ? 1) 第一个 可用的 网络号 1 128.1 最后一个 可用的 网络号 126 191.255 每个网络 中最大的 主机数 16,777,214 65,534 254

A B C

2,097,151 (221 ? 1) 192.0.1 223.255.255

特殊IP地址
特殊IP地址详见RFC3330,5735 网络 号 主机 号 源地 址 目的 地址

意义

0
0 全1

0
x 全1

可用
可用 不可

不可
不可 可用

本网络本主机----本机 {0, 0} This host on this
network. Can only be used as a source address.

本网络某主机。 X:为非全0非全1值。
{0, <Host-number>} Specified host on this network. Can only be used as a source address

本地广播。{ -1, -1} Limited broadcast. Can only
be used as a destination address, and a datagram with this address must never be forwarded outside the (sub-)net of the source.

x
127

全1

不可
可用

可用
可用

直接(某网络)广播{<Network-number>, -1}
Directed broadcast to specified network. Can only be used as a destination address.

x

用作本地软件环回测试。X:为非全0非全1。
{127, <any>} Internal host loopback address. Should never appear outside a host.

特殊用途的IP地址
网络ID Any Any 主机部ID 全“0” 全“1” 地址类型 网络地址 广播地址 用途 代表一个网段 特定网段的所有节点

127
全“0”

any

环回地址
本机地址/所有网络 广播地址

环回测试
启动时使用/通常 用于指定默认路由 本网段所有节点

全“1”

RFC3330定义的特殊IP地址
Summary Table Address Block Present Use Reference
0.0.0.0/8 "This" Network [RFC1700, page 4] 10.0.0.0/8 Private-Use Networks [RFC1918] 14.0.0.0/8 Public-Data Networks [RFC1700, page 181] 24.0.0.0/8 Cable Television Networks – 39.0.0.0/8 Reserved but subject to allocation [RFC1797] 127.0.0.0/8 Loopback [RFC1700, page 5] 128.0.0.0/16 Reserved but subject to allocation – 169.254.0.0/16 Link Local – 172.16.0.0/12 Private-Use Networks [ RFC1918] 191.255.0.0/16 Reserved but subject to allocation – 192.0.0.0/24 Reserved but subject to allocation – 192.0.2.0/24 Test-Net 192.88.99.0/24 6to4 Relay Anycast [RFC3068] 192.168.0.0/16 Private-Use Networks [RFC1918] 198.18.0.0/15 Network Interconnect Device Benchmark Testing [RFC2544] 223.255.255.0/24 Reserved but subject to allocation – 224.0.0.0/4 Multicast [RFC3171] 240.0.0.0/4 Reserved for Future Use [RFC1700, page 4]

RFC 5735定义的特殊IP地址
Summary Table Address Block Present Use Reference
0.0.0.0/8 "This" Network RFC 1122, Section 3.2.1.3 10.0.0.0/8 Private-Use Networks RFC 1918 127.0.0.0/8 Loopback RFC 1122, Section 3.2.1.3 169.254.0.0/16 Link Local RFC 3927 172.16.0.0/12 Private-Use Networks RFC 1918 192.0.0.0/24 IETF Protocol Assignments RFC 5736 192.0.2.0/24 TEST-NET-1 RFC 5737 192.88.99.0/24 6to4 Relay Anycast RFC 3068 192.168.0.0/16 Private-Use Networks RFC 1918 198.18.0.0/15 Network Interconnect Device Benchmark Testing RFC 2544 198.51.100.0/24 TEST-NET-2 RFC 5737 203.0.113.0/24 TEST-NET-3 RFC 5737 224.0.0.0/4 Multicast RFC 3171 240.0.0.0/4 Reserved for Future Use RFC 1112, Section 4 255.255.255.255/32 Limited Broadcast RFC 919, Section 7 RFC 922, Section 7

IPv4网络基本地址的识别
?

?

?

网络地址 - 指代网络的地址 例:10.0.0.0, 129.1.0.0 广播地址 - 用于向某网络中的所有主机发送数据的特殊地址 例:10.255.255.255, 129.1.255.255 主机地址 - 分配给网络中终端设备的地址 例:10.0.0.100, 129.1.55.55

私用IP地址
类别 A 地址 10.0.0.0~ 10.255.255.255 172.16.0.0~172. 31.255.255 192.168.0.0~ 192.168.255.255 网络 1 私用主机总 量 777,214

B
C

16
256

1,048, 544 256,650, 24

划分网络----地址分配的前提
?

?

划分网络需求: 区分网络: 编址&寻址 改善性能、加强安全和方便管理等: 将大型网络划分为多个相互连接的小型网络 网络的划分依据以下因素: 所有权。 比如:国家、运营商、企业 地理位置。比如:南部地区、办公东楼,北楼,西楼 用途。 比如:人力部,销售部,财务部,网络设备寻址等

划分网络----改善性能
? ?

?

分割流量域 划分广播域 过滤、优化分组流量

规模较大的网内寻址

网A内寻址

网B内寻址

划分网络------加强安全性
? ?

根据用户访问权限划分网络是防止组织内部和外部用 户未经授权访问通信和数据的一种手段。 例如,校园网可以划分为管理区(子)网、研究区(子)网 和学生区(子)网。

学生区(子)网

研究区(子)网

划分网络-----方便管理
?

?

少量主机划分到一起,减少因需要知道所有地址而产生的不必要开销。 ----直接交付---主机向所有网外其它目地址发送的数据包都发送到称为网关(路由器)的 中间设备的地址。 ----间接交付----

直接交付编址/寻址范围

IP地址分配规划:
?

有规则的将IP地址规划成若干作用逻辑地址组,以提高地址管理、分配和 基于IP地址的监管控制效率 规则: ? 避免地址重复 ? 便于网络扩展 ? 便于辨识和管 理不同类设备 ? 便于控制访问 ? 便于性能和安全 监控
例:按设备类型 ? 用户用终端设备 ? 服务器和外围设备 ? Internet可访问主机 ? 中间设备 等区分编 址,便于预知设备 地址,实施管理

IP 地址的应用示例 在同一个物理网上的主机或路由器的 222.1.1.3 222.1.1.1 222.1.1.2 IP 地址中的网络号必须是一样的。
LAN1 222.1.1. LAN3 222.1.3.3 222.1.3. R1 222.1.5.1 222.1.1.4 222.1.6.1 N3 222.1.6. N2 222.1.5. R3 LAN2 222.1.2.

222.1.2.1

222.1.5.2
222.1.3.1

222.1.6.2 222.1.2.5 N1 222.1.4. R2

222.1.2.2

222.1.3.2

222.1.4.2

222.1.4.1

B

互联网

222.1.2.4 222.1.2.3

IP 地址的使用示例
路由器总是具有两个或两个以上的 IP 地址。

路由器的每一个接口都有一个不同网络号的 IP 地址。 222.1.1.3 222.1.1.1 222.1.1.2
LAN1 222.1.1. LAN3 222.1.3.3 222.1.3. 222.1.1.4 222.1.6.1 N3 222.1.6. N2 222.1.5. R3 LAN2 222.1.2.

R1 222.1.5.1

222.1.2.1

222.1.5.2
222.1.3.1

222.1.6.2 N1 222.1.4. R2 222.1.2.5

222.1.2.2

222.1.3.2

222.1.4.2

222.1.4.1

B

互联网

222.1.2.4 222.1.2.3

IP 地址的使用示例 点到点网络接口处,可分配也可不分配 IP 地址,该 222.1.1.3 222.1.1.1 222.1.1.2 接口/网络称为无编号接口/网络。
LAN1 222.1.1. LAN3 222.1.3.3 222.1.3. R1 222.1.5.1 222.1.1.4 222.1.6.1 N3 222.1.6. N2 222.1.5. R3 LAN2 222.1.2.

222.1.2.1

222.1.5.2
222.1.3.1

222.1.6.2 N1 222.1.4. R2 222.1.2.5

222.1.2.2

222.1.3.2

222.1.4.2

222.1.4.1

B

互联网

222.1.2.4 222.1.2.3

IP 地址的使用练习

4.2.3 IP 地址与硬件(物理网)地址
首部 IP 地址
首部 硬件地址 首部 MAC 帧 IP 数据报 尾部 链路层及以下 使用硬件地址 应用层数据 TCP 报文 网络层及以上 使用 IP 地址

IP数据包传输过程示例
?IP数据包间经逐段链路传递到达目的端 ?连接每个网络的路由器/主机的

IP 地址就是逐段(跳)点的指示/标识信


主机 H1 IP1

查找路由表
硬件地址 路由器 R1

查找路由表
路由器 R2 局域网

主机 H2 IP2

HA1

局域网

HA3

HA4

HA5

HA6

局域网

HA2

数据包传递的路径

H1→经过 R1 转发→再经过 R2 转发→H2

IP数据包在每段链路经历封装帧与解封装
主机 H1 IP1 HA1 硬件地址 路由器 R1 HA4 局域网 HA5 路由器 R2 HA
6

主机 H2 IP2 局域网
HA2 主机 H2

局域网 HA3
IP 数据包

主机 H1

IP1 → IP2 IP1

路由器 R1

路由器 R2 IP1 → IP2 IP1 → IP2 IP2

IP3

IP4

IP5
IP 层上的互联网

IP6

HA1 从 HA1 到 HA3 MAC 帧

HA3

HA4

HA5

HA6 从 HA6 到 HA2 MAC 帧

HA2

从 HA4 到 HA5 MAC 帧

IP数据包由连接各段链路的路由器/主机的网络层处理
主机 H1
IP1 HA1 主机 H1

路由器根据目的IP 地址进行路由选择和转发
硬件地址 HA3 IP 数据包 路由器 R1 IP3 IP4 路由器 R2 IP1 → IP2 IP5 IP6 IP1 → IP2 路由器 R1 HA4 局域网 HA5 路由器 R2 HA6 局域网

主机 H2 IP2 HA2 主机 H2

局域网

IP1 → IP2 IP1

IP2

IP 层上的互联网
HA1 从 HA1 到 HA3 MAC 帧 HA3 HA4 HA5

HA6
从 HA6 到 HA2 MAC 帧

HA2

从 HA4 到 HA5 MAC 帧

IP数据包被各段链路层协议封装后在该链路上载运
主机 H1
IP1 HA1 主机 H1 IP 数据包 IP1 → IP2 IP1 IP3 IP4 IP5 IP6 路由器 R1 路由器 R2 IP1 → IP2 IP1 → IP2 硬件地址

具体的物理网络的链路层只根据 MAC 地址帧(不 看 IP 地址)传递
路由器 R1 HA4 局域网 HA5 路由器 R2 HA6 局域网

主机 H2 IP2 HA2 主机 H2

局域网

HA3

IP2

IP 层上的互联网
HA1 从 HA1 到 HA3 MAC 帧 HA3 HA4 HA5

HA6
从 HA6 到 HA2 MAC 帧

HA2

从 HA4 到 HA5 MAC 帧

必须将统一编址的IP地址逐个与物理网地址关联(映 射)才能逐段(跳)在物理网上用帧传递
主机 H1 IP 数据包 路由器 R1 IP3 IP4 路由器 R2 主机 H2

IP1 → IP2
IP1

IP1 → IP2
IP5 IP6

IP1 → IP2 IP2

IP 层上的互联网
HA1 从 HA1 到 HA3 MAC 帧 HA3 HA4 HA5

HA6
从 HA6 到 HA2 MAC 帧

HA2

从 HA4 到 HA5 MAC 帧

连接每个网络的路由器/主机的 IP 地址就是逐段 (跳)点的指示/标识信息,作为映射操作的关键字
主机 H1 主机 H2 路由器 R2

IP 数据包 路由器 R1 IP3 IP4

IP1 → IP2
IP1

IP1 → IP2
IP5 IP6

IP1 → IP2 IP2

IP 层上的互联网
HA1 从 HA1 到 HA3 MAC 帧 HA3 HA4 HA5

HA6
从 HA6 到 HA2 MAC 帧

HA2

从 HA4 到 HA5 MAC 帧

4.2.4 地址解析协议 ARP 和 逆地址解析协议 RARP
IP 地址 ARP 物理地址

地址解析协议ARP 使只知道对方主机IP 地址的主机自能够获知 对方主机的硬件地址。

物理地址

RARP

IP 地址

逆地址解析协议 RARP 使只知道自己硬件地址的主机能够获知 其 IP 地址。

以太网的ARP帧格式
以太网帧
目的MAC 源MAC 类型0x0806

ARP净荷
协议类型(IPv4=0800) OP操作选项(ARP request=01,ARP reply=02) 发送端IP地址(0-1 )

FCS

硬件类型(Ethernet=01) 硬件地址长度 Ethernet=6 协议地址长度 IPv4=4)

发送端以太网地址(0-3)
发送端以太网地址(4-5)

发送端IP地址(2-3 )

目的以太网地址(0-1)

目的以太网地址(2-5) 目的IP地址(0-34)

ARP帧示例—ARP请求

ARP帧示例—ARP响应

IP包在一个网段内的传递机制
主机路由机制:
主机依据IP包目的地址确定向下一站的交付方式。 (1)直接交付:目的与本机有相同网络号,则将包直接传给目的主机。 (2)间接交付:目的与本机非相同网络号,则将包传给与本网连接的某一路 由器路由转发。
主机 H1 间接交付 R1 间接交付 R2 间接交付 R3

主机 H3

R5 R5

间接交付

R4 R4

主机 H2

H2

直接交付时映射示例
1.主机 A 广播发送 ARP 请求分组
ARP 请求

我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18 我想知道主机 209.0.0.6 的硬件地址
ARP 请求 ARP 请求

ARP 请求

X

209.0.0.5 A

209.0.0.6
Y

B

Z

00-00-C0-15-AD-18

2.主机 B 向 A 发送 ARP 响应分组

我是 209.0.0.6 硬件地址是 08-00-2B-00-EE-0A ARP 响应

X

209.0.0.5 A 00-00-C0-15-AD-18

209.0.0.6

Y

B 08-00-2B-00-EE-0A

Z

间接交付时映射示例
我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18 我想知道网关 209.0.0.1 的硬件地址 路由器 1.主机 A 广播发送 ARP 请求分组 网络 主机 网络 A 209.0.0.5 网络
主机 B

网络
2.路由器 向 A 发送 ARP 响应分组 我是 209.0.0.1 硬件地址是 08-00-2B-00-EE-0A

网络

使用 ARP 的四种典型情况
?

?

?

?

发送方是主机,要把IP数据报发送到本网络上的另一个主机。 这时用 ARP 找到目的主机的硬件地址。 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主 机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩 下的工作由这个路由器来完成。 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。 这时用 ARP 找到目的主机的硬件地址。 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个 主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。 剩下的工作由这个路由器来完成。

ARP映射表及其操作
?

静态映射—绑定 Windows命令:

?

动态映射
?

?

当主机 B 收到 A 的 ARP 请求分组时,就将主机A IP 地址和主机A的 硬件地址映射写入自己(主机B)的 ARP映射表中。 主机 A 在发送其 ARP 请求分组后,收到主机 B的ARP响应分组,就将 主机B的IP地址和主机B的硬件地址的映射写入自己(主机A)的映射表中。

ARP代理—原理
?

?

主机可能会发送 ARP 请求,要求映射本地网络范围以外的 IPv4 地址。 为了向这些主机提供 MAC 地址,路由器接口可能会使用代理 ARP 代表 这些远程主机进行响应。就好像路由器接口是具有 ARP 请求所请求的 IPv4 地址的主机一样。路由器通过“仿造”身份,承担了将数据包路由 到“真正”目的设备的职责 请求设备的 ARP 缓存中将会包含映射至本地网络以外任何 IP 地址的网 关的 MAC 地址

ARP代理作用时机
?

?

?

当旧版的 IPv4 无法确定目的主机是否与源主机在同一 逻辑网络上时,就会发生使用 ARP 代理的过程。 主机认为它已经直接连接到目的主机所在的逻辑网络。 如果主机配置了错误的掩码,通常会发生这种情况。 主机没有配置默认网关。代理 ARP 可以帮助网络中的 设备到达远程子网,而无需配置路由或默认网关。

4.2.5 IP 数据报的格式
位 0 固 定 首 部 部 分 可变 部分

4


8
区分服务 识

16
标志

19

24
总 长 度 片 偏 移

31

版 本 首部长度

生存时间




源 地 址 目 的 地 址

首 部 检 验 和

可 选 字 段 (长 度 可 变)





数 首 部 数

据 据

部 部

分 分

IP 数据报

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 首 部 数 据 据 部 部 分 分 填 充

IP 数据报

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 首 部 数 据 据 部 部 分 分 填 充

IP 数据报

IP 数据报首部的固定部分中的各字段
位 0 固 定 首 部 部 分 4 标 生存时间 8 区分服务 识 协 议 源 地 址 标志 16 19 24 总 长 度 片 偏 移 首 部 检 验 和 31 版 本 首部长度

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4)

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节。

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

区分服务——占 8 位,用来获得更好的服务 在旧标准中叫做服务类型,但实际上一直未被使用过。 1998 年这个字段改名为区分服务。 只有在使用区分服务(DiffServ)时,这个字段才起作用。 在一般的情况下都不使用这个字段

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

总长度——占 16 位,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。 总长度必须不超过最大传送单元 MTU。

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

标识(identification) 占 16 位, 它是一个计数器,用来产生数据报的标识。

位 0 固 定 首 部 部 分

4 标 生存时间

8

16

19

24

31

版 本 首部长度

区分服务
识 协 议 源 地 址 标志

总 长 度
片 偏 移 首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

标志(flag) 占 3 位,目前只有前两位有意义。 标志字段的最低位是 MF (More Fragment)。 MF ? 1 表示后面“还有分片”。MF ? 0 表示最后一个分 标志字段中间的一位是 DF (Don't Fragment) 。 只有当 DF ? 0 时才允许分片。

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

片偏移(13 位)指出:较长的分组在分片后 某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。

【例4-1】 IP 数据报分片
数据部分共 3800 字节

需分片的 数据报

首部
字节 0 1400 2800

偏移 = 0/8 =0

3799

首部 1 字节 0
数据报片 1 偏移 = 0/8 = 0 1399

首部 2
1400 数据报片 2 偏移 = 1400/8 = 175 2799

首部 3
2800 数据报片 3 偏移 = 2800/8 = 350 3799

位 0

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

固 定 首 部 部 分

首 部 检 验 和

目 的 地 址

可变 部分

可 选 字 段 (长 度 可 变)
数 据 部 分





生存时间(8 位)记为 TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值。

位 固 定 首 部 部 分

0
版本

4
首部长度 标

8
区分服务 识

16

19

24
总 长 度

31

标志

片 偏 移

生存时间




源 地 址 目 的 地 址

首 部 检 验 和

可变 部分

可 选 字 段 (长 度 可 变) 数 据 部 分





协议(8 位)字段指出此数据报携带的数据使用何种协议 以便目的主机的 IP 层将数据部分上交给哪个处理进程
运输层 ICMP 网络层
01ICMP 06 TCP 17 UDP

TCP
IGMP 数据部分 IP 数据报

UDP OSPF

首部

协议字段指出应将数据 部分交给哪一个进程

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

首部检验和(16 位)字段只检验数据报的首部 不检验数据部分。 这里不采用 CRC 检验码而采用简单的计算方法。

发送端 数 字2 据 报 检验和 首 部 字n

接收端

字1

16 位 16 位 … 置为全 0 … 16 位

字1
字2 检验和 字n

16 位 16 位 … 16 位 … 16 位

反码算术 16 位 运算求和 取反码

IP 数据报

反码算术 16 位 运算求和 取反码

检验和

16 位 数据部分

结果

16 位

数据部分 不参与检验和的计算

若结果为 0, 则保留; 否则,丢弃该数据报

位 0 固 定 首 部 部 分

4 标 生存时间

8 区分服务 识 协 议

16 标志 源 地 址

19

24 总 长 度 片 偏 移

31

版 本 首部长度

首 部 检 验 和

目 的 地 址
可变 部分 可 选 字 段 (长 度 可 变) 数 据 部 分 填 充

源地址和目的地址都各占 4 字节

IP 数据报首部的可变部分
?
? ?

?
?

选项字段长度可变( 1到40个字节)。 主要用来支持测试、排错以及安全等功能。 增加 IP 数据报的功能。 增加了数据报处理开销。 选项很少被使用。

4.2.6 IP 层转发分组的流程
? ?

确定直接交付或间接交付(转发)。 按路由表转发 路由表包括: 静态路由表项 动态路由表项 默认路由表项 路由表表项: 主机所在网络路由 特殊主机路由

在路由表中,对每一条路由,最主要的是 (目的网络地址,下一跳地址)
10.0.0.4 网1 10.0.0.0 R1 20.0.0.7 20.0.0.9 0 R2 30.0.0.2 30.0.0.1 40.0.0.4 R3

网2 20.0.0.0

1

网3 30.0.0.0

网4 40.0.0.0

路由器 R2 的路由表
目的主机所在的网络 20.0.0.0 30.0.0.0 10.0.0.0 40.0.0.0 10.0.0.4 链路 1 下一跳地址 直接交付,接口 0 直接交付,接口 1 20.0.0.7 30.0.0.1

20.0.0.7 20.0.0.9 30.0.0.2 30.0.0.1 40.0.0.4 R1 R2 R3 链路 2 链路 3 链路 4

静态路由(Static Routing)
? ? ?

?

由网络管理员手工给出路由信息 适合小规模网络 格式 Router(config)#ip route prefix mask {ip- addrss|interfacetype interface-number} [distence] 例: R2(config)#ip route 10.0.0.0 255.0.0.0 20.0.0.7 R2(config)#ip route 40.0.0.0 255.0.0.0 30.0.0.1

默认路由(Default Routing)
只要目的网络不是 N1 和 N2, 就一律选择默认路由。
R2的路由表
目的网络 下一跳 N1 直接 N2 直接 默认 R1 主机H1的路由表 目的网络 下一跳 N1 直接 N2 R2 默认 R1 10.0.0.0 N2

R1的路由表

R2
N1 20.0.0.0

目的网络 下一跳 N1 直接 N2 R2 默认 R3 R S0/1 3 20.0.0.1 因特网 R
1

20.0.0.0 H1

配置默认路由
? ?

减少路由表所占空间和搜索路由表所用时间。 非常适用于网络与外网仅有一个连接。

格式 Router(config)#ip route 0.0.0.0 0.0.0.0 {nex-hop address|outgoing interface} 例: R1(config)#ip route 0.0.0.0 0.0.0.0 s 0/0/0 R1(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.2

特定主机路由
? ?

为特定的目的主机指明一个路由。 方便控制(如安全性)和测试网络。 例1:移动IP使用特定主机路由技术解决移动节点的移动性,要在移动节点 的家乡网络到移动节点拜访的外地网络之间所有的路由器上建立特定主机 路由。 例2 :ICMP重定向,缺省路由向发送者报告另一条到特定主机的更短路由

例3 :在主机建立特定主机路由,命令格式: X>route add 192.168.3.20 mask 255.255.255.255 192.168.1.2
主机X 192.168.3.20/24 A
B

192.168.1.2 路由器上建立特定主机路由命令格式:Router(config)#ip route x.x.x.x 255.255.255.255 {ip-addrss|interface-type interface-number} [distence]

?

Windows下的路由命令Route print 示例

X> Route print
Active Routes: Network Destination Netmask 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 127.0.0.0 255.0.0.0 192.168.123.0 255.255.255.0 192.168.123.0 255.255.255.0 192.168.123.68 255.255.255.255 192.168.123.88 255.255.255.255 192.168.123.255 255.255.255.255 192.168.123.255 255.255.255.255 224.0.0.0 224.0.0.0 224.0.0.0 224.0.0.0 255.255.255.255 255.255.255.255 Default Gateway: 192.168.123.254 Gateway 192.168.123.254 192.168.123.254 127.0.0.1 192.168.123.68 192.168.123.88 127.0.0.1 127.0.0.1 192.168.123.68 192.168.123.88 192.168.123.68 192.168.123.88 192.168.123.68 Interface 192.168.123.88 192.168.123.68 127.0.0.1 192.168.123.68 192.168.123.88 127.0.0.1 127.0.0.1 192.168.123.68 192.168.123.88 192.168.123.68 192.168.123.88 192.168.123.68 Metric 1 1 1 1 1 1 1 1 1 1 1 1

路由器IP分组转发机制
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地 址为 N。 (2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主 机 D;否则是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传 送给路由表中所指明的下一跳路由器;否则,执行(4)。 (4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表 指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所 指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。

4.3 划分子网和构造超网
4.3.1 划分子网

划分子网的背景
?

早期IP地址的有类化设计存在的问题: ? 为每个物理网分配一个有类网络号IP地址空间的利用率低。 ? 过大网络规模影响网络性能,也不易管理。 ? 过多的网络号使路由表变得太大,使网络性能变坏。

一个未划分子网的 B 类网络示例
145.13.3.11 145.13.3.10

145.13.3.101
145.13.7.34 145.13.7.35

R2

R3

R1

网络 145.13.0.0: 单机构无需216-2主机地址---浪费地址 大范围地址加重管理工作 ---影响使用 难施网内广播等流量控制 ---降低性能

145.13.7.56 所有到网络 145.13.0.0的分组 均到达此路由器 145.13.21.23 145.13.21.9 145.13.21.8

划分为三个子网后的B 类网络示例
?

多机构分用216-2主机地址---提高地址利用率 各机构各自管理小范围地址---易于地址管理 由路由器过滤/转发各子网间流量---提高网络性能 145.13.3.101 145.13.3.11 … 145.13.3.10 145.13.7.34 145.13.7.35

R2 R3

子网 145.13.3.0 子网 145.13.21.0 … 所有到达网络 145.13.0.0 的分组均到达 此路由器

子网 145.13.7.0 …

145.13.7.56

145.13.21.23 145.13.21.9 R1 145.13.21.8

网络 145.13.0.0

划分子网的方法
在 IP 地址中定义一个“子网号字段” 用子网号字段将一个网络划分为多个网络
?

不改变原来二级结构的IP 地址网络号net-id , 借用IP地址主机号 host-id 的部分作为“子网号字段” ,使两级 的 IP 地址变成为三级的 IP 地址: IP地址 ::= {<网络号>, <子网号>, <主机号>} 由子网号字段将一个网络划分为多个网络 例: 145.13.0.0/16? 145.13.0.0/18 10010001 00001101 00000000 0000000 10010001 00001101 00000000 0000000

? ?

可自主取值00、01、10、11定义4个子网,每个子网 的主机地址数为2^14-2 主机号被借用若干个位作为子网号 subnet-id 主机号 host-id 也就相应减少了若干位。

子网的识别----子网掩码
?

?

IP协议数据包中并无用于判断源主机或目的主机所连接的 网络是否进行了子网划分的字段信息。 必须附加子网掩码 (subnet mask) 信息以指示 IP 地址中的 网络号+子网号部分。

IP地址 ::= {<网络号>, <子网号>, <主机号>}

(IP 地址) AND (子网掩码) =网络地址
两级 IP 地址
三级 IP 地址 网络号 net-id net-id 网络号 子网掩码 子网的 网络地址 主机号 host-id subnet-id host-id 主机号

子网号 逐位进行 AND 运算

1111111111111111 11111111 00000000 net-id subnet-id 0

IP 地址的各字段和子网掩码
net-id
两级 IP 地址 145

host-id
13

.
net-id

.

3 subnet-id

.

10 host-id

三级 IP 地址

145

.

13

.

3

.

10 主机号

子网号为 3 的网络的网络号 子网掩码

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 145

子网的 网络地址

.

13

.

3

0

默认子网掩码
A 类 地 址 网络地址 net-id host-id 为全 0

默认子网掩码 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 255.0.0.0 网络地址 net-id host-id 为全 0

B 类 地 址

默认子网掩码 255.255.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 网络地址 net-id host-id 为全 0

C 类 地 址

默认子网掩码 111111111111111111111111 00000000 255.255.255.0

标准IP地址掩码
0 7 8 31

A类地址: A类掩码:

0
0

网络号
7 8

主机号
31

1
0

1111111

000000000000000000000000
15 16 31

B类地址:

0
0

网络号
15 16

主机号
31

B类掩码:

1
0

111111111111111111111

000000000000000000000000
23 24 31

C类地址:
C类掩码:

0
0

网络号
23 24

主机号
31

1

111111111111111111111111111111111

000000000000

子网划分方式:
?

在一个划分子网的网络中仅使用一种同长子网掩码

?

在一个划分子网的网络中可用多个不同长子网掩码(可变长子网掩码)

同长子网掩码示例(1):
?

借用1位主机地址,划分2个同长子网掩码子网

同长子网掩码示例(2):
?

借用3位主机地址,划分8个同长子网掩码子网

子网划分与主机地址数列表分析
网络192.168.1.0/24 主机数2^8-2=254
借主机位 子网数 1 2^1=2 子网位值(二进制) 子网号 0 192.168.1.0/25 主机地址 总主机地址 2^7-2=126 252

1
借主机位 子网数 2 2^2=4

192.168.1.128/25

2^7-2=126
主机地址 2^6-2=62 2^6-2=62 2^6-2=62 2^6-2=62 末尾子网号 192.168.1.224/27 192.168.1.240/28 192.168.1.248/29 192.168.1.252/30 子网/总主机地址 2^5-2=30/240 2^4-2=14/224 2^3-2=6/192 2^2-2=2/128 总主机地址 248

子网位值(二进制) 子网号 00 01 10 11 192.168.1.0/26 192.168.1.64/26 192.168.1.128/26 192.168.1.192/26

借主机位 子网数 3 4 5 6 2^3=8

子网位值(二进制) 起始子网号 000--111 192.168.1.0/27 192.168.1.0/28 192.168.1.0/29 192.168.1.0/30

2^4=16 0000-1111 2^5=32 00000-11111 2^6=64 000000-111111

子网划分与主机地址数列表分析
?

子网号不能为全0和全1的情况 网络192.168.1.0/24 主机数2^8-2=254
子网数 2^1-2=0 2^2-2=2 2^3-2=6 2^4-2=14 2^5-2=30 2^6-2=62 有效子网位值 (二进制) -01--10 001--110 0001-1110 00001-11110 000001-111110 起始子网号 -192.168.1.64/26 192.168.1.32/27 192.168.1.16/28 192.168.1.8/29 192.168.1.4/30 末尾子网号 -192.168.1.128/26 192.168.1.192/27 192.168.1.224/28 192.168.1.240/29 192.168.1.248/30 总主机地址 -(2^6-2)2=124 (2^5-2)6=180 (2^4-2)14=196 (2^3-2)30=180 (2^2-2)62=124

借主 机位 1 2 3 4 5 6

7

2^7-2=126

0000001-1111110

192.168.1.2/31

192.168.1.254/31

(2^1-2)126=0

子网地址分析示例
例:已知IP地址是141.14.72.24,子网掩码是255.255.192.0。试求网络地址 (a) 点分十进制表示的 IP 地址
141 . 14 . 72 . 24

(b) IP 地址的第3字节是二进制
(c) 子网掩码是255.255.192.0 (d) IP地址与子网掩码逐位相与 (e) 网络地址

141

.

14

.01 00 10 00 .

24

1111111111111111 11000000 00000000 141 . 14 .01000000 . 0

141

.

14

.

64

.

0

4.3.2 使用子网掩码的分组转发过程
(1) 从收到的分组的首部提取目的 IP 地址 D。 (2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和 相应的网络地址匹配。若匹配,则将分组直接交付。 否则就是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则将 分组传送给指明的下一跳路由器;否则,执行(4)。 (4) 对路由表中的每一行的子网掩码和 D 逐位相“与”, 若其结果与该行的目的网络地址匹配,则将分组传送 给该行指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则将分组传送给路由表 中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。

【例】已知互联网和路由器 R1 中的路由表。主机 H1 向 H2 发送 分组。试讨论 R1 收到 H1 H2 发送的分组后查找路由表的过程。
R1 的路由表(未给出默认路由器)
128.30.33.13 H1

子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 128.30.33.1
0 R1 128.30.33.130 1

目的网络地址 子网掩码 128.30.33.0 255.255.255.128 128.30.33.128 255.255.255.128 128.30.36.0 255.255.255.0

下一跳 接口 0 接口 1 R2

子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128
H2
128.30.33.138

0 128.30.33.129

R2
1

128.30.36.2
H3

128.30.36.12

子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0

主机 H1 要发送分组给 H2
要发送的分组的目的 IP 地址:128.30.33.138
R1 的路由表(未给出默认路由器)
128.30.33.13 H1 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 128.30.33.1 0 R1 128.30.33.130 目的网络地址 子网掩码 128.30.33.0 255.255.255.128 128.30.33.128 255.255.255.128 128.30.36.0 255.255.255.0 下一跳 接口 0 接口 1 R2

1

子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128
H2

0 128.30.33.129 R2 1 128.30.36.2

128.30.33.138

因此 H 128.30.33.138 是否连接在本网络上 请注意: H1 并不知道 H2 连接在哪一个网络上。 1 首先检查主机 子网3:网络地址 128.30.36.0 如果是,则直接交付; H 仅仅知道 H2 的 IP 地址是 H3 1 128.30.36.12 子网掩码 255.255.255.0 128.30.33.138 否则,就送交路由器 R1,并逐项查找路由表。

主机 H1 首先将 本子网的子网掩码 255.255.255.128 与分组的 IP 地址 128.30.33.138 逐比特相“与”(AND 操作)

255.255.255.128 AND 128.30.33.138 的计算下一跳 128.30.33.13 H1 目的网络地址 子网掩码 子网1: 128.30.33.0 255.255.255.128 接口 0 网络地址 128.30.33.0 255 就是二进制的全 1 ,因此 255 AND xyz = xyz ,1 128.30.33.1 0 128.30.33.128 255.255.255.128 接口 子网掩码 255.255.255.128 这里只需计算最后的 128 AND 138 255.255.255.0 即可。 128.30.36.0 R2 R1
子网2:网络地址 128.30.33.128 128.30.33.130 1 128 → 10000000 子网掩码 255.255.255.128

138 → 10001010
1

R2AND 操作后:10000000 → 128 逐比特

0 128.30.33.129 H2 128.30.33.138

255.255.255.128 逐比特 AND 操作 128. 30. 33.138
H3

128.30.36.2

子网3:网络地址 128.30.36.0 128.30.36.12 ? H1 的网络地址 128. 30. 子网掩码 33.128255.255.255.0

因此 H1 必须把分组传送到路由器 R1
R1 的路由表(未给出默认路由器)
128.30.33.13 H1 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 128.30.33.1 0 R1 128.30.33.130 目的网络地址 子网掩码 128.30.33.0 255.255.255.128 128.30.33.128 255.255.255.128 128.30.36.0 255.255.255.0 下一跳 接口 0 接口 1 R2

1

子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128
H2

0 128.30.33.129 R2 1 128.30.36.2 H3

128.30.33.138

128.30.36.12

子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0

路由器 R1 收到分组后就用路由表中第 1 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作

R1 收到的分组的目的 IP 地址:128.30.33.138
128.30.33.13 H1 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 128.30.33.1 0 R1 128.30.33.130

R1 的路由表(未给出默认路由器)
目的网络地址 子网掩码 128.30.33.0 255.255.255.128 128.30.33.128 255.255.255.128 128.30.36.0 255.255.255.0 下一跳 接口 0 接口 1 R2

1

子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128

不一致

0 128.30.33.129 R2 1 128.30.36.2 H2

128.30.33.138

255.255.255.128 AND 128.30.33.138 = 128.30.33.128 子网3:网络地址 128.30.36.0 不匹配 ! H3 128.30.36.12 子网掩码 255.255.255.0 (因为128.30.33.128 与路由表中的 128.30.33.0 不一致)

路由器 R1 再用路由表中第 2 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作 R1 收到的分组的目的 IP 地址:128.30.33.138
128.30.33.13 H1 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 128.30.33.1 0 R1 128.30.33.130

R1 的路由表(未给出默认路由器)
目的网络地址 子网掩码 128.30.33.0 255.255.255.128 128.30.33.128 255.255.255.128 128.30.36.0 255.255.255.0 下一跳 接口 0 接口 1 R2

1

子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128

一致!

0 128.30.33.129 R2 1 128.30.36.2 H2

128.30.33.138

255.255.255.128 AND 128.30.33.138 = 128.30.33.128 子网 3:网络地址 128.30.36.0 匹配 ! H3 128.30.36.12 子网掩码 255.255.255.0 这表明子网 2 就是收到的分组所要寻找的目的网络

规划子网步骤
1 .确定子网络的数量 2 .确定子网络主机数量
示例:见下图,某机构租用三条专线连接三个分支机构,并选 定192.168.1. 0/24为机构网络地址,给出IP子网规划方案。
A-B链路

分支机构B主机数≤15

分支机构A主机数≤25

子网方案
子网名 A机构 B机构 C机构 留用 A-B链路 A-C链路 B-C链路 留用 子网号 192.168.1.0/27 192.168.1.32/27 192.168.1.64/27 192.168.1.96/27 192.168.1.128/27 192.168.1.160/27 192.168.1.192/27 192.168.1.224/27 起始主机地址 192.168.1.1 192.168.1.33 192.168.1.65/28 192.168.1.129 192.168.1.161 192.168.1.193

分支机构C主机数≤30
末尾主机地址 192.168.1.30 192.168.1.62 192.168.1.126 192.168.1.158 192.168.1.190 192.168.1.222 主机地址总数 30 30 30 30 30 30

可变长子网掩码:同一网络用不同长子网掩码
?

?

?

1987 年,RFC 1009 指明了在一个划分子网的网络中可同时使用几个不同的子 网掩码。 使用变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步提高 IP 地址 资源的利用率 将一个网络地址化分为多个适当大小的不等长子网掩码的子网

采用可变长子网掩码的子网划分示例
提高地址利用率
需求
网络 企业总部 销售部 人力资源部 法律部 WAN1 WAN2 WAN3 主机数 500 200 50 20 2 2 2 子网掩码 /23 /24 /26 /27 /30 /30 /30 子网号 172.16.0.0/23 172.16.2.0/24 172.16.3.0/26 172.16.3.64/27 172.16.3.96/30 172.16.3.100/30 172.16.3.104/30

设计
有效主机地址范围 172.16.0.1--- 172.16.1.254 172.16.2.1 --- 172.16.2.254 172.16.3.1--- 172.16.3.62 172.16.3.65--- 172.16.3.94 172.16.3.97--- 172.16.3.98 172.16.3.101--- 172.16.3.102 172.16.3.105--- 172.16.3.106 地址数 510 254 62 30 2 2 2

?地址数需求>254,应用有类地址,设用私有地址172.16.0.0/16 ?剩余地址172.16.3.108---172.16.255.254 ?设计未考虑分支机构数量、各分支机构主机数、WAN链路数的扩充性地址 预留需求

采用可变长子网掩码的子网划分示例
?

子网地址块的子网划分

可变长子网掩码的子网地址分析
可变长子网掩码子网的地址块的地址区域
网络 192.168.1.0/24 /25子网号 192.168.1.0 /26子网号 192.168.1.0 /27子网号 192.168.1.0 192.168.1.32 192.168.1.64 192.168.1.64 192.168.1.96 192.168.1.128 192.168.1.128 192.168.1.128 192.168.1.160 /28子网号 192.168.1.0 192.168.1.16. 192.168. 1.32 192.168.1.48 192.168.1.64 192.168.1.80 192.168.1.96 192.168.1.112 192.168.1.128 192.168.1.144 192.168.1.160 192.168.1.176 192.168.1.192 192.168.1.208 192.168.1.224 192.168.1.240

192.168.1.192

192.168.1.192
192.168.1.224

可变长子网掩码子网地址分析
?

掩码长度不同,网络地址相同的网络 ? 192.168.1.0/24 ---192.168.1.255/24
?

192.168.1.0/26 ---192.168.1.63/26
? ? ? ?

192.168.1.0 /28 ---192.168.1.15/28 192.168.1.16/28 ---192.168.1.31/28 192.168.1.32/28 ---192.168.1.47/28 192.168.1.48/28 ---192.168.1.63/28

? ? ?

192.168.1.64/26 ---192.168.1.127/26 192.168.1.128/26 ---192.168.1.191/26 192.168.1.192/26 ---192.168.1.255/26

现象:不同的子网掩码得出相同的网络地址。 本质:不同的掩码长度,指示不同的子网数。 不同的掩码长度,指示子网的大小或主机地址范围。 不同的掩码长度,相同的网络地址的网络是重叠的。 结论:须正确规划和管理子网地址,避免重叠使用

4.3.3 无分类编址 CIDR
? ?

子网技术缓解了因特网的地址不足。 1992 年因特网仍然面临三个必须解决的问题:
?

?

?

B类地址在1992年已分配了近一半,预计在1994 年3月全 部分配完毕 因特网主干网上的路由表中项目数急剧增长 ( 从几千个增 长到几万个) 整个IPv4 的地址空间最终将全部耗尽。

?

在VLSM 的基础上又进一步研究出无分类编址方法, 它 的 正 式 名 字 是 无 分 类 域 间 路 由 选 择 CIDR (Classless Inter-Domain Routing)。

CIDR 最主要的特点---使用网络前缀
?

?

CIDR 取消了传统的 A 类、B 类和 C 类地址以及划分子网 的概念。 CIDR使用各种长度的“网络前缀”(network-prefix)来代替 分类地址中的网络号和子网号 网络前缀用斜线记法:192.168.0.0/16
网络号的位数即网络前缀位数

192.168.0.0/16 相当给出 192.168.0.0 255.255.0.0 11111111 11000000 00000000 00000000
?

IP地址从三级编址回到了两级编址。 IP地址 ::= {<网络前缀>, <主机号>}

CIDR 网络的其他形式表示法
?

?

网络前缀/前缀位数表示方法: 如10.0.0.0/10 可简写为 10/10、 192.168/16 即将点分十进制中低位连续的 0 省略 二进制网络前缀的后面加一个星号 * 的表示方法: 如 0000101000* 星号 * 之前是网络前缀 星号 * 表示 IP 地址中的主机号,可以是任意值。 CIDR虽然不是划分子网,仍然使用“网络掩码--netmask‖ 这一名词(但不叫subnetmask 子网掩码)。

?

CIDR 地址块---CIDR 把网络前缀相同的 连续的 IP 地址组成“CIDR 地址块
128.14.32.0/20 表示的地址快(212 个地址)

最小地址 128.14.32.0
所有地址的 20 位 前缀都是一样的 /20 地址块

10000000 00001110 00100000 00000000 10000000 00001110 00100000 00000001 10000000 00001110 00100000 00000010 10000000 00001110 00100000 00000011 10000000 00001110 00100000 00000100 10000000 00001110 00100000 00000101

?

?

128.14.47.255 最大地址

10000000 00001110 00101111 11111011 10000000 00001110 00101111 11111100 10000000 00001110 00101111 11111101 10000000 00001110 00101111 11111110 10000000 00001110 00101111 11111111

路由聚合(route aggregation)
一个CIDR地址块可能包括很多网络地址。 ? 路由表中的一个项目可以表示很多个原来传统分类地址的路由。 ? 一个CIDR地址块代表多个网络地址称为路由聚合,也称构成超网。 例: 不采用CIDR技术, ISP路由器需发布64个C类网络表项的路由信息。 采用 CIDR 地址聚合后,地址聚合成 1 个表项” 206.0.64./18‖ ,就指向该 ISP ISP完成内部各网络路由 206.0.64.0/18 X大学 ISP 因特网
?

206.0.68.0/22

206.0.68.0/23
206.0.68.0/25 206.0.68.128/25 206.0.69.0/25 206.0.69.128/25

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.71.128/26 206.0.71.192/26

一系

206.0.70.0/26 206.0.70.64/26 206.0.70.128/26 206.0.70.192/26

二系

三系

四系

因特网

206.0.64.0/18

CIDR 地址块的路由表与聚合发布 ISP 按地理位置规划与分配
206.0.68.0/22

206.0.68.0/23 206.0.70.0/24 X大学
206.0.71.0/25 206.0.71.128/25

地址块,可以有效的实 施聚合,减少路由表项

206.0.68.0/23 206.0.68.0/25 206.0.68.128/25 206.0.69.0/25 206.0.69.128/25

206.0.70.0/24 206.0.70.0/26 206.0.70.64/26 206.0.70.128/26 206.0.70.192/26 单位 ISP 大学 一系 二系 三系 四系

206.0.71.128/25 206.0.71.0/25 206.0.71.0/26 206.0.71.64/26 206.0.71.128/26 206.0.71.192/26

二系

一系 聚合ISP内各用户 聚合X大学内各系 聚合一系 聚合二系 聚合三系 聚合四系

三系
二进制表示

四系
地址数

地址块 206.0.64.0/18 206.0.68.0/22 206.0.68.0/23 206.0.70.0/24 206.0.71.0/25 206.0.71.128/25

11001110.00000000.01* 16384 11001110.00000000.010001* 1024 11001110.00000000.0100010* 512 11001110.00000000.01000110.* 256 11001110.00000000.01000111.0* 128 11001110.00000000.01000111.1* 128

编址用例题
?

为图示网络构建一地址方案,包括各网段名称、各网络 前缀、设备接口地址和网络掩码。要求设计一列表表示。 注:无子网号使用限制。

编址用例解
网段 A-LAN B-LAN C-LAN D-LAN A-BWAN 网络前缀 192.168.27.0/26 192.168.24.0/23 192.168.27.64/26 192.168.26.0/24 192.168.27.128/30 设备/接口1地址 A-f0/1:192.168.27.1/26 B-f0/1:192.168.24.1/23 C-f0/1:192.168.27.65/26 D-f0/1:192.168.26.1/24 A-s0/1:192.168.27.129/30 设备/接口2地址 / / / / B-s0/1:192.168.27.130/30

A-CWAN

192.168.27.132/30

A-s0/2:192.168.27.133/30
A-s0/3:192.168.27.137/30

C-s0/1:192.168.27.134/30
D-s0/1:192.168.27.138/30

A-DWAN 192.168.27.136/30

路由表项的最长前缀匹配
?

?

使用 CIDR 时,路由表中的每个项目包括了: “网络前缀”、 “下一跳地址” 等。 在查找路由表时可能会得到不止一个匹配结果:例
? ?

收到的分组的目的地址 D = 206.0.71.128 路由表中的表项有: 206.0.68.0/22 (ISP) 206.0.71.128/25 (四系) D= 206. 0. 01000111. 10000000 AND (11111111 11111111 11111100 00000000) = 206.0.68.0/22 匹配 AND (11111111 11111111 11111111 10000000) = 206.0.71.128/25 匹配

? ?

网络前缀越长,其地址块就越小,因而路由就越具体 应当从匹配结果中选择具有最长网络前缀的路由: 206.0.71.128/25 最长前缀匹配(longest-prefix matching)。 最长前缀匹配又称为最长匹配或最佳匹配。

路由转发效率因素-----路由表查表时延
?

?

?

例1:一高端路由器,交换能力40Gbit/s或吞吐量 20Mpps(如:思科的12000系列、Juniper公司的M系列、 华为公司的NE80) ,计算线速转发的查表时延。 解. 查表时延≤1/20M=5×10-8s=50ns 例2:连接路由器的线路速率10Gbps(进口速率),分组 的平均长度为2000bit,计算线速转发的查表时延。 解. 包到达速率10Gbps/ 2000bit=5Mpps 查表时延≤1/5M=2×10-7s=200ns 查表时延直接影响排队缓冲区、拥塞控制机制设计和网 络性能

查表算法例举:
路由表增大,查找时延增大,路由器的查表算法很关键
?

?

循环查表 对路由表中每种前缀逐一循环查表,取最长匹配前缀.最坏需查表32遍。 二叉线索查找 ? 将路由表用一种层次数据结构存放,然后按层次进行查找。 ? IP地址从左到右的比特值决定了从根结点逐层向下层延伸的路径, 二叉线索中的各个路径就代表路由表中存放的各个前缀。 例:用 5 个前缀构成的二叉线索 32 位的 IP 地址 唯一 0100 0101 011 10110 10111 0 0 1

1
0 1 1

0
1

前缀 01000110 00000000 00000000 00000000 01010110 00000000 00000000 00000000 01100001 00000000 00000000 00000000 10110000 00000010 00000000 00000000 10111011 00001010 00000000 00000000

1
0 1

4.4 网际控制报文协议 ICMP
?
? ? ?

ICMP

(Internet Control Message Protocol)

?

TCP/IP协议族的一个子协议,属于IP层协议。 用于在IP主机、路由器之间传递控制消息。 控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的状 态消息。 ? 用于测试网络 ? 网络通不通、主机是否可达、路由是否可用等 ? 用于通告网络差错、异常 ? 网络不通、主机不可达、路由不可用等 ? 只报告差错,不负责纠正错误,纠错由高层协议处理; ? ICMP差错通告模式: ? 发现错误的设备只向信源机报告差错 ? 产生ICMP差错报告的同时,会丢弃出错的IP数据报 ? 用于拥塞和路径控制 控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的 (监控)作用

ICMP 报文的格式
?

ICMP 报文作为 IP数据报的净荷
0 类型 8 代码 16 检验和 31 ICMP差错报告报文 ?ICMP询问报文
?

(这 4 个字节取决于 ICMP 报文的类型) ICMP 的数据部分(长度取决于类型)

ICMP 报文
首 部 数 据 部 分 IP 数据报

Protocol = 1 ICMP

4.4.1 ICMP 报文的类型
: ICMP差错报告报文 类型 描述 0 回应应答(Ping应答,与类型8的Ping请求一起使用) 3 目的不可达 4 源点抑制 5 重定向 8 回应请求(Ping请求,与类型8的Ping应答一起使用) 9 路由器公告(与类型10一起使用) 10 路由器请求(与类型9一起使用) 11 超时 12 参数问题 13 时标(时间戳)请求(与类型14一起使用) 14 时标(时间戳)应答(与类型13一起使用) 15 信息请求(与类型16一起使用) 16 信息应答(与类型15一起使用) 17 地址掩码请求(与类型18一起使用) 18 地址掩码应答(与类型17一起使用)

:ICMP询问报文

ICMP 差错报告报文的数据字段的内容
IP 数据报的数据字段 IP 数据报 首部

收到的 IP 数据报

8 字节

ICMP 的 前 8 字节
首部

IP 数据报 首部

8 字节 ICMP 差错报告报文

ICMP 差错报告报文

装入 ICMP 报文的 IP 数据报

IP 数据报

ICMP 差错报告报文示例

差错IP数 据报首部

差错IP数据报数据字段前8字节

目的不可达差错报告报文 ---报告不可达的原因

Type=3 Code 0 = net unreachable; 1 = host unreachable; 2 = protocol unreachable; 3 = port unreachable; 4 = fragmentation needed and DF set; 5 = source route failed.

重定向差错报告报文:路径控制
----指导数据包的流向(使数据流向正确的网关)
Type=5 Code 0 = Redirect datagrams for the Network. 1 = Redirect datagrams for the Host. 2 = Redirect datagrams for the Type of Service and Network. 3 = Redirect datagrams for the Type of Service and Host. 例:R1将PC对R2 Lo0接口地址192.168.3.1的ICMP请求转发到R2的E0接口 192.168.1.254 , R2将ICMP应答消息发送给PC,R1并发送一ICMP重定向 消息给PC,通知PC对于PC请求的地址192.168.3.1的网关是:192.168.1.254。

源点抑制、超时和参数问题差错报告报文
源点抑制Type=4 Code 0
例:当一个路由器收到太多的数据报以至于用完了缓冲区,就丢弃一个数 据报,路由器同时向创建该数据报的主机发送一个源抑制报文。 当一台主机收到源抑制报文,就需要降低传送率。?拥塞控制

超时Type=11 Code 0 = time to live exceeded in transit;
生存时间(TIME TO LIVE)域减到零时

1 = fragment reassembly time exceeded.
一个数据报的所有段到达之前,重组计时器超时

参数问题Type=12 Code 0 = pointer indicates the error
坏的IP头部或缺少必要的选项

ICMP差错报告特殊处理
① ICMP差错报文本身不会再产生ICMP差错报告; ② 分片报文的非第一个分片不会产生ICMP差错报告; ③ 组播地址报文不会产生ICMP差错报告; ④ 特殊地址127.0.0.0和0.0.0.0的报文不会产生ICMP差错报告;

ICMP 询问报文
回送请求和回答报文 ? 时间戳请求和回答报文 下面的几种 ICMP 报文不再使用 ? 信息请求与回答报文 ? 掩码地址请求和回答报文 ? 路由器询问和通告报文
?

回送请求和回送应答报文
0 类型 8 代码 Identifier 标识 数据部分 16 检验和 31

Sequence Number 顺序号

=8 for echo message; =0 for echo reply message. Code =0 一个回应请求报文能发送给任何一台计算机上的ICMP软件。 对收到的一个回应请求报文,ICMP软件要发送一个回应应 答报文。应答携带了与请求一样的数据。

Type

时间戳请求和回答报文
0 类型 Identifier 8 代码 16 检验和 Sequence Number Originate Timestamp 31 Type 13 for timestamp message; 14 for timestamp reply message. Code =0

Receive Timestamp Transmit Timestamp
? ? ?

The Originate Timestamp is the time the sender last touched the message before sending it, The Receive Timestamp is the time the echoer first touched it on receipt, The Transmit Timestamp is the time the echoer last touched the message on sending it

4.4.2 ICMP的应用举例
? ? ?

用ICMP报文测试可达性
PING (Packet InterNet Groper 分组因特网探测器)

用ICMP跟踪路由 Traceroute 用ICMP发现路径MTU

PING (Packet InterNet Groper)
? ? ? ?

PING用来测试两个主机之间的连通性。 PING使用了ICMP回送请求与回送回答报文。 PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。 应用 测试本地协议的 ping 本地环回地址 (127.0.0.1)。 测试主机在本地网络的连通性, ping 网关地址。 测试与远程网络的连通性, ping远程。

PING 的应用举例

用ICMP跟踪路由机制
? ?

?
? ? ?

?

路由跟踪程序用类型30(路由跟踪)的ICMP报文或UDP给目 的主机发送数据包。 当使用UDP时,路由跟踪程序发送一个UDP数据报给目的 主机上一个不存在的应用程序。 发送的第一个数据包的TTL=1 发送的第二个数据包的TTL=2 。。。 数据包在到达主机前因路由器处理TTL-1=0,发回ICMP超 时差错报告。 当类型为30(路由跟踪)的ICMP报文或UDP报文到达不存在 对应的应用程序的目的主机时, ICMP会发送一个目的不 可达报文。 因而,每次跟踪路由程序发出一个数据报后,要么会从路 径上的另一个路由器收到一个I C M P超时报文,要么收到 一个从最终目的地发出的ICMP目的不可达报文。

用ICMP跟踪路由 Traceroute 的应用举例

用ICMP发现路径MTU
?

?

?

从源到目的地的一条路径上的最小的 MTU叫路径 MTU 当前实际采用的是576B和第一跳MTU中的较小者作 为任何不与源地址网络或者子网直接相连的目的地 址的PMTU。 思考一种实现技术

4.5 因特网的路由选择协议
4.5.1 有关路由选择协议的几个基本概念
?

?
? ?

路由器:提供了异构网互联机制,实现将一个网络的数据 包发送到另一个网络。 路由:指导数据包发送的路径信息。 路由协议:网络节点发现网络,交换路由信息,计算、维 护最佳路由的规定和标准。 路由协议的组成: (语法、语义和时序) ? 数据结构 - 表示交换、存储路由信息、路由表、数据 库的方式。 ? 路由协议消息 - 用于发现邻近的路由器、维护准确的 网络信息、交换路由信息的一组通信内容。 ? 路由算法 -基于路由信息计算和更新路由表的方法。

理想的路由算法
?

路由算法的设计目标:
? ? ?

? ? ?

算法必须是正确的和完整的。 算法在计算上应简单(低消耗)。 算法应能适应通信量和网络拓扑的变化 ( 自 适应性,灵活性) 。 算法应具有稳定性(快速收敛性)。 算法应是公平的。 算法应是最佳的(最优的)。

路由算法的主要分类(1)
?

?

?

?

静态与动态 静态—非自适应路由算法。 动态—自适应路由算法。 主机智能与路由器智能 主机智能—也称源路由。源结点决定整个路径,路由器只按源结点给出的 路径作存贮转发。 路由器智能—假定主机对路径一无所知,路由器基于自己的计算决定通过 网络的路径。 分布式与集中式 分布式—路由信息互相交换,但路由由节点各自计算的路由算法。 集中式—路由信息集中收集,路由集中计算、发布/获取的路由算法。 单路径与多路径 单路径—支持同一目的单条路由(路径)的路由算法。 多路径—支持同一目的多条路由(路径)及复用。

路由算法的主要分类(2)
?

?

?

?

平坦与分层 平坦—路由系统中,每个路由器与其它路由器是对等的。 分层—路由系统中,路由器层次化为主干(域)和非主干(域)路由 器,路由信息(或数据包)分域内和域间交换。 域内与域间。域---路由域或AS(自治系统) 域内—只支持单域结构网络工作的路由算法。用于在自治系统内部路由。 域间—支持多域结构网络工作的路由算法。用于在自治系统之间路由。 链接状态与距离向量 链接状态—也称最短路径优先算法,把链接状态作为路由信息散布到网络 的每个节点。 距离向量—也叫做Bellman-Ford算法,是指将可达网络的距离和方向作为路由 信息进行通告,传给其邻居节点。 有类和无类 有类路由协议--路由信息更新过程中不发送子网掩码信息。不支持 VLSM 和不连续网络。 无类路由协议--路由信息更新中,同时包括网络地址和子网掩码。

动态路由协议的分类及发展历程

动态路由协议的主要性能和适用性

Internet的路由结构
?

分层、分布式
主干网 核心路由器

R1

R2

Rn

自治系统1

自治系统2

自治系统AS: 一组处于同一管 理机构控制之下 的网络和路由器

自治系统n

AS间和AS内层级结构
主干(区域0)

AS1
区域

主干路由器
用 协 议 连 接 各 个 AS EGP

AS2

区域内部路由器

区域边界路由器

AS3

AS4

AS边界路由器

内部网关协议和外部网关协议
自治系统 A
R1 用内部网关协议 (例如,RIP)

自治系统 B
用外部网关协议 (例如,BGP-4) R2 用内部网关协议 (例如,OSPF)

?自治系统之间的路由选择--域间路由选择(interdomain routing) 由外部网关协议EGP (External Gateway Protocol) ,将路由选择信息传递到 另一个自治系统中的协议。如:BGP-4
?自治系统内部的路由选择-- 域内路由选择(intradomain

routing)

由内部网关协议 IGP (Interior Gateway Protocol),将路由选择信息在一个自治 系统内部传递的路由选择协议。如 RIP 和 OSPF 协议

内部网关协议和外部网关协议应用示意

4.5.2 内部网关协议
?

RIP(Routing Information Protocol)

工作原理 ? 分布式的基于距离向量的路由选择协议。 ? 路由器维护的信息包括: ? 可达目的网络:已知互联且可路由的网络。 ? 跳数=距离:使用跳数作为选择路径的度量。 路由器到直连的网络的距离0。 路由器到非直连网络的距离为所经过的路由器数加 1。 ? 下一跳=向量 转发接口 相邻路由器接口的IP地址

路由表建立过程
?

?

?

路由器在刚刚开 始工作时,只知 道到直接连接的 网络的距离。 以后,每个路由 器只和数目非常 有限的相邻路由 器交换并更新路 由信息。 经过若干次更新 后,所有的路由 器最终都会知道 到达本域中任何 一个网络的最短 距离和下一跳路 由器的地址。

RIPv1 协议用于路由更新的报文格式

RIPv1消息格式

RIPv1 消息的数据封装

距离向量算法---路由表更新算法 收到相邻路由器(其地址为 X)的一个 RIP 报文: (1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地 址都改为 X,并把所有的“距离”字段的值加 1。 (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤: if 项目中的目的网络不在路由表中then把该项目加到路由表中 else if 原下一跳=X then把收到的项目替换原路由表中的项目。 else if 项目中的距离<路由表中的距离then 进行更新, endif endif endif (3) 若 3 分钟(路由失效计时器超时 )还没有收到可刷新现有路由的 更新,则把此路由记为不可达,即将距离置为16 (4)若 4分钟(刷新计时器超时)还没有收到收到可刷新现有路由的 更新, 该目的的路由条目将被刷掉也就是直接删除。 (5) 返回。

RIP协议的基本属性
1. 有类IGP (内部网关路由协议) 2. 距离矢量路由协议 3.允许一条路径最多只能 15 个路由器。 4. ―距离”的最大值为16 时定义为不可达。 5.周期性(更新计时器)交换路由信息,缺省 30 秒不支持多 条路由。 6.仅和相邻路由器交换信息。 。 7.交换本路由器当前所知道的全部信息,即自己的路由表

RIP 协议的优缺点
?

优点
?

实现简单,计算开销较小
因交换路由表,随网络规模扩大,传输开销增加 因最大距离为15,支持较小网络规模 因周期交换路由信息,当有网络不可达时,需较长再次 收敛时间。

?

缺点
? ? ?

路由收敛示例---RIP的不稳定期
正 常 情 况 1 1 ? 网1 R1 网2 R2 1 2 R1 网3

―1‖表示“从本路由 器到网 1‖

―?‖表示“直接交付”

―1‖表示“距离是 1‖

R1 说:“我到网 1 的距离是 1,是直接交付。”

正 常 情 况

1 1 ?
网1 R1 网2

1 2 R1 网3 R2

―1‖表示“从本路由 器到网 1‖ ―2‖表示“距离是 2‖

―R1‖表示 经过 R1

R2 说:“我到网 1 的距离是 2,是经过 R1。”

正 常 情 况

1 1 ?
网1 R1 网2

1 2 R1 网3 R2

网1 R1 网 1出了故障 1 16 ?

网2 R2 1 2 R1

网3

R1 说:“我到网 1 的距离是 16 (表示无法到达), 是直接交付。”

但 R2 在收到 R1 的更新报文之前,还发送原来的报文, 因为这时 R2 并不知道 R1 出了故障。

正 常 情 况

1 1 ?
网1 R1 网2

1 2 R1 网3 R2

网1 R1 网 1出了故障 1 16 ? 1 3 R2

网2 R2 1 2 R1

网3

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

正 常 情 况

1 1 ?
网1 R1 网2

1 2 R1 网3 R2

网1 R1 网 1出了故障 1 16 ? 1 3 R2

网2 R2 1 2 R1 1 4 R1

网3

R2 以后又更新自己的路由表为“1, 4, R1‖,表明 “我到网 1 距离是 4,下一跳经过 R1‖。

正 常 情 况

1 1 ?
网1 R1 网2

1 2 R1 网3 R2

网1 R1 网 1出了故障 1 16 ? 1 3 R2

网2 R2 1 2 R1 1 4 R1 1 5 R2 1 16 R2

网3

这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增 大到16(最大距离)时,R1 和 R2 才知道网 1 是不可达的。



1 16 R1



RIP的不稳定期引发路由环路
?

起初稳定的路由表

?

10.4.0.0网络断开,R3发送更新前R2发送了更新,R3更新了 到“10.4.0.0的”错误“路由,网络现在出现了环路。

对RIP的改进----避免路由环路
?

?

?

? ?

?

定义最大度量(如16) :以防止计数至无穷,一旦路由器计数达到该 “无穷大”值,该路由就会被标记为不可达。 触发更新:当拓扑结构发生改变时,为了加速收敛,RIP 会在路由发 生改变后立即发送出去。 抑制计时器:指示路由器将那些可能会影响路由的更改保持一段特定 的时间,用来防止定期更新消息错误地恢复某条可能已经发生故障的 路由。 水平分割:路由器不能使用接收更新的同一接口来通告同一网络。 路由毒化:路由毒化用于在发往其它路由器的路由更新中将路由标记 为不可达,加速收敛过程。 带毒性反转的水平分割:毒性反转与水平分割技术的结合使用。从特 定接口向外发送更新时,将通过该接口获知的所有网络标示为不可达。

配置RIP
?

启用rip命令:router rip 功能:在该路由器启用rip动态路由协议 指定参与动态路由网络的命令: network Router(config-router)#network directlyconnected-classful-network-address 功能: 在属于某个指定网络的所有接口上启用 RIP。相关接口将开始发送和接收 RIP 更 新。

?

?

设置为被动接口命令:passive-interface Router(config-router)#passiveinterface interface-type interfacenumber 功能:阻止路由更新通过某个路由器接 口传输,但仍然允许向其它路由器通告 该网络。

检验和故障排除
解读show ip interface brief输出 解读 show ip route 输出 解读 show ip protocols 输出 解读 debug ip rip 输出

? ? ? ?

解读show ip interface brief输出
?

此命令显示简要的接口配置信息,可用于快速检测接口的启用状态

解读 show ip route 输出
查看:路由表是否完整 判断:配置或网络是否正常

解读 show ip protocols 输出,检测路由协议配置
?

表示路由器启用的路由 协议

?

?

?

显示该路由器协议的一 些计时器相关信息 过滤更新和重分布路由 相关信息 当前配置的 RIP 版本 和参与 RIP 更新的接 口相关信息
正在有类网络边界上总 结,并且默认情况下将 使用最多四条等价路由 执行流量负载均衡。 列出使用 network 命令 配置的有类网络。RIP 更新中包含这些网络。 Routing Information Sources 列出R2邻居: Gateway Distance 是 R2 的更新使用的 AD(管理距离)

?

?

?

解读 debug ip rip 输出 检测RIP更新等运行情况

?

停止监控rip命令,
no debug ip rip undebug all

RIPv1机制1:指定网络用有类网络地址
用Network命令指定有类网络地址即可 如指定网络时输入子网地址,路由器会自动将其转换到有类网络地址。 例如,如果输入命令network 172.30.1.0 network 172.30.2.0路由器 将把它转换为network 172.30.0.0

RIPv1机制2:自动汇总与边界路由器
? ?

? ?

RIP 是有类路由协议,它在 网络边界自动总结有类网络。 图中, R2 上的 Serial 0/0/0 和 FastEthernet 0/0 接口都 位于 172.30.0.0 边界内。 Serial 0/0/1 接口位于 192.168.4.0 边界内。 R2 在 一个以上的有类网中都有接 口。使 R2 成为 RIP 中的边 界路由器。 边界路由器汇总从一个主网 到另一个主网的 RIP 子网。 所以当从 R2 的 Serial 0/0/1 接口发送更新时,有关 172.30.1.0、172.30.2.0 和 172.30.3.0 网络的更新将自 动汇总到 172.30.0.0。

RIPv1机制3:RIPv1 处理更新的规则
规则1:如果某条路由更新及其接收接口属于相同的主网,则在路由更新中 对该网络应用接口的子网掩码。 规则2:如果某条路由更新及其接收接口属于不同的主网,则在路由更新中对 该网络应用网络的有类子网掩码-----缺省子网掩码 。例:
?

?

?

?

?

R2 在属于有类网络 (172.30.0.0) 的接口上收到该信息,而该有类 网络与传入的 172.30.1.0 更新所 属的网络相同。 R2 接收“172.30.1.0 in 1 hops‖ 消息的接口为 Serial 0/0/0,而该 接口的 IP 地址为 172.30.2.2,子 网掩码为 255.255.255.0 (/24)。 R2 在该接口上使用其自己的子 网掩码,并将其应用于该子网和 从该接口收到的所有其它 172.30.0.0 子网——本例中为 172.30.1.0。 172.30.1.0 /24 子网将添加到路 由表中。 运行 RIPv1 的路由器只能对属于 相同有类网络的所有子网使用相 同的子网掩码。

自动汇总和处理更新规则的缺点 ------不支持不连续网络

R1没有任何通往 R3 所连接的 LAN 的路由。 R3没有任何通往 R1 所连接的 LAN 的路由。 R2有两条通往 172.30.0.0 网络的等价路径。 R2将对目的地为 172.30.0.0 任意子网的流 量进行负载均衡。这表示无论流量是以 R1 还是 R3 所连接的其中一个 LAN 为 目的地,R1 和 R3 都将各承担一半的流 量。

RIPv2 对 RIPv1 进行的改进:
?

?

?
? ?

在路由更新中包含子网掩码,从而使协议变为无类路由协 议。 支持 VLSM和CIDR。 增加验证机制以确保路由表更新的安全性 使用组播地址代替广播地址。 支持手动汇总路由。

RIPv2 协议用于路由更新的报文格式
标志所使用的 协议地址。 路由域号码

4 字节 地址类型标识符 路由标记
网络地址 子网掩码 下一跳路由器地址 距离 (1-16)

4 字节
命令 版本

必为 0

首部

路由部分 RIP 报文

IP 首部

UDP 首部 UDP 用户数据报 IP 数据报

路由信息 (20 字节/路由) 可重复出现 最多 25 个

字段:Next Hop--下一跳路由器地址的作用
?

?

Next Hop 字段的用途: 标识比发送方路由器更佳的下一跳地址(如果存在,不存在该字段值为 0.0.0.0)。 避免数据包被路由经过格外的(不必要的)跳. 当RIP没有运行在一个 网络的所有路由器的时候该字段尤其有用。 例如:内部路由器 (IR1 and IR2) 仅运行 RIP-2. 外部路由器 XR2仅运行 BGP, XR1 即运行 BGP 又运行 RIP-2.

IR1
?

IR2

XR1

XR2

因 XR2 没有运行 RIP-2, IRs 不会知道XR2存在,既是XR2是比XR1更 好的下一跳也不会用其它。 自然XR1 知道该情况并可以用Next Hop 字段指示(IR1 and IR2) XR2是到达目的的更好的下一跳。

验证机制

0123301234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Command (1) | Version (1) | unused | +-------------------+---------------+-----------------------------------------------+ 0xFFFF | Authentication Type (2) | +------------------------------------+----------------------- -----------------------+ ~ Authentication (16) ~ +------------------------------------------------------------------------------------+ ? Currently, the only Authentication Type is simple password and it is type 2. ? The remaining 16 octets contain the plain text password.

4.5.3 内部网关协议 OSPF
(Open Shortest Path First)

OSPF基本属性
? ?

?
? ? ? ?

开放”是指OSPF 协议不是受某一家厂商控 制,而是公开发表的。 “最短路径优先”是因为使用了 Dijkstra 提出 的最短路径算法SPF 动态、路由器智能、无类IGP 分布式、链路状态协议 支持分层(主域和非主域)管理路由信息 支持多路径(最优和次优路径负载均衡) 支持多种距离度量(带宽、延时等)

OSPF的基本原理
各路由器交换并收敛图a例示实际的网络、路由器和链接状态信息库, 建立如图b例示的有向图,并计算到达目的最短路径
WAN1
A B C D E WAN2 I H LAN1 G 10 A B 2 3 2 L1
? ? ?

F J LAN2 F

图a

WAN3 W1 6 6 8 8 17 12 E 8

C

4 4

D

W2
13 H 8 5 I 5 12 W3 3

图b

4 2 L2

J

―链路状态”:本路由器相邻的路由器,链路的“度量”(metric)—权值。 串行链路两端的节点间一对有向线,各有权值 每多点接入的LAN或WAN设为一网络节点(实为某指定路由器),路由器到网络 节点的有向线有权值

G

概念:链接状态--链路的状态信息 链接状态
?

?

? ?

接口的 IP 地 址和子网掩码 网络类型,例 如以太网(广 播)链路或串 行点对点链路。 该链路的开销。 该链路上的所 有相邻路由器。

概念: OSPF 的区域(area)及其属性
?

? ? ? ? ? ?

OSPF支持将一个自治系统再划分为若干个更小的范围,叫作 区域,使OSPF能够用于规模很大的网络。 ? 限制交换链路状态信息的范围于每一个区域 ? 区域内部的路由器只需知道本区域的完整网络拓扑 每一个区域是一个或一组邻近的网络。 每个区域独立维护链接状态信息库,计算到达目的最短路径 区域不能重叠 各区域的拓扑结构对于外界是不可见的 每个区域都有一个 32 位的区域标识符(用点分十进制表示)。 区域也不能太大,在一个区域内的路由器最好不超过 200 个。

OSPF 划分为两种不同的区域
骨干/主干区域0.0.0.0和非主干区域x.x.x.x 至其他自治系统 自治系统 AS
R1 R3 R5 网2 网3 网5 R4 R8 网4

骨干区域 0.0.0.0
R6 网6

网1 R2

R7
网7

R9

网8

区域 0.0.0.1

区域 0.0.0.2

区域 0.0.0.3

OSPF中,AS、骨干和区域间的关系
?

?

AS1 结构 AS2 骨干路由器 OSPf建立一个由骨干区为中心 的星型层次结构,构件: 骨干 区域 ? 内部路由器 用 (区域0) 完全在区域的内部 ? 区域边界路由器 连接两个和多个区域 协 议 ? 骨干路由器 区域内部路由器 区域边界路由器 连 位于骨干区域 AS3 接 AS4 ? AS边界路由器 各 与其他AS中的路由器 通信 个 关系 区域内路径—经由内部路由器 区域间路径--必经由骨干区 AS间路径---经由AS边界路由器 AS边界
路由器 EGP AS

位于骨干区域的路由器称骨干路由器
至其他自治系统
自治系统 AS
R1 网1 R2 网3 网2 R3 R5 R4

主干区域 0.0.0.0 骨干路由器
R6 R7 网7 网4 网8 网6 R9

网5

R8

区域 0.0.0.1

区域 0.0.0.2

区域 0.0.0.3

连接两个和多个区域的路由器称区域边界路由器 至其他自治系统 自治系统 AS
R1 R3 R5 网2 网3 网5 R4 R8 网4

主干区域 0.0.0.0 区域边界路由器
R6 网6

网1 R2

R7
网7

R9

网8

区域 0.0.0.1

区域 0.0.0.2

区域 0.0.0.3

路由计算
?

基于链路状态信息交换来建 立链路状态数据库(link-state database) 。
基于链路状态数据库计算全 网的拓扑结构图。 基于拓扑结构图计算最短路 径树。 基于最短路径树构建路由表。

链路状态示例

?

?

?

路由计算-续

?

?

? ?

基于链路状态信息交换来建立链路 状态数据库(link-state database) 。 基于链路状态数据库计算全网的拓 扑结构图。 基于拓扑结构图计算最短路径树。
基于最短路径树构建路由表。

路由计算-续 由 SPF 树生成路由表

OSPF 分组
0 版 本 路 由 8

16
分 符 组 长 度

31
?

类 型 器 标 识

区 域 标 检 验 和 鉴




符 鉴
别 别







? ?

类型:OSPF 数据包类型: Hello (1)、DD (2)、LS 请求 (3)、 LS 更新 (4) 或 LS 确认 (5) 路由器 ID:始发路由器的 ID 区域 ID:数据包的始发区域

24 字节 OSPF 分组首部 类型 1 至类型 5 的 OSPF 分组

IP数据报首部

OSPF 分组
IP 数据报

OSPF 分组

OSPF 的五种分组类型
?

类型1,问候(Hello)分组。
Hello 为邻居路由器建立一种相邻关系。这些Hello 包持续在邻居之间互换,以实现 “保持生存”功能来监控邻居的状态。

?

类型2,数据库描述(Database Description)分组。
DBD数据包包含发送方路由器的链路状态数据库的简略列表,接收方路由器使用本 数据包与其本地链路状态数据库对比。

?

类型3,链路状态请求(Link State Request)分组。
LSR — 随后,接收方路由器可以通过发送链路状态请求 (LSR) 数据包来请求 DBD 中任何条目的有关详细信息。

?

类型4,链路状态更新(Link State Update)分组
LSU — 链路状态更新 (LSU) 数据包用于回复 LSR 和通告新信息。LSU 包含11种类 型的链路状态通告 (LSA)。

?

类型5,链路状态确认(Link State Acknowledgment) 分组。
LSAck — 路由器收到 LSU 后,会发送一个链路状态确认 (LSAck) 数据包来确认接 收到了 LSU

OSPF的基本操作
?

?

确定可达性

问候 问候
数据库描述

?

发现 OSPF 邻居 通告两台路由器建立相邻关系所必需 统一的参数,并建立相邻关系。 在以太网和帧中继网络等多路访问网 络中选举指定路由器 (DR) 和备用指 定路由器 (BDR)。

达到数据库的同步

数据库描述 数据库描述 数据库描述 链路状态请求

? ?

数据库描述分组交换已有链路状态摘要 两个同步的路由器叫做完全相邻的

新情况下 的同步

链路状态更新 链路状态确认

?

链路状态变化时的同步

Hello 数据包
?

?

? ? ?

?

网络掩码:与发送接口关联的子网 掩码 Hello 间隔:发送方路由器连续两次 发送 hello 数据包之间的秒数. 多路访问网段、点对点网段中每10 秒钟发送一次。 非广播多路访问 (NBMA) 网段每 30 秒钟发送。 Dead 间隔是路由器在宣告邻居进入 down(不可用)状态之前等待该设 备发送 Hello 数据包的时长。Cisco 默认断路间隔为 Hello 间隔的四倍。 路由器优先级:用于 DR/BDR 选举 DR:DR的路由器 ID(如果有的话) BDR:BDR的路由器 ID(如果有的 话) 邻居列表:列出相邻路由器的 OSPF 路由器 ID

链路状态更新 (LSU) 包含 11 种类型的链路状态 通告 (LSA),

OSPF 使用的是可靠的洪泛法
t1 R

更新报文

t2 R

t3
R

t4

ACK报文 R

t

单区域OSPF基本配置示例

4.5.4 外部网关协议 BGP
BGP基本属性 ? 不同自治系统的路由器之间交换路由信息的协议 ? 路径矢量路由协议, AS之间交换“可达路径”信息 ? 不以“路径代价”计算经过几个不同 AS的最佳路径(因难于计算出有意 义的经过几个不同 AS的路径代价)。 ? 路由选择必须考虑“政治、安全、经济”有关策略,寻找一条能够到达目 的网络且“比较好”的路径路由。 例:对于经过了某些特定AS的流量,不提供传输服务 国内站点间流量不应经过国外 起始和终止于IBM的流量不经过Microsoft 仅在到达下列网络时才经过ASx ? 策略不是协议的一部分,手工或脚本方式建立,强制用于跨越AS的流量 ? 支持CIDR ? 较新版本是2006年1月发表的BGP-4简写为BGP

BGP边界路由器( BGP发言人)和 自治系统 AS 的关系
AS1
BGP BGP 发言人 发言人

AS2

BGP 发言人 BGP 发言人 AS4

AS3

BGP 发言人
AS5

? ? ?

使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。 在此连接上交换 BGP 报文以建立 BGP 会话,利用 BGP 会话交换路由信息。 使用 TCP 连接能提供可靠的服务。

BGP 发言人交换路径向量 自治系统 AS2 的 BGP 发言人通知主干网的 BGP 发 言人:“要到达网络 N1, N2, N3 和 N4 可经过 AS2。”
本地 ISP(AS4) N 1, N 2 本地 ISP(AS5) N 3, N 4

地区 ISP (AS2) 主干网 (AS1) 地区 ISP (AS3)

本地 ISP(AS6) N5
本地 ISP(AS7) N 6, N 7

BGP 发言人交换路径向量 主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。”
本地 ISP(AS4) N 1, N 2 本地 ISP(AS5) N 3, N 4

地区 ISP (AS2) 主干网 (AS1) 地区 ISP (AS3)

本地 ISP(AS6) N5
本地 ISP(AS7) N 6, N 7

AS 的连通图举例
?

?

BGP 所交换的网络可达性的信息就是要到达某 个网络所要经过的一系列 AS。 BGP 发言人互相交换了网络可达性的信息后, 各 BGP 发言人就根据所采用的策略从收到的路 由信息中找出到达各 AS 的较好路由。
B C D F G H I J

AS1
AS3 AS4

AS2
E

A

AS5

BGP路由器路径选择举例
a.BGP选路计算
? ?

设:一组BGP路由器
A
B

C

?

F:因I、E的路径经过F,弃用 F:基于评判函数评判经由B或G的评 分值—-可视作“距离” F:如受某策略限制,评分值无穷大

D
G

F

E H I
J

b.BGP克服路由循环
? ? ?

设G崩溃或线路FG停用 收到到D的路径BCD 、IFGCD、 IFGCD‖ 可快速选用独立路径BCD

设: F从邻居收到如下有关 到D的信息: 来自B:“我使用BCD‖ 来自G:“我使用GCD‖ 来自 I: “我使用IFGCD‖ 来自E:“我使用IFGCD‖

4.5.6 路由器在网际互连中的作用 1. 路由器的结构
?

?

路由器是一种具有多个输入端口和多个输出端口的专用计算 机,其任务是转发分组。也就是说,将路由器某个输入端口 收到的分组,按照分组要去的目的地(即目的网络),把该 分组从路由器的某个合适的输出端口转发给下一跳路由器。 下一跳路由器也按照这种方法处理分组,直到该分组到达终 点为止。

典型的路由器的结构
3——网络层 2——数据链路层 1——物理层
输入端口 1

路由选择处理机
路由选择协议 路由表
输出端口

路由 选择

2
… 输入端口

3

分组处理 转发表

3

2
… 输出端口

1

分组 转发
1

1

2

3

交换结构

3

2

―转发”和“路由选择”的区别
?

?

?

― 转发” (forwarding) 就是路由器根据转发表将 用户的 IP 数据报从合适的端口转发出去。 “路由选择” (routing) 则是按照分布式算法, 根据从各相邻路由器得到的关于网络拓扑的变 化 情况,动态地改变所选择的路由。 路由表是根据路由选择算法得出的。而转发表 是从路由表得出的。

输入端口对线路上 收到的分组的处理
?

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

从 线 路 接 收 分 组

网络层处理 分组排队

物理层处理

数据链路层 处理 查表和转发

交 换 结 构

输出端口将交换结构传送来的分组发送到线路
?

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

交 换 结 构

分组丢弃
?

若路由器处理分组的速率赶不上分组进入 队列的速率,则队列的存储空间最终必定 减少到零,这就使后面再进入队列的分组 由于没有存储空间而只能被丢弃。 路由器中的输入或输出队列产生溢出是造 成分组丢失的重要原因。

?

2 交换结构
I1 总线 O1 存 储 器 (a) 通过存储器 I1 I2 I3 O2 O3 I1 I2 I3 (b) 通过总线 互连网络 O1 O2 O3

I2
I3

(c) 通过交换矩阵 O1 O2 O3

4.6 IP 多播
4.6.1 IP 多播的基本概念 视频服务器 M 90 个 R1 30 个 R2 R3 30 个 30个 R4 30 个 30 个

不使用多播时需要 发送 90 次单播

30 个







共有 90 个主机接收视频节目

多播可明显地减少 网络中资源的消耗
视频服务器 M 发送 1 次多播 1个 R1 1个 R2 R3 1个 1个 复制 1个 R4 1 个 多播 1 个

多播
多播组成员 共有 90 个

多播







IP 多播的一些特点 (1) 多播使用组地址—— IP 使用 D 类地址支 持多播。多播地址只能用于目的地址,而 不能用于源地址。 (2) 永久组地址——由因特网号码指派管理 局 IANA 负责指派。 (3) 动态的组成员 (4) 使用硬件进行多播

4.6.2 在局域网上进行硬件多播
?

?

?

因特网号码指派管理局 IANA 拥有的以太网地址 块的高 24 位为 00-00-5E。 因此 TCP/IP 协议使用的以太网多播地址块的范 围是:从 00-00-5E-00-00-00 到 00-00-5E-FF-FF-FF D 类 IP 地址可供分配的有 28 位,在这 28 位中 的前 5 位不能用来构成以太网硬件地址。

D 类 IP 地址 与以太网多播地址的映射关系

这 5 位不使用
0 8 16 24 31

D 类 IP 地址 1110
0 1 0 0 5 E

00000001 00000000 01011110 0

表示多播

最低 23 位来自 D 类 IP 地址

48 位以太网地址

4.6.3 网际组管理协议 IGMP 和多播路由选择协议

1. IP多播需要两种协议
?

?

为了使路由器知道多播组成员的信息, 需要利用网际组管理协议 IGMP (Internet Group Management Protocol)。 连接在局域网上的多播路由器还必须和 因特网上的其他多播路由器协同工作, 以便把多播数据报用最小代价传送给所 有的组成员。这就需要使用多播路由选 择协议。

IGMP 使多播路由器 知道多播组成员信息
128.56.24.34

135.27.74.52 IGMP R2

R1

IGMP

130.12.14.56 R3 IGMP IGMP

多播组 226.15.37.123 R4

130.12.14.43

IGMP 的本地使用范围
?

?

?

IGMP 并非在因特网范围内对所有多播 组成员进行管理的协议。 IGMP 不知道 IP 多播组包含的成员数, 也不知道这些成员都分布在哪些网络上。 IGMP 协议是让连接在本地局域网上的 多播路由器知道本局域网上是否有主机 (严格讲,是主机上的某个进程)参加 或退出了某个多播组。

多播路由选择协议 比单播路由选择协议复杂得多
?

?

?

多播转发必须动态地适应多播组成员的变化(这 时网络拓扑并未发生变化)。请注意,单播路由 选择通常是在网络拓扑发生变化时才需要更新路 由。 多播路由器在转发多播数据报时,不能仅仅根据 多播数据报中的目的地址,而是还要考虑这个多 播数据报从什么地方来和要到什么地方去。 多播数据报可以由没有加入多播组的主机发出, 也可以通过没有组成员接入的网络。

2. 网际组管理协议 IGMP
?

?

?

1989 年公布的 RFC 1112(IGMPv1) 早已成为了因特网的标准协议。 1997 年公布的 RFC 2236(IGMPv2, 建议标准)对 IGMPv1 进行了更新。 2002 年 10 月公布了 RFC 3376 (IGMPv3,建议标准),宣布 RFC 2236(IGMPv2)是陈旧的。

IGMP 是整个网际协议 IP 的一个组成部分
?

?

和 ICMP 相似,IGMP 使用 IP 数据报传递 其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。 因此,我们不把 IGMP 看成是一个单独的 协议,而是属于整个网际协议 IP 的一个组 成部分。

IGMP 可分为两个阶段
?

第一阶段:当某个主机加入新的多播组时, 该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地 的多播路由器收到 IGMP 报文后,将组成 员关系转发给因特网上的其他多播路由器。

IGMP 可分为两个阶段

?

?

?

第二阶段:因为组成员关系是动态的,因此本 地多播路由器要周期性地探询本地局域网上的 主机,以便知道这些主机是否还继续是组的成 员。 只要对某个组有一个主机响应,那么多播路由 器就认为这个组是活跃的。 但一个组在经过几次的探询后仍然没有一个主 机响应,则不再将该组的成员关系转发给其他 的多播路由器。

3. 多播路由选择
? ?

?

? ?

多播路由选择协议尚未标准化。 一个多播组中的成员是动态变化的,随时会有主机加 入或离开这个多播组。 多播路由选择实际上就是要找出以源主机为根结点的 多播转发树。 在多播转发树上的路由器不会收到重复的多播数据报。 对不同的多播组对应于不同的多播转发树。同一个多 播组,对不同的源点也会有不同的多播转发树。

转发多播数据报使用的方法 (1) 洪泛与剪除
?

?

这种方法适合于较小的多播组,而所有的组成员接入的 局域网也是相邻接的。 一开始,路由器转发多播数据报使用洪泛的方法(这就 是广播)。为了避免兜圈子,采用了叫做反向路径广播 RPB (Reverse Path Broadcasting)的策略。

RPB 的要点
?

?

?

路由器收到多播数据报时,先检查是否从源点经最短路 径传送来的。 若是,就向所有其他方向转发刚才收到的多播数据报 (但进入的方向除外),否则就丢弃而不转发。 如果存在几条同样长度的最短路径),那么只能选择一 条最短路径,选择的准则就是看这几条最短路径中的相 邻路由器谁的 IP 地址最小。

反向路径广播 RPB 和剪除
源点 R1 R2 转发多播数据报 收到后即丢弃

R3 剪除没有 组成员的树枝 R8

R4 R6

R5

R7

(2) 隧道技术(tunneling)
网1 (支持多播)
R1

网2 (支持多播) 不支持多播 的网络
R2

多播数据报

隧道 网 1 和网 2 中的多播数据报

首部

数 据

首部





隧道中通行的单播 IP 数据报

单播 IP 数据报

4.7 虚拟专用网 VPN 和网络地址转换 NAT
4.7.1 虚拟专用网 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 这些地址只能用于一个机构的内部通信,而不 能用于和因特网上的主机通信。 专用地址只能用作本地地址而不能用作全球地 址。在因特网中的所有路由器对目的地址是专 用地址的数据报一律不进行转发。

用隧道技术实现虚拟专用网
本地地址 全球地址 本地地址

125.1.2.3 部门 A X 10.1.0.1 R1

隧道

194.4.5.6 部门 B R2

因特网 使用隧道技术

Y 10.2.0.3

网络地址 = 10.1.0.0 (本地地址)

网络地址 = 10.2.0.0 (本地地址)

用隧道技术实现虚拟专用网
加密的从 X 到 Y 的内部数据报 外部数据报的数据部分 125.1.2.3 部门 A X 10.1.0.1 R1 数据报首部 隧道 194.4.5.6 部门 B 因特网 使用隧道技术 125.1.2.3 R1 部门 A 194.4.5.6 R2 部门 B R2 源地址:125.1.2.3 目的地址:194.4.5.6

Y 10.2.0.3

X 10.1.0.1

Y
10.2.0.3

虚拟专用网 VPN

内联网 intranet 和外联网 extranet (都是基于 TCP/IP 协议)
?

?

由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又 称为内联网(intranet),表示部门 A 和 B 都是在同一个机 构的内部。 一个机构和某些外部机构共同建立的虚拟专用网 VPN 又 称为外联网(extranet)。

X
部门 A

125.1.2.3 R1

194.4.5.6 R2 部门 B

Y
10.2.0.3

10.1.0.1
虚拟专用网 VPN

远程接入VPN
(remote access VPN)
?

?

有的公司可能没有分布在不同场所的部门,但有很多流 动员工在外地工作。公司需要和他们保持联系,远程接 入 VPN 可满足这种需求。 在外地工作的员工拨号接入因特网,而驻留在员工 PC 机中的 VPN 软件可在员工的 PC 机和公司的主机之间建 立 VPN 隧道,因而外地员工与公司通信的内容是保密的, 员工们感到好像就是使用公司内部的本地网络。

4.7.2 网络地址转换 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。

回顾--互联网(TCP/IP)体系结构最初的需求
? ? ? ? ? ? ?

互联各种网络 抗部分网络失效 支持多类型服务 资源分布式管理 较高的成本效益 主机易于连网 资源使用可计费

回顾--互联网(TCP/IP)体系结构的设计原则
? ? ? ? ? ?

开放性原则 通用性原则 可扩展性原则 分组交换原则 协议分层原则 透明性原则

? ?

异构性原则

各网络自治原则 ?尽力而为传输模型 ?无状态路由设备 ?分布式控制原则 ?端到端通信原则

讨论1
?

IP地址编址方案的几次改变主要是应对怎样的需求? 要点: 哪几次改变?(有类网络--》子网(包括VLSM)--》CIDR) 改了什么? 为什么要改? 举例说明每次改变的效用!

讨论2
?

IP地址的每次编址方案的改变对寻址计算有什么相应要求? 要点: 哪几次改变?(有类网络--》子网(包括VLSM)--》CIDR) 改了什么? 每次改变对寻址计算有什么功能扩展的要求? 举例说明每种编址方案下的寻址计算过程!

讨论3
?

?

无类别域间路由(CIDR)的“域”是怎样的一个寻址范 围? 要点: 何为CIDR的“域”? 理想的CIDR―域”应该怎样划分? CIDR―域”寻址时的“域”判定依据是什么? 从“域”的划分和判定可见“域”的怎样的范围特性? CIDR的“域间”路由与原来的有类网络的“网络间路由” 的区域、及其区域结构有何不同? “间”寻址依据各是怎 样的? 要点: 何为CIDR的“域”? 何为“有类网络”? CIDR的“域”和“有类网络”的寻址范围区域定义是怎 样的不同? 区域结构有何不同?

无类别域间路由(CIDR)的“域”有怎样的一个寻址范围?
? ?

?

?

何为CIDR的“域”?用前缀定义的网络地址块。 理想的CIDR―域”应该怎样划分?按可最大聚合和最 有效地址利用原则划分。 CIDR―域”寻址时的“域”判定依据是什么?按最长 前缀匹配。 从“域”的划分和判定可见“域”有怎样的寻址范围 特性?理想的CIDR―域按可最大聚合和最有效地址利 用原则划分。范围可按二进制指数划分定义块的大小。 所有寻址区域均按前缀计算确定,按最长前缀匹配确 定寻址范围。

的区域及其区域结构有何不同? “间”寻址依据各是怎样 的?
? ?

?

?

?

何为CIDR的“域”?可用前缀灵活定义的网络地址块。 何为有类网络?寻址范围按A、B、C等级固定定义的网络地址范 围。 CIDR的“域”和“有类网络”的寻址范围定义是怎样的不同? CIDR的“域”寻址范围是可用前缀灵活定义的网络地址块。有 类网络”的寻址范围只能按A、B、C等级固定定义的网络。 区域结构有何不同?理想的CIDR―域”可按最大聚合结构和最有 效地址利用原则按需规划定义地址块及其结构。 “有类网络”无网络地址块之间的结构性。 “间”寻址依据各是怎样的?“域” “间” 寻址按前缀计算的 地址块构建路由表以确定“域”的所在,“有类网络” “间” 寻址按类定义的“网络” 并构建路由表以确定“网络”的所在。

讨论4
?

―子网”与 “超网”概念下IP地址规划设计有不同吗? 要点:

何谓“子网” ?何谓“超网”? “子网”概念下的地址规划与设计的可能范围? “超网”概念下的地址规划与设计的可能范围? 地址规划与设计时各自和寻址技术有什么关联?

讨论5
?

本地/私有地址、网络地址转换(NAT) 、虚拟专用网络 (VPN)针对编址、寻址、转发、封装做了怎样的扩展?
要点 什么是本地/私有地址?什么NAT?什么是VPN ? 本地/私有地址对编址方案的怎样的扩展? 对本地/私有地址的寻址、转发有怎样的限制? NAT是怎样实现对私有地址的寻址、转发的?做了哪些封装操作? VPN是怎样实现对私有地址的寻址、转发的?做了哪些封装操作?


相关文章:
网络中的七层模型、五层模型、四层模型
将运输层中的报文段或用户数据报封装成 IP 数据报;选择合适路由 4、数据链路层:负责将网络层的 IP 数据报组装成帧 5、物理层:透明地传输比特流 三:TCP/IP ...
OSI七层结构与TCPIP4层结构
OSI七层结构与TCPIP4层结构_计算机硬件及网络_IT/计算机_专业资料。具体 7 层 应用层 Application 表示层 Presentation 会话层 Session 数据格式 功能与连接方式 ...
计算机网络(第5版)课后习题答案:第4章 网络层
网络层 4-01. 网络层向上提供的服务有哪两种?试比较其优缺点。 答:网络层向运输层提供 “面向连接”虚电路(Virtual Circuit)服务或“无连接”数据报服...
实验4 网络层协议分析
实验4 网络层协议分析 隐藏>> 运城学院实验报告专 姓业: 计算机科学与技术 系(班) :计算机科学与技术系 1001 班 课程名称: 计算机网络基础 名:陈振北(20101001...
计算机网络 第四章网络层
。 个字节。下一代 IP 2、 以 ISO 的七层模型为基准,网桥工作在 3、 OSPF 是 INTERNET 上的主要内部网关协议,它的中文含义是 4、 在数据报服务中,网络...
第4章 网络层测试
4网络层测试_IT/计算机_专业资料。计算机网络第章练习题 第4网络层测试 一、选择 1、关于 IP 互联网的描述中,错误的是( )。 A.隐藏了底层物理...
第4章网络层-1
4网络层-1_IT/计算机_专业资料。计算机网络与通信授课时间 授课方式 2012.3.26 课程教案课次 课时 安排 11 2 理论课□ 讨论课□ 实验课□ 习题课□ 其...
第4章网络层-3
暂无评价 3页 免费 第4网络层-5 4页 免费 第1章概述2 3页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 ...
第4章网络层-5
4网络层-5_IT/计算机_专业资料。计算机网络与通信授课时间 授课方式 2012.4.16 课程教案课次 课时 安排 15 2 理论课□ 讨论课□ 实验课□ 习题课□ 其...
第4章 网络层
3、在网络层中,面向连接的网络服务与无连接的网络服务的具体实现是( )和( )。 4、当数据报在物理网络中进行传输时,IP 地址被转换成( ) 地址。 5、 地址 ...
更多相关标签:
网络层 | 网络层协议 | 网络层协议有哪些 | 物联网网络层 | 网络层的主要功能 | 网络层的功能 | 网络层设备 | 网络层 传输层 |