Computer Networking

From David's Wiki
\( \newcommand{\P}[]{\unicode{xB6}} \newcommand{\AA}[]{\unicode{x212B}} \newcommand{\empty}[]{\emptyset} \newcommand{\O}[]{\emptyset} \newcommand{\Alpha}[]{Α} \newcommand{\Beta}[]{Β} \newcommand{\Epsilon}[]{Ε} \newcommand{\Iota}[]{Ι} \newcommand{\Kappa}[]{Κ} \newcommand{\Rho}[]{Ρ} \newcommand{\Tau}[]{Τ} \newcommand{\Zeta}[]{Ζ} \newcommand{\Mu}[]{\unicode{x039C}} \newcommand{\Chi}[]{Χ} \newcommand{\Eta}[]{\unicode{x0397}} \newcommand{\Nu}[]{\unicode{x039D}} \newcommand{\Omicron}[]{\unicode{x039F}} \DeclareMathOperator{\sgn}{sgn} \def\oiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x222F}\,}{\unicode{x222F}}{\unicode{x222F}}{\unicode{x222F}}}\,}\nolimits} \def\oiiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x2230}\,}{\unicode{x2230}}{\unicode{x2230}}{\unicode{x2230}}}\,}\nolimits} \)

Computer networking theory

Reference Models

OSI Model

The OSI model presents the network stack using multiple layers. As a set of abstractions, each layer has their own standards which let it interoperate with layers above and below.

The layers are:

  1. Application layer
  2. Presentation layer
  3. Session layer
  4. Transport layer
  5. Physical layer
  6. Network layer
  7. Data link layer
  8. Physical layer

The physical layer is comprised of the literal copper, fiber, and wireless frequencies used to transport bits, 0s and 1s.
The data link layer focuses on transmitting data frames between directly connected nodes. Medium access control (MAC) and logical link control (LLC) work at this layer.
The network layer allows packets to flow between nodes which are not directly connected. Routing with IPs between networks happens at this layer.
The transport layer focuses on levels of reliability. TCP and UDP are used at this layer.
The session layer focuses on connections.
The presentation layer focuses on standardizing protocols and data representations (e.g. XML).
Finally, the application layer is what highest-level, whatever service is being provided to the user.

TCP/IP

TCP/IP has four layers:

  1. Application layer
  2. Transport layer
  3. Internet layer
  4. Link layer

Link Layer

Hardware

  • Hub - A hub connects multiple devices and will pass around data frames to every single connection. It has no logic and is equivalent to wiring all the cables together.
  • Repeater - A repeater is used to boost signals. It will read the pattern (e.g. voltage representing bits) and repeat it on another wire.
  • Bridge or Switch - A switch connects multiple devices and does routing at this layer using mac addresses.
  • Router - Routers work at the network layer to route packets across different networks (e.g. across VLANS or LAN to WAN).

Network Layer

Routing

Distance Vector

In Distance Vector routing, or Bell-ford Algorithm, each node incrementally builds up it's own routing table to identify the next hop to reach each destination.

Internet

BGP

Physical Layer

There are several protocols at the physical layer such as ethernet, LTE, and DOCSIS.

Multiplexing

Multiplexing is used to send or receive multiple signals along the same wire. Note that, sending and receiving count as two separate signals.

Duplex means that the upstream and downstream are the the same speed. Full duplex (FDX) means the up and down can operate at the same time.

  • Time-division Multiplexing/Duplex (TDD) - if you don't have enough frequencies, you spend some time sending and some time receiving the signal. This is inherently not full duplex.
  • Frequency-division Multiplexing/Duplex (FDD) - with multiple frequencies, you can send and receive at the same time on separate frequencies. If the frequencies are evenly divided, you will have full duplex.
  • Echo Cancellation - by sending and receiving on the same frequencies at the same time, you can get full duplex. This is more complicated than the other options.

Terminology

  • US/DS - Upstream and downstream
  • OOB - out of band, additional signals on a separate frequency or wire