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

devtools/2025/1/14 14:21:59/

关注: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.ppmy.cn/devtools/150427.html

相关文章

如何使用 PHP 操作亚马逊 S3 对象云存储

以下是使用PHP与亚马逊S3对象云存储(也有其他支持S3协议的云存储服务,原理类似)进行交互的常见文档接口使用示例,涵盖了基本的操作如上传文件、下载文件、删除文件、列举文件等内容。 ### 前提条件 1. 首先,你需要获取…

Vue.js Ajax(vue-resource)

Vue 要实现异步加载需要使用到 vue-resource 库。 Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。 <script src"https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script> Get 请求 以下是一个简单的 Get 请求实例&#x…

Windows 蓝牙驱动开发-简介

蓝牙(英语&#xff1a;Bluetooth)是一种无线通信技术标准&#xff0c;用来让固定与移动设备&#xff0c;在短距离间交换资料&#xff0c;以形成个人局域网(PAN)。其使用短波特高频(UHF)无线电波&#xff0c;经由2.4至2.485 GHz的ISM频段来进行通信。1994年由电信商爱立信(Erics…

迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-新增 topeet子系统

在 Openharmony 源码根目录下新建 topeet 文件夹及其文件夹下的文件。目录如下所示&#xff1a; 接下来依次解释一下每个文件的作用。 bundle.json&#xff1a; demos&#xff1a;组件目录 hdf_led&#xff1a;子组件目录 app&#xff1a;led 应用层目录 ├── BUILD.gn&#…

从字符串使用看Golang和Rust对内存使用的区别

从字符串使用看Golang和Rust对内存使用的区别 ​ 今天从Rust偶然回到Golang的世界&#xff0c;怎么写代码怎么别扭&#xff0c;总是忍不住在句子结尾加个分号…看到golang的字符串使用起来特别爽可以到处复制疯狂乱用&#xff0c;有一种从部队宿舍豆腐块被子的生活回归到居家肥…

监控易钢铁行业:IT 设备、动环设施全方位一体化监控

在当今数字化浪潮汹涌澎湃的时代&#xff0c;各行业对信息技术的依赖程度日益加深&#xff0c;钢铁行业亦不例外。作为钢铁行业的中流砥柱&#xff0c;某钢铁公司在贸易、信息科技、循环经济和物流等多元业务领域开疆拓土&#xff0c;取得了斐然佳绩。 然而&#xff0c;随着业务…

【华为OD-E卷 - 篮球比赛 100分(python、java、c++、js、c)】

【华为OD-E卷 - 篮球比赛 100分&#xff08;python、java、c、js、c&#xff09;】 题目 篮球(5V5)比赛中&#xff0c;每个球员拥有一个战斗力&#xff0c;每个队伍的所有球员战斗力之和为该队伍的总体战斗力。 现有10个球员准备分为两队进行训练赛&#xff0c;教练希望2个队…

【PPTist】插入形状、插入图片、插入图表

一、插入形状 插入形状有两种情况&#xff0c;一种是插入固定的形状&#xff0c; 一种是插入自定义的形状。 插入固定的形状时&#xff0c;跟上一篇文章 绘制文本框 是一样一样的&#xff0c;都是调用的 mainStore.setCreatingElement() 方法&#xff0c;只不多传的类型不一…