北京交通大学电气工程学院 黄彧第七章 网络互连主要内容基本内容:网络互联基本概念,网际协议 IP,划分子网和构造超网,因特网的控制报文协议 ICMP和路由选择选择协议,下一代网际协议 IPv6。
重点掌握路由器的组成和作用网际协议 IP的基本组成及工作原理三类 IP地址:分类 IP地址,子网的划分,构造超网
IP地址与硬件地址的区别
IP数据报的格式以及如何实现数据报分片因特网控制报文协议 ICMP的基本数据格式内部网关协议 RIP的距离向量算法
IPv6的基本首部格式与地址表示方法
7.1 路由器在网际互连中的作用
7.1.1 路由器的构成间接交付间接交付 间接交付
A
B
C
直接交付直接交付直接交付不需要使用路由器间接交付就必须使用路由器典型的路由器的结构路由选择路由选择处理机路由选择协议路由表
3
输入端口
3 交换结构输入端口输出端口分组转发转发表分组处理输出端口
… …
1
11
3
3
1 2
2
2
2
3——网络层
2——数据链路层
1——物理层
―转发”和“路由选择”的区别
―转发,(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去 。
,路由选择,(routing)则是按照分布式算法,
根据从各相邻路由器得到的关于网络拓扑的变化 情况,动态地改变所选择的路由 。
路由表是根据路由选择算法得出的 。 而转发表是从路由表得出的 。
在讨论路由选择的原理时,往往不去区分转发表和路由表的区别 。
互连在一起的网络要进行通信,会遇到许多问题需要解决,如:
不同的寻址方案不同的最大分组长度不同的网络接入机制不同的超时控制不同的差错恢复方法不同的状态报告方法不同的路由选择技术不同的用户接入控制不同的服务(面向连接服务和无连接服务)
不同的管理与控制方式
7.1.2 互联网与因特网中间设备 又称为 中间系统 或 中继 (relay)系统。
物理层中继系统,转发器 (repeater)
数据链路层中继系统,网桥 或 桥接器 (bridge)
网络层中继系统,路由器 (router)
网桥和路由器的混合物,桥路器 (brouter)
网络层以上的中继系统,网关 (gateway)
中间设备互连网络与虚拟互连网络网络网络网络网络网络
(a) 互连网络 (b) 虚拟互连网络路由器虚拟互连网络
( IP 网)
7.2 因特网的网际协议 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
7.2.1 分类的 IP 地址
IP 地址及其表示方法
IP 地址是给每个连接在因特网上的主机
( 或路由器 ) 分配一个在全世界范围是惟一的 32 bit 的标识符 。
IP 地址现在由因特网名字与号码指派公司
ICANN (Internet Corporation for
Assigned Names and Numbers)进行分配点分十进制记法
10000000000010110000001100011111 机器中存放的 IP 地址是 32 bit 二进制代码
10000000 00001011 00000011 00011111 每隔 8 bit 插入一个空格能够提高可读性采用点分十进制记法则进一步提高可读性 128.11.3.31
128 11 3 31 将每 8 bit 的二进制数转换为十进制数
IP 地址的编址方法分类的 IP 地址,最基本的编址方法,在
1981 年就通过了相应的标准协议 。
子网的划分,对最基本的编址方法的改进,
其标准 [RFC 950]在 1985 年通过 。
构成超网,比较新的无分类编址方法 。
1993 年提出后很快就得到推广应用 。
分类 IP 地址每一类地址都由两个固定长度的字段组成,
其中一个字段是网络号 net-id,它标志主机 ( 或路由器 ) 所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机 ( 或路由器 ) 。
两级的 IP 地址可以记为:
IP 地址,:= { <网络号 >,<主机号 >} (7-1)
路由器转发分组的步骤先按所要找的 IP 地址中的网络号 net-id
把目的网络找到 。
当分组到达目的网络后,再利用主机号
host-id 将数据报直接交付给目的主机 。
按照整数字节划分 net-id 字段和 host-id
字段,就可以使路由器在收到一个分组时能够更快地将地址中的网络号提取出来 。
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
net-id
24 bit
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
A 类地址的网络号字段 net-id 为 1 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
B 类地址的网络号字段 net-id 为 2 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
C 类地址的网络号字段 net-id 为 3 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
A 类地址的主机号字段 host-id 为 3 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
B 类地址的主机号字段 host-id 为 2 字节
net-id
24 bit
IP 地址中的网络号字段和主机号字段
host-id
24 bit
net-id
8 bit
0A 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
net-id
16 bit
host-id
16 bit
B 类地址 01
C 类地址的主机号字段 host-id 为 1 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
D 类地址是多播地址
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
E 类地址保留为今后使用
A类地址
IP 地址的使用范围网络 最大 第一个 最后一个 每个网络类别 网络数 可用的 可用的 中最大的网络号 网络号 主机数
A 126 (27 – 2) 1 126 16,777,214
B 16,383 (214 – 1) 128.1 191.255 65,534
C 2,097,151 (221 – 1) 192.0.1 223.255.255 254
host-id
24 bit
net-id
8 bit
0A 类地址
B类地址
IP 地址的使用范围网络 最大 第一个 最后一个 每个网络类别 网络数 可用的 可用的 中最大的网络号 网络号 主机数
A 126 (27 – 2) 1 126 16,777,214
B 16,383 (214 – 1) 128.1 191.255 65,534
C 2,097,151 (221 – 1) 192.0.1 223.255.255 254
net-id
16 bit
host-id
16 bit
B 类地址 01
C类地址
IP 地址的使用范围网络 最大 第一个 最后一个 每个网络类别 网络数 可用的 可用的 中最大的网络号 网络号 主机数
A 126 (27 – 2) 1 126 16,777,214
B 16,383 (214- 1) 128.1 191.255 65,534
C 2,097,151 (221- 1) 192.0.1 223.255.255 254
net-id
24 bit
C 类地址 01 1
host-id
8 bit
网络 172.16.0.0
主机 0.0.3.10
主机 0.0.3.15
172.16.0.0
IP地址举例
172.16.3.10 172.16.3.15
高位比特 十进制 地址类型
0
10
110
1110
1111
1 – 126
128 – 191
192 – 223
224 – 239
240 – 255
A
B
C
D
E
问题:如何快速准确判断分类地址?
方法,地址类型判断 ——高位比特地址 类型 网络号 主机号
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A 10.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A 0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B 128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B 0.0.2.100128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
C
0.0.2.100128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
C 201.222.5.0
0.0.2.100128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
C 0.0.0.64201.222.5.0
0.0.2.100128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
C
C
B 0.0.64.16130.113.0.0
0.0.0.2192.6.141.0
0.0.0.64201.222.5.0
0.0.2.100128.63.0.0
0.2.1.110.0.0.0
Nonexistent
00000000 ~ 11111111 (二进制 ) ––– 0 ~ 255 (十进制 )
练习,IP地址分类
IP 地址的一些重要特点
(1) IP 地址是一种分等级的地址结构 。 分两个等级的好处是:
第一,IP地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配 。 这样就方便了 IP 地址的管理 。
第二,路由器仅根据目的主机所连接的网络号来转发分组 ( 而不考虑目的主机号 ),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间 。
IP 地址的一些重要特点
(2) 实际上 IP 地址是标志一个主机 ( 或路由器 ) 和一条链路的接口 。
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号
net-id 必须是不同的 。 这种主机称为 多接口主机
(multihomed host)。
由于一个路由器至少应当连接到两个网络 ( 这样它才能将 IP 数据报从一个网络转发到另一个网络 ),因此一个路由器至少应当有两个不同的 IP
地址 。
IP 地址的一些重要特点
(3) 用 转发器 或 网桥 连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
(4) 所有分配到网络号 net-id 的网络,范围很小的局域网,还是覆盖很大地理范围的广域网,都是平等的 。
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网在同一个局域网上的主机或路由器的
IP 地址中的网络号必须是一样的。
图中的网络号就是 IP 地址中的 net-id
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网在同一个局域网上的主机或路由器的
IP 地址中的网络号必须是一样的。
图中的网络号就是 IP 地址中的 net-id
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网在同一个局域网上的主机或路由器的
IP 地址中的网络号必须是一样的。
图中的网络号就是 IP 地址中的 net-id
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网在同一个局域网上的主机或路由器的
IP 地址中的网络号必须是一样的。
图中的网络号就是 IP 地址中的 net-id
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网路由器总是具有两个或两个以上的 IP 地址。
路由器的每一个接口都有一个不同网络号的 IP 地址。
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网路由器总是具有两个或两个以上的 IP 地址。
路由器的每一个接口都有一个不同网络号的 IP 地址。
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网路由器总是具有两个或两个以上的 IP 地址。
路由器的每一个接口都有一个不同网络号的 IP 地址。
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网两个路由器直接相连的接口处,可指明也可不指明
IP 地址。
7.2.2 IP 地址与硬件地址
TCP 报文
IP 数据报
MAC 帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上使用 IP 地址
IP 地址
HA1 HA5HA4HA3 HA6
主机 H1 主机 H2
路由器 R1硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网通信的路径
H1→ 经过 R1 转发 → 再经过 R2 转发 → H2
查找路由表 查找路由表
HA1 HA5HA4HA3 HA6
主机 H1 主机 H2
路由器 R1硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报从协议栈的层次上看数据的流动
HA1 HA5HA4HA3 HA6
主机 H1 主机 H2
路由器 R1硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报从虚拟的 IP 层上看 IP 数据报的流动
HA1 HA5HA4HA3 HA6
主机 H1 主机 H2
路由器 R1硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报在链路上看 MAC 帧的流动
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 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 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报路由器只根据目的站的 IP 地址的网络号进行路由选择
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
IP2
IP4IP3 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 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
MAC 帧从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报
IP层抽象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信
7.2.3 地址解析协议 ARP 和逆地址解析协议 RARP
每一个主机都设有一个 ARP 高速缓存 (ARP cache),
里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP
地址。
有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC
帧。
无,运行 ARP获得 B的硬件地址。
ARP:已知 IP地址得到硬件地址情况
ARP 响应
A YX B Z
主机 B 向 A 发送
ARP 响应分组主机 A 广播发送
ARP 请求分组
ARP 请求 ARP 请求 ARP 请求ARP 请求
209.0.0.5 209.0.0.6
00-00-C0-15-AD-18
08-00-2B-00-EE-0A
我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18
我想知道主机 209.0.0.6 的硬件地址我是 209.0.0.6
硬件地址是 08-00-2B-00-EE-0A
A YX B Z
209.0.0.5 209.0.0.6
00-00-C0-15-AD-18
应当注意的问题
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题 。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络 。 剩下的工作就由下一个网络来做 。
逆地址解析协议 RARP
逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。
这种主机往往是无盘工作站。 因此 RARP
协议目前已很少使用。
7.2.4 IP 数据报的格式一个 IP 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,
是所有 IP 数据报必须具有的。
在首部的固定部分的后面是一些可选字段,
其长度是可变的。
固定部分可变部分
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特数 据 部 分首 部传送
IP 数据报首部首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特数 据 部 分首 部传送
IP 数据报固定部分可变部分首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分版本 ——占 4 bit,指 IP协议的版本目前的 IP 协议版本号为 4 (即 IPv4)
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分首部长度 ——占 4 bit,可表示的最大数值是 15 个单位 (一个单位为 4 字节 )
因此 IP 的首部长度的最大值是 60字节。
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分服务类型 ——占 8 bit,用来获得更好的服务这个字段以前一直没有被人们使用首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分总长度 ——占 16 bit,指首部和数据之和的长度,
单位为字节,因此数据报的最大长度为 65535 字节。
总长度必须不超过最大传送单元 MTU。
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分标识 (identification) 占 16 bit,
它是一个计数器,用来产生数据报的标识。
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分标志 (flag) 占 3 bit,
MF 是否还有分片 DF 是否能分片首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分片偏移 (12 bit)指出:较长的分组在分片后某片在原分组中的相对位置。
片偏移以 8 个字节为偏移单位。
IP 数据报分片的举例例题:一数据报总长度为 3820字节,使用固定首部,
需要分片的长度不能超过 1420字节,如何实现?
偏移 = 0/8 = 0
偏移 = 0/8
= 0
偏移 = 1400/8 = 175 偏移 = 2800/8 = 350
1400 2800 379927991399
3799
需分片的数据报数据报片 1
首部数据部分共 3800 字节首部 1 首部 2 首部 3
字节 0
数据报片 2 数据报片 3
1400 2800字节 0
MF=1 DF=0 MF=1 DF=0 MF=0 DF=0
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分生存时间 (8 bit)记为 TTL (Time To Live)
数据报在网络中的寿命,其单位为秒。
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分协议 (8 bit)字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程运输层网络层 首部
TCP UDP
ICMP IGMP OSPF
数 据 部 分
IP 数据报协议字段指出应将数据部分交给哪一个进程协议名 ICMP IGMP TCP EGP IGP UDP IPv6 OSPF
字段值 1 2 6 8 9 17 41 89
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分首部检验和 (16 bit)字段只检验数据报的首部不包括数据部分。
这里不采用 CRC 检验码而采用简单的计算方法。
发送端 接收端
16 bit字 1
16 bit字 2
置为全 0检验和
16 bit字 n
16 bit反码算术运算求和
…
…
取反码数据报首部
IP 数据报
16 bit检验和
16 bit字 1
16 bit字 2
16 bit检验和
16 bit字 n
16 bit反码算术运算求和
16 bit结果
…
…
取反码数据部分若结果为 0,则保留;
否则,丢弃该数据报数据部分不参与检验和的计算首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分源地址和目的地址都各占 4 字节
2,IP 数据报首部的可变部分
IP 首部的可变部分就是一个选项字段,用来支持排错,测量以及安全等措施,内容很丰富 。
选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目 。
增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的 。 这就增加了每一个路由器处理数据报的开销 。
实际上这些选项很少被使用 。
7.2.5 IP 层转发分组的流程路由器和结点交换机有些区别:
路由器是用来连接不同的网络,而结点交换机只是在一个特定的网络中工作。
路由器是专门用来转发分组的,而结点交换机还可接上许多个主机。
路由器使用统一的 IP 协议,而结点交换机使用所在广域网的特定协议。
路由器根据目的网络地址找出下一个路由器,而结点交换机则根据目的站所接入的交换机号找出下一跳(即下一个结点交换机)。
网 1
10.0.0.0
网 4
40.0.0.0
网 3
30.0.0.0
网 2
20.0.0.0
10.0.0.4 40.0.0.430.0.0.220.0.0.920.0.0.7
目的主机所在的网络 下一跳路由器的地址
20.0.0.0
30.0.0.0
10.0.0.0
40.0.0.0
20.0.0.7
30.0.0.1
直接交付,接口 1
直接交付,接口 0
路由器 R2 的路由表
30.0.0.1
10.0.0.4 40.0.0.430.0.0.220.0.0.920.0.0.7 30.0.0.1
链路 4链路 3链路 2链路 1
R2 R3R1
0 1
R2 R3R1
在路由表中,对每一条路由,最主要的是
(目的网络地址,下一跳地址)
特定主机路由这种路由是为特定的目的主机指明一个路由。
采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
7.3 划分子网和构造超网 7.3.1 划分子网
1,从两级 IP 地址到三级 IP 地址在 ARPANET 的早期,IP 地址的设计确实不够合理 。
IP 地址空间的利用率有时很低 。
给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏 。
两级的 IP 地址不够灵活 。
从 1985 年起在 IP 地址中又增加了一个
“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址 。
这种做法叫作 划分子网 (subnetting) 。划分子网已成为因特网的正式标准协议。
三级的 IP 地址划分子网纯属一个 单位内部的事情 。 单位对外仍然表现为没有划分子网的网络 。
从主机号 借用 若干个比特作为 子网号 subnet-id,
而主机号 host-id 也就相应减少了若干个比特 。
IP地址,:= {<网络号 >,<子网号 >,<主机号 >} (7-2)
划分子网的基本思路
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.10145.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
R1R
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-idsubnet-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 地址的默认子网掩码练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B 172.16.2.0
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
A
172.16.2.0
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
A
172.16.2.0
10.12.0.0
10.13.24.20
255.252.0.0 11111111 11111100 0000000000000000
00001010
00001010
00001101
00001100 00000000
00010100
00000000
00011000
10,12,0,0
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
A
A
172.16.2.0
10.12.0.0
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
A
A
172.16.2.0
10.12.0.0
10.30.36.0
练习:子网掩码在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。
但在划分子网的情况下,从 IP地址却不能惟一地得出网络地址来。
网络地址取决于那个网络所采用的子网掩码数据报的首部并没有提供子网掩码的信息因此分组转发的算法也必须做相应的改动。
7.3.2 使用子网掩码的分组转发过程
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.1380
1
128.30.33.129
H3
128.30.36.2
子网 3:网络地址 128.30.36.0
子网掩码 255.255.255.0128.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.0128.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.0128.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
128,30,33.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.0128.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.0128.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.0128.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 的地址空间最终将全部耗尽 。
7.3.3 无分类编址 CIDR
1,网络前缀
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地址,:= {<网络前缀 >,<主机号 >} (7-3)
CIDR 还使用,斜线记法,(slash notation),它又称为 CIDR记法,
128.14.46.34/20
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)
CIDR 记法的其他形式
10.0.0.0/10 可简写为 10/10,也就是将点分十进制中低位连续的 0 省略 。
10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的 掩码 是 255.192.0.0。 此掩码可表示为
11111111 11000000 00000000 00000000
255 192 0 0
掩码中有 10 个连续的 1
网络前缀 + 星号 *
eg,00001010 00*
CIDR 地址块划分举例因特网 206.0.68.0/22206.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/25206.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/22206.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/25206.0.68.0/23
这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。
2,最长前缀匹配使用 CIDR 时,路由表中的每个项目由,网络前缀,和,下一跳地址,组成 。 在查找路由表时可能会得到不止一个匹配结果 。
应当从匹配结果中选择具有最长网络前缀的路由,最长前缀匹配 (longest-prefix matching)。
网络前缀越长,其地址块就越小,因而路由就越具体 。
最长前缀匹配又称为 最长匹配 或 最佳匹配 。
最长前缀匹配举例收到的分组的目的地址 D = 206.0.71.130/22
路由表中的项目,206.0.68.0/22 ( ISP)
206.0.71.128/25 (四系)
查找路由表中的第 1 个项目
AND D = 206,0,01000111.10000010
第 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/22
路由表中的项目,206.0.68.0/22 ( ISP)
206.0.71.128/25 (四系)
再查找路由表中的第 2 个项目
AND D = 206,0,71,10000010
第 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 匹配选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。
7.4 因特网控制报文协议 ICMP
为了提高 IP 数据报交付成功的机会,在网际层使用了因特网控制报文协议 ICMP (Internet
Control Message Protocol)。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 不是高层协议,而是 IP 层的协议。
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
ICMP 报文的格式首 部
ICMP 报文
0
数 据 部 分检验和类型 代码
(这 4 个字节取决于 ICMP 报文的类型)
8 16 31
IP 数据报前 4 个字节都是一样的
ICMP 的数据部分(长度取决于类型)
ICMP 报文
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文 。
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型,代码和检验和 。 接着的 4 个字节的内容与 ICMP 的类型有关 。
ICMP 差错报告报文共有 5 种目的站不可达源站抑制时间超过参数问题改变路由 ( 重定向 )
ICMP 差错报告报文的数据字段的内容首部
IP 数据报
ICMP 的前 8 字节装入 ICMP 报文的 IP 数据报
IP 数据报首部
ICMP 差错报告报文
8
字节收到的 IP 数据报
IP 数据报首部
8
字节
ICMP 差错报告报文
IP 数据报的数据字段不应发送 ICMP 差错报告报文的几种情况
ICMP 差错报告报文对第一个分片的数据报片的所有后续数据报片具有多播地址的数据报对具有特殊地址 ( 如 127.0.0.0 或
0.0.0.0) 的数据报
ICMP 询问报文有四种回送请求和回答报文
eg,PING (Packet InterNet Groper)
时间戳请求和回答报文掩码地址请求和回答报文路由器询问和通告报文
7.5 因特网的路由选择协议
7.5.1 分层次的路由选择协议因特网采用分层次的路由选择协议。
因特网的规模非常大。
许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),
但同时还希望连接到因特网上。
因特网将整个互联网划分为许多较小的自治系统
AS( autonomous system)。
一个自治系统是一个互联网,其最重要的特点就是自治系统有权自主地决定在本系统内应采用何种路由选择协议。
因特网有两大类路由选择协议内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议 。 目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议 。
外部网关协议 EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中 。 这样的协议就是外部网关协议 EGP。 在外部网关协议中目前使用最多的是 BGP-4。
R1H
1 H
2
内部网关协议
IGP
(例如,RIP)
自治系统 A
自治系统 B自治系统 C
IGPIGP IGP
IGP
IGP
IGP
IGP
IGP
IGPIGPIGP IGP
EGP EGP
EGP
内部网关协议
IGP
(例如,OSPF)
外部网关协议
EGP
(例如,BGP-4)
IGP
R3
R2
自治系统和内部网关协议、外部网关协议
7.5.2 内部网关协议 RIP
(Routing Information Protocol)
1,工作原理路由信息协议 RIP 是内部网关协议 IGP
中最先得到广泛使用的协议。
RIP 是一种分布式的基于 距离向量 的路由选择协议。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
―距离”的定义从一路由器到 直接连接 的网络的距离定义为 1。
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
RIP 协议中的,距离,也称为,跳数,(hop count),因为每经过一个路由器,跳数就加 1。
―距离”的定义
RIP 认为一个好的路由就是它通过的路由器的数目少,即,距离短,。
RIP 允许一条路径最多只能包含 15 个路由器 。
,距离,的最大值为 16 时即相当于不可达 。
可见 RIP 只适用于 小型互联网 。
RIP 协议的三个要点仅和相邻路由器交换信息 。
交换的信息是当前本路由器所知道的全部信息,即自己的路由表 。
按固定的时间间隔交换路由信息,例如,
每隔 30 秒 。
2,距离向量算法收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则将该项目加到路由表中。
否则若下一跳字段给出的路由器地址是同样的,则将收到的项 目替换原路由表中的项目。
否则若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为 16(距离为 16表示不可达)。
(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?
一开始,各路由表只有到相邻路由器的信息网 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?
4 1?
6 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 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
CB
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 F1 2 A2 2 A
3 1?
4 1?
5 3 C
6 2 C
RIP 协议的位置
RIP 协议使用运输层的用户数据报 UDP
进行传送 ( 使用 UDP 的端口 520) 。
因此 RIP 协议的位置应当在应用层 。 但转发 IP 数据报的过程是在网络层完成的 。
RIP 协议的优缺点
RIP 存在的一个问题是当网络出现故障时,
要经过比较长的时间才能将此信息传送到所有的路由器 。
RIP 协议最大的优点就是实现简单,开销较小 。
RIP 限制了网络的规模,它能使用的最大距离为 15( 16 表示不可达 ) 。
路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加 。
R2R1
网 1 网 3网 2
正常情况
1 1? 1 2 R1
R1 说:“我到网 1 的距离是 1,是直接交付。”
―1‖表示“从本路由器到网 1‖ ―1‖表示“距离是 1‖
―?‖表示“直接交付”
R2R1
网 1 网 3网 2
正常情况
1 1? 1 2 R1
R2 说:“我到网 1 的距离是 2,是经过 R1。”
―1‖表示“从本路由器到网 1‖
―2‖表示“距离是 2‖
―R1‖表示经过 R1
R2R1
网 1 网 3网 2
R2R1
网 1 网 3网 2
网 1出了故障正常情况
1 1?
1 16?
1 2 R1
1 2 R1
R1 说:“我到网 1 的距离是 16 (表示无法到达),
是直接交付。”
但 R2 在收到 R1 的更新报文之前,还发送原来的报文,
因为这时 R2 并不知道 R1 出了故障。
R2R1
网 1 网 3网 2
R2R1
网 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
R2R1
网 1 网 3网 2
R2R1
网 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
R2R1
网 1 网 3网 2
R2R1
网 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 的一个主要缺点 。
7.8 下一代的网际协议 IPv6
(IPng)
从计算机本身发展以及从因特网规模和网络传输速率来看,现在 IPv4 已很不适用。
最主要的问题就是 32 bit 的 IP 地址不够用。
要解决 IP 地址耗尽的问题的措施:
采用无类别编址 CIDR,使 IP 地址的分配更加合理。
采用网络地址转换 NAT方法以节省全球 IP 地址。
采用具有更大地址空间的新版本的 IP 协议 IPv6。
7.7.1 IPv6 的基本首部
IPv6 将首部长度变为固定的 40 字节,称为 基本首部 (base header)。
将不必要的功能取消了,首部的字段数减少到只有 8 个。
取消了首部的检验和字段,加快了路由器处理数据报的速度。
在基本首部的后面允许有零个或多个扩展首部。
所有的扩展首部和数据合起来叫做数据报的 有效载荷 (payload)或净负荷 。
IPv6 数据报的一般形式基本首部扩展首部 1
扩展首部 N… 数 据 部 分选项
IPv6 数据报有效载荷
IPv6 数据报首部与
IPv4 数据报首部的对比
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识服 务 类 型 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度固定部分
20
字节可变部分
IPv4
首部取消有变化上面是 IPv4 数据报的首部
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
扩展首部 / 数据
IPv6 的基本首部
( 40 B)
IPv6 的有效载荷
(至 64 KB)
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
扩展首部 / 数据
IPv6 的基本首部
( 40 B)
IPv6 的有效载荷
(至 64 KB)
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
版本 (version)—— 4 bit。它指明了协议的版本,
对 IPv6 该字段总是 6。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
通信量类 (traffic class)—— 8 bit。这是为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
流标号 (flow label)—— 20 bit。,流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都保证指明的服务质量。
所有属于同一个流的数据报都具有同样的流标号。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
有效载荷长度 (payload length)—— 16 bit。它指明
IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
下一个首部 (next header)—— 8 bit。它相当于 IPv4 的协议字段或可选字段。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
跳数限制 (hop limit)—— 8 bit。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减 1。
当跳数限制的值为零时,就要将此数据报丢弃。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
源地址 —— 128 bit。是数据报的发送站的 IP 地址。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
目的地址 —— 128 bit。是数据报的接收站的 IP 地址。
IPv6 的扩展首部
IPv6 将原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。
数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。
这样就大大提高了路由器的处理效率。
IPv6 的扩展首部基本首部下一个首部
= TCP/UDP
基本首部下一个首部
= 路由选择路由选择首部下一个首部
= 分片分片首部下一个首部
= TCP/UDP
TCP/UDP 首部和数据
(TCP/UDP 报文段)
有效载荷有效载荷
TCP/UDP 首部和数据
(TCP/UDP 报文段)
无扩展首部有扩展首部
7.8.3 IPv6 的编址
IPv6 数据报的目的地址可以是以下三种基本类型地址之一:
(1) 单播 (unicast) 单播就是传统的点对点通信。
(2) 多播 (multicast) 多播是一点对多点的通信。
(3) 任播 (anycast) 这是 IPv6 增加的一种类型。
任播的目的站是一组计算机,但数据报在交付时只交付给其中的一个,通常是距离最近的一个。
冒号十六进制记法
(colon hexadecimal notation)
每个 16 bit 的值用十六进制值表示,各值之间用冒号分隔。
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
零压缩 (zero compression),即一连串连续的零可以为一对冒号所取代。
FF05:0:0:0:0:0:0:B3 可以写成:
FF05::B3
点分十进制记法的后缀
0:0:0:0:0:0:128.10.2.1
再使用零压缩即可得出:,:128.10.2.1
CIDR 的斜线表示法仍然可用。
60 bit的前缀 12AB00000000CD3 可记为:
12AB:0000:0000:CD30:0000:0000:0000:0000/60
或 12AB::CD30:0:0:0:0/60
或 12AB:0:0:CD30::/60
7.8.4 从 IPv4 向 IPv6 过渡向 IPv6 过渡只能采用逐步演进的办法,同时,
还必须使新安装的 IPv6 系统能够向后兼容。
IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。
双协议栈 (dual stack)是指在完全过渡到 IPv6 之前,
使一部分主机(或路由器)装有两个协议栈,一个
IPv4 和一个 IPv6。
隧道技术 (tunneling)是指在 IPv6数据报进入 IPv4网络时,将 IPv6数据报封装为 IPv4数据报。
双协议栈
IPv6
数据链路层物理层数据链路层物理层
IPv6IPv4/IPv6 双协议栈IPv4
IPv4 IPv6
TCP 或 UDP
应用层
TCP 或 UDP
应用层
TCP 或 UDP
应用层数据链路层物理层
IPv4
和 IPv4 通信 和 IPv6 通信用双协议栈进行从 IPv4 到 IPv6 的过渡双协议栈
IPv6/IPv4IPv6 IPv6
IPv4 网络
A B C D E F
流标号,X
源地址,A
目的地址:
F
……
数据部分流标号:无源地址,A
目的地址:
F
……
数据部分双协议栈
IPv6/IPv4
…
IPv6 数据报 IPv6 数据报源地址,A
目的地址,F
……
数据部分源地址,A
目的地址,F
……
数据部分
IPv4 数据报
IPv4 网络IPv6 IPv6
A B C D E F
…
IPv4 数据报 IPv4 数据报
IPv4
网络
IPv6 IPv6
A B E F隧道源地址,B
目的地址,E
IPv6
数据报双协议栈
IPv6/IPv4
双协议栈
IPv6/IPv4
双协议栈
IPv6/IPv4
双协议栈
IPv6/IPv4
IPv4 网络流标号,X
源地址,A
目的地址:
F
……
数据部分
IPv6 数据报流标号,X
源地址,A
目的地址:
F
……
数据部分
IPv6 数据报源地址,B
目的地址,E
IPv6
数据报使用隧道技术从 IPv4 到 IPv6 过渡小结掌握 IP地址与物理地址的区别;
掌握三类 IP地址以及其表示方法;
掌握 IP数据报的格式以及分片的方法;
掌握内部网关协议 RIP 的距离向量算法;
掌握 IPv6的基本特点与地址表示方法;
作业,P197 6题
P198 7,12,16,17题
P199 23,24,26,28题
重点掌握路由器的组成和作用网际协议 IP的基本组成及工作原理三类 IP地址:分类 IP地址,子网的划分,构造超网
IP地址与硬件地址的区别
IP数据报的格式以及如何实现数据报分片因特网控制报文协议 ICMP的基本数据格式内部网关协议 RIP的距离向量算法
IPv6的基本首部格式与地址表示方法
7.1 路由器在网际互连中的作用
7.1.1 路由器的构成间接交付间接交付 间接交付
A
B
C
直接交付直接交付直接交付不需要使用路由器间接交付就必须使用路由器典型的路由器的结构路由选择路由选择处理机路由选择协议路由表
3
输入端口
3 交换结构输入端口输出端口分组转发转发表分组处理输出端口
… …
1
11
3
3
1 2
2
2
2
3——网络层
2——数据链路层
1——物理层
―转发”和“路由选择”的区别
―转发,(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去 。
,路由选择,(routing)则是按照分布式算法,
根据从各相邻路由器得到的关于网络拓扑的变化 情况,动态地改变所选择的路由 。
路由表是根据路由选择算法得出的 。 而转发表是从路由表得出的 。
在讨论路由选择的原理时,往往不去区分转发表和路由表的区别 。
互连在一起的网络要进行通信,会遇到许多问题需要解决,如:
不同的寻址方案不同的最大分组长度不同的网络接入机制不同的超时控制不同的差错恢复方法不同的状态报告方法不同的路由选择技术不同的用户接入控制不同的服务(面向连接服务和无连接服务)
不同的管理与控制方式
7.1.2 互联网与因特网中间设备 又称为 中间系统 或 中继 (relay)系统。
物理层中继系统,转发器 (repeater)
数据链路层中继系统,网桥 或 桥接器 (bridge)
网络层中继系统,路由器 (router)
网桥和路由器的混合物,桥路器 (brouter)
网络层以上的中继系统,网关 (gateway)
中间设备互连网络与虚拟互连网络网络网络网络网络网络
(a) 互连网络 (b) 虚拟互连网络路由器虚拟互连网络
( IP 网)
7.2 因特网的网际协议 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
7.2.1 分类的 IP 地址
IP 地址及其表示方法
IP 地址是给每个连接在因特网上的主机
( 或路由器 ) 分配一个在全世界范围是惟一的 32 bit 的标识符 。
IP 地址现在由因特网名字与号码指派公司
ICANN (Internet Corporation for
Assigned Names and Numbers)进行分配点分十进制记法
10000000000010110000001100011111 机器中存放的 IP 地址是 32 bit 二进制代码
10000000 00001011 00000011 00011111 每隔 8 bit 插入一个空格能够提高可读性采用点分十进制记法则进一步提高可读性 128.11.3.31
128 11 3 31 将每 8 bit 的二进制数转换为十进制数
IP 地址的编址方法分类的 IP 地址,最基本的编址方法,在
1981 年就通过了相应的标准协议 。
子网的划分,对最基本的编址方法的改进,
其标准 [RFC 950]在 1985 年通过 。
构成超网,比较新的无分类编址方法 。
1993 年提出后很快就得到推广应用 。
分类 IP 地址每一类地址都由两个固定长度的字段组成,
其中一个字段是网络号 net-id,它标志主机 ( 或路由器 ) 所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机 ( 或路由器 ) 。
两级的 IP 地址可以记为:
IP 地址,:= { <网络号 >,<主机号 >} (7-1)
路由器转发分组的步骤先按所要找的 IP 地址中的网络号 net-id
把目的网络找到 。
当分组到达目的网络后,再利用主机号
host-id 将数据报直接交付给目的主机 。
按照整数字节划分 net-id 字段和 host-id
字段,就可以使路由器在收到一个分组时能够更快地将地址中的网络号提取出来 。
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
net-id
24 bit
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
A 类地址的网络号字段 net-id 为 1 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
B 类地址的网络号字段 net-id 为 2 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
C 类地址的网络号字段 net-id 为 3 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
A 类地址的主机号字段 host-id 为 3 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
B 类地址的主机号字段 host-id 为 2 字节
net-id
24 bit
IP 地址中的网络号字段和主机号字段
host-id
24 bit
net-id
8 bit
0A 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
net-id
16 bit
host-id
16 bit
B 类地址 01
C 类地址的主机号字段 host-id 为 1 字节
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
D 类地址是多播地址
net-id
24 bit
host-id
24 bit
net-id
16 bit
net-id
8 bit
IP 地址中的网络号字段和主机号字段
0A 类地址
host-id
16 bit
B 类地址
C 类地址 01 1
host-id
8 bit
D 类地址 1110 多 播 地 址
E 类地址 保 留 为 今 后 使 用1111 0
01
E 类地址保留为今后使用
A类地址
IP 地址的使用范围网络 最大 第一个 最后一个 每个网络类别 网络数 可用的 可用的 中最大的网络号 网络号 主机数
A 126 (27 – 2) 1 126 16,777,214
B 16,383 (214 – 1) 128.1 191.255 65,534
C 2,097,151 (221 – 1) 192.0.1 223.255.255 254
host-id
24 bit
net-id
8 bit
0A 类地址
B类地址
IP 地址的使用范围网络 最大 第一个 最后一个 每个网络类别 网络数 可用的 可用的 中最大的网络号 网络号 主机数
A 126 (27 – 2) 1 126 16,777,214
B 16,383 (214 – 1) 128.1 191.255 65,534
C 2,097,151 (221 – 1) 192.0.1 223.255.255 254
net-id
16 bit
host-id
16 bit
B 类地址 01
C类地址
IP 地址的使用范围网络 最大 第一个 最后一个 每个网络类别 网络数 可用的 可用的 中最大的网络号 网络号 主机数
A 126 (27 – 2) 1 126 16,777,214
B 16,383 (214- 1) 128.1 191.255 65,534
C 2,097,151 (221- 1) 192.0.1 223.255.255 254
net-id
24 bit
C 类地址 01 1
host-id
8 bit
网络 172.16.0.0
主机 0.0.3.10
主机 0.0.3.15
172.16.0.0
IP地址举例
172.16.3.10 172.16.3.15
高位比特 十进制 地址类型
0
10
110
1110
1111
1 – 126
128 – 191
192 – 223
224 – 239
240 – 255
A
B
C
D
E
问题:如何快速准确判断分类地址?
方法,地址类型判断 ——高位比特地址 类型 网络号 主机号
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A 10.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A 0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B 128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B 0.0.2.100128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
C
0.0.2.100128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
C 201.222.5.0
0.0.2.100128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
C 0.0.0.64201.222.5.0
0.0.2.100128.63.0.0
0.2.1.110.0.0.0
练习,IP地址分类
Address Class Network Host
10.2.1.1
128.63.2.100
201.222.5.64
192.6.141.2
130.113.64.16
256.241.201.10
A
B
C
C
B 0.0.64.16130.113.0.0
0.0.0.2192.6.141.0
0.0.0.64201.222.5.0
0.0.2.100128.63.0.0
0.2.1.110.0.0.0
Nonexistent
00000000 ~ 11111111 (二进制 ) ––– 0 ~ 255 (十进制 )
练习,IP地址分类
IP 地址的一些重要特点
(1) IP 地址是一种分等级的地址结构 。 分两个等级的好处是:
第一,IP地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配 。 这样就方便了 IP 地址的管理 。
第二,路由器仅根据目的主机所连接的网络号来转发分组 ( 而不考虑目的主机号 ),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间 。
IP 地址的一些重要特点
(2) 实际上 IP 地址是标志一个主机 ( 或路由器 ) 和一条链路的接口 。
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号
net-id 必须是不同的 。 这种主机称为 多接口主机
(multihomed host)。
由于一个路由器至少应当连接到两个网络 ( 这样它才能将 IP 数据报从一个网络转发到另一个网络 ),因此一个路由器至少应当有两个不同的 IP
地址 。
IP 地址的一些重要特点
(3) 用 转发器 或 网桥 连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
(4) 所有分配到网络号 net-id 的网络,范围很小的局域网,还是覆盖很大地理范围的广域网,都是平等的 。
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网在同一个局域网上的主机或路由器的
IP 地址中的网络号必须是一样的。
图中的网络号就是 IP 地址中的 net-id
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网在同一个局域网上的主机或路由器的
IP 地址中的网络号必须是一样的。
图中的网络号就是 IP 地址中的 net-id
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网在同一个局域网上的主机或路由器的
IP 地址中的网络号必须是一样的。
图中的网络号就是 IP 地址中的 net-id
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网在同一个局域网上的主机或路由器的
IP 地址中的网络号必须是一样的。
图中的网络号就是 IP 地址中的 net-id
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网路由器总是具有两个或两个以上的 IP 地址。
路由器的每一个接口都有一个不同网络号的 IP 地址。
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网路由器总是具有两个或两个以上的 IP 地址。
路由器的每一个接口都有一个不同网络号的 IP 地址。
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网路由器总是具有两个或两个以上的 IP 地址。
路由器的每一个接口都有一个不同网络号的 IP 地址。
互联网中的 IP 地址
B
222.1.1.
222.1.1.1 222.1.1.2 222.1.1.3
222.1.1.4R
1
222.1.2.5 222.1.2.2
222.1.2.1
222.1.2.3222.1.2.4
222.1.2.
222.1.6.1222.1.5.1
222.1.5.2 222.1.6.2
222.1.4.1222.1.4.2
222.1.3.3
222.1.3.2
222.1.3.1 R3 R2
222.1.3.
LAN3
N3
N2
222.1.4.
222.1.5.
222.1.6.
N1
LAN2
LAN1
互联网两个路由器直接相连的接口处,可指明也可不指明
IP 地址。
7.2.2 IP 地址与硬件地址
TCP 报文
IP 数据报
MAC 帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上使用 IP 地址
IP 地址
HA1 HA5HA4HA3 HA6
主机 H1 主机 H2
路由器 R1硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网通信的路径
H1→ 经过 R1 转发 → 再经过 R2 转发 → H2
查找路由表 查找路由表
HA1 HA5HA4HA3 HA6
主机 H1 主机 H2
路由器 R1硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报从协议栈的层次上看数据的流动
HA1 HA5HA4HA3 HA6
主机 H1 主机 H2
路由器 R1硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报从虚拟的 IP 层上看 IP 数据报的流动
HA1 HA5HA4HA3 HA6
主机 H1 主机 H2
路由器 R1硬件地址 路由器 R2
HA2
IP1 IP2
局域网 局域网 局域网
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报在链路上看 MAC 帧的流动
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 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 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
MAC 帧
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报路由器只根据目的站的 IP 地址的网络号进行路由选择
IP1
HA1 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
IP2
IP4IP3 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 HA5HA4HA3 HA6 HA2
IP6
主机 H1 主机 H2
路由器 R1
IP 层上的互联网
IP2
IP4IP3 IP5
路由器 R2
IP1 → IP 2 IP1 → IP 2 IP1 → IP 2
MAC 帧从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
MAC 帧MAC 帧
IP 数据报
IP层抽象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信
7.2.3 地址解析协议 ARP 和逆地址解析协议 RARP
每一个主机都设有一个 ARP 高速缓存 (ARP cache),
里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP
地址。
有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC
帧。
无,运行 ARP获得 B的硬件地址。
ARP:已知 IP地址得到硬件地址情况
ARP 响应
A YX B Z
主机 B 向 A 发送
ARP 响应分组主机 A 广播发送
ARP 请求分组
ARP 请求 ARP 请求 ARP 请求ARP 请求
209.0.0.5 209.0.0.6
00-00-C0-15-AD-18
08-00-2B-00-EE-0A
我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18
我想知道主机 209.0.0.6 的硬件地址我是 209.0.0.6
硬件地址是 08-00-2B-00-EE-0A
A YX B Z
209.0.0.5 209.0.0.6
00-00-C0-15-AD-18
应当注意的问题
ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题 。
如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络 。 剩下的工作就由下一个网络来做 。
逆地址解析协议 RARP
逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。
这种主机往往是无盘工作站。 因此 RARP
协议目前已很少使用。
7.2.4 IP 数据报的格式一个 IP 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,
是所有 IP 数据报必须具有的。
在首部的固定部分的后面是一些可选字段,
其长度是可变的。
固定部分可变部分
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特数 据 部 分首 部传送
IP 数据报首部首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特数 据 部 分首 部传送
IP 数据报固定部分可变部分首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分版本 ——占 4 bit,指 IP协议的版本目前的 IP 协议版本号为 4 (即 IPv4)
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分首部长度 ——占 4 bit,可表示的最大数值是 15 个单位 (一个单位为 4 字节 )
因此 IP 的首部长度的最大值是 60字节。
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分服务类型 ——占 8 bit,用来获得更好的服务这个字段以前一直没有被人们使用首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分总长度 ——占 16 bit,指首部和数据之和的长度,
单位为字节,因此数据报的最大长度为 65535 字节。
总长度必须不超过最大传送单元 MTU。
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分标识 (identification) 占 16 bit,
它是一个计数器,用来产生数据报的标识。
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分标志 (flag) 占 3 bit,
MF 是否还有分片 DF 是否能分片首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分片偏移 (12 bit)指出:较长的分组在分片后某片在原分组中的相对位置。
片偏移以 8 个字节为偏移单位。
IP 数据报分片的举例例题:一数据报总长度为 3820字节,使用固定首部,
需要分片的长度不能超过 1420字节,如何实现?
偏移 = 0/8 = 0
偏移 = 0/8
= 0
偏移 = 1400/8 = 175 偏移 = 2800/8 = 350
1400 2800 379927991399
3799
需分片的数据报数据报片 1
首部数据部分共 3800 字节首部 1 首部 2 首部 3
字节 0
数据报片 2 数据报片 3
1400 2800字节 0
MF=1 DF=0 MF=1 DF=0 MF=0 DF=0
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分生存时间 (8 bit)记为 TTL (Time To Live)
数据报在网络中的寿命,其单位为秒。
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分协议 (8 bit)字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程运输层网络层 首部
TCP UDP
ICMP IGMP OSPF
数 据 部 分
IP 数据报协议字段指出应将数据部分交给哪一个进程协议名 ICMP IGMP TCP EGP IGP UDP IPv6 OSPF
字段值 1 2 6 8 9 17 41 89
首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分首部检验和 (16 bit)字段只检验数据报的首部不包括数据部分。
这里不采用 CRC 检验码而采用简单的计算方法。
发送端 接收端
16 bit字 1
16 bit字 2
置为全 0检验和
16 bit字 n
16 bit反码算术运算求和
…
…
取反码数据报首部
IP 数据报
16 bit检验和
16 bit字 1
16 bit字 2
16 bit检验和
16 bit字 n
16 bit反码算术运算求和
16 bit结果
…
…
取反码数据部分若结果为 0,则保留;
否则,丢弃该数据报数据部分不参与检验和的计算首部
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识区 分 服 务 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度
0 1 2 3 4 5 6 7
D T R C 未用优 先 级数 据 部 分比特固定部分可变部分源地址和目的地址都各占 4 字节
2,IP 数据报首部的可变部分
IP 首部的可变部分就是一个选项字段,用来支持排错,测量以及安全等措施,内容很丰富 。
选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目 。
增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的 。 这就增加了每一个路由器处理数据报的开销 。
实际上这些选项很少被使用 。
7.2.5 IP 层转发分组的流程路由器和结点交换机有些区别:
路由器是用来连接不同的网络,而结点交换机只是在一个特定的网络中工作。
路由器是专门用来转发分组的,而结点交换机还可接上许多个主机。
路由器使用统一的 IP 协议,而结点交换机使用所在广域网的特定协议。
路由器根据目的网络地址找出下一个路由器,而结点交换机则根据目的站所接入的交换机号找出下一跳(即下一个结点交换机)。
网 1
10.0.0.0
网 4
40.0.0.0
网 3
30.0.0.0
网 2
20.0.0.0
10.0.0.4 40.0.0.430.0.0.220.0.0.920.0.0.7
目的主机所在的网络 下一跳路由器的地址
20.0.0.0
30.0.0.0
10.0.0.0
40.0.0.0
20.0.0.7
30.0.0.1
直接交付,接口 1
直接交付,接口 0
路由器 R2 的路由表
30.0.0.1
10.0.0.4 40.0.0.430.0.0.220.0.0.920.0.0.7 30.0.0.1
链路 4链路 3链路 2链路 1
R2 R3R1
0 1
R2 R3R1
在路由表中,对每一条路由,最主要的是
(目的网络地址,下一跳地址)
特定主机路由这种路由是为特定的目的主机指明一个路由。
采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
7.3 划分子网和构造超网 7.3.1 划分子网
1,从两级 IP 地址到三级 IP 地址在 ARPANET 的早期,IP 地址的设计确实不够合理 。
IP 地址空间的利用率有时很低 。
给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏 。
两级的 IP 地址不够灵活 。
从 1985 年起在 IP 地址中又增加了一个
“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址 。
这种做法叫作 划分子网 (subnetting) 。划分子网已成为因特网的正式标准协议。
三级的 IP 地址划分子网纯属一个 单位内部的事情 。 单位对外仍然表现为没有划分子网的网络 。
从主机号 借用 若干个比特作为 子网号 subnet-id,
而主机号 host-id 也就相应减少了若干个比特 。
IP地址,:= {<网络号 >,<子网号 >,<主机号 >} (7-2)
划分子网的基本思路
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.10145.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
R1R
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-idsubnet-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 地址的默认子网掩码练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B 172.16.2.0
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
A
172.16.2.0
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
A
172.16.2.0
10.12.0.0
10.13.24.20
255.252.0.0 11111111 11111100 0000000000000000
00001010
00001010
00001101
00001100 00000000
00010100
00000000
00011000
10,12,0,0
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
A
A
172.16.2.0
10.12.0.0
练习:子网掩码
Address Subnet Mask Class Subnet
172.16.2.10
10.13.24.20
10.30.36.12
255.255.255.0
255.252.0.0
255.255.255.0
B
A
A
172.16.2.0
10.12.0.0
10.30.36.0
练习:子网掩码在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。
但在划分子网的情况下,从 IP地址却不能惟一地得出网络地址来。
网络地址取决于那个网络所采用的子网掩码数据报的首部并没有提供子网掩码的信息因此分组转发的算法也必须做相应的改动。
7.3.2 使用子网掩码的分组转发过程
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.1380
1
128.30.33.129
H3
128.30.36.2
子网 3:网络地址 128.30.36.0
子网掩码 255.255.255.0128.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.0128.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.0128.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
128,30,33.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.0128.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.0128.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.0128.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 的地址空间最终将全部耗尽 。
7.3.3 无分类编址 CIDR
1,网络前缀
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地址,:= {<网络前缀 >,<主机号 >} (7-3)
CIDR 还使用,斜线记法,(slash notation),它又称为 CIDR记法,
128.14.46.34/20
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)
CIDR 记法的其他形式
10.0.0.0/10 可简写为 10/10,也就是将点分十进制中低位连续的 0 省略 。
10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的 掩码 是 255.192.0.0。 此掩码可表示为
11111111 11000000 00000000 00000000
255 192 0 0
掩码中有 10 个连续的 1
网络前缀 + 星号 *
eg,00001010 00*
CIDR 地址块划分举例因特网 206.0.68.0/22206.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/25206.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/22206.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/25206.0.68.0/23
这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。
2,最长前缀匹配使用 CIDR 时,路由表中的每个项目由,网络前缀,和,下一跳地址,组成 。 在查找路由表时可能会得到不止一个匹配结果 。
应当从匹配结果中选择具有最长网络前缀的路由,最长前缀匹配 (longest-prefix matching)。
网络前缀越长,其地址块就越小,因而路由就越具体 。
最长前缀匹配又称为 最长匹配 或 最佳匹配 。
最长前缀匹配举例收到的分组的目的地址 D = 206.0.71.130/22
路由表中的项目,206.0.68.0/22 ( ISP)
206.0.71.128/25 (四系)
查找路由表中的第 1 个项目
AND D = 206,0,01000111.10000010
第 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/22
路由表中的项目,206.0.68.0/22 ( ISP)
206.0.71.128/25 (四系)
再查找路由表中的第 2 个项目
AND D = 206,0,71,10000010
第 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 匹配选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。
7.4 因特网控制报文协议 ICMP
为了提高 IP 数据报交付成功的机会,在网际层使用了因特网控制报文协议 ICMP (Internet
Control Message Protocol)。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 不是高层协议,而是 IP 层的协议。
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
ICMP 报文的格式首 部
ICMP 报文
0
数 据 部 分检验和类型 代码
(这 4 个字节取决于 ICMP 报文的类型)
8 16 31
IP 数据报前 4 个字节都是一样的
ICMP 的数据部分(长度取决于类型)
ICMP 报文
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文 。
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型,代码和检验和 。 接着的 4 个字节的内容与 ICMP 的类型有关 。
ICMP 差错报告报文共有 5 种目的站不可达源站抑制时间超过参数问题改变路由 ( 重定向 )
ICMP 差错报告报文的数据字段的内容首部
IP 数据报
ICMP 的前 8 字节装入 ICMP 报文的 IP 数据报
IP 数据报首部
ICMP 差错报告报文
8
字节收到的 IP 数据报
IP 数据报首部
8
字节
ICMP 差错报告报文
IP 数据报的数据字段不应发送 ICMP 差错报告报文的几种情况
ICMP 差错报告报文对第一个分片的数据报片的所有后续数据报片具有多播地址的数据报对具有特殊地址 ( 如 127.0.0.0 或
0.0.0.0) 的数据报
ICMP 询问报文有四种回送请求和回答报文
eg,PING (Packet InterNet Groper)
时间戳请求和回答报文掩码地址请求和回答报文路由器询问和通告报文
7.5 因特网的路由选择协议
7.5.1 分层次的路由选择协议因特网采用分层次的路由选择协议。
因特网的规模非常大。
许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),
但同时还希望连接到因特网上。
因特网将整个互联网划分为许多较小的自治系统
AS( autonomous system)。
一个自治系统是一个互联网,其最重要的特点就是自治系统有权自主地决定在本系统内应采用何种路由选择协议。
因特网有两大类路由选择协议内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议 。 目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议 。
外部网关协议 EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中 。 这样的协议就是外部网关协议 EGP。 在外部网关协议中目前使用最多的是 BGP-4。
R1H
1 H
2
内部网关协议
IGP
(例如,RIP)
自治系统 A
自治系统 B自治系统 C
IGPIGP IGP
IGP
IGP
IGP
IGP
IGP
IGPIGPIGP IGP
EGP EGP
EGP
内部网关协议
IGP
(例如,OSPF)
外部网关协议
EGP
(例如,BGP-4)
IGP
R3
R2
自治系统和内部网关协议、外部网关协议
7.5.2 内部网关协议 RIP
(Routing Information Protocol)
1,工作原理路由信息协议 RIP 是内部网关协议 IGP
中最先得到广泛使用的协议。
RIP 是一种分布式的基于 距离向量 的路由选择协议。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
―距离”的定义从一路由器到 直接连接 的网络的距离定义为 1。
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
RIP 协议中的,距离,也称为,跳数,(hop count),因为每经过一个路由器,跳数就加 1。
―距离”的定义
RIP 认为一个好的路由就是它通过的路由器的数目少,即,距离短,。
RIP 允许一条路径最多只能包含 15 个路由器 。
,距离,的最大值为 16 时即相当于不可达 。
可见 RIP 只适用于 小型互联网 。
RIP 协议的三个要点仅和相邻路由器交换信息 。
交换的信息是当前本路由器所知道的全部信息,即自己的路由表 。
按固定的时间间隔交换路由信息,例如,
每隔 30 秒 。
2,距离向量算法收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则将该项目加到路由表中。
否则若下一跳字段给出的路由器地址是同样的,则将收到的项 目替换原路由表中的项目。
否则若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为 16(距离为 16表示不可达)。
(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?
一开始,各路由表只有到相邻路由器的信息网 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?
4 1?
6 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 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
CB
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 F1 2 A2 2 A
3 1?
4 1?
5 3 C
6 2 C
RIP 协议的位置
RIP 协议使用运输层的用户数据报 UDP
进行传送 ( 使用 UDP 的端口 520) 。
因此 RIP 协议的位置应当在应用层 。 但转发 IP 数据报的过程是在网络层完成的 。
RIP 协议的优缺点
RIP 存在的一个问题是当网络出现故障时,
要经过比较长的时间才能将此信息传送到所有的路由器 。
RIP 协议最大的优点就是实现简单,开销较小 。
RIP 限制了网络的规模,它能使用的最大距离为 15( 16 表示不可达 ) 。
路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加 。
R2R1
网 1 网 3网 2
正常情况
1 1? 1 2 R1
R1 说:“我到网 1 的距离是 1,是直接交付。”
―1‖表示“从本路由器到网 1‖ ―1‖表示“距离是 1‖
―?‖表示“直接交付”
R2R1
网 1 网 3网 2
正常情况
1 1? 1 2 R1
R2 说:“我到网 1 的距离是 2,是经过 R1。”
―1‖表示“从本路由器到网 1‖
―2‖表示“距离是 2‖
―R1‖表示经过 R1
R2R1
网 1 网 3网 2
R2R1
网 1 网 3网 2
网 1出了故障正常情况
1 1?
1 16?
1 2 R1
1 2 R1
R1 说:“我到网 1 的距离是 16 (表示无法到达),
是直接交付。”
但 R2 在收到 R1 的更新报文之前,还发送原来的报文,
因为这时 R2 并不知道 R1 出了故障。
R2R1
网 1 网 3网 2
R2R1
网 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
R2R1
网 1 网 3网 2
R2R1
网 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
R2R1
网 1 网 3网 2
R2R1
网 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 的一个主要缺点 。
7.8 下一代的网际协议 IPv6
(IPng)
从计算机本身发展以及从因特网规模和网络传输速率来看,现在 IPv4 已很不适用。
最主要的问题就是 32 bit 的 IP 地址不够用。
要解决 IP 地址耗尽的问题的措施:
采用无类别编址 CIDR,使 IP 地址的分配更加合理。
采用网络地址转换 NAT方法以节省全球 IP 地址。
采用具有更大地址空间的新版本的 IP 协议 IPv6。
7.7.1 IPv6 的基本首部
IPv6 将首部长度变为固定的 40 字节,称为 基本首部 (base header)。
将不必要的功能取消了,首部的字段数减少到只有 8 个。
取消了首部的检验和字段,加快了路由器处理数据报的速度。
在基本首部的后面允许有零个或多个扩展首部。
所有的扩展首部和数据合起来叫做数据报的 有效载荷 (payload)或净负荷 。
IPv6 数据报的一般形式基本首部扩展首部 1
扩展首部 N… 数 据 部 分选项
IPv6 数据报有效载荷
IPv6 数据报首部与
IPv4 数据报首部的对比
0 4 8 16 19 24 31
版 本标志生 存 时 间 协 议标 识服 务 类 型 总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)
比特首部长度固定部分
20
字节可变部分
IPv4
首部取消有变化上面是 IPv4 数据报的首部
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
扩展首部 / 数据
IPv6 的基本首部
( 40 B)
IPv6 的有效载荷
(至 64 KB)
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
扩展首部 / 数据
IPv6 的基本首部
( 40 B)
IPv6 的有效载荷
(至 64 KB)
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
版本 (version)—— 4 bit。它指明了协议的版本,
对 IPv6 该字段总是 6。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
通信量类 (traffic class)—— 8 bit。这是为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
流标号 (flow label)—— 20 bit。,流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都保证指明的服务质量。
所有属于同一个流的数据报都具有同样的流标号。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
有效载荷长度 (payload length)—— 16 bit。它指明
IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
下一个首部 (next header)—— 8 bit。它相当于 IPv4 的协议字段或可选字段。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
跳数限制 (hop limit)—— 8 bit。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减 1。
当跳数限制的值为零时,就要将此数据报丢弃。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
源地址 —— 128 bit。是数据报的发送站的 IP 地址。
0 4 16 31
版 本比特目 的 地 址源 地 址下 一 个 首 部流 标 号
12
通 信 量 类
( 128 bit)
( 128 bit)
有 效 载 荷 长 度 跳 数 限 制
24
IPv6
的基本首部
40 B
目的地址 —— 128 bit。是数据报的接收站的 IP 地址。
IPv6 的扩展首部
IPv6 将原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。
数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。
这样就大大提高了路由器的处理效率。
IPv6 的扩展首部基本首部下一个首部
= TCP/UDP
基本首部下一个首部
= 路由选择路由选择首部下一个首部
= 分片分片首部下一个首部
= TCP/UDP
TCP/UDP 首部和数据
(TCP/UDP 报文段)
有效载荷有效载荷
TCP/UDP 首部和数据
(TCP/UDP 报文段)
无扩展首部有扩展首部
7.8.3 IPv6 的编址
IPv6 数据报的目的地址可以是以下三种基本类型地址之一:
(1) 单播 (unicast) 单播就是传统的点对点通信。
(2) 多播 (multicast) 多播是一点对多点的通信。
(3) 任播 (anycast) 这是 IPv6 增加的一种类型。
任播的目的站是一组计算机,但数据报在交付时只交付给其中的一个,通常是距离最近的一个。
冒号十六进制记法
(colon hexadecimal notation)
每个 16 bit 的值用十六进制值表示,各值之间用冒号分隔。
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
零压缩 (zero compression),即一连串连续的零可以为一对冒号所取代。
FF05:0:0:0:0:0:0:B3 可以写成:
FF05::B3
点分十进制记法的后缀
0:0:0:0:0:0:128.10.2.1
再使用零压缩即可得出:,:128.10.2.1
CIDR 的斜线表示法仍然可用。
60 bit的前缀 12AB00000000CD3 可记为:
12AB:0000:0000:CD30:0000:0000:0000:0000/60
或 12AB::CD30:0:0:0:0/60
或 12AB:0:0:CD30::/60
7.8.4 从 IPv4 向 IPv6 过渡向 IPv6 过渡只能采用逐步演进的办法,同时,
还必须使新安装的 IPv6 系统能够向后兼容。
IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。
双协议栈 (dual stack)是指在完全过渡到 IPv6 之前,
使一部分主机(或路由器)装有两个协议栈,一个
IPv4 和一个 IPv6。
隧道技术 (tunneling)是指在 IPv6数据报进入 IPv4网络时,将 IPv6数据报封装为 IPv4数据报。
双协议栈
IPv6
数据链路层物理层数据链路层物理层
IPv6IPv4/IPv6 双协议栈IPv4
IPv4 IPv6
TCP 或 UDP
应用层
TCP 或 UDP
应用层
TCP 或 UDP
应用层数据链路层物理层
IPv4
和 IPv4 通信 和 IPv6 通信用双协议栈进行从 IPv4 到 IPv6 的过渡双协议栈
IPv6/IPv4IPv6 IPv6
IPv4 网络
A B C D E F
流标号,X
源地址,A
目的地址:
F
……
数据部分流标号:无源地址,A
目的地址:
F
……
数据部分双协议栈
IPv6/IPv4
…
IPv6 数据报 IPv6 数据报源地址,A
目的地址,F
……
数据部分源地址,A
目的地址,F
……
数据部分
IPv4 数据报
IPv4 网络IPv6 IPv6
A B C D E F
…
IPv4 数据报 IPv4 数据报
IPv4
网络
IPv6 IPv6
A B E F隧道源地址,B
目的地址,E
IPv6
数据报双协议栈
IPv6/IPv4
双协议栈
IPv6/IPv4
双协议栈
IPv6/IPv4
双协议栈
IPv6/IPv4
IPv4 网络流标号,X
源地址,A
目的地址:
F
……
数据部分
IPv6 数据报流标号,X
源地址,A
目的地址:
F
……
数据部分
IPv6 数据报源地址,B
目的地址,E
IPv6
数据报使用隧道技术从 IPv4 到 IPv6 过渡小结掌握 IP地址与物理地址的区别;
掌握三类 IP地址以及其表示方法;
掌握 IP数据报的格式以及分片的方法;
掌握内部网关协议 RIP 的距离向量算法;
掌握 IPv6的基本特点与地址表示方法;
作业,P197 6题
P198 7,12,16,17题
P199 23,24,26,28题