Linux 上 UDP 和 TCP 的内核绕过 - 它涉及什么?

2024-03-12

Per http://www.solacesystems.com/blog/kernel-bypass-revving-up-linux-networking http://www.solacesystems.com/blog/kernel-bypass-revving-up-linux-networking:

[...]一个名为 OpenOnload 的网络驱动程序,使用“内核绕过”技术在用户空间中一起运行应用程序和网络驱动程序,并且绕过内核。这允许连接的应用程序端每秒处理更多的消息,并且延迟更低且更一致。

[...]

如果您是一名开发人员或架构师,多年来一直在与上下文切换作斗争,那么内核绕过可能会让人感觉像作弊,但幸运的是,它完全符合规则。

进行此类内核绕过需要哪些函数?


A TCP卸载引擎 http://en.wikipedia.org/wiki/TCP_offload_engine将“正常工作”,无需特殊的应用程序编程。它不会绕过整个内核,只是将一些 TCP/IP 堆栈从内核移动到网卡,因此驱动程序的级别稍高一些。内核API是相同的。

大多数现代千兆位接口都支持 TCP 卸载引擎。

或者,如果您的意思是“在 SolarFlare 网络适配器的嵌入式处理器/FPGA‘应用程序加载引擎’上运行代码”,那么......这是特定于卡的。您基本上是在为嵌入式系统编写代码,因此您需要说明您正在使用哪种卡。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 上 UDP 和 TCP 的内核绕过 - 它涉及什么? 的相关文章

  • 当我单击 C# 中的“取消”按钮时重定向到新页面(Web 部分)

    Cancel button tc new TableCell btnCancel new Button btnCancel Text Cancel btnCancel Click new EventHandler btnCanel Clic
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 为什么 BOOST_FOREACH 不完全等同于手工编码的?

    From 增强文档 http www boost org doc libs 1 48 0 doc html foreach html foreach introduction what is literal boost foreach li
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 转到 C# WPF 中的第一页

    我正在 WPF 中使用导航服务 为了导航到页面 我使用 this NavigationService Navigate new MyPage 为了返回我使用 this NavigationService GoBack 但是如何在不使用的情况
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • 通过等待任务或访问其 Exception 属性都没有观察到任务的异常

    这些是我的任务 我应该如何修改它们以防止出现此错误 我检查了其他类似的线程 但我正在使用等待并继续 那么这个错误是怎么发生的呢 通过等待任务或访问其 Exception 属性都没有观察到任务的异常 结果 未观察到的异常被终结器线程重新抛出
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 如何检测 C# 中该字典键是否存在?

    我正在使用 Exchange Web 服务托管 API 和联系人数据 我有以下代码 即功能性的 但并不理想 foreach Contact c in contactList string openItemUrl https service
  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将

随机推荐

  • Swift 中的 CGPointMake

    如何使用CGPointMake in Swift 有等效的吗 我收到错误 使用未解析的标识符 CGPointMake 基本上 我试图为 Sprite Kit 节点分配一个位置 但不知道如何在 Swift 中执行此操作 class Playe
  • edmx填充mdf?

    当我在 edmx 文件中 从模型生成数据库 时 它会请求数据源并生成 sql 文件并将数据源添加到 app config 如果我选择 sqlserver 作为源 它工作正常 我可以使用现有数据库或创建一个新数据库 并且表会填充到它并准备使用
  • WP7 - 使用 Application.Resources 中定义的 Storyboard

    In my Application Resources我有以下内容Storyboard定义的
  • 使用具有正斜杠的密钥连接到 s3 接收器时出现无效主机名错误

    我有一个forward slash在 aws 密钥中 当我尝试连接到 s3 接收器时 Caused by java lang IllegalArgumentException Invalid hostname in URI s3 xxxx
  • 脚本不从 .angular-cli.json 加载

    我将新脚本添加到我的 angular cli json 文件中 如下所示 apps root src outDir dist assets assets favicon ico index index html main main ts p
  • 装配 x86-16 中的模式 X,为什么平面 1 未打印,而所有其他平面的顺序不正确?

    我正在 DosBox 0 74 上的 TASM 3 0 中写入 并且我正在尝试写入Mode x https en wikipedia org wiki Mode X 调整了13小时 无束缚模式 13 http www brackeen co
  • 使用 AWS IAM 的临时凭证

    我有一台服务器 它应该向客户端提供临时 AWS 凭证 凭证将使用 HTTPS 传输 客户端应该能够上传和下载 S3 文件 我的担忧如下 我有多个用户仅访问他们自己的目录 Users someUser myfile png 您可以设置策略以一
  • 是否可以在本地计算机和远程集群上运行 OpenMPI?

    我有一组需要在集群中执行的计算操作 可能像 512 个 MPI 进程 现在 我让集群上的根节点打开一个套接字 并在计算操作之间将数据传输到我的本地计算机 但我想知道是否可以只创建两个 MPI 组 其中一个组是我的本地组机和另一个远程集群 并
  • .NET Core SDK未安装或在路径下找不到

    在 VS 2015 下编译 Net Core RC2 项目时 我收到以下错误 GETSDKTOOLINGINFO 错误 NET Core SDK 未安装或 在路径 C Program Files dotnet bin 下找不到 这些 构建和
  • 禁用某些文件名的语法突出显示

    我在 vimrc 中启用了语法突出显示 但这使得加载某些文件太长 所以我需要禁用 或者 准确地说 不启用 启用它然后禁用不是解决方案 这些文件的语法突出显示 我试过 au BufNewFile BufRead inc syntax enab
  • 无尽的 ViewPager android

    假设我的 viewpager 中有两个页面 有什么办法可以从第 2 页移动到第 1 页 但这样做就像用户正在访问第 3 页 带有所有动画 您可以通过使用自定义 FragmentPagerAdapter 来实现此目的 该适配器一遍又一遍地提供
  • 如何确保同一服务器上不同用户的 R 环境一致?

    我正在使用内部软件包 MyPKG 编写可重复分析的协议 每个用户将提供自己的输入文件 除了输入之外 分析应在相同的条件下进行 例如 这样我们就可以推断不同的结果是由于不同的输入文件造成的 MyPKG 正在开发中 所以library MyPK
  • 如何在Python中比较两个有序列表?

    我有两个清单 a 0 2 1 b 0 2 1 我如何比较这两个列表以查看它们是否相等 相同 并且约束它们必须位于same order 我看到过一些问题要求通过对两个列表进行排序来进行比较 但在我的具体情况下 我没有检查排序的比较 而是完全相
  • AlertDialog MultiChoiceItems 侦听器问题

    我目前正在使用 AlertDialog builder 为用户创建多选列表 复选框 这非常有效 只是我们希望其中一个按钮取消选择列表中的所有其他按钮 builder setMultiChoiceItems list checked new
  • 如何有条件地替换集合中的值,例如replaceIf(Predicate)?

    有没有什么简单的方法可以替换 a 中的值列表或集合如果该值为空 我们总能做到list stream filter Objects nonNull 也许可以将 0 添加回列表中 但我正在寻找的是一个像这样的APIlist replaceIf
  • 如何将绘图仪表板应用程序导出到 html 独立文件中以与其他人共享?

    我已经构建了一个交互式仪表板 并且正在寻找一种方法将该应用程序导出为 HTML 格式 并与其他人共享 有什么提示给我吗 我用谷歌搜索过 大多数答案将我转到以下链接 https plot ly python getting started w
  • php pack:数据类型问题和结果验证

    我是 PHP 初学者 我的任务是构建命令 稍后将通过 UDP 发送到设备 运行 OSX PHP 5 5 3 8 为了创建二进制数据 我使用 pack 这是我的代码的示例
  • Mercurial 对于简单的 GLOB 语法给出“无效模式”错误

    我的中有以下内容 hgignore file syntax glob obj bin suo user ncb 如果我注释掉 过滤器 过滤效果很好 过滤掉了bin and obj文件夹 但是 如果我保留这些过滤器 我会收到以下错误 abor
  • Spring Boot 2 + Java 9 + Querydsl

    我已成功将我的应用程序 Spring Boot Java Maven 更新到 Spring Boot 2 现在我正在尝试更新到 Java 9 根据 Nicolas Fr nkel 的博客文章 将 Spring Boot 应用程序迁移到 Ja
  • Linux 上 UDP 和 TCP 的内核绕过 - 它涉及什么?

    Per http www solacesystems com blog kernel bypass revving up linux networking http www solacesystems com blog kernel byp