【学习VPN之路】NET技术

1. 为什么要学习NET技术?

因为在VPN服务端需要使用NET技术做IP包转发,所以要学习。

2. NET是什么?

NET (通常指的是 网络技术 )是与 路由地址转换数据包转发网络流量管理 相关的技术集合。它解决的是如何将数据包从源设备送到目标设备,如何处理网络中的地址转换(如 NAT ),以及如何优化网络中的数据流量(如 QoS)。简而言之,NET 技术就是用来确保网络数据可以有效、安全地在设备间传输,并提供路由、地址管理和流量控制等功能。

听起来和没说一样,看下面NET技术是如何工作的。

3. NAT 技术是如何工作的?

NAT 技术的核心工作原理是通过 地址转换 将私有网络中的设备的私有 IP 地址转换为公共 IP 地址,这样私有网络中的设备才能访问互联网。当互联网响应请求时,NAT 会根据一些规则(如端口号)将返回的数据包重新路由到正确的私有设备。

我们可以分解这个过程,明确数据包如何从公网回到私有网络中的主机。

NAT 过程详解:

  1. 发送请求:
    • 假设设备 A 在私有网络中,IP 地址为 192.168.1.100,它想要访问一个外部网站 http://example.com
    • 当设备 A 发送数据包时,它的 源 IP 地址192.168.1.100,但是为了让数据包能够穿越 NAT 路由器,它的 源 IP 地址 会被 NAT 转换为路由器的公共 IP 地址,假设公共 IP 为 203.0.113.5
    • 同时,NAT 路由器会为这个请求分配一个临时的 源端口 (如 50001),然后将数据包的源地址修改为 203.0.113.5:50001,目标地址是网站 http://example.com
  1. 请求到达互联网:
    • 现在,设备 A 的数据包已经被 NAT 路由器转发出去,目标服务器(example.com)收到的请求来源是 203.0.113.5:50001
    • 目标服务器返回响应时,它将数据包发送到 203.0.113.5:50001,而 NAT 路由器并不直接把这个数据包发到外部设备,它需要根据端口和映射来判断最终数据包的目标。
  1. 响应回到 NAT 路由器:
    • 目标服务器(example.com)将响应发送到 NAT 路由器的公共 IP 地址和端口 203.0.113.5:50001
    • NAT 路由器接收到返回的数据包后,检查该端口号是否存在于其 NAT 转发表中。在这个表中,记录了外部端口号(50001)和对应的 内部设备 IP 地址192.168.1.100)以及 内部端口号
  1. 数据包转发回私有网络:
    • NAT 路由器根据 端口映射 查找到原始请求的私有 IP 地址(192.168.1.100),并将响应数据包的目标 IP 地址修改为 192.168.1.100 ,目标端口号保持不变(即 50001)。
    • 然后,NAT 路由器将数据包转发给设备 A(192.168.1.100),这样设备 A 就收到了互联网响应的包。
  1. 设备 A 接收响应:
    • 最终,设备 A 收到从外部服务器返回的数据包,它的 目标地址192.168.1.100,端口号是之前分配的 50001,NAT 路由器根据这个端口号和 IP 地址,准确地将数据包转发到设备 A。

如何回到主机的关键:端口映射

在整个过程中,NAT 通过维护 端口映射表 来管理进出数据流。这个表的作用是:

  • 外部请求到达时,根据源 IP 和端口号将请求转发到内部的正确设备。
  • 返回响应时 ,NAT 根据 目标端口号 找到原始请求的私有 IP 地址,并将响应数据包正确转发回去。

NAT 在解决以下问题上非常有效:

  • 私有网络与公网地址的转换:它允许多个设备共享同一个公网 IP 地址。
  • 防火墙功能:NAT 隐藏了私有网络设备的 IP 地址,有效地避免了外部设备直接访问内部设备。

总结:

  • 当设备发起请求时,NAT 会改变其源 IP 地址和源端口,将请求发送到外部网络。
  • 当外部服务器响应时,NAT 路由器根据端口号查找映射表,将数据包正确路由回内部设备。
  • 端口映射 是 NAT 工作的核心,确保数据包能够在响应回来的时候,准确地找到原始的私有设备。
相关推荐
东风西巷2 小时前
X-plore File Manager v4.34.02 修改版:安卓设备上的全能文件管理器
android·网络·软件需求
yzpyzp2 小时前
Android 15中的16KB大页有何优势?
android
安卓开发者2 小时前
Android Room 持久化库:简化数据库操作
android·数据库
程序视点2 小时前
FadCam安卓后台录制神器:2025最全使用指南(开源/免费/息屏录制)
android
猿小蔡3 小时前
Android ADB命令之内存统计与分析
android
游戏开发爱好者84 小时前
没有 Mac,如何上架 iOS App?多项目复用与流程标准化实战分享
android·ios·小程序·https·uni-app·iphone·webview
你过来啊你5 小时前
Android开发中nfc协议分析
android
Auspemak-Derafru6 小时前
安卓上的迷之K_1171477665
android
梦想改变生活6 小时前
《Flutter篇第一章》基于GetX 和 Binding、Dio 实现的 Flutter UI 架构
flutter·ui·架构
你过来啊你6 小时前
Android埋点实现方案深度分析
android·埋点