我们决定使用 UDP 发送大量数据,例如:
- 客户端 [C++](使用轮询)
- 服务器 [JAVA] [Apache MINA]
我的数据报最大只有 512 字节,以避免在传输过程中出现碎片。
每个数据报都有一个我添加的标题(里面有一个 ID),以便我可以监控:
- 收到多少数据报
- 收到哪些
问题是我们发送数据报的速度太快了。我们像第一个那样收到,然后有很大的损失,然后得到一些,又是大的损失。接收到的 ID 数据报序列类似于 [1]、[2]、[250]、[251]......
问题也发生在本地(仅使用 localhost,1 个网卡) 我不关心丢失数据报,但这里不是由于网络导致的简单丢失(我可以处理)
所以我的问题是:
- 在客户端,我怎样才能得到最好的:
- 设置,或套接字设置?
- 尽可能多地发送而不发送太多?
- 在服务器上,Apache MINA 似乎说它自己管理〜“缓冲区套接字的大小”〜但还有一些设置需要关心吗?
- 知道我们的连接已经允许我们在下载常规文件时至少拥有这个带宽,是否有可能达到 1MB/s?
现在,当我们要传输约 4KB 的坐标信息时,我们必须添加睡眠时间,以便等待 5 分钟或更长时间才能完成,知道我们应该每分钟发送至少 10MB 是一个大问题坐标信息。