【发布时间】:2016-03-02 21:41:27
【问题描述】:
背景:为模拟器(Windows、.net)编写多人游戏,使用点对点 UDP 传输。这个 Q 不是关于 UDP 与 TCP 的优势,也不是关于数据包头。这个Q的相关讨论是here。
考虑:我发送一个负载大小为 X 的 UDP 数据包,其中 X 可以是 1 到 500 个字节之间的任何值。
问:在传输过程中的任何时候,是否会/是否可以在数据包中临时添加松弛字节,即。字节除了到所需的标头/有效负载?例如,传输中的任何参与者(Windows 操作系统 - NAT - 互联网 - NAT - Windows 操作系统)是否会添加字节来满足特定的块大小,以便这些添加的字节成为传输的一部分(即使被切断稍后),并实际传输,从而消耗处理器(交换机,服务器 CPU)周期?
(询问的原因是在组合/分解数据包上花费了多少精力,当然:-)。将其压缩到最后一位(小,更多本地 CPU 周期)与允许数据包部分自描述(更大,更少本地 CPU)。请注意,数据包大小始终小于(我知道的离我最近的)MTU,通常接近 1500 字节)
谢谢!
【问题讨论】:
标签: network-programming udp multiplayer packets