S7 协议
1.S7协议模型
首先应当明确的是,S7以太网协议本身也是TCP/IP协议簇的一员,S7协议在OSI中的位置相当于将物理层和数据链路层之上的协议进行了定义,其中的对应关系大致为:
OSI模型 | TCP/IP协议模型 | S7 以太网模型 |
---|---|---|
应用层(Application Layer) | 应用层(Application Layer) | S7 Communication |
表示层(Presentation Layer) | COTP | |
会话层(Session Layer) | TPKT | |
传输层(Transport Layer) | 传输层(Transport Layer) | TCP |
网络层(Network Layer) | 网际层(Internet Layer) | IP |
数据链路层(Data Link Layer) | 链路层(Link Layer) | 工业以太网 |
物理层(Physical Layer) |
备注:这里的S7模型并不是说S7是独立于TCP/IP的,只是为了标出S7模型下比较有代表性的内容,事实上S7就是TCP的一种 定制,是TCP协议簇的一种
解释:
- TCP/IP协议:有不同的说法,4层和5层模型的区别在于有没有将低两层分开看待
- TPKT(Transport Service ontop of the TCP):通过TCP的传输服务。介于TCP和COTP之间。属于传输服务类的协议,功能为在COTP和TCP之间建立桥梁,其内容包含了上层协议数据包的长度。一般与COTP一起发送,当作Header段
- COTP(Connection-Oriented Transport Protocol):面向连接的传输协议。与TCP一样都是为了可靠地传输用户数据,但是TCP基于字节流而COTP基于数据包,表现形式上就是COTP将数据包从一个用户传输到另一个用户,接受方可以获得和发送方完全一样的数据边界;而TCP通过流传输,因此TCP协议通常需要加入标志信息来标识自己的边界,比如上述的TPKT就是完成了一个这样的功能。
如上图所示,出于复用服务端和客户端之间会话的目的,COTP的字段中包含了TSAP(传输服务访问点),TSAP共2个字节,其中第二个字节为机架号+插槽号,插槽号位于0-4bit,机架号位于5-7bit。在连接建立时匹配TSAP,在数据传输时由2个字节(目标,源)参考代替 - C