子网掩码
(subnet
mask)是每个使用互联网的人必须要掌握的基础知识,只有掌握它,才能够真正理解tcp/ip协议的设置。以下我们就来深入浅出地讲解什么是子网掩码。
子网掩码——屏蔽一个ip地址的网络部分的“全1”比特模式。对于a类地址来说,默认的子网掩码是255.0.0.0;对于b类地址来说默认的子网掩码是255.255.0.0;对于c类地址来说默认的子网掩码是255.255.255.0;
二、子网掩码常识
1、子网掩码的作用:子网掩码的作用就是判断两个需要通信的主机是否需要经过网络转发,如果两个要通信的主机在同一个子网内,就可以直接通信,如果两个需要通信的主机不在同一个子网内,则需要寻找路径进行通讯了。通俗的说,我自己的电话是021-55554444,我朋友的电话是010-666688888,我们两个人要通信,我先要看一下我们两个的电话是不是在同一个区间(相当于子网掩码中的子网),结果不在一个区间,我要打他的电话,肯定要加上区号了,也就是要通过转发了。
2、子网掩网的组成:子网掩码其实还是一个IP地址,ABC三类IP地址都有默认的子网掩码,请大家在使用的时候,不要随意更改。我们可以将255.255.255.0这个子网掩码换算成二进制的是这样的:11111111. 11111111. 11111111.00000000。在子网掩码中,网络位用1来表示,主机位用0来表示。只要网络位相同,那么两个子网间就可以通讯了,这就是判断两个需要通信的主机是否在一个子网中的依据。
三、子网掩码的高级应用--合理选择IP地址和子网掩码。
IP地址属于哪一类,就决定了在这一个子网中,可以容纳的主机数量。通过修改子网掩网,可以改变一个子网中可容纳的机器数量,并优化自己网络的通讯性能更高。
一个网络中,使用哪一类的IP地址和子网掩码,表面上看来没有什么关系,实际上,如果子网掩码选择不当,可能会引起广播风暴,降低网络性能。我们以一个实例来分析一下:我们的机器IP地址为192.168.0.X网段的,我们没有用默认的子网掩码255.255.255.0,而是选择了255.255.0.0这个作为子网掩码。我们将子网掩码换算成二进制后是:
11111111.11111111.00000000.00000000,在进行网络通信的时候,由于主机位占用了16位,数据广播的范围会扩大,因此可能会产生大量的广播信息,降低网络的通讯性能。如何为自己的网络选择一个IP地址段和配套的子网掩码,提高我们的网络通讯性能,是我们关心的议题。因此,我们可以根据我们网络中的机器数量,打造属于自己网络的子网掩网。
在一般情况下,如果机器数量不超过250台,没有必要自己修改默认的子网掩码,在机器数量超过250台的时候,才有必要自己修改子网掩码。我们以450台的机器一个网络为例,说一下如何选择合适的IP地址和子网掩码。450台机器的网络,由于C类的IP地址只支持254台主机,肯定不可以了。我们只能选择B类的IP地址,如选择使用188.188.X.X,默认的子网掩码是255.255.0.0。我们通过公式主机数量=2n-2可以看出,在B类IP地址可以容纳的机器数量有65536台主机,有点太大了,我们是否可以修改一下呢?我们用公式计算一下450=2n-2,经过计算可以知道N的值最合适的值可以取9最合适了。我们将子网掩码换算为二进制:
11111111.11111111.00000000.00000000,子网掩码目前的主机位数是16,我们改成9后,子网掩码成为:11111111.11111111.11111110.00000000,换算成十进制后是:255.255.254.0。成功了。用在网络中测试一下,是否可能通讯,一切OK。
在自己计算子网掩码的时候,一定要正确理解,在子网掩码换算成为二进制后,主机位在哪里,网络位在哪里,才能正确理解。
网关曾经是很容易理解的概念。在早期的因特网中,术语网关即指路由器。路由器是网络中超越本地网络的标记,这个走向未知的“大门”曾经、现在仍然用于计算路由并把分组数据转发到源始网络之外的部分,因此,它被认为是通向因特网的大门。随着时间的推移,路由器不再神奇,公共的基于IP的广域网的出现和成熟促进了路由器的成长。现在路由功能也能由主机和交换集线器来行使,网关不再是神秘的概念。现在,路由器变成了多功能的网络设备,它能将局域网分割成若干网段、互连私有广域网中相关的局域网以及将各广域网互连而形成了因特网,这样路由器就失去了原有的网关概念。然而术语网关仍然沿用了下来,它不断地应用到多种不同的功能中,定义网关已经不再是件容易的事。
目前,主要有三种网关:
·协议网关WNx"N
·应用网关o:JWN
·安全网关E-c
唯一保留的通用意义是作为两个不同的域或系统间中介的网关,要克服的差异本质决定了需要的网关类型。
以下我们就来深入浅出地讲解什么是子网掩码。
IP地址的结构
要想理解什么是子网掩码,就不能不了解IP地址的构成。互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。
IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。
什么是子网掩码
子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码的设定必须遵循一定的规则。与IP地址相同,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。附图所示的就是IP地址为“192.168.1.1”和子网掩码为“255.255.255.0”的二进制对照。其中,“1”有24个,代表与此相对应的IP地址左边24位是网络号;“0”有8个,代表与此相对应的IP地址右边8位是主机号。这样,子网掩码就确定了一个IP地址的32位二进制数字中哪些是网络号、哪些是主机号。这对于采用TCP/IP协议的网络来说非常重要,只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
常用的子网掩码
子网掩码有数百种,这里只介绍最常用的两种子网掩码,它们分别是“255.255.255.0”和“255.255.0.0”。
1. 子网掩码是“255.255.255.0”的网络:最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。
2. 子网掩码是“255.255.0.0”的网络:后面两个数字可以在0~255范围内任意变化,可以提供2552个IP地址。但是实际可用的IP地址数量是2552-2,即65023个。
IP地址的子网掩码设置不是任意的。如果将子网掩码设置过大,也就是说子网范围扩大,那么,根据子网寻径规则,很可能发往和本地机不在同一子网内的目的机的数据,会因为错误的判断而认为目的机是在同一子网内,那么,数据包将在本子网内循环,直到超时并抛弃,使数据不能正确到达目的机,导致网络传输错误;如果将子网掩码设置得过小,那么就会将本来属于同一子网内的机器之间的通信当做是跨子网传输,数据包都交给缺省网关处理,这样势必增加缺省网关的负担,造成网络效率下降。因此,子网掩码应该根据网络的规模进行设置。
如果一个网络的规模不超过254台电脑,采用“255.255.255.0”作为子网掩码就可以了,现在大多数局域网都不会超过这个数字,因此“255.255.255.0”是最常用的IP地址子网掩码;笔者见到的最大规模的中小学校园网具有1500多台电脑,这种规模的局域网可以使用“255.255.0.0”。
默认子网掩码
在Windows 2000 Server中,如果给一个网卡指定IP地址,系统会自动填入一个默认的子网掩码。这是Windows 2000 Server为了节省用户输入时间自动产生的子网掩码。比如,局域网最常使用的IP地址“192.168.x.x”默认的子网掩码是“255.255.255.0”。一般情况下,IP地址使用默认子网掩码就可以了。
子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。
请看以下示例:
运算演示之一:aa
I P 地址 192.168.0.1。
子网掩码 255.255.255.0。
AND运算
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.00000001。
子网掩码 11111111.11111111.11111111.00000000。
AND运算
11000000.10101000.00000000.00000000。
转化为十进制后为:
192.168.0.0。
运算演示之二:
I P 地址 192.168.0.254。
子网掩码 255.255.255.0。
AND运算
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.11111110。
子网掩码 11111111.11111111.11111111.00000000。
AND运算
11000000.10101000.00000000.00000000。
转化为十进制后为:
192.168.0.0。
运算演示之三:
I P 地址 192.168.0.4。
子网掩码 255.255.255.0。
AND运算
转化为二进制进行运算:
I P 地址 11010000.10101000.00000000.00000100。
子网掩码 11111111.11111111.11111111.00000000。
AND运算
11000000.10101000.00000000.00000000。
转化为十进制后为:
192.168.0.0。
通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0。
所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。我现在单位使用的代理服务器,内部网络就是这样规划的。
也许你又要问,这样的子网掩码究竟有多少了IP地址可以用呢?你可以这样算。
根据上面我们可以看出,局域网内部的ip地址是我们自己规定的(当然和其他的ip地址是一样的),这个是由子网掩码决定的通过对255.255.255.0的分析。可得出:
前三位IP码由分配下来的数字就只能固定为192.168.0 所以就只剩下了最后的一位了,那么显而易见了,ip地址只能有(2的8次方-1),即256-1=255一般末位为0或者是255的都有其特殊的作用。
那么你可能要问了:如果我的子网掩码不是255.255.255.0呢?你也可以这样做啊假设你的子网掩码是255.255.128.0。
那么你的局域网内的ip地址的前两位肯定是固定的了(什么,为什么是固定的?你看上边不就明白了吗?·#¥)
这样,你就可以按照下边的计算来看看同一个子网内到底能有多少台机器。
1、十进制128 = 二进制1000 0000。
2、IP码要和子网掩码进行AND运算。
3、
I P 地址 00010000.01001001.1*******.********。
子网掩码 11111111.11111111.10000000.00000000。
AND运算
00010000.01001001.10000000.00000000。
转化为十进制后为:
16 . 73 . 128 . 0。
4、可知我们内部网可用的IP地址为:
00010000.01001001.10000000.00000000。
到
00010000.01001001.11111111.11111111。
5、转化为十进制:
16.73.128.0 到 16.73.255.255。
6、0和255通常作为网络的内部特殊用途。通常不使用。
7、于是最后的结果如下:我们单位所有可用的IP地址为:
192.168.128.1-192.168.128.254。
192.168.129.1-192.168.129.254。
192.168.130.1-192.168.130.254。
192.168.131.1-192.168.131.254。
. . . . . . . . . . . . .。
192.168.139.1-192.168.139.254。
192.168.140.1-192.168.140.254。
192.168.141.1-192.168.141.254。
192.168.142.1-192.168.142.254。
192.168.143.1-192.168.143.254。
. . . . . . . . . . . . .。
192.168.254.1-192.168.254.254。
192.168.255.1-192.168.255.254。
8、总数为(255-128+1)*(254-1+1) =128 * 254 = 32512。
FAINT!!!!@#!@把我们公司都买了还买不了这么多的机器呢!·¥!·#。
9、看看的结果是否正确
(1)、设定IP地址为192.168.128.1。
Ping 192.168.129.233通过测试。
访问http://192.168.129.233可以显示出主页。
(2)、设定IP地址为192.168.255.254。
Ping 192.168.129.233通过测试。
访问http://192.168.129.233可以显示出主页。
10、结论
以上证明我们的结论是对的。现在你就可以看你的子网中能有多少台机器了。
255.255.255.128。
分解:
11111111.11111111.11111111.1000000。
所以你的内部网络的ip地址只能是。
xxxxxxxx.xxxxxxxx.xxxxxxxx.0???????。
到
xxxxxxxx.xxxxxxxx.xxxxxxxx.01111111。
子网划分定义:Internet组织机构定义了五种IP地址,有A、B、C三类地址。A类网络有126个,每个A类网络可能有16777214台主机,它们处于同一广播域。而在同一广播域中有这么多节点是不可能的,网络会因为广播通信而饱和,结果造成16777214个地址大部分没有分配出去。可以把基于每类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于每类的网络地址的主机部分创建的。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
当我们对一个网络进行子网划分时,基本上就是将它分成小的网络。比如,当一组IP地址指定给一个公司时,公司可能将该网络“分割成”小的网络,每个部门一个。这样,技术部门和管理部门都可以有属于它们的小网络。通过划分子网,我们可以按照我们的需要将网络分割成小网络。这样也有助于降低流量和隐藏网络的复杂性。
子网掩码
RFC 950定义了子网掩码的使用,子网掩码是一个32位的2进制数,其对应网络地址的所有位置都为1,对应于主机地址的所有位置都为0。
由此可知,A类网络的默认子网掩码是255.0.0.0,B类网络的默认子网掩码是255.255.0.0,C类网络的默认子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。
子网掩码常用点分十进制表示,我们还可以用CIDR的网络前缀法表示掩码,即“/<网络地址位数>;”。如138.96.0.0/16表示B类网络138.96.0.0的子网掩码为255.255.0.0。
IP判断
子网掩码告知路由器,IP地址的前多少位是网络地址,后多少位(剩余位)是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。
例如,有两台主机,主机一的IP地址为222.21.160.6,子网掩码为255.255.255.192,主机二的IP地址为222.21.160.73,子网掩码为255.255.255.192。主机一要给主机二发送数据,先要判断两个主机是否在同一网段。
主机一
222.21.160.6即:11011110.00010101.10100000.00000110。
255.255.255.192即:11111111.11111111.11111111.11000000。
按位逻辑与运算结果为:11011110.00010101.10100000.00000000。
十进制形式为(网络地址):222.21.160.0。
主机二
222.21.160.73 即:11011110.00010101.10100000.01001001。
255.255.255.192即:11111111.11111111.11111111.11000000。
按位逻辑与运算结果为:11011110.00010101.10100000.01000000。
十进制形式为(网络地址):222.21.160.64。
C类地址判断前三位是否相同,即可确定2个IP地址是否在同一网段内,但本例中的222.21.160.6与222.21.160.73不在同一网段,因为这两个C类IP地址已经做了子网划分就不能只判断前三个字节是否相同就确认这两个IP是否在同一网段。其中222.21.160.6在222.21.160.1-222.21.160.62 段,222.21.160.73在222.21.160.65-222.21.160.126 段,所以不在同一网段,如果要通信需要通过路由器转发。
设置
子网划分是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的。
划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。以C类网络为例,原有8位主机位,2的8次方即256个主机地址,默认子网掩码255.255.255.0。借用1位主机位,产生2个子网,每个子网有126个主机地址;借用2位主机位,产生4个子网,每个子网有62个主机地址……每个子网中,第一个IP地址(即主机部分全部为0的IP)和最后一个IP(即主机部分全部为1的IP)不能分配给主机使用,所以每个子网的可用IP地址数为总IP地址数量减2;根据子网ID借用的主机位数,我们可以计算出划分的子网数、掩码、每个子网主机数,列表如下:
① 划分子网数 ② 子网位数 ③子网掩码(二进制) ④ 子网掩码(十进制) ⑤ 每个子网主机数。
① 1~2 ② 1 ③ 11111111.11111111.11111111.10000000 ④ 255.255.255.128 ⑤ 126。
① 3~4 ② 2 ③ 11111111.11111111.11111111.11000000 ④ 255.255.255.192 ⑤ 62。
① 5~8 ② 3 ③ 11111111.11111111.11111111.11100000 ④ 255.255.255.224 ⑤ 30。
① 9~16 ② 4 ③ 11111111.11111111.11111111.11110000 ④ 255.255.255.240 ⑤ 14。
① 17~32 ② 5 ③ 11111111.11111111.11111111.11111000 ④ 255.255.255.248 ⑤ 6。
① 33~64 ② 6 ③ 11111111.11111111.11111111.11111100 ④ 255.255.255.252 ⑤ 2。
如上表所示的C类网络中,若子网占用7位主机位时,主机位只剩一位,无论设为0还是1,都意味着主机位是全0或全1。由于主机位全0表示本网络,全1留作广播地址,这时子网实际没有可用主机地址,所以主机位至少应保留2位。
计算步骤
1、确定要划分的子网数
2、求出子网数目对应二进制数的位数N及主机数目对应二进制数的位数M。
3、对该IP地址的原子网掩码,将其主机地址部分的前N位置取1或后M位置取0 即得出该IP地址划分子网后的子网掩码。
例如,对B类网络135.41.0.0/16需要划分为20个能容纳200台主机的网络(即:子网)。因为16<20<32,即:2的4次方<20<2的5次方,所以,子网位只须占用5位主机位就可划分成32个子网,可以满足划分成20个子网的要求。B类网络的默认子网掩码是255.255.0.0,转换为二进制为11111111.11111111.00000000.00000000。现在子网又占用了5位主机位,根据子网掩码的定义,划分子网后的子网掩码应该为11111111.11111111.11111000.00000000,转换为十进制应该为255.255.248.0。我们再来看一看每个子网的主机数。子网中可用主机位还有11位,2的11次方=2048,去掉主机位全0和全1的情况,还有2046个主机ID可以分配,而子网能容纳200台主机就能满足需求,按照上述方式划分子网,每个子网能容纳的主机数目远大于需求的主机数目,造成了IP地址资源的浪费。为了更有效地利用资源,我们也可以根据子网所需主机数来划分子网。还以上例来说,128<200<256,即2^7<200<2^8,也就是说,在B类网络的16位主机位中,保留8位主机位,其它的16-8=8位当成子网位,可以将B类网络135. 41.0.0划分成256(2^8)个能容纳256-1-1=254台(去掉全0全1情况)主机的子网。此时的子网掩码为11111111.11111111.11111111.00000000,转换为十进制为255.255.255.0。
在上例中,我们分别根据子网数和主机数划分了子网,得到了两种不同的结果,都能满足要求,实际上,子网占用5~8位主机位时所得到的子网都能满足上述要求,那么,在实际工作中,应按照什么原则来决定占用几位主机位呢?
注意事项
在划分子网时,不仅要考虑目前需要,还应了解将来需要多少子网和主机。对子网掩码使用必须要更多的子网位,可以得到更多的子网,节约了IP地址资源,若将来需要更多子网时,不用再重新分配IP地址,但每个子网的主机数量有限;反之,子网掩码使用较少的子网位,每个子网的主机数量允许有更大的增长,但可用子网数量有限。一般来说,一个网络中的节点数太多,网络会因为广播通信而饱和,所以,网络中的主机数量的增长是有限的,也就是说,在条件允许的情况下,会将更多的主机位用于子网位。
综上所述,子网掩码的设置关系到子网的划分。子网掩码设置的不同,所得到的子网不同,每个子网能容纳的主机数目不同。若设置错误,可能导致数据传输错误。
优点
1.减少网络流量
2.提高网络性能
3.简化管理
4.易于扩大地理范围
划分子网
首先要熟记2的幂:2的0次方到9次方的值分别为:1,2,4,8,16,32,64,128,256和512.还有要明白的是:子网划分是借助于取走主机位,把这个取走的部分作为子网位.因此这个意味划分越多的子网,每个子网容纳的主机将越少.。
Subnet Masks
子网掩码用于辨别IP地址中哪部分为网络地址,哪部分为主机地址,由1和0组成,长32位,全为1的位代表网络号.不是所有的网络都需要子网,因此就引入1个概念:默认子网掩码(default subnet mask).A类IP地址的默认子网掩码为255.0.0.0;B类的为255.255.0.0;C类的为255.255.255.0。
Classless Inter-Domain Routing(CIDR)。
CIDR叫做无分类域间路由,ISP常用这样的方法给客户分配地址,ISP提供给客户1个块(block size),类似这样:192.168.10.32/28,这排数字告诉你你的子网掩码是多少,/28代表多少位为1,最大/32.但是你必须知道的1点是:不管是A类还是B类还是其他类地址,最大可用的只能为30/,即保留2位给主机位。
CIDR值:
1.掩码255.0.0.0:/8(A类地址默认掩码)
2.掩码255.128.0.0:/9。
3.掩码255.192.0.0:/10。
4.掩码255.224.0.0:/11。
5.掩码255.240.0.0:/12。
6.掩码255.248.0.0:/13。
7.掩码255.252.0.0:/14。
8.掩码255.254.0.0:/15。
9.掩码255.255.0.0:/16(B类地址默认掩码)
10.掩码255.255.128.0:/17。
11.掩码255.255.192.0:/18。
12.掩码255.255.224.0:/19。
13.掩码255.255.240.0:/20。
14.掩码255.255.248.0:/21。
15.掩码255.255.252.0:/22。
16.掩码255.255.254.0:/23。
17.掩码255.255.255.0:/24(C类地址默认掩码)
18.掩码255.255.255.128:/25。
19.掩码255.255.255.192:/26。
20.掩码255.255.255.224:/27。
21.掩码255.255.255.240:/28。
22.掩码255.255.255.248:/29。
23.掩码255.255.255.252:/30。
Subnetting Class A,B&C Address。
答疑
一、C类地址例子:网络地址192.168.10.0;子网掩码255.255.255.192(/26)
1.子网数=2*2=4(ip subnet zero命令启用)
2.主机数=2的6次方-2=62。
3.有效子网:block size=256-192=64;所以第一个子网为192.168.10.0,第二个为192.168.10.64,第三个为192.168.10.128,第四个为192.168.10.192。
4.广播地址:下个子网-1.所以第一和第二个子网的广播地址分别是192.168.10.63和192.168.10.127。
5.有效主机范围是:第一个子网的主机地址是192.168.10.1到192.168.10.62;第二个是192.168.10.65到192.168.10.126。
二、B类地址例子1:网络地址:172.16.0.0;子网掩码255.255.192.0(/18)
1.子网数=2*2=4(ip subnet zero命令启用)
2.主机数=2的14次方-2=16382。
3.有效子网:block size=256-192=64;所以第一个子网为172.16.0.0,第二个子网为172.16.64.0,第三个子网为172.16.128.0,最后1个为172.16.192.0。
4.广播地址:下个子网-1.所以前2个子网的广播地址分别是172.16.63.255和172.16.127.255。
5.有效主机范围是:第一个子网的主机地址是172.16.0.1到172.16.63.254;第二个是172.16.64.1到172.16.127.254。
B类地址例子2:网络地址:172.16.0.0;子网掩码255.255.255.224(/27)
1.子网数=2的11次方=2048(因为B类地址默认掩码是255.255.0.0,所以网络位为8+3=11)(ip subnet zero命令启用)
2.主机数=2的5次方-2=30。
3.有效子网:block size=256-224=32;所以第一个子网为172.16.0.0,最后1个为172.16.255.224。
4.广播地址:下个子网-1.所以第一个子网和最后1个子网的广播地址分别是172.16.0.31和172.16.255.255。
5.有效主机范围是:第一个子网的主机地址是172.16.0.1到172.16.0.30;最后1个是172.16.255.225到172.16.255.254 Variable Length Subnet Masks(VLSM)。
一时半会儿也说不清,还是老老实实下本TCP/IP的书系统的学习一下吧。
255.255.255.255 是网络广播专用 和127.0.0.1 的意思有点类似。