码迷,mamicode.com
首页 > 其他好文 > 详细

IPv4地址

时间:2014-11-27 12:58:15      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:表达方式   ip地址   二进制   网络   十进制   

IPV4表达方式32位的IP地址如果用二进制表示的话是32位组的二进制数,如11111111111111111111111111111111;这样的表示方式相当难记忆,于是就有了一种比较好记忆的方式叫点分十进制,将这个32位组的数分成4个八位组的数字,并且每个八位组都用十进制来表示如255.255.255.255就表示为一个广播地址。

 

IPV4地址分类:IPV4地址分为3类,A类地址的第一个八位组的的第一位永远是0B类地址前两位永远是10C类地址的前三为永远是110,并且规定了A类地址的第一个八位组是网络位,B类地址的前两个八位组是网络位,C类地址的前三个八位组是网络位;具体范围如下:

A类地址:1.255.255.255-126.255.255.255

B类地址:128.255.255.255-191.255.255.255

C类地址:192.255.255.255-223.255.255.255

 

地址掩码:如果要表示一个网络的所有主机地址,可以用网络位+0的主机位来表达,例如10.10.0.0172.16.0.0这两个网段分别属于A类和B类,虽让已经定义了ABC类地址的范围,但是设备如何来区分哪一类是属于A类哪一类属于B类呢?于是就引入了掩码的概念,掩码是一组与IP地址等长的32位数,他规定了他用全1来对应IP地址的网络位,用0来对应IP地址的主机位。

标准的A类地址掩码为255.0.0.0

             B类地址掩码为255.255.0.0

             C类地址掩码为255.255.255.0

 

Note(掩码本身并不放在数据包内,仅仅是在本设备生效,设备通过将自身接口的IP地址与这个掩码进行一个与计算,就能得出自己所在的网段。)

 

问题来了,为什么要引入掩码这个概念呢?设备光通过分析IP的第一个8位组字段不也能知道自己的接口是属于A类还是B类,或者C类嘛?

的确,如果在一个1W台主机的广播网络中部署一个A类地址的话,即使光靠IP字段,就能让设备知道自身处于哪个网段。但是在网络中,即使只有两个节点的网络,我们也需要分配给这个网络一段地址,那我们分配给他什么地址呢?A类、B类、C类?分配哪一个合适呢?显然,分配那一类地址都不合适,无论你分配那一段地址都会造成IP地址的浪费,所以我们如果能够对主网地址在进行划分的话就能解决这个问题,在前面这个例子中,有什么办法可以让A类网络进一步进行划分呢,答案是我们可以对A类地址配置C类地址所使用的掩码,那她就可以变成一网络位为10.0.0C类网络,这样就缩减了A类地址的范围。

 

那有没有办法考使用掩码来仅表示只有2个节点的网络呢?

答案是有,因为掩码表示网络位的部分可以变长,所以如果我们可以将掩码变成11111111.11111111.11111111.11111100来表示,十进制是255.255.255.252

 

不对您的说法不对,如果要表示2个地址的话应该是11111111.11111111.11111111.11111110,这样才代表2个地址。

 

的确,如果从表面看这样的确可以代表两个主机,但是由于IP地址规定了一些保留地址是不会被分配给主机的,如主机位是全0的地址,主机位是全1的地址,所以如果我们要表示只有2个地址的子网的话,就需要考虑以上因素,所以255.255.255.254这个掩码来表示两个主机地址范围是不适合的。

 

问题来了,255.255.254.0这个掩码可以使用吗?为什么?

可以使用,255.255.254.0掩码与一个A类,B,C类网络一起使用的话,仅仅代表存在两个网络,可以正常使用。

 

举例?

两台主机ABA配置192.168.0.1/255.255.255.252,B配置192.168.0.254/255.255.255.0能够互相Ping通嘛?为什么?

答案是不能够互相通信,因为两台主机处于不同网络,有两种情况,分别是A发起PingB发起Ping

B发起Ping的话,先会发送一个ARP查询报文,目的地址是广播地址FFFFFFFFFA能够收到这个广播报文,但是通过将B的地址和A的掩码做与操作后发现不属于同一个网段,所以A不会发送任何报文给B

A发起Ping的话,A首先会检查B的地址在不在自己的网段内,因为254不在自己网段内,所以数据包会发送失败;

 

两台主机ABA配置192.168.0.1/255.255.255.0,B配置192.168.0.254/255.255.0.0能互Ping通嘛?为什么?

答案是能够互相Ping通,因为两端在拿对端的地址和自己的掩码做与操作后,都认为对方和自己是处于同一个网络的,所以能够互相Ping通。


本文出自 “八块排骨加油站” 博客,谢绝转载!

IPv4地址

标签:表达方式   ip地址   二进制   网络   十进制   

原文地址:http://238209.blog.51cto.com/228209/1583095

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!