发表于:2004-05-11 22:02:00
楼主
高效逻辑环
与动态逻辑环比较,这个例子是把判断节点是否有数据要发送的功能下移到现场设备节点,而不是仲裁器。一个逻辑环中准备就绪的站点,如果能够判断出自己的上游、上游的上游节点没有数据要发送,它就立即启动发送。如果判断时间很短,那么这个逻辑环网络的效率就接近物理令牌环了。
为便于理解,这里举一个现实世界中的虚拟例子,——我们开班会,班主任老师(仲裁器)规定:从班长、班副、学委、组长按头衔排序,每人可以发言5分钟,当然也可以不发言。我是学委,排第三,应该在班长开始发言后的第10~15分钟时间片内获得讲话令牌。但是如果班长、班副不发言,我是不是也要等10分钟?这就是有主时间槽ALOHA协议,也是令牌总线逻辑环的限制。
低效没什么不可以,它用起来简单,概念清晰,容易实现。
为了提高效率,要设法把无效时间片缩短。注意到在这个班会发言协议中,隐含着另一个队列排序时间片,我定义它为5秒钟,是一个发言准备就绪的人站立起来(占用信道)的时间。如果班副在5秒钟内发现班长没有站起来,他就可以据此判断班长放弃了这一轮的发言权,他就可以在第6秒开始时提前发言。按照这个如果前驱不发言协议,我可以提前在第10秒钟时开始5分钟的讲话,浪费的空闲时隙是2个T=10秒钟,而按前一个传统协议,浪费的是10分钟。
如果班长发言,班副不发言,我排第几秒?协议简化为:无论我的前驱谁发言,我总在他们发言结束(侦听到网络空闲)后的第10秒—队列第3的次序上—获得发言权。
类似的协议可以在LonWorks网络中的LonTalk协议中看到。LonTalk是运行在链路上的协议,不是逻辑环。
协议示意见图1。图中的帧间空间T0,假设也定义为5S,这是一个人发言结束后坐下的时间,也就是数据帧传输结束到网络空闲的确定时间。
这个协议好像允许班长或者高优先权者不停地讲话,那样就不是对等站点网络协议了。于是协议又规定:在令牌绕环轮巡的一周内,每个人只允许发言一次。这样,这个协议的令牌绕环时间不会超过 n x 5分钟;掌握了时间的班主任(仲裁器或系统监控设备)一定会在网络空闲时间超过n x 5 S或者令牌绕环时间超过n x 5 min时重新发布一个令牌帧启动新的一轮循环。
以上协议又像是计算机网络中的流量控制,以太网适配器上实现的CSMA协议确实允许一个节点不停地把数据送上网络,它没有像HDLC那样实现链路层上的流量控制;因此,主机在运输层会提供一个端到端流量控制机制,—例如TCP,这使任何主机不会连续把帧送到网络上,因为协议要求它等待一个数据接收端发回的确认。
没有班主任老师(仲裁器)发出的确认,班长或任意优先级站点,都不会开始第二次发言。