精华内容
下载资源
问答
  • TCP协议分析

    2015-09-17 13:14:09
    tcp协议分析,简单介绍了TCP的报文格式、连接建立断开和状态机转换
  • tcp协议分析

    2017-03-19 15:27:53
    tcp协议
  • 湘潭大学 网络协议TCP/IP实验三TCP 协议分析实验报告,仅供参考
  • wireshark tcp 协议分析

    2017-06-27 17:52:06
    wireshark tcp 协议分析 http://luoguochun.cn/2014/07/23/wireshark-tcp/

    wireshark tcp 协议分析




    http://luoguochun.cn/2014/07/23/wireshark-tcp/
    展开全文
  • 山东建筑大学计算机学院的计算机网络课程实验报告,实验四 TCP协议分析与验证.doc
  • 实验九 TCP 协议分析实验 1.TCP 协议介绍** TCP 是传输控制协议 (Transmission Control Protocal)的缩写,提供面向连接的可靠的传输服务。在TCP/IP 体系中,HTTP、FTP、SMTP 等协议都是使用TCP 传输方式的。 (1...

    实验九 TCP 协议分析实验

    1.TCP 协议介绍**
    TCP 是传输控制协议 (Transmission Control Protocal)的缩写,提供面向连接的可靠的传输服务。在TCP/IP 体系中,HTTP、FTP、SMTP 等协议都是使用TCP 传输方式的。

    (1)TCP 报文格式
    在这里插入图片描述

    图1 TCP 报文段格式

    TCP 报文分为首部和数据两个部分。如图1 所示,TCP 报文段首部的前20 字节是固定的,后面有4 ×n 字节是可选项。其中:

    • 源端口和目的端口:各2 字节,用于区分源端和目的端的多个应用程序;
    • 序号:4 字节,指本报文段所发送的数据的第一字节的序号;
    • 确认序号:4 字节,是期望下次接收的数据的第一字节的编号,表示该编号以前的数据已安全接收。
    • 数据偏移:4 位,指数据开始部分距报文段开始的距离,即报文段首部的长度,以32bit为单位。
    • 标志字段:共有六个标志位:
      ① 紧急位URG=1 时,表明该报文要尽快传送,紧急指针启用;
      ② 确认位ACK=1 时,表头的确认号才有效;ACK=0,是连接请求报文;
      ③ 急迫位 PSH=1 时,表示请求接收端的TCP 将本报文段立即传送到其应用层,而不是等到整个缓存都填满后才向上传递;
      ④ 复位位RST=1 时,表明出现了严重差错,必须释放连接,然后再重建连接;
      ⑤ 同步位 SYN=1 时,表明该报文段是一个连接请求或连接响应报文,
      ⑥ 终止位FIN=1 时,表明要发送的字符串已经发送完毕,并要求释放连接。
    • 窗口:2 字节,指该报文段发送者的接收窗口的大小,单位为字节;
    • 校验和:2 字节,对报文的首部和数据部分进行校验;
    • 紧急指针:2 字节,指明本报文段中紧急数据的最后一个字节的序号,和紧急位 URG配合使用;
    • 选项:长度可变,若该字段长度不够四字节,有填充补齐。
      (2)TCP 连接的建立
      TCP 连接的建立采用 “三次握手”的方法。
      一般情况下,双方连接的建立由其中一方发起。如图2 (a)所示:
    • 主机A 首先向主机B 发出连接请求报文段,其首部的SYN 同步位为1,同时选择一个序号x;
    • 主机B 收到此连接请求报文后,若同意建立连接,则向主机A 发连接响应报文段。在响应报文段中,SYN 同步位为1,确认序号为x+1,同时也为自己选择一个序列号y;
    • 主机A 收到此确认报文后,也向主机B 确认,这时,序号为x+1,确认序号为y+1 。
      当连接建立后,A、B 主机就可以利用TCP 进行数据传输了。
      在这里插入图片描述
      图2 TCP 的连接和释放
      (3)TCP 连接的释放
      在数据传输结束后,任何一方都可以发出释放连接的请求,释放连接采用所谓的 “四次握手”方法。如图29(b)所示,假如主机A 首先向主机 B 提出释放连接的请求,其过程如下:
    • 主机A 向主机B 发送释放连接的报文段,其中,FIN 终止位为 1,序号x 等于前面已经发送数据的最后一个字节的序号加 1;
    • 主机B 对释放连接请求进行确认,其序号等于x+1。这时从A 到B 的连接已经释放,连接处于半关闭状态,以后主机B 不再接收主机A 的数据。但主机B 还可以向主机A发送数据,主机A 在收到主机B 的数据时仍然向主机B 发送确认信息。
    • 当主机B 不再向主机A 发送数据时,主机B 也向主机A 发释放连接的请求;
    • 同样主机A 收到该报文段后也向主机B 发送确认。
      (4 )TCP 数据传输
      TCP 可以通过检验序号和确认号来判断丢失、重复的报文段,从而保证传输的可靠性。 TCP 将要传送的报文看成是由一个个字节组成的数据流,对每个字节编一个序号。在连接建立时,双方商定初始序号(即连接请求报文段中的SEQ 值)。TCP 将每次所传送的第一个字节的序号放在 TCP 首部的序号字段中,接收方的TCP 对收到每个报文段进行确认,在其确认报文中的确认号字段的值表示其希望接收的下一个报文段的第一个数据字节的序号。
      由于TCP 能提供全双工通信,因此,通信中的每一方不必专门发送确认报文段,而可以在发送数据时,捎带传送确认信息,以此来提高传输效率。

    2.实验工具软件简介
    1)3CDaemon 软件
    3CDaemon 是3Com 公司推出的功能强大的集FTP Server、TFTP Server、Syslog Server和TFTP Client 于一体的集成工具,界面简单,使用方便。
    这里主要介绍实验中需要用到的FTP Server 功能。
    * 主界面如图3所示,左窗格第二项为FTP Server;
    在这里插入图片描述

                              图3 3CDaemon 主界面 
    

    配置 FTP Serve功能:选中左窗格功能窗口,打开 FTP Server按钮,单击窗格中的Configure FTP Server 按钮,打开3CDaemon Configuration 配置窗口,如图4 所示, 配置FTP Server 功能。
    这里需要设置的就是 “Upload/Download ”路径,作为FTP Server 的文件夹,其它选项可以使用系统缺省设置。设置完成后,单击确认按钮,设置生效。
    在这里插入图片描述

                        图4 3CDaemon Configuration 配置窗口 
    

    在实验中,我们使用3CDaemon 系统内置的匿名帐户 “anonymous”登陆FTP 服务器。
    3.实验环境与说明
    (1)实验目的
    学习3CDaemon FTP 服务器的配置和使用,分析TCP 报文格式,理解TCP 的连接建立、 和连接释放的过程。
    (2)实验设备和连接
    实验设备和连接图如图3所示,一台锐捷S2126G 交换机连接了2 台PC 机,分别命名为PC1、PC2,交换机命名为Switch。
    在这里插入图片描述

                            图3 TCP 协议分析实验连接图 
    

    (3)实验步骤
    步骤1:按照如图3 所示连接好设备,配置PC1 和PC2 的IP 地址,验证连通;(备注:实验室中任何一台PC都可以作为模型中的PC1和PC2;用Serv-U软件代替3CDaemon 软件即可。)
    步骤2:按照上面3CDaemon 软件的介绍方法在PC1 上建立FTP 服务器;
    步骤3:在PC1 和PC2 中运行wireshark,开始截获报文,为了只截获到与我们实验有关的内容,将截获条件设置为对方主机的IP 地址,如PC1 的截获条件为“host 172.16.10.200 ”;
    步骤4:在: PC2 上打开命令行窗口,执行如下操作:
    C:\Documents and Settings\Administrator>ftp
    ftp> open
    To 172.16.10.100
    Connected to 172.16.10.100.
    220 3Com 3CDaemon FTP Server Version 2.0
    User (172.16.10.100:(none)): anonymous
    331 User name ok, need password
    Password:
    230-The response ‘’ is not valid.
    230-Next time, please use your email address as password.
    230 User logged in
    ftp> quit
    221 Service closing control connection
    在这里插入图片描述

    C:\Documents and Settings\Administrator> 
    

    步骤5:停止截获报文,将截获的结果保存为FTP-学号,按下列要求分析截获的结果;
    在这里插入图片描述

    1)结合本节TCP 协议介绍部分的内容,分析TCP 连接建立的 “三次握手”过程,找到对应的报文,填写表1(传输方向填写PC2=>PC1 或PC2<=PC1 )。 
    

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    表1 TCP 连接建立报文分析

    报文号 传输方向 源端口 目的端口 序 号 确认序号 同步位
    SYN 确认位
    ACK
    1647 Pc1=>pc2 46602 443 0 1 1 0
    1648 Pc2=>pc1 443 46602 0 1 1 1
    1649 Pc1=>pc2 46602 443 1 1 1 0

    2)从FTP的报文中的第一个FIN=1的TCP 报文开始分析 TCP 连接释放的 “四次握手”过程,填写表2。

    表2 TCP 连接连接释放报文分析
    报文号 传输方向 源端口 目的端口 序号 确认序号 终止位FIN 同步位SYN 确认位
    ACK
    1685 Pc2=>pc1 443 46602 230 30 1 0 1
    1686 Pc1=>pc2 46602 443 30 231 0 0 1
    1687 Pc2=>pc1 443 46602 30 231 1 0 1
    1687 Pc1=>pc2 46602 443 231 31 0 0 1

    展开全文
  • TCP协议分析,网络实验报告,供大家参考
  • 网深科技于2019年4月中旬发布全球第一张中文版TCP协议分析图。 网深科技发布TCP协议分析图中文版 下载pdf格式文件,通过以下途径: ①关注公众号"数字化性能管理",点击【我们】,即可看到协议分析图2019版本 ②...

    网深科技于2019年4月中旬发布全球第一张中文版TCP协议分析图。

    TCP协议分析图
    网深科技发布TCP协议分析图中文版

     

    下载pdf格式文件,通过以下途径:

    ①关注公众号"数字化性能管理",点击【我们】,即可看到协议分析图2019版本
    ②打开网站http://www.netinside.com.cn,点击关于网深,即可看到TCP协议分析图2019中文版

    展开全文
  • ModBus/TCP协议分析

    万次阅读 多人点赞 2016-12-22 11:24:31
    ModBus/TCP协议分析 一、术语 1 word = 2 byte; 1 byte = 8 bit. 校验码:校验码是由前面的数据通过某种算法得出的,用以检验该组数据的正确性。代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,...

    ModBus/TCP协议分析

    一、术语

    1 word = 2 byte;

    1 byte = 8 bit.

    校验码:校验码是由前面的数据通过某种算法得出的,用以检验该组数据的正确性。代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,为了减少这种输入错误,编码专家发明了各种校验检错方法,并依据这些方法设置了校验码。

    常用的校验有:累加和校验SUM、字节异或校验XOR、纵向冗余校验LRC、循环冗余校验CRC……

    离散量输入:主要用来读取单个位的数据,如IO的状态;
    线圈:开关输出信号,主要用来写入单个位的数据,与离散量构成组成对位的操作;
    输入寄存器:主要用来读取16位,也就是两个字节的数据;
    保持寄存器:主要用来写入16位的数据。、

    PLC:可编程逻辑控制器,是一种采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。

    二、协议简介

    Modbus通信协议,是Modicon PLC所制定的资料交换通信接口标准,于1979年首先制定串行通信标准(含Modbus异步及Modbus Plus同步),于1997年制定网络通信标准(Modbus/TCP)。是属于OSI所定义的通信层的第七层应用层(Application Layer)。是为Client/Server或称为 Master/Slave型式的通信协议。由于Modbus的通信协议简单容易设计,结果广被许多控制设备或外围信号设备所采用,因此无形中成为自控业界的标准。Modbus异步的硬件架构简单,被使用的比率最高。Modbus Plus同步的协议可以提供高速的通信速度,适合主控制设备间大量资料交换。Modbus/TCP则是因应Ethernet网络的架构,近年来被大量使用的通信协议,也因为其速度及资料传送量远比Modbus Plus更快更大,所以已渐渐取代其功能。

    Modbus通信协议基本上是遵循MasterandSlave的通信步骤,有一方扮演Master角色采取主动询问方式,送出QueryMessage给Slave方,然后由Slave方依据接到的QueryMessage内容准备ResponseMessage回传给Master。即使目前硬件通信已经可以达到双方互相主动通信的能力,但是于Modbus通信协议的规定,必须一方为Master,另一方为Slave不能互换角色。一般使用上,监控系统(HMI)都为Master,PLC、电表、仪表等都为Slave,HMI系统一直PollingSlave的各种relayandregister最新数值,然后做显示及各种逻辑计算及控制调整等处理。

     

     

    报文说明

    1. Modbus/TCP报文格式


    起始字符组:于前面再多加6个字符,以定义一些TCP/IP的需要 系数。说明如下: 

    Byte0:本次通信Message的编号以2 bytes整数(Byte 0、1)表示,此 byte为上字符,一般是由Master编号之,以区分每次Message。如果是Slave则将Master传来的Query Message照转至Response Message。 

    Byte1:本次通信Message的编号下字符。

    Byte2:通信协议识别号码以2 bytes整数(Byte 2、3)表示,此 byte 为上字符,于此处为零。 

    Byte3:通信协议识别号码下字符,于此处为零。 

    Byte4:Message长度以2 bytes整数(Byte 4、5)表示,此 byte 为上字符(由Device Address至Data为止),因为长度不能超过256位,所以此位永远为零。 

    Byte5:Message长度下字符(由Device Address至Data为止)。 

    由Device Address至Data等资料,都是将 8 bits原始值转换为两码的十六进制ASCII码,所以其实际传送的字符数约为RTU格式的两倍。Data:数个字符是表示每个Function Code有不同数目的详细资料规定。

    Modbus规定IP Port No. 为 502。

    2.功能码

    功能码作用

       Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网线路上的Modbus协议映射能够在应用数据单元(ADU)上引入一些附加域。

    启动Modbus事务处理的客户机创建Modbus应用数据单元。功能码向服务器指示将执行哪种操作。

    Modbus协议建立了客户机启动的请求格式。

    用一个字节编码Modbus数据单元的功能码域。有效范围是十制制1-255(128-255为异常响应保留)。当从客户机向服务器发送报文时,功能码域通过服务器执行哪种操作。

    从客户机向服务器发送的报文数据域包括附加信息,服务器使用这个信息执行功能码定义的操作。这个域还包括离散项目和寄存器地址、处理项目的数量以及域中的实际数据字节数。

    在某种请求中,数据域可以是不存在的,在此情况下服务器不需要任何附加信息。功能码仅说明操作。

    功能码的类型

        功能码主要分为有效功能码、异常功能码和错误功能码。

    如果在一个正确接收Modbus ADU中,不出现与请求Modbus功能有关的差错,那么服务器至客户机的响应数据会包含请求中的正常功能码。如果出现与请求Modbus功能有关的差错,那么响应数据会包含一个异常码和错误码。

    例如,客户机能够读一组离散量输出或输入的开/关状态,或者用户能够读/写一组寄存器数据内容。当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或出现某种差错(称为异常响应)。对于一个正常响应来说,服务器仅对原始功能码响应,如下图:

    对于异常响应,服务器返回一个与客户机等同的码,设置该原始功能码的最高有效位为逻辑1,并加该异常码后增加错误码,以通知客户机异常原因。如下图:

    有效功能码

    有效功能码有二十几种,但是一般使用上都以1、2、3、4、5、6、15、16等八种最为常用,以及另外特殊使用的20、21两种,此为General Reference Register,绝大部份的Modbus设备并不会提供此Register。于PLC上主要的控制数据有下列四种型式。此八种功能码就是处理这些控制资料,详细说明如下各点:

     

    控制数据四种型式: 

    DI:DigitalInput(数字输入,离散输入),一个地址一个数据位,用户只能读取它的状态,不能修改。以一个 bit表示 On/Off,用来记录控制信号的状态输入,例如:开关,接触点,马达运转,超限switch…等等。于PLC上被称为Input relay、input coil等。 

     

    DO:DigitalOutput(数字输出,线圈输出),一个地址一个数据位,用户可以置位、复位,可以回读状态。以一个 bit表示 On/Off,用来输出控制信号,以激活或停止马达,警铃,灯光…等等。于PLC上被称为Output relay、Output coil等。 

    AI:Analog Input(模拟输入,输入寄存器),一个地址16位数据,用户只能读,不能修改,,以16 bits integer表示一个数值,用来记录控制信号的数值输入,例如:温度、流量、料量、速度、转速、文件板开度、液位、重量…等等。于PLC上被称为Input register。

     

    AO:AnalogOutput(模拟输出,保持寄存器),一个地址16位数据,用户可以写,也可以回读,以16 bits integer表示一个数值,用来输出控制信号的数值,例如:温度、流量、速度、转速、文件板开度、饲料量…等等设定值。于PLC上被称为Output register、Holding register。

     

      有效功能码说明(十进制)

    01

    读取线圈状态

    02

    读取输入状态

    03

    读取保持寄存器

    04

    读取输入寄存器

    05

    强置单线圈

    06

    预置单寄存器

    07

    读取异常状态

    08

    回送诊断校验

    09

    编程(只用于484)

    10

    控询

    11

    读取事件计数

    12

    读取通信事件记录

    13

    编程(184/384/484/584等)

    14

    探寻

    15

    强置多线圈

    16

    预置多线圈

    17

    报告多寄存器

    18

    可使主机模拟编程功能

    19

    重置通信链路

    20

    读取通用参数

    21

    写入通用参数

    22

    屏蔽写寄存器

    23

    读/写多个寄存器

    43

    读设备别识码

    22-42,44-64

    保留作为扩展功能

    65-72

    保留以备用功能所用

    73-119

    非法功能

    120-127

    保留,留作内部作用

    128-255

    保留,用于异常应答

    注:功能码的具体描述可参考如下地址第11页:

    http://wenku.baidu.com/link?url=cm-3qRyq2LAUZV3hb7fHucYD2NgacRy4bC-eJI4z4NBY03SZeGQqsISLACm_hwsbRKo7ChWsrAO5sXDXJyMJhnpyLZvVSXUOMt3iG7zgsGC

     

            

    异常码说明

    异常码(ExceptionCode)是用来表示,当有任何通信资料异常时,由Slave不回传正常资料,而回传错误码号(Error Code)以提供Master做异常处理。其Message格式以下表为例说明:

    由以上可知处理ExceptionCode,将原有的Function Code的最左边 Bit 设定为 1,然后将适合的Error code代入。比如:上图功能码为06(二进制为00000110),因为是地址超出范围,属于异常情况,所以将最左边bit设为1,即:10000110,转成10进制为86。

    Modbus错误码(10进制)

    01

    非法功能。对于服务器(或从站)来说,询问中接收到的功能码是不可允许的操作,可能是因为功能码仅适用于新设备而被选单元中不可实现同时,还指出服务器(或从站)在错误状态中处理这种请求,例如:它是未配置的,且要求返回寄存器值。

    02

    非法数据地址。对于服务器(或从站)来说,询问中接收的数据地址是不可允许的地址,特别是参考号和传输长度的组合是无效的。对于带有100个寄存器的控制器来说,偏移量96和长度4的请求会成功,而偏移量96和长度5的请求将产生异常码02。

    03

    非法数据值。对于服务器(或从站)来说,询问中包括的值是不可允许的值。该值指示了组合请求剩余结构中的故障。例如:隐含长度是不正确的。modbus协议不知道任何特殊寄存器的任何特殊值的重要意义,寄存器中被提交存储的数据项有一个应用程序期望之外的值。

    04

    从站设备故障。当服务器(或从站)正在设法执行请求的操作时,产生不可重新获得的差错。

    05

    确认。与编程命令一起使用,服务器(或从站)已经接受请求,并且正在处理这个请求,但是需要长持续时间进行这些操作,返回这个响应防止在客户机(或主站)中发生超时错误,客户机(或主机)可以继续发送轮询程序完成报文来确认是否完成处理。

    06

    从属设备忙。与编程命令一起使用。服务器(或从站)正在处理长持续时间的程序命令。张服务器(或从站)空闲时,用户(或主站)应该稍后重新传输报文。

    08

    存储奇偶差错。与功能码20和21以及参考类型6一起使用,指示扩展文件区不能通过一致性校验。服务器(或从站)设法读取记录文件,但是在存储器中发现一个奇偶校验错误。客户机(或主方)可以重新发送请求,但可以在服务器(或从站)设备上要求服务。

    10

    不可用网关路径。与网关一起使用,指示网关不能为处理请求分配输入端口至输出端口的内部通信路径。通常意味着网关是错误配置的或过载的。

    11

    网关目标设备响应失败。与网关一起使用,指示没有从目标设备中获得响应。通常意味着设备未在网络中。

     

    三、报文分析

    报文分两种,查询报文和响应报文

    1.正常报文形势

    此报文为仿真软件抓取

    1.1查询报文

    00000000 d05f[k1] 0000[k2] 0006[k3] 01[k4] 03[k5]  00 00[k6] 0064[k7] 

    此条报文的意思是:从寄存器起始地址0000开始,读取100个寄存器(每个寄存器2个字节)。

    [k1]起始字符组,用于区分查询与其响应报文是否是一组

     [k2]起始字符组,协议类型报文,0000代表是modbus/TCP类型

     [k3]起始字符组,包长,代表后面有6个字节的内容

     [k4]设备地址

     [k5]功能码03,表示读取保持寄存器

     [k6]寄存器起始位置

     [k7]要读取100个寄存器


    1.2查询响应报文

       00000000  d0 5f[k8] 0000[k9] 00cb[k10] 01[k11] 03[k12]  c8[k13] 00 00 00 00 00 00 00 ._...... ........

        00000010 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        00000020 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        00000030 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 ........ ........

        00000050 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        00000060 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        00000070 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        00000080 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        00000090 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        000000A0 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        000000B0 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

        000000C0 00 00 00 00 00 00 00 00  00 00 0000 00 00 00 00 ........ ........

    000000D0  00                                               .[k14] 

    此条报文的意思是:读取100个寄存器内容,反馈给查询方

    [k8]起始字符组,与查询报文对应

     [k9]起始字符组,协议类型报文,0000代表是modbus/TCP类型

     [k10]起始字符组,包长,代表后面有203个字节的内容

     [k11]设备地址

     [k12]功能码03,表示读取保持寄存器

     [k13]代表后面有200个字节

     [k14]指读取的100个寄存器内容


    2.异常报文形势

    以下报文是shodan流量中的

    2.1异常报文类型一

    2.1.1查询报文

    00000000 0000[k15] 00 00[k16] 00 02[k17] 07[k18] 11[k19] 

    [k15]起始字符组,用于区分查询与其响应报文是否是一组

     [k16]起始字符组,协议类型报文,0000代表是modbus/TCP类型

     [k17]起始字符组,包长,代表后面有2个字节的内容

     [k18]设备地址

     [k19]功能码17,表示报告多寄存器


    2.1.2查询响应报文

    00000000 0000[k20] 00 00[k21] 00 03[k22] 07[k23] 91[k24]  0b[k25] 

    [k20]起始字符组,与查询报文对应

     [k21]起始字符组,协议类型报文,0000代表是modbus/TCP类型

     [k22]起始字符组,包长,代表后面有3个字节的内容

     [k23]设备地址

     [k24]异常码,原功能码17(十进制),二进制为00010001,在最高位加1后为10010001,转成16进制为91

     [k25]错误码11,表示网关目标设备响应失败。


    2.2异常报文类型一

    2.2.1查询报文

    00000000 00 00 00 00 00 05 07[k26] 2b[k27]  0e[k28] 01[k29] 00[k30] 

     [k26]设备地址

     [k27]功能码43,表示读取设备识别码

     [k28]基本设备识别码。所有此种对象都是必备的:厂商名称、产品代码和修订本号。

     [k29]正常设备识别码。提供附加的和可选择的识别码以及数据对象描述。按标准定义所有种类的对象,但这种对象的执行是可选的。

     [k30]扩展设备识别码。除正常数据对象外,提供附加的和可选择的识别码以及专用数据描述。所有这些数据都是与设备有关的。


    2.2.2查询响应报文

    00000000 0000[k31] 00 00[k32] 00 03[k33] 07[k34] ab[k35]  0b[k36] 

     [k31]起始字符组,与查询报文对应

     [k32]起始字符组,协议类型报文,0000代表是modbus/TCP类型

     [k33]起始字符组,包长,代表后面有3个字节的内容

     [k34]设备地址

     [k35]异常码171。16进制2B转二进制为00101011,最高位加1后为10101011,转16进制为ab

     [k36]错误码11,表示网关目标设备响应失败。


    四、参考资料

    主要是从网上查找资料

    1. Modbus通信通讯教程(详细)

    网址:http://wenku.baidu.com/view/7c737b5d915f804d2a16c122.html?re=view

    2. MODBUS通讯协议中文版

    网址:http://wenku.baidu.com/link?url=cm-3qRyq2LAUZV3hb7fHucYD2NgacRy4bC-eJI4z4NBY03SZeGQqsISLACm_hwsbRKo7ChWsrAO5sXDXJyMJhnpyLZvVSXUOMt3iG7zgsGC

    3.报文主要来源

    网址:http://www.pcapr.net/browse?q=Modbus




    展开全文
  • TCP协议分析 客户端模拟器 工具

    热门讨论 2010-04-30 19:48:35
    TCP 协议分析 模拟 客户端 工具 工控 tcp 分析方便快捷! 想要源码的联系QQ:109117198 你需要我免费!
  • TCP协议的应用 TCP包结构 源端口号( 16 位):它(连同源主机 IP 地址)标识源主机的一个应用进程。 目的端口号( 16 位):它(连同目的主机 IP 地址)标识目的主机的一个应用进程。这两个值加上 IP 报头中的源...
  • TCP 协议分析工具 模拟客户端 工控小程序! 想要源码联系 QQ:109117198 你需要我免费!!
  • 我的tcp协议分析程序

    2008-05-03 00:56:24
    tcp协议分析,在linux下使用,需要先编译。
  • 全球第一张中文版TCP协议分析图 2019年网深科技发布全球第一张中文版TCP协议分析图。 分析图提供免费下载,可以通过以下两种方式下载获取。 1.微信搜索并关注“数字化性能管理”,点击【我们】即可查看并下载; 2....
  • TCP协议分析实验报告

    2011-11-30 20:47:46
    4. 学会协议分析软件发送自定义数据包的方法。 实验原理 1. TCP协议是面向连接服务和提供可靠数据传输的协议,通过抓包分析TCP如何建立连接,数据传输,释放连接来分析TCP协议。 2. TCP协议是通过三次握手来建立连接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,337
精华内容 3,334
关键字:

tcp协议分析