我们决定使用UDP协议在客户端[C++](使用poll)和服务器[JAVA] [Apache MINA]之间发送像坐标这样的大量数据。
为了尽可能避免传输过程中的分段,每个数据报最大只有512字节。我添加了一个带有ID的头部,以便可以监控接收到的数据报数量和哪些数据报已经被接收。
问题在于我们发送数据报的速度太快了。首先接收一些数据报然后就出现了大量的丢失,然后再接收一些又会丢失很多。我们接收到的ID数据报序列类似于[1],[2],[250],[251]......
这个问题也会发生在本地环境中(仅使用localhost一个网络卡)。 我并不关心丢失的数据报,但这里不是简单的网络丢失问题,这对我来说很难处理。
我的问题是:
- 在客户端上,如何获取最佳设置或套接字设置? - 如何以最大限度地发送数据而不过多地发送? - 在服务器端,Apache MINA似乎表示它自己管理“套接字缓冲区的大小”,但是还有一些需要关注的设置吗? - 如果我们的连接已经允许我们下载常规文件时至少具有这种带宽,请问是否可以达到大约1MB/s的速度? - 现在,当我们想要传输大约4KB的坐标信息时,我们必须添加睡眠时间,以便等待5分钟或更长时间才能完成传输。对于我们来说,这是一个很大的问题,因为我们应该每分钟至少发送10MB的坐标信息。
为了尽可能避免传输过程中的分段,每个数据报最大只有512字节。我添加了一个带有ID的头部,以便可以监控接收到的数据报数量和哪些数据报已经被接收。
问题在于我们发送数据报的速度太快了。首先接收一些数据报然后就出现了大量的丢失,然后再接收一些又会丢失很多。我们接收到的ID数据报序列类似于[1],[2],[250],[251]......
这个问题也会发生在本地环境中(仅使用localhost一个网络卡)。 我并不关心丢失的数据报,但这里不是简单的网络丢失问题,这对我来说很难处理。
我的问题是:
- 在客户端上,如何获取最佳设置或套接字设置? - 如何以最大限度地发送数据而不过多地发送? - 在服务器端,Apache MINA似乎表示它自己管理“套接字缓冲区的大小”,但是还有一些需要关注的设置吗? - 如果我们的连接已经允许我们下载常规文件时至少具有这种带宽,请问是否可以达到大约1MB/s的速度? - 现在,当我们想要传输大约4KB的坐标信息时,我们必须添加睡眠时间,以便等待5分钟或更长时间才能完成传输。对于我们来说,这是一个很大的问题,因为我们应该每分钟至少发送10MB的坐标信息。