微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
2000 Vol.19 No.2 P.27-29




Internet地址拥塞问题及其解决方法
赵洁
摘 要： 探讨了Internet地址拥塞问题出现的背景，在此基础上，着重探讨了解决该问题的4种不同的技术及相关的问题。
关键词： IP地址 ROADS透明路由器 委托ARP 子网编址 IPv6协议
　　Internet是基于TCP／IP的最大的互连网络。随着连入Internet的网络与主机数量的高速增长，Internet地址空间将面临耗尽的问题ROADS，Running Of ADdress Space。解决这一问题的最直接的方法是扩大IP的编址空间，但这需要大量的工作。在目前的情况下，透明路由器、委托ARP和子网编址这3种技术对解决Internet地址拥塞问题有很大的作用。首先介绍Internet地址即IP地址的几种格式。
　　如图1所示，A、B、C三类地址可以分配给1个网络，其中加阴影的为地址的网络前缀部分。网络前缀代表了一类地址可以分配的网络数目。由图1可以看出：A类地址共可以分配给128（27）个网络，每个网络最多可有224个主机；B类地址可容纳214个网络，每个网络最多可有216个主机；C类地址共可有221个网络，每个网络最多可有28个主机。32位的IP地址格式在当初设计时确实是绰绰有余的，但是随着Internet的高速增长，这一编址方法已经不能容纳连入Internet的全部网络数量了即第129个申请A类地址的网络不可能得到满足。
　　实践表明，在几类IP地址中，B类地址尤为紧张，C类地址的可分配网络号虽然多，但1个C类网络不能满足主机超过256的情况。B类地址的主机数量相对较多，可以满足大多数公司的需要。另一方面，世界上真正需要A类地址的大型公司并不很多，绝大多数的公司都是中等规模的，因此它们需要B类地址。
　　为了解决或至少缓和ROADS问题，必须采取一些适当的方法。最好的方法是延长IP地址的位数，但这涉及到许多方面的工作，包括大范围地改变IP协议的内容。除了彻底地改变IP地址的编址方法外，目前还有一些其它的技术。
1 透明路由器
　　透明路由器的思想来源于对A类地址的考查。由于分配了A类地址的网络最多可有224个主机，这么多的主机地址一般来说对于1个网络是分配不尽的。因此，可用A类网络的富裕主机地址，将一部分不用的主机地址分配给另1个网络。这个网络并不占用Internet的1个网络号，而是与先前的网络共用1个网络号，因此节省了Internet网络地址的使用，有助于ROADS问题的缓和。图2为1个透明路由器的例子。
　　如图2所示，透明路由器TR将网络N2连入了1个A类网络N112．0．0．0。TR通过1个标准路由器R与N1相连并占用N1的1个端口。当有数据报要流向N2时，首先R将此数据报路由给TR，再由TR决定将此数据报发给N2上的哪个主机。在此例中，N2共用了1个伪网络前缀12．13．14．0IP编址标准规定了当IP地址的第1个字节在0～127之间时为A类地址，所以12．13．14．0虽然形式上似1个C类网络前缀，但在IP标准中却只可能是1个A类地址，不可能是1个网络前缀，这主要依赖于TR的作用。这个伪网络前缀并不占用实际的IP网络地址，从而可以有效地缓和ROADS问题。
　　透明路由器的思想包含了复用和去复用的思想，即将来自N2的数据报复用到R的1个端口上，而将来自N1的数据报进行去复用，将它们发送给N2的适当主机。在图2中，对N1的A类地址进行了适当的划分，使N2复用到IP地址的最后1个字节上对应于R的1个端口。但这种划分不是唯一的，例如ARPANET10．0．0．0就以PSNPacket Switching Node，分组交换节点地址的第3个字节来进行复用和去复用。但不管那种形式，原理都是一样的。
　　透明路由器的主要优点是减少了对IP网络地址的使用，故可以在一定程度上缓和ROADS问题。它的另一个优点是支持负载均衡，也就是说，如果有2个透明路由器连到同1个网络上，那么到该网络的流量可以在这2个透明路由器之间分配，而传统的路由器由于选路算法的唯一性，所以总是会选择同一路由。
　　透明路由器的缺点也很明显，即必须有足够的主机地址才能使用透明路由器。因此，一般来讲它只能应用于A类网络。透明路由器的另一个缺点是它虽然名为路由器，但不能提供传统路由器的所有服务，尤其是它不能完全参与ICMP和SNMP等协议的处理，使其不能返回对请求的回答。这意味着不能简单地用Ping 1个透明路由器来决定其是否正在运行。
2 委托ARP
　　委托ARP（Proxy ARP）也是一种可以减少IP网络地址使用的方法。之所以称其为委托ARP，是因为这种方法必须基于ARP技术，即：IP网络地址尤其是B类网络前缀虽然有限，但1个网络的主机地址往往是富裕的。因此，可将某个网络富裕的部分主机地址赋予另一个物理网络。然后用1个运行委托ARP的路由器将这2个网络连接起来，使得这2个网络共用1个IP网络前缀。图3为委托ARP的一个例子。
　　图3中，N1为1个B类网络，N2占用了N1的部分主机地址并通过委托ARP路由器PR与N1相连，N1与N2共用1个网络前缀130．111．0．0。当主机H1要跟H4通信时，它首先运行ARP，由于PR运行委托ARP软件，因此PR捕获了H1的ARP请求，并判断出H4在其它物理网络上，于是PR用它自己的物理地址响应H1的请求。H1收到PR的ARP响应后，把地址映射保存到自己的ARP表中如果以前没有跟H4通信过，并用这个映射发送目的地为H4的数据报，这些数据报实际上都发给了PR。当PR收到1个数据报时，它知道哪个主机在哪个物理网络上，因此能够决定数据报的正确路由。对于N1来讲，仿佛只存在着1个物理网络，PR隐藏了另一个网络N2的位置等细节，使得N1中的主机与N2中的主机可以像直接连接一样进行通信。
　　委托ARP技术的主要优点是可以使多个物理网络共用1个IP网络地址，因而可以减少对IP网络地址的使用，缓和ROADS问题。此外，委托ARP软件可以在不干扰网上其它主机或路由器的选路表的情况下，加到网上的某个路由器上，因此它完全隐藏了物理连接的细节。
　　委托ARP技术也同样存在着ARP协议中所隐含的不安全因素。而且，由于委托ARP允许多个IP地址映射到同一个网络地址上，因此要防止这种不安全因素就更为困难了。反之，如果首先考虑防止电子欺骗，那么委托ARP的实现也同样增加了难度。委托ARP的另一个缺点是不支持复杂的网络拓朴，也不支持合理的路由选择形式。在传统的路由选择中，具有同一网络前缀的2个主机可以直接进行通信，而在委托ARP中却可能要进行路由选择。实际上，委托ARP技术只是一种可能的技术，因为配置路由表等工作的工作量非常大，而且很难用软件来实现因为富裕的主机地址可能并无规律。事实上，大多数的委托ARP的实现依赖于管理员手工操纵路由器和地址表，使得它既费时又容易出错。

图1 IP地址格式

图2 1个透明路由器的例子

图3 1个委托ARP的例子

图4 1个子网编址的例子
3 子网编址
　　子网编址技术是迄今为止用于解决IP网络地址拥塞的最成熟的技术。事实上，它已是IP编址必须的一部分。子网编址采用的是一种分级编址、分级选路的方法。考虑1个B类网络130．10．0．0。使用子网编址时，可将第3个字节用来标识不同的物理网络，如130．10．1．0为一物理网络，130．10．2．0为另一物理网络。通过这一技术，使得多个物理网络可以共用1个网络前缀130．10．0．0，并且在该网络内部可根据目的IP地址的第3个字节进行选路，如目的地址为130．10．1．1的分组将被选路到子网130．10．1．0，而目的地址为130．10．2．1的分组将被投递到子网130．10．2．0。子网编址技术的思想如图4所示。
　　图4中，路由器R接受所有到130．10．0．0的通信量，并根据IP地址的第3个字节选择投递到哪个物理子网。
　　在使用子网编址时，必须为每1个网络选择1个子网掩码。子网掩码的定义如下：若网络把IP地址中的相应比特视作网络地址的话，则子网掩码的相应比特就置为1；若把这些比特视为主机地址，则将其置为0。根据此定义，子网130．10．1．0和130．10．2．0的子网掩码都为255．255．255．0。
　　子网编址使用1个IP地址来代表多个物理网络，因而可以减少网络地址的使用。然而正因为子网编址技术的出现，使得大多数的组织都愿意申请1个B类地址而非1个C类地址。因为1个B类地址有足够的比特来进行子网化，而对C类地址则没有实际意义。因此，子网编址技术的应用实际上只减少了对C类地址的使用，对B类地址的使用则仍然增加得很快。所以说，子网技术也不能最终避免B类地址耗尽的结果。
　　基于以上的考虑，从子网编址技术里又派生出另一种技术--超网寻址。超网寻址与子网编址的思想正好相反，它用多个C类地址来模拟1个B类地址，从而减少对B类地址的使用。超网寻址似乎两全其美，但由于采用超网寻址时，一个组织不是由1个IP网络组成而是由多个IP网络组成了，具体表现就是在连接组织与外界的路由器上存在着多个到该组织内部的表项。因此，采用超网寻址时，需要新的能够在超网地址范围内寻址的选路软件。
4 IPv6
　　IPv6是下一代IP协议的简称。现在使用的IP版本一般称为IPv4。IPv6保持了IPv4的许多特点，同时也增加了许多变化。其中很重要的一点变化就是将原先的32位地址增加到了128位。这样巨大的地址空间可以承受任何合理的地址分配策略。足够大的地址空间是解决ROADS问题的根本方法。虽然这种实现有许多要做的工作，但它是技术发展的必然趋势。
　　IPv6的编址保留了IPv4的地址体系。设计者们为了保证IPv4向IPv6的过渡，将IPv6地址的一小部分用来对IPv4地址进行编码，具体地说就是，任何IPv6地址，若开始的80位全为0，接着是16位的全1或全0，则它的低32位就是1个IPv4地址。
　　除了巨大的地址空间外，IPv6还有许多其它的特点。由于本文主要论述ROADS问题，因此对于IPv6的其它特点在此不再详述。有兴趣的读者可参考Douglas．Comer的“Internetworking with TCP／IP（Vol．1）”。
5 结束语
　　从前面的讨论可以看到，透明路由器、委托ARP、子网编址这3种技术能在一定程度上缓和ROADS问题，但不能彻底地解决它。相比较而言，由于透明路由器和委托ARP技术都需要对传统的路由器作一些改进，因此使用并不很多；而子网编址技术由于其灵活性和实用性而被广泛使用并成为了标准。但随着连入Internet的组织和主机的不断增加，子网技术在解决ROADS问题上也将变得捉襟见肘。IPv6给出了最彻底的解决方法。但作为一种全新的协议标准，它的实现需要一个较长的过程，也需要众多的组织和公司的共同努力。还有一点必须指出，即使实现了IPv6，前3种技术也并不会立刻消亡，它们的一些思想可能会被继续采用。例如子网技术不仅可缓和ROADS问题，而且对于一个组织内部的部门划分、流量控制等都有很大的作用。
赵洁（合肥安徽大学经济学院教工53信箱230039）
收稿日期：1999－09－13
