难以实现 1Gbit UDP 吞吐量

2023-11-24

对于负载小于1470的UDP数据包,是否有可能达到1Gbit的吞吐量?由于数据包较小,实现这样的吞吐量应该存在一些瓶颈(I/O、操作系统、网络等)。我想驱动程序和硬件可能必须调整为小数据包/高吞吐量。有人尝试用小 UDP 数据包成功实现 1Gbit 吞吐量吗?


我之前曾在相对标准的 PC 硬件上对千兆位链路的吞吐量进行过一些实验,尽管只是进行传输(通过tc预播放),而不是 udp。

我发现最大的瓶颈在于将数据包发送到网卡本身。通过使用高速总线连接到 NIC(例如 4x pci-express NIC),可以显着改善这一点。但即便如此,还是有一个非常明确的数据包/秒限制。显然,增加数据包大小可以让您利用更多带宽,同时减少处理器负载。

与评论相同史蒂夫·莫耶,任何网络的利用率都存在理论上的限制。在我的实验中(在完全安静的网络上进行),我看到的最大值约为 900Mb/s(仅在我的记忆中)。这是 CPU 负载为 30% 到 40% 的情况。

更有可能的是,该限制是由您的系统硬件(即 PC)而不是您的网络基础设施施加的 - 任何有价值的网络交换机都应该能够维持小数据包的全速网络访问 - 当然速度比您的网络基础设施高得多大多数电脑都可以应付。

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

难以实现 1Gbit UDP 吞吐量 的相关文章

  • 重构——套接字中的良好实践——简单的服务器-客户端 Swing 应用程序

    我使用单例和观察者模式编写了一个带有 Swing 接口的简单服务器 客户端程序 每个客户端都连接到服务器并可以发送消息 服务器将其收到的消息转发给其余的客户端 客户端使用 GUI 允许它们随时连接和断开与服务器的连接 该程序运行得很好 因为
  • 如何以编程方式找出哪台计算机是 Windows 中的域控制器?

    我正在寻找一种方法来确定客户端计算机连接到的给定域的域控制器的名称 IP 地址 在我们公司 我们有很多用于测试的小型网络 其中大多数都有自己的小域 作为示例 其中一个域被命名为 TESTLAB 我有一个 Windows XP 工作站 它是
  • 扭曲多种协议

    我希望为我正在从事的项目学习扭曲 该项目需要服务器响应 HTTP 请求以及通过 TCP 连接的其他协议 Twisted能够同时处理多种协议吗 我想使用 Twisted Web 来帮助处理 HTTP 但同时需要响应其他端口上的 TCP 连接
  • 如何“杀死”Pthread?

    我正在学习 Pthreads 并且想知道杀死这样一个对象的最佳方法是什么 在寻找类似的问题后 我无法找到 明确 的答案 但请随时向我指出任何相关问题 我正在使用一个小型客户端服务器应用程序 其中服务器主线程正在侦听套接字上的客户端连接 每次
  • 调试断言失败。表达式(流!=NULL)

    我收到以下错误 调试断言失败 表达式 流 NULL 文件 f dd vctools crty bld self x86 crt src fwrite c 创建 4 个线程时 CPU 使用率 100 该代码最初运行良好一段时间 然后给出此错误
  • 如何在java中通过socket发送Image数据类型

    我真的很困惑如何通过套接字发送图像数据类型 请帮我 我已经搜索了如何将 Image 数据类型转换为 char 但结果是 0 Use ImageIO http docs oracle com javase 1 4 2 docs api jav
  • 类型转换 sockaddr 结构

    我正在尝试学习网络编程 并在这个过程中学习C 我对结构感到困惑sockaddr这是一个通用地址 并且sockaddr in 我的书里是这么说的 因此 我们可以填写 sockaddr in 的字段 然后强制转换 a 指向 它指向 指向 soc
  • 为什么Apache MPM prefork.c 使用互斥体来保护accept()?

    我坐下来读书Apache 的 MPM prefork c http code metager de source xref apache httpd server mpm prefork prefork c这段代码使用了一个名为accept
  • 如何强制关闭 TcpListener

    我有一个通过 tcpListener 进行通信的服务 问题是当用户重新启动服务时 抛出 地址已在使用 异常 并且服务在几分钟左右无法启动 有没有办法告诉系统终止旧连接 以便我可以打开一个新连接 我不能只使用随机端口 因为服务无法通知客户端端
  • Vagrant - 使用私有接口时如何配置 vagrant ssh?

    我有一个包含 3 个虚拟机的多虚拟机 vagrantfile 设置 其中两个虚拟机的 NAT 网络接口已禁用 并且仅在内部接口上使用静态 IP 副作用是我无法再跑步vagrant ssh foo连接到虚拟机 mode ruby vi set
  • 如何从 Gforth 网站读取原始代码?

    我想要一个像这样的词 read site add n buff max n flag 其中 add n 是站点名称缓冲区 buff max 是应读取 ASCII 文本的缓冲区 n 是读取的字节数 flag如果操作成功则为 true 这在 L
  • 当使用环回地址使用 TCP/IP 套接字进行 IPC 时,常见的网络堆栈是否会跳过将消息帧封装在较低级别的 PDU 中?

    在某些环境 例如 Java 中 很自然地使用 TCP IP 套接字通过 localhost 地址 IPv4 中的 127 0 0 1 或 IPv6 中的 1 在同一主机上的进程之间传递消息 因为Java倾向于不在其API中公开其他IPC机制
  • Java 套接字 - 如何模拟多个客户端

    我有一个用Java编写的套接字程序 服务器使用 DatagramSocket 创建具有特定端口号的套接字 我有一个客户端java程序 它连接到该服务器并发送一些消息 目前我有 3 台笔记本电脑 因此我使用 1 台运行服务器 其余 2 台作为
  • 我在socket上设置了超时,发现这个值不能大于21

    我在socket上设置了超时 该值小于21秒才有效 21秒后发现超时还是21秒 public static void main String args SimpleDateFormat sdf new SimpleDateFormat yy
  • 当我使用“control-c”关闭发送对等方的套接字时,为什么接收对等方的套接字不断接收“”

    我是套接字编程的新手 我知道使用 control c 关闭套接字是一个坏习惯 但是为什么在我使用 control c 关闭发送进程后 接收方上的套接字不断接收 在 control c 退出进程后 发送方的套接字不应该关闭吗 谢谢 我知道使用
  • 什么是 SO_SNDBUF 和 SO_RCVBUF

    你能解释一下到底是什么吗SO SNDBUF and SO RCVBUF选项 好的 出于某种原因 操作系统缓冲传出 传入数据 但我想澄清这个主题 他们的角色 通 常 是什么 它们是每个套接字的缓冲区吗 传输层的缓冲区 例如 TCP 缓冲区 和
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • 套接字接收全部

    我正在尝试在 C 中捕获 ip 数据包 一切工作正常 除了我只收到传出的数据包 My Code using Socket sock new Socket AddressFamily InterNetwork SocketType Raw P
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • python-messaging 无法处理 HTTP 请求

    我正在使用下面的代码尝试使用 python messaging 发送彩信https github com pmarti python messaging blob master doc tutorial mms rst https gith

随机推荐

  • 天蓝色资源管理器服务总线提供商?

    有 ServiceBus 提供商这样的东西吗 作为我的应用程序的一部分 我想包含 SB 命名空间 主题和订阅 您是否期望使用 ARM 部署网站 并使用服务接口来编写其他支持功能的脚本 现在有一个服务总线提供商 样本模板 apiVersion
  • 如果“&String”没有实现“Into”,为什么这些实现会发生冲突?

    我问了一个相关问题关于为什么没有实施From lt String gt for String 我现在想创建自己的特质 如下所示 derive Debug struct MyStruct String impl MyStruct fn new
  • 如何知道谷歌帐户是否在谷歌应用程序域下?

    我正在开发一个应用程序 允许用户将他们的云端硬盘文件分享给朋友 但是Google App帐户存在问题 例如 email protected 其中的文件不能与不在该域下的人共享 尽管共享策略可以由管理员更改somedomain com 但我不
  • 设置 Java 编译器合规级别

    我需要在命令行上编译一个Java程序 并且我试图将编译器级别设置为较低的级别 1 6 我尝试过这样但没有成功 javac 1 6 Hello java Use source and target选项 javac target 1 6 sou
  • 如何从对象数组中删除所有重复项?

    我有一个包含对象数组的对象 obj obj arr new Array obj arr push place here name stuff obj arr push place there name morestuff obj arr p
  • 无法在 Rider 中使用 .NET Standard 2.0 Lib 加载 Xamarin Forms 项目

    TL DR Rider 是否支持具有 NET Standard 库 2 0 的 Xamarin Forms 项目 我使用空白表单应用程序多平台向导在 Visual Studio 2017 3 Windows 中创建了一个小型 Xamarin
  • 将数字转换为日期[重复]

    这个问题在这里已经有答案了 我有一张表 其中一列的日期格式为20130109或无空格的 YearMonday 我正在尝试绘制这些点的图表 由于这种奇怪的间距 最终在图表中出现很大的间隙 因此想要将这些数字转换为日期 我一直在尝试使用as D
  • 从 nlme 摘要中提取随机效应

    我可以使用以下命令从 nlme 摘要中提取固定效果summary fm1 却苦于如何获得Random effects 部分 fm1 lt lme distance age Orthodont random age Subject summa
  • 如何在布局中使用自己的视图?

    我创建了一个这样的类 public final class MyView extends View public MyView Context context AttributeSet attrs super context attrs 然
  • 蟒蛇 |异步IO |类型错误:需要一个协程

    我正在尝试使用 asyncio 进行 python 协程编程 这是我的代码 import asyncio async def coro function return 2 2 async def get return await coro
  • 如何在 POSIX C 中枚举连接到一台机器的所有 IP 地址?

    背景 我正在编写一个建立传出 TCP IP 连接的守护程序 它将在具有多个 非环回 IP 地址的计算机上运行 我希望用户能够在守护程序的配置文件中指定用于传出连接的 IP 地址 或者 使用全部 这些地址将轮流使用 每个连接都从最近最少使用的
  • C++ 类中的重载运算符 <<

    我有一个使用结构的类 我想重载该结构的 typedef struct my struct t int a char c my struct class My Class public My Class friend ostream oper
  • 是否可以在 iOS 9 上将 iPad 应用程序设置为不进行多任务处理

    我有一个大型应用程序 需要一些时间来针对 iOS9 进行优化 编辑 我担心的是当应用程序窗口大小减小时 所有 UI 都会被挤在一起 所以我的问题是 有什么方法可以强制应用程序全屏显示吗 要为您的应用程序选择退出 禁用 多任务处理 选择您的目
  • Random.nextGaussian() 的问题

    Random nextGaussian 应该给出均值 0 和标准差 1 的随机数 它生成的许多数字都超出了 1 1 范围 我如何设置才能使其给出仅在 1到1范围内的正态分布随机数 均值为 0 标准差为 1 的高斯分布意味着分布的平均值为 0
  • 谷歌登录gapi未定义

    我正在尝试在我的网站上启用谷歌登录 该按钮有效 与我的帐户同步 但我无法从谷歌访问用户ID 这就是我的想法
  • jQuery 按类计数元素 - 实现此目的的最佳方法是什么?

    我想做的是计算当前页面中具有相同类的所有元素 然后将其添加到输入表单的名称中 基本上我允许用户单击 span 然后通过这样做为更多相同类型的项目添加另一个 但我想不出一种方法来简单地用 jQuery JavaScript 来计算所有这些 然
  • IllegalStateException 地图大小不应为 0 [重复]

    这个问题在这里已经有答案了 我有一个MapFragment显示地图 如果用户带着地图离开活动 或设备进入睡眠状态 然后回来onResume接到电话后 我将地图移回到标记处 但是当我移动相机时我遇到了异常 07 23 16 28 42 725
  • 使用 jQuery 删除文本

    有没有办法使用 jQuery 删除未包含在任何标签中的文本 p This is some text p This is unwrapped text to be removed span some more text span 感谢您的帮助
  • 为什么要执行更高阶的程序?

    因此 如果一种语言提供了更高阶的过程 那么我可以拥有返回过程的过程 就像是 define Proc a b c lambda x method body here in terms of a b c and x 要创建新程序 我只需执行以下
  • 难以实现 1Gbit UDP 吞吐量

    对于负载小于1470的UDP数据包 是否有可能达到1Gbit的吞吐量 由于数据包较小 实现这样的吞吐量应该存在一些瓶颈 I O 操作系统 网络等 我想驱动程序和硬件可能必须调整为小数据包 高吞吐量 有人尝试用小 UDP 数据包成功实现 1G