第 6 章 网络互连 基本内容 网络互连的概念,IP协议、IP地址、IP数据报的格式、子网划分及子网掩码的设置、IP地址和物理地址的关系,控制报文协议,路由选择协议:内部网关协议RIP、OSPF,外部网关协议BGP,网络互联设备。 重点掌握 IP协议、IP地址、 IP数据报的格式、子网划分及子网掩码的设置、IP地址和物理地址的关系,路由选择协议:内部网关协议RIP、OSPF,外部网关协议BGP。
6.1 路由器在网际互连中的作用 网络互联的必要性: 多种网络类型的存在 不同的应用要求由不同的网络支持 处于不同网络上的用户有互相通信的要求 处于同一网络上的用户有使用另一网络上资源的需求
6.1.1 路由器的构成 当主机 A 要向另一个主机 B 发送数据报时,先要检查目的主机 B 是否与源主机 A 连接在同一个网络上。
直接交付不需要使用路由器但间接交付就必须使用路由器。 直接交付和间接交付 C A 直接交付 间接交付 间接交付 间接交付 直接交付 B 直接交付不需要使用路由器但间接交付就必须使用路由器。
典型的路由器的结构 路由选择处理机 3——网络层 2——数据链路层 1——物理层 路由 选择 分组 转发 交换结构 路由选择协议 路由表 输入端口 输出端口 1 2 3 3 2 1 分组处理 … … 转发表 分组 转发 输入端口 输出端口 1 2 3 交换结构 3 2 1
“转发”和“路由选择”的区别 “转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。 “路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。
数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。 输入端口对线路上收到的分组的处理 数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。 输入端口的处理 网络层处理 分组排队 从 线 路 接 收 分 组 交 换 结 构 数据链路层 处理 物理层处理 查表和转发
输出端口将交换结构传送来的分组发送到线路 当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。 输出端口的处理 向 线 路 发 送 分 组 网络层处理 分组排队 交 换 结 构 数据链路层 处理 物理层处理 缓存管理
分组丢弃 若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
6.1.2 交换构件 总线 I1 O1 I1 O1 I2 存 储 器 O2 I2 O2 I3 O3 I3 O3 (a) 通过存储器 6.1.2 交换构件 总线 I1 O1 I1 O1 I2 存 储 器 O2 I2 O2 I3 O3 I3 O3 (a) 通过存储器 (b) 通过总线 I1 I2 I3 O2 (c) 通过互连网络 O1 O3
6.1.3 互联网与因特网 互连在一起的网络要进行通信,会遇到许多问题需要解决,如: 不同的寻址方案; 不同的最大分组长度; 6.1.3 互联网与因特网 互连在一起的网络要进行通信,会遇到许多问题需要解决,如: 不同的寻址方案; 不同的最大分组长度; 不同的网络接入机制; 不同的超时控制; 不同的差错恢复方法; 不同的状态报告方法; 不同的路由选择技术; 不同的用户接入控制; 不同的服务(面向连接服务和无连接服务); 不同的管理与控制方式 。
网络互连设备 将网络互相连接起来的设备,称为中继(relay)系统,根据中继系统所处的层次的不同,可有以下五种中继系统: 物理层中继系统:转发器(repeater)。 数据链路层中继系统:网桥或桥接器(bridge)。 网络层中继系统:路由器(router)。 网桥和路由器的混合物:桥路器(brouter)。兼有网桥和路由器的功能。 在网络层以上的中继系统:网关(gateway)。主要实现高层协议的转换。
网络互连使用路由器 当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。 网关由于比较复杂,目前使用得较少。 互联网都是指用路由器进行互连的网络。 由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。
互连网络与虚拟互连网络 路由器 网络 网络 虚拟互连网络 (IP 网) 网络 网络 网络 (a) 互连网络 (b) 虚拟互连网络
虚拟互连网络的意义 所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。 使用 IP 协议的虚拟互连网络可简称为 IP 网。 使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。
名词 internet 和 Internet 以小写字母 i 开始的 internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的虚拟网络。 以大写字母 I 开始的的 Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族,且其前身是美国的 ARPANET。
6.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 IGMP 网际层 IP RARP ARP 与各种网络接口 网络接口层 物理硬件
6.2.1 分类的 IP 地址 我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是惟一的 32 bit 的标识符。 IP地址现在由因特网名字与号码指派公司ICANN进行分配。 IP 地址的编址方法: 分类的 IP 地址,这是最基本的编址方法。 子网的划分,这是对最基本的编址方法的改进。 构成超网,这是比较新的无分类编址方法。
引入TCP/IP地址 主机A 主机B 172.16.3.10 10.250.8.11 公司 A 公司B 唯一编址使得端系统间的通信成为可能。
分类 IP 地址 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。 两级的 IP 地址可以记为: IP 地址 ::= { <网络号>, <主机号>} ::= 代表“定义为”。
IP 地址中的网络号字段和主机号字段 A 类地址 net-id 8 bit host-id 24 bit B 类地址 1 net-id net-id 8 bit host-id 24 bit B 类地址 1 net-id 16 bit host-id 16 bit C 类地址 1 1 net-id 24 bit host-id 8 bit D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 0 保 留 为 今 后 使 用
路由器转发分组的步骤 先按所要找的 IP 地址中的网络号 net-id 把目的网络找到。 当分组到达目的网络后,再利用主机号host-id 将数据报直接交付给目的主机。 按照整数字节划分 net-id 字段和 host-id 字段,就可以使路由器在收到一个分组时能够更快地将地址中的网络号提取出来。
点分十进制记法 机器中存放的 IP 地址 是 32 bit 二进制代码 10000000000010110000001100011111 能够提高可读性 10000000 00001011 00000011 00011111 将每 8 bit 的二进制数 转换为十进制数 128 11 3 31 采用点分十进制记法 则进一步提高可读性 128.11.3.31
IP 地址的使用范围 常用的三种类别的 IP 地址 网络 最大 第一个 最后一个 每个网络 类别 网络数 可用的 可用的 中最大的 网络 最大 第一个 最后一个 每个网络 类别 网络数 可用的 可用的 中最大的 网络号 网络号 主机数 A 126 (27 – 2) 1 126 16,777,214 B 16,384 (214) 128.0 191.255 65,534 C 2,097,152 (221) 192.0.0 223.255.255 254
常用的三种类别的 IP 地址 一般不使用的特殊IP地址 net-id host-id 作源地址 作目的地址 含 意 可以 不可 含 意 可以 不可 在本网络上的本主机 host-id 可以 不可 在本网络上的某个主机 全1 全1 不可 可以 只在本网络上进行广播 net-id 全1 不可 可以 对net-id 上的所有主机广播 用作本地软件回送测试 (loopback test)之用 127 任意 可以 可以
IP 地址的一些重要特点 (1)IP 地址是一种分等级的地址结构。分两个等级的好处是: 第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。 第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
IP 地址的一些重要特点 (2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多接口主机(multihomed host)。 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
IP 地址的一些重要特点 (3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。 (4) 所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
互联网中的 IP 地址 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3
IP地址的一些特性 在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。 路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网络号的 IP 地址。 两个路由器直接相连的接口处,可指明也可不指明 IP 地址。如指明 IP 地址,则这一段连线就构成了一种只包含一段线路的特殊“网络” 。现在常不指明 IP 地址。
6.2.2 IP 地址与硬件地址 物理地址是在单个网络内部对一个计算机进行寻址时所使用的地址。在局域网中物理地址被固化在网卡的ROM中。IP地址有32bit,物理地址有48bit。 在IP层的抽象互连网上,我们看到的是IP数据报,在数据报的首部中写明源地址和目的地址。 在具体的物理网络的链路层,我们看到的是MAC帧,IP数据报被封装在MAC帧里面。 互连在一起的网络的硬件地址体系可能各不相同,但IP层抽象的互连网却屏蔽了下层的这些很复杂的细节。
6.2.2 IP 地址与硬件地址 首部 应用层数据 网络层及以上 使用 IP 地址 IP 地址 TCP 报文 首部 硬件地址 IP 数据报 尾部 链路层及以下 使用硬件地址 MAC 帧
从不同层次看IP地址和硬件地址 查找路由表 查找路由表 通信的路径: H1→经过 R1 转发→再经过 R2 转发→H2 主机 H1 HA1 HA3 HA4 HA5 HA6 HA2 局域网 局域网 局域网 通信的路径: H1→经过 R1 转发→再经过 R2 转发→H2
从协议栈的层次上看数据的流动 主机 H1 主机 H2 路由器 R1 路由器 R2 IP1 → IP2 IP1 → IP2 IP1 → IP2 HA1 HA3 HA4 HA5 HA6 HA2 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2 MAC 帧 MAC 帧 MAC 帧
从虚拟的 IP 层上看 IP 数据报的流动 主机 H1 主机 H2 路由器 R1 路由器 R2 IP1 → IP2 IP1 → IP2 IP1 → IP2 IP1 IP2 IP3 IP4 IP5 IP6 HA1 HA3 HA4 HA5 HA6 HA2 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2 MAC 帧 MAC 帧 MAC 帧 在 IP 层抽象的互联网上只能看到 IP 数据报,IP1→IP2 表示从源地址 IP1 到目的地址 IP2 ,两个路由器的 IP 地址并不出现在 IP 数据报的首部中。
在链路上看 MAC 帧的流动 在具体的物理网络的链路层只能看见 MAC 帧而看不见 IP 数据报。 主机 H1 主机 H2 路由器 R1 IP1 → IP2 IP1 → IP2 IP1 → IP2 IP1 IP2 IP3 IP4 IP5 IP6 HA1 HA3 HA4 HA5 HA6 HA2 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2 MAC 帧 MAC 帧 MAC 帧 在具体的物理网络的链路层只能看见 MAC 帧而看不见 IP 数据报。
不同层次、不同区间的源地址和目的地址 源地址 目的地址 IP1 IP2 HA1 HA3 HA4 HA5 HA6 HA2 从H1到R1 从R1到R2 在网络层 写入IP数据报首部的 在数据链路层 写入MAC帧首部的
(1)主机或路由器怎样知道应当在MAC帧的首部填入什么样的硬件地址? (2)路由器中的路由表是怎样得出不的? ?
6.2.3 地址解析协议和逆地址解析协议 问题的提出: IP地址将不同的物理地址统一起来,将物理地址隐藏,上层软件使用IP地址标识节点。 只有两台机器知道物理地址时才能进行实际的通信 分组到达目的物理网络后,发送分组的计算机需把目的主机的IP地址映射到它的物理地址上 需经中介路由器的发送,发送方必须将中介路由器的IP地址映射到它的物理地址上
6.2.3 地址解析协议和逆地址解析协议 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
主机 A 广播发送 ARP 请求分组 主机 B 向 A 发送 ARP 响应分组 我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18 我想知道主机 209.0.0.6 的硬件地址 ARP 请求 ARP 请求 ARP 请求 ARP 请求 209.0.0.6 209.0.0.5 X Y Z A B 00-00-C0-15-AD-18 主机 B 向 A 发送 ARP 响应分组 我是 209.0.0.6 硬件地址是 08-00-2B-00-EE-0A ARP 响应 209.0.0.6 209.0.0.5 X Y Z A B 00-00-C0-15-AD-18 08-00-2B-00-EE-0A
ARP 高速缓存的作用 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。
应当注意的问题 ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。
为什么不直接使用硬件地址进行通信? 由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。 连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
逆地址解析协议 RARP 逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。 这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。
6.2.4 IP 数据报的格式 一个 IP 数据报由首部和数据两部分组成。 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。 在首部的固定部分的后面是一些可选字段,其长度是可变的。
6.2.4 IP 数据报的格式 比特 1 2 3 4 5 6 7 优 先 级 D T R C 未用 比特 4 8 16 19 24 31 1 2 3 4 5 6 7 优 先 级 D T R C 未用 比特 4 8 16 19 24 31 版 本 首部长度 服 务 类 型 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 传送 首 部 数 据 部 分 IP 数据报
IP数据报首部的固定部分各字段 版本——占 4 bit,指IP协议的版本。 总长度——占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。 标识——占 16 bit,它是一个计数器,用来产生数据报的标识。 标志——占 3 bit,目前只有前两个比特有意义。 片偏移——占12 bit,指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。
IP 数据报分片的举例 数据部分共 3800 字节 需分片的 数据报 片偏移 = 0/8 = 0 首部 字节 0 1400 2800 3799 首部 1 首部 2 首部 3 字节 0 1399 1400 2799 2800 3799 数据报片 1 数据报片 2 数据报片 3 片偏移 = 0/8 = 0 片偏移 = 1400/8 = 175 片偏移 = 2800/8 = 350
IP数据报首部的固定部分各字段 生存时间——占 8bit,记为 TTL (Time To Live),数据报在网络中的寿命,其单位为秒。 协议——占 8bit,字段指出此数据报携带的数据使用何种协议以便使目的主机的 IP 层将数据部分上交给哪个处理过程。 运输层 TCP UDP ICMP IGMP OSPF 网络层 首部 数 据 部 分 IP 数据报 协议字段指出应将数据 部分交给哪一个进程
IP数据报首部的固定部分各字段 首部检验和——占 16bit,字段只检验数据报的首部不包括数据部分。这里不采用 CRC 检验码而采用简单的计算方法。 源地址——占 4字节。 目的地址 ——占 4字节。
IP数据报首部的固定部分各字段 发送端 接收端 字 1 字 1 16 bit 16 bit 数 据 报 首 部 字 2 16 bit 字 2 … … 置为全 0 检验和 16 bit 检验和 … … 字 n 字 n 16 bit 16 bit 16 bit 反码算术 运算求和 16 bit 反码算术 运算求和 取反码 IP 数据报 取反码 16 bit 检验和 16 bit 结果 若结果为 0, 则保留; 否则,丢弃该数据报 数据部分 不参与检验和的计算 数据部分
IP数据报首部的可变部分 IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。 选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。 增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。 实际上这些选项很少被使用。
6.2.5 IP 层转发分组的流程 路由器和结点交换机有些区别: 路由器是用来连接不同的网络,而结点交换机只是在一个特定的网络中工作。 路由器是专门用来转发分组的,而结点交换机还可接上许多个主机。 路由器使用统一的 IP 协议,而结点交换机使用所在广域网的特定协议。 路由器根据目的网络地址找出下一个路由器,而结点交换机则根据目的站所接入的交换机号找出下一跳(即下一个结点交换机)。
6.2.5 IP 层转发分组的流程 路由器 R2 的路由表 在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址) 10.0.0.4 20.0.0.7 20.0.0.9 30.0.0.2 30.0.0.1 40.0.0.4 R1 R2 R3 网 1 10.0.0.0 网 2 20.0.0.0 网 3 30.0.0.0 网 4 40.0.0.0 1 路由器 R2 的路由表 目的主机所在的网络 下一跳路由器的地址 20.0.0.0 直接交付,接口 0 30.0.0.0 直接交付,接口 1 10.0.0.0 20.0.0.7 40.0.0.0 30.0.0.1 10.0.0.4 20.0.0.7 20.0.0.9 30.0.0.2 30.0.0.1 40.0.0.4 R1 R2 R3 链路 1 链路 2 链路 3 链路 4 在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址)
特定主机路由 这种路由是为特定的目的主机指明一个路由。 采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
分组转发算法 (1) 从数据报的首部提取目的站的 IP 地址 D, 得出目的网络地址为 N。 (2) 若网络 N 与此路由器直接相连,则直接将数据报交付给目的站 D;否则是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则将数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。 (4) 若路由表中有到达网络 N 的路由,则将数据报传送给路由表指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则将数据报传送给路由表中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
必须强调指出 IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。 当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入IP数据报,而是送交下层的网络接口软件。 网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
6.3 划分子网和构造超网 6.3.1 划分子网 6.3.2 使用子网掩码的分组转发过程 6.3.3 无分类编址 CIDR
6.3.1 划分子网 从两级 IP 地址到三级 IP 地址 IP 地址空间的利用率有时很低。 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。 两级的 IP 地址不够灵活。 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。 这种做法叫作划分子网(subnetting) 。划分子网已成为因特网的正式标准协议。
划分子网的基本思路 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。 从主机号借用若干个比特作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个比特。 IP地址 ::= {<网络号>, <子网号>, <主机号>} 注:两级的 IP 地址可以记为: IP 地址 ::= { <网络号>, <主机号>}
子网划分举例 将B类网168.95.0.0划分为8个子网(需3位),每个子网中至多8192个主机(213)。 子网号全“0”和全“1”的不可用,实际可用6个子网。 10101000 01011111 000 00000 00000000 10101000 01011111 001 00000 00000000 10101000 01011111 010 00000 00000000 10101000 01011111 011 00000 00000000 10101000 01011111 100 00000 00000000 10101000 01011111 101 00000 00000000 10101000 01011111 110 00000 00000000 10101000 01011111 111 00000 00000000 网络号 子网号
划分子网的基本思路 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。 最后就将 IP 数据报直接交付给目的主机。
一个未划分子网的 B 类网络145.13.0.0 145.13.3.101 145.13.3.11 … 145.13.7.34 R2 145.13.3.10 145.13.7.35 网络 145.13.0.0 R1 … R3 145.13.7.56 … 所有到网络 145.13.0.0的分组均到达此路由器 145.13.21.23 145.13.21.8 145.13.21.9
划分为三个子网后对外仍是一个网络 网络 145.13.0.0 所有到达网络 145.13.0.0 的分组均到达 145.13.3.101 此路由器 145.13.3.101 145.13.3.11 145.13.7.34 145.13.3.10 … 145.13.7.35 子网 145.13.3.0 R2 子网 145.13.7.0 … 145.13.7.56 R3 R1 子网 145.13.21.0 … 145.13.21.23 网络 145.13.0.0 145.13.21.9 145.13.21.8
划分子网后变成了三级结构 当没有划分子网时,IP 地址是两级结构,地址的网络号字段也就是 IP 地址的“因特网部分”,而主机号字段是 IP 地址的“本地部分”。 划分子网后 IP 地址就变成了三级结构。划分子网只是将 IP 地址的本地部分进行再划分,而不改变 IP 地址的因特网部分。
主机间通信情形和存在的问题 主机之间通信的两种情形 在同一网络中,两台主机相互通信 在不同网络中,两台主机相互通信 问题: 如何区分两种情况 如何获取主机IP地址中的网络地址部分
同一网络中主机之间通信 网络地址210.39.15.0 210.39.15.15 源地址 210.39.15.20 210.39.15.127 目的地址 发送 210.39.15.255 广播地址 接收 广播
不同网络间的主机之间通信 网络地址210.39.15.0 R2 210.39.15.15 210.39.15.32 发送 210.39.15.255 广播地址 202.112.4.63 目的地址 网络地址 202.112.4.0 转发
子网掩码 从一个 I P数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网的划分。 使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。 子网掩码和IP地址都是32bit长,由一串1和0组成。 子网掩码中的1对应于IP地址中的网络号和子网号,而子网掩码中的0对应于IP地址中主机号。
IP 地址的各字段和子网掩码 网络号 net-id 主机号 host-id 两级 IP 地址 网络号 net-id host-id subnet-id 子网号 子网掩码 因特网部分 本地部分 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
AND (IP 地址) AND (子网掩码) =网络地址 网络号 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 host-id 为全 0 AND
A 类、B 类和 C 类 IP 地址的默认子网掩码 A 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.0.0.0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.255.0.0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 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
6.3.2 使用子网掩码的分组转发过程 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。 但在划分子网的情况下,从IP地址却不能惟一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。 分组转发的算法也必须做相应的改动。
划分子网后分组的转发举例 R1 的路由表 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 H2 128.30.33.138 R2 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
划分子网后分组的转发举例 要发送的分组的目的 IP 地址:128.30.33.138 R1 的路由表 R1 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 H2 128.30.33.138 R2 请注意:H1 并不知道 H2 连接在哪一个网络上。H1 仅仅知道 H2 的 IP 地址是128.30.33.138。因此 H1 首先检查主机 128.30.33.138 是否连接在本网络上。如果是,则直接交付;否则,就送交路由器 R1,并逐项查找路由表。 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
具体转发过程 假设H1要发送的分组是给H2,主机 H1 首先将本子网的子网掩码 255.255.255.128,与分组的 IP 地址 128.30.33.138 逐比特相“与”(AND 操作),得出128.30.33.128,它不等于H1的网络地址( 128.30.33.0),这说明H2和H1不在同一子网上,因此H1知道不能将分组直接交付给H2,而是将分组交给路由器R1,然后逐项查找路由表,由R1转发。
具体转发过程 R1 的路由表 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 R1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 H2 128.30.33.138 R2 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
R1 收到的分组的目的 IP 地址为128. 30. 33. 138,路由器 R1 收到分组后就用路由表中第 1 个项目的子网掩码和 128 R1 收到的分组的目的 IP 地址为128.30.33.138,路由器 R1 收到分组后就用路由表中第 1 个项目的子网掩码和 128.30.33.138 逐比特 AND 操作,得网络地址为128.30.33.128。和第1项的目的网络地址不一致。 R1 的路由表(未给出默认路由器) 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 R1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 H2 128.30.33.138 R2 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
接着拿第 2个项目的子网掩码和 128. 30. 33. 138 逐比特 AND 操作,得网络地址为128. 30. 33 R1 的路由表(未给出默认路由器) 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 R1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 H2 128.30.33.138 R2 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
在划分子网的情况下路由器转发分组的算法 (1) 从收到的分组的首部提取目的 IP 地址 D。 (5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
6.3.3 无分类编址 CIDR CIDR 最主要的特点: CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。 CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。 IP 地址从三级编址(使用子网掩码)又回到了两级编址。
无分类的两级编址 无分类的两级编址的记法是: IP地址 ::= {<网络前缀>, <主机号>} CIDR 还使用“斜线记法”(slash notation),它又称为CIDR记法,即在IP地址后面加上一个斜线“/”,然后写上网络前缀所占的比特数(这个数值对应于三级编址中子网掩码中比特 1 的个数)。例如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.32.255。 全 0 和全 1 的主机号地址一般不使用。。
128.14.32.0/20 表示的地址(212 个地址) 10000000 00001110 0010 0000 00000000 10000000 00001110 0010 0000 00000001 10000000 00001110 0010 0000 00000010 10000000 00001110 0010 0000 00000011 10000000 00001110 0010 0000 00000100 10000000 00001110 0010 0000 00000101 10000000 00001110 0010 1111 11111011 10000000 00001110 0010 1111 11111100 10000000 00001110 0010 1111 11111101 10000000 00001110 0010 1111 11111110 10000000 00001110 0010 1111 11111111 最小地址 所有地址 的 20 bit 前缀都是 一样的 最大地址
路由聚合(route aggregation) 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个原来传统分类地址的路由。 路由聚合也称为构成超网(supernetting)。 CIDR 虽然不使用子网,但仍然使用“掩码”这一名词(但不叫子网掩码)。 对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。
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 掩码中有 10 个连续的 1 255 192
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 网络前缀的后面加一个星号 * 的表示方法 如 00001010 00*,在星号 * 之前是网络前缀,而星号 * 表示 IP 地址中的主机号。
构成超网 前缀长度不超过 23 bit 的 CIDR 地址块都包含了多个 C 类地址。 CIDR 地址块中的地址数一定是 2 的整数次幂。 网络前缀越短,其地址块所包含的地址数就越多。 CIDR地址块可包含多个连续的C类地址,构成超网。这样的地址称为一个“编址域”,其中的地址数一定是2的整数次幂。例如,某单位需要2000个IP地址,则为其分配一个连续地址块共个2048个地址(即8个C类地址)的,而不是一个B类地址。
CIDR 地址块划分举例 ISP 大学 X 因特网 三系 四系 二系 一系 206.0.64.0/18 206.0.68.0/22 206.0.68.0/23 206.0.70.0/24 206.0.71.128/25 206.0.71.0/25 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.71.0/26 206.0.71.64/26 206.0.71.128/26 206.0.71.192/26 三系 四系 二系 一系 单位 地址块 二进制表示 地址数 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 地址块划分举例 ISP 大学 X 因特网 206.0.64.0/18 206.0.68.0/22 大学 X 因特网 206.0.70.0/24 206.0.71.128/25 206.0.68.0/23 206.0.71.0/25 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.71.0/26 206.0.71.64/26 206.0.71.128/26 206.0.71.192/26 三系 四系 二系 一系 这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。
最长前缀匹配 使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。但在查找路由表时可能会得到不止一个匹配结果。 应当从匹配结果中选择具有最长网络前缀的路由,这叫做最长前缀匹配。 网络前缀越长,其地址块就越小,因而路由就越具体。 最长前缀匹配又称为最长匹配或最佳匹配。
最长前缀匹配举例 假设收到的分组的目的地址 D = 206.0.71.130 路由表中的项目:206.0.68.0/22 (大学) 206.0.71.128/25 (四系) 查找路由表中的第 1 个项目,第 1 个项目 206.0.68.0/22 的掩码 M 有 22 个连续的 1。 M = 11111111 11111111 11111100 00000000 M = 11111111 11111111 11111100 00000000 AND D = 206. 0. 01000111. 10000010 206. 0. 01000100. 0 与 206.0.68.0/22 匹配
最长前缀匹配举例 收到的分组的目的地址 D = 206.0.71.130 路由表中的项目:206.0.68.0/22 (大学) 206.0.71.128/25 (四系) 查找路由表中的第 2 个项目,第 2 个项目 206.0.71.128/25 的掩码 M 有 25 个连续的 1。 M = 11111111 11111111 11111111 10000000 因此只需把 D 的第 4个字节转换成二进制。 M = 11111111 11111111 11111111 10000000 AND D = 206. 0. 01000111. 10000010 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 匹配 选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。
使用二叉线索查找路由表 当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。 为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索(binary trie)。 IP地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。 为了提高二叉线索的查找速度,广泛使用了各种压缩技术。
6.4 因特网控制报文协议ICMP 为了提高 IP 数据报交付成功的机会,在网际层使用了因特网控制报文协议 ICMP (Internet Control Message Protocol)。 ICMP协议用于主机、路由器、网关之间交换网络层信息。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 ICMP 不是高层协议,而是 IP 层的协议。 ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
ICMP 报文的格式和种类 ICMP 报文的种类有两种, 差错报告报文和询问报文。 8 16 31 类型 代码 检验和 (这 4 个字节取决于 ICMP 报文的类型) ICMP 的数据部分(长度取决于类型) ICMP 报文 首 部 数 据 部 分 IP 数据报 ICMP 报文的种类有两种, 差错报告报文和询问报文。 ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
ICMP 差错报告报文共有 5 种 终点不可达:网络不可达、主机不可达、协议不可达、端口不可达、需要分片但DF已置为1,源路由失败等六种情况。 源站抑制:网络拥塞时,主机/路由器丢弃数据报,向源站发送抑制报文,通知源站放慢发送速度。 时间超过:路由器收到TTL为0的数据报时,向源站发送该报文。 参数问题:当路由器/主机收到的报文的首部字段有错时,就向源站发送参数问题报文。 改变路由(重定向):路由器将改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
类型、代码字段与报文类型的关系 Type Code description 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header
ICMP协议属于网络层协议,但“凌驾”于网络层之上,即ICMP报文需由IP报文传送。 首部 8 字节 ICMP 的 前 8 字节 IP 数据报 首部 8 字节 ICMP 差错报告报文 首部 ICMP 差错报告报文 装入 ICMP 报文的 IP 数据报 IP 数据报
不应发送 ICMP 差错报告报文的几种情况 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。 对具有多播地址的数据报都不发送 ICMP 差错报告报文。 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送 ICMP 差错报告报文。
ICMP 询问报文有四种 回送请求和回答报文:由主机/路由器向一特定主机发出ICMP询问,特定主机收到后必须给出ICMP回答报文。 时间戳请求和回答报文:请某个主机/路由器回答当前的日期和时间。 掩码地址请求和回答报文:主机/路由器向子网掩码服务器索取某个接口的地址掩码。 路由器询问和通告报文:主机向连其所在网络中的路由器是否正常工作。收到该询问的若干路由器通告报文广播其路由选择信息。
(1)主机或路由器怎样知道应当在MAC帧的首部填入什么样的硬件地址? (2)路由器中的路由表是怎样得出不的? ?
6.5 因特网的路由选择协议 功能:将分组从源端机器经选定路由送到目的端机器 希望具有的特征: 6.5 因特网的路由选择协议 功能:将分组从源端机器经选定路由送到目的端机器 希望具有的特征: 正确性、简单性、健壮性、稳定性、公平性和最优性 公平性与最优性之间的矛盾 算法分类: 非自适应算法 静态路由算法,其特点是简单和开销较小,但不能及时适应网络状态的变化。 自适应算法 动态路由算法,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
代价 在研究路由选择时,需要给每一条链路指明一定的代价。 这里“代价”并不是指“钱”,而是由一个或几个因素综合决定的一种度量(metric),如链路长度、数据率、链路容量、是否要保密、传播时延等,甚至还可以是一天中某一个小时内的通信量、结点的缓存被占用的程度、链路差错率等。
最佳路由 不存在一种绝对的最佳路由算法。 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。 实际的路由选择算法,应尽可能接近于理想的算法。 路由选择是个非常复杂的问题 它是网络中的所有结点共同协调工作的结果。 路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。
分层次的路由选择协议 因特网采用分层次的路由选择协议。 因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。
自治系统(autonomous system) 因特网将整个互联网划分为许多较小的自治系统 AS。 一个自治系统是一个互联网,其最重要的特点就是自治系统有权自主地决定在本系统内应采用何种路由选择协议。 一个自治系统内的所有网络都属于一个行政单位(例如,一个公司,一所大学,政府的一个部门,等等)来管辖。 一个自治系统的所有路由器在本自治系统内都必须是连通的。 因特网可视为多个自治系统的集合。
因特网有两大类路由选择协议 内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。与互联网中其他自治系统中采用的路由选择协议无关,目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。 外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。
自治系统和内部网关协议、外部网关协议 自治系统 A 自治系统 B 自治系统 C R3 IGP EGP R2 IGP IGP IGP IGP H1 IGP H2 IGP IGP IGP IGP 内部网关协议 IGP (例如 RIP) 外部网关协议 EGP (例如 BGP-4) 内部网关协议 IGP (例如 OSPF)
因特网的路由选择协议 内部网关协议 IGP:具体的协议有多种,如 RIP 和 OSPF 等。 外部网关协议 EGP:目前使用的协议就是 BGP。
6.5.2 内部网关协议 RIP 工作原理: 路由信息协议( RIP) 是内部网关协议 IGP中最先得到广泛使用的协议。 RIP 是一种基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
“距离”的定义 从一路由器到直接连接的网络的距离定义为 1。从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。 “距离”也称为“跳数” ,每经过一个路由器,跳数就加1。 RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”。 RIP 允许一条路径最多只能包含 15 个路由器。 “距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。 RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由,哪怕还存在另一条高速(低时延)但路由器较多的路由。
RIP 协议的三个要点 仅和相邻路由器交换信息。 交换的信息是当前本路由器所知道的全部信息,即自己的路由表(到本自治系统中所有网络的最短距离,以及到每个网络应经过的下一跳路由器)。 按固定的时间间隔交换路由信息,例如,每隔 30 秒。
路由表的建立 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
距离向量算法 收到相邻路由器(其地址为 X)的一个 RIP 报文: (1) 先修改此 RIP 报文中的所有项目:将“下一跳”字段中的地址都改为 X,并将所有的“距离”字段的值加 1。 (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤: 若项目中的目的网络不在路由表中,则将该项目加到路由表中。否则,若下一跳字段给出的路由器地址是同样的,则将收到的项目替换原路由表中的项目。否则 ,若收到项目中的距离小于路由表中的距离,则进行更新,否则,什么也不做。 (3) 若 3 分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16(距离为16表示不可达)。 (4) 返回。
路由器之间交换信息 RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。
“”表示“直接交付” “1”表示“距离是 1” 一开始,各路由表只有到相邻路由器的信息 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 网 4 3 1 4 1 C “”表示“直接交付” “4”表示“从本路由器到网 4” “1”表示“距离是 1”
因此 B 现在也可以到网 1,距离是 2,经过 A。” 路由器 B 收到相邻路由器 A 和 C 的路由表 1 1 2 1 3 1 F E D C B A 5 1 6 1 4 1 网 3 网 2 网 4 网 6 网 5 网 1 1 1 2 1 3 1 更新后 1 2 A 3 1 4 1 A 说:“我到网 1 的距离是 1。” 因此 B 现在也可以到网 1,距离是 2,经过 A。”
因此 B 现在也可以到网 2,距离是 2,经过 A。” 路由器 B 收到相邻路由器 A 和 C 的路由表 1 1 2 1 3 1 F E D C B A 5 1 6 1 4 1 网 3 网 2 网 4 网 6 网 5 网 1 1 1 2 1 3 1 更新后 1 2 A 2 2 A 3 1 4 1 A 说:“我到网 2 的距离是 1。” 因此 B 现在也可以到网 2,距离是 2,经过 A。”
但 B 没有必要绕道经过路由器 A再到达网 3,因此这一项目不变。 路由器 B 收到相邻路由器 A 和 C 的路由表 1 1 2 1 3 1 F E D C B A 5 1 6 1 4 1 网 3 网 2 网 4 网 6 网 5 网 1 1 1 2 1 3 1 更新后 1 2 A 2 2 A 3 1 4 1 A 说:“我到网 3 的距离是 1。” 但 B 没有必要绕道经过路由器 A再到达网 3,因此这一项目不变。
路由器 B 收到相邻路由器 A 和 C 的路由表 更新后 C 说:“我到网 4 的距离是 1。” 但 B 没有必要绕道经过路由器 C 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 网 4 3 1 4 1 C 4 1 6 1 更新后 C 说:“我到网 4 的距离是 1。” 但 B 没有必要绕道经过路由器 C 再到达网 4,因此这一项目不变。 1 2 A 2 2 A 3 1 4 1 6 2 C
因此 B 现在也可以到网 6,距离是 2,经过 C。” 路由器 B 收到相邻路由器 A 和 C 的路由表 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 网 4 3 1 4 1 C 4 1 6 1 更新后 1 2 A 2 2 A 3 1 4 1 6 2 C C 说:“我到网 6 的距离是 1。” 因此 B 现在也可以到网 6,距离是 2,经过 C。”
最终所有的路由器的路由表都更新了 1 1 2 1 3 1 4 2 B 5 2 E 6 3 B 1 1 2 2 A 3 2 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 E 网 1 网 5 1 2 A 2 1 3 2 A 4 3 A 5 1 6 2 F 网 2 D A F C 网 6 1 2 A 2 2 A 3 1 4 1 5 3 C 6 2 C 1 3 B 2 3 B 3 2 B 4 1 5 2 F 6 1 网 3 B 网 4
RIP 协议的报文格式 4 字节 地址族标识符 路由标记 4 字节 网络地址 命令 版本 必为 0 子网掩码 下一跳路由器地址 距离 (1-16) 首部 路由部分 路由信息 (20 字节/路由) 可重复出现 最多 25 个 RIP 报文 IP 首部 UDP 首部 UDP 用户数据报 IP 数据报
RIP2 的报文格式 RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符字段用来标志所使用的地址协议。 路由标记填入自治系统的号码,这是考虑使RIP 有可能收到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
RIP 协议的优缺点 RIP 协议最大的优点就是实现简单,开销较小。 RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。 RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
举例说明 R1 说:“我到网 1 的距离是 1,是直接交付。” R2 说:“我到网 1 的距离是 2,是经过 R1。” 正 常 情 况 1 1 1 2 R1 网 1 网 2 网 3 R1 R2 R1 说:“我到网 1 的距离是 1,是直接交付。” R2 说:“我到网 1 的距离是 2,是经过 R1。”
R1 说:“我到网 1 的距离是 16 (表示无法到达),是直接交付。” 举例说明 网 1 网 2 网 3 R1 R2 网 1出了故障 1 16 1 2 R1 R1 说:“我到网 1 的距离是 16 (表示无法到达),是直接交付。” 但 R2 在收到 R1 的更新报文之前,还发送原来的报文,因为这时 R2 并不知道 R1 出了故障。
举例说明 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 1 3 R2 R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说:“我到网 1 的距离是 3,下一跳经过 R2”。然后将此更新信息发送给 R2。
R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。 举例说明 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 1 3 R2 1 4 R1 R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。
… 举例说明 这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网1是不可达的。 这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。 举例说明 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 1 3 R2 1 4 R1 … 1 5 R2 1 16 R2 1 16 R1 这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网1是不可达的。
6.5.3 内部网关协议 OSPF (Open Shortest Path First) “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法。 OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。 是分布式的链路状态协议。
三个要点 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。 “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
链路状态数据库(link-state database) 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。 V1 V4 V0 V2 V3 V5 100 10 30 60 20 50 5
OSPF 划分为两种不同的区域 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。 OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
OSPF 划分为两种不同的区域 至其他自治系统 自治系统 AS 主干区域 0.0.0.0 区域 0.0.0.1 区域 0.0.0.3 R1 R6 网 6 R3 R7 网 1 R5 R9 网 7 网 2 R4 R2 网 3 网 8 R8 网 4 网 5 区域 0.0.0.1 区域 0.0.0.3 区域 0.0.0.2
主干路由器(R3、R4、R5 、R6 、R7 ) 至其他自治系统 自治系统 AS 主干区域 0.0.0.0 区域 0.0.0.1 网 6 R3 R7 网 1 R5 R9 网 7 网 2 R4 R2 网 3 网 8 R8 网 4 网 5 区域 0.0.0.1 区域 0.0.0.3 区域 0.0.0.2
区域边界路由器(R3、R4、R7) 至其他自治系统 自治系统 AS 主干区域 0.0.0.0 区域 0.0.0.1 区域 0.0.0.3 网 6 R3 R7 网 1 R5 R9 网 7 网 2 R4 R2 网 3 网 8 R8 网 4 网 5 区域 0.0.0.1 区域 0.0.0.3 区域 0.0.0.2
自治系统边界路由器是专门和本自治系统外的其他自治系统交换路由信息。 自治系统边界路由器(R6) 至其他自治系统 自治系统 AS 主干区域 0.0.0.0 R1 R6 网 6 R3 R7 网 1 R5 R9 网 7 网 2 R4 R2 网 3 网 8 R8 网 4 网 5 区域 0.0.0.1 区域 0.0.0.3 区域 0.0.0.2 自治系统边界路由器是专门和本自治系统外的其他自治系统交换路由信息。
OSPF 直接用 IP 数据报传送 OSPF 不用 UDP 而是直接用 IP 数据报传送,可见 OSPF 的位置在网络层。 OSPF 构成的数据报很短。这样做可减少路由信息的通信量。 数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
OSPF 的其他特点 OSPF 对不同的链路可根据 IP 分组的不同服务类型 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。从而保证了仅在可信赖的路由器之间交换链路状态信息。 支持可变长度的子网划分和无分类编址 CIDR。 每一个链路状态都带上一个 32 bit 的序号,序号越大状态就越新。
OSPF 分组 比特 8 16 31 版 本 类 型 分 组 长 度 路 由 器 标 识 符 区 域 标 识 符 检 验 和 鉴 别 类 型 8 16 31 版 本 类 型 分 组 长 度 路 由 器 标 识 符 区 域 标 识 符 检 验 和 鉴 别 类 型 鉴 别 鉴 别 24 字节 OSPF 分组首部 类型 1 至类型 5 的 OSPF 分组 IP数据报首部 OSPF 分组 IP 数据报
OSPF 的五种分组类型 类型1,问候分组:用来发现和维持邻站的可达性。 类型2,数据库描述分组:向邻站给出自己的链路状态数据库中所有链路状态项目的摘要信息。 类型3,链路状态请求分组:向对方请求发送某些链路状态项目的详细信息。 类型4,链路状态更新分组:用洪泛法对全网更新链路状态。 类型5,链路状态确认分组:对链路更新分组的确认。 OSPF规定:每两个相邻路由器之间每隔10秒交换一次问候分组,以维持路由器之间的可达性。若40秒没收到某相邻路由器发来的问候分组,则认为该路由器不可达,应立即修改链路状态数据库,并重新计算路由表。其他的四种分组是用来进行链路状态数据库的同步。
路由器刚开始工作时,它通过问候分组得知它有哪些相邻的路由器在工作。 OSPF 的基本操作 路由器刚开始工作时,它通过问候分组得知它有哪些相邻的路由器在工作。 每一个路由器用数据库描述分组和相邻路由器交换本数据库中已有的链路状态的摘要信息。 确定可达性 问候 路由器使用链路状态请求分组,向对方请求发送自己所缺少的某些链路状态的详细信息。 问候 达到数据库的同步 数据库描述 数据库描述 数据库描述 数据库描述 新情况下的同步 链路状态请求 链路状态更新 链路状态确认
在网络运行过程中,只要有一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用洪泛法对全网更新链路状态。 OSPF 使用的是可靠的洪泛法 在网络运行过程中,只要有一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用洪泛法对全网更新链路状态。 t1 t2 t3 t4 更新报文 R R R ACK报文 R
OSPF 的其他特点 OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。 OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。
指定的路由器 多点接入的局域网采用了指定的路由器的方法,使广播的信息量大大减少。 指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。
OSPF 支持三种网络的连接 (1) 两个路由器之间的点对点连接 (2) 具有广播功能的局域网 (3) 无广播功能的广域网 局域网 L1 5 4 3 8 13 12 10 7 6 16 A B H G F E C D I 广域网 W5 W3 W2 W6 W1 W4
用有向图表示链路状态数据库 W1 W4 B D 12 10 H 4 E 8 W6 5 7 W2 A 4 8 7 2 3 13 3 4 8 3 I F G L1 12 2 L2 2 6 W5 16 C W3
以路由器F为根的最短路径树 W1 W4 12 B D E W6 W2 5 4 7 8 A 3 4 8 I L2 F G 3 L1 16 6
6.5.4 外部网关协议 BGP 因特网的规模太大,使得自治系统之间路由选择非常困难。 对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。自治系统之间的路由选择只可能交换“可达性”信息(即“可到达”或“不可到达”)。 自治系统之间的路由选择必须考虑有关策略。 边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
外部网关协议必须考虑大量策略问题 希望从因特网上收发数据, 但不愿为某两个外部AS传递分组; 愿意为邻居AS传递分组,或向某些愿意为这种服务付费的特殊AS传递分组; 某些政策、安全的需要,对路由有所限制。比如: 不经过某些AS的通信; 不将伊拉克放到一个始于美国五角大楼的路由中; 从英国哥伦比亚到安大略不经过美国; 如无目的地的可选路由,则只经过阿尔巴尼亚; 始于或终止于IBM的通信不经过 Microsoft。
BGP 发言人 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP 发言人” 。 BGP 发言人往往就是 BGP 边界路由器。 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话,利用 BGP 会话交换路由信息。 使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
每个BGP 发言人除了必须运行BGP协议外,还必须运行自治系统所使用的内部网关协议。 BGP 发言人和自治系统 AS 的关系 BGP 发言人 BGP 发言人 AS1 AS2 BGP 发言人 BGP 发言人 AS3 BGP 发言人 AS4 AS5 每个BGP 发言人除了必须运行BGP协议外,还必须运行自治系统所使用的内部网关协议。
BGP 发言人互相交换网络可达性的信息后,各 BGP 发言人就可找出到达各自治系统的比较好的路由。它是树形结构,不存在回路。 自治系统连通图 BGP 发言人互相交换网络可达性的信息后,各 BGP 发言人就可找出到达各自治系统的比较好的路由。它是树形结构,不存在回路。 AS2 AS1 AS3 AS4 AS6 AS7 AS5 AS8
自治系统 AS2 的 BGP 发言人通知主干网的 BGP 发言人:“要到达网络 N1, N2, N3 和 N4 可经过 AS2。” 本地 ISP(AS4) N1, N2 本地 ISP(AS5) N3, N4 地区 ISP (AS2) 主干网 (AS1) 本地 ISP(AS6) N5 地区 ISP (AS3) 本地 ISP(AS7) N6, N7
主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。” BGP 发言人交换路径向量 主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。” 本地 ISP(AS4) N1, N2 地区 ISP (AS2) 本地 ISP(AS5) N3, N4 主干网 (AS1) 本地 ISP(AS6) N5 本地 ISP(AS7) N6, N7 地区 ISP (AS3)
BGP 协议的特点 BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。 每一个自治系统中 BGP 发言人的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。 BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
BGP-4 共使用四种报文 (1) 打开(Open)报文,用来与相邻的另一个BGP发言人建立关系。 (2) 更新(Update)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。 (3) 保活(Keepalive)报文,用来确认打开报文和周期性地证实邻站关系。 (3) 通知(Notificaton)报文,用来发送检测到的差错。
BGP 报文的格式 4 字节 标 记 首部长度 19 字节 长 度 类 型 BGP 报文的数据部分 可变长度
6.6 IP 多播和因特网组管理协议 IGMP IP多播(组播):由一个源点将信息发送多个终点,实现一对多的通信。 局域网的多播是用硬件实现:当以太网上的PC机收到一个帧时,用网卡就可判断目的地址是否属于下列三种地址之一: 本网卡的硬件地址(单播) 全1的目的地址(广播) 地址的第1字节的最低位是1的组地址,且本站已加入到该组。 如果是,则收下该帧;否则,丢弃该帧。
6.6 IP 多播和因特网组管理协议 IGMP 因特网上向多个目的站发送数据报的方法有两种: 采用单播方式若干次 采用多播方式,如下图中主机X向多播组G中A、C、D三个主机进行组播 R4 R3 D C A 多播组 G 复制 B R1 X R2 复制 R5 R6
IP 多播的一些特点 (1) 多播使用组地址—— IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。 (2) 永久组地址——由因特网号码指派管理局 IANA 负责指派。 (3) 动态的组成员——新加入组的主机向多播地址发送报文,声明其组员关系。多播路由器会周期性询问,对组成员进行管理。 (4) 使用硬件进行多播——因特网中的许多网络是以太网,它们本身就具有硬件多播功能,利用它们传送多播数据报就非常方便。
D 类 IP 地址与以太网多播地址的映射关系 8 16 24 31 1110 0 1 0 0 5 E 00000001 00000000 在多播主机组标识符中的 5 bit 不能用来构成以太网地址 8 16 24 31 D 类 IP 地址 1110 多播主机组标识符的低 23 bit 复制到以太网地址中 0 1 0 0 5 E 00000001 00000000 01011110 48 bit 以太网地址 目的地址的第 1 字节中的 最低位比特置 1 表示多播
因特网组管理协议 IGMP IGMP 是在多播环境下使用的协议,它位于网际层。 IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。 不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。
IGMP 可分为两个阶段 第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。 第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
主机在多播中的几种状态 其他主机响应 / 取消计时器 加入组 / 启动计时器 计时器时间到 / 发送响应 NON- MEMBER DELAYING MEMBER MEMBER 离开组 / 取消计时器 询问到达 / 启动计时器 参照计数器的值变为零 / 离开组
IGMP 的报文格式 比特 8 16 31 类 型 响 应 时 间 检 验 和 组地址(询问时为零) IP数据报首部 IGMP 报文 8 16 31 类 型 响 应 时 间 检 验 和 组地址(询问时为零) IP数据报首部 IGMP 报文 IP 数据报
多播路由选择 多播路由选择相当复杂 (1) 即使网络拓扑不发生变化,但由于某个应用程序加入或离开了一个多播组,多播路由都会发生变化。 (2) 多播转发要求路由器不仅要检查目的地址,而且还要检查源地址,以便确定何时需要复制多播数据报和转发多播数据报副本。 (3) 多播数据报可以由不是多播组成员的主机产生,并且可能通过没有任何组成员的网络。
隧道技术(tunneling) 网 1 (支持多播) 网 2 (支持多播) 不支持多播 的网络 R1 R2 隧道 多播数据报 首部 数 据 数 据 网 1 和网 2 中的多播数据报 首部 数 据 隧道中通行的单播 IP 数据报 单播 IP 数据报
6.7 虚拟专用网VPN和网络地址转换NAT 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。 全球地址——全球惟一的IP地址,必须向因特网的管理机构申请。
[RFC 1918]指明的专用地址 10.0.0.0 到 10.255.255.255 172.16.0.0 到 172.31.255.255 192.168.0.0 到 192.168.255.255 这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。 专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。
用隧道技术实现虚拟专用网 本地地址 全球地址 本地地址 125.1.2.3 隧道 194.4.5.6 部门 B Y X 部门 A R2 R1 10.1.0.1 部门 A 因特网 部门 B R1 R2 隧道 125.1.2.3 194.4.5.6 Y 10.2.0.3 使用隧道技术
用隧道技术实现虚拟专用网 加密的从 X 到 Y 的内部数据报 源地址:125.1.2.3 目的地址:194.4.5.6 外部数据报的数据部分 数据报首部 125.1.2.3 隧道 194.4.5.6 部门 B Y X 部门 A R2 R1 10.2.0.3 10.1.0.1 因特网 使用隧道技术
内联网 Intranet 和外联网 Extranet 由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又称为内联网(Intranet),表示部门 A 和 B 都是在同一个机构的内部。 一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网(Extranet)。 内联网 Intranet 和外联网 Extranet都是基于TCP/IP协议。 部门 A 部门 B X Y R1 R2 125.1.2.3 194.4.5.6 10.1.0.1 10.2.0.3 虚拟专用网 VPN
专用网内部的一些主机想和因特网上的主机通信,应采取什么措施?
6.7.2 网络地址转换 NAT 网络地址转换 NAT 方法于1994年提出。 需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。 所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。
网络地址转换的过程 内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。 NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。 NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。 根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。
6.8 下一代的网际协议IPv6(IPng) 从计算机本身发展以及从因特网规模和网络传输速率来看,现在 IPv4 已很不适用。 最主要的问题就是 32 bit 的 IP 地址不够用。 要解决 IP 地址耗尽的问题的措施: 采用无类别编址 CIDR,使 IP 地址的分配更加合理。 采用网络地址转换 NAT方法以节省全球 IP 地址。 采用具有更大地址空间的新版本的 IP 协议 IPv6。
作业: P244 6-16、6-24、6-26 、6-34