Skip to content

精通ip地址之ipv4

2009 九月 22
by 荒野无灯

各位童鞋们,大家好!今天我要给大家介绍的是ipv4地址。高手请略过,见笑啦-_-
ip地址有很多种表示方式,比如最常用的是用十进制加上点号表示(如192.168.1.2)。ipv4现在还是主流,下面我就讲下ipv4。
ipv4下,ip地址是一个32位的数,而平常我们看到的ip都是如192.168.1.2之类的,这样看不出它是32位,其实以点号为分隔符,把每一位转换为二进制,前面不足八位的补0就是了,比如最常用的本地轮回地址

127.0.0.1

用二进制表示就是:

01111111000000000000000000000001

再把它转换为十进制数即是

2130706433

下面我们ping 一下这个数看,有什么发现?

1
2
3
4
5
6
7
8
9
10
ping -c4 2130706433
PING 2130706433 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.031 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.033 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.025 ms

--- 2130706433 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.025/0.029/0.033/0.003 ms

以上是我在linux下ping 的,如果你在windows下,可以用

1
ping  2130706433

来测试。

ip地址=网络号(网络地址)+主机号
网络地址其实就是网段地址,它不能作为ip地址来使用,只能用来表示网段信息。(如192.168.1.0)
主机号全为1的地址称为广播地址(如192.168.1.255)
特殊地址:

0.0.0.0

表示本网段,也叫做任意网段或未知网络,它主要用在DHCP請求和默认路由上,既能作为源地址,又能作为目标地址使用。

255.255.255.255

被称为本地广播地址,能在本网段进行信息扩散。
本地环回地址:

127.0.0.1-127.255.255.254

默认环回地址为

127.0.0.1

,且对应wins或DNS名称被自动解析为

localhost ,它主要用来测试机器TCIP/IP协议是否存在问题。

一,分类ip地址

A类地址(1.0.0.1-127.255.255.254)中有一段私有ip地址:

10.0.0.1-10.255.255.254

可简写为10.0.0.0/8 (为什么这样写,不解释,先)。
B类地址(128.0.0.1-191.255.255.254)私有ip地址范围:

172.16.0.1-172.31.255.254

B类地址中还有一段特殊私有ip地址:当DHCP服务器出现问题导致无法将DHCP池中的IP地址分配给客户端时,就得使用这个特殊的保留的B类私有IP,其有效范围为:

169.254.0.1-169.254.255.254

C类ip地址(192.0.0.1-223.255.255.254)中私有ip地址范围为:

192.168.0.1-192.168.255.254


二,基于分类的ip地址的子网划分

1,
这是在分类ip地址的情况下进行子网划分,即将主机号再划分为子网号和主机号。
(注:网络号没变,只是向主机号借位来作为子网号)
例:某单位B类IP 为172.16.0.0 ,现有3个部门,要求3个部门用不同的ip地址段,这可以通过进行子网划分来实现。如:
172.16.1.0
172.16.2.0
172.16.3.0
这是一种比较简单的情况,这里我们向主机号(原来有16位)借8位过来作为子网号。

2,子网掩码
子网掩码和ip地址进行逐比特(bit)”与”运算,結果就是网络地址。
子网掩码位对应的网络号和子网号均为1 ,主机号则取0 。
如上例中的172.16.2.8 ,它的子网掩码为255.255.255.0
两者进行“与“运算即得网络地址为172.16.2.0

默认子网掩码:只考虑网络号而不考虑子网号,所以
A类: 255.0.0.0
B类:255.255.0.0
C类:255.255.255.0
D、E类不考虑这个。

三,VLSM 与CIDR (可变长子网掩码和无类域间路由)

1,无类ip地址:即不再使用A 、B、C类的划分方法,但D 、E类仍作为分类ip使用。
无类ip地址使用VLSM (Variable length Subnet Mask)技术来对IP地址进行划分。
CIDR(Classless Inter-Domain Routing ) 有三种表示法:
下面以192.168.1.0为例,若前20位表示主机号位数:

(1),X表示法:
11000000.10101000.000xxxxxxxxxxxx
(2),星号表示法:只用一个星号来表示主机号位数
11000000.10101000.0000*
(3),斜线表示法:斜线后数字表示网络号位数,这也种表示法是最常用的。
192.168.1.0/20 (这里要写成十进制形式)

2,路由聚合
路由聚合又叫构成超网。
路由聚合其实就是把多个路由合并成一个路由,这样可以减轻路由表的开销。
构成超网则表示一个网络地址包含了多个网络地址。
例如:前10位表示网络号,后22位表示主机号,

AAAAAAAA.AABBBBBB.BBBBBBBB.BBBBBBBB

现在我们来算一下它包含的分类ip地址数:
B类网络地址数为:2^6=64个,C类网络数为2^14=16384个
可看出这个无类网络地址包含了64个B类网络和16384个C类网络,而其中64个B类网络中已经包含了16384个C类网络,这就是路由聚合。

3,网段划分
好处:方便管理、分隔广播域防止ARP攻击、防止广播风暴、有效利用IP地址。
例1 :某主机IP表示为 172.16.1.12/20
它的子网掩码是? 很容易可以知道是:255.255.240.0
该网段能容纳的主机数是?
2^12-2=4094台 (为什么要减2 ?自己想一下)

例2:有4个网络地址:
172.168.193.0/24
172.168.194.0/24
172.168.196.0/24
172.168.198.0/24
求进行路由聚合后的网络地址?
方法:
用“最长前缀匹配法”
由于前两个字节(Byte)完全相同,因此只需把第3个字节划为二进制形式:

11000001 (193)
11000010 (194)
11000100 (196)
11000110 (198)

现在对比下,前5位完全相同,这样后3位就不再是网络号,而是主机号了。
所以聚合后网络地址为:

172.168.192.0/21

PS:
关于ADSL虚拟拨号获得的子网掩码为

255.255.255.255

如果子网掩码类似于255.255.255.248这样的,则我们可以对获得的IP进行网段划分,这样我们就可以得到多个IP地址,显然这样电信就会吃亏,所以子网掩码就只能为255.255.255.255
虚拟拨号:采用拨号池(类似DHCP池),用户每次拨号就从拨号池中选出一个IP给用户,这也是ADSL拨号上网每次IP地址不同的原因。

写了这么多,手都酸了(由于我的桌子太高,手总是悬着很吃力。。。。。。),所以文章中能省的地方我一切从简,写得不是很詳細,将就着看吧-_-

喜欢这篇文章吗?

请订阅本站 RSS feed填写您的邮件地址,订阅我们的精彩内容:,欢迎点击这里捐赠以支持荒野无灯转播到腾讯微博 转播到腾讯微博

作者:荒野无灯
出处:Hacklog【Hacklog】

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自Hacklog【荒野无灯weblog】

本文链接: http://ihacklog.com/?p=2553

5 Responses Post a comment
  1. 七月 16, 2010

    2的m次方>=4 ,m取3
    快捷算法 :mrgreen:

  2. 九月 28, 2009

    我记得考计算机三级的时候就有一条题目是将IP地址转换成二进制来写。

  3. 九月 23, 2009

    写的不错!够详细的~
    不知可否与贵站交换个友情链接?

  4. 九月 22, 2009

    看到傻眼还没看懂,只好飘过

Leave a Reply

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <q cite=""> <strong>

 :wink:  :-|  :-x  :twisted:  :)  8-O  :(  :roll:  :-P  :oops:  :-o  :mrgreen:  :lol:  :idea:  :-D  :evil:  :cry:  8)  :arrow:  :-?  :?:  :!:

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS