计算机网络 | 什么是公网、私网、NAT?

news2025/1/19 7:45:22

关注:CodingTechWork

引言

  计算机网络是现代信息社会的基石,而网络通信的顺畅性和安全性依赖于有效的IP地址管理和网络转换机制。在网络中,IP地址起到了标识设备和进行数据传输的核心作用。本文将详细讨论公网IP、私网IP以及NAT转换等网络技术概念,帮助您更好地理解计算机网络的运作方式。

什么是IP地址?

  在进入公网IP和私网IP的讨论之前,我们首先要理解IP地址(Internet Protocol Address)。IP地址是网络上每一台设备的唯一标识符。它用于区分不同设备并确保数据能够精确地传输到目标设备。IP地址有两个版本:

  • IPv4:采用32位地址,通常用四个十进制数字表示(如:192.168.1.1)。
  • IPv6:采用128位地址,能够提供更多的地址空间。

公网IP地址

公网IP的定义

  公网IP地址是由互联网服务提供商(ISP)分配的IP地址,能够在互联网上被直接访问和识别。这些IP地址是全球唯一的,不同的设备和服务器通过公网IP地址与全球其他设备进行通信。

公网IP的特点

  • 唯一性:公网IP是全球唯一的,意味着一个公网IP地址只能指向一个特定的设备。
  • 直接可访问性:公网IP可直接与互联网中的其他设备建立连接,数据可以自由流动。
  • 有限性:由于IPv4地址空间有限,公网IP地址是宝贵的资源,尤其在IPv4时代,公网IP数量的匮乏引发了各种网络地址管理和优化措施。

公网IP的用途

  • Web服务器和网站:大多数网站和Web服务器使用公网IP,使得全球用户能够访问。
  • 邮件服务器:电子邮件传输依赖于公网IP地址。
  • 网络设备:如路由器、交换机、网络摄像头等,需要使用公网IP来进行远程访问。

私网IP地址

私网IP的定义

  私网IP地址是指在一个局域网(LAN)内部使用的IP地址。这些地址不能直接访问互联网,而是仅用于内部网络设备之间的通信。私网IP地址的范围是由国际互联网标准组织(IETF)定义的,专门保留给局域网使用。

私网IP的地址范围

根据RFC 1918标准,私网IP地址分为以下几个范围:

  • Class A:10.0.0.0 – 10.255.255.255
  • Class B:172.16.0.0 – 172.31.255.255
  • Class C:192.168.0.0 – 192.168.255.255

    这些私网IP地址不会在互联网上路由,它们只在局域网内部有效。

私网IP的特点

  • 不可直接访问互联网:私网IP地址不具有全球唯一性,因此不能直接访问公网。
  • 共享性:私网IP地址可以在多个不同的局域网中重复使用。
  • 节省公网IP资源:私网IP的使用能够大大减少对公网IP地址的需求。

私网IP的用途

  • 局域网通信:家庭网络、企业内部网络等通常使用私网IP进行设备间的通信。
  • 局域网内服务器:如打印机、文件服务器等设备通常使用私网IP地址。

NAT(网络地址转换)

NAT的定义

  NAT(Network Address Translation,网络地址转换)是一种技术,用于将私网IP地址转换为公网IP地址,反之亦然。NAT技术的主要作用是解决公网IP地址匮乏的问题,使得多个私网IP设备能够共享一个公网IP访问互联网。

NAT的工作原理

  NAT通常部署在路由器或网关上,当局域网中的设备需要访问互联网时,路由器会将设备的私网IP地址转换为公网IP地址。这种转换可以是一对一或多对一的方式。最常见的NAT形式是源地址转换(SNAT),即将内网设备的私网IP转换为公网IP。

NAT的类型

  • 静态NAT:静态NAT将一个私网IP地址映射到一个固定的公网IP地址。这种方式通常用于需要外部访问的服务器,如Web服务器、邮件服务器等。
  • 动态NAT:动态NAT将私网IP地址映射到一组公网IP地址中的一个。在访问请求时,动态NAT会随机选择一个公网IP进行映射。这种方式更为常见,适用于内网设备频繁访问互联网的场景。
  • 端口地址转换(PAT,Port Address Translation):PAT是NAT的一种形式,它将多个私网IP地址映射到同一个公网IP地址的不同端口上。通过这种方式,多个设备可以共享同一个公网IP地址,利用不同的端口进行区分。PAT常常用于家庭或小型企业网络。

NAT的优势

  • 节省公网IP资源:由于多个设备可以共享一个公网IP,NAT能够大幅度减少公网IP地址的需求。
  • 安全性提升:NAT可以隐藏内网设备的私网IP地址,外部网络无法直接访问内网设备,提供了一定程度的安全防护。

NAT的缺点

  • 访问限制:NAT可能导致某些应用(如VoIP、P2P等)无法正常工作,因为它改变了IP地址和端口号,可能会破坏应用程序的通信。
  • 性能开销:NAT需要实时转换IP地址和端口,可能会增加网络设备的处理负担,影响网络性能。

NAT与私网IP的关系

  NAT技术是实现私网IP地址与公网IP地址之间互通的桥梁。私网IP通常用来进行内部通信,而NAT则在网络边界提供了与公网的连接。由于公网IP的稀缺,NAT成为了连接大规模局域网和互联网的核心技术之一。

常见的NAT类型

SNAT

SNAT的定义

  SNAT(Source Network Address Translation)源地址转换是NAT的一种技术,用于修改数据包的源IP地址。SNAT通常用于局域网中的设备访问外部网络(如互联网)时,通过将其私网IP转换为公网IP来实现通信。

SNAT的工作原理

  当局域网中的设备发起一个到外部网络(例如互联网)的请求时,路由器或网关会将设备的源IP地址(即私网IP地址)转换为公网IP地址。返回数据包时,路由器会将目的IP地址转换回相应的私网IP地址,确保数据能够准确返回到源设备。

SNAT的示例

  假设有一个局域网内的设备使用私网IP地址192.168.1.10发起访问请求。该设备访问外部服务器时,路由器将其源IP地址192.168.1.10转换为公网IP地址203.0.113.5。

  • 请求时:私网设备192.168.1.10 -> 公网服务器 (通过路由器 SNAT 转换为公网IP 203.0.113.5)。
  • 返回时:公网服务器 -> 路由器(公网IP 203.0.113.5) -> 内网设备 192.168.1.10(通过SNAT还原)。

SNAT的应用场景

  • 家庭或小型企业网络:多个设备共享一个公网IP访问互联网。
  • 负载均衡:多个内部服务器共享单个公网IP进行外部访问。

DNAT

DNAT的定义

  DNAT(Destination Network Address Translation)目的地址转换是NAT的一种技术,用于修改数据包的目的IP地址。与SNAT相反,DNAT在外部设备(如互联网)访问内部网络时,将目标IP地址从公网IP地址转换为私网IP地址。

DNAT的工作原理

  当外部设备向公网IP地址发送请求时,路由器会根据NAT规则将目标地址(公网IP)转换为局域网设备的私网IP地址。这种方式使得外部设备能够访问内网中的服务(如Web服务器、FTP服务器等)。

DNAT的示例

  假设外部设备需要访问局域网内的Web服务器,该服务器的私网IP地址为192.168.1.20,路由器的公网IP地址为203.0.113.5。当外部设备向203.0.113.5发送HTTP请求时,路由器将请求的目标地址转换为192.168.1.20,并将数据包转发到Web服务器。

  • 请求时:外部设备 -> 路由器公网IP 203.0.113.5(路由器进行DNAT转换,将请求转发至192.168.1.20)。
  • 返回时:Web服务器 192.168.1.20 -> 路由器(NAT转换) -> 外部设备。

DNAT的应用场景

  • 远程访问:将外部访问请求转发到内网的Web服务器或其他服务。
  • 防火墙:使内网中的特定设备可以公开服务而不直接暴露其私网IP。

FNAT

FNAT的定义

  FNAT(Full Network Address Translation)全网络地址转换是一种NAT技术,通常,FNAT=SNAT+DNAT。

结论

  理解公网IP、私网IP和NAT转换是学习计算机网络的基础。公网IP作为设备在互联网上的唯一标识,私网IP为内部网络提供了通信空间,而NAT技术则通过将多个私网IP映射到少量公网IP,帮助我们实现资源共享和安全访问。随着网络环境的不断变化,NAT技术也在不断发展,提供更灵活和安全的解决方案。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI编程工具使用技巧——通义灵码

活动介绍通义灵码1. 理解通义灵码的基本概念示例代码生成 2. 使用明确的描述示例代码生成 3. 巧妙使用注释示例代码生成 4. 注意迭代与反馈原始代码反馈后生成优化代码 5. 结合生成的代码进行调试示例测试代码 其他功能定期优化生成的代码合作与分享结合其他工具 总结 活动介绍…

电梯系统的UML文档05

Dispatcher 不控制实际的电梯组件,但它在软件系统中是重要的。每一个电梯有一个ispatcher,主要功能是计算电梯的移动方向、移动目的地以及保持门的打开时间。它和系统中除灯控制器以外的几乎所有控制对象交互。 安全装置也是一个环境对象,它…

各种获取数据接口

各种获取数据免费接口 1.音频接口 代理配置 /music-api:{target:https://api.cenguigui.cn/,changeOrigin:true,rewrite:(path)>path.replace(/^\/music-api/,),secure:false}axios全局配置 import axios from axios;const MusicClient axios.create({baseURL: /music-a…

外包公司名单一览表(成都)

大家好,我是苍何。 之前写了一篇武汉的外包公司名单,评论区做了个简单统计,很多人说,在外包的日子很煎熬,不再想去了。 有小伙伴留言说有些外包会强制离职,不行就转岗,让人极度没有安全感。 这…

第十一章 图论

#include <iostream> #include <cstdio> #include <vector>using namespace std;const int MAXN 1000;vector<int> graph[MAXN]; //用向量存储邻接表中的每个点及其连接的的其他点int main(){return 0; } #include <iostream> #include &…

大数据中 TopK 问题的常用套路

大数据中 TopK 问题的常用套路 作者 Chunel Feng&#xff0c;编程爱好者&#xff0c;阿里巴巴搜索引擎开发工程师。开源项目&#xff1a;Caiss 智能相似搜索引擎 对于海量数据到处理经常会涉及到 topK 问题。在设计数据结构和算法的时候&#xff0c;主要需要考虑的应该是当前算…

RabbitMQ基础篇

文章目录 1 RabbitMQ概述1.1 消息队列1.2 RabbitMQ体系结构 2 RabbitMQ工作模式2.1 简单模式&#xff08;Simple Queue&#xff09;2.2 工作队列模式&#xff08;Work Queues&#xff09;2.3 发布/订阅模式&#xff08;Publish/Subscribe&#xff09;2.4 路由模式&#xff08;R…

【人工智能】:搭建本地AI服务——Ollama、LobeChat和Go语言的全方位实践指南

前言 随着自然语言处理&#xff08;NLP&#xff09;技术的快速发展&#xff0c;越来越多的企业和个人开发者寻求在本地环境中运行大型语言模型&#xff08;LLM&#xff09;&#xff0c;以确保数据隐私和提高响应速度。Ollama 作为一个强大的本地运行框架&#xff0c;支持多种先…

从玩具到工业控制--51单片机的跨界传奇【3】

在科技的浩瀚宇宙中&#xff0c;51 单片机就像一颗独特的星辰&#xff0c;散发着神秘而迷人的光芒。对于无数电子爱好者而言&#xff0c;点亮 51 单片机上的第一颗 LED 灯&#xff0c;不仅仅是一次简单的操作&#xff0c;更像是开启了一扇通往新世界的大门。这小小的 LED 灯&am…

Linux 音视频入门到实战专栏(视频篇)视频编解码 MPP

文章目录 一、MPP 介绍二、获取和编译RKMPP库三、视频解码四、视频编码 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; &#x1f4e2;本篇将介绍如何调用alsa api来进行音频数据的播放和录制。 一、MPP 介绍 瑞芯微提供的媒体处理软件平台…

ScratchLLMStepByStep:训练自己的Tokenizer

1. 引言 分词器是每个大语言模型必不可少的组件&#xff0c;但每个大语言模型的分词器几乎都不相同。如果要训练自己的分词器&#xff0c;可以使用huggingface的tokenizers框架&#xff0c;tokenizers包含以下主要组件&#xff1a; Tokenizer: 分词器的核心组件&#xff0c;定…

深度学习项目--基于LSTM的火灾预测研究(pytorch实现)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 LSTM模型一直是一个很经典的模型&#xff0c;这个模型当然也很复杂&#xff0c;一般需要先学习RNN、GRU模型之后再学&#xff0c;GRU、LSTM的模型讲解将…

社区版Dify实现文生视频 LLM+ComfyUI+混元视频

社区版Dify实现文生视频 LLMComfyUI混元视频 一、 社区版Dify实现私有化混元视频效果二、为什么社区版Dify可以在对话框实现文生视频&#xff1f;LLMComfyUI混元视频 实现流程图&#xff08;重点&#xff09;1. 文生视频模型支持ComfyUI2. ComfyUI可以轻松导出API实现封装3. Di…

SpringBoot的Bean-中级-作用域

5个作用域&#xff1a; 初级演示的是第一种默认的singleton&#xff1a;SpringBoot的Bean-初级获取bean对象-CSDN博客 中级-1&#xff1a;Lazy注解使其在使用的时候再实例化 中级-2&#xff1a;Scope("prototype")使其每次需要注入的时候都实例化新的对象 测试程序&…

放大芯片参数阅读

一、芯片的增益能力 1. GBW&#xff08;增益带宽积&#xff09; 例如&#xff0c;GBW (typ) 1 MHz。 增益带宽积&#xff08;Gain Bandwidth Product&#xff09;是一个关键参数&#xff0c;用于计算在特定频率下的最大增益。 定义公式为&#xff1a; 增益带宽G…

蓝桥杯算法日常|枚举[*找到最多的数]

**找到最多的数** 重点疑问总结&#xff1a; 1、数组输入输出c一般会采用那种方便的方式&#xff1f;&#xff1f; 用的就是我想的那种&#xff0c;就是用的最大范围定义的。 2、怎样方便给数组中每个数出现的次数计数&#xff1f;&#xff1f; 刚开始想的是&#xff1a;每个数…

Docker安装PostGreSQL docker安装PostGreSQL 完整详细教程

Docker安装PostGreSQL docker安装PostGreSQL 完整详细教程 Docker常用命令大全Docker 运行命令生成Docker 上安装 PostGreSQL 14.15 的步骤&#xff1a;1、拉取 PostGreSQL 14.15 镜像2、创建并运行容器3、测试连接4、设置所有IP都可以运行连接进入容器内 修改配置文件关闭容器…

基于机器学习随机森林算法的个人职业预测研究

1.背景调研 随着信息技术的飞速发展&#xff0c;特别是大数据和云计算技术的广泛应用&#xff0c;各行各业都积累了大量的数据。这些数据中蕴含着丰富的信息和模式&#xff0c;为利用机器学习进行职业预测提供了可能。机器学习算法的不断进步&#xff0c;如深度学习、强化学习等…

Go 语言 select 的实现原理

介绍 select是Go在语言层面提供的I/O多路复用的机制&#xff0c;其专门用来让Goroutine同时等待多个channel是否准备完毕:可读或可写。在Channel状态改变之前&#xff0c;select会一直阻塞当前线程或者goroutine。 特性&#xff1a; case 必须是一个通信操作&#xff0c;主要是…

Java 视频处理:基于 MD5 校验秒传及 ffmpeg 切片合并的实现

本文介绍两种网络技术实现方法。一是 MD5 校验秒传&#xff0c;服务器端用数据库记上传文件 MD5 值及存储路径&#xff0c;Java 代码接收客户端 MD5 值并查询校验&#xff0c;返回状态码。二是用 ffmpeg 切片视频成 m3u8 上传&#xff0c;异步合并文件实现视频按需加载。 1. …