BPF(Berkeley Packet Filter)内核应用性能调优之 高效的驱动级网络数据包处理
来源:互联网 发布:sql查询前五条数据 编辑:程序博客网 时间:2024/06/07 18:07
BPF(Berkeley Packet Filter)内核应用性能调优之 高效的驱动级网络数据包处理
在高效数据包处理转发和SDN功能实现的过程中,BPF机制可以简单粗暴优雅的解决如下痛点:1. 数据包转发效率的性能调优,比如交换器路由器海量数据包的转发处理中的性能优化;音视频流媒体处理过程中大容量一致性数据包的实时直播性优化,降低音视频数据在数据中心服务器的直播delay
2. SDN中在最底层第一时间实现数据平面(Data Plan)和控制平面(Control Plan)数据包的解析和分离
对BPF了解不多,应该听说过Linux内核对数据包skbuff的Netfliter钩子机制以及iptable的应用,BPF比Netfilter处在数据协议栈的更底层,更高效,而且更关键的是他比Netfliter更加灵活。
利用BPF,在数据链路层网卡驱动eth_recv_skbuff()的地方,利用内核微码的灵活形式简单实现对协议数据包的MAC/IP/UDP的高效过滤和匹配,匹配规则利用微码自定义。
匹配成功的数据包直接通过RAW-SOCKET punt到用户空间,完美绕开整个TCP/IP协议栈的处理;
规则不匹配的数据包route默认通道,走Linux内核默认的TCP/IP协议栈处理。
在对效率和delay要求比较高的应用场景,比如音视频CDN,流媒体直播实时realy中可以达到2个数量级别的性能提升。
阅读全文
0 0
- BPF(Berkeley Packet Filter)内核应用性能调优之 高效的驱动级网络数据包处理
- 伯克利包过滤(Berkeley Packet Filter,BPF)语言
- BPF(BSD Packet Filter)--应用和理念扩展
- libpcap BSD Packet Filter(BPF)
- Berkeley Packet Filter
- Libpcap BPF(BSD Packet Filter)包过滤机制
- tcpdump/libpcap与BPF与Linux(LPF-Linux Packet Filter)
- Linux内核工程导论——网络:Filter(LSF、BPF、eBPF)
- Linux内核工程导论——网络:Filter(LSF、BPF、eBPF)
- Packet.dll -- 数据包驱动API
- QNX系统上用Berkeley Packet Filter直接进行原始数据的收发
- 网络数据包发送之调度层处理
- 网络数据包接收之GRO处理
- BPF socket filter
- Linux网络应用编程之集线器(Packet Tracer仿真)
- Linux网络应用编程之VLAN(Packet Tracer仿真)
- c#网络通信框架networkcomms内核解析之八 数据包的核心处理器
- 内核扩展数据包的方法之-----skb_copy_expand
- better-scroll component
- 使用EhCache+SSM实现数据缓存
- JSP内置对象
- 字符串自带有效期的验证
- SQL Server 2000 安装包1/17----分成17个压缩包,这里只纪录1个包的地址
- BPF(Berkeley Packet Filter)内核应用性能调优之 高效的驱动级网络数据包处理
- STK11.2.1 With EOIR 11.2.1已经可以正常使用
- Java日常小结
- $.ajax()方法使用案例
- 能量球效果(贝塞尔曲线)
- 漫谈
- 阿里巴巴代码规约插件使用
- navicat for Mac的备份【windows和Mac】
- 【坐在马桶上看算法】算法2:邻居好说话:冒泡排序