Loading learning content...
Every networking protocol is ultimately defined by its frame format—the precise structure of bits that travel across the physical medium. Token Ring's frame format reflects its design philosophy: careful engineering for reliability, explicit support for priority and reservation, and sophisticated error handling baked into every transmission.
Unlike Ethernet's relatively simple frame structure, Token Ring frames contain multiple control fields that support its deterministic operation. Each field serves a specific purpose, from the special delimiter patterns that use code violations to the dual-redundant status bits that survive CRC verification.
In this page, we'll dissect the Token Ring frame byte by byte—often bit by bit—revealing how each component contributes to the protocol's reliability and performance. This deep understanding is essential for troubleshooting, analysis, and appreciating why Token Ring was chosen for mission-critical environments.
By the end of this page, you will understand every field in the Token Ring frame format—from the Starting Delimiter's code violations to the Frame Status field's duplicated acknowledgment bits. You'll be able to decode frame captures, understand MAC versus LLC frames, and explain how the frame format supports priority, reservation, and error detection.
Token Ring defines two primary frame types: the minimal token frame and the full data/command frame. Both share common delimiters but differ in content and purpose.
Token Frame (3 bytes):
The token is the control frame that circulates when no station is transmitting data:
| Field | Size | Purpose |
|---|---|---|
| Starting Delimiter (SD) | 1 byte | Marks frame start with code violations |
| Access Control (AC) | 1 byte | Contains priority, token bit, monitor bit, reservation |
| Ending Delimiter (ED) | 1 byte | Marks frame end with code violations |
Data/Command Frame (variable length):
When a station captures the token and transmits data, the frame expands to include addressing, data, and error checking:
Token Ring Data/Command Frame: +------+------+------+--------+--------+--------+------+------+------+| SD | AC | FC | DA | SA | INFO | FCS | ED | FS |+------+------+------+--------+--------+--------+------+------+------+| 1 | 1 | 1 | 6 | 6 | 0-4500 | 4 | 1 | 1 | bytes| | | | | | (4Mbps)| | | || | | | | |0-17800 | | | || | | | | |(16Mbps)| | | |+------+------+------+--------+--------+--------+------+------+------+ Field Summary:┌─────────────────────┬───────┬────────────────────────────────────────┐│ Field │ Bytes │ Description │├─────────────────────┼───────┼────────────────────────────────────────┤│ Starting Delimiter │ 1 │ Frame start marker (code violations) ││ Access Control │ 1 │ Priority, Token, Monitor, Reservation ││ Frame Control │ 1 │ Frame type (MAC or LLC) ││ Destination Address │ 6 │ Target station address ││ Source Address │ 6 │ Sending station address ││ Information │ 0-n │ Data payload (varies by speed) ││ Frame Check Seq │ 4 │ CRC-32 error detection ││ Ending Delimiter │ 1 │ Frame end marker (code violations) ││ Frame Status │ 1 │ Address recognized / Frame copied bits │└─────────────────────┴───────┴────────────────────────────────────────┘ Total minimum frame size: 21 bytes (no data)Total maximum frame size: 4521 bytes (4 Mbps) or ~17821 bytes (16 Mbps)Key Structural Differences from Ethernet:
Comparing Token Ring to Ethernet frames reveals important design differences:
These differences reflect Token Ring's deterministic, prioritized design versus Ethernet's simpler, best-effort approach.
Ethernet's 1500-byte MTU is constrained by collision detection timing. Token Ring has no such constraint—the only limit is Token Holding Time (THT). At 16 Mbps with 10ms THT, a station could theoretically transmit 20,000 bytes. The practical limit of ~17,800 bytes allows for overhead and ensures reasonable rotation times.
The Starting Delimiter (SD) and Ending Delimiter (ED) are remarkable engineering achievements—they mark frame boundaries using patterns that cannot appear in normal data.
The Code Violation Technique:
Differential Manchester encoding defines two normal symbols:
Both always have a transition in the middle of the bit period (for clock recovery).
Code violations are symbols that intentionally break this rule:
Since J and K never appear in normal data, the following sequences are unambiguously frame delimiters—no escape characters or bit stuffing needed!
Starting Delimiter (SD): JK0JK000 Bit Position: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |Symbol: | J | K | 0 | J | K | 0 | 0 | 0 | +---+---+---+---+---+---+---+---+Signal: ███|___|▓▓▓|███|___|▓▓▓|▓▓▓|▓▓▓| (J = high, K = low, 0 = normal zero with mid-transition) The J and K violations are immediately recognizable—the receiver knows a frame is starting without any ambiguity. ═══════════════════════════════════════════════════════════════ Ending Delimiter (ED): JK1JK1IE Bit Position: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |Symbol: | J | K | 1 | J | K | 1 | I | E | +---+---+---+---+---+---+---+---+ Where:- J, K: Code violations (same as SD)- 1: Normal data one- I: Intermediate frame bit 0 = This is the last (or only) frame in sequence 1 = More frames follow from this source- E: Error detected bit 0 = No error detected by any station 1 = At least one station detected an error The ED serves double duty: frame boundary AND status indicator!The I Bit (Intermediate Frame):
The I bit supports frame fragmentation at the MAC layer. If a station's data exceeds the maximum frame size, or if the Token Holding Time is about to expire:
Receivers use the I bit to reassemble fragmented data or to know when transmission is complete.
The E Bit (Error Detected):
The E bit provides hop-by-hop error signaling:
This is faster than waiting for FCS verification at the destination—errors are flagged as early as the first detecting station.
Why Code Violations Are Superior to Bit Stuffing:
HDLC and similar protocols use bit stuffing: insert a 0 after five consecutive 1s to prevent the flag pattern (01111110) from appearing in data. This has overhead and complexity.
Token Ring's code violations:
Token Ring network adapters implement delimiter detection in hardware by monitoring for the absence of mid-bit transitions. This is extremely fast—the adapter knows a frame is starting or ending within 2 bit times (125 ns at 16 Mbps), enabling the rapid processing needed for real-time token operations.
The Access Control (AC) field is the most important byte in Token Ring operation. It controls who may transmit, at what priority, and provides critical ring maintenance functionality—all in just 8 bits.
AC Field Structure: PPP T M RRR
Access Control Field: 1 byte (8 bits) Bit Position: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |Field: | P | P | P | T | M | R | R | R | +---+---+---+---+---+---+---+---+ P (Priority): 3 bits, values 0-7- Current priority level of the token/frame- Higher values = higher priority- Station may only capture token if its priority ≥ token priority T (Token): 1 bit- 0 = This is a free TOKEN (available for capture)- 1 = This is a data/command FRAME (token has been captured)- Transmitting station changes T from 0 to 1 when capturing M (Monitor): 1 bit- Used by Active Monitor to detect orphan frames- Active Monitor sets M=0 for each passing token/frame- If AM receives a frame with M=1, the frame has orbited the ring without being stripped → AM strips it R (Reservation): 3 bits, values 0-7- Allows stations to reserve priority for the NEXT token- When a station wants high-priority access, it places its desired priority in R (if R is currently lower)- The returning token inherits the highest reservationThe T Bit: Token to Frame Transformation:
The T bit is the central mechanism of token capture. When a station with data receives a free token:
This single bit change—performed in real-time as bits stream through—is the essence of Token Ring access control.
The M Bit: Monitor Cleanup:
The Monitor bit prevents orphan frames from circulating forever:
Priority and Reservation Interaction (Preview):
The P and R fields implement Token Ring's priority system, which we'll explore in depth in the next section. Briefly:
| Field | Bits | Range | Purpose |
|---|---|---|---|
| Priority (P) | 7-5 | 0-7 | Current token priority level |
| Token (T) | 4 | 0/1 | 0=Token, 1=Frame |
| Monitor (M) | 3 | 0/1 | Orphan frame detection |
| Reservation (R) | 2-0 | 0-7 | Request for next token priority |
Remember that Token Ring transmits MSB first (non-canonical order). Bit 7 (the first P bit) is transmitted first, and Bit 0 (the last R bit) is transmitted last. This is opposite to Ethernet's LSB-first transmission.
The Frame Control (FC) field immediately follows the Access Control field in data/command frames. It identifies the frame type and provides additional control information.
FC Field Structure: FF ZZZZZZ
Frame Control Field: 1 byte (8 bits) Bit Position: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |Field: | F | F | Z | Z | Z | Z | Z | Z | +---+---+---+---+---+---+---+---+ FF (Frame Type): 2 bits┌──────┬─────────────────────────────────────────────────┐│ FF │ Frame Type │├──────┼─────────────────────────────────────────────────┤│ 00 │ MAC Frame (ring maintenance, station management)││ 01 │ LLC Frame (user data, higher-layer protocols) ││ 10 │ Reserved ││ 11 │ Reserved │└──────┴─────────────────────────────────────────────────┘ ZZZZZZ (Control Bits): 6 bits- For MAC frames: Specifies the MAC frame type- For LLC frames: Reserved (typically set to 000000)MAC Frames (FF = 00):
MAC frames carry ring management traffic—they're generated and processed by the Token Ring adapter itself, not by upper-layer protocols. The Z bits specify the MAC frame type:
| Z Bits | MAC Frame Type | Purpose |
|---|---|---|
| 000010 | Beacon | Fault signaling—station detects ring failure |
| 000011 | Claim Token | Active Monitor election |
| 000100 | Ring Purge | Active Monitor clearing ring |
| 000101 | Active Monitor Present | AM announces presence |
| 000110 | Standby Monitor Present | Standby station announces presence |
| 000111 | Duplicate Address Test | Station verifies address uniqueness |
| 001000 | Lobe Test | Station tests connection to MAU |
| 001001 | Transmit Forward | Source routing support |
| 001010 | Remove Ring Station | Request station leave ring |
| 001011 | Change Parameters | Update station configuration |
| 001100 | Initialize Ring Station | Configure joining station |
| 001101 | Request Ring Station Address | Query station address |
| 001110 | Request Ring Station State | Query station status |
| 001111 | Request Ring Station Attachments | Query station connections |
| 010000 | Request Initialization | Station requests parameters |
| 010001 | Report Ring Station Address | Response to address request |
| 010010 | Report Ring Station State | Response to state request |
| 010011 | Report Ring Station Attachments | Response to attachment request |
| 010100 | Report New Active Monitor | AM change notification |
| 010101 | Report SUA Change | Stored Upstream Address changed |
| 010110 | Report Monitor Error | Error counters report |
| 010111 | Report Error | Station error counters |
LLC Frames (FF = 01):
LLC (Logical Link Control) frames carry user data—IP packets, NetBIOS traffic, and other higher-layer protocols. The 802.2 LLC sublayer provides:
For LLC frames, the Z bits are typically 000000, and the LLC header follows immediately after the source address.
Frame Type Significance:
The clear separation between MAC and LLC frames allows:
Never underestimate MAC frame importance. A Token Ring network can carry user data only if MAC frames maintain the ring successfully. Beacon frames detect failures, Claim Token frames elect the Active Monitor, and Active Monitor Present frames ensure continuous supervision. Without MAC frames, the ring collapses.
Token Ring uses 48-bit (6-byte) MAC addresses, sharing the same addressing architecture as Ethernet. However, important differences exist in bit ordering and special address handling.
Address Format:
48-bit MAC Address: 6 bytes Byte 1 Bytes 2-3 Bytes 4-6+--+--+--+--+--+--+--+--+ +----------------+ +------------------+|I/G|U/L| OUI high bits| | OUI low bits | | Station Address |+--+--+--+--+--+--+--+--+ +----------------+ +------------------+ ↑ ↑ │ └─ U/L bit: 0 = Universally administered (burned-in) │ 1 = Locally administered (assigned by admin) │ └─ I/G bit: 0 = Individual address (unicast) 1 = Group address (multicast/broadcast) IMPORTANT: Token Ring transmits MSB first (Bit 7 of each byte) Ethernet transmits LSB first (Bit 0 of each byte) Example Address: 10-00-5A-4B-12-34 Token Ring wire order (MSB first per byte):Byte 1: 0 0 0 1 0 0 0 0 (0x10 → bits 7,6,5,4,3,2,1,0) ↑ ↑ │ └─ U/L = 0 (universal) └─ I/G = 0 (individual, unicast) If bridged to Ethernet, bit-reverse each byte:0x10 → 0x08 (00010000 → 00001000)0x00 → 0x000x5A → 0x5A0x4B → 0xD2...Destination Address (DA):
The 6-byte Destination Address identifies the intended recipient(s):
Source Address (SA):
The 6-byte Source Address identifies the transmitting station:
Functional Addresses (Special Group Addresses):
Token Ring defines Functional Addresses for ring management entities. These are group addresses (I/G=1) with specific bit patterns in bytes 4-6:
| Functional Address | Bit in Bytes 4-6 | Function |
|---|---|---|
| C0-00-00-00-00-01 | Bit 0 of byte 6 | Active Monitor |
| C0-00-00-00-00-02 | Bit 1 of byte 6 | Ring Parameter Server |
| C0-00-00-00-00-04 | Bit 2 of byte 6 | Network Server Heartbeat |
| C0-00-00-00-00-08 | Bit 3 of byte 6 | Ring Error Monitor |
| C0-00-00-00-00-10 | Bit 4 of byte 6 | Configuration Report Server |
| C0-00-00-00-00-20 | Bit 5 of byte 6 | Synchronous Bandwidth Manager |
| C0-00-00-00-00-40 | Bit 6 of byte 6 | Locate-Directory Server |
| C0-00-00-00-00-80 | Bit 7 of byte 6 | NetBIOS |
| C0-00-00-00-01-00 | Bit 0 of byte 5 | Bridge |
| C0-00-00-00-02-00 | Bit 1 of byte 5 | IMPL Server |
| C0-00-00-00-08-00 | Bit 3 of byte 5 | Ring Authorization Server |
| C0-00-00-00-10-00 | Bit 4 of byte 5 | LAN Gateway |
| C0-00-00-00-20-00 | Bit 5 of byte 5 | Ring Wiring Concentrator |
| C0-00-00-00-80-00 | Bit 7 of byte 5 | LAN Manager |
Because functional addresses are bit-mapped, a single frame can be addressed to multiple functions by setting multiple bits. For example, C0-00-00-00-00-09 addresses both the Active Monitor (bit 0) and the Ring Error Monitor (bit 3). Stations implementing either function will receive the frame.
The Information field carries the actual payload, and the Frame Check Sequence (FCS) provides error detection. Both are critical but often overlooked in frame analysis.
Information Field:
The Information field (also called the data field or INFO field) contains:
For MAC frames: The specific MAC frame content varies by frame type. For example:
For LLC frames: The LLC header followed by user data:
+------+------+------+------+------+...
| DSAP | SSAP | Ctrl | Data | Data |...
+------+------+------+------+------+...
| 1 | 1 | 1-2 | variable | bytes
Where:
Maximum Information Field Size:
| Parameter | 4 Mbps | 16 Mbps |
|---|---|---|
| Token Holding Time | 10 ms | 10 ms |
| Bits transmittable in THT | 40,000 | 160,000 |
| Bytes transmittable in THT | 5,000 | 20,000 |
| Maximum INFO field | ~4,500 bytes | ~17,800 bytes |
| Typical MTU configured | 4,464 bytes | 17,800 bytes |
Frame Check Sequence (FCS):
The 4-byte FCS provides robust error detection using CRC-32 (Cyclic Redundancy Check).
CRC-32 Polynomial: x³² + x²⁶ + x²³ + x²² + x¹⁶ + x¹² + x¹¹ + x¹⁰ + x⁸ + x⁷ + x⁵ + x⁴ + x² + x + 1
FCS Coverage: The FCS is calculated over:
NOT covered by FCS:
CRC Verification Process:
FCS Calculation (CRC-32): Input to CRC: FC + DA + SA + INFO = 40 (MAC) + C0:00:00:00:00:01 + 10:00:5A:4B:12:34 + [data...] CRC-32 Generator Polynomial:G(x) = x³² + x²⁶ + x²³ + x²² + x¹⁶ + x¹² + x¹¹ + x¹⁰ + x⁸ + x⁷ + x⁵ + x⁴ + x² + x + 1 = 0x104C11DB7 (in hexadecimal) Process:1. Initialize CRC register to all 1s (0xFFFFFFFF)2. Process each bit of input through XOR and shift3. Complement final CRC value4. Transmit CRC MSB first (big-endian) Example result: FCS = 0xA3B4C5D6 Receiver verification:- Include FCS in CRC calculation- Result should be constant (0xC704DD7B for CRC-32)- If result differs → error detected → set E=1The CRC-32 is designed for error detection, not correction. It can detect all single-bit errors, all 2-bit errors, any odd number of errors, and any burst error up to 32 bits. However, it cannot correct errors—it only signals that retransmission is needed (which higher-layer protocols handle).
The Frame Status (FS) field is Token Ring's built-in acknowledgment mechanism—it provides immediate feedback about frame delivery without requiring a separate response frame.
FS Field Structure: A C r r A C r r
Frame Status Field: 1 byte (8 bits) Bit Position: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |Field: | A | C | r | r | A | C | r | r | +---+---+---+---+---+---+---+---+ A (Address Recognized):- Set by the destination station when it recognizes its address- 0 = Destination did not recognize address (station offline or not present)- 1 = Destination recognized its address C (Frame Copied):- Set by the destination station when it successfully copies the frame- 0 = Frame not copied (buffer full, error, or disabled)- 1 = Frame successfully copied to receive buffer r (Reserved):- Set to 0, reserved for future use CRITICAL: A and C bits appear TWICE (bits 7,6 and bits 3,2)Why? Because FS is NOT protected by FCS! The FCS was calculated BEFORE the frame reached the destination.The destination MODIFIES FS bits after the FCS was computed.Therefore, FS cannot be FCS-verified. The duplication provides redundancy:- If both A bits = 1, address was definitely recognized- If both C bits = 1, frame was definitely copied- If they don't match → possible bit error in FS itselfInterpreting Frame Status:
When the transmitting station receives its frame back, it examines FS to determine delivery outcome:
| A | C | Interpretation |
|---|---|---|
| 0 | 0 | Destination not on ring (address unknown, station offline) |
| 1 | 0 | Destination exists but couldn't copy (buffer full, error, receiving disabled) |
| 1 | 1 | Frame successfully delivered and copied |
| 0 | 1 | Invalid (can't copy without recognizing address) |
Immediate Acknowledgment Benefits:
FS in Broadcast/Multicast:
For broadcast and multicast frames (multiple destinations):
This doesn't tell you which stations copied (or how many), just that at least one did. For detailed multicast acknowledgment, higher-layer protocols are needed.
Because FS isn't FCS-protected and the duplication is simple redundancy (not error correction), applications shouldn't blindly trust FS. A C=1 doesn't guarantee the frame wasn't corrupted—it only means the destination copied something. Critical applications verify data integrity at higher layers.
We've dissected every field in the Token Ring frame format, from code violation delimiters to the duplicated status bits. Let's consolidate the essential concepts:
What's Next:
With the frame format mastered, we'll explore Token Ring's priority mechanism—how the P and R bits in the Access Control field enable differentiated service, ensuring time-critical traffic gets precedence while maintaining fairness for lower-priority stations.
You now understand every field in the Token Ring frame format. You can decode frame captures, explain MAC versus LLC frames, and understand how code violations, the AC field, and the FS field work together to enable reliable, prioritized communication. Next, we'll examine the priority mechanism in detail.