子网与子网掩码在网络中作用
[关键词]子网掩码;网络地址;主机地址
子网和子网掩码的作用
[摘要]子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络地址和主机地址。子网划分时,子网掩码设置的不同,所得到的子网不同,每个子网能容纳的主机数目不同,若设置错误,可能导致数据传输错误。
一.子网和子网掩码的概念
子网这个词有两个相关的含义:其中一个较老的、一般化的含义是因特网中的一个物理网络。在因特网协议(Internet Protocol,IP)中,子网指的是从有类别网络中划分出来的一部分。这篇文章的后续部分是有关第二种含义的。
在一个IP网络中划分子网使我们能将一个单一的大型网络——至少(逻辑上)看上去如此——分成若干个较小的网络。在最初引入这个概念的时候,IPv4还未引入有类别网络号这个概念。而引入划分子网这个概念的目的是为了允许一个单一的站点能拥有多个局域网。即使在引入了有类别网络号之后,这个概念仍然有它的用处,因为它减少了因特网路由表中的表项数量(通过隐藏一个站点内部所有独立子网的相关信息)。此外它还带来了一个好处,那就是减少了网络开销,因为它将接收IP广播的区域划分成了若干部分。
子网掩码
子网掩码又叫网络掩码、地址掩码、子网络遮罩(subnet mask),它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。
通常情况下,子网掩码的表示方法和地址本身的表示方法是一样的。在IPv4中,就是点分四组表示法(四个取值从0到255的数字由点隔开,比如 255.128.0.0)或表示为一个八位十六进制数(如FF.80.00.00,它等同于255.128.0.0);后者用得较少。
还有一种更为简短的形式叫做无类别域间路由(Classless Inter-Domain Routing,CIDR)表示法,它给出的是一个网络号加上一个斜杠以及网络掩码的二进制表示法中“1”的位数(即网络号中和网络掩码相关的是哪些位)。例如,192.0.2.96/28表示的是一个前28位被用作网络号的IP地址(和255.255.255.240的意思一样)。
二.子网和子网掩码的划分
划分子网的概念
IPv4地址被分为三部分:网络部分、子网部分(现在常被认为是网络部分的一部分——尽管它本来是“rest”部分的一部分)和主机部分。共有三类IP地址,它们分别指定了各部分占多少位。
类别 起始位 开始 结束 点分十进制掩码
A 0 1.0.0.0 127.0.0.0 255.0.0.0
B 10 128.0.0.0 191.255.0.0 255.255.0.0
C 110 192.0.0.0 223.255.255.0 255.255.255.0
子网的划分是一个将主机部分的若干位分配到网络部分的过程。例如,对于一个给定的A类网络:10.0.0.0,子网掩码:255.255.0.0可以将其划分为256个子网(从10.0.0.0到10.255.0.0)——第一个八位位组表示网络地址,第二个表示子网号,而最后两个表示主机部分。用子网掩码对主机地址进行位与操作,就能够提取出完整的子网地址(参见下面的例子)。
子网掩码并不局限于整数个八位位组的情况。例如,255.254.0.0(或“/15”)同样是一个有效的掩码。如果将它应用到A类地址上,就会产生128个间隔为2的子网(例如1.2.0.1~1.3.255.254,1.4.0.1~1.5.255.254等等)。
非标准子网
子网0
尽管从技术角度来说子网0是无效的,但它仍是可用的。例如以255.255.0.0为子网掩码的子网:1.0.0.0。这个子网有一个问题,就是它对应的单播地址和该A类网络整体对应的单播地址是一样的。
交错子网
• 最长前缀匹配
• IPv4子网划分参考
• 无类别域间路由
• 有类别网络
Internet组织机构定义了五种IP地址,用于主机的有A、B、C三类地址。其中A类网络有126个,每个A类网络可能有16,777,214台主机,它们处于同一广播域。而在同一广播域中有这么多结点是不可能的,网络会因为广播通信而饱和,结果造成16,777,214个地址大部分没有分配出去,形成了浪费。而另一方面,随着互连网应用的不断扩大,IP地址资源越来越少。为了实现更小的广播域并更好地利用主机地址中的每一位,可以把基于类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
1子网掩码
RFC 950定义了子网掩码的使用,子网掩码是一个32位的2进制数,其对应网络地址的所有位都置为1,对应于主机地址的所有位都置为0。由此可知,A类网络的缺省的子网掩码是255.0.0.0,B类网络的缺省的子网掩码是255.255.0.0,C类网络的缺省的子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。子网掩码常用点分十进制表示,我们还可以用网络前缀法表示子网掩码,即“/<网络地址位数>”。如138.96.0.0/16表示B类网络138.96.0.0的子网掩码为255.255.0.0。
子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。例如,有两台主机,主机一的IP地址为222.21.160.6,子网掩码为255.255.255.192,主机二的IP地址为222.21.160.73,子网掩码为255.255.255.192。现在主机一要给主机二发送数据,先要判断两个主机是否在同一网段。