Kernel Bypass & Offload 介绍
系统网络优化可以有两方面的工作可以做:1 绕开内核(bypass);2 用硬件替代软件(offload)。
具体包括:
1. 绕开内核:
- 不使用内核内核子系统的功能,采用自己实现的相同功能的代码来处理。
- 从用户空间直接访问和控制设备内存—避免数据从设备拷贝到内核,再从内核拷贝到用户空间。
2. 用硬件替代:
- 用专用的硬件设备替代软件的部分功能。
- 典型的用硬件替代软件的例子有:DMA engines, GPUs, Rendering screens, cryptography, TOE(TCP Offload Engines).
为什么要做两方面的工作呢?主要原因可以归结为:
1. UNIX经过设计和优化,目前它的主要任务是支持多个进程同时运行,并且避免任何进程因为缺少资源而长时间挂起。 但是在高频交易领域,我们希望某些特定的进程处理每条消息的响应时间快,延迟波动小,而不需要所在机器上所有进程的平均性能很好。
2. TCP/IP协议栈被优化为防止链接丢失和有效的利用带宽。
目前已经有很多成熟的解决方案可以用了,他们是:
- ntop.org DNA
- netmap
- Intel DPDK
- Myricom Sniffer10G and DBL
- 6WINDGate
- SolarFlare OpenOnload
- Napatech
这些解决方案每个都有他们自己的解决思路。
- 定制设备驱动。.netmap和DNA在标准Intel驱动的基础上加入了I/O内存到用户空间的映射。
- 定制硬件。Myricom和Napatech有他们自己定制的硬件以及对应的驱动(Myricom用的是ASIC, Napatech用的是FPGA)。
- 用户空间的库。这些解决方案每个都提供了用于访问他们扩展功能的库。这些功能差异极大:以太网I/O、libpcap的兼容、多进程处理的硬件辅助的消息包分发、缓存管理、整个TCP/IP层的功能。
- Licensing。netmap是开源的,DNA用户库需要适度的license。Napatech需要NDA,而且还要依赖昂贵的硬件。
参考文章:
http://ttthebear.blogspot.com/2008/07/linux-kernel-bypass-and-performance.html
<Kernel in the Way Bypass and Offload Technologies> -- Christoph Lameter
http://lukego.github.io/blog/2013/01/04/kernel-bypass-networking/
Kernel Bypass & Offload 介绍的更多相关文章
- [knowledge][DPI] kernel bypass 高性能网络包处理的宏观思路
高性能网络包处理,这个问题的出现,主要原因在于linux内核协议栈的处理能力,已经跟不上日益增长的网卡吞吐量以及数据量. 有关详细的内核协议栈瓶颈的阐述,可以参考如下这篇文章: <Improvi ...
- 网络安全设备Bypass功能介绍及分析
from:http://netsecurity.51cto.com/art/200910/159948.htm 网络安全平台厂商往往需要用到一项比较特殊的技术,那就是Bypass,那么到底什么是Byp ...
- 如何实现内核旁路(Kernel bypass)?
转到 :http://blog.jobbole.com/94976/ 在前两篇文章中,我们讨论了<如何生成每秒百万级别的HTTP 请求?> 以及 如何减少往返时间 .我们在 Linux 上 ...
- 最新安全狗 apache v4.0 sql注入 bypass
前言 最近没事学习一下 waf 的 bypass , 本文介绍下 bypass 安全狗的笔记.个人感觉 bypass 的总思路(正则匹配型 waf)就是利用各种语法特性来逃避正则(当然要保证语法正确性 ...
- Linux DMA Engine framework(2)_功能介绍及解接口分析
http://www.wowotech.net/linux_kenrel/dma_engine_api.html 补充 http://www.zhimengzhe.com/linux/259646.h ...
- VNF网络性能提升解决方案及实践
VNF网络性能提升解决方案及实践 2016年7月 作者: 王智民 贡献者: 创建时间: 2016-7-20 稳定程度: 初稿 修改历史 版本 日期 修订人 说明 1.0 20 ...
- RDMA
什么是RDMA? 来源 https://blog.csdn.net/u011459120/article/details/78469098 1. 概述 RDMA是Remote Direct Memor ...
- [SPDK/NVMe存储技术分析]008 - RDMA概述
毫无疑问地,用来取代iSCSI/iSER(iSCSI Extensions for RDMA)技术的NVMe over Fabrics着实让RDMA又火了一把.在介绍NVMe over Fabrics ...
- RDMA的基础概念
一张图可以简单明确的说明,目前RDMA的几种技术的差别: RDMA是remote Direct memory access的简称,有几个最基本的特点: CPU offload kernel bypas ...
随机推荐
- 数据库:JDBC编程
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于运行SQL语句的Java API.能够为多种关系数据库提供统一訪问.它由一组用Java语言编写的类和接口 ...
- 《Pro Android Graphics》读书笔记之第四节
Android Procedural Animation: : XML, Concepts and Optimization Procedural Animation Concepts: Tweens ...
- CentOS Nginx+jdk+tomcat 环境搭建
一.jdk安装 jdk下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloa ...
- DNS的查找机制、中文扩展,及其对手机扫描商标名称的支持
DNS的查找机制.中文扩展.及其对手机扫描商标名称的支持 DNS的查找机制 当DNS查找主机时,它首先在本域里查找,假设找不到则交给更上一级的域查找,直至顶级的域. 因此,假设计算机在北大域名(pku ...
- ASP.NET Web API(一):使用初探,GET和POST数据
概述 REST(Representational State Transfer表述性状态转移)而产生的REST API的讨论越来越多,微软在ASP.NET中也添加了Web API的功能 项目建立 在安 ...
- SOAP消息分析
根据WebService学习笔记系列(二)中的介绍,使用tcpmon可以捕获到我们发出或者接收到的xml内容,接天我们就对这些xml内容做一个简单的分析.还记得在WebService学习笔记系列(四) ...
- 上传jar包到nexus私服
摘要 通过网页和maven两种方式,上传本地的jar到nexus私服,以及引用jar时,自动引用依赖 1通过网页上传 这种方法只是上传了jar包.通过maven引用当前jar,不能取得jar的依赖 ...
- DEDE自带的采集功能,标题太短的解决方法
DEDE自带的采集功能,标题太短获取不全的解决方法搜索了好多之后,终于还是在dede的官方论坛找到了答案.增加采集标题长度:255 目的:原标题长度太小,影响文件采集⑴修改系统参数设置(文档标题最大 ...
- [Mime] QuotedPrintableEncoding帮助类 (转载)
点击下载 QuotedPrintableEncoding.rar 这个类是关于QuotedPrintableEncoding的帮助类看下面代码吧 /// <summary> /// 类说明 ...
- [FTP] FTPOperater--FTP操作帮助类 (转载)
点击下载 FTPOperater.zip 这个类是关于FTP的一些操作的1.连接FTP服务器 2.上传3.下载4.删除文件5.获取当前目录下明细(包含文件和文件夹) 6.获取FTP文件列表(包括文件 ...