《计算机网络与通信(第4版):CH6 网络互连》由会员分享,可在线阅读,更多相关《计算机网络与通信(第4版):CH6 网络互连(161页珍藏版)》请在金锄头文库上搜索。
1、计算机网络第 7 章 网络互连第 7 章 网络互连 *7.1 路由器在网际互连中的作用 7.1.1 路由器的构成 7.1.2 交换构件 7.1.3 互联网与因特网*7.2 因特网的网际协议 IP 7.2.1 分类的 IP地址 7.2.2 IP 地址与硬件地址 7.2.3 地址解析协议 ARP 和逆地址解析协议 RARP7.2.4 IP 数据报的格式 7.2.5 IP 层处理数据报的流程第 7 章 网络互连(续)*7.3 划分子网和构造超网 7.3.1 划分子网 7.3.2 使用子网掩码的分组转发过程 7.3.3 无分类编址 CIDR*7.4 因特网控制报文协议 ICMP*7.5 因特网的路由选
2、择协议 7.5.1 有关路由选择协议的几个基本概念 7.5.2 内部网关协议 RIP 7.5.3 内部网关协议 OSPF 7.5.4 外部网关协议 BGP 第 7 章 网络互连(续) 7.6 IP 多播和因特网组管理协议 IGMP 7.6.1 IP 多播的基本概念7.6.2 因特网组管理协议 IGMP 7.6.3 多播路由选择*7.7 虚拟专用网 VPN 和网络地址转换 NAT 7.8 下一代的网际协议 IPv6 (IPng) *7.8.1 解决 IP 地址耗尽的措施 *7.8.2 IPv6 的基本首部 7.8.3 IPv6 的扩展首部 7.8.4 IPv6 的地址空间 7.8.5 从 IPv
3、4 到 IPv6 的过渡 7.8.6 ICMPv67.1 路由器在网际互连中的作用 7.1.1 路由器的构成 n当主机 A 要向另一个主机 B 发送数据报时,先要检查目的主机 B 是否与源主机 A 连接在同一个网络上。n如果是,就将数据报直接交付给目的主机 B 而不需要通过路由器。n但如果目的主机与源主机 A 不是连接在同一个网络上,则应将数据报发送给本网络上的某个路由器,由该路由器按照转发表指出的路由将数据报转发给下一个路由器。这就叫作间接交付。 直接交付和间接交付 间接交付间接交付间接交付ABC直接交付直接交付直接交付不需要使用路由器但间接交付就必须使用路由器典型的路由器的结构 路由选择路
4、由选择处理机路由选择协议路由表3输入端口3交换结构输入端口输出端口分组转发转发表分组处理输出端口11133122223网络层2数据链路层1物理层交换结构I1I3I2O1O2存储器I1I3I2O1O2I1I3I2O1O2O3(a) 通过存储器(c) 通过互连网络(b) 通过总线总线互连网络O3O3“转发”和“路由选择”的区别 n“转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。n“路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化 情况,动态地改变所选择的路由。n路由表是根据路由选择算法得出的。而转发表是从路由
5、表得出的。n在讨论路由选择的原理时,往往不去区分转发表和路由表的区别, 输入端口对线路上收到的分组的处理 n数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。 物理层处理数据链路层处理网络层处理 分组排队 交换结构 输入端口的处理从线路接收分组查表和转发输出端口将交换结构传送来的分组发送到线路 n交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。 物理层处理数据链路层处理网络层处理 分组排队 输出端口的处理向线路发送分组缓存管理交换结构分组丢弃 n若路由器处理分组的速率赶不上分组进入队列的速率,则
6、队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。n路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。 n互连在一起的网络要进行通信,会遇到许多问题需要解决,如:n不同的寻址方案n不同的最大分组长度n不同的网络接入机制n不同的超时控制n不同的差错恢复方法n不同的状态报告方法n不同的路由选择技术n不同的用户接入控制n不同的服务(面向连接服务和无连接服务)n不同的管理与控制方式 7.1.3 IP虚拟网 互连网络与虚拟互连网络 网络网络网络网络网络(a) 互连网络(b) 虚拟互连网络路由器 虚拟互连网络(IP 网)为解决上述问题因特网在网络层上采用标准化
7、IP协议虚拟互连网络的意义 n所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。n使用 IP 协议的虚拟互连网络可简称为 IP 网。n使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。 名词 internet 和 Internet n以小写字母 i 开始的 internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的虚拟网络。n以大写字母 I 开始的 Internet(因特网)
8、则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族,且其前身是美国的 ARPANET。 7.2 因特网的网际协议 IP网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一 。与 IP 协议配套使用的还有四个协议: n地址解析协议 ARP (Address Resolution Protocol)n逆地址解析协议 RARP (Reverse Address Resolution Protocol)n因特网控制报文协议 ICMP (Internet Control Message Protocol)n因特网组管理协议 IGMP
9、 (Internet Group Management Protocol) 网际协议 IP 及其配套协议 各种应用层协议 网络接口层(TELNET, FTP, SMTP 等)物理硬件运输层TCP, UDP应用层ICMPIPRARPARP与各种网络接口网际层IGMP7.2.1 分类的 IP 地址1. IP 地址及其表示方法 n我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是惟一的 32 bit 的标识符。nIP 地址现在由因特网名字与号码指派公司ICANN (Internet Corporation for Assigned
10、 Names and Numbers)进行分配 IP 地址的编址方法 n分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。n子网的划分。这是对最基本的编址方法的改进,其标准RFC 950在 1985 年通过。n构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。分类 IP 地址 n每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。n两级的 IP 地址可以记为:IP 地址 := , (7-1):= 代表“定义为”n
11、et-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP 地址中的网络号字段和主机号字段 0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP 地址中的网络号字段和主机号字段 0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留
12、 为 今 后 使 用1 1 1 1 001A 类地址的网络号字段 net-id 为 1 字节net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP 地址中的网络号字段和主机号字段 0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001B 类地址的网络号字段 net-id 为 2 字节net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP 地址中的网络号字段和主机号字段 0
13、A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001C 类地址的网络号字段 net-id 为 3 字节net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP 地址中的网络号字段和主机号字段 0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001A 类地址的主机号字段 host-id 为
14、 3 字节net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP 地址中的网络号字段和主机号字段 0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001B 类地址的主机号字段 host-id 为 2 字节net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP 地址中的网络号字段和主机号字段 0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8
15、 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001C 类地址的主机号字段 host-id 为 1 字节net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP 地址中的网络号字段和主机号字段 0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001D 类地址是多播地址 net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitI
16、P 地址中的网络号字段和主机号字段 0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001E 类地址保留为今后使用 路由器转发分组的步骤 n先按所要找的 IP 地址中的网络号 net-id 把目的网络找到。n当分组到达目的网络后,再利用主机号host-id 将数据报直接交付给目的主机。n按照整数字节划分 net-id 字段和 host-id 字段,就可以使路由器在收到一个分组时能够更快地将地址中的网络号提取出来。 点分十进制记法 1000000000001011
17、0000001100011111 机器中存放的 IP 地址是 32 bit 二进制代码10000000 00001011 00000011 00011111 每隔 8 bit 插入一个空格能够提高可读性采用点分十进制记法则进一步提高可读性128.11.3.31 128 11 3 31 将每 8 bit 的二进制数转换为十进制数2. 常用的三种类别的 IP 地址 IP 地址的使用范围 网络 最大 第一个 最后一个 每个网络类别 网络数 可用的 可用的 中最大的 网络号 网络号 主机数 A 126 (27 2) 1 126 16,777,214 B 16,384 (214) 128.0 191.2
18、55 65,534 C 2,097,152 (221) 192.0.0 223.255.255 254210.34.0.12厦门大学主页IP 地址的一些重要特点 (1) IP 地址是一种分等级的地址结构。分两个等级的好处是:n第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。n第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。 IP 地址的一些重要特点 (2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路
19、的接口。 n当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多接口主机(multihomed host)。n由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。 IP 地址的一些重要特点 (3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。(4) 所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。 互联网中的 IP 地址
20、 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。图中的网络号就是 IP 地址中的 net-id互联网中的
21、 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。图中的网络号就是 IP 地址中的 net-i
22、d互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。图中的网络号就是 IP 地址中的
23、 net-id互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。图中的网络号就是 I
24、P 地址中的 net-id互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同
25、网络号的 IP 地址。 互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网
26、络号的 IP 地址。 互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网络
27、号的 IP 地址。 互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网两个路由器直接相连的接口处,可指明也可不指明 IP 地址。如指明 IP 地址,则
28、这一段连线就构成了一种只包含一段线路的特殊“网络” 。现在常不指明 IP 地址。6.2.2 IP 地址与硬件地址 TCP 报文IP 数据报MAC 帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上 使用 IP 地址IP 地址HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从
29、HA6 到 HA2MAC 帧MAC 帧IP 数据报从协议栈的层次上看数据的流动HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报从虚拟的 IP 层上看 IP 数据报的流动HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器
30、 R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报在链路上看 MAC 帧的流动IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6
31、到 HA2MAC 帧MAC 帧IP 数据报在 IP 层抽象的互联网上只能看到 IP 数据报图中的 IP1IP2 表示从源地址 IP1 到目的地址 IP2 两个路由器的 IP 地址并不出现在 IP 数据报的首部中 IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报路由器只根据目的站的 IP 地址的网络号进行路由选择 IP1HA1HA5HA4HA3HA6HA2IP6
32、主机 H1主机 H2路由器 R1IP 层上的互联网IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2MAC 帧从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报在具体的物理网络的链路层只能看见 MAC 帧而看不见 IP 数据报 IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2MAC 帧从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报IP层抽
33、象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信 7.2.3 地址解析协议 ARP 和逆地址解析协议 RARP n不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 n每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。n当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入
34、MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。 ARP 响应AYXBZ主机 B 向 A 发送ARP 响应分组 主机 A 广播发送ARP 请求分组 ARP 请求ARP 请求ARP 请求ARP 请求209.0.0.5209.0.0.600-00-C0-15-AD-1808-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-0AAYXBZ209.0.0.5209.0.0.600-00-C0-15-AD-18ARP 高速缓存的作用n
35、为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。n当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。 应当注意的问题nARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。n如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。应
36、当注意的问题n从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。n只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。 为什么我们不直接使用硬件地址进行通信? n由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。n连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的
37、,对用户来说是看不见这种调用过程的。 逆地址解析协议 RARP n逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。n这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。 7.2.4 IP 数据报的格式 n一个 IP 数据报由首部和数据两部分组成。n首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。n在首部的固定部分的后面是一些可选字段,其长度是可变的。 固定部分可变部分04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度
38、可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特数 据 部 分首 部传送IP 数据报首部可变部分首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特数 据 部 分首 部传送IP 数据报固定部分首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部
39、长度01234567DTRC未用优 先 级数 据 部 分比特数 据 部 分首 部传送IP 数据报固定部分可变部分首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分版本占 4 bit,指IP协议的版本目前的 IP 协议版本号为 4 (即 IPv4)首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地
40、址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分首部长度占 4 bit,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是60字节。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分服务类型占 8 bit,用来获得更好的服务这个字段以前一直没有被人们使用 首部048161924
41、31版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分总长度占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。 首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用
42、优 先 级数 据 部 分比特固定部分可变部分标识(identification) 占 16 bit,它是一个计数器,用来产生数据报的标识。 首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分标志(flag) 占 3 bit,最低位MF=1,表示后面还有分片MF=0,表示若干数据报片中最后一个中间位DF=1,表示不能分片;DF=0,表示能分片首部04816192431版 本标志生 存 时
43、 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分片偏移(13 bit)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。偏移 = 0/8 = 0偏移 = 0/8= 0偏移 = 1400/8 = 175偏移 = 2800/8 = 350140028003799279913993799需分片的数据报数据报片 1首部数据部分共 3800 字节首部 1首部 2首部 3字节 0数据报片 2数据报片 3140
44、02800字节 0IP 数据报分片的举例首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分生存时间(8 bit)记为 TTL (Time To Live)数据报在网络中的寿命,其单位为秒。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234
45、567DTRC未用优 先 级数 据 部 分比特固定部分可变部分协议(8 bit)字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程运输层网络层首部TCPUDPICMPIGMPOSPF数 据 部 分IP 数据报协议字段指出应将数据部分交给哪一个进程首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分首部检验和(16 bit)字段只检验数据报的首部不包
46、括数据部分。这里不采用 CRC 检验码而采用简单的计算方法。 发送端接收端16 bit字 116 bit字 2置为全 0检验和16 bit字 n16 bit反码算术运算求和取反码数据报首部IP 数据报16 bit检验和16 bit字 116 bit字 216 bit检验和16 bit字 n16 bit反码算术运算求和16 bit结果取反码数据部分若结果为 0, 则保留;否则,丢弃该数据报数据部分不参与检验和的计算首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首
47、部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分源地址和目的地址都各占 4 字节2. IP 数据报首部的可变部分 nIP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。n选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。n增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。n实际上这些选项很少被使用。 7.2.5 IP 层转发分组的流程 路由器和结点交换机有些区别: n路由器是用来连接不同的网络,而结点交换机只是在一个特
48、定的网络中工作。n路由器是专门用来转发分组的,而结点交换机还可接上许多个主机。n路由器使用统一的 IP 协议,而结点交换机使用所在广域网的特定协议。n路由器根据目的网络地址找出下一个路由器,而结点交换机则根据目的站所接入的交换机号找出下一跳(即下一个结点交换机)。 网 110.0.0.0 网 440.0.0.0 网 330.0.0.0 网 220.0.0.010.0.0.440.0.0.430.0.0.220.0.0.920.0.0.7目的主机所在的网络下一跳路由器的地址20.0.0.030.0.0.010.0.0.040.0.0.020.0.0.730.0.0.1直接交付,接口 1直接交付,
49、接口 0路由器 R2 的路由表30.0.0.110.0.0.440.0.0.430.0.0.220.0.0.920.0.0.730.0.0.1链路 4链路 3链路 2链路 1R2R3R101R2R3R1在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址) 特定主机路由 n这种路由是为特定的目的主机指明一个路由。n采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。 分组转发算法 (1) 从数据报的首部提取目的站的 IP 地址 D, 得出目的网络地址为 N。(2) 若网络 N 与此路由器直接相连,则直接将数据报交付给目的
50、站 D;否则是间接交付,执行(3)。(3) 若路由表中有目的地址为 D 的特定主机路由,则将数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。(4) 若路由表中有到达网络 N 的路由,则将数据报传送给路由表指明的下一跳路由器;否则,执行(5)。(5) 若路由表中有一个默认路由,则将数据报传送给路由表中所指明的默认路由器;否则,执行(6)。(6) 报告转发分组出错。 必须强调指出 nIP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。n当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入IP数据报,而是送交下层的网络接口软件。n网络接口软件使用 ARP
51、负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。 7.3 划分子网和构造超网6.3.1 划分子网1. 从两级 IP 地址到三级 IP 地址 n在 ARPANET 的早期,IP 地址的设计确实不够合理。nIP 地址空间的利用率有时很低。 n给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。 n两级的 IP 地址不够灵活。 n从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。n这种做法叫作划分子网(subnetting) 。划分子网已成为因
52、特网的正式标准协议。 三级的 IP 地址 n划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。n从主机号借用若干个比特作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个比特。IP地址 := , , (6-2) 划分子网的基本思路 n凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。n然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。n最后就将 IP 数据报直接交付给目的主机。 划分子网的基本思路(续)
53、 145.13.3.10145.13.3.11145.13.3.101145.13.7.34145.13.7.35145.13.7.56145.13.21.23145.13.21.9145.13.21.8所有到网络 145.13.0.0的分组均到达此路由器我的网络地址是 145.13.0.0R1R3R2网络145.13.0.0一个未划分子网的 B 类网络145.13.0.0划分为三个子网后对外仍是一个网络 145.13.3.10145.13.3.11145.13.3.101145.13.7.34145.13.7.35145.13.7.56145.13.21.23145.13.21.9145.1
54、3.21.8子网 145.13.21.0子网 145.13.3.0 子网 145.13.7.0所有到达网络 145.13.0.0的分组均到达此路由器网络145.13.0.0R1R3R2n当没有划分子网时,IP 地址是两级结构,地址的网络号字段也就是 IP 地址的“因特网部分”,而主机号字段是 IP 地址的“本地部分”。n划分子网后 IP 地址就变成了三级结构。划分子网只是将 IP 地址的本地部分进行再划分,而不改变 IP 地址的因特网部分。 划分子网后变成了三级结构 n从一个 IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网的划分。n使用子网掩码(subnet mask)可
55、以找出 IP 地址中的子网部分。 2. 子网掩码IP 地址的各字段和子网掩码 网络号 net-id主机号 host-id两级 IP 地址网络号net-idhost-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 10 0 0 0 0 0 0 0net-idsubnet-idhost-id 为全 0(IP 地址) AND (子网掩码) =网络地址网络号 net-id主机号 host-id两级 IP 地址网络号三级 IP 地址主机号net-i
56、dhost-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 10 0 0 0 0 0 0 0net-idsubnet-idhost-id 为全 0ANDnet-idnet-idhost-id 为全 0net-id网络地址A类地址默认子网掩码255.0.0.0网络地址B类地址默认子网掩码255.255.0.0网络地址C类地址默认子网掩码255.255.255.01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0
57、0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 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 01 1 1 1 1 1 1 10 0 0 0 0 0 0 0host-id 为全 0host-id 为全 0A 类、B 类和 C 类 IP 地址的默认子网掩码 n在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。n但在划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
58、n因此分组转发的算法也必须做相应的改动。 6.3.2 使用子网掩码的分组转发过程128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2128.30.33.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R1 的路由表(未给出默认路由器)R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.1
59、3801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12划分子网后分组的转发举例 主机 H1 要发送分组给 H2 128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(未给出默认路由器)128.30.33.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.
60、30.33.130R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13801128.30.33.129H3128.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,并逐项查
61、找路由表。128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(未给出默认路由器)H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13128.30.33.13801128.30.33.129H3128.30.36.2子网3:网
62、络地址 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 即可。128 10000000138 10001010逐比特 AND 操作后:10000000 128255.255.255.128128. 30. 33.138128.
63、30. 33.128逐比特 AND 操作 H1 的网络地址因此 H1 必须把分组传送到路由器 R1然后逐项查找路由表128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(未给出默认路由器)128.30.33.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.25
64、5.128H2128.30.33.13801128.30.33.129H3128.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.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(未给出默认路由器)128.30.33.13H1
65、子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12255.255.255.128 AND 128.30.33.138 = 128.30.33.128不匹配!(因为128.30.33.128 与路由表中的 128.30.33.0 不一致)R1 收到的分组的目
66、的 IP 地址:128.30.33.138不一致路由器 R1 再用路由表中第 2 个项目的子网掩码和 128.30.33.138 逐比特 AND 操作 128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(未给出默认路由器)128.30.33.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2子网2:网络地址 128.30.33.1
67、28 子网掩码 255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12255.255.255.128 AND 128.30.33.138 = 128.30.33.128匹配!这表明子网 2 就是收到的分组所要寻找的目的网络R1 收到的分组的目的 IP 地址:128.30.33.138一致!在划分子网的情况下路由器转发分组的算法 (1) 从收到的分组的首部提取目的 IP 地址 D。(2) 先用各网络的子网掩码和 D 逐比特相“与”,看
68、是否和 相应的网络地址匹配。若匹配,则将分组直接交付。 否则就是间接交付,执行(3)。(3) 若路由表中有目的地址为 D 的特定主机路由,则将 分组传送给指明的下一跳路由器;否则,执行(4)。(4) 对路由表中的每一行的子网掩码和 D 逐比特相“与”, 若其结果与该行的目的网络地址匹配,则将分组传送 给该行指明的下一跳路由器;否则,执行(5)。(5) 若路由表中有一个默认路由,则将分组传送给路由表 中所指明的默认路由器;否则,执行(6)。(6) 报告转发分组出错。6.5 因特网的路由选择协议6.5.1 有关路由选择协议的几个基本概念1. 理想的路由算法n算法必须是正确的和完整的。 n算法在计算
69、上应简单。 n算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。 n算法应具有稳定性。 n算法应是公平的。 n算法应是最佳的。 代价 n在研究路由选择时,需要给每一条链路指明一定的代价。n这里“代价”并不是指“钱”,而是由一个或几个因素综合决定的一种度量(metric),如链路长度、数据率、链路容量、是否要保密、传播时延等,甚至还可以是一天中某一个小时内的通信量、结点的缓存被占用的程度、链路差错率等。 最佳路由 n不存在一种绝对的最佳路由算法。n所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。n实际的路由选择算法,应尽可能接近于理想的算法。 n路由选择是个非常复杂的
70、问题n它是网络中的所有结点共同协调工作的结果。n路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。 从路由算法 的自适应性考虑n静态路由选择策略即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。 n动态路由选择策略即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。 2. 分层次的路由选择协议n因特网采用分层次的路由选择协议。原因:n因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。n许多单位不愿意外
71、界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。于是: 自治系统(autonomous system) n因特网将整个互联网划分为许多较小的自治系统 AS。n一个自治系统是一个互联网,其最重要的特点就是自治系统有权自主地决定在本系统内应采用何种路由选择协议。 n一个自治系统内的所有网络都属于一个行政单位(例如,一个公司,一所大学,政府的一个部门,等等)来管辖。 n一个自治系统的所有路由器在本自治系统内都必须是连通的。 这样,涉及到2类路由选择协议;因特网有两大类路由选择协议 n内部网关协议 IGP (Interior Gatewa
72、y Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。n外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。 R1H1H2内部网关协议IGP(例如,RIP)自治系统 A自治系统 B自治系统 CIGPIGPIGPIGPIGPIGPIGPIGPIGPIGPIGPIGPEGPEGPEGP内部网关协议
73、IGP(例如,OSPF)外部网关协议EGP(例如,BGP-4)IGPR3R2自治系统和内部网关协议、外部网关协议 这里要指出两点 n因特网的早期 RFC 文档中未使用“路由器”而是使用“网关”这一名词。但是在新的 RFC 文档中又使用了“路由器”这一名词。应当把这两个属于当作同义词。nIGP 和 EGP 是协议类别的名称。但 RFC 在使用 EGP 这个名词时出现了一点混乱,因为最早的一个外部网关协议的协议名字正好也是 EGP。因此在遇到名词 EGP 时,应弄清它是指旧的协议 EGP 还是指外部网关协议 EGP 这个类别。 因特网的路由选择协议 n内部网关协议 IGP:具体的协议有多种,如 R
74、IP 和 OSPF 等。n外部网关协议 EGP:目前使用的协议就是 BGP。6.5.2 内部网关协议 RIP (Routing Information Protocol)1. 工作原理n路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。nRIP 是一种分布式的基于距离向量的路由选择协议。nRIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。 “距离”的定义 n从一路由器到直接连接的网络的距离定义为 1。n从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。nRIP 协议中的“距离”也称为“跳数”(hop count),因为每经过
75、一个路由器,跳数就加 1。 “距离”的定义 nRIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。nRIP 允许一条路径最多只能包含 15 个路由器。n“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。nRIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。 RIP 协议的三个要点 n仅和相邻路由器交换信息。 n交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 n按固定的时间间隔交换路由信息,例如,每隔 30 秒。 路由表的建立 n路由器在刚刚开始工作时
76、,只知道到直接连接的网络的距离(此距离定义为1)。n以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。n经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。nRIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。 2. 距离向量算法收到相邻路由器(其地址为 X)的一个 RIP 报文:(1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1。(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:若项目中的目的网
77、络不在路由表中,则将该项目加到路由表中。 否则 若下一跳字段给出的路由器地址是同样的,则将收到的项目替换原路由表中的项目。 否则 若收到项目中的距离小于路由表中的距离,则进行更新,否则,什么也不做。(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16(距离为16表示不可达)。(4) 返回。路由器之间交换信息 nRIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。n虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的
78、位置不同,它们的路由表当然也应当是不同的。 1 1 2 1 3 1 FEDCBA5 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 FEDCBA5 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网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更
79、新后A 说:“我到网 1 的距离是 1。”因此 B 现在也可以到网 1,距离是 2,经过 A。”1 1 2 1 3 1 FEDCBA5 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网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后A 说:“我到网 2 的距离是 1。”因此 B 现在也可以到网 2,距离是 2,经过 A。”1 1 2 1 3 1 FEDCBA5 1 6 1 2 1 5 1 3 1 4 1 4 1 6 1 1 1 5 1 路由
80、器 B 收到相邻路由器 A 和 C 的路由表网 3网 2网 4网 6网 5网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后A 说:“我到网 3 的距离是 1。”但 B 没有必要绕道经过路由器 A再到达网 3,因此这一项目不变。1 1 2 1 3 1 FEDCBA5 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网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后C 说:“我到网 4 的距离是
81、1。”但 B 没有必要绕道经过路由器 C再到达网 4,因此这一项目不变。1 1 2 1 3 1 FEDCBA5 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网 11 1 2 1 3 1 4 1 6 1 1 2 A2 2 A3 1 4 1 6 2 C更新后C 说:“我到网 6 的距离是 1。”因此 B 现在也可以到网 6,距离是 2,经过 C。”最终所有的路由器的路由表都更新了FEDCBA1 1 2 1 3 1 4 2 B5 2 E6 3 B1 1 2 2 A3 2 A4 3 A5 1
82、6 2 F1 2 E2 2 D3 3 C4 2 C5 1 6 1 1 3 B2 3 B3 2 B4 1 5 2 F6 1 网 2网 6网 5网 1网 3网 41 2 A2 1 3 2 A4 3 A5 1 6 2 F1 2 A2 2 A3 1 4 1 5 3 C6 2 CRIP 协议的位置 nRIP 协议使用运输层的用户数据报 UDP进行传送(使用 UDP 的端口 520)。n因此 RIP 协议的位置应当在应用层。但转发 IP 数据报的过程是在网络层完成的。 RIP 协议的优缺点 nRIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。n RIP 协议最大的
83、优点就是实现简单,开销较小。nRIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。n路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。 R2R1网 1网 3网 2正常情况1 1 1 2 R1R1 说:“我到网 1 的距离是 1,是直接交付。”“1”表示“从本路由器到网 1”“1”表示“距离是 1”“ ”表示“直接交付”R2R1网 1网 3网 2正常情况1 1 1 2 R1R2 说:“我到网 1 的距离是 2,是经过 R1。”“1”表示“从本路由器到网 1”“2”表示“距离是 2”“R1”表示经过 R1R2R1网 1网 3网 2R2R1网
84、 1网 3网 2网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R1 说:“我到网 1 的距离是 16 (表示无法到达), 是直接交付。”但 R2 在收到 R1 的更新报文之前,还发送原来的报文,因为这时 R2 并不知道 R1 出了故障。R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说:“我到网 1 的距离是 3,下一跳经过 R2”。然后将此更新信息发送给 R2。1 3 R2R2R1网 1网 3网 2R2R1网 1网 3网 2
85、网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。 1 3 R21 4 R1R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 3 R21 5 R21 16 R21 2 R11 2 R11 4 R11 16 R1这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网1是不可达的。 这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的
86、一个主要缺点。 6.5.4 外部网关协议 BGPnBGP 是不同自治系统的路由器之间交换路由信息的协议。 nBGP 的较新版本是 1995 年发表的 BGP-4(BGP 的第 4 个版本)。 n可以将 BGP-4 简写为 BGP。 BGP 使用的环境却不同 n因特网的规模太大,使得自治系统之间路由选择非常困难。 n对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。 n自治系统之间的路由选择必须考虑有关策略。n因此,边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。 BGP 发言人 n每一个自治系统的管理员要选择至少一个路由器作
87、为该自治系统的“BGP 发言人” 。n一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。 BGP 交换路由信息n一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。n使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。n使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。BGP 发言人和自治系统 AS 的关系 BGP
88、发言人BGP发言人BGP 发言人BGP 发言人BGP发言人AS1AS3AS2AS5AS4自治系统连通图 nBGP 发言人互相交换网络可达性的信息后,各 BGP 发言人就可找出到达各自治系统的比较好的路由。 AS1AS6AS2AS3AS5AS4AS7AS8BGP 发言人交换路径向量 主干网(AS1)地区 ISP(AS2)地区 ISP(AS3)本地 ISP(AS4)N1, N2本地 ISP(AS5)N3, N4本地 ISP(AS6)N5本地 ISP(AS7)N6, N7自治系统 AS2 的 BGP 发言人通知主干网的 BGP 发言人:“要到达网络 N1, N2, N3 和 N4 可经过 AS2。”
89、 BGP 发言人交换路径向量 主干网(AS1)地区 ISP(AS2)地区 ISP(AS3)本地 ISP(AS4)N1, N2本地 ISP(AS5)N3, N4本地 ISP(AS6)N5本地 ISP(AS7)N6, N7主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。” 6.6 IP 多播和因特网组管理协议 IGMP6.6.1 IP 多播的基本概念n许多应用需要由一个源点通过一次发送操作,把同样的分组副本发送到许多终点。多播可明显地减少网络中资源的消耗。(多播靠多播路由器识别多播分组来实现) 复制复制R1R3R4R5R6R2XBDCA多播组 G多播组 G多
90、播组 GIP 多播的一些特点 (1) 多播使用组地址 IP 使用 D 类地址支持多播(后28位的IP地址: 224.0.0.0 239.255.255.255)。多播地址只能用于目的地址,而不能用于源地址。 (2) 有些D类地址不能任意使用:永久组地址由因特网号码指派管理局 IANA 负责指派。(3) 动态的组成员 IGMP(4) 使用硬件进行多播6.6.2 因特网组管理协议 IGMP (Internet Group Management Protocol) nIGMP 是在多播环境下使用的协议,它位于网际层。nIGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 I
91、P 数据报),但它也向 IP 提供服务。n不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。 IGMP 可分为两个阶段 n第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。IGMP 可分为两个阶段 n第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。n只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。n但一个组在经过几次的探询后仍然没
92、有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。主机在多播中的几种状态 加入组 / 启动计时器离开组 / 取消计时器DELAYINGMEMBER计时器时间到 / 发送响应询问到达 / 启动计时器其他主机响应 / 取消计时器参照计数器的值变为零 / 离开组NON-MEMBERMEMBERIGMP 的报文格式 IP数据报首部IGMP 报文IP 数据报081631类 型组地址(询问时为零)响 应 时 间检 验 和比特6.6.3 多播路由选择 多播路由选择相当复杂(1) 即使网络拓扑不发生变化,但由于某个应用程序加入或离开了一个多播组,多播路由都会发生变化。(2) 多播转发要求路由器不仅
93、要检查目的地址,而且还要检查源地址,以便确定何时需要复制多播数据报和转发多播数据报副本。(3) 多播数据报可以由不是多播组成员的主机产生,并且可能通过没有任何组成员的网络。 隧道技术(tunneling) 不支持多播 的网络隧道多播数据报单播 IP 数据报首部数 据首部数 据网 1 和网 2 中的多播数据报隧道中通行的单播 IP 数据报R2R1网 1(支持多播)网 2(支持多播)几种多播路由选择协议 n距离向量多播路由选择协议 DVMRP (Distance Vector Multicast Routing Protocol)n核心基干树 CBT (Core Based Tree) n开放最短
94、通路优先的多播扩展 MOSPF (Multicast Extensions to OSPF) n协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode) n协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode) 6.7 虚拟专用网 VPN 和网络地址转换 NAT6.7.1 虚拟专用网 VPNn本地地址仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。n全球地址全球惟一的IP地址,必须向因特网的管理机构申请。 若因特网上的
95、某一主机的IP地址正好和本机构的某一本地地址相同,那么这台因特网上的主机要和本机构的某一具有全球地址的主机通信就会出现地址二义性问题。RFC 1918指明的专用地址(private address) n10.0.0.0 到 10.255.255.255n172.16.0.0 到 172.31.255.255n192.168.0.0 到 192.168.255.255n这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。n专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。 X10.1.0.1用隧道技术实现虚拟专用网 部门
96、 A因特网部门 BR1R2隧道125.1.2.3194.4.5.6Y10.2.0.3使用隧道技术本地地址本地地址全球地址X10.1.0.1用隧道技术实现虚拟专用网 部门 A因特网部门 BR1R2隧道125.1.2.3194.4.5.6Y10.2.0.3使用隧道技术加密的从 X 到 Y 的内部数据报外部数据报的数据部分源地址:125.1.2.3目的地址:194.4.5.6数据报首部部门 A部门 BXYR1R2125.1.2.3194.4.5.610.1.0.110.2.0.3虚拟专用网 VPN内联网 Intranet 和外联网 Extranet(都是基于TCP/IP协议) n由部门 A 和 B
97、的内部网络所构成的虚拟专用网 VPN 又称为内联网(Intranet),表示部门 A 和 B 都是在同一个机构的内部。n一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网(Extranet)。 部门 A部门 BXYR1R2125.1.2.3194.4.5.610.1.0.110.2.0.3虚拟专用网 VPN6.7.2 网络地址转换 NAT (Network Address Translation)n网络地址转换 NAT 方法于1994年提出。n需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。n所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。 网络地址转换的过程n内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。nNAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。nNAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。n根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。