当前位置:主页 > 新闻 > 社会新闻 > 正文

揭开实时以太网神秘的面纱

未知 2019-07-14 10:53

  说到实时以太网,大多数工程师都比较陌生,什么是实时?为什么实时?其实就是一层面纱,今天我们来给您揭开!

  大多数工程师平时接触的以太网基本都是TCP协议。因为觉得以太网TCP协议比UDP协议高级,理由就是数据在传输过程中不容易丢,但工业上的实时以太网很多都是不基于连接的UDP协议,这是为什么呢?我们先看下他们的区别。

  1.1 1.TCP与UDP的基本特性

  1.1.1 1.1 TCP(Transmission Control Protocol,传输控制协议)

  TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次握手才能建立起来。

  TCP连接三次握手过程

  1.主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我。;

  2.主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我;

  3.主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:我已收到回复,我现在要开始传输实际数据了;

  这样3次握手就完成了,主机A和主机B 就可以传输数据了。如图1所示。

  图1 TCP建立连接3次握手过程

  TCP断开四次握手过程

  TCP建立连接要进行3次握手,而断开连接要进行4次;

  1 。当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求;

  2.主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1;

  3 。由B 端再提出反方向的关闭请求,将FIN置1;

  4.主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束。

  如图2所示。

  图2 TCP连接断开的4次握手过程

  由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,为了提高数据通信的可靠性,在通讯有效数据之外添加了一套复杂的验证流程,从而加大了网络的负载和系统的开销,降低了通讯的效率。并且在通讯过程中一旦出现异常断开,重新建立连接前,需要先断开连接,释放资源,造成极大的耗时。所以TCP一般用于对实时性没有要求的通讯场合,比如网页浏览、邮箱数据、文件传送等。

  1.1.1 1.2 UDP(User Data Protocol,用户数据报协议)

  UDP是一个非连接的协议,传输数据之前,源端和终端不建立连接,当它想传送时就抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

  由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息,或者可以大家共享一个广播地址,成为UDP组播功能,类似CAN总线那种通讯,发到组播地址上的信息,将被所有组成员收到。如图3所示。

  图3 UDP的两种通讯方式

  UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

  UDP使用尽最大努力交付,但发送端的链路层不保证可靠交付,因此发送主机不需要维持复杂的链接状态表(这里面有许多参数)。UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并。

  UDP一般用于实时性高的工业控制场合。比如现在绝大多数的实时以太网都使用UDP通讯。轨道交通中的IEC61375-3-4更是以UDP作为实时过程数据的通讯,而用TCP用于参数配置和固件升级使用。

  1.1.3 1.3 TCP与UDP的对比

  1.2 2 实时以太网项目中的方案对比

  1.2.1 2.1 TCP方案

  使用的TCP方案中,由于工业现场的网络干扰等问题,在通讯过程中无法保证TCP连接可靠的保持,而在每一次断开TCP连接并尝试重连的过程中,都会经历上述的4次断开握手和3次连接握手的流程(如果是某些异常断开的TCP还需要经历超时重传和保活计数的流程),而在网络状况不佳的情况下完成上述流程是有很大可能超出系统应用层的超时限制,所以会出现了频繁出错的问题,导致实时性很差。

  1.2.2 2.2 UDP方案

  而UDP方案基于上述介绍过的UDP的特性,在出现异常后UDP可以省去TCP繁琐的握手流程,很快的恢复通讯,把需要发送的有效数据及时发送出去,从保证了系统要求的响应需要。

  使用UDP方案的数据完整性是由上层应用协议来保证的。即使通讯过程中某帧数据丢失,但发送方能在未收到对方响应前利用重发机制重新把丢失的数据再次发送,以太网100Mbps的速率保证很短的传输时间,所以很快就可以保证数据到达。不容易超出系统应用层的超时限制。

  比如轨道交通实时以太网的通讯协议中,就使用20548端口UDP组播地址作为过程数据实时控制。如图4所示。

  图4 轨道交通中的实时以太网

  以ECNN为例,主机通过UDP组播的方式,1包即将发给所有从机的内容都发下去,如图5所示。从机收到后,响应报文到组播地址,不但可以被主机收到,而且可以被网络中的记录设备(黑匣子)记录,便于故障时候进行分析。

  图5 轨道交通实时以太网通讯过程

  1.3 总结

  综上所述,结合实际情况,使用UDP方案更符合实时以太网的实际需求。ZLG致远电子研发的ZNE-100TA串口转以太网模块,具备完整的TCP、UDP、UDP组播功能,高达1.15Mbps的串口传输速度,完全可以满足绝大多数实时以太网的通讯要求。严格完整的物理层测试,可以解决用户对于物理链路层设计的烦恼。如图6所示。


  图6 ZNE-100TA模块物理层测试(部分)

标签