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就能直接进行连接了而不需要服务器中介。

相关推荐
一只小bit3 小时前
Linux网络:阿里云轻量级应用服务器配置防火墙模板开放端口
linux·网络·阿里云
BachelorSC5 小时前
【网络工程师软考版】网络安全
网络·安全·web安全
(Charon)6 小时前
【C语言网络编程】HTTP 客户端请求(基于 Socket 的完整实现)
网络·网络协议·http
Bryce李小白7 小时前
Kotlin实现Retrofit风格的网络请求封装
网络·kotlin·retrofit
Lovyk8 小时前
Linux网络管理
服务器·网络·php
MC皮蛋侠客9 小时前
AsyncIOScheduler 使用指南:高效异步任务调度解决方案
网络·python·fastapi
DAWN_T1710 小时前
关于网络模型的使用和修改/保存和读取
网络·人工智能·pytorch·python·深度学习·神经网络·机器学习
fake_ss19811 小时前
计算机网络基础(一) --- (网络通信三要素)
java·网络·tcp/ip·udp·信息与通信
GISer_Jing12 小时前
WebSocket双向通信——引入进行功能优化
网络·websocket·网络协议
2501_9200470312 小时前
python-网络编程
开发语言·网络·python