javaEE 初阶 — 关于 IPv4、IPv6 协议、NAT(网络地址转换)、动态分配 IP 地址 的介绍

news2024/9/30 21:31:30

文章目录

  • 1. IPv4
  • 2. IPv6
  • 3. NAT
  • 4. 动态分配 IP 地址

1. IPv4


在互联网的世界中只有 0 和1 ,所以每个人都有一个由 0 和 1 组成的地址来让别人找到你。
这段由 0 和 1 组成的地址叫 IP 地址,这是互联网的基础资源,可以简单的理解为互联网的土地。

IP 地址是由一串 32 位的二进制数构成,每台设备都需要独立的 IP 地址才能进入互联网。



为了方便阅读和记忆,IP 地址在我们的设备上通常显示为点分十进制。那就是

点分十进制就是使用三个 . 把 32 位 4 字节的数字给分割开,也就是分成 4 个部分,每个部分分别使用 0~255 十进制整数表示。

比如上述的一串二进制数就变成了,192.168.1.255

IPv4 使用简单、可靠。大家互信,但是它有一个致命的缺点:

那就是 数量 是有限的。


IPv4 地址是一个 32 位的二进制数,意味着 IP 地址在逻辑上的最大总数为 2^32-1 个,也就是 4294967295 个。
在互联网发展之初,这是一个天文分数字,但是随着互联网的发展速度越来越快,比如智能手机、计算机、路由器…
互联网发展的速度超乎了所有人的想象,IP 地址被迅速地消耗。

全球有 70 亿人口,但是 IP 地址只有 43 亿个。一旦这些 IP 地址用完,后来者将无法进入互联网。

为了防止 IP 地址耗光,出现了 IPv6。

2. IPv6


IPV6 从根本上解决了 IP 不够用的问题,是使用 16 字节来表示的。

和 IPV4 不同,IPV6 的地址长度扩张到了 128 位,是前者的 4 倍。



上述图片就是一串 IPV6 的地址。

长度增加后原有的点分十进制也不够用了,于是 IPV6 改用十六进制表示。



上述图片就是改用的十六进制表示的。

IPv4 有 43 亿的地址,IPv6 的长度是它的 4 倍,是不是意味着 IPv6 的地址个数也是它的 4 倍,也就是 172 个地址?

答案是不是,IPv6 的地址空间是 2^128-1,IP地址 总数为 3402823… 总之是很多的。
多到可以给地球上的每粒沙子都分配一个 IP 地址。


IPV6 虽然地址个数足够使用,但是当前世界上仍然是 NAT + IPV4 + 动态分配 来进行网络组建的,
真正使用 IPV6 的地方非常少。


这主要是因为 IPV6 不是 IPV4 协议的升级,而是一个全新的协议。
两个协议之间无法兼容,如果要使用 IPV6 ,那全世界的互联网设备都要同步更换硬件设备,更换硬件设备需要花更多的资金。

3. NAT


这个方案的本质是使用一个 IP 代表一批设备,也是可以提高 IP 地址的利用率,只不过要使用端口号来区分不同的设备。


在 NAT 背景下,就把所有的 IP 地址分为两个大类:

1、内网 IP(私有 IP) :以 10.* 、172.16.* ~ 172.31.* 、192.168.* 开头的都是属于私网

例如:我的笔记本的 IPV4 地址是 192.168.21.1,这就是一个私网 IP。



2、外网 IP (公网 IP):除了私网剩下的都是公网。

NAT 要求公网 IP 必须是唯一的,而私网 IP 可以在不同的局域网中重复出现。

如果某个私网里的设备想要访问公网的设备,就需要对应的 NAT 设备(路由器),把 IP 地址进行映射,从而完成网络访问。
反之,公网的设备无法直接访问私网的设备,不同的局域网的私网设备无法直接访问相互访问。


举个例子


每个人相当于是一个独立的 IP 地址,快递员必须要知道这个人的 IP 地址,才能找到这个人。


NAT 技术就是把每个 IP 地址变成一个小区,快递员只需要把包裹交给门卫(相当于是 NAT),
门卫再将包裹交给住户。小区之内就是私网,小区之外就是公网


打开自己电脑的 cmd 键入 ipconfig,就可以看到自己电脑的 IP 地址,而且这个 IP 地址基本上都是私有 IP。

内网 IP 只要在局域网内部不重复即可,而不同局域网中则是允许重复的。




源 IP 地址就是 192.168.21.2目的 IP 就是 1.2.3.4
我的 IP 数据报经过 NAT(运营商路由器)设备之后,此时就会把我的 源 IP 给改了。

此时源 IP 就是 NAT 设备的 IP,61.185.187.142,而目的 IP 还是 1.2.3.4。
站在服务器的视角,看到的我的电脑的 IP 地址就是这个运营商路由器的地址。

当有其他的电脑接入运营商路由器的时候,去访问外部服务器都会被路由器替换成路由器自己的 外网 IP。


因此服务器只能拿到路由器的 IP ,不能拿到我的电脑的内网 IP 。
如果我的电脑不主动和服务器联系,服务器也就不知道我的端口,从而就无法主动找到我的电脑。


只要电脑是经过运营商路由器转发给服务器的,服务器看到的源 IP 就都一样。

如果是多个电脑同时访问同一个服务器,服务器的响应就会先发给路由器,路由器根据这些电脑不同的端口号来区分,决定先发给哪个设备。

NAT 机制能够有效地解决 IP 地址不够用的问题,但是带来的副作用就是网络环境更加的复杂了。

4. 动态分配 IP 地址


动态分配 IP 地址,就是在网络设备使用的时候再分配 IP 地址,不使用的时候就不分配。
这样不仅提高了 IP 地址的利用率,还可以节约有限的资源。

但是这个方案没有从根本上增加 IP 地址,只是提高了利用率,属于治标不治本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/370397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Qt 6 C++开发指南》简介

我们编写的新书《Qt 6 C开发指南》在2月份终于正式发行销售了,这本书是对2018年5月出版的《Qt 5.9 C开发指南》的重磅升级。以下是本书前言的部分内容,算是对《Qt 6 C开发指南》的一个简介。1.编写本书的目的《Qt 5.9C开发指南》是我写的第一…

(三)代表性物质点邻域的变形分析

本文主要内容如下:1. 伸长张量与Cauchy-Green 张量2. 线元长度的改变2.1. 初始/当前构型下的长度比2.2. 主长度比与 Lagrange/Euler 主方向2.3. 初始/当前构型下任意方向的长度比3. 线元夹角的改变4. 面元的改变5. 体元的改变1. 伸长张量与Cauchy-Green 张量 由于变…

新C++(10):Map\Set的封装

"湖人总冠军"一、Map\Set的介绍Set是C标准库中的一种关联容器。所谓关联容器就是通过键(key)来读取和修改元素。与map关联容器不同,它只是单纯键的集合。取自这里Map是STL 的一个关联容器,它提供一对一(其中…

第二回:艺术画笔见乾坤

import numpy as np import pandas as pd import re import matplotlib import matplotlib.pyplot as plt from matplotlib.lines import Line2D from matplotlib.patches import Circle, Wedge from matplotlib.collections import PatchCollection一、概述 1. matplotlib…

软件测试:用“bug”来表示“在电脑程序里的错误”

计算机基础知识计算机(personal computer)俗称电脑(pc),是现代一种用于高速计算的电子机器,可以进行数值计算,又可以进行逻辑判断,还具有存储记忆功能,且能够按照程序的运…

【模拟集成电路】频率综合器(Frequency Synthesizer,FS)设计

应用于无线局域网的频率综合器设计前言频率综合器简介各部分链接链接:前言 本文主要内容是对频率综合器或称为PLL 做出简单介绍,为课程设计部分章节内容,后需给出各部分的设计方案,以及测试结果。 频率综合器简介 无线收发系统中…

跳槽进字节跳动了,面试真的很简单

前言: 最近金三银四跳槽季,相信很多小伙伴都在面试找工作, 怎样才能拿到大厂的offer,没有掌握绝对的技术,那么就要不断的学习 如何拿下阿里等大厂的offer的呢,今天分享一个秘密武器,资深测试工程师整理的…

Elasticsearch7.8.0版本进阶——持久化变更

目录一、持久化变更的概述二、事务日志(translog)三、持久化变更完整流程四、事务日志(translog)的作用五、事务日志(translog)的目的一、持久化变更的概述 没有用 fsync 把数据从文件系统缓存刷&#xff…

随机森林算法(Random Forest)R语言实现

随机森林1. 使用Boston数据集进行随机森林模型构建2. 数据集划分3.构建自变量与因变量之间的公式4. 模型训练5. 寻找合适的ntree6. 查看变量重要性并绘图展示7. 偏依赖图:Partial Dependence Plot(PDP图)8. 训练集预测结果1. 使用Boston数据集进行随机森…

【华为OD机试模拟题】用 C++ 实现 - 分糖果(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

【华为OD机试模拟题】用 C++ 实现 - 时间格式化(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

匈牙利算法与KM算法的区别

前记 在学习过程中,发现很多博客将匈牙利算法和KM算法混为一谈,当时只管用不管分析区别,所以现在来分析一下两个算法之间的区别。 匈牙利算法在二分图匹配的求解过程中共两个原则: 1.最大匹配数原则 2.先到先得原则 而KM算法求…

Linux centos升级nodejs,解决升级NodeJS遇到的问题,升级GLIBC、GLIBCXX、gcc(含资源包下载)

公司网站用的Nuxt开发的,本地开发环境NodeJS已经升级到16.14.2版本,服务器也要从12版本升级到16.14.2 如需本次安装的资源,请下滑到文章下面下载整套资源 NodeJS版本下载地址:https://nodejs.org/dist/v16.14.2 解压安装node后…

Docker 应用实践-仓库篇

目前 Docker 官方维护了一个公共仓库 Docker Hub,用于查找和与团队共享容器镜像,界上最大的容器镜像存储库,拥有一系列内容源,包括容器社区开发人员、开放源代码项目和独立软件供应商(ISV)在容器中构建和分…

【涨薪技术】0到1学会性能测试 —— 分类及应用领域

上一次推文我们分享了性能测试相关的专业术语,今天我们来看下性能测试的分类及应用领域!后续文章都会系统分享干货,带大家从0到1学会性能测试,另外还有教程等同步资料,文末获取~ 性能测试划分 01、负载测试 负载测试是指服务器最…

【华为OD机试模拟题】用 C++ 实现 - 商人买卖(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

黑客网站大全!都在这了!速看被删就没了

我们学习网络安全,很多学习路线都有提到多逛论坛,阅读他人的技术分析帖,学习其挖洞思路和技巧。但是往往对于初学者来说,不知道去哪里寻找技术分析帖,也不知道网络安全有哪些相关论坛或网站,所以在这里给大…

java延时队列

二、延时队列使用场景 那么什么时候需要用延时队列呢?常见的延时任务场景 举栗子: 订单在30分钟之内未支付则自动取消。重试机制实现,把调用失败的接口放入一个固定延时的队列,到期后再重试。新创建的店铺,如果在十天内都没有上传过商品&…

XML调用 CAPL Test Function

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

数据结构:完全二叉树开胃菜小练习

目录 一.前言 二.完全二叉树的重要结构特点 三.完全二叉树开胃菜小练习 1.一个重要的数学结论 2.简单的小练习 一.前言 关于树及完全二叉树的基础概念(及树结点编号规则)参见:http://t.csdn.cn/imdrahttp://t.csdn.cn/imdra 完全二叉树是一种非常重要的数据结构: n个结点的…