Google开源非透明UDP代理——Quilkin
共 1894字,需浏览 4分钟
·
2021-07-30 17:22
每个专用游戏服务器都是单点故障。如果它发生故障,那么整个游戏会话都会产生错误,这使得它容易成为攻击者的目标;
连接到游戏服务器的 IP 和端口是公开的,并暴露给游戏客户端,使其很容易被攻击者发现并锁定目标;
游戏服务器模拟和网络通信的多个方面被紧密地耦合在同一个过程中,使得重用和模块化更加困难,并扩大了性能问题的风险。
更高的可靠性:代理提供了冗余的通信入口点,UDP 数据包可以被发送到任何数量的代理,并被路由到专用游戏服务器。虽然专用游戏服务器通常仍然存在单点故障,但代理提高了通信层的冗余度和潜在的故障转移;
更高的安全性:专用游戏服务器的 IP 和端口不再是公开的,游戏客户端只能看到代理池的一个子集;
更好的可扩展性:可以将通信协议、指标、通信安全和访问控制的各个方面移到代理中,这就把非游戏的具体计算从你的游戏服务器的处理中剥离出来;
将安全、访问控制、遥测和指标等通用功能从单一的专用游戏服务器和客户端中剥离出来;
以一种可组合和可配置的方式提供上述这些通用功能,这样它就可以在广泛的多人游戏中重复使用。
混淆:对 UDP 数据进行非透明的代理,使你的游戏架构的内部状态不易被攻击者看到;
开箱即用:用于 UDP 数据包流量和通信;
可见性:一套可组合的处理过滤器,可应用于路由、访问控制、速率限制等方面;
灵活性:能够作为独立的二进制文件使用,不需要改变客户/服务器,也可以作为 Rust 库使用,这取决于你希望为你的系统和你希望建立的自定义处理过滤器进行多深层次的整合;
兼容性:如果需要,可以通过 Rust FFI 与现有的 C/C++ 代码库集成;
多种集成模式,允许你选择对你的架构和现有平台有意义的集成程度;
推荐阅读:
觉得不错,请点个在看呀