What is a Computer Network?

By now, this should be quite a familiar topic you should have some semblance with. A computer network is a system that interconnects computing devices for data exchange and communication.

Figure 1.1 A network with two clients and one server.

Figure 1.1 A network with two clients and one server.

Inside the "Network" bubble in the diagram, there are various networking components and infrastructure that facilitate communication between the clients and the server. These can include components such as routers and switches — which we will talk about in the following weeks.

Types of Networks

Networks can range from small and personal to large and global. Let's delve into different types of networks and their characteristics. Note that there are more than the ones listed here.

  1. LAN (Local Area Network): LANs are typically small networks within a single location, like a home, office, or campus. They are used for local data sharing and device connectivity.

    Untitled

  2. MAN (Metropolitan Area Network): MANs cover cities or large campuses and bridge the gap between LANs and WANs.

    Untitled

  3. WAN (Wide Area Network): WANs cover larger geographic areas and connect multiple LANs. The internet itself is the largest WAN.

    Untitled

In essence, the Internet is a vast interconnected network, weaving together LANs, MANs, and WANs, creating a global communication infrastructure beyond borders.

Figure 1.2 LAN, MAN, and WAN comparison.

Figure 1.2 LAN, MAN, and WAN comparison.

Fundamental Problems and Solutions

While the concept of interconnecting multiple computing devices in a network may seem straightforward, it brings forth a host of fundamental challenges and complexities.

  1. Reliability: Ensuring that the network can recover from errors, faults, or failures without significant disruptions. A solution would be:

    1. Error Detection and Correction Codes: Identify and correct errors in data.
    2. Routing: Automatically select optimal paths for data to travel, accounting for network conditions and failures.
  2. Resource Allocation: Managing the fair and efficient distribution of resources among multiple users or transmitters who share a common medium or channel. A solution would be:

    1. Ethernet CSMA/CD: Device listens for network activity, and if clear, devices transmit data while monitoring for collisions, stopping and retrying if a collision is detected.

    2. WiFi CSMA/CA: Device listens for an available channel, waits for it to clear, and includes a collision avoidance mechanism using RTS and CTS signals before transmitting data.

      <aside> <img src="/icons/map-pin_gray.svg" alt="/icons/map-pin_gray.svg" width="40px" /> CSMA stands for Carrier Sense Multiple Access:

      • with Collision Detection
      • with Collision Avoidance </aside>
  3. Flow Control: Implementing mechanisms to ensure that transmitting devices do not overwhelm receiving devices with data, maintaining a balanced data flow.

    1. Nodes in Network: Nodes use "Stop-and-wait" at the data link layer, involving sending data and waiting for acknowledgment before proceeding.
    2. Hosts: Implement "Sliding Window" at the transport layer for efficient and continuous data flow management.

This lecture serves as a brief glimpse into the upcoming weeks of our course. We will revisit various network types, including network topologies, and explore new topics like communication protocols such as TCP and UDP in greater detail.