前言
本文内容通过网络搜索后积累的知识点整理所编撰,并采用通俗易懂的方式进行阐释,为了帮助刚入行的小伙伴快速理解IP地址。
我将定期更新文章,以修正其中的内容,并衷心欢迎读者们提出错误指正和补充建议。
v1.2 版本
IP协议
在了解什么是IP地址之前首先要知道什么是IP协议。它是“网络之间互联的协议”。我们就可以浅显的理解为一套规则,设备必须遵循这套规则才能实现网络的连接。
IP地址
因此,在遵循IP协议的设备中,每个设备都必须拥有一个独特的地址,用以标示其在网络上的位置。这样当你向网络发送信息时,网络能够识别这些数据是由你发送的;相应地,当他人向你发送信息时,网络同样能够准确地将信息传送到你的设备。
IP地址的表示是一个32位的二进制数(本次文章我们先只讨论IPv4的地址),例如:
01110000 01010111 01000001 00111100
但我们通常看到的都是转换成十进制的样子,并且每8位转换后都带个.
来分组,比如上面例子中转换成十进制位后为:
112.87.65.60
查看IP地址的方法
我们想查看自己电脑的IP地址可以通过几种方式
第一种方法
win+R
键,输入ipconfig
指令。在powershell或者cmd中输入也可以。
然后弹出
红色圈起的就是本机的IP地址
第二种方法
对你的网络图标右键
找到“网路和共享中心”,打开
点击你连接的网络
点击“详情信息”
第三种方法
直接百度搜索“IP”
但我们能够发现一个问题,为啥百度出来的IP地址和我们自己本机查看的不一样呢?
本机为:
172.20.10.4
百度的结果为
112.97.61.59
这就要说一下公有IP地址和私有IP地址了
公有IP地址与私有IP地址
首先,让我们回顾一下:IP地址是由32位二进制数构成的,这意味着理论上有2的32次方,即4,294,967,296个可能的地址。然而,并非所有这些地址都可供使用,因为有些地址被预留了特殊用途(我们将在后续讨论这一点)。因此,实际可用的IP地址比想象中要少。
想象一下,如果世界上每个人都用手机上网,且每一个智能手机都需要独立的IP地址,那么在76亿人口中,我们所拥有的IP地址数量显然是远远不够的——更不用说还要考虑电脑等其他联网设备。因此,我们需要一些策略来确保地球上的每一台设备都能连入互联网。
如果同一个楼层、建筑或区域内的设备共享一个IP地址,这无疑会在数量上缓解一些压力。但问题来了:如果一个区域的所有设备都用同一个IP地址,当信息发送到互联网时,如何区分是谁发出的?互联网如何确定要将信息送达区域内的特定个人?就像你的快递地址只写到了“广东省深圳市福田区”,而没有详细到门牌号,快递公司怎么能准确送达呢?
这时候,拥有该IP地址的区域需要一套内部管理机制。以深圳市光明小区为例,假设它拥有一个公用IP地址。小区可以为每户居民分配私有IP地址,就像每户人家的门牌号一样,比如“A幢7楼701房”。即使邻近的黑暗小区也有一个相同的私有IP地址系统,可以出现同样的“A幢7楼701房”。
于是,小区居民的快递地址可以是:
“广东省深圳市福田区XX街道光明小区 A幢7楼701房”
这样一来,快递员会将快递送到光明小区,并由小区内的快递站贴心地根据“门牌号”送到你手上。这里的小区地址相当于公有IP,提供接收和发送快递的标识,而“A幢7楼701房”则相当于私有IP,小区负责向你投递快递。
因此,你在百度上搜索到的IP地址是你的公用IP,设备上显示的则是你的私有IP。这个对比就像是:
广东省深圳市福田区XX街道光明小区 | A幢7楼701房 |
---|---|
112.97.61.59 | 172.20.10.4 |
简而言之,公有IP是独一无二的,但私有IP可以不是唯一的——你和隔壁小区的朋友可能会有相同的私有IP,比如“192.168.1.4”。
了解了公有IP和私有IP的区别,我们知道能够连网的只有公有IP,而私有IP则需要依赖公有IP来实现联网。
IP地址的分类
在了解IP地址的分类之前,我们需要先知道一个网络请求是怎么传达到目的地的,方便我们对IP地址的分类有更好的理解。
网络路由传输流程简化版
以我们寄收快递的例子为例,这回快递的寄出地址和收货地址位于同一座城市的不同区域。
寄件地址:“广东省深圳市福田区XX街道光明小区 A幢7楼701房”
收件地址:“广东省深圳市南山区XX街道奥特曼小区 A幢2楼201房”
当我们在光明小区的快递站寄出快递后,它首先被送往福田区的快递分站。在那里,工作人员查询区域内的送货地址目录,但找不到匹配项,于是快递接着被转发至深圳市的总快递枢纽。
到达总站后,工作人员再次查阅深圳市的送货地址目录,这次他们发现地址实际上位于南山区的范围内。于是,快递被发往南山区的分站,从那里,经过逐级下放,最终准确无误地抵达收件人手中。
这整个快递寄送和接收的过程,实际上是网络信息传输流程的一个极其简化版。在此例中,快递分站和总站就相当于具有层级结构的路由器,而每个站点对应的“可送达地址目录”则类似于路由表。
换句话说,路由器中的路由表记录着下层路由器的公有IP地址。信息传送的过程涉及目标IP地址与路由表的核对:若不在当前层级,则继续向上级路由器发送;每个路由器都有一个分配给它的公有IP地址。
IP地址过去是如何分类的
在很久之前,人们想到,如果路由器中的路由表存放的是全球所有IP的地址,那每次信息经过路由器的时候有多难找表啊,效率太低下,搭建互联网的成本也增高。不如把所有的IP地址做分类,就像把一个国家分成很多个省市区一样,每个快递站对应管理它下面的可送达地址即可。于是,IP地址的分类就出来了。
我们可以看到一个IP地址被分为网络号和主机号,然后又根据网络号的占位数来区分A-C类,为啥要这样分?拿A类地址举例。
一个A类地址,如图前8位是网络号,后26位为主机号。网络号还规定第一位必定是0,也就是网络号的范围为:0000 0000-0111 1111
转成十进制 0-127
但因为00000000和后面的主机号组成的是网络地址,01111111和后面的主机号组成的是广播地址,所以除去这两个一头一尾,网络号的范围就为 1-126 。(ps:1是给网关的比如路由器)
也就是A类的IP会长这样:1-126.xxx.xxx.xxx,然后每个网络号下的主机号有16,000,000个组合。例如126.12.3.1这个地址,被分类成了全球IP地址下的A类下的126网络号下的主机号为12.3.1的IP地址。B,C类同理。
在图表中我们可以看到,A类第一位被强制为0,B类前两位被强制为10,C类被强制为110,博主个人认为这样的强制是能让人快速的知道一个IP地址属于哪类。你看,由于被强制,所以每一类的地址前八位被划分了范围:
- A类:1-126
- B类:128-191
- C类:192-233
- …
所以,我们只需要通过IP地址的第一组数值就能快速的判断是属于哪一类,然后就可以知道前多少位是网络号,后多少位是主机号。
IP地址有了分类以后,路由器的路由表就可以做的很小了。
过去的分类带来的问题
通过分析A到C类的网络号与主机号之间的比率,我们可以看到A类地址的网络号数量很少,但可以拥有极多的主机号,从而非常适合于那些极大规模的企业或官方机构。这些机构尽管本身数量有限,但其内部的设备需求却十分庞大。然而,即便这样,为单一机构分配完整的A类IP地址后,拥有的1600万个IP地址在很多情况下也显得过剩。
B类地址则为中等规模的企业和政府机构保留,拥有更多的网络号,能够提供16384个,而每个网络号下的主机号同样多达65534个,这同样存在浪费的问题。
C类地址主要分配给小型组织,因为这类组织的数量最多,对IP地址的需求相对较小。
在过去,人们制定A到E类划分IP地址的规则是基于当时对未来终端设备数量的预估相对较低的背景。
当然,依照今日的标准来看,这样的思路显然是过于简单和不切实际的。虽然按A到E类进行划分本身是合理的,但随着现代需求的增长,网络号与主机号的原始分配方法显然已无法满足需求。
鉴于原来的分配方式既有资源浪费的问题,又不能满足不断增长的需求,人们开始寻找新的解决方案。因此,后来便引入了子网掩码这一概念。
欢迎继续看下一章:【网络基础】通俗易懂的搞明白什么是子网掩码(大白话版)