|| 5 out of 5
Poor Network Performance in LabVIEW Real-Time (RT) When Connected to Another Computer via a Crossover Cable
Primary Software Version:
Primary Software Fixed Version:
My LabVIEW Real-Time (RT) engine is connected to another machine via a crossover cable. When I try to use TCP/IP or other networking protocols to transfer data back and forth, or communicate to the system from Measurement & Automation Explorer (MAX), I see very poor performance. For certain packet sizes, my application may time out. What is wrong?
In some cases, an RT chassis can have poor network performance when connected to another computer via a crossover cable.
Related Links: KnowledgeBase 27K9UNKN: Connecting to a LabVIEW Real-Time (RT) Target with a Crossover Cable
- What is causing the problem?
An incorrect negotiation of the duplex state (half/full duplex) is occurring between the controller's Intel ethernet hardware and the other connected machine's ethernet hardware.
- Why isn't it negotiating correctly?
Negotiation of half/full duplex is not always a guaranteed thing. Many cards, switches, and hubs have been known to incorrectly negotiate connections under some circumstances. It is not likely that this will happen, but it is possible.
- Why does the incorrect negotiation kill network performance?
If one ethernet card thinks it is running full-duplex, and another thinks it is running in half-duplex, problems can occur. If the half-duplex configured card receives a frame while transmitting a frame (which, if the other end is full-duplex this is entirely likely), then it may interpret that as a collision. When collisions occur frequently, network performance becomes very poor.
- Why does everything work fine with a hub and not a crossover cable?
Because both ethernet cards are negotiating the connection with the hub, and not with each other. In this case, the hub is correctly negotiating with both ethernet cards even though those cards fail to auto-negotiate correctly with each other.
- What do I need to do to fix this problem?
Configure one of the cards to be forced half-duplex, rather than full-duplex or "Auto-negotiate".
For a LabVIEW RT Controller
Go to MAX and select your RT system from under Remote Systems. Select the Advanced Ethernet Settings Button to bring up the property page. In the property page select half duplex and select ok. The RT controller will now use half-duplex communication.
To adjust the Duplex mode of a network card in Windows
Often times Windows will allow you to configure the speed and duplex of an ethernet card from device manager. This works for most cards, but in some cases, the Ethernet Card ignores the Windows settings for speed and duplex. This is especially evident with the 3c905c and the Intel ethernet on the controller. If you manually specify the 3c905c to be 10Mbit (and not auto-negotiate), it will NOT change the link to 10Mbit (which can be witnessed by looking at the 100Mbit LED on the 817x controller - note that the LED will indicate that it is still on 100Mbit!). The same applies to the duplex. In order to change the settings of the 3c905c, you must use a DOS utility supplied by 3Com.
- How do I change the 3c905c duplex mode?
Attached to this document is a floppy image that boots the computer into DOS. Once in DOS, run "3c90xcfg.exe". Then select "Install", then "Configure (F4)". It will give you options to configure on your 3Com card. Next either tab until the item list (that contains the driver mode, duplex mode, media type, etc.) becomes highlighted, or you can hit Alt+N to jump to it.
The 3Com utility won't let you disable full-duplex AND keep the media type as auto-select. Instead, you have to turn off auto-select on the media type, and then it will let you disable (or turn off auto-select) full-duplex mode. So depending on the media type of your network, you'll want to select either 100Mbit or 10Mbit. Once you do so, the utility may switch the duplex mode to disabled. If it doesn't, you will want to switch it manually. Now hit the tab key until it highlights the "Ok" button. Hit enter, and it should say that it is writing the new configuration to the hardware. Once that completes, you may exit the program and reboot.
To create the floppy, insert a floppy disk into your A: drive, and run the attached exe. It will prompt you for a floppy, and will format and copy this particular utility to it.