-
安全产品
-
-
-
工业控制协议介绍之—EtherNet/IP协议
发布时间:
2018-03-27
来源:
作者:
访问量:
281
EtherNet/IP(Ethernet/Industrial Protocol)是适合工业环境应用的协议体系。EtherNet/IP允许工业设备交换实时应用信息。这些设备包括简单的I/O设备,如传感器/执行器等,以及复杂的控制设备,如机器人,可编程逻辑控制器等过程控制器。
EtherNet/IP是为了在以太网中使用CIP协议而进行的封装。EtherNet/IP的CIP帧封装了命令、数据点和消息等信息。CIP帧包括CIP设备配置文件层、应用层、表示层和会话层四层。数据包的其余部分是EtherNet/IP帧,CIP帧通过它们在以太网上传输。
EtherNet/IP通常通过TCP/UDP端口44818运行。此外,EtherNet/IP还使用UDP端口2222。使用不同端口的原因是EtherNet/IP实现了隐式和显示两种消息传递方式。显式消息被称为客户端/服务器消息,而隐式消息通常被称为I/O消息。
EtherNet/IP 帧格式:
Ethernet/IP使用 CIP(control and information protocol ) 为应用层协议, 定义了两种主要的通信方式。
EtheNet/IP协议保留TCP/UDP的端口44818。通过tcp传输Explicti message.有些命令也可以通过UDP传输。 UDP的保留端口2222, 用来传输Implicit I/O message, 以充分利用IP组播功能。
所有通过端口44818传输的报文,封装格式如下:
通过UDP传输的I/O message,使用common Packet Format格式。
CIP规范对数据包结构有很多的规定,这意味着每个使用EtherNet/IP的设备必须实现符合规范的命令。下面是EtherNet/IP首部中封装的各字段含义:
Command:两字节整数,对应一个CIP命令。CIP标准要求,设备必须能接收无法识别的命令字段,并处理这种异常。常见命令如下
COMMAND_NOP 空操作
COMMAND_LISTSERVICES 服务列表, 查询或回显支持的服务
COMMAND_LISTIDENTITY 身份列表, 查询或回显身份
COMMAND_LISTINTERFACES 接口列表, 查询或回显支持的接口
COMMAND_REGISTERSESSION 注册会话,注册一个会话
COMMAND_UNREGISTERSESSION 取消会话, 取消一个会话
COMMAND_SENDRRDATA 发送RR数据, 用于无连接的消息,比如建立连接
COMMAND_SENDUNITDATA 发送UNIT数据, 用于有连接的数据传输
COMMAND_INDICATESTATUS 指示状态
COMMAND_CANCEL 取消
Length:两字节整数,代表数据包中数据部分的长度。对于没有数据部分的请求报文,该字段为0。
Session Handle:会话句柄(session handle)由目标设备生成,并返回给会话的发起者。该句柄将用于后续与目标设备的通信。
Status: Status字段存储了目标设备执行命令返回的状态码。状态码“0”代表命令执行成功。所有的请求报文中,状态码被置为“0”。其它的状态码还包括:
0x0001无效或不受支持的命令
0x0002目标设备资源不足,无法处理命令
0x0003数据格式不正确或数据不正确
0x0065接收到无效的数据长度
Sender Context:命令的发送者生成这六字节值,接收方将原封不动的返回该值。
Options:该值必须始终为0,如果不为零,数据包将被丢弃。
Command-specific data:该字段根据接收/发送的命令进行修改。
Wireshark 当前对EtherNet/IP协议解析支持比较完整,使用新版的wireshark可以帮助我们了解协议细节。
下一条:
相关资讯

关注我们