NAT 技术如何解决 IP 地址短缺问题?

NAT 技术如何解决 IP 地址短缺问题?

前言

这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
作者:神的孩子都在歌唱

随着互联网的普及和发展,IP 地址的需求量迅速增加。尤其是 IPv4 地址,由于其有限的地址空间(最多约 43 亿个地址),很快就面临了严重的短缺问题。这一问题对全球互联网的发展构成了挑战。为了解决这一问题,NAT(网络地址转换,Network Address Translation) 技术应运而生,并成为缓解 IPv4 地址短缺的一个重要解决方案。

一. NAT 技术概述

NAT(Network Address Translation) 是一种网络地址转换技术,它允许私有网络中的多个设备共享一个公有 IP 地址与外部网络进行通信。NAT 会将私有 IP 地址(内网地址)转换为公有 IP 地址,并在返回数据包时进行反向转换,从而实现内外网的通信。这一技术是在IPv4路由器中实现

1.1 NAT 的工作原理

NAT 工作时,主要通过以下几个步骤来转换 IP 地址:

  1. 内网设备发送请求:当内网设备(如计算机或手机)向外部网络发起连接时,它会使用私有 IP 地址(如 192.168.1.x)作为源地址。
  2. 路由器进行地址转换:内网中的路由器接收到数据包后,会将源 IP 地址从私有地址(如 192.168.1.x)转换为公有 IP 地址(如 203.1.112.3)。同时,它会在 NAT 表中记录这个转换映射(即哪个私有 IP 地址和端口对应哪个公有 IP 地址和端口)。
  3. 外网服务器返回数据:外部服务器(例如 Web 服务器)向公有 IP 地址发送响应数据,路由器会通过 NAT 表找到正确的内网设备,并将数据包的目标地址转换为内网设备的私有地址。
  4. 内网设备接收数据:内网设备接收到返回的数据后,通过 NAT 将私有 IP 地址还原为正确的通信地址,完成数据传输。

image-20241225232217231

1.2 NAT 通过共享公有 IP 地址解决地址短缺

NAT 技术的核心优势在于,它允许多个内网设备共享一个公有 IP 地址进行外部通信,从而大大节省了公有 IP 地址的使用。通过 NAT,内网设备在外部网络上只有一个统一的公有 IP 地址,而不需要为每个设备分配独立的公有 IP 地址。

例如,一个家庭或小型企业可以使用一个公有 IP 地址连接到互联网,而其中的多个设备(如计算机、智能手机、打印机等)可以通过 NAT 技术共享该 IP 地址,互相通信并访问互联网。

二. NAT 的类型

NAT 技术有多种实现方式,以下是常见的几种类型:

2.1 静态 NAT(Static NAT)

静态 NAT 是一对一的映射关系,即每个私有 IP 地址都被映射到一个唯一的公有 IP 地址。这种方式适用于需要从外部网络访问内部设备的情况,比如 Web 服务器或邮件服务器。

  • 优点:简单、固定,易于配置。
  • 缺点:每个私有 IP 地址都需要一个公有 IP 地址,无法充分利用公有 IP 地址资源。

2.2 动态 NAT(Dynamic NAT)

动态 NAT 是多对多的映射关系。当内网设备发起连接时,路由器会从一个公有 IP 地址池中为其分配一个公有 IP 地址。这个分配是动态的,映射关系可以随着时间变化。

  • 优点:较为灵活,适用于大部分场景。
  • 缺点:每个内网设备只有在需要时才会分配一个公有 IP 地址,但一旦映射关系结束,这个公有 IP 地址就可以被其他设备使用。

2.3 网络地址端口转换NAPT(Network Address Port Translation)

NAPT 通常用于将多个内网设备的私有 IP 地址转换成一个公有 IP 地址,并利用不同的 端口号 区分不同的连接。它大大减少了对公有 IP 地址的需求,成为 IPv4 地址短缺问题的主要解决方案。

作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法题(17):删除有序数组中的重复项

审题: 需要我们原地删除数组中的重复数据,并输出有效数据个数 思路: 方法一:原地解法(双指针) 设置left指针指向当前的非重复数据,right负责遍历数组,遇到和left指向的数据不同的数据…

LaTeXChecker:使用 Python 实现以主 TEX 文件作为输入的 LaTeX 检查和统计工具

使用 Python 实现以主 TEX 文件作为输入的 LaTeX 检查和统计工具,适用于包括但不限于一稿多模板的复杂排版方式,工具以只读模式运行。 Github 链接:https://github.com/BatchClayderman/LaTeXChecker import os from sys import argv, exec…

Web API和Web Services的区分

前些年一提及自动化测试,大多是指UI界面层的自动化测试。近几年,随着分层自动化测试概念的兴起,以及自动化测试自身的发展与细分,自动化测试包含了更多的内容。 API(Application ProgrammingInterface,应用程序编程接…

基于深度学习(HyperLPR3框架)的中文车牌识别系统-前言

参考链接: GitHub - szad670401/HyperLPR: 基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework.基于深度学习高性能中文车牌识别 High Performance Chinese License Plate Recognition Framework. - szad670401/HyperL…

RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 安装部署

RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 安装部署 flyfish 1. 确保 vm.max_map_count ≥ 262144 这是指要调整Linux内核参数vm.max_map_count,以确保其值至少为262144。这个参数控制着进程可以映射的最大内存区域数量。对于某些应用程序(如Ela…

QT:一个TCP客户端自动连接的测试模型

版本 1:没有取消按钮 测试效果: 缺陷: 无法手动停止 测试代码 CMakeLists.txt cmake_minimum_required(VERSION 3.19) project(AutoConnect LANGUAGES CXX)find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets Network)qt_standard_project_setup(…

(亲测)frp对外提供简单的文件访问服务-frp静态文件效果

话说有一天,希望将软件安装包放到网上,希望类似如下效果,正好在调试frp docker版,看到frp有个【对外提供简单的文件访问服务】功能,网上搜索也没相关效果图,所以顺手测试一下,截了几张图&#x…

一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类

机器学习实战通常是将理论与实践结合,通过实际的项目或案例,帮助你理解并应用各种机器学习算法。下面是一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的…

如何解决 ‘adb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的问题

在cmd中输入 adb ,显示 ‘adc‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的问题 解决办法:在环境变量中添加adb所在的路径 1、找到 adb.exe 的所在的文件路径,一般在 Android 安装目录下 \sdk\platform-tools\adb.exe…

【开源】一款基于SpringBoot的智慧小区物业管理系统

一、下载项目文件 项目文件源码链接:https://pan.quark.cn/s/3998d958e182如出现网盘空间不够存的情况!!!解决办法是先用夸克手机app注册,然后保存上方链接,就可以得到1TB空间了!!&…

Linux编程(清华大学出版社2019年1月第1版)第7章-进程间通信-课后作业

7.1 输出: 4:ABCD 4:EFGH7.2 输出: numbers3 10 20 30 7.3 #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <limits.h> #include <fcntl.h> #include <sys/types.h> #include <stdint.h> #includ…

线性代数行列式

目录 二阶与三阶行列式 二元线性方程组与二阶行列式 三阶行列式 全排列和对换 排列及其逆序数 对换 n阶行列式的定义 行列式的性质 二阶与三阶行列式 二元线性方程组与二阶行列式 若是采用消元法解x1、x2的话则得到以下式子 有二阶行列式的规律可得&#xff1a;分…

canvas之进度条

canvas之进度条 效果&#xff1a; 封装的组件 <template><div class"circle" :style"{ width: props.radius px, height: props.radius px }"><div class"circle-bg" :style"{ width: props.radius - 5 px, height: pr…

再生核希尔伯特空间(RKHS)上的分位回归

1. 基本定义和理论基础 1.1 再生核希尔伯特空间(RKHS) 给定一个非空集合 X \mathcal{X} X&#xff0c;一个希尔伯特空间 H \mathcal{H} H 称为再生核希尔伯特空间&#xff0c;如果存在一个函数 K : X X → R K: \mathcal{X} \times \mathcal{X} \rightarrow \mathbb{R} K…

Nature+Science=ONNs(光学神经网络)

2024深度学习发论文&模型涨点之——光学神经网络 光学神经网络&#xff08;Optical Neural Networks, ONNs&#xff09;是一种利用光学器件&#xff08;如激光、光学调制器、滤波器、探测器等&#xff09;来模拟和实现神经网络推理功能的计算模型。这种网络通过利用光信号的…

武泳樽携手AI AD Manager荣获红点奖,智能广告管理系统备受瞩目

近日,由著名设计师武泳樽主导设计的AI AD Manager在2024年红点奖评选中荣获大奖,这一殊荣不仅彰显了他在创新设计领域的卓越实力,更巩固了AI AD Manager作为智能广告技术标杆的地位。凭借独特的用户体验设计、尖端的AI驱动功能和出色的技术融合,AI AD Manager在激烈的国际竞争中…

OCR实践-问卷表格统计

前言 书接上文 OCR实践—PaddleOCROCR实践-Table-Transformer 本项目代码已开源 放在 Github上&#xff0c;欢迎参考使用&#xff0c;Star https://github.com/caibucai22/TableAnalysisTool 主要功能说明&#xff1a;对手动拍照的问卷图片进行统计分数&#xff08;对应分数…

flask后端开发(2):URL与视图

目录 URL定义request获取请求参数 gitcode地址&#xff1a; https://gitcode.com/qq_43920838/flask_project.git URL定义 from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello World!app.route(/profile) def profile():return 我是个人…

基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解

目录 1、三种方式介绍 1.1请求限流 1.2 线程隔离方案 1.3 服务熔断 2、基于sentinel实现 2.1 启动sentinel 2.2 基于springboot整合sentinel 2.2.1请求限流 2.2.2请求隔离 2.2.2.1 OpenFeign整合Sentinel 2.2.3 服务熔断 2.2.3.1 编写降级代码 2.2.3.2 服务熔断 1、…

小程序基础 —— 02 微信小程序账号注册

微信小程序账号注册 小程序开发与网页开发不一样&#xff0c;在开始微信小程序开发之前&#xff0c;需要访问微信公众平台&#xff0c;注册一个微信小程序账号。 有了小程序的账号以后&#xff0c;才可以开发和管理小程序&#xff0c;后续需要通过该账号进行开发信息的设置、…