IP地址算法利用子网数来计算.docx
《IP地址算法利用子网数来计算.docx》由会员分享,可在线阅读,更多相关《IP地址算法利用子网数来计算.docx(10页珍藏版)》请在冰豆网上搜索。
![IP地址算法利用子网数来计算.docx](https://file1.bdocx.com/fileroot1/2023-1/7/b4239392-fd83-401d-8120-71150bbb73b0/b4239392-fd83-401d-8120-71150bbb73b01.gif)
IP地址算法利用子网数来计算
子网和子网掩码的作用
·1.子网的作用
使用子网是为了减少IP的浪费。
因为随着互联网的发展,越来越多的网络产生,有的网络多则几百台,有的只有区区几台,这样就浪费了很多IP地址,所以要划分子网。
·2.子网掩码的作用
通过IP地址的二进制与子网掩码的二进制进行与运算,确定某个设备的网络地址和主机号,也就是说通过子网掩码分辨一个网络的网络部分和主机部分。
子网掩码一旦设置,网络地址和主机地址就固定了。
子网一个最显著的特征就是具有子网掩码。
与IP地址相同,子网掩码的长度也是32位,也可以使用十进制的形式。
例如,为二进制形式的子网掩码:
1111.1111.1111.0000,采用十进制的形式为:
255.255.255.0。
作用
子网掩码是一个32位地址,是与IP地址结合使用的一种技术。
它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
二是用于将一个大的IP网络划分为若干小的子网络。
确定子网掩码数
用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。
在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。
定义子网掩码的步骤为:
A、确定哪些组地址归我们使用。
比如我们申请到的网络号为“210.73.124.89”,该网络地址为C类IP地址,网络标识为“210.73.124”,主机标识为“89”。
B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。
比如我们现在需要12个子网,将来可能需要16个。
用第四个字节的前四位确定子网掩码。
前四位都置为“1”(即把第四字节的最后四位作为主机位,其实在这里有个简单的规律,非网络位的前几位置1原网络就被分为2的几次方个网络,这样原来网络就被分成了2的4次方16个子网),即第四个字节为“1100”,这个数我们暂且称作新的二进制子网掩码。
C、把对应初始网络的各个位都置为“1”,即前三个字节都置为“1”,第四个字节后四位置为“0”,则子网掩码的间断二进制形式为:
“1111.1111.1111.1100”
D、把这个数转化为间断十进制形式为:
“255.255.255.240”
这个数为该网络的子网掩码。
·1、利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
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,得到255.255.248.0
即为划分成27个子网的B类IP地址168.195.0.0的子网掩码。
·2、利用主机数来计算
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=101100
2)该二进制为十位数,N=10
3)将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255
然后再从后向前将后10位置0,即为:
1111.1111.11100.0000
即255.255.252.0。
这就是该欲划分成主机为700台的B类IP地址168.195.0.0的子网掩码。
IP掩码的标注
·
A、无子网的标注法
对无子网的IP地址,可写成主机号为0的掩码。
如IP地址210.73.140.5,掩码为255.255.255.0,也可以缺省掩码,只写IP地址。
·
B、有子网的标注法
有子网时,一定要二者配对出现。
以C类地址为例。
(以下一段没有指定掩码为27位,在掩码为27位的情况下才成立~~)
1.IP地址中的前3个字节表示网络号,后一个字节既表明子网号,又说明主机号,还说明两个IP地址是否属于同一个网段。
如果属于同一网络区间,这两个地址间的信息交换就不通过路由器。
如果不属同一网络区间,也就是子网号不同,两个地址的信息交换就要通过路由器进行。
例如:
对于IP地址为210.73.140.5的主机来说,其主机标识为0001,对于IP地址为210.73.140.16的主机来说它的主机标识为000100,以上两个主机标识的前面三位全是000,说明这两个IP地址在同一个网络区域中,这两台主机在交换信息时不需要通过路由器进行。
210.73.60.1的主机标识为00001,
210.73.60.252的主机标识为11100,这两个主机标识的前面三位000与111不同,说明二者在不同的网络区域,要交换信息需要通过路由器。
其子网上主机号各为1和252。
2.掩码的功用是说明有子网和有几个子网,但子网数只能表示为一个范围,不能确切讲具体几个子网,掩码不说明具体子网号,有子网的掩码格式(对C类地址)。
表示方法
子网掩码通
常有以下2种格式的表示方法:
1.通过与IP地址格式相同的点分十进制表示
如:
255.0.0.0或255.255.255.128
2.在IP地址后加上"/"符号以及1-32的数字,其中1-32的数字表示子网掩码中网络标识位的长度如:
的子网掩码也可以表示为255.255.255.0
子网掩码和ip地址的关系
以下均为C类网
子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。
就这么简单。
运算示例
运算演示之一:
aa
IP地址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。
)
转化为二进制进行运算:
IP地址11000.101000.0000.00001
子网掩码1111.1111.1111.0000
AND运算
11000.101000.0000.0000
转化为十进制后为:
192.168.0.0
运算演示之二:
IP地址192.168.0.254
子网掩码255.255.255.0
AND运算
转化为二进制进行运算:
IP地址11000.101000.0000.11110
子网掩码1111.1111.1111.0000
AND运算
11000.101000.0000.0000
转化为十进制后为:
192.168.0.0
运算演示之三:
IP地址192.168.0.4
子网掩码255.255.255.0
AND运算
转化为二进制进行运算:
IP地址11000.101000.0000.000100
子网掩码1111.1111.1111.0000
AND运算
11000.101000.0000.0000
转化为十进制后为:
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=二进制100000
2.IP码要和子网掩码进行AND运算
3.
IP地址11000.101000.1*******.********
子网掩码1111.1111.10000.0000
AND运算
11000.101000.10000.0000
转化为十进制后为:
192.168.128.0
4.可知我们内部网可用的IP地址为:
11000.101000.10000.0000到
11000.101000.1111.1111
(也可以是:
11000.101000.0000.0000到11000.101000.01111.1111)
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(11000.101000.11000.0000)也允许,除掉全0全1,结果为2^15-2=32766,上面的落了好多地址
9.看看的结果是否正确
(1)、设定IP地址为192.168.128.1
Ping192.168.129.233通过测试
访问http:
//192.168.129.233可以显示出主页
(2)、设定IP地址为192.168.255.254
Ping192.168.255.254通过测试
访问http:
//192.168.255.254可以显示出主页
10.结论
以上证明我们的结论是对的。
现在你就可以看你的子网中能有多少台机器了
255.255.255.128
分解:
1111.1111.1111.10000
所以你的内部网络的ip地址只能是
xxxx.xxxx.xxxx.0?
?
?
?
?
?
?
到xxxx.xxxx.xxxx.01111
子网掩码
网间网技术
子网TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当
初的设计者们始料未及的。
网间网规模的迅速扩展对IP地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负担:
第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。
其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网络负担。
因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。
仔细分析发现,网间网规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在:
如何减少网络地址。
于是IP网络地址的多重复用技术应运而生。
通过复用技术,使若干物理网络共享同一IP网络地址,无疑将减少网络地址数。
子网编址技术
网间网部分物理网络主机|←网间网部分→|←————本地部分—————→|
|←物理网络→|←—主机部分——→|
其中“物理网络”用于标识同一IP网络地址下的不同物理网络即是“子网”。
(2)子网掩码IP协议标准规定:
每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。
例如位模式:
为了使用的方便,常常使用“点分整数表示法”来表示一个IP地址和子网掩码,例如c类地址子网掩码(1111111111110000)为:
255.255.255.0IP协议关于子网掩码的定义提供一种有趣的灵活性,允许子网掩码中的“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转换为二进制1100000100111000001101
②将子网掩码
255.255.
255.0转换为二进制1111111111110000
③将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分
1100000100111000001101AND1111111111110000
11000001001110000000结果为192.9.200.0,即网络号为192.9.200.0。
④将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分001101AND0000000000001111结果为0000000001转化为十进制得到0.0.0.13,即主机号为13。
分类
子网掩码一共分为两类。
一类是缺省(自动生成)子网掩码,一类是自定义子网掩码。
缺省子网掩码即未划分子网,对应的网络号的位都置1,主机号都置0。
A类网络缺省子网掩码:
255.0.0.0
B类网络缺省子网掩码:
255.255.0.0
C类网络缺省子网掩码:
255.255.255.0
自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上我们可以认为是将主机号分为两个部分:
子网号、子网主机号。
形式如下:
未做子网划分的ip地址:
网络号+主机号
做子网划分后的ip地址:
网络号+子网号+子网主机号
也就是说ip地址在化分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。
子网掩码是32位二进制数,它的子网主机标识用部分为全“0”。
利用子网掩码可以判断两台主机是否中同一子网中。
若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。
可变长子网掩码
可变长子网掩码(VLSM)的作用:
节约IP地址的空间;减少路由表大小。
使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIPv2,OSPF,EIGRP和BGP.关于更多的VLSM知识,可以去Google搜索
划分捷径
·1.你所选择的子网掩码将会产生多少个子网
2的y次方-2(y代表主机位,即2进制为0的部分)
·3.有效子网是
有效子网号=256-
10进制的子网掩码(结果叫做blocksize或basenumber)
·4.每个子网的广播地址是
广播地址=下个子网号-1
·5.每个子网的有效主机分别是
忽略子网内全为0和全为1的地址剩下的就是有效主机地址。
最后有效1个主