系统网络优化可以有两方面的工作可以做: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. [knowledge][DPI] 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.0 sql注入 bypass

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

  5. Linux DMA Engine framework(2)_功能介绍及解接口分析

    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. [SPDK/NVMe存储技术分析]008 - RDMA概述

    毫无疑问地,用来取代iSCSI/iSER(iSCSI Extensions for RDMA)技术的NVMe over Fabrics着实让RDMA又火了一把.在介绍NVMe over Fabrics ...

  9. RDMA的基础概念

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

随机推荐

  1. 数据库:JDBC编程

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于运行SQL语句的Java API.能够为多种关系数据库提供统一訪问.它由一组用Java语言编写的类和接口 ...

  2. 《Pro Android Graphics》读书笔记之第四节

    Android Procedural Animation: : XML, Concepts and Optimization Procedural Animation Concepts: Tweens ...

  3. CentOS Nginx+jdk+tomcat 环境搭建

    一.jdk安装 jdk下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloa ...

  4. DNS的查找机制、中文扩展,及其对手机扫描商标名称的支持

    DNS的查找机制.中文扩展.及其对手机扫描商标名称的支持 DNS的查找机制 当DNS查找主机时,它首先在本域里查找,假设找不到则交给更上一级的域查找,直至顶级的域. 因此,假设计算机在北大域名(pku ...

  5. ASP.NET Web API(一):使用初探,GET和POST数据

    概述 REST(Representational State Transfer表述性状态转移)而产生的REST API的讨论越来越多,微软在ASP.NET中也添加了Web API的功能 项目建立 在安 ...

  6. SOAP消息分析

    根据WebService学习笔记系列(二)中的介绍,使用tcpmon可以捕获到我们发出或者接收到的xml内容,接天我们就对这些xml内容做一个简单的分析.还记得在WebService学习笔记系列(四) ...

  7. 上传jar包到nexus私服

    摘要 通过网页和maven两种方式,上传本地的jar到nexus私服,以及引用jar时,自动引用依赖 1通过网页上传 这种方法只是上传了jar包.通过maven引用当前jar,不能取得jar的依赖   ...

  8. DEDE自带的采集功能,标题太短的解决方法

    DEDE自带的采集功能,标题太短获取不全的解决方法搜索了好多之后,终于还是在dede的官方论坛找到了答案.增加采集标题长度:255  目的:原标题长度太小,影响文件采集⑴修改系统参数设置(文档标题最大 ...

  9. [Mime] QuotedPrintableEncoding帮助类 (转载)

    点击下载 QuotedPrintableEncoding.rar 这个类是关于QuotedPrintableEncoding的帮助类看下面代码吧 /// <summary> /// 类说明 ...

  10. [FTP] FTPOperater--FTP操作帮助类 (转载)

    点击下载 FTPOperater.zip 这个类是关于FTP的一些操作的1.连接FTP服务器 2.上传3.下载4.删除文件5.获取当前目录下明细(包含文件和文件夹)  6.获取FTP文件列表(包括文件 ...