轮询访问:令牌传递协议

介质访问控制的第三类答案:不抢,轮流来。 令牌环在今天几乎见不到了,但它在考卷上一直都在,因为它是随机访问最好的对照组——同样动态分配信道,它永远不冲突。

本页有两道错题,都出在令牌的”持有”和”回收”两个细节上。

机制

轮询与令牌

在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个节点,再决定信道的分配。典型的轮询访问控制协议是**令牌传递协议**。

在令牌传递协议中,一个令牌(Token)沿着环形总线在各站之间依次传递。令牌是一个特殊的控制帧,它本身并不包含信息,仅控制信道的使用,确保同一时刻只有一个站独占信道。当环上的一个站希望发送帧时,必须等待令牌。站点只有取得令牌后才能发送帧,因此令牌环网络不会发生冲突(因为令牌只有一个)。站点发送完一帧后,应释放令牌,以便让其他站使用。因为令牌在网环上是按顺序依次传递的,所以对所有联网计算机而言,访问权是公平的。

令牌与数据的传递过程

flowchart LR
    T["① 网络空闲<br/>环中只有令牌循环"] --> G["② 有数据的站取得令牌<br/>修改标志位、附加数据<br/>令牌变成数据帧"]
    G --> P["③ 数据帧沿环传输<br/>各站边转发边查目的地址<br/>目的站复制该帧"]
    P --> R["④ 回到源站<br/>源站不再转发(回收)<br/>检验返回的帧,出错则重传"]
    R --> N["⑤ 源站重新产生令牌<br/>交给下一站"]
    N --> T
    classDef k fill:#dbeafe,stroke:#2563eb
    class R,N k
  1. 当网络空闲时,环路中只有令牌帧在循环传递。
  2. 当令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。
  3. 数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。若目的地址和自己的地址相同,则接收站就复制该数据帧,以便进一步处理。
  4. 数据帧沿着环路传输,直到到达该帧的源站点,源站点收到自己发出去的帧后便不再转发。同时,通过检验返回的帧来查看数据传输过程中是否出错,若出错,则重传。
  5. 源站点传送完数据后,重新产生一个令牌,并传递给下一站点,交出信道控制权。

注意第 3 步:目的站只是”复制”帧,并不把它从环上摘下来,帧继续往前走,一直回到源站。回收帧的是源站,这就是第 4 步的意义——源站由此还能顺便核对这个帧在环上走了一圈后是否出错。

适用场景

令牌传递协议非常适合负载很高的广播信道,即多个节点在同一时刻发送数据的概率很大的信道。若这种信道采用随机介质访问控制,则发生冲突的概率很大;而令牌环在负载重时反而最能发挥优势,每个站都能按序得到发送机会,信道利用率高。反过来,负载轻时,一个站即使只有一点数据要发,也得等令牌转过来,这时随机访问更有效率。

令牌传递协议既不共享时间,又不共享空间;它实际上是在随机访问介质访问控制的基础上,限定了有权发送数据的节点只能有一个。

教材在这一节末尾给出了整个 3.5 的收束:即使是广播信道,也可通过介质访问控制机制使广播信道变为逻辑上的点对点信道,所以说数据链路层研究的是”点到点”之间的通信。 信道划分、随机访问、轮询访问三类方法,本质上都是在做这件事。

边界

令牌环不能”一直持有令牌直到发完”。 每个节点都有令牌持有时间的上限,只能在一定时间内获得发送权限;而没有数据要发送的节点收到令牌后要立刻传递下去,不能持有。

错题复盘:节点只能在令牌持有时间内发送;没有数据的节点收到令牌必须立即传递

王道 3.5.4 第 27 题:下列关于令牌环网络的说法中,错误的是(Ⅰ. 信道的利用率比较公平 Ⅱ. 重负载下信道利用率高 Ⅲ. 节点可以一直持有令牌,直至所要发送的数据传输完毕 Ⅳ. 节点只能持有令牌一段固定的时间,对于没有数据要发送的节点也是如此)(A. Ⅰ、Ⅱ和Ⅲ B. Ⅲ C. Ⅲ和Ⅳ D. Ⅳ)。答案 C。

令牌环网络使用令牌在各个节点之间传递来分配信道的使用权,每个节点都可在一定的时间内(令牌持有时间)获得发送数据的权限,而并非无限制地持有令牌,Ⅲ 错。在令牌传递过程中,没有数据要发送的节点收到令牌后将立刻传递下去,而不能持有,Ⅳ 错在”对于没有数据要发送的节点也是如此”。Ⅰ、Ⅱ 都是令牌环的特点。

Ⅲ、Ⅳ 是两个方向相反的错误:一个把持有时间说成了无限,一个把”有上限”说成了”人人都要持有满”。

帧由源站回收,不由目的站回收。

错题复盘:源站收到自己发出的数据帧后不再转发,并重新产生令牌

王道 3.5.4 第 29 题:在令牌环网络中,当一个站点收到自己发出去的数据帧后,它将(A. 不再转发该帧,并重新产生一个令牌 B. 不再转发该帧,并等待下一个令牌 C. 继续转发该帧,并重新产生一个令牌 D. 继续转发该帧,并等待下一个令牌)。答案 A。

站点收到自己发出去的数据帧后,不再转发该帧,而重新产生一个令牌,然后将该令牌发送给下一个站点。这样可以回收数据帧,避免环路上的冗余,并释放传输权限。

B 的错误在于”等待下一个令牌”:令牌此刻正在这个站手里(它是被改造成数据帧发出去的),环上没有别的令牌可等——它不重新产生令牌,环上就永远没有令牌了。

令牌环”不存在冲突”,所以”存在冲突的可能”是错的。 令牌环网络的拓扑结构为环状,有一个令牌不停地在环中流动,只有获得了令牌的节点才能发送数据,因此不存在冲突;网络中同一时刻只有一个节点的数据在传输,所有节点连接到同一个信道上,共享网络带宽;数据从一个节点传到另一个节点的时间可以根据节点数、传输速率和帧长计算出来(王道 3.5.5 第 26 题)。

最坏情况下的等待时间是可计算的。 令牌总是沿着逻辑环单向逐站传送,一个节点总能在确定的时间内获得令牌;所有站点都有数据要发送时,一个站点最坏要等所有站点传送令牌和发送帧的时间总和(第 30 题)。这是轮询访问相对随机访问的另一个优点:时延有上界。

跨科对照:多个请求者争一个资源。 令牌环与计组第 6 章的总线仲裁、第 5 章的中断判优都属于”事前预约、不会冲突”一侧,只有以太网 CSMA/CD 在”允许冲突、事后补救”一侧。这层共性在 计组第 6 章总览里已经整理过。

口径差异:令牌环在今天

教材口径:令牌传递协议作为轮询访问的典型协议,与 CSMA/CD 并列讲解;令牌环逻辑上是环形、物理上是星形(3.6.1)。

工程口径:IEEE 802.5 令牌环和 FDDI 已基本退出实际应用,以太网在局域网市场取得了垄断地位。考试仍考它的工作原理和与随机访问的对比。

对照速查

随机访问(CSMA/CD)轮询访问(令牌传递)
信道分配动态动态
冲突会不会
适合的负载轻负载重负载
最坏等待时间无上界有上界,可计算
访问权争用按序轮流,公平
说法对错
令牌本身携带数据❌(只控制信道使用;发送时才把令牌改造成数据帧)
目的站收到数据帧后将其从环上移除❌(目的站只复制,源站回收)
网络空闲时环中既无令牌帧也无数据帧❌(只有令牌帧在循环)
与 CSMA/CD 相比,令牌环更适合负载重的环境✅
令牌传递协议既不共享时间,也不共享空间✅

考点

  • 轮询访问 = 集中控制、循环轮询;典型协议是令牌传递
  • 令牌只有一个 → 不会冲突;按序传递 → 访问权公平
  • 发送:修改标志位、附加数据,令牌变数据帧;目的站复制,源站回收并重新产生令牌
  • 令牌持有时间有上限;无数据的站立即传递令牌
  • 适合重负载;最坏等待时间 = 所有站传令牌和发帧的时间总和
  • 数据链路层研究的是”点到点”之间的通信

链接