浏览器交互实验
先预测结果,再点击按钮。三个实验全部在当前浏览器里计算,不需要安装 EasyTier,也不会向设备或公共节点发出探测。示意地址来自文档保留网段。
实验一:数据包怎样走完一次往返
先选择直连,点击“下一步”,观察业务目标与外层端点。再选择中继:R 出现时,内层业务目标会不会改变?回程里,哪些字段需要交换?
A发起请求的电脑
B8080 服务所在电脑
A 发出业务请求
应用使用 TCP。这里追踪其中一个 IP 包;完整 HTTP 请求通常包含许多包。
内层 · 业务 TCP 包(教学视角)
10.144.144.1:53124→10.144.144.2:8080外层 · 互联网 UDP 端点
—→—已建立的网络被简化为一个包的轨迹;握手、TCP 确认、重传与实际链路时序没有展开。
教学模型 · 公网地址来自文档保留网段,不能用于实际连接;浏览器不会发送网络探测。
在本模型中,外层使用 UDP,业务使用 TCP,安全模式会话已经建立。浏览器展示的内层字段是教学视角;它们并不是暴露给中继的明文字段。完整解释见第 15 章,加密边界见第 12 章。
实验二:改变 NAT 的映射与过滤条件
选择“需要双方发包”,先观察 A 第一次探测,再观察 B 主动发包。找出哪张表里的过滤条件变化了。选择“固定端点探测失败”,观察 STUN 报告的端口和新分配端口为什么不一致。
- 映射规则
- 同一本地 UDP 端点复用外部端口
- 过滤规则
- 只允许本地曾发包的远端端点
尚未探测
两台设备在不同私网。映射表暂为空;先预测一下 A 单方面发包能否到达 B。
| 节点 | 私网端点 | 外部端点 | 映射目的 | 允许的远端 |
|---|---|---|---|---|
| 还没有产生映射。点击“下一步”发出第一次探测。 | ||||
A → B:尚未成立B → A:尚未成立探测进行中
教学模型 · 独立呈现映射与过滤;没有模拟端口预测、映射过期、随机丢包或全部打洞策略。失败仅指当前预设的固定端点探测。
这里故意分开映射和过滤。最后一种预设只说明当前固定端点探测失败,真实 EasyTier 还可能重试或采用其他打洞策略。基础见第 06 章,探测流程见第 11 章。
实验三:断开链路,观察路径
默认最少跳数选择 A→B。切换到最低演示延迟后,为什么经过 C 更合适?断开 C 相关链路,观察 R 是否成为下一条路径;再把 A 的所有出边断开。
A → B
1 跳 · 演示延迟总和 80 ms。当前使用直连。
教学模型 · C、R 是普通转发节点;采用静态链路延迟简单相加、即时重新选路。真实 EasyTier 的测量、成本、拓扑同步与收敛并不等于此模型。
每条链路的数字是教学成本,简单相加不代表真实测量方法,也不承诺立即完成故障收敛。这里 C、R 是普通 EasyTier 转发节点,共享节点还具有跨网络转发边界。详见第 14 章。
三个检查理解的问题
为什么业务 TCP 可以走在 UDP 隧道里?
原始 TCP/IP 包成为隧道的载荷,外层 UDP 负责承载。两层协议承担不同职责,业务 TCP 的确认、排序与重传仍由业务两端处理。
STUN 报告一个公网端点,为什么还可能连不上?
NAT 对新目的可能创建不同映射;过滤、防火墙和链路也可能拒绝包。知道地址不等于到达条件成立。
所有路径断开时,换路由指标能修复吗?
不能。指标只在已有可达路径中选择;至少先恢复一条完整连接路径。