sockets - 为什么 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。我还不知道原因,所以我正在向高级开发人员发布问题。
感谢您阅读不足的问题。
解决方案
Wireshark 将 12000-12004 端口上的 UDP 流量识别为 LLC 协议。您可以在 Edit->Preferences->Protocols->LLC 中更改它。您可以从那里禁用 LLC 解析器。
我无法从这里诊断 ISO 数据包问题,但很可能是因为解析器再次运行非 LLC 数据包。
您可以尝试生成特殊的 MavLink 解析器。检查https://github.com/ArduPilot/pymavlink/blob/master/generator/mavgen_wlua.py
推荐阅读
- vue.js - 在页面/组件加载时打开模式对话框
- css - 如何在 FOLDER 中包含所有全局样式?
- javascript - 为什么 date.getHours()%12 给你 1-12 格式的时间?
- graph - 使用最大标准偏差减少的最小生成树聚类
- python - 从网上下载表格
- python - 如何用列名中的非标准字符替换 PySpark 中所有列的值?
- django - 显示从外键关系到自序列化程序的信息
- amazon-web-services - 无法在 Python 中解析 .csv
- c - 将 int 数字转换为 hex char - C 编程
- r - devtools/安装包的问题