Skip to content

它解决什么问题 ​

当前状态

1.1.3 已发布,有 Windows 和安卓客户端,装在真的电脑和手机上用过,但还没拿真的游戏在两台电脑之间联机过。 本页讲的是底层要解决的问题;做到哪了见路线图。

1.0.0 只做一件事:局域网游戏联机 —— 让不在一处的朋友,能用只支持局域网的游戏模式一起玩。 下面讲的是它底层要解决的问题:两台设备隔着网络怎么直接连上。

两台设备想直接说上话,为什么这么难 ​

把两台在不同网络里的设备连起来,听上去应该是件简单的事。实际上要依次跨过这些坎:

  • 它们不知道对方在哪。 家宽的公网 IP 会变,手机在基站之间漂移,没有一个稳定的地址可言。
  • 它们都躲在 NAT 后面。 双方都只能主动往外连,谁都无法被动接受连接。运营商级 NAT(CGNAT)让情况更糟 —— 你连自己的公网 IP 都没有。
  • 就算连上了,也不知道对方是谁。 IP 不是身份。
  • 有时候根本连不上。 对称型 NAT 撞上对称型 NAT,打洞成功率会显著下降,必须有中继兜底。
  • 网络还会变。 从 Wi-Fi 切到蜂窝网,刚建好的连接就断了,得重来一遍。

现有的解决办法基本分两类,各有各的代价:

办法代价
端口转发 / DDNS要有公网 IP,要会配路由器,CGNAT 下直接失效
内网穿透(frp 等)所有流量绕服务器,延迟和带宽成本都由你承担
传统 VPN星型拓扑,两台设备通信也要先绕一圈中心节点

Meshora 的取法 ​

把上面那串步骤全部自动化,收进一条固定的流水线:

设备接入时只需要证明"我是谁"(公钥即身份),剩下的交给系统。 能直连就直连,直连不了就走中继,网络变了就重新选路 —— 这些都不需要你知道。

对联机来说,"连上"还不够 ​

两台电脑互相 ping 得通,游戏里也未必能联机。局域网游戏找房间靠的是广播和组播, 而大多数只转发单播的虚拟网络会把它们丢掉 —— 结果就是连上了、房间列表里却看不见对方。

所以 1.0.0 在"连上"之上还要多做两件事:把游戏的广播和组播真正送到朋友那边, 以及选路时优先保证延迟稳定。详见局域网联机:1.0.0 做什么。

更长远的方向 —— 网络出口、按应用分流、通用组网 —— 都排在 1.0 之后。

它不适合什么 ​

把话说在前面,免得你花时间读完才发现不对路:

  • 不是匿名网络。 Meshora 的目标是连通性和可控性,不是隐藏你是谁。它不提供 Tor 那样的匿名性。
  • 不是加速器。 它不优化你到官方游戏服务器的线路,只连你和朋友的电脑。
  • 不是翻墙工具。 1.0.0 根本没有网络出口;以后的 Gateway 设计目的也只是给自己的设备提供一个可选出口,比如出差时回家上网。
  • 1.0.0 不是通用组网工具。 访问家里的 NAS、多地办公组网这些场景,1.0.0 不做针对性支持。
  • 不打算做无服务器的纯 P2P。 节点发现和穿透协调需要一个协调点。控制面可以自建,但它存在。

下一步:核心概念 会把 Node、能力、路径这三个词说清楚。

以 MIT 协议发布 · 首页背景由 Paper Shaders 驱动(Apache-2.0)