初识网络协议:什么是IP地址

在windows系统中,我们可以用ipconfig来查看本地IP地址。

这里我们可以看到IP地址是192.168.1.7,可是当我们在浏览器查看自己IP地址的时候,却发现IP地址和上面的不一样:

在这里,101.86.19.217192.168.1.7都是IP地址,只不过前者是公有IP地址,后者是私有IP地址。

那到底什么是IP地址?

IP由网络地址主机地址组成,都是32位二进制,每8位转换成十进制并且插入一个.来提高可读性。

网络地址

网络地址可用来识别设备所在的网络,网络地址位于IP地址的前段。当组织或企业申请IP地址时,所获得的并非IP地址,而是取得一个唯一的、能够识别的网络地址。同一网络上的所有设备,都有相同的网络地址。IP路由的功能是根据IP地址中的网络地址,决定要将IP信息包送至所指明的那个网络。

主机地址

主机地址位于IP地址的后段,可用来识别网络上设备。同一网络上的设备都会有相同的网络地址,而各设备之间则是以主机地址来区别。

由于各个网络的规模大小不一,大型的网络应该使用较短的网络地址,以便能使用较多的主机地址;反之,较小的网络则应该使用较长的网络地址。为了符合不同网络规模的需求,IP在设计时便根据网络地址的长度,设计与划分IP地址。

IP地址分为五类:

A类  
0 网络号(7位) 主机号(24位)
B类   
1 0 网络号(14位) 主机号(16位)
C类    
1 1 0 网络号(21位) 主机号(8位)
D类    
1 1 1 0 多播组号(28位)
E类     
1 1 1 1 0 留待后用(27位)

常见的是A、B、C三类IP地址:

类别IP地址范围最大主机数私有IP地址范围
A 0.0.0.0-127.255.255.255 16777214 10.0.0.0-10.255.255.255
B 128.0.0.0-191.255.255.255 65534 172.16.0.0-172.31.255.255
C 192.0.0.0-223.255.255.255 254 192.168.0.0-192.168.255.255

IP地址中第一个和最后一个主机号不可分配,所以最大主机数为2的主机号次平方减2,以C类为例:最大主机数 = 2^8 - 2 = 256 - 2 = 254。

私有地址主要用于在局域网中进行分配,在 Internet上是无效的。这样可以很好地隔离局域网和 Internet。私有地址在公网上是不能被识别的,必须通过NAT将内部IP地址转换成公网上可用的IP地址,从而实现内部IP地址与外部公网的通信。公有地址是在广域网内使用的地址,但在局域网中同样也可以使用,除了私有地址以外的地址都是公有地址。

不过大多数情况,我们不用A、B、C三类地址,而是用无类型域间选路(CIDR)。所谓CIDR,就是将32位的IP地址一分为二,前面是网络号,后面是主机号。

192.168.1.9/24,这里有一个斜杠,这种地址表示形式就是CIDR。斜杠后面24的意思是32位中,前24位是网络号,后8位是主机号。伴随着CIDR存在的,一个是广播地址,192.168.1.255。如果向这个地址发送消息,那么这个网络(192.168.1)里面的所有机器都可以收到。一个是子网掩码,255.255.255.0。将子网掩码和IP地址进行AND计算,就可以得到网络号。二进制中1和任何数AND都是原来的数,0和任何数AND都是0,比如192 AND 255 = 11000000 AND 11111111 = 11000000 = 192,9 AND 0 = 1001 AND 0 = 0。所以知道IP地址192.168.1.9,知道子网掩码255.255.255.0,就可以知道网络号是192.168.1,主机号是9。

那么我们再来计算一下13.144.163.91/22这个CIDR的第一个地址、子网掩码和广播地址。

22不是8的倍数,只能转换成二进制来看,前16位可以不动,即13.144保持不变。163需要变成10100011,拆分成<101000><11>,网络号就是13.144.<101000>,主机号是<11>.91。第一个地址是13.144.<101000><00>.1,即13.144.160.1。子网掩码是255.255.<111111><00>.0,即255.255.252.0。广播地址为13.144.<101000><11>.255,即13.144.163.255。

 

参考资料:《趣谈网络协议》

posted @ 2020-02-25 23:43  灯无焰  阅读(798)  评论(0编辑  收藏  举报