快好知 kuaihz订阅看过栏目

 

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。 子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

计算方式

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

根据子网数

利用子网数来计算

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

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的子网掩码。

增量计算法

子网ID增量计算法(即计算每个子网的IP范围)

其基本计算步骤如下:

第1步,将所需的子网数转换为二进制,如所需划分的子网数为“4”,则转换成成二进制为00000100;

第2步,取子网数的二进制中有效位数,即为向缺省子网掩码中加入的位数(既向主机ID中借用的位数)。如前面的00000100,有效位为“100”,为3位(在新标准中只需要2位就可以了);

第3步,决定子网掩码。如IP地址为B类129.20.0.0网络,则缺省子网掩码为:255.255.0.0,借用主机ID的3位以后变为:255.255.224(11100000).0,即将所借的位全表示为1,用作子网掩码。

第4步,将所借位的主机ID的起始位段最右边的“1”转换为十进制,即为每个子网ID之间的增量,如前面的借位的主机ID起始位段为“11100000”,最右边的“1”,转换成十进制后为2^5=32(此为子网ID增量)。

第5步,产生的子网ID数为:2^m-2 (m为向缺省子网掩码中加入的位数),如本例向子网掩码中添加的位数为3,则可用子网ID数为:2^3-2=6个;

第6步,将上面产生的子网ID增量附在原网络ID之后的第一个位段,便形成第一个子网网络ID 129.20.32.0(即第一个子网的起始IP段);

第7步,重复上步操作,在原子网ID基础上加上一个子网ID增量,依次类推,直到子网ID中的最后位段为缺省子网掩码位用主机ID位之后的最后一个位段值,这样就可得到所有的子网网络ID。如缺省子网掩码位用主机ID位之后的子网ID为255.255.224.0,其中的“224”为借用主机ID后子网ID的最后一位段值,所以当子网ID通过以上增加增量的方法得到129.20.224.0时便终止,不要再添加了(只能用到129.20.192.0)。

我们知道当主机ID为全0时表示网络ID,全1时表示广播地址。在RFC950标准中,不建议使用全0和全1的子网ID。

例如把最后一个字节的前3位借给网络ID,用后面的5位来表示主机ID,这样就会产生2^3=8个子网,子网ID就分别为000、001、010、011、100、101、110、111这样8个,在RFC950标准中只能使用中间的6个子网ID。

这么做的原因是:

设我们有一个网络:192.168.0.0/24(即子网掩码的前24位为1,255.255.255.0),我们需要两个子网,那么按照RFC950,应该使用/26而不是/25,得到两个可以使用的子网192.168.0.64和192.168.0.128

对于192.168.0.0/24,网络地址是192.168.0.0,广播地址是192.168.0.255

对于192.168.0.0/26,网络地址是192.168.0.0,广播地址是192.168.0.63

对于192.168.0.64/26,网络地址是192.168.0.64,广播地址是192.168.0.127

对于192.168.0.128/26,网络地址是192.168.0.128,广播地址是192.168.0.191

对于192.168.0.192/26,网络地址是192.168.0.192,广播地址是192.168.0.255

你可以看出来,对于第一个子网,网络地址和主网络的网络地址是重叠的,对于最后一个子网,广播地址和主网络的广播地址也是重叠的。在CIDR流行以前,这样的重叠将导致极大的混乱。比如,一个发往192.168.0.255的广播是发给主网络的还是子网的?这就是为什么在当时不建议使用全0和全1子网。在今天,CIDR已经非常普及了,所以一般不需要再考虑这个问题。

运算示例

运算演示之一:aa

I P 地址192.168.0.1

子网掩码255.255.255.0

AND运算(AND运算法则:1 与1 = 1 ,1 与0 = 0 ,0 与1 = 0 ,0 与0 = 0 ,即当对应位均为1时结果为1,其余为0。)

转化为二进制进行运算:

I P 地址11000000.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 地址11000000.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 地址11000000.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次方-2),即256-2=254,一般主机地址全为0或者1(二进制)有其特殊的作用。

那么你可能要问了:如果我的子网掩码不是255.255.255.0呢?你也可以这样做啊假设你的子网掩码是255.255.128.0

那么你的局域网内的ip地址的前两位肯定是固定的了

这样,你就可以按照下边的计算来看看同一个子网内到底能有多少台机器

1.十进制128 =二进制1000 0000

2.IP码要和子网掩码进行AND运算

3.

I P 地址11000000.10101000.1*******.********

子网掩码11111111.11111111.10000000.00000000

AND运算

11000000.10101000.10000000.00000000

转化为十进制后为:

192 . 168. 128 . 0

4.可知我们内部网可用的IP地址为:

11000000.10101000.10000000.00000000

11000000.10101000.11111111.11111111

(也可以是:11000000.10101000.00000000.00000000 到11000000.10101000.01111111.11111111)

5.转化为十进制:

192 . 168.128.0 到192 . 168.255.255 (或者192.168.0.0到192.168.127.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

子网内包含的机器数目应该是2^n-2,比如说上面的子网掩码是255.255.128.0,那么他的网络号是17位,主机号是15位,只要主机号不全是0或者1就是可以的,所以ip地址是192.168.192.0(11000000.10101000.11000000.00000000)也允许,除掉全0全1,结果为2^15-2*(255-128+1)=32512

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.255.254 通过测试

访问http://192.168.255.254 可以显示出主页

10.结论

以上证明我们的结论是对的。

现 在你就可以看你的子网中能有多少台机器了

255.255.255.128

分解:

11111111.11111111.11111111.10000000

所以你的内部网络的ip地址只能是

xxxxxxxx.xxxxxxxx.xxxxxxxx.0?

xxxxxxxx.xxxxxxxx.xxxxxxxx.01111111

子网掩码

复用技术

子网TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对IP地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负担:第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网络负担。

因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在:如何减少网络地址。于是IP网络地址的多重复用技术应运而生。

通过复用技术,使若干物理网络共享同一IP网络地址,无疑将减少网络地址数。

编址技术

子网编址(subnet addressing)技术,又叫子网寻径(subnet routing),英文简称subnetting,是最广泛使用的IP网络地址复用方式,已经标准化,并成为IP地址模式的一部分。一般的,32位的IP地址分为两部分,即网络号和主机号,我们分别把他们叫做IP地址的“网间网部分”和“本地部分”。子网编址技术将本地部分进一步划分为“物理网络”部分和“主机”部分,如图:网间网部分物理网络主机

|←网间网部分→|←————本地部分—————→|

|←物理网络→|←—主机部分——→|

其中“物理网络”用于标识同一IP网络地址下的不同物理网络即是“子网”。

(2)子网掩码IP协议标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。例如位模式:

11111111 11111111 11111111 00000000中,前三个字节全1,代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代表对应IP地址中最后的一个字节为主机地址。这种位模式叫做子网模(subnet mask)或“子网掩码”。

为了使用的方便,常常使用“点分整数表示法”来表示一个IP地址和子网掩码,例如c类地址子网掩码(11111111 11111111 11111111 00000000)为:255.255.255.0 IP协议关于子网掩码的定义提供一种有趣的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的路由器支持在子网中使用低序或无序的位,因此在实际应用中通常各网点采用连续方式的子网掩码。像255.255.255.64和255.255.255.160等一类的子网掩码不推荐使用。

(3)子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。

例如:有一个C类地址为:192.9.200.13其缺省的子网掩码为:255.255.255.0则它的网络号和主机号可按如下方法得到:

①将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101

②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000

③将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分

11000000 00001001 11001000 00001101 AND 11111111 11111111 11111111 00000000

11000000 00001001 11001000 00000000结果为192.9.200.0,即网络号为192.9.200.0。

④将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分11000000 00001001 11001000 00001101 AND 00000000 00000000 00000000 11111111 结果为00000000 00000000 00000000 00001101转化为十进制得到0.0.0.13,即主机号为13。

掩码变长

可变长子网掩码(VLSM)的作用:节约IP地址的空间;减少路由表大小。使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIPv2,OSPF,EIGRP和BGP。

投稿
非常不爽,删了吧! 相关词条:其他 subnet 使用