Internet上的每个点都有一个唯一指定的IP地址,任何两台机器的IP地址都不允许相同。IP地址长度为32比特,分为两个部分:网络号和主机号。如果某个机器和多个网络相连,则在每个网络中都分配有一个地址。一个路由器至少有两个IP地址。

IP地址格式如图2.23所示。由图可知,IP地址可分为4类:
·A类地址:其标识为最高比特为0。网络号占7位,主机号占
24位。因此A类地址可定义126个网络(0和127作它用),每个网络可包含约16兆(224)个主机。A类地址对应的是大型网络。
.B类地址,其标识为最高2个比特为10。网络号占14位,主机号占16位。因此B类地址可定义16382个网络,每个网络可包含约64K(2吟个主机。B类地址对应的是中型网络。
C类地址:其标识为最高3个比特为110。网络号占21位,主机号占8位。因此C类地址可定义约200万(221)个网 络,每个网络可包含254个主机(0和255作它用)。C类地址对应小型网络,如LAN。
D多播地址:其标识为最高4个比特为lllO。其余28比特规定-个群组,它不再分为网络号和组号。多播成员的加入、动态更新等需执行专门的Internet群组管理协议(IGMP-IntemetGroup Managment Protocol),网络中需设置多播路由器。多播地址也称D类地址。
IP地址中的网络号由网络信息中心(NIC)统一分配,路由器选路只需用到地址中的网络号部分。
为了便于标记,IP地址采用点分十进制法(dotteddecimalnotation)表示,即将32位地址分成4段标记,每段为1个字节,值范围为0-255,每段标记用小数点分隔。如,用16进制表示的IP地址C0290614写成点分形式即为192.41.6.20。最低IP地址为0.0.0.0,最高IP地址为225.225.225.225。
另规定有一些特殊意义的地址:
.网络号全零:表示为“本网络"。当某台主机想在网上通信,但却不知道自己网络的地址时,它可用全零网络号填入。本网用户接收后,返回信息时在目的地址中将给出本网的网络号,这样原发送主机就知道本网的网络号了。但是发送主机必须知道本网是哪一类网络,才能确定应填入多少个零。
.网络号和主机号全为零:表示“本主机”。可在主机自举时使用,该主机自举后暂时还不使用。在Internet中把"O"都解释为“本”。
.主机号全1:表示在网络号指定的网络中进行广播。在LAN中,广播属于正常传输,在其它网络中广播需由网络软件支持。该地址形式主要供用户向远端LAN发送广播消息。
.网络号和主机号全为1:表示在本地网络中广播,主要用于主机还不知道本地网络号的情况。
·127.xx.YY.互:形式上与A类地址相同,实际上是指示环回测试的预留地址,用于测试TCP/IP及本机进程间通信。任何程序用此地址作为目的IP地址时,计算机上的协议软件立即将数据报返回,并不将其送入网中。路由器也不处理此类地址。
由于上述特殊地址的存在,一般地址的网络号和主机号都不采用全零和全1码。
2.子网编址(Subnetaddressing)
这是80年代初提出的一项IP地址复用技术。由于在TCP/IP推出后的10年中,出乎设计者的意料出现了许多PC机的小型网络,这些网络都要申请网络号,一则会使路由器的负担加重,导致网络速度下降;二则地址空间要不够用,特别是B类网络的网络号将缺乏。为此,提出如何减少网络数的问题。子网编址的基本思想是在网络和主机之间再增加一个层次:子网,也就是使一个IP网络号能为多个物理网络所共享。此方法主要适用于 B类网络。
它将主机号部分进一步划分为子网号和主机号两个子段,如图2.2424所示。对于外部来说,仍然是一个B类网,无需向NIC申请新号,网络路由器数据库也不需要更改。对于单位内部来说,则有若干个子网,子网的大小可以根据需要确定,每增加一个IAN,即可作为一个子网加入,管理方便,规划也很灵活。

当然,为了支持子网选路,内部要增设路由器,接在每个子网上。设图2.24中,B类网络号为130.50,子网号占6比特,共可设62个LAN子网,每个LAN可接1022个主机。假定目前已有4个子网,每个子网的起始IP地址分别为130.50.4.1、130.50.8.1、130.50.12.1和130.50.16.1,则路由器配置如图2.25所示。从Internet的其余部分传往B类网络号为130.50的数据报均经过路由器G1进人,然后G1再根据子网号将其送至相应子网路由器,后者再根据主机号译成MAC地址后在子网内广播发送。需注意每个路由器配备有两个IP地址,其中GI是原有的外部路由器。

从选路角度看,子网选路只是比一般选路多一个层次。一般选路时,可以认为路由器中有两张表。第1张表的表项内容为{网络号,输出端口},根据匹配的网络号,确定通往下一跳路由器的输出端口。若未找到匹配网络号,则将数据报发往缺省路由器。若为本网络的网络号,则查第2张表,其表项内容为{主机号,本地地址},根据匹配的主机号,确定MAC地址或通往该主机的输出端口。
子网选路时,路由器中应有3张表。第1张表和以前相同,第2张表的表项内容为{子网号,输出端口},根据匹配的子网号确定通往该子网路由器的输出端口,第3张表的表项内容为(主机号,本地地址)。
考虑到子网号的长度是可变的,因此可用一个子网掩码和原IP地址的逻辑与运算来提取子网号。例如,在图2.24示例中,子网掩吗为255.255.252.0。假设在图2.25中,子网4的一个主机发出一数据报,其H的IP地址为130.50.15.6心4将其与子网掩码相与后得地址130.50.12.0,为子网3的地址,于是查第2张表后,将其转发全G3。
3.超网编址
3.超网编址
到了90年代后,由于WWW等应用的推出,Internet用户高速增长,即使采用子网编址仍然不能解决问题。其原因是单位新建网络时,尽管网络规模不大,也不愿意申请C类地址,因为其容掀太小,而宁愿申请B类地址,它还可以通过子网编址设置内部网络。这样就造成B类地址匮乏而C类地址大星富余的情况,出现了所谓的“地址空间枯竭"(ROADS-RunningOutofADdressSpace)问题。
为此启动了IPV6的研究。但是新版本的IP协议和现行版本并不兼容,全面替换将会给网络运行带来极大的影响,因此人们又提出了另一种地址复用技术-—一超网编址。它的思路和子网编址相反,是将若干个相邻的C类地址合并成一个大的网络地址,合并后的地址块大小没有限制,只要求是2的整数幕即可。
和子网编址一样,它也采用掩码来提取超网网络号部分,其后操作和一般选路基本相同。这种选路技术实际上可用于任何类型地址,并不局限于新的C类地址,因此被称为无类别域间选路(CIDR ClasslessInter-DomainRouting)。
现举例说明上述掩码匹配搜索过程。设,大学A需要2000个地址,于是被分配2048个地址(8个C类地址),范围为202.24.0.0至202.24.7.255;其掩码为255.255.248.0;大学B被分配1024个地址,其范围为202.24.8.0至202.24.11.225,掩码为255.255.252.0;大学C亦分配1024个地址,其范围为02.24.12.0至202.24.15.225,掩码亦为255.255.252.0;大学D被分配40%个地址,其范围为202.24.16.0至202.24.31.225,掩码为255.255.240.0。
于是更新后的路由表将有如下4个表项,每个表项包含一个基地址和一个掩码(用二进制表示):

若收到某个数据报,其目的地址为202.24.25.4,其二进制形式为:11001010 00011000 00011001 00000100
将其和A大学的掩码相与后得:11001010 00011000 00011000 00000000和A大学的基地址不匹配。同样和B、C大学也不匹配。最后和D大学的掩码相与,得:11001010 00011000 00010000 00000000和D大学的基地址匹配,所以该数据报应转送往D大学的路由器。需要注意的是,如果B、C、D大学的地址范围重新分配为:
D:202.24.8.0-202.24.23.225 B:202.24.24.0~202.24.27.225 C:202.24.28.0-202.24.31.225则,相应表项更改为:

此时收到目的地址为202.24.25.4的数据报,将其和D大学及B大学的掩码相与后,和这两所大学的基地址均匹配,但是B大学掩码包含的"I"比特较多,据此判定该数据报应转发至B大学的路由器。因此,CIDR应采用“最长匹配"的原则来选定路由器表项,有别于传统选路的“精确匹配”。
提出CIDR后,IP地址匮乏问题又得到缓解,至少在2005年以前尤需启用IP新版本。