Chinaunix

标题: 内核TCP\UDP转发问题 [打印本页]

作者: funtasty    时间: 2013-12-02 11:16
标题: 内核TCP\UDP转发问题
小弟最近调试内核发现1000M网卡的UDP转发速度在260M左右, 而相同的条件, TCP的转发速度就可以达到线速,1000M。
跪求各位达人给点提示, 是什么东西影响了UDP转发呢?
作者: funtasty    时间: 2013-12-02 11:19
测试工具是使用软件测试的数据包大小1024 ,MTU 1500。
好像是TCP转发中的小包较多,速度应该相对较慢呢。?
请大家给指点下 思路。先谢过了。
作者: humjb_1983    时间: 2013-12-02 12:31
funtasty 发表于 2013-12-02 11:16
小弟最近调试内核发现1000M网卡的UDP转发速度在260M左右, 而相同的条件, TCP的转发速度就可以达到线速,1 ...

猜测可能的原因:目前通用网卡通常只支持Tcp的TSO等特性,而在UDP方面支持应该比较差~,导致TCP发包分段通常由硬件完成,而UDP只能由软件完成,效率较差。
作者: smalloc    时间: 2013-12-02 13:53
桥模式?还是路由模式/
作者: mordorwww    时间: 2013-12-02 13:54
humjb_1983 发表于 2013-12-02 12:31
猜测可能的原因:目前通用网卡通常只支持Tcp的TSO等特性,而在UDP方面支持应该比较差~,导致TCP发包分段通 ...



楼主的是三层转发吧,三层转发还TSO么
作者: funtasty    时间: 2013-12-02 14:29
回复 3# humjb_1983
回三楼:
小弟的板子是CAVIUM平台,MIPS指令集。
发包的确是有一个硬件发包队列, 收包就是网卡。

在问下, 软件发包跟硬件发包效率会差很多嘛?
怎么能定位一下呢?
求指点。


   
作者: funtasty    时间: 2013-12-02 14:29
回复 4# smalloc
回四楼:
路由。


   
作者: mordorwww    时间: 2013-12-02 15:14
印象中CAVIUM收包发包都有硬件队列吧
作者: funtasty    时间: 2013-12-02 17:38
回复 9# mordorwww
是的, UDP和TCP 发送都是使用的这个队列。 这个队列处理UDP、tcp数据不同吗?
求指点。

   
作者: humjb_1983    时间: 2013-12-03 09:41
mordorwww 发表于 2013-12-02 13:54
楼主的是三层转发吧,三层转发还TSO么

GSO在三层应该还是起作用的~~,其他特性不确认
作者: humjb_1983    时间: 2013-12-03 09:42
funtasty 发表于 2013-12-02 14:29
回复 3# humjb_1983
回三楼:
小弟的板子是CAVIUM平台,MIPS指令集。

呵呵,这个硬件没玩过~~,如果跟硬件相关,可能就帮不上忙了~~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2