7

背景

我正在尝试将远程计算机桌面的实时提要流式传输到我的应用程序。为此,我使用了面向连接的 (TCP) 套接字,捕获客户端计算机的帧并将其发送到服务器。

我的研究

我每 100 毫秒(即 10 FPS)发送一个帧(屏幕截图)。每帧大约 145kb,这意味着我需要每秒发送 1450kb(相当于 1.4 兆字节,每秒 11 兆位)。

我的互联网的最大下载速度为每秒 0.32 兆位。因为我需要每秒发送 11 兆比特的数据,这意味着我的互联网比我需要的要慢 10.6 兆比特。因此,根据我的计算,为了有效地流式传输桌面,我需要每帧大约为 4.5kb(4608b + 20b TCP 标头),这在当前系统下实际上是不可能的,即使仅发送桌面的更新部分并压缩位图也是如此.

问题

我不确定系统是否完全受到上传速度的限制。我认为这是因为 4.5kb 的大小非常小。我可以使用类似的软件(Teamviewer、Join.me 和 Skype 等软件)完美流畅地流式传输我的桌面,即使这些软件包使用的协议比我智能得多(这里是个好问题)我非常怀疑它们只发送 4.5kb每个框架/桌面更新。

所以我的问题最终是;我的计算是否准确,为什么?我的目标是确定每个帧的合适大小,然后我可以努力达到该大小并计算不同速度连接的质量/间隔。当然,我对任何对我的情况有帮助的评论/答案都很感兴趣,但我接受的答案将是回答我实际问题的答案。

4

2 回答 2

1

首先不要混淆位和字节,因为你的计算有点混乱。

其次,你只看你发送的对象的大小,你忘记了数据包本身,它增加了一点大小,不要忘记你将忍受的 TCP 延迟。如果您的网络对发送流量如此敏感,我建议升级它,或使用更好的压缩。

总结一下,我总是说:网络支持的带宽等于所需路径上带宽最小的部分。

例如:10M => 100K => 1M ==> 10M(这里最大速度为 100K)

于 2013-03-07T14:43:44.813 回答
0

TCP客户端的最大发送速度是否完全受限于客户端计算机的上传速度

这是一个毫无意义的问题。对于任何给定的连接,它们都是一样的,它们都取决于它们之间最慢链接的速度。

于 2013-03-07T23:43:35.617 回答