\( \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} \)

Notes on computer networking

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. Physical layer
  2. Data link layer
  3. Network layer
  4. Physical layer
  5. Transport layer
  6. Session layer
  7. Presentation layer
  8. Application 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. Link layer
  2. Internet layer
  3. Transport layer
  4. Application layer

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