• 学习open62541 ---[68] 使用Wireshark观察通信消息


    Wireshark是强大的网络协议分析工具,而open62541也是基于socket的,所以也可以用其来观察OPCUA通信消息。


    一 安装Wireshark

    https://www.wireshark.org/去下载并安装Wireshark,这里选择Windows 64位安装包,
    在这里插入图片描述
    下载后直接安装就行了,安装完要重启下电脑。


    二 使用

    1)开启OPCUA过滤器

    打开Wireshark,打开"编辑"->“首选项”,
    在这里插入图片描述
    然后展开Protocol,
    在这里插入图片描述
    往下拉找到OpcUa,如下,注意右侧的端口号,需要和OPCUA服务器的端口号一致,
    在这里插入图片描述
    然后点击OK就行了。

    2)观察消息

    需要选择网络接口,由于本人的OPCUA服务器是运行在虚拟机里的,所以选择虚拟机对应的接口,如下,
    在这里插入图片描述
    PS:如果是本地局域网,那么就使用loopback那个接口;如果不确定哪个接口对应自己的虚拟机,可以把鼠标悬停在接口名上,会显示ip地址,根据地址就可以知道需要的接口了。

    双击就进入观察窗口了,在过滤的地方输入opcua然后回车,
    在这里插入图片描述
    此时在虚拟机里开启server,然后在Windows下打开UaExpert连接服务器,此时就可以在Wireshark里看到很多消息了。
    在这里插入图片描述
    在UaExpert这边,把ServiceLevel拖到中间的DataAccess View窗口,
    在这里插入图片描述
    可以看到其值为255,
    在这里插入图片描述
    此时在Wireshark这边,可以看到相关的消息,即创建订阅和监测项,然后就是发送publish请求,此时server会给一个publish请求的回应,即下图中选中的那一行,
    在这里插入图片描述

    双击打开这一行,展开如下,
    在这里插入图片描述
    下面是原始通信数据,上面是解析后的信息,此时展开OpcUa Binary Protocol,如下,
    在这里插入图片描述
    接着展开NotificationData,如下,可以看到和UaExpert这边观察到的值是一样的,
    在这里插入图片描述
    注意,由于这个变量值一直是255,所以只能在第一次的回应中看到其值,后面的回应里都没有值,这是因为监测项只有在变量值发生变化时才通知client

    PS:当点击解析信息里的某项时,在下面的原始数据栏里会自动选中对应的字节,非常方便!
    在这里插入图片描述
    同理,当client发送其它请求,如read/write,也可以使用Wireshark进行观察,可以帮助我们进行debug,来确保程序写的是否正确。

  • 相关阅读:
    Redis详解
    【STM32基础 CubeMX】uart串口通信
    Java教程:一文详解函数式编程
    GO语言-数据结构-栈
    (BGV12)方案初学
    关于数据权限的设计
    常见算法排序总结
    vue 检查指定路由是否存在
    脚本:python实现樱花树
    SpringBoot自动配置的原理篇,剖析自动配置原理;实现自定义启动类!附有代码及截图详细讲解
  • 原文地址:https://blog.csdn.net/whahu1989/article/details/126567110