第4章 局域网
4.5 令牌总线媒体访问控制
前面介绍过的CSMA/CD媒体访问控制采用总线争用方式,具有结构简单、在轻负载下延迟小等优点,但随着负载的增加,冲突概率增加,性能将明显下降。采用令牌环媒体访问控制具有重负载下利用率高、网络性能对距离不敏感以及具有公平访问等优越性能,但环形网结构复杂,存在检错和可靠性等问题。令牌总线媒体访问控制是在综合了以上两种媒体访问控制优点的基础上形成的一种媒体访问控制方法,IEEE802.4提出的就是令牌总线媒体访问控制方法的标准。
4.5.1 令牌总线工作原理
令牌总线媒体访问控制访问是将局域网物理总线的站点构成一个逻辑环,每一个站点都在一个有序的序列中被指定一个逻辑位置,序列中最后一个站点的后面又跟着第一个站点。每个站点都知道在它之前的前趋站和在它之后的的后继站垢标识,如图4.16所示。
从图中可以看出,在物理结构上它是一个总线结构局域网,但是在逻辑结构上,又成了一种环形结构的局域网。和令牌环一样,站点只有取得令牌,才能发送帧,而令牌在逻辑环上依次(A->D->C->A)循环传递。
在正常运行时,当站点做完该做的工作或者时间终了时,它将令牌传递给逻辑序列中的下一个站点。从逻辑上看,令牌是按地址的递减顺序传送至下一个站点的,但从物理上看,带有目的的令牌帧广播到总线上所有的站点的,但从物理上看,带有目的地址的令牌帧广播总线上所有的站点,当目的站点识别出符号它的地址,即把该令牌帧接收。应该指出,总线上站点的实际顺序与逻辑顺序并无对应关系。
只有收到令牌帧的站点才能将信息帧送到总线上,这就不像CSMA/CD访问方式那样,令牌总线不可能产生冲突。由于不可能产生冲突,令牌总线的信息帧长度只需根据要传送的信息长度来确定,就没有最短帧的要求。而对于CSMA/CD访问控制,为了使最远距离的站点也能检测到冲突,需要在实际的信息长度后添加填充位,以满足最短帧长度的要求。
令牌总线控制的另一个特点是站点间有公平的访问权。因为取得令牌的站点有报文要发送则可发送,随后,将令牌传递给下一个站点;如果取得令牌的站点没有报文要发送,则立刻把令牌传递到下一站点。由于站点接收到令牌的过程是顺序依次进行的,因此对所有站点都有公平的访问权。
令牌总线控制的优越之处,还体现在每个站点传输之前必须等待的时间总量总是"确定"的,这是因为每个站点发送发送帧的最大长度可以加以限制。当所有站点都有报文要发送,最坏的情况下,等待取得令牌和发送报文的时间,等于全部令牌和报文传送时间的总和;如果只有一个站点有报文要发送,则最坏情况下等待时间只是便部令牌传递时间的总和。对于应用于控制过程的局域网,这个等待访问时间是一个很关键的参数。可以根据需求,选定网中的站点数及最大的报文长度,从而保证在限定的时间内,任一站点都可以取得令牌。
令牌总线访问控制还提供了不同的服务级别,即不同的优先级。
令牌总线的主要操作如下:
(1)环初始化,即生成一个顺序访问的次序。网络开始启动时,或由于某种原因,在运行中所有站点不活动的时间超过规定的时间,都需要进行逻辑环的初始化。初始化的过程是一个争用的过程,角用结果只有一个站能取得令牌,其它的站台点用站插入的算法插入。
(2)令牌传递算法。逻辑环按递减的站地址次序组成,刚发完帧的站点将令牌传递给后继站,后继站应立即发送数据或令牌帧,原先释放令牌的站监听到总线上的信号,便可确认后继站已获得令牌。
(3)站插队入环算法。必须周期性地给未加入环的站点以机会,将它们插入到逻辑环的适当位置中。如果同时有几个站要插入时,可采用带有响应窗口的争用处理算法。
(4)站退出环算法。可以通过将其前趋站和后继站连到一起的办法,使不活动的站退出逻辑环,并修正逻辑环递减的站地址次序。
(5)故障处理。网络可能出现错误,这包括令牌丢失引起断环,重复地址、产生鑫个令牌等。网络需对这些故障做出相应的处理。
4.5.2 令牌总线媒体访问控制协议
1. IEEE 802.4 MAC帧格式
IEEE 802.4标准规定了令牌总线媒体访问控制(MAC)子层、物理层(PHY)所使用的格式和协议,以及连接令牌总线物理媒体的方法,媒体访问协调所有连接的站点对其享媒体的使用。令牌总线的MAC帧具有如图4.17所示的一般格式。
帧校验序列FCS使用32位CRC码,校验范围为SD与ED之间的帧内容。数据字段有三类,即LLC协议数据单元,MAC管理数据和用于MAC控制帧的数据。在SD和ED之间的字节数应少于8191。另外还有异常终止序列格式,仅由SD和ED两个字节组成。
2.IEEE 802.4 的媒体访问控制功能
逻辑环上的每个站点由三个地址决定它的位置,即本站地址Ts、前趋地址Ps和后继地址Ns。前趋地址Ps和后继地址Ns可以动态地设置和保持。
(1)令牌传递算法。逻辑环按递减的站地址次序组成,刚发完帧的Ts站点将令牌传递给后继Ns站应立即发送数据或令牌帧,Ts站监将令牌传递给后继Ns站,后继Ns站应立即了送数据或令牌帧,Ts站监听到总线上的信号,便可确认后继站已获得令牌.
①Ts 站在发送完整数帧后,发出带有地址DA=Ns的令牌传递给下一个站,DA这目的地址。Ts 站监听总线,若监测到的信息为有效帧,则传递令牌成功。
②若Ts站未监测到总线上的有效帧,且已超时,则重复前一步骤。
③此后若Ts站仍未监测到有效帧,即第二次令牌传递仍然失败,则原发送站判定后继站有故障,就发送"Who Follows"MAC控制帧,并将它的后继地址Ns放在数据字段中。所有站与该地址相比较,若某站的前趋站是发送站的后继站,则该站发送一个"Set
Successor"MAC控制帧来响应"Who Follows"帧,在"Set Successor"帧中带有该站的地址,于是该站点取得令牌。如此,便将故障的站点排除在逻辑环之外,建立了一个新的连环次序。然后返回第①步。
④如Ts站未监听到响应"Who Follows"控制帧的"Set Successor"帧,则重复第③步,再发"Who Follows"帧。
⑤如果第二次"Who Follows"帧发出后,仍得不到响应,则该站就尝试另一策略来重建逻辑环,即再发送请求后继站"Solicit Sucessor 2"MAC控制帧,并将本站地址作为DA和SA放入控制帧内,询问环中哪一个站要响应它。收到该询问请求后就会有站点响应。然后,使用响应窗口处理算法来重新建立逻辑环。最后返回第①步。
⑥如果发送"Solicit Successor 2"控制帧后仍无响应,则断定发生发故障。此时,就需要维护逻辑环,使其重新正常工作。
(2)插入环算法。逻辑环上的每个站点应周期性地使新的站点有机会插入环中。当同时有几个站点要插入时,可以采用带有响应窗口的争用处理算法。
(3)退出环算法。方案一:要退出环的Ts站接收到令牌后,发送给一个设置后继"Set
Successor"MAC控制帧给Ps站,设置后继站为Ns,并将令牌传递给Ns站。
方案二:要退出环的Ts站拒绝接收ps站发出的"Who Follows"MAC控制帧,而让Ns站去响应。
(4)逻辑环的初始化操作。初始化操作实质上是增加新站的一特例,其操作过程如下:每个站设置一个环不活动计时器。当某个站点的不活动计时器超时,则发一个请求令牌"Claim
Token" MAC控制帧,控制帧带有一个数据字段,其长度取决于站地址高二位。类似于站插入环的操作,当多个同时试图进行初始化操作时,用基于地址的争用算法,争用结果只能允许一个站点获得令牌。