【计算机网络笔记】网络地址转换(NAT)
系列文章目录
什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层——多路复用和多路分用
传输层——UDP简介
传输层——可靠数据传输原理之Rdt协议
传输层——可靠数据传输之流水线机制与滑动窗口协议
传输层——TCP特点与段结构
传输层——TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)
传输层——拥塞控制原理与解决方法
TCP的拥塞控制机制
网络层服务与核心功能
网络层服务模型——虚电路网络
网络层服务模型——数据报网络
Internet网络的网络层——IP协议之IP数据报的结构
IP分片
IP编址与有类IP地址
IP子网划分与子网掩码
CIDR与路由聚合
DHCP协议
- 系列文章目录
- NAT是什么?
- 为什么要使用NAT?
- 如何实现NAT?
- NAT存在的问题
- NAT穿透技术
NAT是什么?
要想让使用私有地址的主机在公共互联网上进行通信,就需要网络地址转换(NAT)。
如下图所示,路由器左边是互联网,右边是内部网络比如家庭网络。在路由器把内部网络的数据报转发到互联网上之前,必须要进行地址替换。为此,这个路由器必须实现NAT功能,并且至少有一个公共IP地址,就是俗称的合法IP。
在这种情况下,内部网络中的主机之间相互通信使用自己的地址作为源IP和目的IP是没有问题的,但是如果这些主机要发送或接收来自互联网的数据报的时候,就必须进行地址转换。比如发送给互联网的数据报的源地址要替换为公共IP地址。

为什么要使用NAT?
- 一个网络只需/能从ISP申请一个IP地址。这样能够缓解地址短缺问题
- 内部网络设备全部使用私有地址,内部网络设备IP地址的变更,无需通告外界网络
- 同理,变更ISP时(比如原先通过联通接入,现在改为电信接入),也无需修改内部网络设备IP地址
- 内部网络设备对外界网络不可见,即不可直接寻址(安全)
NAT带来的最主要的好处之一就是能够在IPv4地址匮乏的情况下仍然保证网络健康地发展和运行,尤其让众多使用私有地址的网络设备可以成功的在网络上通信。
如何实现NAT?
概括地来说,NAT最典型的实现方法是通过一次替换、一次记录、再来一次替换来完成。
- 替换:利用(NAT IP地址,新端口号)替换每个外出IP数据报 的(源IP地址,源端口号)
- 记录 :将每对(NAT IP地址, 新端口号) 与(源IP地址, 源端 口号)的替换关系信息存储到NAT转换表中
- 替换 :根据NAT转换表,利用(源IP地址, 源端口号)替换每 个进入内网IP数据报的(目的IP地址,目的端口号), 即(NAT IP地址, 新端口号)
NAT存在的问题
在NAT实现的基本方法中,要利用端口号。端口号是16比特的字段。一个公共IP同时支持60,000多并行连接。
但NAT带来了诸多方便的同时也有很多争议,比如:
- NAT通常嵌入到路由器中来实现。但路由器是一个标准的第三层(网络层)设备,应该只处理第3层功能。所以违背了层次关系
- 违背了端到端通信原则。因为端口号是传输层使用的,而传输层是端到端的通信,那么原则上来说,那么中间的路由器设备不应该对端口号进行修改。同时,NAT的存在也使一些端到端通行的网络应用开发者必须考虑到NAT的存在,比如P2P应用
- 地址短缺问题应该由IPv6来解决
NAT穿透技术
NAT的一些问题通常利用一些技术穿透NAT来完成。
比如这样一个例子:

客户期望连接内网地址为 10.0.0.1的服务器。但不能直接利用地址 10.0.0.1直接访问服务器。对外部用户来说,能看到的就是路由器拥有的公共IP地址,即NAT地址,比如这里的138.76.29.7。解决NAT的穿透/穿越主要有三种方法:
-
解决方案1:静态配置NAT。配置NAT转换表,让对外的、公共的IP地址以及一个端口映射为内部的私有IP地址以及对应的端口。比如配置(138.76.29.7, 2500) 总是转发给(10.0.0.1, 25000)
-
解决方案2:利用UPnP (Universal Plug and Play) 互联网网关设备协议 (IGD-Internet Gateway Device ) 自动配置。与解决方案1达到的目的是一样的。在这种情况下,内部的主机和路由需要实现UPnP协议,这样之后,内部的主机服务器能够自己学习到NAT公共IP地址 (138.76.29.7),并且完成在NAT转换表中,增删端口映射
-
解决方案3:中继(如Skype)。
- 在公共网络上设置若干个中继服务器,然后让NAT内部网络中的客户与中继服务器建立连接
- 外部客户也与中继服务器建立连接
- 中继服务器桥接两个连接的分组
- 这样能够支持外部客户主动发起通信

相关文章:
【计算机网络笔记】网络地址转换(NAT)
系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…...
【flink理论】动态表:关系查询处理流的思路:连续查询、状态维护;表转换为流需要编码编码
文章目录 一. 使用关系查询处理流的讨论二. 动态表 & 连续查询(Continuous Query)三. 在流上定义表1. 连续查询2. 查询限制2.1. 维护状态2.2. 计算更新 四. 表到流的转换1. Append-only 流2. Retract 流3. Upsert 流 本文主要讨论了: 讨论通过关系查询处理无界流…...
2023年09月 Python(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 以下选项中,不是tkinter变量类型的是?( ) A: IntVar() B: StringVar() C: DoubleVar() D: FloatVar() 答案:D tkinter 无 FloatVar()变量类型。 第2题 关于tkinter,以下说…...
Ubuntu16.04上安装Docker
Ubuntu16.04上安装Docker 更新 apt 包索引: sudo apt-get update安装依赖包,以便使用 HTTPS 仓库 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common添加 Docker GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu…...
FSOD论文阅读 - 基于卷积和注意力机制的小样本目标检测
来源:知网 标题:基于卷积和注意力机制的小样本目标检测 作者:郭永红,牛海涛,史超,郭铖 郭永红,牛海涛,史超,郭铖.基于卷积和注意力机制的小样本目标检测 [J/OL].兵工学报. https://…...
Windows系统中搭建docker (ubuntu,Docker-desktop)
一、docker安装前的准备工作 1. 开启CPU虚拟化,新电脑该默认是开启的,如果没开启可以根据自己电脑型号品牌搜索如克开启CPU虚拟化。当开启成功后可在设备管理器中看到。 2.开通Hyper-V 通过 Windows 控制面板 --> 程序和功能 -->启用或关闭…...
使用记录-MongoDB
find常用方法 在 MongoDB 的 find 方法中,可以使用各种查询操作符来执行不同类型的查询。其中之一是 $in 操作符,它用于在一个字段中匹配多个值。 $eq 操作符: 用于匹配字段值等于指定值的文档。 // 查询 age 字段等于 25 的文档 db.colle…...
用归并排序算法merge_sort( )求解 逆序对的数量 降低时间复杂度为 nlogn
题目简述 给定一个序列有n个数,求n个数中逆序对的个数,逆序对的定义:i < j && a[i] > a[j]。 输入格式 第一行包含一个整数n。 第二行包含 n 个整数(所有整数均在1~1e9范围内),表示整数数…...
大功率电源芯片WD5030L
电源管理芯片作为现代电子设备中最关键的元件之一,直接影响着设备的性能和效率。而大功率电源芯片作为电源管理芯片中的一种,其性能和应用领域更加广泛。本文将介绍一款具有宽VIN输入范围、高效率和多种优良性能的大功率电源芯片WD5030L,并探…...
Spring Boot使用EhCache完成一个缓存集群
在上一篇在SpringBoot中使用EhCache缓存,我们完成了在Spring Boot中完成了对EhCaChe的使用,这篇,我们将对EhCache的进一步了解,也就是搭建一个EhCache的缓存集群。 集群 在搭建一个EhCache的时候,我们需要先了解&…...
yolov5模型代码怎么修改
yaml配置文件 深度乘积因子 宽度乘积因子 所有版本只有这两个参数的不同,s m l x逐渐加宽加深 各种类型层参数对照 backbone里的各层,在这里解析,只需要改.yaml里的各层参数就能控制网络结构 修改网络结构 第一步:把新加的模块…...
VIM去掉utf-8 bom头
Windows系统的txt文件在使用utf-8编码保存时会默认在文件开头插入三个不可见的字符(0xEF 0xBB 0xBF)称为BOM头 BOM头文件 0.加上BOM标记: :set bomb 1.查询当前UTF-8编码的文件是否有BOM标记: :set bomb? :set bomb? 2.BOM头:文…...
Go 使用Viper处理Go应用程序的配置
在开发Go应用程序时,处理配置是一个常见的需求。配置可能来自于配置文件、环境变量、命令行参数等等。Viper是一个强大的库,可以帮助我们处理这些配置。 什么是Viper? Viper是一个应用程序配置解决方案,用于Go应用程序。它支持JS…...
hadoop安装网址
Hadoop是什么 1)Hadoop是一个有Apache基金会所开发的分布式系统基础架构。 2)主要解决海量数据的存储和海量数据的分析计算问题。 3)广义上来说,Hadoop通常是指一个更广泛的概念---Hadoop生态圈。 Hadoop发行版本 Hadoop发行的…...
JavaMail邮件发送服务
记录一次使用基于SpringBoot来设置发送邮件的服务 导入依赖 <!--邮件发送--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>${springboot.version}</ve…...
【918.环形子数组的最大和】
目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:int maxSubarraySumCircular(vector<int>& nums) {int sum0;for(auto x:nums) sumx;vector<int> f(nums.size());vector<int> g(nums.size…...
Unity Quaternion接口API的常用方法解析_unity基础开发教程
Quaternion接口的常用方法 Quaternion.Euler()Quaternion.Lerp()Quaternion.Inverse()Quaternion.RotateTowards() Quaternion在Unity中是一种非常重要的数据类型,用于表示3D空间中的旋转。Quaternion可以表示任何旋转,无论是在哪个轴上旋转多少度&#…...
Rust开发——使用rust实现Redis中hset
一、Redis中hset HSET 是 Redis 中用于在哈希数据结构中设置指定字段的值的命令。哈希是一种类似于字典或映射的数据结构,它存储了键值对的集合,其中每个键都包含多个字段和与这些字段相关联的值。 哈希表在 Redis 中以键值对形式存储,并通…...
海康Visionmaster-环境配置:VB.Net 二次开发环境配 置方法
Visual Basic 进行 VM 二次开发的环境配置分为三步。 第一步,使用 VS 新建一个框架为.NET Framework 4.6.1,平台去勾选首选 32 为的工程,重新生成解决方案,保证工程 Debug 下存在 exe 文件,最后关闭新建工程࿱…...
51单片机应用从零开始(四)
51单片机应用从零开始(一)-CSDN博客 51单片机应用从零开始(二)-CSDN博客 51单片机应用从零开始(三)-CSDN博客 详解 KEIL C51 软件的使用建立工程-CSDN博客 详解 KEIL C51 软件的使用设置工程编绎与连接程序…...
从需求到交付:深度拆解企业级软件定制开发的标准化流程
一、 引言:数字化转型的“标准化”与“定制化”博弈(内容概要:简述当前企业在选购通用SaaS软件与定制软件时的痛点。指出通用软件往往“大而全但难用”,而定制开发的核心在于精准契合业务场景。)二、 定制开发的四大核…...
08-系统技术架构师必备——分布式系统理论与数据一致性
关键词:分布式系统、CAP定理、BASE理论、Paxos、Raft、分布式事务、TCC、Saga、一致性算法 分布式系统 CAP定理 分布式事务 一致性算法 Paxos Raft TCC Saga 系统技术架构师必备——分布式系统理论与数据一致性 摘要 分布式系统是系统技术架构师必须跨越的"分水岭"…...
小波分析多尺度数据融合算法应用【附算法】
✨ 长期致力于小波分析、多尺度数据融合、MEMS陀螺、Allan方差研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)小波域多尺度融合定理证明与算法框架&a…...
为什么顶尖团队禁用Claude自动生成微服务?(内部泄露的5条红线规则与替代性增强方案)
更多请点击: https://intelliparadigm.com 第一章:为什么顶尖团队禁用Claude自动生成微服务?(内部泄露的5条红线规则与替代性增强方案) 顶尖工程团队在微服务架构演进中,普遍将大语言模型(LLM&…...
基于Multisim的四路带计分系统抢答器设计与仿真
摘要:本项目设计了一个四路带计分系统的智能抢答器,具有声光显示、计时和计分功能。使用Multisim 14.3进行电路设计 与仿真验证。项目简介本项目设计了一个基于Multisim的四路带计分系统智能抢答器,采用74系列数字逻辑芯片实现纯硬件电路设计…...
游戏模组革命:BepInEx框架让每个玩家都能打造个性化游戏体验
游戏模组革命:BepInEx框架让每个玩家都能打造个性化游戏体验 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 想要为心爱的游戏添加新功能、修改游戏机制,或…...
深度评测2026年TOP10降AI率平台:找到导师推荐的“无痕降AIGC”终极方案
AI写作工具的兴起让论文写作和内容创作变得前所未有的高效,许多学生和职场人都开始依赖这类工具来提升效率、节省时间。然而,随着技术发展,高校、平台和期刊对AI生成内容的检测标准也在不断提高,越来越多的用户发现,自…...
井下无信号密闭空间:UWB基站断联失效,无感定位纯视觉独立解算
井下无信号密闭空间:UWB基站断联失效,无感定位纯视觉独立解算矿山井下巷道、采掘工作面、密闭峒室等区域,属于典型无外源通信、信号隔绝的密闭作业空间。数字孪生与视频孪生技术逐步下沉矿山安全生产领域,镜像视界浙江科技有限公司…...
使用OpenClaw连接Taotoken配置Agent工作流的具体步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用OpenClaw连接Taotoken配置Agent工作流的具体步骤 OpenClaw是一款流行的AI Agent开发框架,它允许开发者构建和运行能…...
电商预测性洞察:轻量模型实现秒级可执行决策
1. 项目概述:这不是“预测未来”,而是让电商决策从拍脑袋变成算出来“Predictive Insights for e-Commerce”——这个标题乍看像一句科技公司PPT里的漂亮话,但在我过去十年跑遍长三角、珠三角上百个中小电商品牌仓库、直播间和运营后台后&…...
