An Alternative to Ethernet
Ethernet, while being the major contender for LANs, is not the only player. As a contrast, RFC 1748 we take a quick look at an alternative, Token Ring (Figure below).
Rather than have a shared segment of wire, we can have a circular network. Rings have been around for a long time (at least since 1972) and are well understood. They are really a collection of point-to-point links that happen to form a ring.
A packet circulates around the ring, being passed from one interface to the next until it reaches its destination. The ring is controlled by a special packet, called the token. When the ring is idle, this token circulates. If a host wants to transmit a frame it must wait until the token arrives. It removes the token and replaces it with its data packet, which continues round to the destination. The destination reads the packet. The packet continues around the ring until it reaches the source again, which removes the packet and replaces the token, thus releasing the network.
If many machines are waiting to send packets, the token will therefore be grabbed in a round-robin style, giving natural bandwidth sharing.
Token Ring runs at 4 or 16Mb (and lately, 100Mb and more) over UTP. The token is 3 bytes long:
- Starting delimiter. A special pattern of electrical signals that does not correspond to a data byte (an invalid Manchester encoding).
- Access control. This byte contains the token bit, which is zero for a token and one for a data frame.
- An ending delimiter. Similar to the SD.
The data frame (Figure below) is arbitrarily long:
- Starting delimiter.
- Access control.
- Frame control. This distinguishes a data frame from other kinds of frames which are used to control the network.
- Destination and source addresses. Six byte addresses as for 802.3/Ethernet, but a variant allows two byte addresses.
- The data. This can be of any length up to a maximum time limit, which is generally 10 ms, the token-holding time, which is 5000 bytes.
- A checksum.
- An ending delimiter.
- Frame status. Contains various status bits, in particular 'destination present and frame read successfully'. This is noted by the sender when the packet returns as a check that the packet was read by the destination.
Packets also have priorities. The AC field contains a priority value, as does the token. That packet can only be sent if the token has priority not greater than the priority of the packet. Similarly, a host can raise the priority of the next token by raising the priority of the current data frame.
Rings have several advantages over Ethernet:
- Good bounds for time to access the network: Ethernet is non-deterministic as it may have to repeatedly back off and this is bad for real-time applications (such as machine control systems) where predictability is important.
- Smooth degradation under high load: Ethernet gets very inefficient at high loads.
- There is no practical limit on the size of the network.
- There is no minimum packet size, thus reducing overhead.
- Point-to-point links are cheap and easy to build.
On the other hand:
- A ring is difficult to extend: you have to take the entire network down to add a machine, but with Ethernet you just plug in.
- A broken interface is a big problem to everybody as it breaks the ring: with Ethernet you probably wouldn't notice.
- There is a fixed large delay while you wait for the token: at low load the delay on Ethernet is virtually zero.
- The details of Token Ring are quite complicated, involving the priorities of packets and means to monitor the liveness of the system (regenerating the token if it gets lost, etc.): Ethernet is relatively simple.
On the whole, though, the two use roughly the same technology and get roughly the same performance. In practice, Token Ring is rarely seen and Ethernet is seen everywhere.