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:
- Client-server: In this architecture, one computer is designated the server and the other, the client. The client requests services from the server and the server responds by providing the requested service results to the client computer. During a networked transaction, a single computer can be either a client or a server depending on its role during that transaction; the roles of client and server are not fixed.
A variation of client-server architecture is multi-tier architecture (also called n-tier architecture) in which more than one server is used to provide a requested service. The servers in a multi-tier architecture are grouped into conceptualized layers of functionality.
Examples of the client-server architecture include the World Wide Web, network file systems and commercial database applications such as Web-based booking services. (See also thin-client architecture).
- Peer-to-peer: In a peer-to-peer network, all computers provide the same basic services to each other and are denoted “peers”. The most recognized examples are peer-to-peer file sharing services such as Bearshare, Limewire, and former services like Napster, and Kazaa. Voice over IP (VoIP) may also be peer-to-peer although many implementations consist of mixed architectures, using servers to establish call connections.
- Mobile code architecture: Participants in this architecture not only send data over the network to remote computers, but also software code to process the data. A common goal of this architecture is to avoid overloading the network by deferring work to the client. Examples of this are mobile software agents, Java Applets and Web 2.0 applications.
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.
Attributes of computer networks
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:
- Performance: How 'quick' is data transmitted over the network. This is often measured in bandwidth and latency. Bandwidth is the amount of data which can be transmitted within a certain time period (typically bits/second). Latency is the amount of time it takes from transmitting a datum to its arrival at its destination. Depending on whether an application transmits its data in larger or smaller chunks, bandwidth and latency have different importance.
- Reliability: How 'undisturbed' is the data transmitted over the network. The main measure for this is the bit error rate which describes the number of bits that arrive flipped at the receiver in relation to the total amount sent. A somewhat more subtle disturbance is measured with “jitter”. Jitter is the variation in latency of the network and poses a problem to streaming applications such as VoIP as these require the client to receive data periodically. Note that the effects of more drastic failures such as loss of complete nodes or connections are typically not included in those measures although dynamically routing networks can cope with them.
- Quality of service: How 'guaranteed' are the above attributes. Often the measures defined above are given as an average value. But certain, time-critical applications have fixed requirements concerning e.g. the amount of data they need to transmit or the maximum delay allowed. The best effort approach included in many network protocols is insufficient for this and thus certain protocols are able to provide guarantees which are summarized as Quality of Service (QoS).
- Network topology: What do the overall connections in the network look like. This refers both in a physical and a logical sense to how the network is "laid out." A "bus network" is hooked together like stops on a Public Bus route, one after the other. A "ring network" is literally in the shape of a ring; devices reach each other by passing data around in a ring. There are several different network topologies, and this list is by no means exhaustive.
Computer networks can be classified according to various criteria based on different characteristics.
Wired versus wireless
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.
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 OSI 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.
- BAN: Body Area Network is a fairly new term applied to communication between devices carried by a person on his body, e.g. communication from a mobile phone in a pocket to the headset. Since all communicating devices are attached or near to the body, principles like capacitive coupling can be applied.
- PAN: Personal Area Networks connect devices at or near to a person with each other. Examples are the connection from medical sensors to bed-side monitors or the connection from a mp3-player carried in a pocket to the car radio.
- LAN: Local Area Networks typically extend throughout a building and consist of one or few subnetworks. The primary example here is the connection of computers and peripheral devices like printers or PVRs in an office or home.
- MAN: Metropolitan Area Networks are designed to cover the whole area of a city for example by connecting individual LANs by ATM or microwave radio but are nowadays seldom heard of . The combination of several networking techniques to aggregate and connect citizens via DSL to the internet could also be seen as a MAN.
- WAN: Wide Area Networks connect devices with a significant distance and where transmission often requires several hops through routers. The primary example here is of course the Internet.
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.