Interactive visualizations for computer networks courses

Self-contained HTML visualizations for teaching computer networks at undergraduate level. Each one is a single file with no dependencies that works offline, in Spanish (ES) and English (EN). Developed for Network Architecture I (Arquitectura de Redes I) at the University of Alcalá.

Source and catalogue on GitHub · License CC BY-SA 4.0 · Enrique de la Hoz, Luis de la Cruz Piris and Sandra Machado Zurita, University of Alcalá

Topic 1: Introduction: delays, layers and packet switching · Introducción: retardos, capas y conmutación de paquetes

Session 1.1

Line coding and bit timeCodificación de línea y tiempo de bit

Encode a frame in NRZ-L, NRZ-I or Manchester and see that every bit occupies the link for a fixed time, 1/R. That is where the transmission delay, L/R, comes from.

Session 1.1

Transmission and propagation delay: space-time diagramRetardos de transmisión y propagación: diagrama espacio-tiempo

Adjust size, rate, distance and propagation speed and follow the packets between sender and receiver. Compare stop-and-wait with pipelining and the sender's utilization.

Session 1.2

Logical vs real communicationComunicación lógica y comunicación real

Every layer believes it talks directly to its peer, but everything actually goes up and down the stack. Walk through service, protocol and interface and find out who reads each header in the frame.

Session 1.3

Queueing and packet drops in a routerColas y descartes en un router

Several sources share one outgoing link. Raise the traffic intensity ρ = λ·L/R and watch the queue grow, the buffer fill up, and the router start dropping packets.

Session 1.3

Delay diagramDiagrama de retardos

Draw frames and ACKs between two ends to scale and decide when each one starts. Read the transmission and propagation delays off the dimension lines and export the diagram as SVG or PNG.

Delay lab · Laboratorio de retardos

Three visualizations for problems P6, P25 to P27 and P28 from Kurose and Ross (lab 1.2). Use prediction mode to anticipate the result before seeing it.

Lab 1.2, problem P6

Anatomy of delayAnatomía del retardo

Transmission versus propagation, where the first and last bit are, the equilibrium point, and a calculator for any problem statement.

Lab 1.2, problems P25 to P27

The pipe and the width of a bitLa tubería y el ancho de un bit

Bandwidth-delay product, bits in flight, the width of a bit, and a comparison between 2 Mbps and 1 Gbps.

Lab 1.2, problem P28

Continuous transmission vs. stop-and-waitEnvío continuo frente a parada y espera

One large message versus 20 acknowledged packets, link utilization, and the cost of the RTT.

Topic 2: Application layer: DNS and HTTP · Capa de aplicación: DNS y HTTP

DNS · DNS

Five animations on why names are needed, their structure, zone delegation and iterative, recursive and mixed queries.

Session 2.1

Anatomy of a name: from labels to the treeAnatomía de un nombre: de las etiquetas al árbol

Break any name into labels and domains and see it in the tree, from the root or from the name. Check the rules, 63 characters, trailing dot, case and punycode.

Session 2.1

DNS zone delegationDelegación de zonas: ceder una rama del árbol

Step by step through the IANA → Red.es → UAH → Department chain, with zone files. In "Delegate it yourself" you create domains and hosts and delegate them yourself, with NS records, glue and referrals.

Session 2.1

DNS queries: iterative and recursiveConsultas DNS: iterativa y recursiva

Message by message, resolving gaia.cs.umass.edu with an empty cache. Compare the two modes and notice who has to remember other people's queries.

Session 2.1

DNS queries: you decide who is recursiveConsultas DNS: decide tú quién es recursivo

The same resolution, but you choose whether the local server, the root, the TLD and the authoritative server work recursively or iteratively. Compare who sends the queries, who has to wait and where the answer ends up cached.

Session 2.2

DNS step by stepDNS paso a paso

The DNS told from the why in 27 steps, from why an IP address is not enough to a query followed message by message. Why we need names, how the tree is split up, what your computer sees and what happens behind it, and where each query is recursive or iterative.

HTTP · HTTP

Session 2.2

Persistent HTTP: without and with pipeliningHTTP persistente: sin y con canalización

A page with N objects downloaded over a single persistent TCP connection. Compare the delay diagrams without and with pipelining on the same time scale, see when the link sits idle and practise with random exercises.

Session 2.3

Browser cache: cache or server?Caché del navegador: ¿caché o servidor?

A page with several objects visited several times. For each object, the browser follows the decision tree: serve it from the cache, revalidate it with a conditional GET (304 or 200) or download it again. Follow the path in the tree, the messages and the cache state, and practise with exercises.

Session 2.3

Cookies: state on top of HTTPCookies: estado por encima de HTTP

Several sites, some of which use cookies, visited several times. For each request the browser looks in its cookie store: if it has a live cookie for that site it sends Cookie; if not, the server may answer with Set-Cookie. Follow the decision, the messages, the store and what each server knows; practise with exercises.

Topic 3: Transport layer · Capa de transporte

Multiplexing and demultiplexing · Multiplexación y demultiplexación

How the host chooses the socket for each segment: UDP by (IP_D, PD), TCP by the 4-tuple (IP_O, PO, IP_D, PD).

Session 3.1

Which socket? UDP and TCP demultiplexing¿A qué socket va? Demultiplexación UDP y TCP

Clients A, B and D send segments to server C, which chooses the socket from the header: UDP only looks at the destination (IP_D, PD); TCP at the four values. Welcome and connection sockets, the reply with swapped ports, ephemeral ports, prediction mode and exercises.

UDP · UDP

The UDP datagram: 8-byte header, maximum sizes, pseudo-header and the one's complement checksum computed step by step.

Session 3.1

UDP checksum step by stepChecksum UDP paso a paso

One's complement sum of 16-bit words, column by column: the carry that leaves on the left wraps around and is added on the right, and at the end the bits are inverted. Check the checksum as the receiver in both ways and flip bits in the channel to see which errors are detected.

Session 3.1

The UDP datagram and its pseudo-headerEl datagrama UDP y su pseudocabecera

The UDP header in 32-bit rows, with an explanation of each field. Change the payload and watch the Length update and where the limits are; build the pseudo-header from the IPv4 header and follow the three levels of addressing: IP, protocol 6/17 and port.