绝对有挑战性! 又很有实际价值的一个问题: 如何让TCP传输更多的数据

talkin1 2006-02-25 05:38:46


描述:

我开发了一个通信程序, 测试20%丢包的环境中, TCP传数据的性能

结果, 我的程序要比 其他同类软件的带宽利用率低很多

也就是说在1分钟内, 抓包工具统计其他同类软件传输了600KB数据, 我的程序只传了300KB
(都是双向互发数据, 而且发的数据量基本一样多, 双方实际收到的数据也基本一样多)

保证测试了多次, 保证结果有效!



分析:

我们通过抓包工具, 分析其他软件主要有2个特点:
1) 数据包都很小
2) 收发频率都很快

所以我修改程序: 把socket的SO_SNDBUF设置为0, 并启动NODELAY选项

再测试发现我的程序也符合了1), 但2)不符合。
从抓包工具能明显看出其他软件收发频率 要比我的程序快很多

我的程序是纯粹通信,没有任何额外处理,可以肯定是使用tcp的问题




请教各位高手,是否遇到过这个问题?指点一下

或者给点你们认为可能有效的方法 万分感激!!
...全文
144 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CW_Wei 2006-02-25
  • 打赏
  • 举报
回复

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧