IE CPs 和 CPUs 通过 T blocks 进行开放式 TCP/IP 通信,如果把传输用户数据量设置成最大长度 1452 字节时,为什么会发送不同长度的数据?

n

描述
下述信息适用于下面的工业以太网 CPs:n

  • 6GK7443-1EX40-0XE0n
  • 6GK7443-1EX41-0XE0n
  • 6GK7443-1GX20-0XE0n
  • 6GK7443-1EX20-0XE0n
  • 6GK7443-1GX30-0XE0n
  • 6GK7443-1EX30-0XE0

这些模块通过使用下面的通信块 (T blocks) 在工业以太网上进行开放的 TCP/IP 通信:
n

FB 块名称 功能
FB63 TSEND 通过已建立的通信连接传输数据包
FB64 TRCV 通过已建立的通信连接接收数据包
FB65 TCON 建立一个通信连接
FB66 TDISCON 断开一个已建立的连接

在这里通信处理器仅支持 ISO-on-TCP 连接类型,所以使用 TCP 协议的扩展协议 RFC 1006,因此可以传输最大用户数据 1452 字节。n

工业以太网的最大数据结构长度是 1460 字节 (maxSegmentSize)。因此 1452 字节符合一个以太网报文长度;这说明上面提到的通信处理器可以在一个报文中发送数据。n

集成 PROFINET 接口的 CPUs 使用T blocks 在工业以太网上同样支持开放式的 TCP/IP 通信。n

工业以太网 CP 在一个报文中发送 1452 字节数据。S7 CPU 用两个报文发送相同大小的数据。n

说明
想要理解这个区别,必须考虑两种 LAN (Local Area Network) 记录。n

当一个连接已建立,通信双方协商连接参数。
连接参数包括 maxSegmentSize参数。这是由主动方提出由通信方确认或协商的。协商的返回值将用于通信连接计数。
另外一个参数是 MaxTPDUSize,是每个协议包的最大长度。如果这个参数值大于 maxSegmentSize,则相应的协议包被分段传送。n

Below,先设想两个 IE CPs 之间用 T blocks 建立一个 TCP/IP 通信的连接。
然后假定 CPU 和 IE CP 用 T blocks 建立一个 TCP/IP 通信的连接。这样可以清楚地说明为何数据被分成了两个报文包。

  1. 两个 IE CPs 之间的通信连接

    图. 01 中 IE CP(IP 地址为 140.90.36.1)主动建立连接并提议 MAXTPDUSize 值为 2048 字节。在总记录中可以看到通信方 (IE CP) 确认 MAXTPDUSize值为 2048 字节。该值将用于通信连接计数。

    IE CPs 和 CPUs 通过 T blocks 进行开放式 TCP/IP 通信,如果把传输用户数据量设置成最大长度 1452 字节时,为什么会发送不同长度的数据?
    图. 01

    这说明只发送了一个报文。用户数据长度 1452 字节没有受到 maxSegmentSizemaxTPDUSize 限制。两个值都大于 1452 字节。
    IE CP 只发送一个报文!

  2. CPU 和 IE CP 之间的通信连接

    图. 02 中 CPU(IP 地址为140.90.37.10)主动建立连接并提议 MAXTPDUSize 值为 1024 字节。在总记录中可以看到通信方 (IE CP) 确认 MAXTPDUSize值为 1024 字节,尽管其可以支持更大的 maxTPDUSize 值(见图. 01)。CPU 和 IE CP 之间通信连接的 maxTPDUSize 值是 1024 字节。

    IE CPs 和 CPUs 通过 T blocks 进行开放式 TCP/IP 通信,如果把传输用户数据量设置成最大长度 1452 字节时,为什么会发送不同长度的数据?
    图. 02

    这说明最大用户数据长度 1452 字节被分成两个报文信息。最大用户数据长度被 maxSegmentSize 限制。这个数小于 1452 字节。
    CPU 发送了两个报文信息。

对使用者的影响
首先,使用者看不到任何应用层的行为。通信机制是在通信双方的协议层进行单独调整的。但是,如果在 LAN 上比较报文信息数量,可以看到第二类用 CPU 通信有更多的报文信息。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论