一文彻底搞懂 IP 地址到底是什么?

一、前言
如果你现在正在看我的这篇位置,那说明你已经连接上了互联网,说到互联网,你一定听说 IP 地址这个概念,你知道 IP 地址是做什么的吗?与之而来的还有公网 IP,私网 IP,你知道有什么区别吗?
二、计算机之间点对点的交流
正常情况下,你和我都有一台电脑,但是一台电脑所能做的事情是有限的,我们可能两台电脑之间为了做更多的事情,我们需要数据交互,我们可以通过 U 盘作为媒介,进行数据交换,但这样效率实在是太慢了,于是,为了提高效率,有人想到了一个好办法,我们在两台电脑之间插上数据线,通过数据线进行数据交互。

有了这根数据线,或者叫网线,这个两台电脑就能进行数据交互了,但是,如果不止有两台电脑呢?有多台电脑的情况下,又该这么牵网线呢?

你发现了,如果每一台机器为了和其他机器通讯,那就得和那台机器建立连接,如果随着机器越来越多,那网线数目会是多么复杂,这肯定是无法接受的
三、交换机
为了解决计算机之间点对点交流的复杂性,我们引入的交换机的概念。

有了交换机之后,由交换机去分发来自每台机器的数据。这时候又有新的问题,在点对点的数据连接上,两台电脑如果想进行数据交互,只需从众多的数据线中找到对应的主机的数据线,但现在都发给交换机了。交换机应该怎么去分发数据呢?
这就像应该没有填清楚具体地址的包裹一样,交换机就像快递公司,你给了快递公司,没给地址,那快递公司就不知道应该把包裹发给谁。快递公司只要有快递的地址就知道该把包裹发那儿,交换机也一样,我们可以为每一台机器分配一个 IP 地址。

有了 IP 地址之后,只需在发送的数据包里面加上对应主机的 IP 地址,那交换机就能根据居体的 IP 地址把数据发送到对应的机器。
四、局域网到广域网
通过交换机,我们可以让连接到交换机的计算机进行数据交流,假如这几台机器是你学校的电脑,你的学校想和隔壁学校进行业务盒子,就需要彼此的电脑也进行数据交流,正好隔壁的电脑也是用的交换机进行数据交流,于是我们只要把两个学校的交换机连接,那两边的电脑就能相互访问了。

通过连接两台交换机,让两边的电脑能数据交流,之后如果还要加更多的局域网,那在把彼此的交换机进行连接

随着局域网的交换机优越来越多,交换机也像之间计算机之间点对点的连接那样复杂,于是在交换机之间又放入新的交换机。

就是这样,交换机越来越多,知道覆盖全世界,你只需进入其中任意一个节点,就能访问到全世界任意一条同样连接到网络的设计,这就构成了广域网。你可以理解为:广域网就是无数的的局域网的结合。
很明显,搭建这些网络肯定都是需要一笔不小的资金,搭建这些网络的公司被称为 ISP 互联网服务供应商,大家所熟悉的移动,电信和联通就是 ISP 供应商,他们通过为用户提高网络赚取费用。
五、IPV4
互联网的每一台机器都是需要一个 IP 地址才能彼此访问的,那首先我们得来聊聊 IP 地址的构成。IP 地址一般说的是 IPV4 得 IP 地址,它是由 32 位构成,那 IP 地址能用的组合就是 2 的 32 次方,大于等于 42.28 亿。

为了方便记忆和输入,将每 8 个二进制分为一组,共 4 组,在转换为 10 进制

同时,还会对 IP 地址进行分类,一些地址作为特殊用途

最后真正可用的地址可能还没有 42 亿个。已知全球一共有 70 多亿的人口,就是不是每个人都会访问互联网,但是有很多人并不止一台设备,一个人可能有多台手机,电脑等等,如果要给每台设备都去分配一个 IP,那这 36 亿的 IP 地址够用吗?完全不够。
六、NAT 网络地址转换
为了解决 IP 不够用的问题我们使用了一项新的技术,NAT 网络地址转换。假如有五台计算机,他们的 IP 地址是 192.168.0.1----192.168.0.5,他们接入了同一台交换机,或者叫路由器,他们接入的这台交换机的广域网 IP 是 6.6.6.6

如果这五台机器要向一台 8.8.8.8 的服务器发送数据,那 NAT 就会把这几台计算机原有的 IP 转换成 6.6.6.6 的 ip 向 8.8.8.8 发送数据,实现 5 台设备共用一个 IP 的效果 。
如果 8.8.8.8 这个交换机下面也挂载了很多设备,那这五台服务器都是按照 8.8.8.8 这个机器发送的,那有怎么发送到 8.8.8.8 下面挂载的具体设备呢?

七、端口映射
为了解决上面的问题,我们引入了一个新的概念,端口映射。我们可以在 IP 地址的后面加上一个端口,如图

比如 192.168.0.1 和 6.6.6.6 的 1000 端口绑定,宁一边的 192.168.0.1 和 8.8.8.8 的 500 端口绑定,这样,如果 6.6.6.6 下挂载的机器想访问 8.8.8.8 下挂载的机器,只需要加上对应的端口就行了。
八、公网 IP 和私有 IP
你如果打开 cmd,输入 ipconfig 查看 IP 地址你会看的 ip 地址是 192.168 开头的,为什么,刚刚提到,ip 地址是不够用的,但为了使大多数的机器都能上网,我们通常是多台机器共用一个公网 ip,你去百度搜索 ip 查询,就能看见你当前设备所挂载的公网 ip 了。现在知道为什么很多 ip 都是 192.168 开头的了吧?因为这是挂载到了一个小的中转设备下的 C 类私有 ip,在这个私类 IP 下依赖转换器的公网 IP 上网。
打个比如,公网 IP 就是你小区的名称,私网 IP 就是你住的楼层单元,假设全国小区名字都不重复,那根据小区名字,就可以找到你的大概位置,这就相当于更具公网 IP 定位到你具体的局域网,但是为了知道你具体位置,那还需要知道你是这个小区几单元几号,小区的几单元几号这玩意儿每个小区都有,这就相当于私网 IP,很多机器的私网 IP 都是重复的。
评论