我对客户端服务器有所了解。客户端仅处理输入,将其发送到服务器。服务器处理输入,逻辑,然后将程序的映像发送到客户端。客户端在用户的屏幕上打印图像。使用udp,可以容忍图像中的轻微伪影。
这些图片通过互联网传输的速度有多快?他们每秒至少可以旅行5次吗?我手边没有2台计算机来测试它。
编辑:还有一个问题 - UDP协议有多可靠?有多少像素会损坏?说,平均10%?
EDIT2:例如,我有一个320x200的32位图像(红色,绿色,蓝色+ alpha)。这是〜200万比特。图像从服务器到达客户端需要多长时间,如果我的ping是X,我的上传速度是Y Mbps,我的下载速度是Z Mbps?
答案 0 :(得分:3)
您的问题的答案在很大程度上取决于所涉及机器的互联网连接。特别是,如果程序是图形化的,那么图像使用的带宽可能相当大,特别是如果您的客户端位于通过蜂窝电话系统连接的移动设备上。
如果您有足够的带宽,如果客户端和服务器都在美国,或者两者都在欧洲,那么大多数时间应该可以实现每秒5次往返。例如,交互式计算机游戏依赖于每秒4-5次往返以实现平滑游戏,并且仅偶尔会出现故障。如果客户端和服务器位于不同的大陆,特别是如果它们位于世界的相对两侧,则这可能更加困难,因为光延迟的速度开始使用可用传输时间的很大一部分。在最糟糕的情况下,比如说中国和阿根廷之间,光速延迟的理论速度单独将网络限制在每秒不到8次往返,因此在实际网络和带宽限制的情况下,每秒5次往返可能很难实现。
UDP的可靠性在很大程度上取决于连接的拥塞程度。在没有拥塞的网络连接上,您可能会丢失1%或更少的数据包。在一个非常拥挤的网络连接上,它可能会更糟糕 - 我已经看到80%的数据包丢失的情况。
在未拥塞的网络上,图像从服务器传输到客户端的时间为
(ping time)/2 + (1-packet overhead)*(image size)/(minimum bandwidth)
数据包开销只有几个百分点,因此您可以放弃该术语。最小带宽将是服务器上载带宽和客户端下载带宽的最小值。请注意,图像大小可能会通过压缩大幅减少。但是,不要忘记,您还需要留出时间将输入从客户端发送到服务器,这至少会增加另一个(ping时间)/ 2。