LWIP PBUF,发送UDP时的额外字节数?

时间:2016-02-15 11:46:03

标签: udp lwip

我在需要高数据速率的应用程序中使用LWIP。所以我分配4个pbuf一次并存储他们的地址和一些硬件魔法,一个接一个地填充它们,并告诉程序缓冲区已准备好并且软件将其作为UDP数据包发送,在一段时间后我嗅探数据包后如何在我的数据包中有大约60个额外的字节,它们看起来像额外的UDP标头但在有效载荷中。 任何解决方法/建议?

1 个答案:

答案 0 :(得分:0)

在我的工作项目中,我们遇到了导致类似问题的pbuf损坏。我们在xilinx上使用了不同类型的多个MAC,并且pbuf部门不满意。我建议你做的是打开IP层和可能的UDP层的完整lwip调试。然后手动将打印件修剪成可以管理的东西,以便再现问题(lwip具有最低打印级别 - 您可以使用它来帮助修剪诸如警告与严重打印之类的事情)。在我们的例子中,我们会得到UDP或IP层校验和错误,这是坏事的标志。此外,一次只测试一个方向是有帮助的,以限制坏方向在一个方向上的可能性。我们使用了xilinx的iperf示例并对其进行了扩展。这些有助于解决问题。 BTW 4 pbufs什么都没有......当我看到以太网流量时 - 有很多东西正在进行,开销等......有很多潜在的问题,来自太少的ARP表条目和...四个pbuf是非常低,如果你被困在记忆中,我为你试图使用lwIP感到遗憾。这听起来像是一场噩梦。另外,请注意通常打印是阻塞的...这样会破坏性能。使用非阻塞例程替换lwip调试打印是明智的,您知道这些例程不会阻碍您的实时性能。