|
|
(1)IP地址空间利用率很低。由于Internet的IP地址采用两级结构,即网络号和主机号,这样的设计有不够合理的地方。IP地址中的A~C类地址,可供分配的网络号码超过211万个,而这些网络上的主机号的总数则超过37.2亿个,初看起来,似乎IP地址足够全世界来使用(在20世纪70年代初期设计IP地址时就是这样认为的)。其实不然。第一,当初没有预计到计算机会普及得如此之快,各种局域网以及局域网上的主机数目急剧增长。第二,IP地址在使用时有很大的浪费。例如,某个单位申请到了一个B类地址,但该单位只有1万台主机。于是,在一个B类地址中的其余55 000多个主机号就白白浪费了,因为其他单位的主机无法使用这些号码。
|
|
|
(2)大型的网络将影响网络性能。从网络吞吐量考虑,将大量主机安装在一个网络上往往会影响网络的性能。当网络上工作的主机数小于一定数值时,网络的吞吐量和网络上工作的主机数大约成正比。但是当网络上工作的主机数超过一定数量时,拥塞就可能产生,这就导致网络的吞吐量增加、速度变慢,网络性能甚至会随着主机数的增加而下降。
|
|
|
(3)IP地址的两级结构不够灵活。有时情况紧急,一个单位需要在新的地点马上开通一个新网络。但是在申请到一个新的IP地址之前,新增加的网络不可能连接到互联网上工作。用户希望有一种方法,使本单位能随时灵活地增加网络,而不必事先到互联网管理机构去申请新的网络号,但原来的两级IP地址结构无法做到这一点。
|
|
|
|
为了解决上述问题,在IP地址中又增加了一个"子网号字段",使原来两级的IP地址变成为三级的IP地址,这样就能够较好地解决上述问题,并且使用起来也很灵活。划分子网的基本思路如下。
|
|
|
(1)一个拥有许多物理网络的单位,可将其物理网络划分为若干个子网(Subnet)。划分子网纯属一个单位内部的事情,本单位以外的网络看不见这个网络由多少子网组成,对外仍表现为一个没有划分子网的网络。
|
|
|
(2)划分子网的方法是从IP地址的主机号借用若干位作为子网号subnet-id,而主机号host-id也就相应地减少了若干位。于是,两级的IP地址在本单位内部就变为三级IP地址,即网络号net-id、子网号subnet-id和主机号host-id,如下图所示。
|
|
|
|
|
(3)凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号net-id找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号net-id和子网号subnet-id找到目的子网,并将IP数据报交付给目的主机。
|
|
|
下面用一个例子来说明划分子网的概念。一个单位拥有一个B类IP地址,网络地址是141.14.0.0(net-id是141.14)。凡目的地址为141.14.x.x的数据报都被送到这个网络上的路由器R1。
|
|
|
现将下图所示的网络划分为3个子网,如下图所示。这里假设子网号subnet-id占8位,因此在增加子网号后主机号host-id就只有8位。所划分的3个子网分别是141.14.2.0、141.14.7.0和141.14.99.0。在划分子网后,整个网络对外仍表现为一个网络,其网络地址仍然是141.14.0.0。但路由器R1收到数据报后,再根据数据报的目的地址将其转发到相应的子网。
|
|
|
|
|
|
|
|
虽然上面已经把一个网络划分为若干个子网,但路由器R1必须知道数据报中目的IP地址的网络号net-id、子网号subnet-id和主机号host-id各是多少位,这就需要通过子网掩码(Subnet Mask)来实现。
|
|
|
子网掩码和IP地址一样,也是32位长,由一串1和跟随的一串0组成。子网掩码中的1对应于IP地址中的网络号net-id和子网号subnet-id,而子网掩码中的0对应于IP地址中的主机号host-id。要得到网络或子网地址,只需将IP地址和子网掩码进行按位"与"(AND)运算即可。下图说明了子网掩码的工作方式。
|
|
|
|
|
上图(a)表示在未划分子网情况下,网络地址是IP地址与它默认的子网掩码(255.255.0.0)按位"与"运算的结果,即将主机号host-id设置为0的IP地址。上图(b)表示在划分子网情况下,当主机号借用8位作为子网号subnet-id,子网掩码中"1"的个数相应地增加8,即255.255.255.0。这时将子网掩码和IP地址按位"与"运算就得到了子网地址。这里要注意是:网络地址(在划分子网时常称为子网地址)并不仅仅是一个子网号subnet-id,而是将主机号host-id设置为0的IP地址。可以看出,子网掩码不能单独存在,它必须结合IP地址一起使用。
|
|
|
与IP地址相同,子网掩码通常也使用点分十进制表示法表示,如255.255.255.0、255.255.255.240等。有时为了表示方便,通常在IP地址后加一个"/网络号和子网号位数"。例如,210.45.12.58/28就表示该IP地址的网络号net-id和子网号subnet-id共占用28位,主机号占用32-28=4位,如果用点分十进制表示法表示,则子网掩码是255.255.255.240(11111111.11111111.11111111.11110000)。
|
|
|
使用子网掩码的好处是:不管网络是否划分子网,也不管IP地址中的网络号net-id和子网号subnet-id是多少位,只要将子网掩码和IP地址进行按位"与"运算,就可立即得出网络地址。这样在路由器处理到来的IP分组时就可采用同样的算法。
|
|
|
如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。默认子网掩码中值为1的位与IP地址的网络号net-id所占位正好相对应。因此默认子网掩码和不划分子网的IP地址按位"与"(AND)运算,就得出该IP地址的网络地址,这样做可以不用查找该地址的分类位就能知道这是哪一类的IP地址。显然,A类、B类和C类网络默认子网掩码分别是255.0.0.0(/8)、255.255.0.0(/16)、255.255.255.0(/24),如下图所示。
|
|
|
|
|
|
|
B类地址由两个字节的网络号net-id和两个字节的主机号host-id组成。一个得到B类地址的组织可以有一个单独的物理网络,在此网络上连接的计算机可达65 534(216-2)个。但是,若该组织愿意有更多的物理网络,则这个大的范围可划分成许多更小的范围。下表说明了一个B类地址可以有多少种子网划分的方法。在采用固定长度子网时划分的所有子网的子网掩码都是相同的。
|
|
|
|
|
|
例如,一个具有B类地址的组织的网络号为X.Y.0.0(128≤X≤191),需要至少12个子网,试找出子网掩码和每个子网的配置。因为需要至少12个子网,因此至少需要向主机号host-id借4位(23-2≤12≤24-2)来构造子网,网络号net-id和子网号subnet-id共12位(8+4=12),所以子网掩码为11111111.11111111.11110000.00000000,即255.255.240.0。每个子网有4096(212=4096)个地址,其中第一个地址用来定义子网(子网地址),而最后一个地址用于子网内广播(广播地址),这就表明连接到每一个子网上的计算机数最多是4094。下表列出了每个子网的地址范围。
|
|
|
|
|
注意:根据RFC 950的规定,进行子网划分时对于子网号subnet-id为全0和全1的子网不允许使用,因此上表中第0个子网和第15个子网是不可用的。但随着无分类域间路由选择CIDR的广泛使用,现在全0和全1的子网也可以使用,但一定要谨慎使用,要弄清所使用的路由器是否支持全0和全1的子网。
|
|
|
|
C类地址由3个字节的网络号net-id和一个字节的主机号host-id组成。一个得到C类地址的组织可以有一个单独的物理网络,在此网络上连接的计算机可达254(28-2)个。但是,若该组织愿意有更多的物理网络,则这个大的范围可划分成许多更小的范围。下表说明了一个C类地址可以有多少种子网划分的方法(在采用固定长度子网时,划分的所有子网的子网掩码都是相同的)。
|
|
|
|
|
例如,一个具有C类地址的组织的网络号为X.Y.Z.0(192≤X≤223),需要至少5个子网,试找出子网掩码和每个子网的配置。因为需要至少5个子网,划分时至少要7个子网,5个是可用的,两个保留为特殊地址,不可用,因此至少需要向主机号host-id借3位(22-2≤5≤23-2)来构造子网,网络号net-id和子网号subnet-id共27(24+3)位,所以子网掩码为11111111.11111111.11111111.11100000,即255.255.255.224。每个子网有32个(25=32)地址,其中第一个地址用来定义子网(子网地址),而最后一个地址用于子网内广播(广播地址),这就表明连接到每一个子网上的计算机数最多是30。下表列出了每个子网的地址范围。
|
|
|
|
|
A类地址的子网规划方法与B类、C类相似,因篇幅所限,这里不作详细介绍。
|
|
|
|
互联网允许一个地点使用变长子网划分。下面举例说明什么时候有这种需要。例如,一个具有C类地址的地点需要划分为5个子网,其连接的主机数分别为60、60、60、30和30。这个地点不能使用给子网分配两个位的掩码,因为这样将只有4个可连接62(256/4-2=62)台主机的子网。在这个地点使用给子网分配3个位的掩码也不行,因为这样将有8个可连接30(256/8-2=30)台主机的子网(应注意,这里放松了对特殊地址的要求,即子网号为全0和全1可用)。
|
|
|
解决这个问题的一种方法是使用变长子网划分,在这种配置中路由器使用两个不同的掩码。它先使用具有26个1的掩码(11111111.11111111.11111111.11000000或255.255. 255.192),将网络划分为4个子网。然后再对其中的一个子网使用具有27个1的掩码(11111111.11111111.11111111.11100000或255.255.255.224),将其划分为两个更小的子网(见下图)。
|
|
|
|
|