介绍
令牌环网(Token Ring)标准是对物理层和数据链路层提出的。IBM提出,五年后IEEE制定了802.5标准。
结构很简单,所有主机连成一个环,帧单方向(顺时针或者逆时针)传递。只有拿到令牌的主机可以发送数据。
工作流程
- 一个”令牌帧“在环上传递,此时没有主机发送数据。
- 发送主机捕获这个令牌,然后发送自己的帧。(在自己的帧里,帧头含有令牌的信息)
- 这个发送帧从发送主机开始,接着顺序往下传。
- 目标站匹配到帧的目的地址,于是把这个帧的信息部分拷贝下来,并且修改此帧的最后一个字节。继续向下传递此帧。
- 帧绕了一圈回来后,发送站检查帧发现最后一个字节被改了。于是判定目标站成功接收。发送站把帧里自己加的东西去除,于是这个帧又变成了”令牌帧“。
- ”令牌帧“继续向下按顺序在环上传递。
帧格式
帧分为三种。一种是”令牌帧“,一种是”数据帧“,还有一种是”终止帧“。(英文对应分别是:Token,Data,Abort frame)
令牌帧:
令牌帧有两种状态:闲和忙
闲表示这个令牌没在用,忙代表这个令牌正在使用。
令牌帧长这个样子:
首定界符 Start Delimiter | 访问控制 Access Control | 尾定界符 End Delimiter |
---|---|---|
8 bits | 8 bits | 8 bits |
其中访问控制的8位如下:
+ | 0-2位 | 3 | 4 | 5-7 |
---|---|---|---|---|
0 | 优先级 Priority | 令牌 Token | 监控 Monitor | 保留 Reservation |
其中3位(令牌位),如果是‘1’代表忙令牌,如果是‘0’代表闲令牌。
数据帧:
当发送站捕获“令牌帧”后,会在“令牌帧”的基础上形成“数据帧”。
数据帧长这样子:
SD | AC | FC | DA | SA | DATA | CRC | ED | FS |
---|---|---|---|---|---|---|---|---|
8 bits | 8 bits | 8 bits | 48 bits | 48 bits | up to 4500x8 bits | 32 bits | 8 bits | 8 bits |
其中:
SD: 首定界符 Start Delimiter
AC: 访问控制 Access Control
DA: 目的地址 Destination Address
SA: 源地址 Sourse Address
ED: 尾定界符 End Delimiter
FS: Frame Status
目标站收到帧后,首先拷贝DATA中的信息,再修改FS,最后继续传递此帧。
FS里面是这样的:
A | C | 0 | 0 | A | C | 0 | 0 |
---|---|---|---|---|---|---|---|
1 bit | 1 bit | 1 bit | 1 bit | 1 bit | 1 bit | 1 bit | 1 bit |
其中:
A=1,表示收到了 (Address recognized)
C=1,表示拷贝了 (Frame copied)
终止帧:
不写了,详情见wiki
备注:
-
数据帧的帧格式在多个网站的描述有出入,详情可以见下面列出的参考。
-
有一个令牌持有时间,不能一个主机拿到令牌不还了。确保其他主机也有机会传递数据。
-
如果数据帧的目的地址意外出错了,会导致没有主机接收这个帧。这个帧就会一直在环上转圈圈。为解决这种情况,令牌环网有一个主机是负责管理整个环网的。
物理层编码
差分曼彻斯特编码
参考
IONOS Token ring – IEEE 802.5
IEEE 802.5 Token Ring
Token Ring/IEEE 802.5
Wikipedia
联系我
算了,怕广告。如果要联系我讨论什么,先写在评论里吧。
第一次写,还挺耗时的。