【学习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 工作的核心,确保数据包能够在响应回来的时候,准确地找到原始的私有设备。
相关推荐
renke336418 分钟前
Flutter for OpenHarmony:构建一个 Flutter 色彩调和师游戏,RGB 空间探索、感知色差计算与视觉认知训练的工程实现
flutter·游戏
游戏开发爱好者821 分钟前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
王码码203526 分钟前
Flutter for OpenHarmony 实战之基础组件:第三十一篇 Chip 系列组件 — 灵活的标签化交互
android·flutter·交互·harmonyos
黑码哥42 分钟前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder
亓才孓1 小时前
[JDBC]元数据
android
独行soc1 小时前
2026年渗透测试面试题总结-17(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
金融RPA机器人丨实在智能1 小时前
Android Studio开发App项目进入AI深水区:实在智能Agent引领无代码交互革命
android·人工智能·ai·android studio
科技块儿1 小时前
利用IP查询在智慧城市交通信号系统中的应用探索
android·tcp/ip·智慧城市
独行soc2 小时前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
ujainu2 小时前
Flutter + OpenHarmony 实现经典打砖块游戏开发实战—— 物理反弹、碰撞检测与关卡系统
flutter·游戏·openharmony·arkanoid·breakout