IP 地址来了
- 其实数字虚拟地址就是 IP 地址
- 类比:网购发货的时候,发送的物品就是数据,收件人地址可以理解为 IP 地址
局域网
每个电脑都拥有自己的 IP 以后,加上连接的交换机,就能组成一个小的可以用来交换数据的网络,这就是局域网
新加入一个局域网
需要把两个局域网的交换机连接起来,组成一个更大的局域网
随着时间的推移,可能需要连接的局域网也会越来越大,那么局域网之间又会通过一个新的交换机来连接
广域网
- 上面有说到,随着局域网越来越多,这个网络也会变得越来越大,用户只需要连接一个交互机可能就能访问世界上绝大多数的设备,这就是广域网
- 广域网就是一个设备数量超级庞大的局域网
- 想要把世界各地的设备连接起来并不容易
- 需要在多个重要城市架设骨干服务器,还要在不同区域布置分支服务器,然后让大家接入
- 这需要大量的资金成本、后期维护
- 做这种吃力不讨好活的就是 ISP(互联网服务提供商),在中国有联通、电信、移动
- 正需要资金成本和维护成本,所以你的手机流量和家用宽带都是计费的
IPV 4
- 由 32 位二进制数构成
- 理论上,可以提供 2^32 约 42.28 亿 个地址
转成十进制
为了方便记忆和输入,每 8 个二进制数划分为一组,然后转换为十进制数,变成常用的 4 个 0-255 数字
IP 地址的分类
一些地址有特殊的用途,所以被保留下来不允许被大众使用,最后可能真正可用的 IP 地址只有 36.74 亿个
全球 IPV4 地址不够用
现在全球有75亿个人,假设只有四分之一的人用互联网,那么也有 18 亿人
IPV4 已经枯竭
- 2011 年底,打包分配的 IPV4 地址已经枯竭了
- 2020 年底,亚太互联网信息中心将发布不出来一个新的地址
- 除非有人返还旧的地址
NAT 网络地址转换
为了解决 IPV4 地址枯竭的问题,引入了 NAT 地址转换
上图
- 五台电脑接入一个路由器
- 路由器接入广域网的 IP 是 6.6.6.6
- 对于家用来说,路由器由于是接入广域网并执行 NAT 的,所以路由器就是网关
传输场景,引入 NAT
- 假设电脑 A 需要访问外部的 8.8.8.8 设备
- 那么就会将数据包发送给路由器
- 路由器发现这个数据包是要发送给 8.8.8.8 的,就会将 IP 映射成自己的 IP 6.6.6.6,并记录成映射表
- 最后,8.8.8.8 设备接收到的数据包的 IP 是 6.6.6.6
- 这样五台电脑发送出去的数据包,都能通过路由器转换为 6.6.6.6,以这个 IP 去传输数据
- 就能实现五台设备共用一个 IP
接收方也可以作为网关
这样它下面就会连接了很多台设备,那它们也可以共用 8.8.8.8 这个 IP
存在问题
- 左侧五台设备都是通过 6.6.6.6 来发送数据包的,但是右侧接收方并不知道发送过来的数据包应该给哪台设备接收
- 而 8.8.8.8 的下行数据发送到 6.6.6.6 之后,也不知道给五台设备中的哪一台来接收
端口映射
为了解决上面存在的问题,引入了端口映射
具体表现方式
- 其实就是在 IP 后面加端口 6.6.6.6:8080
- 网关就会以不同的端口去和外网交互,然后把这些端口映射给局域网内的各个设备
- 传输数据包的时候,除了 IP 地址需要映射为网关 IP 之外,还需要将端口映射为网关的端口
- 这样就能实现共用一个 IP 还能精准传送数据了(解决上面存在的问题),以实现 PAT 多对一映射了
其实就是因为 NAT 和端口映射的存在,才让 IPV4 即使在不够用的情况下还能坚持这么久
公有 IP 和私有 IP
- 前面有说到 A、B、C、D、E 五台设备共同连接一个路由器,那么这五个设备就是寄宿在 6.6.6.6 网关下的私有 IP
- 网关所拥有的的可以直接用来在广域网上交互数据的 6.6.6.6 就是公网IP
类比的栗子
- 比如你居住在一个名叫月亮湾的小区,具体地址是15号楼二单元101
- 假设全球只有一个小区叫这个名,那么只要别人提起月亮湾就知道是哪个月亮湾了,这种能直接通过地址访问,可以拿到大的层面上直接使用的地址就是公网 IP
- 而小区内部其实就是局域网,你只要在小区内说是15号楼二单元101的,别人就知道你在哪
- 假设隔壁小区也有15号楼二单元101,隔壁的隔壁小区也有15号楼二单元101,寄快递的时候只写15号楼二单元101不写月亮湾,那么快递肯定不知道寄去哪里
- 像这种只能在小区内(局域网内)使用的 IP 就是私有 IP,它只有连同一个局域网的其他设备才会知道
IPV 6
ipv4 和 ipv6 是两个完全不同的两个协议
- 它们之间不能直接互通,必须要借助其他的设备去做转换和映射
- 导致在短时间内,IPV6 替换 IPV4 是很困难的