当前位置: 首页 > news >正文

还不知道IP地址不够用是怎么被大牛们解决的?(NAT/NAPT, IPv6, DHCP)

文章目录

  • 前言
  • 1. DHCP网络管理协议
    • 什么是 DHCP
    • DHCP 两种分配机制
  • 2. NAT网络地址转换协议
    • 什么是 NAT
    • NAT 技术
    • 使用NAT网络设备间如何通信
      • 两个内网设备相互通信
      • 不同内网中的设备相互通信
      • NAT IP转换过程
    • NAPT 技术
    • NAT 技术的缺陷
  • 3. IPv6 协议
    • 什么是 IPv6
  • 总结


前言

在之前的文章中, 我们谈过了 IP 地址是什么. 在这里我们再简单回顾一下. 如今我们的网络中有很多的主机 / 设备, IP 地址就是用来描述设备在网络中的具体地址, 类似于家里的门牌号. 所谓的 IP 地址, 是一个32位(4字节)的整数, 采用点分十进制来表示. 形如 127.0.0.1 (把32位分为4个部分, 每个部分是8位, 每个部分的范围是0 ~ 255).

IP 地址 32 位能表示的数据量为 42亿 9千万, 听起来好像很大的一个数字, 其实在如今的网络世界中, 这个数据是非常有限的. 因为既然是地址, IP 地址原则上是不可以重复的(每个设备的 IP 得不相同). 现在全世界能上网的设备, 其实早就超出这个数字了. 一人一部手机, 一家一台电脑, 家家有很多智能家电等等(万物联网).

这样就引出了一个很大的问题, 当 IP 地址不够用了, 该怎么办?

关注收藏, 开始学习吧🧐


1. DHCP网络管理协议

什么是 DHCP

动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。
通俗来讲,DHCP可以动态分配地址,当某个设备需要上网时,就分配IP,不需要上网就不分配。

DHCP 两种分配机制

DHCP提供了两种地址分配机制,网络管理员可以根据网络需求为不同的主机选择不同的分配策略。

  • 动态分配机制:通过DHCP为主机分配一个有使用期限的IP地址。
    DHCP使用了租期的概念,或称为设备IP地址的有效期。租用时间是不定的,主要取决于用户在某地连接Internet需要多久,这种分配机制适用于主机需要临时接入网络或者空闲地址数小于网络主机总数且主机不需要永久连接网络的场景。
  • 静态分配机制:网络管理员通过DHCP为指定的主机分配固定的IP地址。
    相比手工静态配置IP地址,通过DHCP方式静态分配机制避免人工配置发生错误,方便管理员统一维护管理。

但随着网络中的设备越来越多,DHCP这种方案,也有点略显逊色了。它只能缓解IP地址不够的问题,但无法根治

2. NAT网络地址转换协议

什么是 NAT

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT技术。

就是将IP地址分为两大类:

  1. 私有IP:我们常说的内网,不同局域网内的设备,内网IP可以重复。但同一个局域网内的设备,内网IP不能重复。
  2. 全球IP:我们常说的外网,这个IP地址是不可以重复的。

这样我们就可以在不同的局域网中,使用相同的IP地址。此时IP地址不够用的问题就得到了很大程度的改善。

NAT 技术

NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。
这种技术需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。

  • NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术方法。
  • 很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP。
  • 全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的。

使用NAT网络设备间如何通信

两个内网设备相互通信

如果是局域网内部中的设备之间进行通信,是没有任何影响的,因为内网中IP地址都是唯一的,内部设备要进行通信,直接访问其IP地址即可。

不同内网中的设备相互通信

当A局域网中的设备,想和B局域网中的设备通信时,该怎么办?在NAT协议中,该情况是禁止的,因为有可能这俩设备的IP地址相同。
此时要想通信,就需要有一个带有外网IP的设备(路由器)进行中转,这个过程就涉及到NAT IP的转换过程了。

NAT IP转换过程

在这里插入图片描述

  • NAT路由器将源地址从 10.0.0.10 替换成全局的IP 202.244.174.37;
  • NAT路由器收到外部的数据时,又会把目标IP从 202.244.174.37 替换回 10.0.0.10;
  • 在NAT路由器内部,有一张自动生成的,用于地址转换的表;
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NAT机制的意义就是,一个外网IP代表的不一定是一个设备了,这个IP下还有很多设备。

NAPT 技术

由于NAT实现是私有IP和NAT的公共IP之间的转换,内网中同时与外网进行通信的主机数量就受到NAT的公共IP地址数量的限制。

当一个内网中有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,
目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

NAPT(Network Address Port Translation)技术就是用来解决这个问题的。使用IP+port来建立这个关联关系。
在这里插入图片描述
这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下

  • 建立连接时,就会生成这个表项;
  • 在断开连接后,就会删除这个表项。

NAPT与NAT的区别在于,NAPT不仅转换IP包中的IP地址,还对IP包中TCP和UDP的Port进行转换。这使得多台私有网主机利用1个NAT公共IP就可以同时和公共网进行通信。(NAPT多了对TCP和UDP的端口号的转换)

NAT 技术的缺陷

由于NAT依赖这个转换表,所以有诸多限制:

  • 无法从NAT外部向内部服务器建立连接,不方便直接访问外网设备
  • 转换表的生成和销毁都需要额外开销,非常繁琐且效率不高

虽然 NAT 技术相比于 DHCP 极大地提高了IP地址的“利用率”,但还是没有从根本问题上解决IP地址不够用的问题。但是其有一个最大的优点,“NAT是一个纯软件层面上实现的技术”,正是这个优点,使NAT一统天下了。

3. IPv6 协议

可能有很多读者在无意间看到过“该APP已支持IPv6技术”,IPv6就是从根本上解决 IP 地址不够用问题的一种方法。目前世界上最主流的是 IPv4 协议,IPv6 也并没有大规模去使用。

什么是 IPv6

IPv6(Internet Protocol Version 6),也被称为IPng(IP Next Generation),也就是下一代IP协议。IPv6是当前主流IP协议IPv4的升级版本。

当前IPv4协议,IP地址是4个字节(32位)来表示地址。而 IPv6 的IP地址是用16个字节(128位)来表示地址。 其总地址数量是2的128次方,理论上可以说地址数量近乎无限,足以给地球上的每粒沙子都分到1个地址。

目前我们主流使用的NAT技术其实跟IPv6是同一个时代的产物,IPv6为什么发展的不如NAT好呢?原因就是IPv4和IPv6不兼容,要想升级IPv6,就需要更换路由器设备,并且升级该设备不会提高任何网速,可以说是出力不讨好的一个活儿,而NAT是一个纯软件层面上实现的技术,只需要升级软件就可以支持。

以上我们只是聊聊解决IP地址不够用的一种方法,就不过多展开讲解 IPv6 协议了,感兴趣的读者可以自行查阅一下其资料。


总结

✨ 本文主要讲述了解决IP地址不够用的三种方法,DHCP,NAT/NAPT,IPv6。
✨ 想了解更多计算机网络的知识, 可以收藏一下本人的计算机网络学习专栏, 里面会持续更新本人的学习记录, 跟随我一起不断学习.
✨ 感谢你们的耐心阅读, 博主本人也是一名学生, 也还有需要很多学习的东西. 写这篇文章是以本人所学内容为基础, 日后也会不断更新自己的学习记录, 我们一起努力进步, 变得优秀, 小小菜鸟, 也能有大大梦想, 关注我, 一起学习.

再次感谢你们的阅读, 你们的鼓励是我创作的最大动力!!!!!

相关文章:

还不知道IP地址不够用是怎么被大牛们解决的?(NAT/NAPT, IPv6, DHCP)

文章目录 前言1. DHCP网络管理协议什么是 DHCPDHCP 两种分配机制 2. NAT网络地址转换协议什么是 NATNAT 技术使用NAT网络设备间如何通信两个内网设备相互通信不同内网中的设备相互通信NAT IP转换过程 NAPT 技术NAT 技术的缺陷 3. IPv6 协议什么是 IPv6 总结 前言 在之前的文章…...

使用决策树预测隐形眼镜类型

任务描述 本关任务:编写一个例子讲解决策树如何预测患者需要佩戴的隐形眼镜类型。使用小数据集,我们就可以利用决策树学到很多知识:眼科医生是如何判断患者需要佩戴的镜片类型,一旦理解了决策树的工作原理,我们甚至也…...

[ACTF2020 新生赛]BackupFile 1

题目环境: 好好好,让找源文件是吧?咱们二话不说直接扫它后台 使用dirsearch工具扫描网站后台(博主有这个工具的压缩包,可以私聊我领取)python dirsearch.py -u http://0d418151-ebaf-4f26-86b2-5363ed16530…...

解决vuex刷新数据丢失

Vuex 是一个 Vue.js 的状态管理库,它使得你可以在 Vue 组件之间共享状态。当你在 Vuex 中更新状态时,如果你遇到数据丢失或数据不一致的问题,可能需要进行深度复制或者使用其他方式来确保数据的完整性。 假设你有一个 Vuex 存储,…...

linux系统下读取当前硬盘的温度

这个其实很简单,借助于smartctl工具(Ubuntu默认安装好了),标红的部分就是当前温度,单位是摄氏度。 sudo smartctl -l scttempsts /dev/sda...

python 深度学习 解决遇到的报错问题8

本篇继python 深度学习 解决遇到的报错问题7-CSDN博客 目录 一、OSError: [WinError 127] 找不到指定的程序。 Error loading "D:\my_ruanjian\conda-myenvs\deeplearning\lib\site-packages\torch\lib\caffe2_detectron_ops.dll" or one of its dependencies. 二、…...

Linux pipe()系统调用示例

Linux系统调用pipe函数&#xff0c;创建一个pipe&#xff0c;通过传入的fd数组返回pipe的读、写两端。 其中fd[ 0 ]用于读&#xff0c;fd[ 1 ]用于写。 一个pipe是单向数据传输的&#xff0c;不用用于父子进程双向读写。创建2个pipe实现父子进程间的双线读写。 #include <u…...

音频中的采样率和比特率

音频中的采样率和比特率 采样频率千比特率音频比特率 采样频率 参考&#xff1a;https://blog.csdn.net/qq_38907791/article/details/88925224 采样频率&#xff0c;也称为采样速度或者采样率&#xff0c;定义了每秒从连续信号中提取并组成离散信号的采样个数&#xff0c;它…...

Python常用脚本

1.解压指定文件夹内的zip包&#xff0c;解压到当前位置 import os import zipfile# 指定文件夹路径 folder_path "/path/to/your/folder"# 获取文件夹下所有的zip文件 zip_files [os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.e…...

Redis5 分布式系统之主从模式

目录 分布式系统 引子 分布式系统类型 主从模式 一个主节点和多个从节点 创建多个节点方法 配置主从结构 主从模式知识 主从复制 拓扑结构 1.一主一从 2.一主多从 3.树形主从 主从实现原理 psync数据同步 全量复制和部分复制 psync流程 1.全量数据同步 2.部…...

【黑马程序员】Maven 进阶

文章目录 前言一、分模块开发与设计1. 分模块开发意义2. 分模块开发&#xff08;模块拆分&#xff09;2.1 创建 Maven 模块2.2 书写模块代码2.3 通过 Maven 指令安装模块到本地仓库&#xff08;install 指令&#xff09; 二、依赖管理1. 依赖传递1.1 依赖传递冲突问题 2. 可选依…...

231108 C语言memset当第三个参数为0,即设置个数为零也不报错

memset语法&#xff1a; void *memset(void *s, int c, size_t n); 犹豫第三个参数为0会不会报错&#xff0c;测试不会。 代码&#xff1a; #include"stdio.h" #include"stdlib.h" // memset memcpy int main() { int sig[100] { 0 }; int …...

HMM与LTP词性标注之马尔科夫模型(HMM原理剖析)

文章目录 问题描述viterbi算法联合概率与条件概率维特比算法实例 问题描述 viterbi算法 联合概率与条件概率 维特比算法实例...

Python自动化测试selenium指定截图文件名方法

这篇文章主要介绍了Python自动化测试selenium指定截图文件名方法&#xff0c;Selenium 支持 Web 浏览器的自动化&#xff0c;它提供一套测试函数&#xff0c;用于支持 Web 自动化测试&#xff0c;下文基于python实现指定截图文件名方法&#xff0c;需要的小伙伴可以参考一下 前…...

Linux 实现文件后半部分的复制

继上次实现文件从后往前数2k的数据进行复制&#xff0c;此次要求是文件的一半且是后半部分。 即复制源文件sour_file的后半部分到dest_file 除了数据上从后2K变化到后一半之外&#xff0c;其他的几乎没有什么变化。 这道题的关键点就在于后一半怎么求&#xff0c;在经历了用 …...

阿里开源中间件一览

1. 概述以及竞品对比 间件介绍官方链接竞品竞品介绍异同点对比Dubbo高性能的RPC框架&#xff0c;用于实现分布式服务的调用和管理。DubbogRPC gRPC是由Google开源的一款高性能、通用的RPC框架&#xff0c;支持多种编程语言 链接&#xff1a;gRPC Dubbo更注重于服务治理和可扩展…...

Ubuntu20.04下Salome_meca 2022软件安装(支持GPU加速)

一、什么是Salome_meca &#xff1f; Salome_meca 是一个开源的有限元分析软件套件&#xff0c;主要用于模拟和分析复杂的力学问题。它是 Salome 平台的一部分&#xff0c;Salome 是一个通用的集成化软件环境&#xff0c;用于建模、预处理、模拟和后处理各种复杂的工程和科学问…...

uniapp:打包ios配置隐私协议框

使用uniapp打包ios 上架商店需要配置隐私协议政策弹窗。当用户点击确定后才能继续操作。 首先manifest.json中配置使用原生隐私政策提示框是不支持ios的。不用勾选。 解决思路&#xff1a; 1、新建页面&#xff1a;iosLogin.vue&#xff0c;pages.json中 这个页面需要放在第一…...

JS逆向爬虫---请求参数加密③【比特币交易爬虫】

查询参数确定 t无加密 请求头参数加密 X-Apikey参数加密确定 X-Apikey逆向 const API_KEY "a2c903cc-b31e-4547-9299-b6d07b7631ab" function encryptApiKey(){ var t API_KEY, e t.split(""), n e.splice(0, 8);return t e.concat(n).join("&…...

云计算:未来科技的超级英雄

随着科技的不断发展&#xff0c;云计算已经成为了现代社会的核心驱动力之一。从智能家居到无人驾驶&#xff0c;从虚拟现实到人工智能&#xff0c;云计算的崭新时代已经到来&#xff0c;为我们的生活带来了智能、便捷和有趣的体验。本文将带领读者穿越时空&#xff0c;探索未来…...

终极分屏游戏解决方案:Nucleus Co-Op 让单机游戏变身多人派对

终极分屏游戏解决方案&#xff1a;Nucleus Co-Op 让单机游戏变身多人派对 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 还在为单机游戏无法本地多…...

车企携手Tech Soft 3D:基于 HOOPS 工具集打造Web端一体化工程可视化解决方案

随着汽车行业向智能化、电动化转型&#xff0c;整车研发体系正在发生深刻变化。围绕多平台架构、跨区域协同以及供应链一体化&#xff0c;企业对于工程数据的使用方式提出了更高要求——不仅要“能管理”&#xff0c;更要“能流动、能协同”。 为推动核心工程系统向浏览器化、…...

实测Qwen3-4B:256K超长上下文,处理长文档、写长文真实案例

实测Qwen3-4B&#xff1a;256K超长上下文&#xff0c;处理长文档、写长文真实案例 1. 引言&#xff1a;为什么关注长上下文能力 在日常工作和创作中&#xff0c;我们经常遇到需要处理超长文档的场景&#xff1a;分析上百页的PDF报告、阅读整本电子书、编写长篇技术文档等。传…...

Z-Image Atelier 生成动态效果预览:通过序列图像模拟简单动画过程

Z-Image Atelier 生成动态效果预览&#xff1a;通过序列图像模拟简单动画过程 最近在玩一个挺有意思的AI图像工具&#xff0c;叫Z-Image Atelier。它最吸引我的地方&#xff0c;不是生成单张多么精美的图片&#xff0c;而是它能帮你“脑补”出一段动态过程。简单来说&#xff…...

PyTorch 2.8镜像法律科技:庭审音视频→AI摘要+关键帧提取+证据链可视化

PyTorch 2.8镜像法律科技&#xff1a;庭审音视频→AI摘要关键帧提取证据链可视化 1. 镜像概述与法律科技应用场景 在司法数字化进程中&#xff0c;庭审音视频处理正面临三大挑战&#xff1a;海量数据难以快速消化、关键信息提取效率低下、证据呈现方式单一。PyTorch 2.8深度学…...

Ubuntu 22.04 改IP重启失效?别急,可能是OVS的ovsdb-server在捣鬼

Ubuntu 22.04网络配置失效&#xff1a;当OVS与netplan的隐秘博弈 在虚拟化技术大行其道的今天&#xff0c;Open vSwitch&#xff08;OVS&#xff09;作为开源虚拟交换机的标杆&#xff0c;已经成为众多云计算平台和容器网络的核心组件。然而&#xff0c;当它遇上Ubuntu 22.04默…...

别再手动查ID了!用R包一键搞定单细胞Marker基因ID转换(附org.Hs.eg.db实战)

单细胞Marker基因ID转换实战&#xff1a;用org.Hs.eg.db实现高效精准映射 刚完成单细胞聚类分析的研究者&#xff0c;常常会面临一个看似简单却极其耗时的任务——将Marker基因的Symbol标识转换为标准的Entrez ID。这个步骤虽然基础&#xff0c;却直接影响后续GO富集分析的可靠…...

别再只数步数了!深入聊聊ADXL345计步算法里的‘动态阈值’与‘最活跃轴’

别再只数步数了&#xff01;深入聊聊ADXL345计步算法里的‘动态阈值’与‘最活跃轴’ 当你盯着智能手环上的步数统计时&#xff0c;有没有想过这串数字背后藏着怎样的算法智慧&#xff1f;ADXL345作为一款经典的三轴加速度传感器&#xff0c;其计步算法远非简单的阈值比较那么简…...

Google 地图事件:探索、挑战与未来展望

Google 地图事件:探索、挑战与未来展望 引言 Google 地图作为全球最受欢迎的地图服务之一,自2005年推出以来,已经深入到人们生活的方方面面。然而,在这段时间里,Google 地图也经历了一系列事件,包括技术挑战、政策争议以及市场竞争等。本文将围绕这些事件,对 Google 地…...

郑州大学生命科学学院生物与医药专业考研复试资料(2025届学姐整理)|电子版

温馨提示&#xff1a;文末有联系方式【权威整理】郑大生科院生物与医药方向考研复试精品资料包 本资料由郑州大学生命科学学院生物与医药专业2022年高分录取学姐牵头整合&#xff0c;汇集2022–2025连续四届成功上岸师兄师姐的实战复试经验与核心资料&#xff0c;内容系统、精准…...