You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8中如何提升SharpPcap的UDP请求发送速度?

问题

我无法将UDP请求间的延迟降至50微秒以下(要求为10微秒)。尝试了多预热线程等优化手段但无效(似乎底层存在某种锁机制)。请求通过以太网发送,是否有其他配置或方法可降低延迟?

当前使用的代码片段:

_device.OnPacketArrival += ProcessPacketArrival;
_device.Open(DeviceModes.MaxResponsiveness | DeviceModes.NoCaptureLocal, -1);
_device.NonBlockingMode = true;
_device.StartCapture();

//delay between requests 50+ microseconds
_device.SendPacket(_cachedBytes.AsSpan());
_device.SendPacket(_cachedBytes.AsSpan());

已尝试方案

  • 多种设备配置调整
  • 多线程优化(含预热线程)

期望目标

UDP请求间延迟不超过10微秒

解决方案

使用SharpPcap中的SendQueue类实现低延迟发包:

  1. 初始化SendQueue时指定合适的队列大小
  2. 通过SendQueue.Add方法将需要发送的数据包批量加入队列
  3. 调用_sendQueue.Transmit()完成批量发送

实际效果:请求间延迟约为5微秒,两次批量发送(Transmit调用)之间的间隔为24毫秒。


内容的提问来源于stack exchange,提问作者Im Here

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 01:10:57