Back to ACN index
Goal of the lecture: what happens behind the scenes when accessing a webpage, such as https://google.com/.
-
DNS resolution
-
Instead of DNS, there used to be a centrally managed /etc/hosts file
-
Of course not scalable, also not hierarchical - anyone could register any name
-
DNS is a distributed database, works by the principe of zone delegation (root -> party. -> segfault.party.)
-
Once we have a destination IP:
-
Establish a connection, via the Berkeley "socket API"
-
OS wraps data in TCP segment, IP packet, Ethernet/802.11 frame
-
Link layer responsibilities:
-
Framing
-
Data-based or clock-based
-
Error detection (for performance; see also End-to-end argument#Examples). Different ways:
-
Parity checks (single bit, two-dimensional)
-
Checksumming (RFC 1071; used in TCP/UDP and IP)
-
Cyclic Redundancy Checks (used in Ethernet)
-
Medium access control
-
How to connect >2 computers?
-
Fully connected graph: obviously not scalable, (n choose 2) links
-
Shared medium/bus: problem is frame collision
-
Can be corrected (using, e.g. ECC or retransmissions)
-
We can use coordination methods that can reduce frame collisions
-
CSMA/CD, CDMA, etc.
-
Hub: broadcast frames on all links
-
Switch: send frame only on link to destination
-
Port ↔ Destination MAC address mapping (forwarding table)
-
Forwarding table can be generated automatically
-
Incoming frame on port x contains source MAC y → y is on port x
-
Entry is deleted after some time, and updated.
-
Store-and-forward vs. cut-through designs
-
Store-and-forward: buffer with frames
-
Cut-through: frames get sent right away after frame header is received
-
No error-checking possible
-
Network layer: routing
-
Routers are divided into two planes:
-
Control plane - software, manages forwarding tables
-
Data plane - hardware, uses forwarding tables to forward packets from link to link
-
How to make forwarding fast? As networks get into many-gigabit speeds, hash lookups or binary search gets too slow
-
TCAM -- Ternary Content-Addressable Memory; hardware mapping of IP address to forwarding table address
-
.
-
Ternary because the memory can contain wildcards, i.e. 192.168.xxx.xxx
-
Output port considerations:
-
Queue size
-
What happens when queues fill up?
-
Which packet should be sent first (scheduling)