这个项目能做什么

GameNetworkingSockets是一个为游戏设计的跨平台传输层。它提供了一个面向连接的API,该API是面向消息的,而非面向流的。该库支持可靠和不可靠的消息类型,对于大于底层MTU的消息,会自动进行分片、重组和重传。可靠性层使用受DCCP(RFC 4340)和QUIC启发的ack-vector模型,实现了高效的接收方报告数据包状态和发送方重传决策。每包加密使用AES-256-GCM,密钥交换和证书签名遵循Google QUIC设计原则,采用Curve25519。其他功能包括模拟数据包延迟和丢失的工具、详细的统计测量,以及通过优先级或加权公平队列在多个消息流(通道)之间共享带宽的头阻塞控制。对等连接通过使用Google WebRTC ICE的NAT穿透实现,支持插件信令和对称连接模式。一个名为SteamNetworkingMessages的接口有助于将基于UDP的代码移植到P2P场景,每次发送时指定接收方地址。支持IPv6。该库已在游戏机、移动平台和非Steam商店上发布,用于跨平台使用。它不包括更高级别的实体序列化、增量编码或压缩。公共头文件位于include/steam,以ISteamNetworkingSockets接口为核心。一个纯C接口支持语言绑定,第三方绑定可用于C#、Go和Rust。'Steam'命名反映了Steamworks SDK API的一个子集,并非使用所必需;该代码可以独立使用。安全问题可以通过已发布的安全策略负责任地报告。构建说明在BUILDING.md中。