Kernel Bypass & Offload 介绍

时间:2022-01-30 09:42:52

系统网络优化可以有两方面的工作可以做:1 绕开内核(bypass);2 用硬件替代软件(offload)。

具体包括:

1. 绕开内核:

  • 不使用内核内核子系统的功能,采用自己实现的相同功能的代码来处理。
  • 从用户空间直接访问和控制设备内存—避免数据从设备拷贝到内核,再从内核拷贝到用户空间。

2. 用硬件替代:

  • 用专用的硬件设备替代软件的部分功能。
  • 典型的用硬件替代软件的例子有:DMA engines, GPUs, Rendering screens, cryptography, TOE(TCP Offload Engines).

为什么要做两方面的工作呢?主要原因可以归结为:

1. UNIX经过设计和优化,目前它的主要任务是支持多个进程同时运行,并且避免任何进程因为缺少资源而长时间挂起。 但是在高频交易领域,我们希望某些特定的进程处理每条消息的响应时间快,延迟波动小,而不需要所在机器上所有进程的平均性能很好。

2. TCP/IP协议栈被优化为防止链接丢失和有效的利用带宽。

目前已经有很多成熟的解决方案可以用了,他们是:

这些解决方案每个都有他们自己的解决思路。

  • 定制设备驱动。.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 介绍的更多相关文章

  1. &lbrack;knowledge&rsqb;&lbrack;DPI&rsqb; kernel bypass 高性能网络包处理的宏观思路

    高性能网络包处理,这个问题的出现,主要原因在于linux内核协议栈的处理能力,已经跟不上日益增长的网卡吞吐量以及数据量. 有关详细的内核协议栈瓶颈的阐述,可以参考如下这篇文章: <Improvi ...

  2. 网络安全设备Bypass功能介绍及分析

    from:http://netsecurity.51cto.com/art/200910/159948.htm 网络安全平台厂商往往需要用到一项比较特殊的技术,那就是Bypass,那么到底什么是Byp ...

  3. 如何实现内核旁路(Kernel bypass)?

    转到 :http://blog.jobbole.com/94976/ 在前两篇文章中,我们讨论了<如何生成每秒百万级别的HTTP 请求?> 以及 如何减少往返时间 .我们在 Linux 上 ...

  4. 最新安全狗 apache v4&period;0 sql注入 bypass

    前言 最近没事学习一下 waf 的 bypass , 本文介绍下 bypass 安全狗的笔记.个人感觉 bypass 的总思路(正则匹配型 waf)就是利用各种语法特性来逃避正则(当然要保证语法正确性 ...

  5. Linux DMA Engine framework&lpar;2&rpar;&lowbar;功能介绍及解接口分析

    http://www.wowotech.net/linux_kenrel/dma_engine_api.html 补充 http://www.zhimengzhe.com/linux/259646.h ...

  6. VNF网络性能提升解决方案及实践

    VNF网络性能提升解决方案及实践 2016年7月 作者:    王智民 贡献者:     创建时间:    2016-7-20 稳定程度:    初稿 修改历史 版本 日期 修订人 说明 1.0 20 ...

  7. RDMA

    什么是RDMA? 来源 https://blog.csdn.net/u011459120/article/details/78469098 1. 概述 RDMA是Remote Direct Memor ...

  8. RDMA的基础概念

    一张图可以简单明确的说明,目前RDMA的几种技术的差别: RDMA是remote Direct memory access的简称,有几个最基本的特点: CPU offload kernel bypas ...

  9. RDMA的原理、传输与Verbs

    RDMA的原理.传输与Verbs   RDMA最早专属于infiniband架构.在网络融合的大趋势下出现的RoCE,使高速.超低延时.极低cpu使用率的RDMA得以部署在目前使用最广泛的以太网上.  ...

随机推荐

  1. &lbrack;MEMO&rsqb;&colon; 机器学习教父级别的任务Jordan推荐的书籍

  2. 2016&period; last day in office

    外面黑了,水面上黑魆魆的看不清楚了. 明天请假了,2017年再见! 2017加油! 2017 English improving!

  3. serv-u启动管理控制台后提示脚本错误解决方案

             问题描述: 安装serv-u后打开管理控制台,提示“脚本错误“控制台界面无法正常显示: 解决方法: 1.在serv-u安装目录下找到”Serv-U-DefaultCertificat ...

  4. Python顺序集合之 tuple

    慕课网<Python 入门>学习笔记 1.tuple特性 tuple是另一种有序的列表,中文翻译为“ 元组 ”.tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改 ...

  5. JS中的replace方法以及与正则表达式的结合应用

    replace方法的语法是:stringobj.replace(rgexp, replacetext) 其中stringobj是字符串(string),reexp可以是正则表达式对象(regexp)也 ...

  6. APP的宣传方式有哪些

    APP应用已经成为了互联网不可缺少的话题,事实上,开发一款移动APP的成本不是很高,但是怎样以最低的成本得到最大的推广效果,这是企业和开发者都很关心的一个问题.下面,我们来探讨一下这个问题. 1.一款 ...

  7. python --- 冒泡排序算法

    别想太多了,这个冒泡排序就是我们脑海中想到的那个冒泡,就好像是气泡一样,较小的元素比较轻,从而要往上浮出来, 冒泡排序算法. 要对‘气泡’序列处理若干遍.所谓一遍处理,就是自底向上检查一遍这个序列,并 ...

  8. 使用反射动态调用ActiveX控件

    使用反射动态调用ActiveX控件 袁永福 2018-3-2 ■■■■问题描述: 目前的基于.NET平台的软件研发中仍然存在大量的对COM及ActiveX控件的调用.使用C#调用ActiveX控件时一 ...

  9. 优于 swagger 的 java markdown 文档自动生成框架-01-入门使用

    设计初衷 节约时间 Java 文档一直是一个大问题. 很多项目不写文档,即使写文档,对于开发人员来说也是非常痛苦的. 不写文档的缺点自不用多少,手动写文档的缺点也显而易见: 非常浪费时间,而且会出错. ...

  10. java 不使用paint方法进行画图

    private Graphics2D g; g = (Graphics2D) getGraphics();