使用mina传输50M的数据包,怎样分包传输最快?
最近做一个项目,测试网络带宽,client端传输一个50M的大数据包到server端,分别按20K、100k、1M分包传输,发现速度差别很大,怎样分包最合理,求解释!
filter用的这个ObjectSerializationCodecFactory
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
需要得到较为准确的传输时间,估算带宽,分包大小对传输时间有影响。
回复
流也可以实现。。。。
50M就流传输了,还分啥包啊。
ObjectSerializationCodecFactory这个filter的encoder中的IoBuffer设置的初始值64,可以自动增长,所以buffer这块应该没问题,感觉跟硬盘关系也不大,因为没有写硬盘。
这个看MTU单元,以及buffer,一般来说一个数据报刚好满足最大MTU单元,同时你的writeBuffer也和这个MTU最大单元一致,而且接收的客户度端的MTU和receiveBuffer的最大值也是这个。只要你切割的数据趋近于这个值(记得减去ip包的包头),当然也要看你的硬盘~
分100k传输最快,20k次之,1M最慢,如何使用流式处理呢?
可以认为20K, 100K,传输时间基本一样,别认为20K的传输时间就是100K的五分之一,就大错特错了。
另外,同时传送10个100K,与传送一个1MB又是不一样的。
最好的办法,使用流式处理,不间断传送数据,持续几十秒,方可得到准确结果。