I had posted on SQL Blog that Gigabit Ethernet was full duplex-only. An alert reader who actually read IEEE specs (we all should learn to go to the source) pointed the out that the spec allows half-duplex.

Well the IEEE 802.3 specification does say Gigabit Ethernet is full and half-duplex. From what I can gather, half-duplex is required for hubs (repeaters). I vaguely recall that there were Gigabit Ethernet Hubs in the early days. I do not recall ever seeing a Gigabit Half-duplex option in the driver setting for any adapter. I have used most of the Intel and Broadcom adapters from the very beginning. Unfortunately, I gave/threw away all of my old systems. I will try to get access one when I can.

I did also find in a number of place, but not the IEEE 802.3 specification, that Gigabit speed requires auto-negotiate.

Below is an excerpt from the Intel Ethernet Adapter Users Guide on Setup Speed & Duplex

Intel® Gigabit Network Adapter Considerations

Per the IEEE specification, gigabit speed is available only in full-duplex.

The settings available when auto-negotiation is disabled are:

I am not sure exactly what is meant by the opening statement. I might be that the Gigabit speed setting is only available with Auto-negotiate, which will try full-duplex, but could drop to half-duplex?

Below are diagrams from the Broadcom 1GbE,

Broadcom 1GbE
the Intel GbE,
Intel 10GbE
and an Intel 10GbE Fiber adapter.
Intel 10GbE

This is excerpt from the Intel 82576 Gigabit Ethernet Controller Datasheet: " The GMII/MII interface used to communicate between the MAC and the internal PHY or the SGMII PCS supports 10/100/1000 Mb/s operation, with both half- and full-duplex operation at 10/100 Mb/s, and full-duplex operation at 1000 Mb/s. "

Below is a diagram of 1000BaseT showing that transmit and receive occur simultaneously over each pair of wires.
1000BaseT
"The use of hybrids and cancellers enables full duplex transmission by allowing symbols to be transmitted and received on the same wire pairs at the same time."

Post on Gigabit Ethernet from SQL Blog

People still talk about checking if the network is in full-duplex mode even when they are on Gigabit Ethernet. Let me say clearly: Gigabit Ethernet is full-duplex period. There is no half-duplex mode. The same goes for 10 Gigabit Ethernet. If Windows Task Manager says the network Link Speed is 1 or 10 Gbps, don’t bother checking the mode, it can only be full-duplex.

In the old days of 10Mbit/sec Ethernet was originally half-duplex. The old 10BASE5 (fat) and 10BASE2 (thin) cable had one signal carrier. Basically a one-lane road. So for Ethernet we had collision detection. Then Ethernet over Cat 5 became popular. For whatever reason, Cat 5 had 8 wires. 1 pair was used for transmit, another pair was used for received, the other 2 pairs were not used.

Some one came up with the bright idea to enable simultaneous transmit and receive, why else have a 2 lane road? (I am not sure if Kalpana was the first with full-duplex, alittle help from the network old-timers please). And this became full-duplex Ethernet. The standards committee IEEE 802.3 got together to figure out a way to detect the mode, to only use full-duplex if both parties supported.

Later (1994?) 100Mbit/sec Fast Ethernet came along. If I came recall correctly, most Fast Ethernet Adapters could support full-duplex and all could support half-duplex, and all could support 10 or 100 Mbit/s. The meant there were 4 modes, 10-half, 10-full, 100-half, and 100-full. The adapter driver would have a 5th settting: auto-negotiate, which would set to the best mode supported by the other end.

Most of the time, the auto-negotiation worked, going to 100-full if supported on both sides. The one combination that did not work in the mid-1990s was an Intel Fast Ethernet controller connected to a Cisco Fast Ethernet switch. This combination negotiated to 100-half even though both sides supported 100-full. It also so happened that at the time, Intel was the most popular Fast Ethernet controller and Cisco was the most popular switch.

So it was necessary to manually set the network to 100-full. Of course, if this were set, and the other side did not support full, then there would a huge number of network errors. I recall one network was getting 15Kbytes/sec on Fast Ethernet, far less than the 300KB/sec for older 10-half networks.
Gigabit Ethernet was from the beginning full-duplex only. There is no half-duplex mode.
The driver will typically show 6 options: auto, gigabit, 100-full, 100-half, 10-full and 10-half.

This is my article from 2003. At the time, Gigabit adapters were beginning to be affordable, but gigabit switches were still really expensive, the same situation today with 10GbE (if you consider $800 per adapter inexpensive). I was too cheap to buy a GbE switch with my own money, so I had to figure out how to make a cross-over cable for GbE

http://www.sql-server-performance.com/articles/clustering/gigabit_ethernet_networking_p1.aspx

Gigabit Ethernet over Cat5e, or 1000BaseT, uses all four pairs of wires. Each pair is used simultaneously to transmit and receive, as it is possible to determine in which direction a signal is traveling. The signaling rate is the same as 100Mbit/sec Fast Ethernet (125MBuad) but more than 1 bit is transmitted. See the Ethernet Alliance website for details

http://www.ethernetalliance.org/

Correction, half-duplex is supported!

Well the IEEE 802.3 specification does say Gigabit Ethernet is full and half-duplex. From what I can gather, half-duplex is required for hubs (repeaters). I vaguely recall that there were Gigabit Ethernet Hubs in the early days. I do not recall ever seeing a Gigabit Half-duplex option in the driver setting for any adapter. I have used most of the Intel and Broadcom adapters from the very beginning. Unfortunately, I gave/threw away all of my old systems. I will try to get access one when I can.

I did also find in a number of place, but not the IEEE 802.3 specification, that Gigabit speed requires auto-negotiate.

Below is an excerpt from the Intel Ethernet Adapter Users Guide on Setup Speed & Duplex (this link is provided for convenience, please go to the Intel website for the full documentation.)

Intel® Gigabit Network Adapter Considerations

Per the IEEE specification, gigabit speed is available only in full-duplex.

The settings available when auto-negotiation is disabled are:

I am not sure exactly what is meant by the opening statement. It might be that the Gigabit speed setting is only available with Auto-negotiate, which will try full-duplex, but could drop to half-duplex?

Below is a diagram from the Broadcom 1GbE. The 10 and 100Mbit/s modes allow a choice of half or full duplex. The 1GbE mode is auto-detect and will negogiate full-duplex if supported.

The same applies for the Intel 1GbE adapter.

Below is an Intel 10GbE that only supports 10GbE mode. Certain Intel 10GbE adapter can also support 1GbE mode.

This is excerpt from the Intel 82576 Gigabit Ethernet Controller Datasheet: " The GMII/MII interface used to communicate between the MAC and the internal PHY or the SGMII PCS supports 10/100/1000 Mb/s operation, with both half- and full-duplex operation at 10/100 Mb/s, and full-duplex operation at 1000 Mb/s. "

Below is a diagram of 1000BaseT showing that transmit and receive occur simultaneously over each pair of wires.
1000BaseT
"The use of hybrids and cancellers enables full duplex transmission by allowing symbols to be transmitted and received on the same wire pairs at the same time."