为什么tcp的cpu占用率远低于udp的占用率,同样的速率情况下

Oversense 2010-06-26 12:02:51

tcp,udp程序都是特别订制的最简单的程序,不需要怀疑应用层效率的问题

按道理 tcp 要做的事情比udp要多一些哟,反而cpu占用率低呢,

有谁知道这是怎么回事呢?
...全文
578 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianhaixin 2010-06-30
  • 打赏
  • 举报
回复
学习……
悟迟 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wwwllg 的回复:]

首先,tcp是在内核完成,统计cpu时,是统计不到tcp实现的占用的cpu
只能统计API调用占用的cpu.比如,send,sendto等。

第二,缓冲区大小不一样,缓冲区处理,tcp都在底层,不占cpu.
而udp,要处理很多事情,如果你的包设置的很小,比如小于1k,那么同样的数据量,udp显然要多得很多。

如果在局域网,可以加大发送的大小,比如,32k一发,会节省很多cpu.……
[/Quote]我期待的高人出现了,
UDX协议 2010-06-29
  • 打赏
  • 举报
回复
首先,tcp是在内核完成,统计cpu时,是统计不到tcp实现的占用的cpu
只能统计API调用占用的cpu.比如,send,sendto等。

第二,缓冲区大小不一样,缓冲区处理,tcp都在底层,不占cpu.
而udp,要处理很多事情,如果你的包设置的很小,比如小于1k,那么同样的数据量,udp显然要多得很多。

如果在局域网,可以加大发送的大小,比如,32k一发,会节省很多cpu.
Conry 2010-06-29
  • 打赏
  • 举报
回复
说明你的udp代码写的有问题
周药师 2010-06-29
  • 打赏
  • 举报
回复
TCP要经过3次握手完成一个业务流程
理论上TCP比UDP耗资源、而且也没有UDP传输快
xgPaul 2010-06-29
  • 打赏
  • 举报
回复
可能与UDP发包的确认机制有关
Oversense 2010-06-26
  • 打赏
  • 举报
回复
我实测的啊, 要测试, 才有发言权哟, 我在linux,window@ia32 linux@arm 等各种环境下都测试过的
Squall_zy 2010-06-26
  • 打赏
  • 举报
回复
你依据什么说这话的?
hastings 2010-06-26
  • 打赏
  • 举报
回复
mark..我的回复大家可以无视...直接看下一楼的...
Oversense 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wozhaolala 的回复:]
引用 2 楼 oversense 的回复:

我实测的啊, 要测试, 才有发言权哟, 我在linux,window@ia32 linux@arm 等各种环境下都测试过的
不光要测试,还得方法对,才有发言权,不过,我都没测试,所以我就不评论了,看楼下的
[/Quote]
lijianli9 2010-06-26
  • 打赏
  • 举报
回复
我也期待看过TCP,UDP实现的达人来讲下。
悟迟 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oversense 的回复:]

我实测的啊, 要测试, 才有发言权哟, 我在linux,window@ia32 linux@arm 等各种环境下都测试过的
[/Quote]不光要测试,还得方法对,才有发言权,不过,我都没测试,所以我就不评论了,看楼下的

18,363

社区成员

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

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