
linux测试包转发率,提⾼ROS⼩包转发速率-RouterOS-⾃由的
⽣活_软路由论坛-。。。
⼩包转发效率低下,这既不是SYN问题,也与QUEUE⽆关,根源在于:
1、 操作系统对⼤量随机中断(interrpt)的性能低下:PC体系架构的系统中,⽹卡接收数据(RECV)基于中断机制(IRQ)。以前窄带时代带宽
⼩,每秒产⽣IRQ次数少,占⽤CPU处理资源也就少。在宽带环境下,当每秒IRQ数量达到10K以上时,CPU就忙不赢了。
2、操作系统从kernel到ur-space的内存复制(copy)效率低下。
为解决IRQ处理瓶颈,现代操作系统改变了⽹卡的IRQ处理机制,提⾼了⽹络处理效率:
提⾼⽹络性能的⼏种技术
1、FreeBSD下的device polling
关闭⽹卡的中断⽅式,使⽤轮循⽅式收发报⽂,可以⼤⼤提⾼⼩包(如syn flood,udp flood)下的路由性能和路由器的稳定性,提升率可以超
过100M线速。
2、Linux2.6下的NAPI(New API)
关闭⽹卡的中断⽅式,使⽤轮循⽅式收发报⽂,可以⼤⼤提⾼⼩包(如syn flood,udp flood)下的路由性能和路由器的稳定性,提升率可以超
过100M线速,但远低于FreeBSD下的decice_polling。
3、Linux下的Timer_bad⽹卡驱动程序(Tuplit⽹卡)
关闭⽹卡的中断⽅式,使⽤基于⽹卡上定时器进⾏定时查询⽅式收发报⽂,可以⼤⼤提⾼⼩包(如syn flood,udp flood)下的路由性能和路
由器的稳定性,提升率可以超过100M线速,但远低于FreeBSD下的decice_polling。
4、Linux下的NAPI和Circular Buffer技术(DMA—ur_space技术)
关闭⽹卡的中断⽅式,使⽤轮循⽅式收发报⽂,可以⼤⼤提⾼⼩包(如syn flood,udp flood)下的路由性能和路由器的稳定性,提升率可以超
过1000M线速,略⾼于FreeBSD下的decice_polling。
使⽤Circular Buffer技术的NAPI由libpcap_MMAP⽹络库⽂件包实现,它将⽹卡上的数据包通过DMA⽅式直接copy到ur-space⽽⽆
须绕道kernel,⼤⼤提⾼效率。可惜的是,⽬前linux还未正式采⽤此技术,也未得到完备测试。
⽬前做得最好的、最稳定成熟的应该算FreeBSD4.10以后的版本。据测试,未启⽤device polling前64byte⼩包的转发速率只能达到
20Mbps带宽(CPU100%),启⽤后则可达到600Mbps(cpu5%);对于⼤包则可达990Mbps(cpu5%)。
本⼈经长期测试、使⽤,证明使⽤FreeBSD device polling+OpenBSD的IPF的SYN保护,可保证在⼤量SYN攻击(400K包/秒)下CPU只
2%,且系统正常⼯作。
以下为参考资料:
1、Circular Buffer
2、使⽤Circular Buffer和NAPI的⽹卡驱动(e1000):
3、DAG
4、Device Polling Support for FreeBSD

本文发布于:2023-05-23 10:55:28,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/168481052950599.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:linux测试包转发率,提高ROS小包转发速率-RouterOS-自由的生活_软路由论坛-。。。.doc
本文 PDF 下载地址:linux测试包转发率,提高ROS小包转发速率-RouterOS-自由的生活_软路由论坛-。。。.pdf
| 留言与评论(共有 0 条评论) |