欧姆龙FinsTCP与FinsUDP协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析附含报文模拟器等
前言 – Fins欧姆龙这个协议网上极少有相关的模拟器、Tcp的这一块倒是有但是Udp的基本都是不可用
1、 Fins协议结构也很简单 协议分为两种 一种tcp一种udp
2、 Tcp比Udp的报文会多一层tcp的head头部
3、 Udp回应报文在Wireshark中是解析不到(因为他按照UDP的格式去解那指定是解不到)
好长时间没有更新过博客了、也比较懒= = 。
一、Read(TCP)
发包

那么这个就很轻易的看出来这是个tcp的
Magic byte[0]-[3] 46 49 4e 53 ASCII码:FINS
Length byte[4]-[7] 00 00 00 1a 从command之后的数据长度
Command byte[8]-[11] 00 00 00 02 命令 就是发送帧
Eroor code byte[12]-[15] 00 00 00 00 没用,接收结束后不需要检测错误
走完这一层接下来就是fins header这一层
ICF byte[0] 80 请求位 看下面的这张图

RSV byte[1] 00预留 这些位被系统使用。不在响应中访问它们 默认为00即可
GCT byte[2] 07此值供系统使用
DNA byte[3] 00 目的网络地址
DNA1 byte[4] 00 目的节点的地址
DA2 byte[5] 00目标单位地址
SNA byte[6] 00源网络地址
SA1 byte[7] fb源节点的地址
SA2 byte[8] 00源单位地址
SID byte[9] 31服务ID 用于标识生成传输的进程
Command Code byte[10][11] 01 01 核心部位 这个就是功能码了
接下来就是data这一部分 这一部分通常携带的就是数据
Memory Area code byte[0] b3 磁盘号
Beginning address byte[1][2]00 62 读取的起始位置
Beginning address bits byte[3] 00 固定为00
Number of items byte[4][5] 00 01读取的数量
发包看完了接下来看回包

也很为简单、要读取数据那么肯定要回复读取的内容
而且可以对照一下发包、基本上是一直的无非是data部分不太一样那我们直接说data部分吧

Response code byte[0][1] 00 00 这个就是Fins协议的返回码、不论其他包如何变化data部分的第一条一定是这个
Response data byte[2][3]00 00 这个就是读取到的数据、但是我这个是没有数据所以是00 00
Fins协议有很多功能、比如说 I/O区读写、参数区读写、程序区读写、但是他们的报文的格式都一样(除了功能码不一样)所以我就不过多介绍截几张图就好了
二、读取控制器状态
发包

这个就是为读取控制器的状态 那么他就只发送了请求并没有携带任何的数据 所以没有data部分
回包

前面的就不用看了 直接看data部分就可以了
那么跟我说的是一样、他的返回码是在data部分的第一条。
剩下的就是返回一些系统的状态了
三、读周期时间
发包

回包

这种协议的结构很清晰、变化的地方也只有data部分 很容易理解
四、看一下fins的连接吧
发包

46 49 4e 53 是Fins的ASCII码
00 00 00 0c 则为至此往后的长度
00 00 00 00 则为命令 为客户端连接服务端
00 00 00 00 没啥用
00 00 00 00 客户端的节点地址
回包

清晰无比 Server node address 就是服务端的节点地址 其他都是与发包一致
五、写文件
发包

之前的图就不截了 跟read都是一样的
Disk no byte[0][1] e0 01 磁盘号
Parameter code byte[2][3] 参数的代码
Filename byte[4][15] 文件名
File position byte[16][19] 00 00 00 00 文件的位置
Data length byte[20][21] 80 bb file data的长度
File data byte[22]到尾 为要写的数据
回包

只回复了错误码、00 00 代表的就是无错误
其他的的功能与我介绍的也都差不多一致、看懂了read和write其他的也都可以看懂,那么接下来就再说一下udp的
六、Read(UDP)
发包

可以看到跟tcp的是完全一样 但是只是少了个tcp的head头部
那么可以对照tcp的去看udp的协议
回包
因为Wireshark没有解析到所以也没有什么价值就不贴出来了。
但是根据他回应的报文与TCP的回应报文相比较是为一致。
....
忒懒不写了
没有排版
这只是我个人的理解、当然也借鉴了网上的一些文章。如有出处望请见谅。
欧姆龙FinsTCP与FinsUDP协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析附含报文模拟器等的更多相关文章
- 西门子S7comm协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析S7comm所含功能码以及UserData功能
又一次成为懒蛋了,标题就这么改了改又是一篇新文章. 网上也有很多S7comm协议的解析,但还是如同我上一篇一样我只是做报文的解析对于S7comm的原理并进行阐述. 有些地方有错误的地方尽请大家指出,共 ...
- ModbusTCP协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析Modbus所含功能码
现在网上有很多类似的文章.其实这一篇也借鉴了很多其他博主的文章. 写这篇文章的重点是在于解析功能和报文.对Modbus这个协议并不会做很多介绍. 好了,我们开始吧. 常用的功能码其实也没多少.我也就按 ...
- DNP3协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析Modbus所含功能码
现在网上有很多类似的文章.其实这一篇也借鉴了很多其他博主的文章. 写这篇文章的重点是在于解析功能和报文.对Dnp3这个协议并不会做很多介绍. 那我们就开始吧 上图则为dnp3协议整体的报文模型(点击红 ...
- 哈工大 计算机网络 实验四 利用 Wireshark 进行协议分析
计算机网络实验代码与文件可见github:计算机网络实验整理 实验名称 利用 Wireshark 进行协议分析 实验目的: 本次实验的主要目的. 熟悉并掌握Wireshark的基本操作,了解网络协议实 ...
- TCP\IP协议实践:wireshark抓包分析之链路层与网络层
目录 TCP\IP协议实践:wireshark抓包分析之链路层与网络层 从ping开始 链路层之以太网封装 ip首部 开启ping程序,开始抓包 由一个ping的结果引出来的两个协议ARP ICMP ...
- 利用Wireshark抓取并分析OpenFlow协议报文
OpenFlow 交换机与控制器交互步骤 1. 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网 ...
- php伪协议,利用文件包含漏洞
php支持多种封装协议,这些协议常被CTF出题中与文件包含漏洞结合,这里做个小总结.实验用的是DVWA平台,low级别,phpstudy中的设置为5.4.45版本, 设置allow_url_fopen ...
- 利用wireshark抓取远程linux上的数据包
原文发表在我的博客主页,转载请注明出处. 前言 因为出差,前后准备总结了一周多,所以博客有所搁置.出差真是累人的活计,不过确实可以学习到很多东西,跟着老板学习做人,学习交流的技巧.入正题~ wires ...
- 如何利用wireshark对TCP消息进行分析
原文:https://www.cnblogs.com/studyofadeerlet/p/7485298.html 如何利用wireshark对TCP消息进行分析 (1) 几个概念介绍 1 seq ...
随机推荐
- LVS+Keepalived 实现高可用负载均衡集群
LVS+Keepalived 实现高可用负载均衡集群 随着网站业务量的增长,网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如 F5 ,Array又太贵,你们又是创业型互联公司如何有效 ...
- 日日算法:Kruskal算法
介绍 克鲁斯卡尔(Kruskal)算法是用来求出连通图中最小生成树的算法. 连通图:指无向图中任意两点都能相通的图. 最小生成树:指联通图的所有生成树中边权重的总和最小的树(即,找出一个树,让其联通所 ...
- Python抓取新浪新闻数据(二)
以下是抓取的完整代码(抓取了网页的title,newssource,dt,article,editor,comments)举例: 转载于:https://blog.51cto.com/2290153/ ...
- python——append后的列表为什么打印出来为空
关于python 列表append的用法: list = [] list = list.append("c") print(list) >>>None 正确写法应 ...
- HDU1176(正推DP)
时间和位置都可以决定这一秒捡到的馅饼数 不妨设\(dp[i][j]\)为在\(i\)秒\(j\)位置的最大收益 那么\(dp[0][5]=0\),dp数组的其他部分置成-1代表不能转移 那么对于第\( ...
- P2816 宋荣子搭积木
描述:https://www.luogu.com.cn/problem/P2816 saruka非常喜欢搭积木,他一共有n块积木.而且saruka的积木很特殊,只能一块块的竖着摞,可以摞很多列.说过s ...
- ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据)
本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据): 现有全省各地区静态JSON数据,现在想通过Url参数,动态控制是否显 ...
- word 小技巧 方框中 打 对勾
方框中 打 对勾 称为 复选框 控件,单击鼠标,在两种符号中切换. 设置步骤 1. 将隐藏的"开发工具"选项卡,显示出来 2. 在所需位置,插入复选框 3. 在属性中,设置复选框 ...
- Coursera课程笔记----Write Professional Emails in English----Week 5
Culture Matters(Week 5) High/Low Context Communication High Context Communication The Middle East, A ...
- C语言进阶_变量属性
人们总说时间会改变一些,但实际上这一切还得你自己来. 一.概念详解 变量:计算机语言中储存计算结果,其值可以被修改.通过变量名来访问计算机中一段连续的内存空间. 属性:区别于同类事物的特征. C语言中 ...