Computer network

A **computer network** is a group of two or more computers that are linked together. Networks are usually used to share resources, to exchange files, or to communicate with others.

A network is a set of nodes connected by communication links.  A node can be a computer, printer, or any other device capable of sending or receiving data from or to the other node in the network.

Other devices are often needed for the network to work correctly.  These include hubs and switches.  Different kinds of network can be connected to each other with a router.  In general, networks that use cables to connect can operate at higher speeds than those using wireless technology.

Computers in a network can be near each other, or far. A Local Area Network (LAN) connects computers which are close together.  Building a LAN is easier than connecting different networks (by a Wide Area Network).  The largest Wide Area Network is the Internet.

Computers can be part of several different networks. Networks can also be parts of bigger networks. The _local area network_ in a small business is usually connected to the _corporate network_ of the larger company.  These connections may allow access to the _Internet_.  For example, a shop may use it to show merchandise on its Web site through a web server, or to convert received orders into shipping instructions.

A network must be connected with appropriate hardware. This can be wired or wireless. For a simple LAN, computers, media and peripherals are sufficient. WANs (wide area networks) and some large LANs (local area networks) need some additional devices like a bridge, gateway or router to connect different small or large networks.

A network needs a communication protocol (a system for exchanging messages between computing systems.) Microsoft Windows, Linux and most other operating systems use TCP/IP. Apple Macintosh computers used Appletalk in the 20th century, but use TCP/IP now.

## Network models

One large network of communication technology would be difficult to implement. As a result, we split up various components of the network into smaller modules or layers. The standard model of a network is the Open Systems Interconnection (OSI) model set by the International Organization Standard (ISO).

Other network models exist, though they are all split into similar layers. Each layer uses the services that the layer below provides, while providing services for the layer above it. Each layer can only communicate with the same layer on the destination device.

## OSI model

OSI (Open Systems Interconnection) is a 7-layer network model specified by ISO (International Organization for Standardization) norm and is widely used all around the world. The concept of a seven-layer model was provided by the work  of Charles Bachman, Honeywell information Services. Various aspects of OSI design evolved from experiences with the ARPANET, NPLNET, EIN and CYCLADES networks and the work in IFIP WG6.1.
|style="background:#C0C0C0;"|**Data unit**|style="background:#C0C0C0;"|**Layer**|style="background:#C0C0C0;"|**Function**|
| --- | --- | --- | --- | --- | --- |
|style="background:#d8ec9b;" rowspan="3"|Data|style="background:#d8ec9b;"|Application|style="background:#d8ec9c;"|<small>Network process to application</small>|
|style="background:#d8ec9b;"|Presentation|style="background:#d8ec9b;"|<small>Encryption, decryption and data converting</small>|||
|style="background:#d8ec9b;"|Session|style="background:#d8ec9b;"|<small>Managing sessions between applications</small>|||
|style="background:#D8EC78;"|Segments|style="background:#D8EC78;"|Transport|style="background:#D8EC78;"|<small>End-to-end connection and reliability</small>|
|style="background:#D8EC61;"|Packets (datagrams)|style="background:#D8EC61;"|Network|style="background:#D8EC61;"|<small>Path determination and logical addressing</small>|
|style="background:#D8EC4A;"|Frame|style="background:#D8EC4A;"|Data link|style="background:#D8EC4A;"|<small>Physical addressing</small>|
|style="background:#D8EC27;"|Bit|style="background:#D8EC27;"|Physical|style="background:#D8EC27;"|<small>Signal and binary transmission</small>|

### Layer 1

The physical layer defines electrical and physical specifications for devices. It also specifies modulated and baseband transmission.

#### Baseband

Baseband is digital data in their raw form (in binary, the language understood by the computer in the form of 0s and 1s - 1001 1101 1010 0011).  This allows very fast and reliable transmission over short distances; however, the media tend to make the bits interfere with each other, the range of baseband transmission is very limited.  It becomes worse with increasing speed.  Baseband technology is frequently used on LAN.
- UTP cable – max 100 m on 100 Mbit/s speed without repeater
- Optical fiber – max 1 km on 100 Mbit/s speed without repeater
Typical technology: Ethernet cables

#### Modulated transmission

In telecommunications, modulation is the process of conveying a message signal, for example a digital bit stream or an analog audio signal, inside another signal that can be physically transmitted. The device that provides modulation of the baseband signal is called a modulator, and the device that provides demodulation of the modulated signal back to baseband is called a demodulator. Today, the modulator and demodulator are integrated into one device called **Modem** (**mod**ulator-**dem**odulator). Frequently used on WAN, WLAN, WWAN.

Typical technology: WI-FI, ADSL, cable TV connection (CATV)

### Layer 2

The data link layer provides the functional and procedural means to transfer data between network entities and to detect and possibly correct errors that may occur in the physical layer.

### Layer 3

The network layer provides the functional and procedural means of transferring variable length data sequences from a source host on one network to a destination host on a different network using the IP address.

#### IP address

An Internet Protocol address (IP address) is a numerical label assigned to each device (e.g., computer, printer) participating in a computer network that uses the Internet Protocol for communication. At present there are two versions of protocols in use – IPv4 and IPv6.
- **IPv4** uses 32-bit addressing which limits address space up to 4294967296 (2<sup>32</sup>) possible unique addresses.
- Example: IP-192.168.0.1 mask-255.255.255.0 means that the network address is 192.168.0.0 and the device address is 192.168.0.1
- **IPv6** uses 128-bit addressing which limits address space up to 2<sup>128</sup> possible addresses. It is deemed sufficient for the foreseeable future. Full IPv6 support is still in the implementation phase.

### Layer 4

The transport layer provides transparent transfer of data between end users, providing reliable data transfer services to the upper layers. The Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) of the Internet Protocol Suite are commonly categorized as layer-4 protocols within OSI.
- **TCP** (transmission control protocol) provides reliable, ordered delivery of a stream of bytes from a program on one computer to another program on another computer. TCP is used for applications that strictly require reliable transfer (e-mail, WWW, file transfer (FTP), ...)
- **UDP** (user datagram protocol) uses a simple transmission model without implicit handshaking dialogues for providing reliability, ordering, or data integrity. UDP is used in applications where we require reduced latency over reliability (stream videos, VOIP, online games,...)

### Layers 5-7

Commonly united into one layer in simplified network models, its main purpose is to interact with applications, encrypting and establishing dedicated connections if necessary.

### Latency

Latency, incorrectly called ping, is a value that measures how much time packets need to travel to their destination. It is measured in milliseconds (ms). The tool that measures latency is called ping, commonly using special ICMP packets which are smaller than standard data packets so they do not weight the network by their presence.
- **Immediate latency** is measured every X seconds and immediately displayed. Its value constantly changes due to the natural properties of packet-switching network technology. High latency peaks have negative effects on most network applications which can adapt to average latency by allocating corresponding size of memory as buffer. High latency peaks lead to emptying of this buffer and to temporary freezing of applications. This freezing is commonly called **lag**.
- **Average latency** is the sum of immediate latency measured Y times every X seconds divided by Y. Average latency is used to estimate size of the buffer, mainly because it does not change so often. Buffer enables some applications such as stream videos to run smoothly even with high average latency, but it cannot protect us from high latency peaks.

### Capacity (bandwidth)

Capacity is a measure of transfer capacity of a network and is measured in bits per second (bit/s or b/s), today commonly Mbit/s or Mb/s. It shows us how many data units are transferred each second. At present, the average bandwidth is far higher than is necessary and it is not a limiting factor in most cases.
- **Uplink** is how much bandwidth is used for transferring data from user to server (usually lower for end users).
- **Downlink** is how much bandwidth is used for transferring data from server to user (usually higher for end users).

### Broadcast

**Broadcast** is a special transmission that is not meant for a single device but is addressed to all devices in specific network. It is mostly used to automatically issue IP addresses to devices by a DHCP server and to create an ARP table that maps the network and speeds up the traffic.