Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29337155
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2010-06-29 15:11:07

网络基本概念:子网与跨网段

时间:2010-6-29

1.     如何将二进制的值快速转换成十进制的IP值?

我们知道IP32位二进制位组成,每八位一组分成了四组。如果每一组中八位全是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地址快速转换成二进制值?

首先确定我们只有1286432168421这几个数,然后在来确定要转换的十进制数由哪几个数相加能得到:

示例的IP192.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是否在同一个网段?

IP1192.168.0.1

IP2192.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

IP1192.168.0.1        二进制为:11000000.10101000.00000000.000000001

 

 

IP2192.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

IP1192.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地址与子网掩码相加得到相同的网络地址。
  想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类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
  网络标识不一样,即不在同一网段。

阅读(1099) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~