转自:https://blog.csdn.net/wuseyukui/article/details/24306645网络
子网掩码能够分离出IP地址中的网络地址和主机地址,那为何要分离呢?由于两台计算机要通信,首先要判断是否处于同一个广播域内,即网络地址是否相同。若是网络地址相同,代表接受方在本网络上,那么能够把数据包直接发送到目标主机,不然就须要路由网关将数据包转发送到目的地。ui
1)缺省子网掩码:.net
(未划分子网)3d
子网掩码32位与IP地址32位对应,若是某位是网络地址,则子网掩码为1,不然为0。例如A类IP地址,第一节为网络地址,其他三节为主机地址,故掩码为“11111111.00000000.00000000.00000000”blog
A类网络缺省子网掩码:255.0.0.0
B类网络缺省子网掩码:255.255.0.0
C类网络缺省子网掩码:255.255.255.0ip
2)自定义子网掩码:资源
(用于划分子网)路由
将一个网络划分为若干子网,但愿每一个子网拥有不一样的网络地址或子网地址。由于IP是有限的,实际上咱们是将主机地址分为两个部分:子网网络地址、子网主机地址。形式以下:bfc
未作子网划分的ip地址:网络地址+主机地址
作子网划分后的ip地址:网络地址+(子网网络地址+子网主机地址)二进制
子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。具体说就是两台计算机各自的IP地址与子网掩码进行“与”运算后,若是得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,能够进行直接的通信。
例如:设IP地址为192.168.10.2,子网掩码为255.255.255.240,那么子网掩码是怎样来区分网络地址和主机地址的呢。
主机地址为:0.0.0.2(将掩码取反,而后与运算)
例如:在A类IP地址中,每一个A类网络可能有16,777,214台主机,它们处于同一广播域。在同一广播域中有这么多主机是不可能的,网络会由于广播通讯而饱和。另外一方面,IP地址资源愈来愈少。为实现更小的广播域,就须要进一步分红更小的网络。划分子网后,经过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
子网划分是经过借用IP地址中若干位主机地址来充当子网的网络地址,从而将原网络划分为若干子网。
划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增长,但每一个子网中的可用主机数逐渐减小。
如C类地址,原有8位主机位,2^8-2即254个主机地址,默认子网掩码255.255.255.0。(全0或全1不可用)
借用1位主机位,产生$2^1$=2个子网,每一个子网有2^7个主机地址;
借用2位主机位,产生$2^2$=4个子网,每一个子网有2^6个主机地址;
……
根据子网ID借用的主机位数,咱们能够计算出划分的子网数、掩码、每一个子网主机数,列表以下:
一、利用子网数来计算
在求子网掩码以前必须先搞清楚要划分的子网数目,以及每一个子网内的所需主机数目。
1)将子网数目转化为二进制来表示
2)取得该二进制的位数,为 N
3)取得该 IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址划分子网的子网掩码。
如欲将C类IP地址192.168.10.0划分红4个子网:
1)4=100
2)该二进制为三位数,N = 3
3)将A类地址的子网掩码255.255.255.0的主机地址前3位置 1,获得子网掩码255.255.255.224。(具体见下图)
二、利用主机数来计算
1)将主机数目转化为二进制来表示
2)若是主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数。
3)将该类IP地址的主机地址位数所有置1,而后从后向前的将N位所有置为 0,即为子网掩码值。
如欲将B类IP地址192.168.10.0划分红若干子网,每一个子网内有主机25台:
1) 25=11001
2)该二进制为十位数,N = 5
3)将该B类地址的子网掩码 255.255.255.0的主机地址所有置 1,获得255.255.255.255,而后再从后向前将后5位置0,即为:11111111.11111111.11111111.11100000,即255.255.252.224。
步骤总结:
1.子网数和主机数均可以计算子网掩码,2.取得子网/主机的二进制位数,3.网络地址置0主机地址置1,4.换成十进制