A
Network Interface Card (
NIC) is an
expansion board used for the computer to connect to a
network of a specific type. Various network interfaces may require different types of cards. The NIC may use an external
transceiver or an internal integrated transceiver mounted on the network interface card. The networked computer on which the NIC is installed gives it a message for another networked device and the card configures that message for transport over a particular network (through various wire types, or
wirelessly). The NIC can also perform the reverse operation: receive a signal from the network (which has been encoded by a similar card) and decode it for the computer.
An effective Network Card is one that performs its actions with as little CPU calculations as possible. Four methods of data transfer are used:
Bus mastering DMA (Direct Memory Access):
Data enters the card from the network and is stored in the card's RAM with instructions from the card's own CPU (unrelated to the system's CPU). When the transmission is complete, the NIC's CPU then sends data to the computer's motherboard where it is available for the computer to use in any way needed. With this method the computer's CPU does no work at all.
Standard DMA:
Data enters the card from the network, the NIC's CPU interrupts the computer's CPU which in turn stops all other tasks it may be doing and transfers the network data into the computer's RAM. This method involves a lot of work by the computer's CPU and is therefore quite inefficient.
Programmed I/O:
Data enters the card from the network and is loaded into a motherboard I/O address which is constantly scanned by the computer's CPU for any network data. When data is found it is transferred into the RAM.
Shared memory:
Data enters the card from the network and is stored in the card's RAM with instructions from the card's own CPU the NIC's CPU interrupts the computer's CPU which in turn stops all other tasks it may be doing and transfers the network data into the computer's RAM.