NAT——网络地址转换、NAPT

2024-02-07 00:52
文章标签 转换 nat 网络地址 napt

本文主要是介绍NAT——网络地址转换、NAPT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络地址转换 NAT (Network Address Translation)

·1994 年提出。

·需要在专用网连接到互联网的路由器上安装 NAT 软件。

·装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球 IP 地址

·所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换全球 IP 地址,才能和互联网连接。

问题:在专用网上使用专用地址的主机如何与互联网上的主机通信(并不需要加密)?

解决:

1.再申请一些全球 IP 地址。但这在很多情况下是不容易做到的。

2.采用网络地址转换 NAT这是目前使用得最多的方法。

网络地址转换的过程

·在内部主机与外部主机通信时,在 NAT 路由器上发生了两次地址转换

        离开专用网时:替换源地址,将内部地址替换为全球地址。

        进入专用网时:替换目的地址,将全球地址替换为内部地址。

NAT 地址转换表举例

·当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网。

·可以使专用网内较多数量的主机轮流使用 NAT 路由器有限数量的全球 IP 地址。

通过 NAT 路由器的通信必须由专用网内的主机发起,因此,专用网内部的主机不能充当服务器用。

网络地址与端口号转换 NAPT

·NAT 并不能节省 IP 地址。

·NAPT 可以使多台拥有本地地址的主机,共用一个 全球 IP 地址,同时和互联网上的不同主机进行通信。

·使用运输层端口号的 NAT 叫做网络地址与端口号转换 NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。

NAPT 地址转换表举例

·NAPT 把专用网内不同的源 IP 地址都转换为相同的全球 IP 地址,将 TCP 源端口号转换为新的 TCP 端口号(互不相同)。

·收到从互联网发来的应答时,从 IP 数据报的数据部分找出运输层端口号,从 NAPT 转换表中找到正确的目的主机。

欢迎一起学习~

这篇关于NAT——网络地址转换、NAPT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/686050

相关文章

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

在Java中将XLS转换为XLSX的实现方案

《在Java中将XLS转换为XLSX的实现方案》在本文中,我们将探讨传统ExcelXLS格式与现代XLSX格式的结构差异,并为Java开发者提供转换方案,通过了解底层原理、性能优势及实用工具,您将掌握... 目录为什么升级XLS到XLSX值得投入?实际转换过程解析推荐技术方案对比Apache POI实现编程

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

使用Python实现网页表格转换为markdown

《使用Python实现网页表格转换为markdown》在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,本文将使用Python编写一个网页表格转Markdown工具,需... 在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,以便在文档、邮件或

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Java如何将文件内容转换为MD5哈希值

《Java如何将文件内容转换为MD5哈希值》:本文主要介绍Java如何将文件内容转换为MD5哈希值的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java文件内容转换为MD5哈希值一个完整的Java示例代码代码解释注意事项总结Java文件内容转换为MD5

使用Java将实体类转换为JSON并输出到控制台的完整过程

《使用Java将实体类转换为JSON并输出到控制台的完整过程》在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用JSON格式,用Java将实体类转换为J... 在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用j

Java实现视频格式转换的完整指南

《Java实现视频格式转换的完整指南》在Java中实现视频格式的转换,通常需要借助第三方工具或库,因为视频的编解码操作复杂且性能需求较高,以下是实现视频格式转换的常用方法和步骤,需要的朋友可以参考下... 目录核心思路方法一:通过调用 FFmpeg 命令步骤示例代码说明优点方法二:使用 Jaffree(FF

C语言中的常见进制转换详解(从二进制到十六进制)

《C语言中的常见进制转换详解(从二进制到十六进制)》进制转换是计算机编程中的一个常见任务,特别是在处理低级别的数据操作时,C语言作为一门底层编程语言,在进制转换方面提供了灵活的操作方式,今天,我们将深... 目录1、进制基础2、C语言中的进制转换2.1 从十进制转换为其他进制十进制转二进制十进制转八进制十进

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基