全部博文(2065)
分类: 系统运维
2010-06-29 15:11:07
网络基本概念:子网与跨网段
时间:
1. 如何将二进制的值快速转换成十进制的IP值?
我们知道IP由32位二进制位组成,每八位一组分成了四组。如果每一组中八位全是1转换成十进制则为255。我们可以取出其中的一组来看。
Q1.如何将二进制的值转换成十进制?
11010010.11100101.00101110.00011011
排列格式为:
128 64 32 16 8 4 2 1
以11010010 为例
1 1 0 1 0 0 1 0
128 64 32 16 8 4 2 1
之和为:128+64+16+2=210
在实际转换过程中一般都是十进制的IP转换为二进制的情况最多,同样我们可以例用这个对应关第反过来得到二进制数。
这样我们就引入了第二个问题。如何将十进制的IP地址快速转换成二进制呢?
2. 如何将十进制的IP地址快速转换成二进制值?
首先确定我们只有128、64、32、16、8、4、2、1这几个数,然后在来确定要转换的十进制数由哪几个数相加能得到:
示例的IP:192.168.100.5
第一步:也是一样先排好序
128 64 32 16 8 4 2 1
来看192如何给它值
128 64 32 16 8 4 2 1
1 1 0 0 0 0 0 0
再看168
128 64 32 16 8 4 2 1
1 0 1 0 1 0 0 0
再看100
128 64 32 16 8 4 2 1
0 1 1 0 0 1 0 0
再看5
128 64 32 16 8 4 2 1
0 0 0 0 0 1 0 1
所以结论就是:11000000.
10101000. 01100100. 00000101
结论:掌握将十进制的IP快速转换成二进制能够快速做二进制数据转换操作。对子网运算有帮助的!
三、如何判断两个IP是否在同一个网段?
IP1:192.168.0.1
IP2:192.168.1.5
它们的子网掩码为:255.255.255.0
IP1:作二进制运算之后
128 64 32 16 8 4 2 1
1 1 0 0 0 0 0 0 192
1 0 1 0 1 0 0 0 168
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1
IP1:192.168.0.1 二进制为:11000000.10101000.00000000.000000001
IP2:192.168.1.5
128 64 32 16 8 4 2 1
1 1 0 0 0 0 0 0 192
1 0 1 0 1 0 0 0 168
0 0 0 0 0 0 0 1 1
0 0 0 0 0 1 0 1 5
IP1:192.168.1.5 二进制为:11000000.10101000.00000001.000000101
255.255.255.0
128 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1 255
1 1 1 1 1 1 1 1 255
1 1 1 1 1 1 1 1 255
0 0 0 0 0 0 0 0 0
255.255.255.0 二进制为:11111111. 11111111. 11111111.00000000
IP1作一次二进制运算结果为:
11000000.10101000.00000000.000000001
11111111.11111111.11111111.00000000
11000000.10101000.00000000.00000000
IP2作一次二进制运算结果为:
11000000.10101000.00000001.000000101
11111111.11111111.11111111.00000000
11000000.10101000.00000001.00000000
发现:这两个IP是分属于不同的子网的!
那如果都是子网掩码为:255.255.0.0
最终的值均为:11000000.10101000.00000000.00000000
所以是属于同一个子网段内的。
有网友可能会问,既然IP地址分为5类,而且每类IP地址都有各自的范围。那么通过IP地址的值,不就可以知道哪几位是网络地址,哪几位是主机地址了吗? 说的没错,确实这样。但这是在理想的情况下。前边我们也提到过,C类网中,每个网络只能有254台主机,对于一个比较大的单位和组织来说,这254台主机 是远远不够的。那我们就希望能够将连续的若干个C类网,合并成一个较大的网络,在互联网上做为一个单独的网络通告。与此相反,一些机构获得了B类网,甚至 A类网址,为了便于管理,或是出于性能的考虑(如果一个网段内主机数量过多,会使网络运行效率大幅下降。),需要将网络细化。这两种情况(组给小网络和细
化大网络)都需要改变子网掩码的位数,使其不同于标准分类中的掩码长度。所以,仅凭IP地址来判断其是否属于一个网段,是不正确的。
PS:依据子网掩码能够在C类网段开拓更多可用IP使用
想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。
算法只要把IP和子网掩码的每位数AND就可以了。
AND方法:0和1=0 0和0=0 1和1=1
如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位
IP 11000000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
得出AND结果 11000000.10101000.00000000.00000000
转换为十进制192.168.0.0,这就是网络标识,
再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP AND
得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1,
这0.0.0.1就是主机标识。要想在同一网段,必需做到网络标识一样。
我们再来看看这个改为默认子网掩码的B类IP
如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗?
先将这些转换成二进制
188.188.0.111 10111100.10111100.00000000.01101111
188.188.5.222 10111100.10111100.00000101.11011110
255.255.254.0 11111111.11111111.11111110.00000000
分别AND,得
10111100.10111100.00000000.00000000
10111100.10111100.00000100.00000000
网络标识不一样,即不在同一网段。