Wireshark抓取PROFINET包问题总结

1.如何导入GSD文件 ?

打开Wireshark在【编辑】->【首选项】->【Protocols】->【PNIO】,设置GSD文件的路径。

添加完成后,就可以解析报文了

2.Frame check sequence和FCS Status显示 unverified ?

【编辑】->【首选项】->【Protocols】->【Ethernet】 将"Assume packets have FCS"改为"Always". 勾选"Validate the Ethernet checksum if possible"

3.开启LLDP的针对PROFINET解析,主要针对解析LLDP包中的站名和端口ID

【编辑】->【首选项】->【Protocols】->【LLDP】下选为“PROFINET Special Column Info”

配置后,对LLDP包的解析信息如下

Wireshark的源码中对此信息的处理部分如下

### 使用 Wireshark 捕获和分析 PROFINET 协议数据 为了成功捕获并分析 PROFINET 数据,需要注意网络拓扑结构以及设备之间的通信方式。如果 PLC 和伺服之间通过直连方式进行通信,则无法直接使用 Wireshark 进行抓操作,因为这种情况下数据不会经过任何中间节点或交换机[^1]。 #### 解决方案一:利用集线器或镜像端口 可以通过在网络中引入支持广播功能的集线器或将现有交换机配置为镜像模式来解决此问题。具体方法如下: - **集线器**:将集线器连接至 PLC 和伺服之间,使所有流量被复制到其他端口上供 Wireshark 抓取。 - **镜像端口**:对于现代交换机而言,可以设置某个特定物理端口作为镜像端口,从而允许该端口接收到源目标间传输的所有帧副本用于后续分析。 #### 配置 Wireshark 软件环境 安装好最新版本的 Wireshark 后,在启动界面选择对应的网络接口卡(NIC),确保所选 NIC 正确关联到了上述提到能够获取所需流量的位置。接着点击“Start”按钮即可开始实时捕捉数据流。 #### 分析已捕获的数据 当有新的数据到达时,Wireshark 主窗口会显示这些新条目;双击任意一行可展开详细视图查看其内部字段含义。针对 PROFINET 流量来说,重点关注以下几个方面: - `EtherType` 值应设为 0x8892 表明这是基于 IEEE Std 802.3 的工业自动化标准之一 —— PROFINET IO 实时通讯协议的一部分[^2]。 - 查找 RT-Class (Real Time Class),它定义了不同类别下的优先级处理机制,比如周期性和非周期性的应用层消息差异等特性[^3]。 ```python import pyshark # 创建离线捕获对象读取pcap文件中的profinet报文 cap = pyshark.FileCapture('example.pcap', display_filter='ether proto 0x8892') for packet in cap: try: print(f"Source MAC: {packet.eth.src}, Destination MAC: {packet.eth.dst}") if hasattr(packet, 'profinet'): print(f"PROFINET API Version: {packet.profinet.api_version}\n") except AttributeError as e: pass ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

省身求是

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值