首页 理论教育 LonTalk协议介绍及应用分析

LonTalk协议介绍及应用分析

时间:2023-06-17 理论教育 版权反馈
【摘要】:LonWorks技术所使用的通信协议称为LonTalk协议。表5-4列出的是对应7层OSI参考模型的LonTalk协议为每层提供的服务。LonTalk协议支持路由器以便构成多种传输媒介的网络。LonTalk协议不支持两个域之间的通信,但借助网关的程序设计可以实现两个域之间的数据传送。

LonTalk协议介绍及应用分析

LonWorks技术所使用的通信协议称为LonTalk协议。Neuron芯片上的所有3个CPU共同执行一个完整的7层网络协议,该协议遵循ISO的OSI标准,称为通用控制网络。网上任一节点使用该协议都可与同一网上的其他节点互相通信。表5-4列出的是对应7层OSI参考模型的LonTalk协议为每层提供的服务。

表5-4 LonTalk协议

978-7-111-34393-6-Chapter05-8.jpg

Neuron芯片的LonTalk协议处理与传输媒介相对独立,网络可以采用多种传输媒介,如双绞线(使用差分曼彻斯特编码)、电力线(使用扩频)、无线电波(使用频移键控FSK)、红外线、同轴电缆以及光缆等。协议还支持网络分段,并且网络各段可使用不同的传输媒介。LON可以由一个或多个通道组成,为确保数据在两个通道之间传送,路由器用来连接不同的两个通道,它有两个对应通道传输媒介的收发器。LonTalk协议支持路由器以便构成多种传输媒介的网络。

1.LonTalk协议的大网络管理

在LON上,每个节点都有自己的网络地址。当网络规模扩大时,网络地址也增加,整个网络就比较难以管理,所以LonTalk协议定义了一种分层编址方式。这种方式使用域(Domain)、子网(Subnet)、节点(Node)地址,为了进一步简化多个分散节点的编址,还定义了另一级地址,这就是组地址。

网络地址可以有3层结构:域、子网、节点,如图5-5所示。

978-7-111-34393-6-Chapter05-9.jpg

图5-5 分层编址示意图

第1层域是一个或多个通道上的节点的逻辑集合,只有在同一个域里的节点才能互相通信。也就是说,在同一个通道上的节点可以完全通过赋予不同的域名而执行不同的网络应用,实现不同的网络应用之间完全独立、互不干扰地运行。某个节点可同时分属于一个或两个域,作为两个域的节点可用做两个域之间的网关(Gateway)。LonTalk协议不支持两个域之间的通信,但借助网关的程序设计可以实现两个域之间的数据传送。

第2层子网是域中节点的逻辑集合,每个域最多有255个子网,每个子网的节点数最多为127个。子网中的所有节点必须是在同一个区段上,子网不能跨越智能路由器。如果一个节点分属于两个域,那么它必须在同一个子网中。

第3层的结构是节点。子网中的每个节点都被赋予一个唯一的节点数,该数是7位的二进制数,这样每个子网最多可配置的节点数是127个。

组是一个域中的节点的逻辑集合。作为一个组的节点无须考虑它在域中所处的物理位置,一个域中最多可指定256个组。单独的一个节点可同属于多个组(最多15个组)。组编址的好处是降低随同消息发送的地址信息的字节数,同时也使同一组中的多个节点可同时接收网上发出的单个消息。节点的组不仅可跨越同一个域中的多个子网,而且可跨越多个通道。通过上面的三层结构把一个复杂的大网络分解,简化了整个网络的管理,便于网络的扩展。

2.LonTalk协议的消息服务类型

针对可靠性及有效性,LonTalk协议提供以下4种消息服务类型:

(1)应答服务

应答(ACKD)服务也被称为端对端的应答服务,它是最可靠的服务类型。当一消息发送到一个节点或一组节点时,发送节点将等待所有应收到该消息的节点发回应答。如果发送节点在预定的某个时间内未收到所有应收应答,则发送节点时间溢出,并重发该消息。重发消息的次数以及时间溢出值可选择设定。应答由网络处理器产生,应用处理器不必过问。(www.xing528.com)

(2)请求/响应服务

请求/响应(REQUEST)服务也是最可靠的服务类型。当一请求消息发送到一个节点或一组节点时,发送节点等待所有收到该消息的节点发回响应。同样,它也有时间溢出值以及重发次数可选择设定。响应可包括数据,所以这种服务类型特别适合远程过程调用或客户/服务器(Client/Server)应用。

(3)重发服务

重发(UNACKD_RPT)服务也被称为非应答重发服务,它的可靠性较应答服务低。某个消息被多次发往一个节点或一组节点,无应答或响应。当对大的节点组广播时,为避免产生过多响应造成网络过载,通常采用该服务类型。

(4)非应答服务

非应答(UNACKD)服务可靠性最差。某个消息一次性发往一个或一组节点,无应答或响应。当需要极高的传送速率或大量的数据要发送时,通常采用这种服务类型。不过,采用该服务类型应用程序无法知道发出的消息是否丢失,又无重发机制,所以它的可靠性是最低的。

3.LonTalk介质访问控制MAC的特点

LonTalk协议的MAC子层协议采用的是可预测的P—坚持CSMA算法,它是一种独特的冲突避免算法,它使得网络在过载的情况下,仍可以达到最大的通信量,而不至于发生因冲突过多致使网络吞吐量急剧下降的现象,这有别于传统的CSMA(载波监听多路访问)算法。

CSMA按占用信道的方式分为3种:非坚持CSMA、l—坚持CSMA、P—坚持CSMA。非坚持CSMA要求一个节点在发送报文之前,必须先侦听信道,当信道空闲时,立即发送报文,否则,随机等待一段时间后继续侦听。1—坚持CSMA要求一个节点在发送报文之前,先侦听信道,若信道空闲,立即发送报文,否则,继续侦听,直到出现信道空闲。P—坚持CSMA是当节点侦听到信道空闲时,以给定的概率P在一个随机分配的时隙发送报文,而以概率Q=(1-P)把发送推迟到下一时间槽,重新监听信道。每一帧的发送总是在时隙开始的那一瞬间启动,时隙数目R=1/P。

比较以上3种CSMA算法可知,非坚持CSMA算法传输介质的利用率很低,1—坚持CSMA算法网络冲突概率高,P—坚持CSMA算法在这两方面的指标介于两种算法之间,它试图降低1—坚持CSMA算法的冲突率,提高非坚持CSMA算法的传输媒介利用率。但是传输媒介的利用率仍不是很高,因为即使几个站有数据要发送,传输媒介仍然有可能处于空闲状态(因P不等于l),问题的关键在于如何有效地选择P值,要达到目的就是尽量避免在重负载下系统处于不稳定状态。对P—坚持CSMA,因为P是给定的,所以很难兼顾既要减少冲突又要减少媒介访问延时。为此,设计一种网络使该网络的P值能根据网络的负载的情况自适应地调整,即网络在轻载的情况下,P值较大以减小媒介的访问延时,在重载的情况下,P值较小以降低网络冲突的可能性,避免网络拥塞现象,MAC子层采用可预测P—CSMA来解决这个问题。

LON的节点发送消息包的时间序列是:在数据传送完毕后,插入两个重要的时隙划分:优先级时隙和随机时隙。当网络空闲时,网上所有节点的发送时间均被随机地分配在16个随机时隙上,媒介访问的平均延时为8个时隙,这等同于P值等于0.0625(1/16)的P—坚持CSMA。当估计网络的负载增加时,节点会重新计算随机时隙的数目,具体表现是增加发送时隙数,节点将随机地分配在数目多的时隙上,因时隙数R=l/P,R增加,P值降低,从而降低发生冲突的概率。由此可见,由于实现了随机时隙数目的动态调整,从而实现了概率P值的动态调整。

P值的动态调整取决于随机时隙数的动态调整,而随机时隙数的调整取决于节点对网络负载的预测。某一时刻的网络负载就是该时刻网上将发送消息包的数目D。随机时隙的数目

R=16×D=16~1008

式中,D的取值范围是1~63。所以预测某一时刻网络负载就是预测某一时刻D的值。这就是说,网上每个节点在启动发送数据之前,先预测D的值以调整随机时隙数,然后在某一随机分配的时隙以概率P=1/(D×16)发送消息包。

节点如何实现对D值的预测?某个要发送消息的节点在它发送的消息包中插入将要回送该消息的应答的接收节点的数目,也就是发送消息包将产生的应答数消息,所有收到该消息包的节点的D值通过加上该应答数获得新的D值,从而使随机时隙的数目得以更新。若该节点有数据要发送,它将以新的概率值P在随机分配的时隙发送。每个节点在消息包发送结束,它的D值自动减l。由此实现了每个节点都能动态地预测在某一时间的D值。

由预测D值的过程可见,必须使用应答服务才能获得消息发出后产生的应答数。由于LonTalk的大部分报文默认的是应答服务,所以预测D值的能力还是比较高的。可预测P—坚持CSMA只能降低冲突至最小,并不能消灭冲突。实际应用中也常有许多消息不需要或者不适合采用应答服务。如果所有的消息都不使用应答服务,该协议即是无可预测的,等同于P=1/16=0.0625的P—坚持CSMA。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈