Google 开源非透明 UDP 代理 —— Quilkin
传统上,实时多人游戏的专用游戏服务器会使用定制的 UDP 协议,用于游戏内玩家之间的通信和游戏同步。这种通信通常被捆绑在单体式游戏服务器和客户端中,并将通信协议的技术功能(如自定义的网络物理同步、安全、访问控制、遥测和指标)与物理模拟、AI 计算等计算要求极高的功能相结合。
在快节奏的多人游戏中,一段游戏的完整模拟通常发生在一个单体的专用游戏服务器的内存中,其职责涵盖了从网络物理学、AI 模拟,以及客户端与服务器通信等方方面面。由于整个游戏的状态是内存常驻的,每个客户端都直接连接到玩家正在玩的专用游戏服务器,这就带来了一些挑战。
- 每个专用游戏服务器都是单点故障。如果它发生故障,那么整个游戏会话都会产生错误,这使得它容易成为攻击者的目标;
- 连接到游戏服务器的 IP 和端口是公开的,并暴露给游戏客户端,使其很容易被攻击者发现并锁定目标;
- 游戏服务器模拟和网络通信的多个方面被紧密地耦合在同一个过程中,使得重用和模块化更加困难,并扩大了性能问题的风险。
通过在低延迟网络中的专用游戏服务器前使用多人 UDP 流量代理,我们可以解决以下这些关键挑战:
- 更高的可靠性:代理提供了冗余的通信入口点,UDP 数据包可以被发送到任何数量的代理,并被路由到专用游戏服务器。虽然专用游戏服务器通常仍然存在单点故障,但代理提高了通信层的冗余度和潜在的故障转移;
- 更高的安全性:专用游戏服务器的 IP 和端口不再是公开的,游戏客户端只能看到代理池的一个子集;
- 更好的可扩展性:可以将通信协议、指标、通信安全和访问控制的各个方面移到代理中,这就把非游戏的具体计算从你的游戏服务器的处理中剥离出来;
因此,整个系统更具有弹性。不过到目前为止,上述这些功能仅适用于拥有资源来构建自己专有技术的大型游戏工作室。而 Google 认为为游戏行业的每个人创造公平的竞争环境是一项重要且值得的努力,因此 Google 与 Embark 合作,共同发起并开源了 Quilkin 这个项目。
Quilkin 是一个 UDP 代理,由 Google 与 Embark Studio 合作开发,为高性能的实时多人游戏量身定做,以提供一个标准的、开源的解决方案。其目的有两个方面:
- 将安全、访问控制、遥测和指标等通用功能从单一的专用游戏服务器和客户端中剥离出来;
- 以一种可组合和可配置的方式提供上述这些通用功能,这样它就可以在广泛的多人游戏中重复使用。
这种可重复使用的基础使游戏开发者能够将更多的时间集中在构建多人通信协议这类特定于游戏的方面,而不是那些通用层面。
Quilkin 旨在用于游戏客户端后以及专用游戏服务器前,并提供以下主要优势:
- 混淆:对 UDP 数据进行非透明的代理,使你的游戏架构的内部状态不易被攻击者看到;
- 开箱即用:用于 UDP 数据包流量和通信;
- 可见性:一套可组合的处理过滤器,可应用于路由、访问控制、速率限制等方面;
- 灵活性:能够作为独立的二进制文件使用,不需要改变客户/服务器,也可以作为 Rust 库使用,这取决于你希望为你的系统和你希望建立的自定义处理过滤器进行多深层次的整合;
- 兼容性:如果需要,可以通过 Rust FFI 与现有的 C/C++ 代码库集成;
- 多种集成模式,允许你选择对你的架构和现有平台有意义的集成程度;
感兴趣的开发者,尤其是游戏开发者可以访问 GitHub 查看 Quilkin 源代码,或访问 Google 博客了解具体使用方式及项目未来发展方向。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Plasma Mobile 21.07 发布
Plasma Mobile 21.07 现已发布。Plasma Mobile 为移动设备提供免费、用户友好、保护隐私和可定制的平台,由不同的发行版(例如 postmarketOS、Manjaro、openSUSE)提供,并且可以在发行版支持的设备上运行。 主要更新内容 Shell 通过提高顶部面板的性能使 shell 更具响应性。 Dialer 该版本解决了一些关于国际号码的问题:在处理没有国家代码的号码时,以前必须根据区域设置来猜测号码来自哪个国家,但现在还要考虑手机所在的国家/地区并从手机信号塔获取信息。此外还修复了可能导致拨号器在接听电话时显示错误联系人姓名的问题。 Spacebar 该版本的 SMS 应用程序获得了多项 UI 改进,包括正确报告发送消息时的错误,并且显示用户从哪个号码发送短信;此外聊天现在可以正确排序。 KWeather 该版本允许用户选择不同的位置,并且优化了外观,以为应用程序中的对话框提供一致风格,并且推出了用于平面模式的新内联页面指示器。 KClock 该版本致力于确保在所有情况下都能在电话暂停时接收警报,并且始终应用正确的主题,尤其是在非 Plasma ...
- 下一篇
DevOps 成功的最大障碍:文化问题
Puppet 发布的2021 年度 DevOps 状况调查报告指出,83% 的 IT 决策者表明他们的组织正在实施 DevOps 实践;但与此同时,绝大多数组织仍然停留在 DevOps 演变的中期阶段。其中,文化问题是 DevOps 取得成功的最大障碍。 这是 Puppet 进行的第十份 DevOps 状况报告。该报告基于对超过 2650 名 IT、开发和信息安全专业人士的调查,以深入了解 DevOps 实践高度发展的组织与 DevOps 发展停滞不前的组织之间的鸿沟。 调查结果显示,只有 18% 的受访者拥有高效的DevOps 团队,4% 处于低功能状态,大多数(78%)处于中间状态。虽然处于中间状态的组织表示,他们正在建立 DevOps 文化。但 Puppet field CTO Nigel Kersten认为,“仍然存在组织对变革的抵制,这是一个真正的问题。而且人们真的没有看到他们实际上试图通过 DevOps 实现的实际价值。” 中层最常见的文化阻碍因素包括有:不鼓励风险的文化 (21%)、不明确的责任 (20%)、不优先考虑快速流程优化 (18%) 和不充分的反馈循环 (17%...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Thymeleaf,官方推荐html解决方案