This post is a supplement to my sermon for the weekly BYOB podcast. Read on to find out about Network Interface Controllers and what you can do to speed up your PCs and network!
NIC is an acronym for Network Interface Controller is part of your motherboard or a Network Interface Card if attaches to the slot on your board. Most newer PCs have the NIC built into the motherboard and some of the higher end PCs and motherboards even have dual network interfaces. For example, my P55 SLI EVGA board has dual NICs. Newegg as of today has 58 Intel boards with dual LAN support.
Each NIC has a MAC address that is unique. A MAC address is a 48-bit identifier that the NIC uses for communications on the network segment. Think of it as a social security number for your NIC. Many of you have seen the MAC written as 12:34:56:78:90:AB. Manufacturers such as Intel, Realtek and Marvell buy blocks of MACs so no two in theory should ever be the same.
Each NIC is connected to your Local Area Network, or LAN, by an Ethernet cable. This cable typically has a RJ45 connector that looks like a jumbo phone connector. We also sometimes refer to these Ethernet cables by their signal integrity such as Cat-5e or 100 Mbit/s, Cat-6 Gigabit and now even Cat-7 which allows for 10 Gigabit Ethernet. Sweet. Now as a disclaimer to those advanced listeners out there, I know you can run Gigabit over Cat5e but in my opinion, from what I can only attribute to the twists per meter and the lower grade insulation, I have seen reduced performance on high-data rate transfers.
Ok, Tim, why do I need to listen to a sermon about a cable and NIC I already have? Well NICs are usually available in 10/100 or 10/100/1000 speeds. This means the hypothetical speeds are 10, 100 or 1000 Megabits per second. Now, unless you bought a higher-end PC, or built your own, you might only have a 10/100 controller in your PC. For example, budget PCs and most laptops only have a 100 Mbps controller. In addition, you might have a Gigabit controller but only be connected through a Megabit router or switch. You can easily check your current speed by going to your Local Area Connection Status in Windows and verifying the number. Remember that the speed you see is the speed you are connected to the network and not necessarily the speed of the controller.
So once you know your NIC speed what does this mean to you? Your communication speed to the world, through your internet service provider, gives you access to the internet at usually between 5 Mbps and 30 Mbps depending on your location and ISP data package you purchase. Well, the NIC speed, which at these slow speeds is not the bottleneck to the outside world, is more important on your LAN. Inside your network is where the speed makes a true difference.
On my system, for example, I have an EX485 HP MediaSmart Server on which I store my data.
The server has a Gigabit NIC so I can move data between my PC at Gigabit speeds. Now, we are going to cover networking on another show, but realize that to have Gigabit speed, not only do both PCs have to have NICs that are Gigabit, but you also have to have the right cable and a switch or router that supports Gigabit.
Again, we will cover this on a future podcast, but Gigabit networks should have the right sized equipment. In today’s dollars, the cost is not that much more. You can get the N-Wireless D-Link Router with Gigabit ports for $75 at Newegg. Throw in some Cat6 cables and a Gigabit NIC and you are out the door for about $100.
As a closing to the hardware portion of this sermon, high-end servers already have 10 Gbps. These are beyond the scope of this podcast but check out some of Intel’s Dual Port Server Adapters for more information.
Install the NIC in a slot that matches the card type and matches the bus width of the NIC. For example, put the card in the proper PCI or PCIe slot that is the fastest available and that has the speed that matches the card. Some lanes may have lower functionality. In addition, try and a put the NIC on a bus by itself if possible. You might have to check your lanes before buying the card so see if using a PCI or PCIe card is the right choice for you.
Software and Drivers
You NIC card should be recognized once you start up your PC, however depending on the manufacturer there may be additional software or even proprietary software for your specific NIC. Always follow the instructions that come with the NIC!
NOTE: Most of the following changes will reset your NIC and drop your connection temporarily. DO NOT USE THIS OVER A REMOTE CONNECTION! In addition, if your NIC is already performing to spec then leave it alone!
I will now talk about some of the NIC settings that apply to my Intel PRO1000GT NIC. It is important to know before you start changing settings that you can EASILY Bork your NIC and lose your connection if you mess up a setting. The settings I am about to tell you about are just guides, and you should use this as inspiration to learn about your specific NIC hardware before making any changes!
Possible Driver Configuration Suggestions:
Interrupt Moderation Rate sets the rate at which the controller moderates or delays the generation of interrupts making it possible to optimize network throughput and CPU utilization. The default setting (Adaptive) adjusts the interrupt rates dynamically depending on traffic type and network usage.
Reduce Interrupt Moderation Rate to Low, Minimal, or Off. The default is “Adaptive”.
Note: Decreasing Interrupt Moderation Rate will increase CPU utilization. Low yield difference.
Jumbo Packets/Frames: The standard Ethernet frame size is 1514 bytes, while Jumbo frames can contain 4088 or 9014 bytes. Available settings varies depending on the specific adapter.
Enable Jumbo Packets to the largest size supported across the network (4KB, 9KB, or 16KB). The default is “Disabled”.
Note: Enable Jumbo Packets only if devices across the network support them and are configured to use the same frame size. You would not want to use this on a network with mixed PC frame rates. Large yield difference on smaller Gigabit networks.
Receive Buffers sets the number of Receive Buffers used by the adapter when copying data to memory. Increasing this value can enhance receive performance, but consumes system memory.
Increase the Transmit Descriptors buffer size.
The default is “256”. Maximum value is 2048 but can be as low as 512 on other NICs.
Note: Increasing Transmit Descriptors will increase system memory usage. High yield difference.
Increase the Receive Descriptors buffer size.
The default is “256”. Maximum value is 2048.
Note: Increasing Receive Descriptors will increase system memory usage.
Wake On LAN
Wake On LAN is networking standard that allows a PC to be woken up by another PC that sends a “message” across the network. Typically, a PC would send a magic packet that consists of the MAC address of the NIC over the network and the PC that has the corresponding MAC address will wake up.
There are many adjustments that are needed both in the BIOS and the Connection Properties. It is also advisable to have the listening PC on a UPS since some systems do not support WOL after a power outage.
Andrew Edney and I use WOL almost daily for a HTPC on my network through Vail. It works great.
Intel Boot Agent
Finally, for those of you with Intel cards that support Intel Boot Agent, turn it off. Control-S during the initialization screen will get you to the settings. Even if you have lowered the Intel Boot Agent below your regular boot devices, the Agent still runs during startup of your PC. Unless you plan to use it, turn it off!
My Card – Intel PWLA8391GT
In addition, a white paper on multiple NICs from Intel:
Intel Network Connectivity Reference