首页 > 解决方案 > 为什么 UDP 数据包被识别为 LLC 协议?

问题描述

我发布了一个问题,因为使用 Boost asio 库编写服务器程序时遇到了障碍。

首先,我们正在为三台笔记本电脑中的每台创建以太网功能,以中继 MavLink 消息。

A的地址是192.168.137.16,它通过UDP端口10000向同一局域网内的192.168.137.3:10000(UDP)地址发送17字节的数据(MavLink数据包)。

B的地址是192.168.137.3,开放了10000(UDP)和12001(UDP)端口。重播从 A 接收到的数据到 C。

C的地址是192.168.137.33,来自B的数据经过中继处理。

问题是当B正常接收来自A的数据并将其发送给C时。

A->B 通常将数据包作为 UDP 协议处理,但 B->C 成为协议感知的 ISO 或 LLC。我还不知道原因,所以我正在向高级开发人员发布问题。

感谢您阅读不足的问题。

在此处输入图像描述

标签: socketsudpwireshark

解决方案


Wireshark 将 12000-12004 端口上的 UDP 流量识别为 LLC 协议。您可以在 Edit->Preferences->Protocols->LLC 中更改它。您可以从那里禁用 LLC 解析器。

我无法从这里诊断 ISO 数据包问题,但很可能是因为解析器再次运行非 LLC 数据包。

您可以尝试生成特殊的 MavLink 解析器。检查https://github.com/ArduPilot/pymavlink/blob/master/generator/mavgen_wlua.py


推荐阅读