Taking notes on Networking Part-1

Leonidas Boutsikaris
7 min readMar 27, 2020
Photograph by Timo Volz

What is a computer network?

A set of two or more computers that are connected between them with one or more physical means.

Every computer is called a node, a node of the network can be any kind of computer or a terminal. Every node is defined by at least one alphanumerical value that is called an address.

A physical mean is called a link, channel or couple. For example, optical fibers or coaxial cables.

The nodes and links make up the resources of the entire network.

Point-to-point and Full Mesh

The simplest way to connect is a direct link between two nodes. Now if we have N nodes and want to connect everyone with everyone we will need a number of N*(N-1)/2 connections. This network is called a full mesh network.

Networking challenges

What is scalability?

The ability of a network that gets bigger but remains efficient and cost-effective.

Full mesh networking is not appropriate for big scale networks. This is the result of financial, technological and physical constrains. Connecting N*(N-1)/2 nodes is not an easy task. This number gets bigger as the network grows and physical links are expensive. The cost of the links is increasing non linearly in respect of its length. For example Km of optical fiber. In addition every computer would have to deal with a big load caused of all the links.

For a much more efficient network we need to constrain the number and length of the links and also use some of the nodes only for interfaces. Eventually we need to jointly share system resources(links and nodes) and have indirect connectivity with the help of partner nodes.

Direct link networks

Basic idea: connect while using only one shared link.

Every node will try to access the shared link. This node will be the only node that will use the link. When the node gets access it gets the ability to communicate with another node directly with a simple information transmission. This communication is called a one hop. These networks are called direct link networks, multiple access networks or transmission networks.

There are different kinds of direct link networks. In respect to the physical link (coaxial cable, fiber, wireless) or how the nodes are connected, the topology of the network(bus topology, ring topology, etc).

Direct link networks are simple to make but the number of nodes that can be connected is limited due to technological and physical constrains. The bigger the number of nodes the slower the network becomes. In addition we have signal reduction as distance get bigger and an increase in signal propagation delay.

Direct link networks do not cover all of our networking needs.

The network switch

The basic idea of switches lay in the shared system resources. The node that offers the networking services is called a switch and the node of a user is called a host. Hosts do not communicate directly with themselves. The switch receives the information from the sender and transfers it to the receiver.

A switch offers networking to a limited number of hosts. A lot of switches can be connected together to support a bigger number of hosts. This results to the switch network. The communication of the hosts is achieved with more than one hops(multihop communication). In other words switches transfer information from link to link.

In a switch network the switches and the links that connect them are shared resources and form the backbone network.

The Internet

Switch and Direct networks can be connected with switches to implement an internet. This is important because we need to connect heterogeneous networks together, reach a bigger number of hosts and connect in different geographical areas.

There is a direct connection of the technical side of a network in respect of the geographical area it covers.

We can categorise networks as Local Area Networks(LAN) if we refer to direct link networks that are no lengthier than 100m. Metropolitan Area Networks(MAN) that more commonly are switch networks spreading through entire cities. Wide Area Networks(WAN) that are switch networks and internets with world-wide coverage.

What is a computer network again?

A set of two or more computers or networks that are connected between them with one or more physical means and routers/switches.

Network tradeoff

Networking techniques allow us under certain conditions to implement big scale networks without a full mesh topology. In return we have to design and implement a process with increased complexity. For example we must have rules for sharing the network resources and the network should operate in a distributed way.

Design of a network

Networking services must be provided for a big number of computers while remaining cost-efficient. In addition a network must provide services like p2p file sharing and support new types of wireless networking.

We can reduce the design complexity by analysing all the individual mechanisms of a network. A.k.a. abstractions.

Every abstraction should be independent of the other, hiding the implementation details of its mechanism and determine the services the mechanism is offering.

In telecommunications the relations of individual mechanisms leads in the layering of abstractions. Every layer is called a level. The number of layers is defined from the architect of the network. Layering reduces the design complexity and gives flexibility in design changes. On the other hand the design might not be optimized for the efficiency of the network and in some cases it is impossible to achieve independence between the layers.

And what about network protocols? what is a protocol?

All the rules that implement one or more mechanisms of a network level and provide a communication service.

Every protocol defines a service interface. This interface contains all the communication services that the upper levels can use. Also protocols define a peer interface. This interface is about the structure of the messages that two same protocols exchange in different computers.

Every level can have more than one protocols(TCP, UDP) and the connections between the protocols can be represented with a protocol graph.

The network architecture is defined as all the rules that configure the structure and content of a protocol graph.

Encapsulation

In a switch network applications create data in sections that called messages. Every protocol inserts a header in the message. The header contains information on how this message will be handled by the same protocol in the other computer. In some cases this information is inserted in the end of the message and called a trailer. This process is called encapsulation. The section of the information that a protocol receives is called a payload.

The payload contains information that the protocol cannot understand

In the destination computer every level reads the header of the corresponding header and forwards the payload to the upper level protocol.

Generally network data is called

  1. Message at the application level
  2. Packet at the network level
  3. Frame at the link level

Multiplexing and demultiplexing

A protocol can provide services in more than one upper level protocols. For example the IP protocol forwards messages that are coming from TCP or UDP. A protocol must also forward every message that is coming from the upper level. This process is called multiplexing.

The header contains an id that is called the demultiplexing key. This id defines from which protocol the data came. In the receiver node the corresponding protocol uses the demultiplexing key to deliver the message to the right protocol. For example the IP uses this key to deliver the message to the UDP or the TCP protocol.

The OSI model

Open Systems Interconnection

The OSI model is defined by 7 levels. This is just a specification and not a network architecture.

From the lower to the highest level the OSI model contains these levels of abstraction:

  1. The Physical layer. Manages the transport of the information through a physical mean and describes the physical mean that is being used.
  2. The Data Link layer. Defined the rules and how the shared resources will be used. Also implements the technical details for a reliable information transmission.
  3. The Network layer. Describes the transmission and the routing of the information but also the mechanisms that routers use.

The three lower levels are implemented in every node of the network, hosts and switches/routers. The other levels are only implemented in hosts.

4. The Transport layer. Describes the reliable transportation from process to process and provides an interface so that applications can connect with the network.

5. The Application layer. Contains protocols for implementing internet apps like smtp, ftp, http etc.

6. The Presentation layer. Describes how the data are formatted so that there is no problem with different operating systems.

7. The Session layer. Describes the rules for establishing a connection and synchronize between processes.

The TCP/IP

This is the technique that the Internet uses and is described with 4 levels.

The Application level that contains all the internet apps that are essential. FTP, SSH, SMTP etc.

The Transportation level that describes the communication between the network. The most important protocols here are the TCP(Transmission Control Protocol) and UDP(User Datagram Protocol).

The Internet level that describes the basic operations like routing. (IP)

And finally the connection of computer-network level that describes the technologies that connect computers to the network. For example Ethernet or wireless.

The Building Blocks

Information is transmitted through a channel as a digital signal. A digital signal is a signal that can only get discrete values. A lot of information sources on our computers create analog signal. For example recording your own voice. Analog signals can have continuous values. Analog signals can be transmitted through a channel but it is better to digitise them first. Why? Noise happens.

The analog signal can be easily altered through channel noise. Various reasons for that, for example the weather! Digital signal are resistant to noise because the get discrete values and can be reconstructed. Even with a digital signal the reconstruction is limited and depends on the levels of power and noise of the signal. Digital signals allow the information to travel in a greater distance with transmitters boosting its signal and isolating noise and gives us privacy by encrypting the signal.

The encryption techniques can differ in the number V of the discrete values (or symbols) a signal can have or in the duration of the values Ts that define the baud rate.

A signal with V symbols and a baud speed of 1/Ts symbols per second can carry information with a rate of logV / Ts bits per second.

--

--

Leonidas Boutsikaris

Software Engineer, writing code and blogging about it. Found something interesting? Buy me a coffee! https://ko-fi.com/leobouts