从这几年工业技术的发展趋势看,以太网在工业领域的广泛应用和普及,已经是一个毋庸置疑的事实了,正如之前「工业总线向以太网的演进」一文中所说,其驱动力源自于网络连接的通用性和一致性所带来的系统成本优化。
图1 主流总线模型
然而,工业设备通讯技术从早期的现场总线迈入工业以太网时代,带给广大制造业用户的,却不仅仅是因使用新技术而获得的各种价值和益处,同时还有多种工业以太网协议之间相互激烈竞争而引发的“选择障碍”。
图2 框架
要知道,对于我们这些传统的制造业从业人员来说,每当听到各种专业的 IT 术语,来解释不同以太网协议之间的差异、评价各自技术优劣的时候,基本上绝对是一脸懵逼的表情。
图3 框架层次
可是话说,如何能够在不具备强大 IT 技术知识背景的情况下,理解各种工业以太网协议之间的差异和不同呢?
个人觉得,首先还是需要搞明白,信息网络中设备间数据通讯的基本流程。我们可以把设备间的数据交换,想象成社会活动中人与人之间的信息交流,需要基于一定的规则进行相互沟通,人的言谈需要遵循特定的礼仪,设备通讯同样也需要有协议的约定。而无论是人与人之间的社交礼仪,还是设备间的通讯协议,都必定是建立在信息交互事件的流程框架上的。
打个比方:当我们要和某人交谈时,先得在人群中找到 ta,确认其此时有空才能够开始交流,经过一顿简单的寒暄和握手以后,就可以直接说出要交流的内容了;而如果对方此时正忙,那么就需要等待,或者另行约定时间...;此外,双方交谈时,只有交替轮流发言,才能确保沟通的效率;以及,交流完成后还需要互相致意告别...等等。这,就是一套信息交互的基本流程。
而在这个过程中的每一步,双方具体采用什么样的交流方式,例如:怎样找到对方、双方交谈用哪种语言、以什么样的方式寒暄、如何反馈繁忙状态、忙时是否继续等待、怎样告别结束交谈…等等,这些,就是通讯协议所需要涉及的内容了。
图4 万物互联
在通讯网络上多台设备间的信息交互也需要有一套流程,它不仅取决于双方数据接口的约定,还必须依靠通讯线路中各节点(如:以太网端口、路由器、交换机...等等)在数据接力中的相互配合才能实现,这就需要在网络通讯服务中所涉及的各个层面,对各节点组件的职责以及相互之间的数据交互方式,有一整套极为明确的定义。
这就是所谓的通讯协议组。
图5
就好像邮政快递公司在管理邮件的递送流程时,也需要为各职能部门以及它们之间的协作分工制定明确的规则一样。
具体来说,假设网络中的设备 A 要向设备 B 发送一组数据,那么其通讯流程大致就会是这样的:
i. 用户发送
设备 A 需要先将数据转换成网络系统能够传输的数字信号,按照约定的格式将其打包,并加上目标设备 B 的网络地址和应用类型标识,传送到通讯端口(缓存);
图6
这就好比我们在投递邮件前,需要将写好的信件内容放到信封里,然后按照规定的格式,填上收件人的详细信息(地址、邮编、部门、姓名、主题...等等);
ii. 传输服务
图7
网络系统会根据数据通讯的需求,提供不同类型的传输服务,如:传输控制协议(TCP)和用户数据报协议(UDP)…等等,根据通讯内容的需要,用户可以选择使用不同的数据传输服务;
图8
这就好像我们在寄出邮件的时候,会根据需要(如:重要性和紧急程度...),选择不同类型的投递服务,如:普通信函、是否需要保价、是否需要回执、是否需要分批发送...等等;
iii. 包裹分拣
图9
接下来,数据包会由设备 A 的端口就近被传送到与之相连的网络交换机。
图10
交换机的作用就好像是快递公司在各个社区附近的分拣站,会根据邮包上的地址信息以及所选择的服务类型,决定其之后的走向;
iv. 远程路由
图11
如果目标设备 B 与数据源设备 A 不在同一个局域网络(LAN)内,此时交换机会将数据传送至其上层网络,由路由器根据目标地址为其寻找数据传输路径。
图12
数据会经过多个路由器之间的传输接力,最终到达目标设备 B 所在局域网的网络交换机,然后由该交换机将数据最终传输至设备 B 的网络端口;
图13
而这里的路由器,就像是快递公司在各个交通枢纽(机场、车站、转运站...)的物流中心,负责包裹的跨区转运;
v. 本地链路
图14
如果目标设备 B 与数据源设备 A 处在同一个局域网络(LAN)内,此时交换机就会将数据直接传送到设备 B 的网络端口;
图15
就像快递公司处理市内(区内)快递一样,直接走地面运输,由快递小哥递送了。
vi. 用户接收
设备 B 收到来自设备 A 的数据后,会根据数据包上的端口信息,将其交给相关应用程序打开并解析处理;
图16
就像我们收到快递后将其交给信封上标注的部门和收件人一样。
vii. 物理介质
图17
快递公司所有的邮件运输,都必须借助各类交通工具和转运、分拣站才能完成。
图18
网络中设备间数据传输的整个过程,则是基于通讯线路上的高低电平信号的转换而完成的。
图19
事实上,我们目前使用的各类以太网通讯协议,基本上都遵循着这样一个系统化的数据传输流程。
图20
只不过为了方便协议设计和实施的一致性,协议框架被抽象的表述为一个多层的参考模型,每一层协议分别对应上述通讯流程中的不同阶段(i./vi. 应用层;ii.传输层;iv.网络路由层;iii./v.数据链路层;vii.物理层)。
图21
不过,网络协议的参考模型仅仅是定义了设备间的数据传输需要经过哪些步骤;而有关网络通讯过程中各个阶段(层)的数据交互规则,如:不同类型数据的优先级、不同设备在网络中的“发言”权限、出现错误时的故障处理机制…等等,就需要基于特定的行业应用特点,在通讯协议中具体约定了。
图22
就好像大部分快递公司都有着非常类似的邮件分拣流程,但在处理具体邮件时,却很可能会采取一些不同的方法,用户体验上也会因此而产生一定的差异。
图23
经过上面的讨论,我们就不难理解,为什么各家在介绍其工业以太网技术时,都会拿多层协议模型来说事儿了,因为它们基本上都有着类似的数据通讯流程,只是在协议的每一层约定了一些不同的规则,也就是说,在数据通讯过程中的各个阶段,采用了不同的方法而已。
图24