服务端中继
最简单的 TUN 使用方式
参考 simpletun 实现最简单的 P2P 连接.这里我们命名两个设备为 Client A 和 client B.
┌──────────┐ ┌──────────┐
│ Client A ├──┤ Client B │
└──────────┘ └──────────┘
服务端转发流量
在最简单的 P2P 连接基础上,添加一个中间设备进行流量转发,不改变报文内容,对于两个客户端来说与上一个场景的流量没有任何区别.
┌──────────┐ ┌────────┐ ┌──────────┐
│ Client A ├──┤ Server ├──┤ Client B │
└──────────┘ └────────┘ └──────────┘
添加路由功能
服务端添加路由功能,记录每个客户端虚拟地址与连接之间的映射关系,分析原始 IPv4 报文的目的地址,并通过映射找到对应连接发送数据.
┌──────────┐
│ Client D │
└────┬─────┘
│
┌──────────┐ ┌───┴────┐ ┌──────────┐
│ Client A ├───┤ Server ├───┤ Client B │
└──────────┘ └───┬────┘ └──────────┘
│
┌────┴─────┐
│ Client C │
└──────────┘