计算机网络如何计算子网掩码

作者&投稿:贝狡 (若有异议请与网页底部的电邮联系)
~ IP地址是以 网络号 和 主机 号来表示网络上的主机的,只有在一个网络号下的计算机之间才能“直接”互通,不同网络号的计算机要通过 网关 (Gateway)才能互通。但这样的划分在某些情况下显得并不十分灵活。为此 IP网络 还允许划分成更小的网络,称为子网(Subnet),这样就产生了 子网掩码 。子网掩码的作用就是用来判断任意两个IP地址是否属于同一子网络,这时只有在同一子网的计算机才能"直接"互通。那么怎样确定子网掩码呢?

前面讲到IP地址分网络号和主机号,要将一个网络划分为多个子网,因此网络号将要占用原来的主机位,如对于一个C类地址,它用24位来标识网络号,要将其划分为2个子网则需要占用1位原来的主机标识位。此时 网络号 位变为25位, 主机 标示变为7位。同理借用2个主机位则可以将一个C类网络划分为4个子网……那计算机是怎样才知道这一网络是否划分了子网呢?这就可以从子网掩码中看出。子网掩码和IP地址一样有32bit,确定 子网掩码 的方法是其与IP地址中标识网络号的所有对应位都用"1",而与主机号对应的位都是"0"。如分为2个子网的C类IP地址用25位来标识网络号,则其子网掩码为:11111111 11111111 11111111 10000000即255.255.255.128。于是我们可以知道,A类地址的缺省子网掩码为255.0.0.0,B类为255.255.0.0,C类为255.255.255.0。下表是C类地址 子网划分 及相关子网掩码:

子网位数  子网掩码 主机 数 可用主机数

1  255.255.255.128  128   126

2  255.255.255.192  64   62

3  255.255.255.224  32   30

4  255.255.255.240  16  14

5  255.255.255.248  8   6

6  255.255.255.252  4    2

你可能注意到上表分了 主机 数和可用主机数两项,这是为什么呢?因为当地址的所有主机位都为"0"时,这一地址为子网的网络地址,而当所有主机位都为"1"时为 广播地址 。

同时我们还可以使用可变长 掩码 (VLSM)就是指一个网络可以用不同的掩码进行配置。这样做的目的是为了使把一个网络划分成多个子网更加方便。在没有VLSM的情况下,一个网络只能使用一种 子网掩码 ,这就限制了在给定的子网数目条件下主机的数目。例如你被分配了一个C类地址, 网络号 为192.168.10.0,而你现在需要将其划分为三个子网,其中一个子网有100台 主机 ,其余的两个子网有50台主机。我们知道一个C类地址有254个可用地址,那么你如何选择子网掩码呢?从上表中我们发现,当我们在所有子网中都使用一个子网掩码时这一问题是无法解决的。此时VLSM就派上了用场,我们可以在100个主机的子网使用255.255.255.128这一 掩码 ,它可以使用192.168.10.0到192.168.10.127这128个IP地址,其中可用主机号为126个。我们再把剩下的192.168.10.128到192.168.10.255这128个IP地址分成两个子网, 子网掩码 为255.255.255.192。其中一个子网的地址从192.168.10.128到192.168.10.191,另一子网的地址从192.168.10.192到192.168.10.255。子网掩码为255.255.255.192每个子网的可用 主机地址 都为62个,这样就达到了要求。可以看出合理使用子网掩码,可以使IP地址更加便于管理和控制。

、、、、、、、、、、、、、、、、、、、、、、、、、

定义子网掩码

用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。

定义子网掩码的步骤为:

A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为c类IP地址,网络标识为“210.73.a”,主机标识为“b”。

B、根据我们所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们需要12个子网,将来可能需要16个。用第四个字节的前四位确定子网掩码。前四位都置为“1”,即第四个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。

C、把对应初始网络的各个位都置为“1”,即前三个字节都置为“1”,则子网掩码的间断二进制形式为:“11111111.11111111.11111111.11110000” 。

D、把这个数转化为间断十进制形式为:“255.255.255.240” 。

计算方式

由于子网掩码的位数决定于可能的子网数目和每个子网的 主机 数目。在定义子网掩码前,必须弄清楚本来使用的 子网 数和 主机 数目。

根据子网数

利用子网数来计算

在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

1)将子网数目转化为 二进制 来表示

2)取得该 二进制 的位数,为 N

3)取得该IP地址的类子网掩码,将其 主机地址 部分的前N位置1 即得出该IP地址划分子网的子网掩码。

如欲将B类IP地址168.195.0.0划分成27个子网:

1)27=11011

2)该 二进制 为五位数,N = 5

3)将B类地址的子网掩码255.255.0.0的 主机地址 前5位置1(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0

即为划分成27个子网的B类IP地址 168.195.0.0的子网掩码(实际上是划成了32-2=30个子网)。

这一段介绍的是旧标准下计算的方法,关于旧的标准后文在介绍,在新标准中则可以先将27减去1,因为计算机是从0开始计算的,从0到27实际上是有28个,所以说如果需要27个就需要将27减去1。

根据主机数

利用主机数来计算

1)将主机数目转化为二进制来表示

2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的 二进制 位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说 主机地址 将占据不止8位。

3)使用255.255.255.255来将该类IP地址的 主机地址 位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有 主机 700台:

1) 700=1010111100

2)该 二进制 为十位数,N = 10

3)将该B类地址的子网掩码255.255.0.0的 主机地址 全部置1,得到255.255.255.255

然后再从后向前将后10位置0,即为: 11111111.11111111.11111100.00000000

即255.255.252.0。这就是该欲划分成 主机 为700台的B类IP地址168.195.0.0的子网掩码。

子网掩码最直接的作用是判断IP地址与另一个IP地址是否在同一个网段内。

下面先简单看一个电脑上IP的基本配置

IP地址:192.168.0.5

子网掩码:255.255.255.0

默认网关:192.168.0.1

如上的例子,IP地址、子网掩码、默认网关。假如现在上边的电脑A(IP地址192.168.0.5)要给电脑B(IP地址为192.168.0.22)发送数据,首先A将数据发到路由器,路由器经过判断B的地址和A的地址在同一个网段内,然后路由器就将数据直接发送给B。

路由器具体使用子网掩码来判断IP地址是先将这些IP地址和子网掩码都换成二进制,然后按照子网掩码的最长位数的1来比较。

第一步:转换为二进制

A的IP地址:11000000,10101000,00000000,00000101

子网掩码:11111111,11111111,11111111,00000000

B的IP地址:11000000,10101000,00000000,00010110

第二步:按照子网掩码最长1来比较

看上边的内容,子网掩码在左边一共有24位为1,那这样的意思就是如果两个IP地址的前24位都相同的话,那这两个IP地址就是在同一个网段内,看到我红色标记的A和B的地址都相同,那这就说明A和B在同一个网段内。

再看一个例子,如果还是A地址的数据发到C地址,C的IP地址为192.168.56.21

第一步:转换为二进制

A的IP地址:11000000,10101000,00000000,00000101

子网掩码:11111111,11111111,11111111,00000000

C的IP地址:11000000,10101000,00111000,00010101

第二步:按照子网掩码最长1来比较

看上边的A和C,按照子网掩码的要求,如果C的前24位和A的前24位都相同的话,那么A和C才是同一网段的,看上边C的地址,我用蓝色来标注不同的位数,这样A 和C就不在同一个网段内,路由器就不能直接把A要发给C的数据直接经过一个路由器给发送过去,这样路由器就要先将A的数据转发到另外一个路由器(一个不行就继续往下发),然后再发到C上。

问题扩展:

一:上边的例子中子网掩码为255.255.255.0,那么能不能把子网掩码给修改呢,完全可以。

在上边A和C的例子中,如果把子网掩码改成255.255.0.0,再看一下

A的IP地址:11000000,10101000,00000000,00000101

子网掩码:11111111,11111111,00000000,00000000

C的IP地址:11000000,10101000,00111000,00010101

这样A和C就在同一个网段内了

二:扩展子网

在一个公司或者学校内部,已经分配好了网络号,按照内部行政结构的不同,再将网络分配成子网络号。

举例:如果一个公司主机已经分配好的网络按照255.255.0.0的子网掩码来区分主机号,现在由于公司有两个部门,想要按照部门来划分成两个子网络来,那么可以简单的用子网掩码来划分。现在来考虑,有两个部门,按照二进制的做饭,那么只要有一位的数字0和1来区分就可以了。

按照255.255.0.0(11111111,11111111,00000000,00000000)来划分,前边了16位是网络号,按照子网掩码是按照最长1来匹配,那么现在就在17位划分位0和1来区分成两个。那么可以给一个部门的子网掩码划分为255.255.128.0,另一个划分为255.255.0.0,用二进制来比较一下

255.255.0.0:11111111,11111111,00000000,00000000

255.255.128.0:11111111,11111111,10000000,00000000

这样就简单的将两个部门来划分开了

三:路由的时候选择最长1来匹配

路由的时候为什么选择最长1来匹配,理由是这样的:如果是在好几个可以匹配的网段内(还是按照子网掩码)选择最长的那个,可以很快的找到匹配。如果是按照最短的,那么需要匹配的主机就多,还有一种可能是一个路由器转发不了,还要换另一个路由,很可能造成包在网络内循环,最后直至包被丢弃。

四:网关的概念

在开始的例子中提到默认网关的概念,先来看网关的概念。

网关实质上是一个网络通向其他网络的IP地址,网关的IP地址是具有路由功能的设备的IP地址,按照上边的192.168.0.1网关的例子,网关就是有那么一台机子或者是PC机或者是服务器它的IP地址是192.168.0.0,这个设备有路由功能。按照这个理论,一个设备的IP必须和自己的网关在同一个网段内,这是必须的。

说完网关,再说默认网关,默认二字就没有太多解释的了,这里举例说明:网关可能不止一个,有网关一、网关二等等,默认网关就是选择其中之一做为默认值。

子网掩码怎么算?
答:子网掩码:255.255.0.0可以将其划分为256个子网(从10.0.0.0到10.255.0.0)——第一个八位位组表示网络地址,第二个表示子网号,而最后两个表示主机部分。用子网掩码对主机地址进行位与操作,就能够提取出完整的子网地址。子网掩码并不局限于整数个八位位组的情况。例如,255.254.0.0(或...

计算子网掩码的过程是怎样?怎样计算?
答:例如:计算IP地址为:202.99.160.50子网掩码是255.255.255.0的网络地址步骤如下:1)将IP地址和子网掩码分别换算成二进制 202.99.160.50 换算成二进制为 11001010·01100011·10100000·00110010 255.255.255.0 换算成二进制为 11111111·11111111·11111111·00000000 2)将二者进行与运算 3)将运算...

子网掩码怎么计算
答:子网ID增量计算法(即计算每个子网的IP范围)其基本计算步骤如下:第1步,将所需的子网数转换为二进制,如所需划分的子网数为“4”,则转换成成二进制为00000100;第2步,取子网数的二进制中有效位数,即为向缺省子网掩码中加入的位数(既向主机ID中借用的位数)。如前面的00000100,有效位为“100...

如何计算计算机的网络号是什么?
答:要计算某个计算机的网络号,需要将其IP地址与子网掩码进行逻辑与操作。下面是具体步骤:将IP地址和子网掩码转换为二进制形式: IP地址:201.120.17.8 => 11001001.01111000.00010001.00001000 子网掩码:255.255.255.0 => 11111111.11111111.11111111.00000000 进行逻辑与操作,将每一位的对应位相与...

子网掩码怎么算,为什么是16位的?
答:16位子网掩码的意思就是32位地址中,前16位为1,后16位为0,化为十进制后就是255.255.0.0。利用子网数来计算子网掩码方法思路如下:在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。1)将子网数目转化为二进制来表示;2)取得该二进制的位数,为 N;3)取得该 IP...

掩码如何计算?
答:利用子网数来计算。1、首先,将子网数目从十进制数转化为二进制数;2、接着,统计由“1”得到的二进制数的位数,设为N;3、最后,先求出此IP地址对应的地址类别的子网掩码。再将求出的子网掩码的主机地址部分(也就是“主机号”)的前N位全部置1,这样即可得出该IP地址划分子网的子网掩码。例如:...

请问一下,知道一个IP地址,如何计算出它的子网掩码啊?
答:利用子网数来计算:在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。1.将子网数目转化为二进制来表示 2.取得该二进制的位数,为 N 3.取得该IP地址的类子网掩码,将其主机地址部分的前N位置1 即得出该IP地址划分子网的子网掩码。如欲将B类IP地址168.195.0.0划分成...

计算机网络如何计算子网掩码
答:同理借用2个主机位则可以将一个C类网络划分为4个子网……那计算机是怎样才知道这一网络是否划分了子网呢?这就可以从子网掩码中看出。子网掩码和IP地址一样有32bit,确定 子网掩码 的方法是其与IP地址中标识网络号的所有对应位都用"1",而与主机号对应的位都是"0"。如分为2个子网的C类IP地址用25位来标识...

如何计算子网掩码和子网个数以及最大主机数?
答:1.确定子网划分的数量。2.相对应的子网数N位二进制数和主机的数量对应于M位二进制数的计算。3.IP地址的原子网掩码,将主机地址的前N个位置设置为1,或将最后M个位置设置为0,得到子网分区后的IP地址子网掩码。例如:B类网络135.41.0.0/16需要分为20网络,可以容纳200台主机(即子网)因为16 ...

如何用计算机算出子网掩码
答:注:8位主机号减少网络号借去的3位,所剩下5位。即n=8-m=5 其中m为网络号位数,n为主机号位数。即最多可以容纳的主机数为 32 可用的主机数为30 计算公式如下图所示:4、我们已经算出192.168.1.53/27 ,每个网段最大容纳的主机数和可以主机数了,下面我们来计算子网掩码的10进制数是多少...