【计算机网络 (谢希仁) 习题题解】第4章 网络层 (4)


IPv6 的基本首部

解决IP地址耗尽的根本措施:采用具有更大地址空间的新版本的 IP,即 IPv6 [RFC 2460, 4862, 4443]。

IPv6 仍支持无连接的传送,但将协议数据单元 PDU 称为分组,而不是 IPv4 的数据报。

IPv6 所引进的主要变化:

  • 更大的地址空间。IPv6 把地址增大到 128 位。
  • 扩展的地址层次结构。
  • 灵活的首部格式。IPv6 数据报的首部和 IPv4 的并不兼容。
  • 改进的选项。IPv6 允许数据报包含有选项的控制信息,因而可以包含一些新的选项。但 IPv6 的首部长度是固定的,其选项放在有效载荷中。
  • 允许协议继续扩充。
  • 支持即插即用 (即自动配置)。因此 IPv6 不需要使用 DHCP。
  • 支持资源的预分配。
  • IPv6 首部改为 8 字节对齐,即首部长度必须是 8 字节的整数倍。IPv4 首部是 4 字节对齐。

IPv6
IPv6 数据报由两大部分组成,即基本首部 (base header) 和后面的有效载荷 (payload)。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部 (extension header),再后面是数据部分。注意,所有的扩展首部不属于 IPv6 数据报的首部。

IPv6基本首部

  • 版本 (version):指明协议的版本,对 IPv6 该字段是 6。
  • 通信量类 (traffic class):为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
  • 流标号 (flow label):IPv6 的一个新的机制是支持资源预分配,并且允许路由器把每一个数据报与一个给定的资源分配相联系。IPv6 提出(flow)的抽象概念。“流”是互联网络上从特定源点到特定终点 (单播或多播) 的一系列数据报 (如实时音频或视频传输),而在这个“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。因此,流标号对实时音频/视频数据的传送特别有用。对于传统的电子邮件或非实时数据,则没有用处,把它置为 0 即可。
  • 有效载荷长度 (payload length):指明 IPv6 数据报除基本首部以外的字节数。这个字段的最大值是 65535 字节。
  • 下一个首部 (next header):相当于 IPv4 的协议字段或可选字段。
    当 IPv6 数据报没有扩展首部时,该字段的作用与 IPv4 的协议字段一样,指出基本首部后面的数据应交付 IP 层上面的哪一个高层协议。
    当出现扩展首部时,该字段的值标识后面第一个扩展首部的类型。
  • 跳数限制 (hop limit):用来防止数据报在网络中无限期地存在。源点在每个数据报发出时设定某个跳数限制 (最大为 255 跳)。

在 RFC 2460 中定义了六种扩展首部:逐跳选项;路由选择;分片;鉴别;封装安全有效载荷;目的站选项。

IPv6 把原来 IPv4 首部中选项的功能都放在扩展首部中,并把扩展首部留给路径两端的源点和终点的主机来处理,而数据报途中经过的路由器都不处理这些扩展首部 (逐跳选项扩展首部例外),这样就大大提高了路由器的处理效率


IPv6 的地址

一般来讲,一个 IPv6 数据报的目的地址可以是以下三种基本类型地址之一:

  • 单播 (unicast):传统的点对点通信。
  • 多播 (multicast):一点对多点的通信,数据报发送到一组计算机中的每一个。IPv6 将广播看作多播的一个特例。
  • 任播 (anycast):这是 IPv6 增加的一种类型。任播的终点是一组计算机,但数据报只交付其中的一个,通常是距离最近的一个。

IPv6 把实现 IPv6 的主机和路由器均称为结点。IPv6 给结点的每一个接口指派一个 IP 地址。一个结点可以有多个单播地址,而其中任何一个地址都可以当作到达该结点的目的地址。

IPv6 使用冒号十六进制记法 (colon hexadecimal notation,简写为 colon hex) 表示地址,它把每个 16 位的值用十六进制值表示,各值之间用冒号分隔。

在十六进制记法中,允许把数字前面的 0 省略。

冒号十六进制记法还包含两个有用的技术:

  • 可以允许零压缩 (zero compression),即一连串连续的零可以为一对冒号所取代,例如,FF05:0:0:0:0:0:0:B3 可压缩为 FF05::B3。
    规定在任一地址中只能使用一次零压缩。
  • 冒号十六进制记法可结合使用点分十进制记法的后缀。这种结合在 IPv4 向 IPv6 的转换阶段特别有用。例如,0:0:0:0:0:0:128.10.2.1。再使用零压缩即可得出 ::128.10.2.1。

CIDR 的斜线表示法仍然可用。例如,60 位的前缀 12AB00000000CD30 可记为:
12AB:0000:0000:CD30:0000:0000:0000:0000/60
或 12AB::CD30:0:0:0:0/60
或 12AB:0:0:CD30::/60

IPv6 的地址分类

地址类型二进制前缀简单解释
未指明地址00…0 (128 位),可记为 ::/128这个地址不能用作目的地址,只能为某台主机当作源地址使用,条件是这台主机还没有配置到一个标准的 IP 地址。
环回地址00…1 (128 位),可记为 ::1/128它的作用和 IPv4 的环回地址一样。
多播地址11111111 (8 位),可记为 FF00::/128功能和 IPv4 的一样。这类地址占 IPv6 地址总数的 1/256。
本地链路单播地址1111111010 (10 位),可记为 FE80::/10有些单位的网络使用 TCP/IP 协议,但并没有连接到互联网上
连接在这样的网络上的主机都可以使用这种本地地址进行通信,但不能和互联网上的其他主机通信。
全球单播地址(除上述四种外,所有其他的二进制前缀)IPv6 的这一类单播地址是使用得最多的一类。

IPv6单播地址


ICMPv6

IPv6 需要使用 ICMPv6 来反馈一些差错信息。地址解析协议 ARP 和网际组管理协议 IGMP 的功能都已被合并到 ICMPv6 中。
网络层

ICMPv6 是面向报文的协议,它利用报文来报告差错,获取信息,探测邻站或管理多播通信。

ICMPv6 报文的分类:

  • 差错报文
  • 信息报文
  • 邻站发现报文,在邻站发现 ND (Neighbor-Discovery) 协议的控制下进行发送和接收。
  • 组成员关系报文,在多播听众交付 MLD (Multicast Listener Delivery) 协议的控制下进行发送和接收。

IP 多播

与单播相比,在一对多的通信中,多播可大大节约网络资源。
单播与多播
在互联网范围的多播要靠路由器来实现,这些路由器必须增加一些能够识别多播数据报的软件。能够运行多播协议的路由器称为多播路由器。多播路由器也可转发普通的单播 IP 数据报。

为了适应交互式音频和视频信息的多播,从 1992 年起,在互联网上开始试验虚拟的多播主干网 MBONE (Multicast Backbone On the InterNEt)。MBONE 可把分组传播给地点分散但属于一个组的许多台主机。

在互联网上进行多播较叫做 IP 多播。IP 多播所传送的分组需要使用多播 IP 地址。

如果某台主机现在想接收某个特定多播组的分组,那么怎样才能使这个多播数据报传送到这台主机?

  • 这个多播数据报的目的地址一定不能写入这台主机的 IP 地址。因为在同一时间内可能有成千上万台主机加入到同一个多播组。
    在多播数据报的目的地址写入的是多播组的标识符,然后设法让加入到这个多播组的主机的 IP 地址与多播组的标识符关联起来。
    多播组的标识符就是 IP 地址中的 D 类地址。其范围是 224.0.0.0 到 239.255.255.255。用每一个 D 类地址标志一个多播组。

多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。
多播数据报和一般的 IP 数据报的区别是它使用 D 类 IP 地址作为目的地址,并且首部中的协议字段值是 2,表明使用网际组管理协议 IGMP。

多播地址只能用于目的地址,不能用于源地址
对多播数据报不产生 ICMP 差错报文。因此,若在 PING 命令后面键入多播地址,将永远不会收到响应。

IP 多播可以分为两种:

  • 只在本局域网上进行硬件多播。很重要,因为现在大部分主机都是通过局域网接入到互联网的。
  • 在互联网的范围进行多播。

在局域网上进行硬件多播

TCP/IP 协议使用的以太网单播地址块的范围是从 00-00-5E-00-00-00 到 00-00-5E-FF-FF-FF。
以太网硬件地址字段中的第 1 字节的最低位为 1 时即为多播地址。IANA 拥有的以太网多播地址的范围是从 01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。
在每一个地址中,只有 23 位可用作多播。这只能和 D 类 IP 地址中的 23 位有一一对应的关系。
D类IP地址与以太网多播地址的映射关系
由于多播 IP 地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在 IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。


IGMP 协议和多播路由选择协议

IP多播需要两种协议:

  • 路由器怎样知道多播组的成员信息呢?这要利用网际组管理协议 IGMP (Internet Group Management Protocol) [RFC 3376]。
    IGMP
    IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机 (严格讲,是主机上的某个进程) 参加或退出了某个多播组。
  • 连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这需要使用多播路由选择协议

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

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

在多播过程中一个多播组中的成员是动态变化的。多播路由选择实际上就是要找出以源主机为根节点的多播转发树。在多播转发树上,每一个多播路由器向树的叶节点方向转发收到的多播数据报,但在多播转发树上的路由器不会收到重复的多播数据报。

已有了多种实用的多播路由选择协议,它们在转发多播数据报时使用了以下三种方法:

  • 洪泛与剪除。这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。一开始,路由器转发多播数据报使用洪泛的方法 (广播)。为了避免兜圈子,采用了反向路径广播 RPB (Reverse Path Broadcasting) 策略。
    RPB 的要点:每一个路由器在收到一个多播数据报时,先检查数据报是否是从源点经最短路径传送来的。若是,就向所有其他方向转发刚才收到的多播数据报,否则就丢弃不转发。如果本路由器有好几个相邻路由器都处在到源点的最短路径上,那么只能选择一条最短路径,选择的准则的看这几条最短路径中的相邻路由器谁的 IP 地址最小。
    RPB
  • 隧道技术 (tunneling)。适用于多播组的位置在地理上很分散的情况。
    隧道技术在多播中的应用
    这种使用隧道技术传送数据报又叫做 IP 中的 IP (IP-in-IP)。
  • 基于核心的发现技术。这种方法对于多播组的大小在较大范围内变化时都适合。这种方法是对每一个多播组 G 指定一个核心(core)路由器,给出它的 IP 单播地址。核心路由器按照前面讲过的方法创建出对应于多播组 G 的转发树。
    如果有一个路由器 R1 向这个核心路由器发送数据报,那么它在途中经过的每一个路由器都要检查其内容。当数据报到达参加了 G 的路由器 R2 时,R2 处理这个数据报。
    如果 R1 发出的是一个多播数据报,其目的地址是 G 的组地址,R2 就向 G 的成员转发这个多播数据报。
    如果 R1 发出的数据报是一个请求加入 G 的数据报,R2 就把这个信息加到它的路由中,并用隧道技术向 R1 转发每一个多播数据报的一个副本。
    这样,参加到 G 的路由器就从核心向外增多了,扩大了多播转发树的覆盖范围。

下面是一些建议使用的多播路由选择协议。

  • 距离向量多播路由选择协议 DVMRP (Distance Vector Multicast Routing Protocol) 是在互联网上使用的第一个多播路由选择协议 [RFC 1075]。
  • 基于核心的转发树 CBT (Core Based Tree) [RFC 2189, 2201]。这个协议使用核心路由器作为转发树的根节点。一个大的自治系统 AS 可划分为几个区域,每一个区域选择一个核心路由器。
  • 开放最短通路优先的多播扩展 MOSPF (Multicast extensions to OSPF) [RFC 1585]。这个协议是单播路由选择协议 OSPF 的扩充,使用于一个机构内。MOSPF 使用多播链路状态路由选择创建出基于源点的多播转发树。
  • 协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode) [RFC 4601]。这个协议使用和 CBT 同样的方法构成多播转发树。“协议无关”强调:虽然在建立多播转发树时使用单播数据报来和远程路由器联系,但这并不要求使用特定的单播路由选择协议。这个协议适用于组成员的分布非常分散的情况。
  • 协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode) [RFC 3973]。不使用核心路由器,使用洪泛方式转发数据报。这个协议适用于组成员的分布非常集中的情况。

4-43 IGMP 协议的要点是什么?隧道技术在多播中是怎样使用的?

IGMP 使用 IP 数据报传递其报文,但它也向 IP 提供服务。因此,不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。

从概念上讲,IGMP 的工作可分为两个阶段。

  • 第一阶段:当某台主机加入新的多播组时,该主机应向多播组的多播地址发送一个 IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,还要利用多播路由协议把这种组成员关系转发给互联网上的其他多播路由器。
  • 第二阶段:组成员关系是动态的。本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要有一台主机对某个组响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一台主机响应,多播路由器就认为本网络上的主机已经都离开了这个组,因此也就不再把这个组的成员关系转发给其他的多播路由器。

IGMP 设计得很仔细,避免了多播控制信息给网络增加大量的开销。IGMP 采用的一些具体措施:

  • 在主机和多播路由器之间的所有通信都是使用 IP 多播。只要有可能,携带 IGMP 报文的数据报都用硬件多播来传送。
  • 多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认询问速率是每 125 秒发送一次。
  • 当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。
  • 在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。因此,若一台主机同时参加了几个多播组,则主机对每一个多播组选择不同的随机数。
  • 同一个组内的每一台主机都有监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了。

多播数据报的发送者和接收者都不知道一个多播组的成员有多少,以及这些成员是哪些主机。
互联网中的路由器和主机都不知道哪个应用进程将要向哪个多播发送多播数据报,因为任何应用进程都可以在任何时候向任何一个多播组发送多播数据报,而这个应用进程不需要加入这个多播组。


4-44 什么是 VPN?VPN 有什么特点和优缺点?VPN 有几种类别?

假定在一个机构内部的计算机通信也是采用 TCP/IP 协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址。这就是说,让这些计算机使用仅在本机构有效的 IP 地址 (本地地址),而不需要向互联网的管理机构申请全球唯一的 IP 地址 (全球地址)。这样可以节约全球 IP 地址资源。

RFC 1918 指明了一些专用地址 (private address)。这些地址只能用于一个机构的内部通信,而不能用于和互联网上的主机通信。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。RFC 6890 全面地给出了所有特殊用途的 IPv4 地址,但三个专用地址块的指派并无变化,即
(1) 10.0.0.0 到 10.255.255.255 (或记为 10.0.0.0/8,又称为 24 位块)
(2) 172.16.0.0 到 172.31.255.255 (或记为 172.16.0.0/12,又称为 20 位块)
(3) 192.168.0.0 到 192.168.255.255 (或记为 192.168.0.0/16,又称为 16 位块)

采用这样的专用 IP 地址的互连网络称为专用互联网本地互联网,或更简单些,叫做专用网。专用 IP 地址也叫做可重用地址 (reusable address)。

有时一个很大的机构的许多部门分布的范围很广 (比如在世界各地),这些部门经常要互相交换信息。这可以有两种方法:(1) 租用电信公司的通信线路为本机构专用。线路租金太高。(2) 利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网 VPN (Virtual Private Network)。

如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。

VPN 没有真正使用通信专线,只是在效果上和真正的专用网一样。一个机构要构建自己的 VPN 就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的 VPN 系统都知道其他场所的地址。

用隧道技术实现VPN
R1 和 R2 这两个路由器和互联网的接口地址必须是合法的全球 IP 地址。R1 和 R2 在专用网内部网络的接口地址则是专用网的本地地址。

VPN 类别:

  • 如图 4-59(b) 所示的、由场所 A 和 B 的内部网络所构成的 VPN 又称为内联网 (intranet 或 intranet VPN,即内联网 VPN),表示场所 A 和 B 都属于同一个机构。
  • 有时一个机构的 VPN 需要有某些外部机构参加进来。这样的 VPN 就称为外联网 (extranet 或 extranet VPN)。
  • 还有一种类型的 VPN,就是远程接入 VPN (remoute access VPN)。在外地工作的员工通过拨号接入互联网,而驻留在员工个人电脑中的 VPN 软件可以在员工的个人电脑和公司的主机之间建立 VPN 隧道,员工感到好像是使用公司内部的本地网络。

注意,内联网和外联网都采用了互联网技术,即都是基于 TCP/IP 协议的。


多协议标记交换 MPLS

多协议标记交换 MPLS (MultiProtocol Label Switching) 利用面向连接技术,使每个分组携带一个叫做标记(label)的小整数 (这叫做打上标记)。当分组到达交换机 (即标记交换路由器) 时,交换机读取分组的标记,并用标记值来检索分组转发表。这样就比查找路由表来转发分组要快得多。

MPLS 没有取代 IP,而是作为一种 IP 增强技术,被广泛地应用在互联网中。

MPLS 具有以下三个方面的特点:

  • 支持面向连接的服务质量。
  • 支持流量工程,平衡网络负载。
  • 有效地支持虚拟专用网 VPN。

MPLS 有个很重要的概念是转发等价类 FEC (Forwarding Equivalence Class)。FEC 是路由器按照同样方式对待的 IP 数据报的集合。“按照同样方式对待”表示从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。FEC 的例子是:

  • 目的 IP 地址与某一个特定 IP 地址的前缀匹配的 IP 数据报 (这就相当于普通的 IP 路由器);
  • 所有源地址与目的地址都相同的 IP 数据报;
  • 具有某种服务质量需求的 IP 数据报。

划分 FEC 的方法不受什么限制,这都由网络管理员来控制,非常灵活。入口结点并不是给每一个 IP 数据报指派一个不同的标记,而是将属于同一 EFC 的 IP 数据报都指派同样的标记。FEC 和标记是一一对应的关系。

FEC用于负载平衡
在 MPLS 的情况下,入口结点 A 可设置两种 FEC:“源地址为 H1 而目的地址为 H3”和“源地址为 H2而目的地址为 H4”,把前一种 FEC 的路径设置为 H1->A->B->C->H3,后一种的路径设置为 H2->A->D->E->C->H4。这样可使网络的负载较为平衡。
网络管理员采用自定义的 FEC 就可以更好地管理网络的资源。这种均衡网络负载的做法也称为流量工程 TE (Traffic Engineering) 或通信量工程


MPLS 首部的位置与格式

MPLS
在把加上 MPLS 首部的 IP 数据报封装成以太网帧时,以太网的类型字段在单播的情况下设置为 884716,在多播的情况下为 884816。这样,接收方可以用帧的类型来判决这个帧是携带了 MPLS 标记还是一个常规的 IP 数据报。

“给 IP 数据报打上标记”其实是在以太网帧首部和 IP 数据报之间插入一个 4 字节的 MPLS 首部。具体的标记在“标记值”这个字段中。
MPLS首部的格式

  • 标记值:可以容纳高达 220 个流。但实际上几乎没有哪个 MPLS 实例会使用很大数目的流,因为通常需要管理员人工管理和设置每条交换路径。
  • 试验:目前保留用于试验。
  • 栈 S:在有“标记栈”时使用。
  • 生存时间 TTL:用来防止 MPLS 分组在 MPLS 域中兜圈子。

4-45 什么是 NAT?NAPT 有哪些特点?NAT 的优点和缺点有哪些?

在专用网内部的一些主机本来已经分配到了本地 IP 地址,但现在又想和互联网上的主机通信 (不需要加密),那么应当采取什么措施呢?
目前使用得最多的方法是采用网络地址转换。

网络地址转换 NAT (Network Address Translation) 方法 [RFC 3022] 需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的外部全球 IP 地址。这样,所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

NAT路由器的工作原理
当 NAT 路由器收到互联网上的主机 B 发来的 IP 数据报时,还有进行一次 IP 地址的转换。通过 NAT 地址转换表,就可把 IP 数据报上的旧的目的 IP 地址 172.38.1.15,转换为新的目的 IP 地址 192.168.0.3。
NAT地址转换表
当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可同时有 n 台主机接入到互联网。这样就可以使专用网内较多数量的主机,轮流使用 NAT 路由器有限数量的全球 IP 地址。

通过 NAT 路由器的通信必须由专用网内的主机发起。这种专用网内部的主机不能充当服务器用,因为互联网上的客户无法请求专用网内的服务器提供服务。

为了更加有效地利用 NAT 路由器上的全球 IP 地址,现在常用的 NAT 转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个 NAT 路由器上的全球 IP 地址,因而可以同时和互联网上的不同主机进行通信。

使用端口号的 NAT 也叫做网络地址和端口号转换 NAPT (Network Address and Port Translation),而不使用端口号的 NAT 叫做传统的 NAT (traditional NAT)。
NAPT地址转换表


4-59 建议的 IPv6 协议没有首部检验和。这样做的优缺点是什么?

:对首部的处理更简单。数据链路层已经将有差错的帧丢弃了,因此网络层可省去这一步骤。但可能遇到数据链路层检测不出来的差错 (此概率极小)。


4-60 在 IPv4 首部中有一个“协议”字段,但在 IPv6 的固定首部中却没有。这是为什么?

:在 IP 数据报传送的路径上所有路由器都不需要这一字段的信息,只有目的主机才需要协议字段。在 IPv6 使用“下一个首部”字段完成 IPv4 中的“协议”字段的功能。


4-61 当使用 IPv6 时,ARP 协议是否需要改变?如果需要改变,那么应当进行概念性的改变还是技术性的改变?

:从概念上讲没有改变,但因 IPv6 地址长度增大了,所以相应的字段都需要增大。


4-62 IPv6 只允许在源点进行分片。这样做有什么好处?

:分片和重装是非常耗时的操作。IPv6 把这一功能从路由器中删除,并移到网络边缘的主机中,就可以大大加快网络中 IP 数据报的转发速度。


4-63 设每隔 1 微微秒就分配出 100 万个 IPv6 地址。试计算大约要用多少年才能将 IPv6 地址空间全部用光。可以和宇宙的年龄 (大约有 100 亿年) 进行比较。

皮秒 (picosecond) 即纳秒的千分之一,即 1 0 − 12 10^{-12} 1012 秒,简称 ps,又名“微微秒”,最快晶体管的运行以皮秒计。

IPv6 的地址空间共有 2 128 2^{128} 2128 各地址,或 3.4 × 1 0 38 3.4 \times 10^{38} 3.4×1038
1 秒钟分配 1 0 18 10^{18} 1018 个地址,可分配 1.08 × 1 0 13 1.08 \times 10^{13} 1.08×1013 年。大约是宇宙年龄的 1000 倍。
地址空间的利用不会是均匀的,但即使只利用整个地址空间的 1/1000,那也是不可能用完的。


4-64 试把以下的 IPv6 地址用零压缩方法写成简洁形式:
(1) 0000:0000:0F53:6382:AB00:67DB:BB27:7332
(2) 0000:0000:0000:0000:0000:0000:004D:ABCD
(3) 0000:0000:0000:AF36:7328:0000:87AA:0398
(4) 2819:00AF:0000:0000:0000:0035:0CB2:B271

:(1) ::F53:6382:AB00:67DB:BB27:7332
(2) ::4D:ABCD
(3) ::AF36:7328:0:87AA:398
(4) 2819:AF::35:CB2:B271


4-65 试把以下的零压缩的 IPv6 地址写成原来的形式:
(1) 0::0
(2) 0:AA::0
(3) 0:1234 ::3
(4) 123::1:2

:(1) 0000:0000:0000:0000:0000:0000:0000:0000
(2) 0000:00AA:0000:0000:0000:0000:0000:0000
(3) 0000:1234 :0000:0000:0000:0000:0000:0003
(4) 0123:0000:0000:0000:0000:0000:0001:0002


4-66 从 IPv4 过渡到 IPv6 的方法有哪些?

向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的 IPv6 系统能够向后兼容。即,IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。

两种向 IPv6 过渡的策略:

  • 双协议栈 (dual stack)。指在完全过渡到 IPv6 之前,使一部分主机 (或路由器) 装有双协议栈:一个 IPv4 和一个 IPv6。双协议栈的主机 (或路由器) 记为 IPv4/IPv6,表明它同时具有两种 IP 地址,既能和 IPv6 的系统通信,又能够和 IPv4 的系统通信。
    双协议栈主机怎样知道目的主机是采用哪一种地址呢?使用域名系统 DNS 来查询的。若 DNS 返回的是 IPv4 地址,双协议栈的源主机使用 IPv4 地址。但 DNS 返回的是 IPv6 地址,源主机使用 IPv6 地址。
    双协议栈
    注意,主机 F 中,IPv6 首部中的某些字段无法恢复。比如流标号变为空缺。这种信息的损失是使用首部转换方法所不可避免的。
  • 隧道技术 (tunneling)。这种方法的要点是在 IPv6 数据报要进入 IPv4 网络时,把 IPv6 数据报封装成为 IPv4 数据报。
    隧道技术
    要使双协议栈的主机知道 IPv4 数据报里面封装的是一个 IPv6 数据报,必须把 IPv4 首部的协议字段的值设置为 41。

4-67 多协议标记交换 MPLS 的工作原理是怎样的?它有哪些主要的功能?

MPLS 的一个重要特点是在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度“标记”,然后对打上标记的 IP 数据报用硬件进行转发,这使得 IP 数据报转发的过程大大加快了。
采用硬件技术对打上标记的 IP 数据报进行转发称为标记交换。“交换”也表示在转发时不再上升到第三层查找转发表,而是根据标记在第二层 (链路层) 用硬件进行转发。MPLS 可使用多种链路层协议,如 PPP、以太网、ATM 以及帧中继等。

MPLS 域 (MPLS domain) 是指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR (Label Switching Router)。LSR 同时具有标记交换和路由选择这两种功能,标记交换功能是为了快速转发,但在这之前 LSR 需要使用路由选择功能构造转发表。

MPLS协议的基本原理

上图中给出了 MPLS 的基本工作过程:

  • MPLS 域中的各 LSR 使用专门的标记分配协议 LDP (Label Distribution Protocol) 交换报文,并找出和特定标记想对应的路径,即标记交换路径 LSP (Label Switched Path)。例如图中的路径 A->B->C->D。各 LSR 根据这些路径构造出转发表。这个过程和路由器构造自己的路由表相似 [RFC 3031]。注意,MPLS 是面向连接的,因为在 LSP 上的第一个 LSR 就根据 IP 数据报的初始标记确定了整个的标记交换路径,就像一条虚连接一样。
  • 当一个 IP 数据报进入到 MPLS 域时,MPLS 入口结点 (ingress node) 就给它打上标记 (这实际上是插入一个 MPLS 首部),并按照转发表把它转发给下一个 LSR。以后的所有 LSR 都按照标记进行转发。
    给 IP 数据报打标记的过程叫做分类 (classification)。严格的第三层 (网络层) 分类只使用了 IP 首部中的字段,如源 IP 地址和目的 IP 地址等。大多数运营商实现了第四层 (运输层) 分类 (运输层检查 TCP 或 UDP 首部中的协议端口号),而有些运营商实现了第五层 (应用层) 分类 (检查数据报的内部并考虑其有效载荷)。
  • 由于在全网内统一分配全局标记数值是非常困难的,因此一个标记仅仅在两个 LSR 之间才有意义。分组每经过一个 LSR,LSR 要做两件事:一是转发,二是更换新的标记,即把入标记更换成为出标记。这叫做标记对换 (label swapping)。做这两件事所需的数据都写在转发表中。例如,B 从入接口 0 收到一个入标记为 3 的 IP 数据报,查找转发表:
    LSR转发表
    B 就知道应当把该 IP 数据报从接口 1 转发出去,同时把标记对换为 1。
  • 当 IP 数据报离开 MPLS 域时,MPLS 出口结点 (egress node) 把 MPLS 的标记去除,把 IP 数据报交付非 MPLS 的主机或路由器,以后就按照普通的转发方法进行转发。

上述的这种“由入口 LSR 确定进入 MPLS 域以后的转发路径”称为显式路由选择 (explicit routing),它和互联网中通常使用的“每一个路由器逐跳进行路由选择”有着很大的区别。


【计算机网络 (谢希仁) 习题题解】目录

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值