Below is one of older articles from 2003, originally published on sql-server-performance.com, though the site is now marked as unsafe?

Gigabit Ethernet Direct Connect Networking

A useful device in Ethernet networking is the cross-over cable. There are circumstances where it is necessary to network two computers together and nothing else. Examples include test environments and clustered systems. In such cases, it is desired to avoid the need for a dedicated network switch. On Ethernet and Fast Ethernet networks, this is accomplished with a cross-over cable. A patch cable, wired straight through, connects an adapter to a switch or hub port. The cross-over cable is wired with transmit and receive pairs crossed and allows two Ethernet or Fast Ethernet adapters to be connected directly. Gigabit Ethernet uses a patch cable to connect one adapter to either a switch port or directly to another adapter. This fact appears to be overlooked in much of the publicly available material.

    jc_gigabit_image012
Ethernet patch cable and cross-over cable usage.

Gigabit Ethernet is on the verge of becoming the economically viable de facto choice for networking servers and desktop computer systems. Gigabit Ethernet Adapters are now only somewhat more expensive than Fast Ethernet Adapters. A desktop Gigabit adapter for a 32-bit/33MHz PCI bus is less than $100. A server Gigabit adapter for a 64-bit/66MHz PCI-X bus is less than $200. Gigabit Ethernet Switches, on the other hand, are still moderately, although not excessively, expensive.

Consider the history of 100Mbit/sec Fast Ethernet. The first generation adapters were more expensive than 10Mbit/sec Ethernet. The second generation Fast Ethernet adapters were about the same cost as standard Ethernet adapters. Since a Fast Ethernet adapter could operate at either 10 or 100Mbit/sec, there was no economical reason not to deploy Fast Ethernet adapters regardless of whether the network infrastructure was 10 or 100Mbit/sec. Fast Ethernet switches on the other hand, took a few years longer to come down in price to the point where there was very little difference between a Fast Ethernet switch and a standard Ethernet switch.

Today, Gigabit Ethernet is at the intermediate stage where adapters are inexpensive relative their Fast Ethernet counterpart, but switches are not. It is expected that new single chip silicon devices will enable inexpensive Gigabit Ethernet switches in the near future. In the mean time, it can be desirable to directly connect two computer systems with Gigabit Ethernet adapters without a switch.

The IEEE 802.3ab 1000Base-T standard is designed to work with most Category 5 UTP cables. Obviously, the ability to work with Cat 5 cables is of enormous value because it is deployed so pervasively. Cat 5 specifies a cable that supports a 100MHz signal with certain attenuation and impedance characteristics (100?) and other requirements.

The fact that signaling occurs at 100Mbaud does not necessarily imply that the data transmission rate is also 100Mbit/sec (Mbps). First, some form of encoding is necessary to ensure that long streams of zeros or ones do not cause the clocks on each device to fall out of synchronization. Ethernet uses Manchester encoding, which requires one extra bit for each bit of data, actually signals at 20Mbaud with a data transmission rate of 10Mbps. The 100Base-TX version of Fast Ethernet uses 4B/5B encoding and operates at 125Mbaud with a data transmission rate of 100Mbps.

Depending on the signal-to-noise ratio; advanced signaling techniques employing multiple voltage levels can achieve higher transmission rates than the signaling rate. The 1000Base-T implementation of Gigabit Ethernet employs a 5-level coding scheme that effectively contains 2-bits, excluding the encoding overhead, and 4 parallel signals to enable 1Gbit/sec data transmission rates on the same 125Mbaud signaling as 100Base-TX.

Despite the considerable effort made to enable 1000Base-T to operate on cables meeting the Cat 5 specifications, some additional specifications were required (Cat 5e). Fortunately, most Cat 5 cables manufactured actually meets the additional Cat5e specifications. So Gigabit Ethernet should work with most Cat 5 cables, but if new cables are being purchased, one should check that the cables meet the Cat 5e specification. Cables that exceed the Cat 5e specification rated for 350MHz may be only moderately more expensive than Cat 5, while Cat 6 cables that support 500MHz are more expensive.

Given that Gigabit Ethernet should be able to use Cat 5e, 350MHz and Cat 6 cables, one might ask whether a standard Ethernet or Fast Ethernet cross-over cable can be employed to connect two Gigabit Ethernet adapters directly. A quick look at the Cat 5e and 350MHz cross-over cable products available shows that only 10 and 100Mbps Ethernet modes are supported. So the question remains, what is necessary to connect two Gigabit Ethernet adapters directly? It turns out that the answer is standard Cat 5e or better patch cables!

The figure below shows the EIA/TIA 568B wiring standard (the EIA/TIA 568A standard have the wires with green and orange colors swapped). A Cat 5 cable has 8 wires in four pairs. Ethernet (10Base-T) and Fast Ethernet (100Base-TX) use only two pairs of the four pairs in a Cat 5 cable. One pair is used for transmit and a second pair is used for receive. Adapters use one specific pair to transmit, another pair to receive, while switch/hub ports use the opposite pairs arrangement.

    jc_gigabit_image012
TIA/EIA 568B wiring standard.

    jc_gigabit_image012
Ethernet (10Base-T) and Fast Ethernet (100Base-TX) on Cat 5.

Hence, an Ethernet and Fast Ethernet cross-over cable is implemented by crossing pins 1 to 3, 2 to 6, 3 to 1, and 6 to 2 as shown below.

    jc_gigabit_image012
Ethernet and Fast Ethernet cross-over cable.

The 1000Base-T Gigabit Ethernet standard uses all four pairs of the Cat 5e cable. Each pair is used to transmit and receive data simultaneously, known as Dual-Duplex transmission. Basically, this is a technique where it is possible to distinguish the direction a signal is traveling.

    jc_gigabit_image012

The figure below shows the difference between 100Base-TX and 1000Base-T signaling. The 10Base-T and 100Base-TX uses separate pairs for transmit and receive. Hence it is necessary to wire for a specific type of connection. The 1000Base-T transmits and receives simultaneously on each pair. Since there is no difference in the wires used to transmit and receive signals for any device, the standard patch cable, wired straight though, can connect a Gigabit Ethernet adapter to either a switch/hub port or another adapter.

    jc_gigabit_image012

Note that it still should be possible to use a Fast Ethernet cross-over cable to connect two Gigabit adapters if the adapter auto detects the best supported operating mode. But both the adapters should drop to 100Mbps.

 

Below is from 2010, when I inadvertently forget that Gigabit Ethernet had a half-duplex spec. See SQLblog

gigabit full-duplex

Gigabit Ethernet

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."