NAT、服务代理、内网穿透

文章目录

NAT技术

NAT技术即网络地址转换技术。用于将私有IP地址转换为公共IP地址,以便在互联网或其他外部网络中通信。为了解决IPv4协议下IP地址不足的问题,我们把IP地址分为私有IP和公有IP。具体的,在不用局域网中的两台主机,其私有IP可以是一样的,这样就有效的解决了IP地址不够的问题。下面具体介绍NAT技术工作原理。

NAT IP转换过程

  • NAT 路由器将源地址从 10.0.0.10 替换成全局的 IP 202.244.174.37
  • NAT 路由器收到外部的数据时, 又会把目标 IP 从 202.244.174.37 替换回10.0.0.10;
  • 在 NAT 路由器内部, 有一张自动生成的, 用于地址转换的表
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NATP

NATP是NAT技术的一种具体类型。如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的 IP 都是相同的. 那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候 NAPT 来解决这个问题了. 使用 IP+port 来建立这个关联关系

这种关联关系也是由 NAT 路由器自动维护的. 例如在 TCP 的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项。

NAT的优点

  • 节省公共IP地址:NAT允许多个设备共享一个或少量的公共IP地址,从而缓解了IPv4地址短缺的问题。
  • 提高网络安全性:由于外部网络无法直接访问内部网络的私有IP地址,NAT增加了网络的安全性,外部设备无法直接与内部设备通信,除非通过NAT设备的配置允许。
  • 支持私有网络的扩展:使用NAT,可以在内部网络中使用私有IP地址,这些地址可以重复使用于不同的网络,从而支持网络的扩展。

NAT的缺点

  • 增加延迟,NAT设备需要处理每个通过的数据包,可能会增加网络的处理延迟,尤其是在高流量的网络中。
  • 无法从 NAT 外部向内部服务器建立连接
  • 通信过程中一旦 NAT 设备异常, 即使存在热备, 所有的 TCP 连接也都会断开

代理服务器

正向代理

正向代理(Forward Proxy)是一种常见的网络代理方式,它位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这种方式,正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问控制等。

反向代理

反向代理服务器是一种网络架构模式,其作为 Web 服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站性能、安全性和可维护性等。

内网穿透和内网打洞

内网穿透

内网穿透是一种技术手段,用于使处于不同内网中的设备能够通过外部网络进行通信。内网设备通常使用私有IP地址,这些地址在互联网中不可路由,因此需要通过NAT或防火墙的转换来实现通信。内网穿透通常借助第三方服务器或中介(如云服务器)来实现。简单来说,主机A和主机B处于不同的内网中,主机A想要和主机B进行通信,可以先让主机B和服务器C建立连接,主机A再和服务器C建立连接,这样就能通过服务器来实现主机A和主机B的通信了。

内网穿透

内网打洞是一种技术,用于在两个都处于NAT后面的设备之间建立直接的点对点(P2P)连接,而无需借助中介服务器传输数据。这种技术常用于实时通信、文件共享等需要低延迟的应用场景。

主机A先访问服务器C,于是服务器就拿到了主机A的出入口路由器的地址加端口号的映射,主机B也是一样。然后服务器把A的出入口入口器的地址交给B,把B的出入口路由器的地址交给A.此后,主机AB就能直接进行连接了而不需要服务器中介。

相关推荐
xixiaoyunya2 小时前
内网穿透工具选型分析:从 ngrok 的局限性看国内开发场景下的替代方案
网络
FreeTinker2 小时前
远程查看的技术路径与工程选型分析
网络
YXXY3135 小时前
网络基础2(三)
网络
m24tyy6 小时前
常见空间测绘搜索引擎介绍和使用以及子域名的收集
网络·测试工具·搜索引擎
数据安全技术观察6 小时前
数据动态脱敏:让脱敏策略跟着数据目录走
大数据·网络·数据库
我爱cope6 小时前
【计算机网络 | 网络层1:网络层的职责:IP 协议究竟解决了什么问题?】
网络·tcp/ip·计算机网络
dogstarhuang9 小时前
OpenAI GPT-5.6 降价后如何重算 API 账单?多模型路由与成本治理实战
服务器·网络·人工智能·大模型·api·ai应用开发·接口管理
苏宸啊9 小时前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
奇树谦11 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
嵌入式阿蔡11 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库