linux测试包转发率,提高ROS小包转发速率 - RouterOS - 自由的生活_软路由论坛 - Powered by Discuz!...
小包转发效率低下,这既不是SYN问题,也与QUEUE无关,根源在于:
1、 操作系统对大量随机中断(interrpt)的性能低下:PC体系架构的系统中,网卡接收数据(RECV)基于中断机制(IRQ)。以前窄带时代带宽小,每秒产生IRQ次数少,占用CPU处理资源也就少。在宽带环境下,当每秒IRQ数量达到10K以上时,CPU就忙不赢了。
2、操作系统从kernel到user-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_based网卡驱动程序(Tuplit网卡)
关闭网卡的中断方式,使用基于网卡上定时器进行定时查询方式收发报文,可以大大提高小包(如syn flood,udp flood)下的路由性能和路由器的稳定性,提升率可以超过100M线速,但远低于FreeBSD下的decice_polling。
4、Linux下的NAPI和Circular Buffer技术(DMA—user_space技术)
关闭网卡的中断方式,使用轮循方式收发报文,可以大大提高小包(如syn flood,udp flood)下的路由性能和路由器的稳定性,提升率可以超过1000M线速,略高于FreeBSD下的decice_polling。
使用Circular Buffer技术的NAPI由libpcap_MMAP网络库文件包实现,它将网卡上的数据包通过DMA方式直接copy到user-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
http://www.ntop.org/
2、使用Circular Buffer和NAPI的网卡驱动(e1000):
http://sourceforge.net/projects/e1000/
3、DAG
http://dag.cs.waikato.ac.nz/
4、Device Polling Support for FreeBSD
http://info.iet.unipi.it/~luigi/polling/
linux测试包转发率,提高ROS小包转发速率 - RouterOS - 自由的生活_软路由论坛 - Powered by Discuz!...相关推荐
- 交换机背板带宽、交换容量、包转发率和线速转发的含义
1.背板带宽 背板带宽,是指交换机接口处理器或接口卡,和数据总线间所能吞吐的最大数据量.背板带宽标志了交换机总的数据交换能力.背板带宽是模块化交换机上的概念,固定端口交换机不存在这个概念,固定端口交换 ...
- linux 软路由_软路由和硬路由的区别分析
路由器--作为大型网络场所必须的产品,许多企业IT网络管理者在选择路由器时左右抉择,不知选择哪种更合适. 相对于硬路由来说呢,软路由的技术要求相对更高.不过其实只要你动脑去研究,就会发现软路由不过如此 ...
- tcpdump抓两个网卡的包_软路由 tcpdump抓包详解: 网口详解、抓包详解、多网卡同时抓包...
软路由详解: 我的软路由有四张千兆网卡.其中Eth3是WAN口,Eth012是三个LAN口,Eth0接网线连接一台PC,Eth1连接一台无线路由器,Eth2未使用. 进入软路由系统中用ifconfig ...
- firmware linux 解包_官改固件解包打包 - 斐讯无线路由器以及其它斐迅网络设备 - 恩山无线论坛 - Powered by Discuz!...
本帖最后由 eaglepeng 于 2020-3-11 15:23 编辑 前段时间想重新修改下官改固件logo,找到了一份Linux下简单的解包打包工具,后来在逛帖子看到另一个工具.现总结如下,需要的 ...
- 天龙架设linux环境配置,《果子资源》-天龙八部-手工纯端架设教程 - T-天龙八部 - Powered by Discuz!...
宝塔纯端架设天龙八部3D教程 1.我这边使用CENOTS7 系统(6系统没时间测试) 2.安装宝塔 3.进入宝塔 安装MySQL5.5(我这边测试MYSQL 5.7 会创建不了角色) PHP 和NGI ...
- 关于RDP协议的分析(一) - Linux论坛 - 计世网论坛 - Powered by Discuz!
导读: 关于RDP协议的分析(一) 关于RDP协议的分析和研究 -------------- leadgenius 写这 ...
- 微信数据包解析 php,微信交互数据包分析 - 新手入门及其它(软件) - 恩山无线论坛 - Powered by Discuz!...
本帖最后由 derry 于 2019-3-7 23:30 编辑 微信启动后,主要建立以下连接: 1. 建立tcp长链接 端口号:80.443.8080中的一个(微信重启后会切换端口). 2. ...
- 路由器的硬件测试软件,刚做的简易网线测试工具 - 无线路由器硬件改造以及故障维修 - 恩山无线论坛 - Powered by Discuz!...
材料: 旧手机锂电池一块 旧主板拆的USB+网口一体座一个 0.56寸共阴数码管一只 360欧碳膜电阻一只 水晶头两个 8芯网线一段 1.jpg (63.71 KB, 下载次数: 0) 2019-4- ...
- 常用零件形状 matlab,汽车零部件的形状优化|Simulink 快速原型、实时仿真和测试|MATLAB技术论坛 - Powered by Discuz!...
CAESES为复杂汽车零部件探索和优化设计提供综合软件解决方案.结合专业知识和CFD软件工具,CAESES不仅能大幅提升汽车零部件及产品的性能,还能大大节省时间和成本. CAESES是传统CAD和仿真 ...
最新文章
- 提示-bash: telnet: command not found的解决方法
- python课程设计报告总结-上海python课程设计报告目的
- python 递归乘法
- java中定时任务和线程池_java基于线程池和反射机制实现定时任务完整实例
- vim树形目录NERDTree
- 单机/伪分布式Hadoop2.4.1安装文档
- oracle ebs 基于host(主机文件)并发程序的开发,Oracle EBS 基于Host(主机文件)并发程序的开发...
- 【转】SQL 语句执行顺序
- rabbitmq添加user及vhost
- scenario和group执行的区别
- 力扣剑指Offer替换空格
- 留学生活揭秘:进门易出门难 高淘汰率让人崩溃
- 液晶LCD1602驱动代码
- MySql 配置 方法
- [web攻防] weblogic 漏洞复现 CVE-2017-10271CVE-2018-2628CVE-2018-2894
- codeforces 186D Mushroom Scientists 不等式
- Spring Boot Web应用集成Keycloak进阶之细粒度权限控制
- 2022CSP-S复赛游寄
- 河南财经政法大学CSDN俱乐部招新圆满结束
- 【Java】SSM框架简介