为了提高IP地址的使用效率,一个网络可以划分为多个子网:采用借位的方式,从主机最高位开始借位变为新的子网位,剩余部分仍为主机位。这使得IP地址的结构分为三部分:网络位、子网位和主机位,如图1所示。
图1:IP地址结构
子网编址使得IP地址具有一定的内部层次结构,这种层次结构便于IP地址分配和管理。它的使用关键在于选择合适的层次结构,使得网络地址既能适应各种现实的物理网络规模,又能充分地利用IP地址空间(即从何处分隔子网号和主机号来决定)。
子网TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对IP地址模式的威胁并不是它不能保证主机地址的惟一性,而是会带来两方面的负担:第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网络负担。
因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在:如何减少网络地址。于是IP网络地址的多重复用技术应运而生。通过复用技术,使若干物理网络共享同一IP网络地址,无疑将减少网络地址数。
子网编址(Subnet Addressing)技术,又叫子网寻径(Subnetrouting),英文简称Subnetting,是最广泛使用的IP网络地址复用方式,目前已经标准化,并成为IP地址模式的一部分。一般地,32位的IP地址分为两部分,即网络号和主机号,分别叫做IP地址的“网间网部分”和“本地部分”。子网编址技术将本地部分进一步划分为“物理网络”部分(即图1中的子网部分)和“主机”部分,如图2所示。
图2:子网编址原理
其中“物理网络”用于标识同一IP网络地址下的不同物理网络,即“子网”。
子网掩码IP协议标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。例如位模式“11111111 11111111 11111111
为了使用的方便,子网掩码与IP地址一样,使用“点分十进制表示法”。例如B类地址子网掩码(11111111 11111111 11111111 00000000)为255.255.255.0。IP协议关于子网掩码的定义提供一种有趣的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难,并且极少的路由器支持在子网中使用低序或无序的位,因此在实际应用中通常各网点采用连续方式的子网掩码。如上述的255.255.255.0。
子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。
例如,有一个C类地址为192.10.1.18,其缺省的子网掩码为255.255.255.0,则它的网络号和主机号可按如下方法得到:
将IP地址192.10.1.18转换为二进制11000000 00001010 0000001 00010010;
将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000;
将两个二进制数逻辑与(AND)运算后得出的结果为11000000 00001010 00000001 00000000,即网络号为192.10.1.0;
将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分11000000 00001010 0000001 00010010 AND 00000000 00000000 00000000 11111111,结果为00000000 00000000 00000000 00010010,结果为
在实际的网络中,子网的划分有一些通常用的方法,以下给出划分子网和定义子网掩码的例子,步骤如下。
1)将要划分的子网数目转换为2的n次方。如要分8个子网,则8=23。
2)取上述要划分子网数的2的n次方的幂。如23,即n=3。
3)将上一步确定的幂n按高序占用主机地址n位后转换为十进制。如n为3则是11100000,转换为十进制为224,即为最终确定的子网掩码。如果是C类网,则子网掩码为255.255.255.224;如果是B类网,则子网掩码为255.255.224.0;如果是A类网,则子网掩码为255.224.0.0。在这里,子网个数与占用主机地址位数有如下等式成立:2n=m。其中,n表示占用主机地址的位数;m表示划分的子网个数。根据这些原则,将一个B类网络分成4个子网。若我们用的网络号为168.18.10,则该B类网内的主机IP地址就是168.18.10.1~168.18.10.254(因为全“
10101000 00010010 00001010 00000001~10101000 00010010 00001010 00111110
168.18.10.1~168.18.10.62
10101000 00010010 00001010 01000001~10101000 00010010 00001010 01111110
168.18.10.65~168.18.10.126
10101000 00010010 00001010 10000001~10101000 00010010 00001010 10111110
168.18.10.129~168.18.10.190
10101000 00010010 00001010 11000001~10101000 00010010 00001010 111111110
168.18.10.193~168.18.10.254
A、B、C三类网络子网数目与子网掩码的转换表如表1至表3所列,可供参考。