计算机网络:令牌环网IEEE 802.5
对于令牌环网的工作原理、具体工作过程、物理层、MAC子层等进行了介绍!
1969年在美国贝尔实验室的Newhall环上首次采用;1971年又提出一种时分环的改进算法;1985年IBM公司推出了IBM令牌环网;该网络后来成为IEEE 802.5标准的基础。

环形网络广泛地用于局域网和广域网中,“环”并不是指广播介质,而是指一系列点到点链路组成闭合环路;因此可以使用多种传输介质(双绞线、同轴电缆、光纤等),环网络接口之间通过点到点线路连接而成,每一段也可以使用不同的介质;帧沿环的某一方向传递。
环形网络工作原理:
尽管环是由一系列的点-点链路组成的,但是环上传输的数据能被所有的站点接收到,而且任何时候允许一个站点发送,因此也存在着竞争发送权的问题。为了解决竞争,使用一个称为令牌(Token)的特殊标记,规定只有获得令牌的站点次才有权利发送数据。由于环中只有一个令牌,因此任何时候只有一个站发送数据,不会产生冲突;同时,令牌周而复始地在环中轮转,各个站点捕获令牌的机会相同,因此,环是公平的。

具体工作过程:
-
网络空闲时,只有令牌在环上轮转;令牌是一个特殊的比特模式,其中有 1 比特称为令牌比特,当其为 0 时表示该令牌可用,当其为 1 时,表示某个站正在发送数据。
-
站点要发送数据时,必须等待令牌通过且其令牌比特为 0 ,这时发送站将令牌比特翻转成 1 ,然后发送数据;如果令牌比特为 1 ,则只有等待。
-
每一个站一边转发数据,一边检查帧中的目的地址,如果自己正好是接收站则同时将数据接受下来。
-
当数据转回到发送站时,发送站点将其从环上面撤销;对于撤销下来的数据,发送站将其丢弃或者与保存在缓冲区内的数据进行比较,以检查是否有传输错误。
-
发送站发完数据之后,重新产生出令牌。这里的处理有两种策略:

当一个站点发出一个长度比环网的比特长度更加长的帧,那么传输尚未完全结束的时,帧的头部已经回到了传输站点;这种情况下,发送站点在完成传输之后可以马上发出一个令牌。如果数据帧的长度比环网的比特长度小,那么发送站点在发出令牌之前必须等待该帧的头部返回。
(个人理解:为什么一定要帧的头部回到发送站点才可以呢?因为回到时说明除发送站点外其余站点已经“查看”过数据了;不满足这一点的话,将令牌发出去了,新发送站点发出的数据可能会残余在环上的数据“冲突”。)
环形网络有一个很大的弊端,当环中的某一个链路中断或者环接口故障时,整个网络就不能工作了!为此提出了星形环网的概念!
星形环网:
基本构造:星形环逻辑上仍保持为环形网络,物理上每一个站点通过(至少)含有两对双绞线的电缆与线路中心相连,分别用作进出线路中心得物理信道。在线路中心内部,这些电缆连接成一个闭合的环路。从接线路方式上来看,所有的站点都接到一个中央集线器上,从表面上看是一种星形结构,但是实际上这些站连接成了一个环,因此这种结构被称为星形环网。

当环中的某一个链路中断或者环接口故障时的解决机制:在线路中心设有旁路中继器,由各个站点供电。如果环断开或者站点发生故障,没有了驱动电源,旁路中继器释放,从而将该站点旁路。旁路中继器也可由诊断程序控制,当检测到出错站点或者出错链路时,便由程序将其从环中移去。出错站点或者出错链路被旁路之后环仍然可以被使用。
IEEE 802.5 令牌环物理层:
IEEE 802.5 标准提供了多种数据传输速率(1Mbit/s、4Mbit/s、16Mbit/s等),可以使用屏蔽双绞线、非屏蔽双绞线、光纤等作为传输介质,数据编码采用差分曼切斯特编码,其高低电平分别使用+3.5V~+4.5V和-4.5V~-3.5V来表示。
如果你对于差分曼切斯特编码不甚了解的话,可以翻阅我的往期内容,旁边链接直达——计算机网络:四类数据编码技术(点击这里👈哦!)。
IEEE 802.5 令牌环MAC子层:
如下图所示,IEEE 802.5 有两种帧格式:令牌帧和数据帧。

接入控制(Access Control,AC):用于MAC帧的控制描述,由四部分组成。
-
PPP是优先级比特,当一个站点想要发送优先级为n的数据帧时,必须捕获到优先级小于或者等于n的令牌才能发送。
-
T是令牌比特,T=0时表示该帧是令牌帧,T=1时表示该帧是数据帧。当一个站点想要发送数据并且捕获到一个令牌帧时,将T翻转为1,然后就丢弃令牌的结束字符,并把数据帧的第三个字节起的各字段都加上去,成为一个要发送的数据帧,这个过程被称为“截获令牌”。
-
M是监控比特,由监控站来检测那些未被发送站点撤销的数据帧。数据帧发送时令M=0;当数据帧第一次通过监控站时,监控站置M=1,;当数据帧第二次经过监控站时,监控站发现盖比特已经被置为1,说明环中出现异常,该数据帧未被发送站撤销,于是监控站将其从环中删除,避免数据永远在环上循环。
-
RRR是预约比特,当一个站点想要发送数据但是信道又很忙时,可以在数据帧通过的时候,将自己想要发送的帧的优先级写入到预约比特中去。当然,如果预约比特已经被其他站预约了更高优先级那就不能预约了。当一帧数据发送完之后,新产生的令牌就具有已预约的优先级。
这里存在一个问题:这种预约机制使得令牌的优先级会逐渐提高,显然对于那些低优先级的帧是不公平的,有些低优先级的帧可能很长一段时间内都得不到发送。因此那些将优先级提升了的站点在发送完数据之后,还要负责将令牌的优先级降回到原先的级别,这有低优先级的站点就有机会发送数据帧了。
帧控制(Frame Control,FC):
-
前2比特表示帧的类型,00表示为MAC控制帧,01表示为数据帧,即数据字段为LLC子层传下来的LLC PDU;后面的6比特为控制帧的种类。
-
控制帧中没有数据字段。
-
数据帧只发送给地址字段所表示的目的站点,而控制帧则发送给环上所有的站点。
数据(Data):字段长度没有下限值,但是上限值受到令牌轮转一圈的最大时间限制。(有上限无下限!)
帧校验序列(FCS):作用范围是从FC字段到FCS字段。
结束定界符(End Delimiter,ED):用于指示帧的结束。其中最后一位比特E为用于差错控制。当一个帧在发送时,置该比特为0,此后若任何一个站点在转发时通过FCS发现此帧出现错误,都将该比特置为1。当发送站点收回所发送的帧时,分析比特E以及随后的帧状态字节中的A和C比特,就此判断该帧的传送情况。
帧状态(Frame State,FS):
在这一字段中设置了2个A比特(地址识别比特)和2个C比特(帧复制比特),另外4个比特未作规定。但当一个发送数据帧之后,将A和C都置为0。当一个站点识别出来该帧的目的地址与本站点的地址相符合时,则将A置为1.若该接收站点已经将此帧复制下来,则将C置为1。当发送出去的数据帧最终又回到发送站点时,根据A和C比特 的状态信息就可以了解传送情况:
-
A=0:目的站点不存在或者未加入到环路中。
-
A=1且C=0:目的站位于环中,但是未接收该帧,可能是缓冲区容量不够或者其他原因。过一段时间再重试。
-
A=1且C=1:目的站点工作且成功接收该帧。
A和C出现两次是为了增加可靠性,因为该字段不在帧校验的范围内。
每一个站点获得令牌之后都会有一个令牌持有时间(Token Holding Time,THT),默认值为10ms,也可以设定为其他值。在发送完第一个帧之后,剩余的时间足够用来发送其他的帧的话,就进行相应的发送;当待发送数据帧全部发送完毕或者在发送另一帧将超过令牌持有时间时,站点就会重新产生一个令牌并且放入环中。(其实就是在持有环路使用权时尽可能的发送更多的数据,以提高效率。)
令牌环的维护:
令牌环网采用集中监控的方法对于环进行维护,环上有一个监控站负责网络的运行管理。环上的每一个站点都可以成为监控站(监控功能内置与每一个站中),但是任何时候环上只能有一个监控站。当原有监控站失效时,任何站发现环上没有监控站时,可以发送一个Claim-Token的控制帧,当该控制帧绕环一周并且发现没有其他站点发送此类控制帧时,该站点即成为新的监控站点;当出现冲突时采用高地址优先。
监控站的功能:处理令牌丢失和环中断,检测并且清除环中的坏帧和孤儿帧(因发送站出现故障而未被取消的帧),以保证环的最小比特长度等。
-
为了检测令牌丢失,监控站利用一个计时器来统计环上无令牌的时间。正常情况下,无令牌的时间最大值=令牌持有时间x站数,超过该时间,监控站将环上的数据全部清除,然后产生一个新的令牌。
-
通过检查帧的格式以及计算帧的校验和,可以发现环上的坏帧;通过AC字段中M比特可以发现孤儿帧(因发送站出现故障而未被取消的帧)。发现坏帧和孤儿帧之后,同样先将环上的数据全部清除之后,然后产生一个新的令牌。
-
令牌帧的长度为24比特,因此环的比特长度至少必须达到24比特,方能容纳一个完整的令牌在其上面周游;当环的长度达不到24比特时,监控站就必须插入额外的延迟以满足环的最小长度。
令牌环的性能特点:
最大的优点就是在重载时可以高效工作。整个网络不会有多个站点同时向网络发送数据,因此,令牌环不会因为冲突而降低效率。当每一个站点依次截获令牌并发送数据时,整个网络的工作情况和时分复用相似。
Ending... ...
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)