为何在某些特定的条件下,TCP 连接的响应时间过长?

n

描述:
下列描述适用于所有支持“TCP coection”连接类型的工业以太网通信处理器。由于其数据传输仅限于在 TCP 层( OSI 开放式互联网参考模型第四层),该连接类型也被称为“TCP 本地( TCPnative )”连接。n

概述:
TCP (传输控制协议)协议带有流量控制,也就是说,当发送方发送数据包的速度快于接收方处理数据包的速度时,接收模板会迫使发送模板减缓发送速度。该功能通过 TCP 协议中的“TCP 窗”得以实现。窗尺寸的大小在呼叫过程中,由通信双方协商决定。前面提到的通信处理器,其窗容量为560字节。每一个连接都涉及到窗尺寸。 通过以下两种情形对流量控制进行说明。n

  1. 情形 1: 发送模块的发送速度等于或慢于接收器处理数据包的速度

    当站点接收到来自 LAN (局域网) 上的 10 字节数据后,该站点将回应一确认报文。报文中的确认号 (Acknowledge number) 等于上一帧确认报文的确认号加10,以表示已成功接收和处理上次发送的 10 个字节。
    在这种情况下,TCP 窗容量最大可为 560 个字节。

  2. 情形 2:发送模块的发送速度快于接收器处理数据包的速度

    当一组新的报文到达时,接收器还未处理完上一次接收的数据 (正在传输给 S7-CPU)。 接收器确认报文中的确认号加 10,但是窗尺寸将减为 550 字节。通过确认号,发送方获知报文已被成功接收,且 TCP 窗尺寸已减小 ( TCP窗最大值 - TCP窗实际值 = 560 - 10 = 10 字节)。这表明接收器无法处理所有的数据,此时发送方最多只能发送 550 字节的数据。
    情形 2中的机制即为流量控制机制。如果发送器速度很快,接受器将减小 TCP窗尺寸,直至其减小为 0。在收到接收方的确认报文指示TCP 窗增大前,发送器都不能再发送数据。在此阶段,连接并不断开,只是暂时没有数据传输。
    当通信处理器工作在 TCP 层时,在 TCP 窗许可的范围内,可以连续发送任务 ( 数据包 )。因此,其工作性能得以优化,主要目标在于尽可能多的向各通信站点发送任务。

附加信息:
另外,对最坏情况下的响应时间进行分析。在发送器速度足够快的情况下,发送器循环发送长度为一个字节的任务。理论上,发送器在接收器将 TCP 窗减为 0 之前可以发送 560 个任务。此时 560 个字节的数据均在接收器的接收缓冲区中。发送方依次修改循环发送的字节数据,接收方将接收到的每一个字节回送给发送方。通过测量被修改的字节何时被发送方接收的时间,就可获知响应时间。以下分别针对上述两种情形进行分析。

  1. 情形 1:由于输入用户字节数据经接收器接收后直接回送给发送方,因此响应时间很短。
    响应时间很短。
  2. 情形 2:用于测试的数据字节作为第 560 个任务被接收。接收器需要首先处理前 599 个字节数据并将它们一一回送后,才能对测试字节进行处理再回送。
    这将使得响应时间长度激增。
    对于一些应用,此类情况不允许发生。

补救措施:
没有直接的解决方案。这是因为流量控制机制在协议层执行,用户无法对其进行读取或修改。应用编程人员应慎重考虑数据发送频率,尤其是在执行循环任务时。一般推荐使用网络分析仪对 LAN进行分析。如果 TCP 窗一直很小,应减慢发送器的发送速度或者分散或减小网络负荷。

LAN 记录:
下列图片及相应解说适用于熟悉协议层总线分析的网络技术人员。图片中显示了在两个 SIMATIC-S7通信处理器间的 TCP 连接的报文记录。以下对标记行及其后的报文记录行进行解释。数据传输是双向的,地址 140.90.4.1 对应4号站,地址 140.90.5.1 对应 5 号站。

为何在某些特定的条件下,TCP 连接的响应时间过长? Bild 1: Telegrammverkehr ( 37 KB )

  • 在标记行,即 13 号报文中,4 号站向 5 号站发送确认报文,其中 TCP窗 (WIN) 设置为最大值 560 字节。
  • 在 14 号报文中,5 号站发送长度为 160 字节 ( LEN = 160 ) 的用户数据。
  • 5 号站随即又发送了 240 字节长度的 15 号报文。两次连续发送不会产生问题,因为第 13 号报文中的 TCP 窗尺寸为 560 字节。
  • 在 16 号报文中,4 号站的将确认号加 400 ( 160 + 240 ),表明数据已接收。但同时,TCP 窗的大小仅有 160 字节,这说明数据到达接收方传输层(第4层),但还未被处理。
  • 随后,4 号站又发送一确认报文,其中 TCP窗的最大值恢复为 560 字节。

最后,提供关于 LAN 记录自解压缩文件的下载,使用合适的工具软件 (如 Wireshark) 可以看到多种协议报文。

为何在某些特定的条件下,TCP 连接的响应时间过长? TCP_1V_mitDaten.exe ( 30 KB )

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

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

相关推荐

发表回复

登录后才能评论