跳转到内容

EasyTier 网络模型

  • 每个 EasyTier 节点有一个 peer id;
  • 本机 peer id 在启动时生成;
  • 对端 peer id 在握手后获知;
  • Status.peer_id 是本机 id,Event.peer_id 在 PeerUp 时是对端 id。

日常排障主要看虚拟 IP 和虚拟网络里的主机名,peer id 用于日志与路由。

  • 节点在虚拟网络里的地址,例如 10.144.144.10/24;
  • 由静态配置或 DHCP 自分配得到;
  • 应用通过虚拟网卡访问;
  • 与物理网卡地址无关。
  • [[peer]].uri 指向一个可达的 EasyTier 节点;
  • ESP32 作为客户端主动连接入口;
  • 一个入口对应一条连接;同一 host:port 不会重复连接;
  • 入口列表可以很长,但同时连接数受 Kconfig 限制。
  • 直连节点:下一跳就是它自己;
  • 多跳节点:下一跳是路径上的第一个中转节点;
  • 目的节点不是直连时,数据会经过一个或多个中转节点;
  • 超过 7 跳丢弃,用于防环。

所以 ESP32 可以转发其他节点的数据,但它仍然不是“入口服务器”:它不监听端口,不能被别人主动连入。

角色是否支持
客户端(主动连入口)✅
数据中继(转发别人的数据)✅
入口服务器(监听、接受连接)❌
子网代理❌
广播/组播❌
  1. 应用通过虚拟网卡发出一个 IP 报文;
  2. 组件根据目的虚拟 IP 找到目标节点与下一跳,加密后发往入口;
  3. 中间节点按下一跳转发,最终到达目的节点;目的节点解密后投递给它的应用。

应用不需要感知这个过程,只需要像访问普通 IP 一样访问虚拟地址。

不是。TCP 只代表传输层通了;还要握手、同步路由、拿到虚拟地址,才是 Ready。

“虚拟 IP 是物理网卡的第二个地址”
Section titled ““虚拟 IP 是物理网卡的第二个地址””

不是。它是独立虚拟网卡上的地址;物理网卡继续承载入口连接与普通上网。

“ESP32 可以给其他节点分配地址”
Section titled ““ESP32 可以给其他节点分配地址””

不能。DHCP 只做本机自分配,不提供地址分配服务。

下一步:配置虚拟地址,或遇到问题看 常见问题 FAQ。