Duplex mismatch
Encyclopedia
In Ethernet
, a duplex mismatch is a condition where two connected devices operate in different duplex modes
, that is, one operates in half duplex while the other one operates in full duplex. The effect of a duplex mismatch is a network that works but is often much slower than its nominal speed. Duplex mismatch may be caused by manually setting two connected network interfaces at different duplex modes or by connecting a device that performs autonegotiation
to one that is manually set to a full duplex mode.
The Ethernet standards body, IEEE 802.3, recommends enabling autonegotiation on all connections. Nevertheless network equipment allows autonegotiation to be disabled and on some networks, autonegotiation is disabled on all ports and a fixed modality of 100 Mbit/s and full duplex is used. That was often done by network administrators intentionally upon the introduction of autonegotiation, because of interoperability issues with the initial autonegotiation specification. The fixed mode of operation works well if both ends of a connection are locked to the same settings. However, maintaining such a network and guaranteeing consistency is difficult. Since autonegotiation is generally the manufacturer’s default setting it is almost certain that, in an environment where the policy is to have fixed port settings, someone will sooner or later leave a port set to use autonegotiation by mistake.
command fails to detect a duplex mismatch because single packets and their resulting acknowledgments at 1-second intervals do not cause any problem on the network. A terminal session which sends data slowly (in very short bursts) can also communicate successfully. However, as soon as either end of the connection attempts to send any significant amount of data, the network suddenly slows to very low speed. Since the network is otherwise working, the cause is not so readily apparent.
A duplex mismatch causes problems when both ends of the connection attempt to transfer data at the same time. This happens even if the channel is used (from a high-level or user's perspective) in one direction only, in case of large data transfers. Indeed, when a large data transfer is sent over a TCP
, data is sent in multiple packets, some of which will trigger an acknowledgment packet back to the sender. This results in packets being sent in both directions at the same time.
In such conditions, the full-duplex end of the connection sends its packets while receiving other packets; this is exactly the point of a full-duplex connection. Meanwhile, the half-duplex end cannot accept the incoming data while it is sending -- it will sense it as a collision. The half-duplex device ceases its current transmission and then retries later as per CSMA/CD
. As a result, when both devices are attempting to transmit at the same time, packets sent by the full-duplex end will be lost and packets sent by the half duplex device will be delayed or lost.
The lost packets force the TCP protocol to perform error recovery, but the initial (streamlined) recovery attempts fail because the retransmitted packets are lost in exactly the same way as the original packets. Eventually, the TCP transmission window becomes full and the TCP protocol refuses to transmit any further data until the previously-transmitted data is acknowledged. This, in turn, will quiesce
the new traffic over the connection, leaving only the retransmissions and acknowledgments. Since the retransmission timer grows progressively longer between attempts, eventually a retransmission will occur when there is no reverse traffic on the connection, and the acknowledgment are finally received. This will restart the TCP traffic, which in turn immediately causes lost packets as streaming resumes.
The end result is a connection that is working but performs extremely poorly because of the duplex mismatch. Symptoms of a duplex mismatch are connections that seem to work fine with a ping command, but "lock up" easily with very low throughput on data transfers; the effective data transfer rate is likely to be asymmetrical, performing much worse in one direction than the other. In normal half-duplex operations late collision
s do not occur. However, in a duplex mismatch the collisions seen on the half-duplex side of the link are often late collisions. The full-duplex side usually will register frame check sequence
errors, or runt frames. Viewing these standard Ethernet statistics can help diagnose the problem.
Contrary to what one might reasonably expect, both sides of a connection need to be identically configured for proper operation. In other words, setting one side to automatic (either speed or duplex or both) and setting the other to be fixed (either speed or duplex or both) will result in either a speed mismatch, a duplex mismatch or both. A duplex mismatch can be fixed by either enabling autonegotiation (if available and working) on both ends or by forcing the same settings on both ends (availability of a configuration interface permitting). If there is no option but to have a locked setting on one end and autonegotiation the other (for example, an old device with broken autonegotiation connected to an unmanaged switch) half duplex must be used. All modern LAN equipment comes with autonegotiation enabled and the various compatibility issues have been resolved. The best way to avoid duplex mismatches is to use autonegotiation and to replace any legacy equipment that does not use autonegotiation or does not autonegotiate correctly.
Ethernet
Ethernet is a family of computer networking technologies for local area networks commercially introduced in 1980. Standardized in IEEE 802.3, Ethernet has largely replaced competing wired LAN technologies....
, a duplex mismatch is a condition where two connected devices operate in different duplex modes
Duplex (telecommunications)
A duplex communication system is a system composed of two connected parties or devices that can communicate with one another in both directions. The term multiplexing is used when describing communication between more than two parties or devices....
, that is, one operates in half duplex while the other one operates in full duplex. The effect of a duplex mismatch is a network that works but is often much slower than its nominal speed. Duplex mismatch may be caused by manually setting two connected network interfaces at different duplex modes or by connecting a device that performs autonegotiation
Autonegotiation
Autonegotiation is an Ethernet procedure by which two connected devices choose common transmission parameters, such as speed, duplex mode, and flow control. In this process, the connected devices first share their capabilities regarding these parameters and then choose the highest performance...
to one that is manually set to a full duplex mode.
Duplex mismatch due to autonegotiation
When a device set to autonegotiation is connected to a device that is not using autonegotiation, the autonegotiation process fails. The autonegotiating end of the connection is still able to correctly detect the speed of the other end, but cannot correct the duplex mode. The standard requires the use of half duplex in these conditions. Therefore, the autonegotiating end of the connection uses half duplex while its peer is locked at full duplex, and this is a duplex mismatch.The Ethernet standards body, IEEE 802.3, recommends enabling autonegotiation on all connections. Nevertheless network equipment allows autonegotiation to be disabled and on some networks, autonegotiation is disabled on all ports and a fixed modality of 100 Mbit/s and full duplex is used. That was often done by network administrators intentionally upon the introduction of autonegotiation, because of interoperability issues with the initial autonegotiation specification. The fixed mode of operation works well if both ends of a connection are locked to the same settings. However, maintaining such a network and guaranteeing consistency is difficult. Since autonegotiation is generally the manufacturer’s default setting it is almost certain that, in an environment where the policy is to have fixed port settings, someone will sooner or later leave a port set to use autonegotiation by mistake.
Effects of duplex mismatch
Communication is possible over a connection in spite of a duplex mismatch. Single packets are sent and acknowledged without problems. As a result, a simple pingPing
Ping is a computer network administration utility used to test the reachability of a host on an Internet Protocol network and to measure the round-trip time for messages sent from the originating host to a destination computer...
command fails to detect a duplex mismatch because single packets and their resulting acknowledgments at 1-second intervals do not cause any problem on the network. A terminal session which sends data slowly (in very short bursts) can also communicate successfully. However, as soon as either end of the connection attempts to send any significant amount of data, the network suddenly slows to very low speed. Since the network is otherwise working, the cause is not so readily apparent.
A duplex mismatch causes problems when both ends of the connection attempt to transfer data at the same time. This happens even if the channel is used (from a high-level or user's perspective) in one direction only, in case of large data transfers. Indeed, when a large data transfer is sent over a TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
, data is sent in multiple packets, some of which will trigger an acknowledgment packet back to the sender. This results in packets being sent in both directions at the same time.
In such conditions, the full-duplex end of the connection sends its packets while receiving other packets; this is exactly the point of a full-duplex connection. Meanwhile, the half-duplex end cannot accept the incoming data while it is sending -- it will sense it as a collision. The half-duplex device ceases its current transmission and then retries later as per CSMA/CD
Carrier sense multiple access with collision detection
Carrier sense multiple access with collision detection is a Media Access Control method in which:*a carrier sensing scheme is used....
. As a result, when both devices are attempting to transmit at the same time, packets sent by the full-duplex end will be lost and packets sent by the half duplex device will be delayed or lost.
The lost packets force the TCP protocol to perform error recovery, but the initial (streamlined) recovery attempts fail because the retransmitted packets are lost in exactly the same way as the original packets. Eventually, the TCP transmission window becomes full and the TCP protocol refuses to transmit any further data until the previously-transmitted data is acknowledged. This, in turn, will quiesce
Quiesce
Quiesce is used to describe pausing or altering the state of running processes on a computer, particularly those that might modify information stored on disk during a backup, in order to guarantee a consistent and usable backup...
the new traffic over the connection, leaving only the retransmissions and acknowledgments. Since the retransmission timer grows progressively longer between attempts, eventually a retransmission will occur when there is no reverse traffic on the connection, and the acknowledgment are finally received. This will restart the TCP traffic, which in turn immediately causes lost packets as streaming resumes.
The end result is a connection that is working but performs extremely poorly because of the duplex mismatch. Symptoms of a duplex mismatch are connections that seem to work fine with a ping command, but "lock up" easily with very low throughput on data transfers; the effective data transfer rate is likely to be asymmetrical, performing much worse in one direction than the other. In normal half-duplex operations late collision
Late collision
Late Collision in computer networking is a type of collision found in the CSMA/CD protocol standard. If a collision error occurs after the first 512 bits of data are transmitted by the transmitting station, a late collision is said to have occurred...
s do not occur. However, in a duplex mismatch the collisions seen on the half-duplex side of the link are often late collisions. The full-duplex side usually will register frame check sequence
Frame Check Sequence
A frame check sequence refers to the extra checksum characters added to a frame in a communication protocol for error detection and correction. Frames are used to send upper-layer data and ultimately the user application data from a source to a destination. The data package includes the message...
errors, or runt frames. Viewing these standard Ethernet statistics can help diagnose the problem.
Contrary to what one might reasonably expect, both sides of a connection need to be identically configured for proper operation. In other words, setting one side to automatic (either speed or duplex or both) and setting the other to be fixed (either speed or duplex or both) will result in either a speed mismatch, a duplex mismatch or both. A duplex mismatch can be fixed by either enabling autonegotiation (if available and working) on both ends or by forcing the same settings on both ends (availability of a configuration interface permitting). If there is no option but to have a locked setting on one end and autonegotiation the other (for example, an old device with broken autonegotiation connected to an unmanaged switch) half duplex must be used. All modern LAN equipment comes with autonegotiation enabled and the various compatibility issues have been resolved. The best way to avoid duplex mismatches is to use autonegotiation and to replace any legacy equipment that does not use autonegotiation or does not autonegotiate correctly.