A fundamental concept in 10Base-T is link integrity. To establish whether a connection was live or not, 10Base-T included the regular transmission of the Normal Link Pulse (NLP). NLPs were sent every 16ms. This heartbeat pulse was used as the basis for a Link Integrity Test (LIT). If a receiver does not receive either an NLP or a data packet within 50ms to 150ms, then the NIC enters the link fail state. This disables the sending and receiving of packets. But, importantly, the NIC continues to send NLPs. When the problem is corrected, and the receiver begins receiving NLPs, or packets, the NIC clears the link fail state.
This approach allowed applications to quickly determine if a network connection was alive or dead. But, the LIT did nothing to help when one NIC card was configured for half-duplex and the other for full duplex.
With the introduction of 100Base-T, the number of combinations and permutations available when connecting a device to a network increased. After all, you could have two devices operating at 100Base-T, one device operating at 10Base-T and another operating at 100Base-T, and so on. This is not to mention whether the devices were in half-duplex or full-duplex mode. How could designers ensure that end users could simply connect two devices and have them talk?
The solution was to come up with a way for the two devices to communicate their capabilities. It was decided to use the space between NLPs to transmit a fast link pulse (FLP). The FLP is a string of 33 positions, occupied alternately by clock pulses and data pulses. Once a connection is established, NICs cease to transmit the FLP. The FLP contains, among other things, a technology ability field and an ACK bit. Using the FLP, an NIC can signal its highest capability. For example, one NIC might signal that it can operate at 100Base-T, full-duplex. The other NIC may signal that it can operate at 100Base-T, half-duplex.
Once the technology ability field is received, an NIC looks at a Priority Resolution Table and selects either its highest priority capability or the capability of the other card, whichever is lower. Here, the card would send a revised FLP, indicating 100Base-T, half-duplex and an ACK. Both cards would cease transmitting FLPs, and the link state would be set to UP.
Auto-negotiation capability is optional for 100Base-T cards, but it is mandatory for 1000Base-T NICs. In addition to negotiating speed and duplex settings, auto-negotiation is used to establish a master-slave relationship between two devices. The master-slave concept was added in the 1000Base-T standards.