精通ip地址之ipv4
各位童鞋们,大家好!今天我要给大家介绍的是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地址不同的原因。
写了这么多,手都酸了(由于我的桌子太高,手总是悬着很吃力。。。。。。),所以文章中能省的地方我一切从简,写得不是很詳細,将就着看吧-_-








2的m次方>=4 ,m取3
快捷算法
我记得考计算机三级的时候就有一条题目是将IP地址转换成二进制来写。
写的不错!够详细的~
不知可否与贵站交换个友情链接?
@Alvin.J, 谢谢,友情链接已加。
看到傻眼还没看懂,只好飘过