A computer network is a collection of computers or digital devices ("nodes") connected by telecommunications links or other networks. The network allows the computers to share resources, workloads, or data. The communications on the network follow a protocol that determines how data is encoded, how access to the network is handled, and how errors are reported and corrected. These rules of communication are understood by all participants.
The participants in a (computer) network are computers, but in most technical documentation the networked devices are referred to as "devices" or "nodes". Today, computer networks also contain devices such as intelligent sensors or actuators that are very small and specialized computers. The network itself does not always require physical connections between participating devices, due to the availability of wireless communications.
Because of distributed computing and other techniques like AMD's Hypertransport, the distinction between parallel computing systems and computers connected by a network (also called a distributed system) is blurred.
The specific rules for information exchange between network nodes, or protocols, are designed to be consistent with an architectural approach, defined by computer networking reference models. In actual practice, the relatively informal Internet architecture is most common. The OSI (Open Systems Interconnection), produced by the International Organization for Standardization (ISO), is widely taught, but is largely a historical artifact as far as new networking protocol development.
Computers connected to a network can provide services to users which would otherwise be unavailable (or available with less performance) on a stand-alone machine; examples include access to peripherals connected to remote computers (such as printers or sensors), access to the internal resources of a remote computer (such as processing power or file storage), and access to the output of software applications running on remote computers (such as a Web server or database).
The interaction of computers on a network make up the network architecture, which describes the roles and interactions between participating devices. The most commonly used architectures are:
In contrast to an ordinary computer network, where the user is aware of multiple computers, a distributed system is comprised of remotely-connected computers that cooperate to perform tasks that seem transparent to the user, i.e. the user perceives the tasks as being performed by the local computer, rather than multiple computers, without being aware of the assistance of the other computers in the distributed system.
Computer networks and the protocols employed on them are judged based on different features they provide to the applications. In general the following kinds of such attributes can be distinguished:
Other attributes not explained here in detail are the security measures of networks and their protocols and their scalability with a growing number of participants.
Computer networks can be classified according to various criteria based on different characteristics.
The most prominent distinction is between wired networks and wireless ones. Wired networks use either electrical or optical signals which are transmitted via any kind of cable. The most well known example for this is Ethernet. Wireless networks typically uses electro-magnetic radio waves transmitted 'through the air' but also schemes using infra-red, sound, or directed laser-light. The standard example for a wireless computer network is IEEE 802.11 commonly often called Wi-Fi.
As the cable of wired approaches provides a well-confined environment for transmission, wired networks typically perform better in all the attributes mentioned above. The advantage of wireless networks therefore consists in their much lower dependency on infrastructure which makes their deployment cheaper and their usage less restricted.
The wired versus wireless classification is not restricted to computer networks. As demonstrated by fixed-line and mobile phones it exists with any communication network.
Computer networks are often named according to the protocols they use. Protocols define the way individual computers on the network must interact to communicate. This of course needs to be standardized so the participants understand each other. Protocols must handle issues from how the data is encoded in electrical signals, over how transmission errors are found, how the data finds its 'way' through the network, and how an application can determine whom it wants to talk to to how is the data encrypted against eavesdropping. These issues have been divided into layers in the so called Open Systems Interconnection Reference Model. This model defines a stack of communication services where each layer uses the services of the next lower one. Different protocols address different layers in the stack. The Internet for example is based on various physical layers which serve the IP layer responsible for routing data through the network, which in turn serves the TCP layer that provides the abstraction for the applications, which in turn again use protocols such as HTTP.
Among the most often used protocols are low-level protocols such as Ethernet, Token-Ring, ATM, CAN and FlexRay in the wired arena and IEEE 802.11, Bluetooth and ZigBee for wireless communication, with the latter two also defining higher level services. Higher-level communication protocols encompass among others IP, TCP and UDP from the TCP/IP world as well as e.g. NetBEUI or iSCSI. Further up in the area of application-layer protocols an overwhelming multitude exists with HTTP, SMTP, IRC and FTP just naming a few.
For most of the attributes of the network the lower-level protocols play the major role although some attributes, for example scalability and reliability in the face of partial network failure, build on services provided by the network or transport layer.
There is still another way to classify networks: the area they are designed to cover. This starts small from one person's body and ends with the whole world.
This list has been extended several times in the past following the progress of technology (mainly in the direction of smaller networks) so expect new types to be introduced once nanotechnology or space exploration progresses further.
Sometimes the application area of a network is used to coin a phrase for it, especially if the application imposes special requirements on the network. Thus there are In-home digitial networks (IHDN) for transmission of streaming data within the home, In-vehicular networks (IVN) for real-time control of electronic devices within the car and Fieldbuses for real-time digital communication in industrial applications such as plants.
As applications and technology progresses, computer networks face new challenges of which a few are listed here.
What is called 'the scarcity of the spectrum' - the problem that the available bandwidth for wireless transmission is limited if transmissions interfere with each other - has triggered several developments to circumvent this interference. The prominent developments are Ultra-wideband (UWB) which sends a very low power signal in a large 'band' (=part) of the spectrum and other spread-spectrum technologies. Also directed transmission and reception using e.g. multiple antennas helps to avoid interference by others.
The growing mobility of devices causes problems for protocols not designed with that mobility in mind such as TCP/IP. This has lead to proposals how devices can switch their connection point to the network without changing the identification they are known by (e.g. Mobile IP). The mobility problem is further worsened with short range radio technology such as Bluetooth or Wi-Fi where devices often form networks with their changing neighbours using mobile ad hoc networking (MANET) technology.
Also network security becomes a topic again if the network must resist attacks which employ individual devices stolen from the network, a scenario not impossible for wireless sensor networks.