【计算机网络笔记】网络地址转换(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内部网络中的客户与中继服务器建立连接
    • 外部客户也与中继服务器建立连接
    • 中继服务器桥接两个连接的分组
    • 这样能够支持外部客户主动发起通信

    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAXB:用XmlElement注解复杂类型的Java属性,来产生多层嵌套的xml元素

例如&#xff0c;下面这段请求的xml代码&#xff0c;在元素body下面又多了一层&#xff0c;嵌套了4个元素&#xff1a; <?xml version"1.0" encoding"UTF-8"?><request><reqtype>04</reqtype><secret>test</secret>…

​软考-高级-系统架构设计师教程(清华第2版)【第10章 软件架构的演化和维护(P345~382)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第10章 软件架构的演化和维护&#xff08;P345~382&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

细节决定成败——我的日志去哪了?

概述 编写本文档的目的有两点。 本周遇到了一个日志丢失的问题&#xff0c;经过分析&#xff0c;觉得挺有意思的。向大家分享一下我的分析及解决思路。应该在很多项目中都会有该问题。领导和我私下讨论过多次&#xff0c;当前的autodomain代码对文件读取的频率太高了,如何去避…

数学建模-图与网络模型解题方法和代码实现

本文针对以下几个方面问题进行整理&#xff1a; 最短路问题 两个指定顶点之间的最短路径任意顶点之间的最短路径 2.最小生成树问题 求最小生成树 3.网络最大流问题 源点与汇点之间的最大流基于最大流的最小费用求解 4.旅行商问题 基于哈密顿(Hamilton)圈求解旅行商线性…

基于Qt QList和QMap容器类示例

## QList<T> QList<T>容器是一个数组列表,特点如下: 1.大多数情况下可以用QList。像prepend()、append()和insert()这种操作,通常QList比QVector快的多。这是因为QList是基于index标签存储它的元素项在内存中(虽然内存不连续,这点与STL的list 是一样的),比…

网络连接Android设备

参考&#xff1a;https://blog.csdn.net/qq_37858386/article/details/123755700 二、网络adb调试开启步骤 1、把Android平板或者手机WiFi连接到跟PC机子同一个网段的网络&#xff0c;在设置-系统-关于-状态 下面查看设备IP,然后查看PC是否可以ping通手机的设备的IP。 2、先…

深度学习人脸表情识别算法 - opencv python 机器视觉 计算机竞赛

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人脸表情识别系…

口袋参谋:找关键词的三种方法!

​如何找热搜关键词&#xff1f;99%的商家都不知道。那么今天可以根据我说的三种方法去做。 第一种方法&#xff1a;利用竞争对手 通过分析竞争对手&#xff0c;正在使用和采取何种优化方法&#xff0c;来帮助你理解市场上正在流行什么样的关键字&#xff0c;这些热词可以直接从…

美国DDoS服务器:如何保护你的网站免遭攻击?

​  在当今数字化时代&#xff0c;互联网已经成为人们生活中不可或缺的一部分。随着互联网的普及和发展&#xff0c;网络安全问题也日益严重。其中&#xff0c;DDoS攻击是目前最常见和具有破坏性的网络攻击之一。那么&#xff0c;如何保护你的网站免遭DDoS攻击呢?下面将介绍…

自动化物流运输设备模组要选择哪种类型?

在自动化物流运输设备中&#xff0c;选择合适的模组类型取决于具体的运输需求和应用场景。 1、同步带模组&#xff1a;同步带模组是一种低噪音、低成本的物流运输设备&#xff0c;适用于中短距离、轻型货物的运输。它采用同步带传动的方式&#xff0c;具有传动准确、运行稳定、…

代码随想录二刷 | 链表 | 翻转链表

代码随想录二刷 &#xff5c; 链表 &#xff5c; 翻转链表 题目描述解题思路 & 代码实现双指针法递归法 206.翻转链表 题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4…

G管螺纹尺寸对照表

G管螺纹尺寸对照表 NPT 是 National (American) Pipe Thread 的缩写&#xff0c;属于美国标准的 60 度锥管螺纹&#xff0c;用于北美地区&#xff0e;国家标准可查阅 GB/T12716-1991 PT 是 Pipe Thread 的缩写&#xff0c;是 55 度密封圆锥管螺纹&#xff0c;属惠氏螺纹家族&a…

URDF文件

URDF&#xff08;Universal Robot Description Format&#xff09;&#xff1a;通用机器人描述格式&#xff0c;包含的内容有&#xff1a;连杆、关节&#xff0c;运动学和动力学参数、可视化模型、碰撞检测模型等。 父子关系树&#xff1a;连杆link1 --> 关节joint1 -->…

【TEC100TAI-KIT】青翼科技基于复微青龙JFMQL100TAI的全国产化智能异构计算平台

板卡概述 TEC100TAI-KIT是我司自主研制的一款基于上海复旦微电子复微青龙100TAI的全国产智能异构计算平台开发套件&#xff0c;该套件包含1个复微青龙100TAI核心板和1个PCIE规格的扩展底板。 该套件的核心板集成了100TAI的最小系统&#xff0c;包含一颗JFMQL100TAI900片上系统…

SpringCloud微服务:Nacos和Eureka的区别

目录 配置&#xff1a; 区别&#xff1a; ephemeral设置为true时 ephemeral设置为false时&#xff08;这里我使用的服务是order-service&#xff09; 1. Nacos与eureka的共同点 都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测 2. Nacos与Eu…

阅读记录【arXiv2020】 Adaptive Personalized Federated Learning

Adaptive Personalized Federated Learning 论文地址&#xff1a; https://arxiv.org/abs/2003.13461 摘要 对联邦学习算法个性化程度的研究表明&#xff0c;只有最大化全局模型的性能才会限制局部模型的个性化能力。在本文中&#xff0c;我们提倡自适应个性化联合学习&…

纽扣电池/含纽扣电池产品上架亚马逊各国法规标准要求16 CFR 第 1700.15/20 ANSI C18.3M(瑞西法案认证)

亚马逊纽扣电池认证标准有哪些&#xff1f; 一、美国站&#xff08;亚马逊纽扣电池/含纽扣电池商品&#xff09;安全测试标准要求&#xff1a; 16 CFR 第 1700.15 、16 CFR 第 1700.20 ANSI C18.3M、警示标签声明要求&#xff08;第 117-171 号公众法&#xff09; 二、澳大…

【EI会议征稿】第四届公共管理与智能社会国际学术会议(PMIS 2024)

第四届公共管理与智能社会国际学术会议&#xff08;PMIS 2024) 2024 4th International Conference on Public Management and Intelligent Society 第四届公共管理与智能社会国际学术会议将在2024年3月15-17日在长沙召开。PMIS 2024由中南大学社会计算研究中心、中南大学公共…

Open AI开发者大会:AI“科技春晚”

ChatGPT的亮相即将满一年之时&#xff0c;OpenAI举行了自己的首次开发者大会。OpenAI首席执行官Sam Altman宣布推出最新的大模型GPT-4 Turbo。正如“Turbo”一词的中文含义“涡轮增压器”一样&#xff0c;本次发布会上&#xff0c;OpenAI的这款最新大模型在长文本、知识库、多模…

安装2023最新版PyCharm来开发Python应用程序

安装2023最新版PyCharm来开发Python应用程序 Install the Latest JetBrains PyCharm Community to Develop Python Applications Python 3.12.0最新版已经由其官网python.org发布&#xff0c;这也是2023年底的最新的版本。 0. PyCharm与Python 自从1991年2月20日&#xff0…