3

一起来聊聊 IP 地址、局域网、广域网、IPV4 和 IPV6

 3 years ago
source link: https://www.cnblogs.com/poloyy/p/14926631.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
  • 谁都知道 IP 地址是干嘛的,但是它出现的前因后果你真的知道吗?
  • 我觉得很有必要重新复习下计算机网络基础知识,实在太太太重要了
  • 本篇文章素材均来自:https://www.bilibili.com/video/BV1DD4y127r4;这个 UP 感觉还是很不错
  • by the way:有时候学习一个知识点,官网的确是最准确的, 但一定不是通俗易懂的,借助大神做的一些动态图和类比场景,能更快吸收一个知识点
  • 最佳学习方式:看一遍官方,看一遍别人做的学习视频,再看一遍手动记录干货,形成自己的知识体系

为什么会出现 IP 地址

假设只有一台电脑

  • 所有数据就会存储在这台电脑的硬盘上,和其他电脑本身不存在任何干系
  • 但一台电脑能做的事情是非常少的,很可能会出现多台电脑协同工作

假设有两台电脑

  • 两台电脑协同工作,那肯定会出现数据交互的需求,那就需要用中间介质(比如 U 盘)来交换
  • 这种方式既不是数据实时传输,也非常耗时耗力

线缆(网线)的出现

两台电脑之间可以通过网线来实时传输数据

但假设有很多台电脑,那每两台电脑间都需要一条网线来连接,随着设备数量上升,需要的接口数量和线材数量也会越来越多,这是十分不合理的

交换机的出现

  • 电脑和电脑之间的连接不再是点对点连接
  • 而是全部都接入交换机,由交换机去分发来自不同设备的数据

交换机的类型

  • 很多个接口的常规网络交换机
  • 家里的路由器

交换机详细介绍等后面的文章吧

非点对点连接的问题

  • 点对点连接时,两台电脑交互数据的是通过对应接口的,所以数据一定会传送到目标主机上
  • 但是接入交换机之后,就不清楚数据发送给哪个目标主机了
  • 类比:网购发货,没有填清楚收件人的地址,所以无法精准送货

数字虚拟地址

  • 为了解决上述非点对点连接的问题,诞生了数字虚拟地址
  • 电脑发送数据的时候,带上这个数字虚拟地址,就能知道目标主机是谁了
  • 栗子:182.168.0.1 主机要发送数据给 192.168.0.3 主机,就在数据的抬头(包头)上加上 192.168.0.1,这样数据到达交换机后就能准确发送给对应目标主机了
  • 此处采用的交换机是三层交换机,具有 DHCP 分配 IP 的功能
  • MAC 地址为物理层面设备识别
  • 数据传输依赖 TCP/UDP 

IP 地址来了

  • 其实数字虚拟地址就是 IP 地址
  • 类比:网购发货的时候,发送的物品就是数据,收件人地址可以理解为 IP 地址

每个电脑都拥有自己的 IP 以后,加上连接的交换机,就能组成一个小的可以用来交换数据的网络,这就是局域网

新加入一个局域网

需要把两个局域网的交换机连接起来,组成一个更大的局域网 

随着时间的推移,可能需要连接的局域网也会越来越大,那么局域网之间又会通过一个新的交换机来连接

  • 上面有说到,随着局域网越来越多,这个网络也会变得越来越大,用户只需要连接一个交互机可能就能访问世界上绝大多数的设备,这就是广域网
  • 广域网就是一个设备数量超级庞大的局域网
  • 想要把世界各地的设备连接起来并不容易
  • 需要在多个重要城市架设骨干服务器,还要在不同区域布置分支服务器,然后让大家接入
  • 这需要大量的资金成本、后期维护
  • 做这种吃力不讨好活的就是 ISP(互联网服务提供商),在中国有联通、电信、移动
  • 正需要资金成本和维护成本,所以你的手机流量和家用宽带都是计费的
  • 由 32 位二进制数构成
  • 理论上,可以提供 2^32 约 42.28 亿 个地址

转成十进制

为了方便记忆和输入,每 8 个二进制数划分为一组,然后转换为十进制数,变成常用的 4 个 0-255 数字

IP 地址的分类

一些地址有特殊的用途,所以被保留下来不允许被大众使用,最后可能真正可用的 IP 地址只有 36.74 亿个

全球 IPV4 地址不够用

现在全球有75亿个人,假设只有四分之一的人用互联网,那么也有 18 亿人

但每个人的设备数量可能有多个,比如手机+IPAD+电脑,如果都想要独立的 IP 地址,那么 IPV4 很明显不够用

IPV4 已经枯竭

  • 2011 年底,打包分配的 IPV4 地址已经枯竭了
  • 2020 年底,亚太互联网信息中心将发布不出来一个新的地址
  • 除非有人返还旧的地址

NAT 网络地址转换

为了解决 IPV4 地址枯竭的问题,引入了 NAT 地址转换

  • 五台电脑接入一个路由器
  • 路由器接入广域网的 IP 是 6.6.6.6
  • 对于家用来说,路由器由于是接入广域网并执行 NAT 的,所以路由器就是网关


传输场景,引入 NAT

  1. 假设电脑 A 需要访问外部的 8.8.8.8 设备
  2. 那么就会将数据包发送给路由器
  3. 路由器发现这个数据包是要发送给 8.8.8.8 的,就会将 IP 映射成自己的 IP 6.6.6.6,并记录成映射表 
  4. 最后,8.8.8.8 设备接收到的数据包的 IP 是 6.6.6.6
  5. 这样五台电脑发送出去的数据包,都能通过路由器转换为 6.6.6.6,以这个 IP 去传输数据
  6. 就能实现五台设备共用一个 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

类比的栗子

  1. 比如你居住在一个名叫月亮湾的小区,具体地址是15号楼二单元101
  2. 假设全球只有一个小区叫这个名,那么只要别人提起月亮湾就知道是哪个月亮湾了,这种能直接通过地址访问,可以拿到大的层面上直接使用的地址就是公网 IP
  1. 而小区内部其实就是局域网,你只要在小区内说是15号楼二单元101的,别人就知道你在哪
  2. 假设隔壁小区也有15号楼二单元101,隔壁的隔壁小区也有15号楼二单元101,寄快递的时候只写15号楼二单元101不写月亮湾,那么快递肯定不知道寄去哪里
  3. 像这种只能在小区内(局域网内)使用的 IP 就是私有 IP,它只有连同一个局域网的其他设备才会知道

能支持 3.4 * 10^ 38 个 IPV6 地址,这应该是多少亿亿亿个了吧...给每个生物分配一个都够用了

数字0-9,大写字母A-F

ipv4 和 ipv6 是两个完全不同的两个协议

  • 它们之间不能直接互通,必须要借助其他的设备去做转换和映射
  • 导致在短时间内,IPV6 替换 IPV4 是很困难的

会持续更新知识点


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK