令牌环网是一种定义在 IEEE 802.5 中,其中所有的工作站都连接到一个环上,每个工作站只能同直接相邻的工作站传输数据的网络。通过围绕环的令牌信息授予工作站传输权限,基于令牌传递(Token Passing)技术。
令牌环的管理“闲”令牌的丢失会阻止环的使用,令牌的重复也会破坏环的运行。因此。在令牌环网中必须选择一个节点作为监控节点,行使管理功能。监控节点的管理功能有以下4点。
(1)保证不丢失令牌
如果持有令牌的节点失效,令牌就会丢失。系统将每个节点都截留令牌并发送含令牌帧最长数据帧的总时间设置为最长无令牌时间。监控节点中有一个定时器,监控节点在发出令牌时将定时器设置为最长无令牌时间。定时器的值随时间递减。若定时器的值为0时,令牌仍未返回,则丢弃过时到达的数据帧,并重新发出新令牌。
(2)清除无主帧
若发送节点在数据帧返回之前失效,则该帧无法被回收,成为在环上连续循环的无主帧。识别无主帧要用到访问控制字段的M位。发送节点将M位置为0,经过监控节点时将其改为,1。如果M位为1的帧再次回到监控汀点,则被监控节点回收,并重新发出新令牌。
(3)保持环路的最小时延
环路总时延包括传输介质时延和每个节点1bit的转发时延。如果环网的长度较短,活动的工作节点很少。则环路总时延可能小于24bit时延、只有保证环路时延大于令牌的24bit时延。环网才能正常工作。监控节点必须随时监测环路总时延,若小于24bit就插入额外的时延,使令牌能够正常在环上转动起来
(4)回收无效帧
监控节点监视环上流动的数据帧,发现格式错误或校检出错的帧时,就把这样的帧从环上取走,并放出新令牌。
监控节点是由所有节点选举出来的。当一个监控节点失效时,其他节点可以再选举一个新的监控节点。
监控节点的设置是因为需要对令牌进行管理。但这增加厂令牌环方法实现的复杂性。而且在令牌环中.所发送的数据帧需在再次回到发送节点时才能被回收。使大约50%的环路在传递无用信息,影响了传输效率。因此,虽然令牌环网具有能够传输可变长信息,不会产生冲突等优点,但它的市场竞争力越来越比不以太网。特别是快速以太网的出现,使得令牌环的市场份额越来越小。1
令牌环管理问题初始化当令牌环网刚开始启动、一个站接通电源或经复位后要成为令牌环中的一个成员时,都必须进行初始化。所谓初始化就是要保证本站的地址与环路上其他各站的地址都不相同,并通知其下游站,本站已加入到环路中。初始化过程的具体实现方去如下。
①发“重复地址测试帧”DAT。要初始化的站先将自己的地址填入DAT帧的目的地址字段中,然后发送DAT帧。每个收到DAT帧的站都要将本站地址与DAT帧中的目的地址进行比较。若两者相符,则先将其帧状态字段的A比特置为1,再转发DAT帧给下一站。若两者不相同,则直接将DAT帧转发给下一站。
②分析帧状态字段的A比特。当DAq、帧返回源站时,要初始化的站分析帧状态字段的A比特。若A=1,则表明本站地址与环上某站地址重复,便立即报告网络管理子层,并将本站转成旁路状态,由网络管理子层决定是否重新进行测试。若A一0,则表示环路上不存在重复地址站。这时,要初始化的站发一个“备用监控站存在帧”SMP,目的是使环路上的各站能识别其上游邻站,并及时更新上游邻站地址的记录。
③识别与更新上游邻站。当环路上某一站收到SMP帧时,它要检查该帧状态字段的A、C值。若A=C=0,则说明该帧是从上游邻站发来的,于是记下SMP帧中的上游邻站地址,并将其A、C比特都置为1后再转发,然后发送自己的SMP帧,这样,就可以使环路上所有站都能识别自己的上游邻站,并及时更新上游邻站地址。
监控站为了保证令牌环能正常工作,环路上还要设置工作监控站,它负责对令牌进行管理和维护。事实上,令牌环中的每个站都具有监视功能,但任一时刻只能有一个工作监控站,其他各站都是备用监控站。
(1)监控站的产生
在一个正常工作的令牌环网中,监控站要定期发送“工作监控站存在帧”AMP,其他各站要不断地监视环路上是否有令牌和AMP帧。如果有AMP帧,则说明环路上已有一个监控站,其他各站不再申请充当监控站。若某个备用监控站没有检测到令牌或AMP帧,则表明正在工作的监控站出现故障,于是就连续地发送“申请令牌帧”CT来争当新的监控站。此时可能有几个站同时发CT帧,这就需要通过竞争产生一个新的监控站。竞争的结果是具有最高地址的站成为新的监控站。
竞争的过程是:凡发CT帧的站都要检查所收到的源地址和上游邻站地址。若CT帧中的源地址等于本站地址,且CT帧中的上游邻站地址也等于本站记录的上游邻站地址,则说明本站所发的CT帧已成功地绕环一周,本站就是新的监控站。若CT帧中的源地址小于本站地址,则不转发这个CT帧,继续发自己的CT帧。若CT帧中的源地址大于本站地址,则转发这个CT帧,让发CT帧的站成为新的监控站,而本站作为备用监控站。实际上,环路刚接通时,就是通过这种竞争来产生监控站的。
(2)监控站的作用
①防止令牌丢失。当环路正常工作时,绝不会出现长时间的空闲状态,即使各站都没有信息发送,但总会有令牌在不断地从一个站传送到另一个站,因此环路的空闲时间不会超过某一规定值。监控站正是利用这一特性设置了一个有效帧定时器来检测令牌是否丢失。定时器的值稍大于该规定值,而该规定值是根据令牌绕环路一周所需的最长时间来设置的(即每个站都截获令牌并发送最大长度的数据帧)。当有效的令牌或数据帧到来时,定时器复位一次。若定时器的值超过规定值,则认为令牌丢失,这时监控站重新向环路发出一个新令牌。
②防止无效帧在环中死循环。如果一个站发送数据后便出现故障,则它就没有能力收回所发的数据帧,而这些数据帧又不会自动消失。为了防止这种帧在环路上无休止地循环,监控站通过分析有效帧中访问控制字段的监督比特M来判断。具体实现方法是:发送站刚发送数据时,将其访问控制字段中的监督比特M置为0。当该帧第一次经过监控站时,监控站将该有效帧中访问控制字段的监督比特M置为1。当M=1的帧再次经过监控站时,监控站就将该帧清除掉,从而避免了无效帧在环路上死循环。
③保证环路有最小时延。假定环路上每个站产生的时延只有1bit,那么当环路上的站数不到24个时,由于总的时延小于24bit,就会出现令牌在环上无法运转的现象。对此,令牌环上的每个站都设置了一个固定的24bit缓冲器。当一个站成为监控站时,它负责把自己的24bit缓冲器接入环路中,这样就可以保证在任何情况下令牌都能在环路上正常运转。
④及时发现环路故障。监控站的另一个主要任务是随时了解环路上的各站是否处于正常工作状态,环路是否出现故障(例如环路是否断开)等。当监控站发现环路出故障时,要向环上所有站发出警告,通知每个站暂时停止执行令牌环协议,直到恢复正常为止。2
本词条内容贡献者为:
吴晨涛 - 副研究员 - 上海交通大学