Ethernet flow control

From Wikipedia, the free encyclopedia

Ethernet flow control is a mechanism for temporarily stopping the transmission of data on an Ethernet computer network.

Ethernet is a specific computer network protocol. Flow control in Ethernet resides on the data link layer. A situation may arise where a sending station (computer) may be transmitting data faster than some other part of the network (including the receiving station) can accept it. The overwhelmed network element will send a PAUSE frame, which halts the transmission of the sender for a specified period of time.

PAUSE is a flow control mechanism on full duplex Ethernet link segments defined by IEEE 802.3x and uses MAC Control frames to carry the PAUSE commands. The MAC Control opcode for PAUSE is 0X0001 (hexadecimal). Only stations configured for full-duplex operation may send PAUSE frames.

When a station wishes to send a PAUSE command, it sends the MAC Control frame to the 48-bit destination multicast MAC address of 01-80-C2-00-00-01. This particular address has been reserved for use in PAUSE frames. The use of a well-known address simplifies the flow control process by making it unnecessary for a station at one end of the link to discover and store the address of the station at the other end of the link.

Another advantage of using this multicast address arises from the use of flow control between network switches. The particular multicast address used is selected from a range of address which have been reserved by the IEEE 802.1D standard (which specifies the operation of switches). Normally, a frame with a multicast destination that is sent to a switch will be forwarded out all other ports of the switch. However, this range of multicast address is special and will not be forwarded by an 802.1D-compliant switch. Instead, frames sent to this address are understood by the switch to be frames meant to be acted upon within the switch.

A PAUSE frame includes the period of pause time being requested, in the form of two byte unsigned integer (0 through 65535). This number is the requested duration of the pause. The pause time is measured in units of pause "quanta", where each unit is equal to 512 bit times.

[edit] References

[edit] External Links