CS168 Final Cheat Sheet (English)

Lec 1–26 · full-course quick reference ← Back to Final Review δΈ­ζ–‡η‰ˆ

⭐ Quick Concept Checks (Potpourri / True-False / MC rapid-fire facts · whole course)

Q1 every year is a pile of independent short concept questions (true/false, multiple choice). These are pure recall — no derivation needed. Table below: claim → verdict → one-line reason. The Final is comprehensive: the first half (Lec 1–14) is tested as-is; the second half (DNS/HTTP/L2/DC/SDN/wireless…) is the new focus. Sweep this whole table before the exam.
Claim / QuestionAnswerWhy
Architecture · Layering · Switching (midterm scope)
Which protocol is the "narrow waist"? (WiFi/BGP/HTTP/TCP/IP)IPThe hourglass waist = the IP layer; everyone on the Internet must speak IP. TCP/HTTP above and link layers below are all replaceable — only IP is not.
What does layering directly provide? (Reliability / Modularity / Transfer Speed / Abstraction / Addressing)Modularity + AbstractionLayering gives modularity + abstraction. Reliability and addressing must be implemented inside some layer; transfer speed can actually get worse due to overhead.
End-to-End principle: the network (routers) must implement reliability to guarantee reliable delivery.FalseE2E: the end hosts alone are sufficient for reliability; routers may help but aren't required. Correctness of reliability ultimately rests on the two ends (TCP).
Core advantage of packet switching over circuit switching?Stat. muxingStatistical multiplexing: no reservations needed, efficient under bursty traffic. Cost: queueing delay, no bandwidth guarantee. Circuit is the opposite: guaranteed bandwidth but low utilization.
The IP layer provides reliable, in-order, guaranteed delivery.FalseIP is best-effort: packets may be dropped/reordered/duplicated; connectionless. Reliability is left to TCP.
Higher bandwidth reduces propagation delay.Falsepropagation = distance/speed of light — independent of bandwidth. Bandwidth only affects transmission delay (= size/bandwidth).
Performance · Addressing · Forwarding (midterm scope)
A store-and-forward router must receive the entire packet before forwarding it.TrueSo an N-hop end-to-end path accumulates one transmission delay per hop. Queueing delay is not fixed — it explodes with load.
How many addresses does a /n prefix contain?2^(32−n)E.g. /24 → 256, /25 → 128, /32 → 1 (single host).
The result of Longest Prefix Match depends on the order of entries in the forwarding table.FalseLPM only looks at the "longest matching prefix," regardless of entry order. Longer prefix = more specific = wins; default route = 0.0.0.0/0.
Any two prefixes can be aggregated into one.FalseOnly two adjacent and aligned /n prefixes can merge into one /(n−1) (otherwise you'd cover addresses you shouldn't).
IP Header · Fragmentation · Traceroute (midterm scope)
What is TTL for? What happens when it hits 0?Loop prevention−1 per hop; at 0 → drop + send back ICMP Time Exceeded. traceroute relies on this (probe hop by hop with TTL=1,2,3…; * = that hop doesn't reply).
The IP header checksum must be recomputed at every hop.TrueBecause TTL changes every hop; and the checksum covers only the header, not the data.
After fragmentation, routers along the path reassemble.FalseOnly the destination host reassembles. Offset is in units of 8 bytes; MF=1 means more fragments follow.
IPv6 routers can fragment packets.FalseIPv6 routers never fragment (the source handles it / PMTUD); IPv6 dropped the header checksum and has a fixed 40B header.
Intra-domain Routing DV / LS (midterm scope)
Link-State requires every node to know the entire network topology.TrueLS: flood link info network-wide → run Dijkstra locally. DV only exchanges distance vectors with neighbors.
count-to-infinity is a Link-State problem.FalseIt's a Distance-Vector problem (distances slowly climb after a link failure). LS has a global view and doesn't suffer it.
poison reverse / split horizon eliminate all routing loops.FalseThey only fix 2-node loops; loops of ≥3 nodes can still count to infinity. Hence the INFINITY cap (=16).
DV converges faster than LS.FalseDV converges slowly (hop-by-hop propagation); LS converges fast but flooding is expensive and needs more memory/compute.
BGP · Inter-domain (midterm scope)
BGP route-preference order?C>Pe>Prcustomer > peer > provider (customer routes earn money, peer is free, provider costs money).
A route learned from a peer/provider — should it be advertised to another peer or provider?NoExport rule: learned from a customer → tell everyone; learned from a peer/provider → tell only your customers. Only forward traffic that makes you money.
BGP always picks the path with the shortest AS-path.FalsePolicy / LocalPref (business relationships) comes first, then AS-path length. Money beats short paths.
How does BGP prevent loops?AS-pathpath-vector: advertisements carry the full AS-path; if you see your own AS in it, discard. valley-free: uphill → ≤1 peer flat edge → downhill.
TCP · Congestion Control (midterm scope)
Do SYN and FIN each consume a sequence number?1 eachDon't forget when computing seq/ack: SYN takes 1 sequence number, FIN takes 1 too. ISN is random.
What does the ACK number mean?Next expected byteack = last contiguously received byte + 1. Cumulative ACK: a missing middle segment freezes the ack → duplicate acks → 3 dups trigger fast retransmit.
UDP provides reliable, in-order delivery.FalseUDP is connectionless, unreliable, unordered; it only adds ports + a checksum. Want reliability? Build it in the application layer.
"Slow start" is slow, linear growth.FalseThe name lies: slow start is exponential growth (doubles every RTT). Linear is congestion avoidance (AIMD, +1 per RTT).
Are timeout and 3-dup-ACK handled the same way?NoTimeout: ssthresh=cwnd/2, cwnd=1, back to slow start. 3 dup ACKs: ssthresh=cwnd/2, cwnd=cwnd/2, stay in CA.
What is the actual send window?min(cwnd,rwnd)Take the min of congestion window cwnd (protects the network) and receive window rwnd (protects the receiver). AIMD converges to fairness, but flows with smaller RTT grab more.
πŸ†• DNS
DNS query order: root → TLD → authoritative.TrueHierarchical delegation: root knows the TLD servers (.com etc.); TLD knows each domain's authoritative server; authoritative gives the final answer.
In a recursive query, the root server queries the TLD server on the resolver's behalf.Falseroot/TLD typically only do iterative service: they return a referral ("go ask that one"). The one doing recursion is the local resolver (it walks the whole chain for the client).
Resolver-cached records can be used forever.FalseEvery record carries a TTL; once expired it must be re-queried. Short TTL → fast updates but more queries; long TTL → less traffic but changes propagate slowly.
A CNAME record maps a domain name to an IP address.FalseCNAME = alias → another domain name. Mapping to an IP is A (IPv4) / AAAA (IPv6). NS points to name servers, MX to mail servers.
What are glue records for?Break circular depsIf example.com's NS is ns.example.com, resolving the NS requires resolving its IP first → infinite loop. The parent zone (TLD) attaches that NS's A record (glue) to break the cycle.
πŸ†• HTTP · CDN
HTTP GET and POST have the same semantics.FalseGET fetches a resource (idempotent, cacheable); POST submits data (not idempotent). Also HEAD (headers only), PUT, DELETE.
What do status codes 301 and 404 mean?Redirect / not found2xx success (200 OK), 3xx redirect (301 moved permanently, 304 Not Modified), 4xx client error (404), 5xx server error (500).
Benefit of persistent connections?Save handshakesReuse one TCP connection for multiple requests, skipping per-request handshake + slow start. Pipelining saves more: fire multiple requests without waiting for replies (but suffers head-of-line blocking).
Which header implements conditional GET?If-Modified-SinceClient sends If-Modified-Since / If-None-Match(ETag); if unchanged, server replies 304 Not Modified (no body), saving bandwidth. Cache freshness is governed by Cache-Control: max-age / Expires.
HTTP itself is stateful and can remember users.FalseHTTP is stateless. State comes from cookies: server sends Set-Cookie, and the client automatically attaches it to every later request.
How does a CDN steer users to the nearest edge server?DNS redirectionThe CDN controls the domain's authoritative DNS and returns the IP of a nearby edge server based on the user's (resolver's) location/load. Edges cache content: hit → serve directly, miss → fetch from origin. Benefits: low latency, less backbone bandwidth, absorbs hot spots.
πŸ†• Ethernet · Switching · STP
MAC addresses are hierarchical (aggregatable) like IP addresses.FalseMAC is a 48-bit flat address (burned into the NIC, globally unique), not aggregatable; IP is hierarchical, assigned by topology. Hence L2 uses learning tables, L3 uses prefixes.
How does a switch learn the "MAC → port" mapping?Source addressesLearning: on receiving a frame, record (source MAC → ingress port). Look up the destination MAC: hit → forward out one port; miss/broadcast → flood (all ports except ingress). Entries time out.
What happens to broadcast frames when an L2 network has a loop?Loop foreverEthernet frames have no TTL → broadcast storm, learning-table thrashing. That's why STP prunes the physical loop into a logical tree.
Who does STP elect as root? What about non-tree ports?Lowest IDroot = the bridge with the lowest ID; each switch picks its best path by (distance to root, neighbor ID…); non-tree ports are blocked (no data forwarding, but they still listen to BPDUs). Link failure triggers automatic recomputation.
πŸ†• ARP · DHCP · NAT · TLS
ARP resolves what to what?IP→MACWithin a subnet: broadcast "who has IP x.x.x.x?" → target host replies with its MAC by unicast. Result goes into the ARP cache (with a timeout). Leaving the subnet, you ARP for the gateway's (default gateway) MAC.
Order of the four DHCP steps (DORA)?D-O-R-ADiscover (client broadcasts to find servers) → Offer (server offers an IP) → Request (client broadcasts its choice) → Ack (confirmation + lease). Also delivered: subnet mask, gateway, DNS server. Lease must be renewed on expiry.
What's the key of the NAT translation table?5-tuple/portOutbound: rewrite (private IP:port) → (public IP:new port) and record the mapping; inbound replies are reverse-looked-up and rewritten back. Many hosts share one public IP, distinguished by port. Side effect: outsiders can't initiate connections in (needs port mapping/hole punching); breaks E2E.
What is a certificate for in TLS?Prove identityA certificate = a "domain ↔ public key" binding signed by a CA's private key. The client verifies the signature with its built-in CA public key → trusts the server's public key → prevents man-in-the-middle. Trust chain: root CA → intermediate CA → site certificate.
After the TLS handshake, all data is encrypted with the public key.FalseAsymmetric (public-key) crypto is used only for the handshake/key exchange (e.g. Diffie-Hellman; verify the cert, negotiate a symmetric session key); data afterwards uses symmetric encryption (much faster). TLS provides: confidentiality + integrity + server authentication.
πŸ†• Datacenters
What does east-west traffic mean in a datacenter?Server-to-servereast-west = server↔server inside the DC (the majority); north-south = DC ↔ external users. Heavy internal traffic → needs big bisection bandwidth.
Why use Clos / fat-tree instead of one big switch?Small parts, big netBuild a large-scale, multipath, horizontally scalable topology from many cheap small-port switches; one giant switch is expensive and a single point of failure.
What does full bisection bandwidth imply?Non-blockingCut the network in half: cross-cut bandwidth ≥ half the hosts at full rate → any host pairing can communicate at full speed simultaneously. Oversubscription = downlink capacity : uplink capacity (e.g. 4:1 means uplink is only 1/4).
What does ECMP split traffic on?Flow hashEqual-Cost Multi-Path: hash the 5-tuple to pick one equal-cost path → one flow stays on one path (in-order), different flows spread out. Downside: elephant flows can collide (uneven hashing).
πŸ†• SDN · Host Networking
The core idea of SDN?Split control/dataSeparate the control plane (route computation, logically centralized in a controller) from the data plane (forwarding, kept in switches). The controller has a global view and pushes rules to switches; traditional networks run distributed protocols on every box.
What do SDN switch forwarding rules look like?match-actionmatch (on header fields, wildcards allowed) + action (forward/drop/rewrite headers/send to controller) + priority. Table misses can be punted to the controller. Flexible, but the controller is a single point / bottleneck (needs redundancy).
Why is kernel bypass (e.g. DPDK) fast?Skips the kernelThe application polls the NIC directly to send/receive, skipping the kernel stack, syscalls, interrupts, and copies. Cost: burns CPU on polling, gives up general kernel features. RDMA goes further: the NIC reads/writes remote memory directly, no CPU involved.
Common NIC offloads?Checksum/segm.checksum offload, TSO/GSO (NIC splits large segments), LRO/GRO (receive coalescing), RSS (multi-queue hashing across cores). Moves per-packet work from CPU to NIC.
πŸ†• Multicast · Collectives
Why is multicast better than repeated unicast?Once per linkForward along a distribution tree: each packet crosses each link once, duplicated at branch points → saves bandwidth. Group members use IGMP to tell the local router they join/leave a group.
What does RPF (Reverse Path Forwarding) check?Arrival portOnly accept multicast packets that arrive on the port of the shortest path toward the source; drop everything else → prevents loops, prunes redundant flooding.
Difference between scatter and broadcast?Chunks vs full copybroadcast: root sends the same data to everyone; scatter: root splits the data, one chunk each; gather: collect chunks back; all-gather: everyone ends up with all chunks; reduce: aggregate (e.g. sum) to the root; all-reduce = reduce + broadcast (everyone gets the aggregated result).
Per-node communication volume of ring all-reduce?2(N−1)/N·DData D split into N chunks; reduce-scatter phase (N−1) steps + all-gather phase (N−1) steps, D/N per step → total 2(N−1)D/N ≈ 2D, essentially independent of N (bandwidth-optimal); the cost is 2(N−1) steps of latency.
πŸ†• Wireless · Cellular
Higher SNR allows a higher transmission rate.TrueHigher signal-to-noise ratio → denser modulation usable → higher bit rate (Shannon). More distance/interference → SNR drops → rate automatically steps down. Wireless also suffers attenuation, multipath, obstruction — far higher error rates than wired.
What is the hidden terminal problem?Can't hear each otherA and C both hear B but can't hear each other → transmitting to B simultaneously collides at B; carrier sense fails. Exposed terminal is the reverse: you hear someone else transmitting and hold back, though there'd be no collision (overly conservative).
Why does wireless use CSMA/CA instead of CSMA/CD?Can't detect collisionsRadios are half-duplex and can't hear collisions while transmitting (their own signal swamps reception) → can't do CD (detection), only CA (avoidance): listen first, random backoff, and success only when the receiver returns a link-layer ACK. Optional RTS/CTS reserves the channel to mitigate hidden terminals.
How does a WiFi client join an AP?Scan + associateThe AP periodically broadcasts beacons (SSID); the client scans → authenticates → association (binds to one AP). All traffic then relays through the AP.
Does the connection drop during a cellular handoff?NoWhen a mobile device crosses cell towers, the network coordinates the handoff; the core network updates the path and the connection persists at the IP layer. Cellular architecture: device ↔ base station (RAN) ↔ core network ↔ Internet; spectrum is licensed (WiFi uses unlicensed bands).

πŸ“ Formulas · Rules · Numbers I (Lec 1–14 · midterm-scope calculations)

perfFour delay types + end-to-end

transmission = packet size / bandwidth
propagation = distance / propagation speed
  • The other two: queueing (varies with congestion), processing (usually ignored)
  • N-hop store-and-forward: end-to-end = N×trans + N×prop (+ queueing); drawing a hop-by-hop timeline is safest
  • Pipelining n packets: total time = first packet's arrival + (n−1)×transmission
  • BDP = bandwidth × RTT = "bits that fit in the pipe" → determines window size
Units: Mbps=10^6 bit/s; 1 byte=8 bits; Mbps≠MBps. Whether KB is 2^10 or 10^3 — check the problem statement.

addrCIDR · mask quick table

/nLast mask byte# addresses
/240256
/25128128
/2619264
/2722432
/2824016
/292488
/302524
  • Binary bit values: 128 64 32 16 8 4 2 1
  • LPM: among all matching prefixes pick the longest one; order doesn't matter

ipIP header · Fragmentation · ICMP

  • Key fields: TTL, Protocol (TCP=6, UDP=17, ICMP=1), Total Length, Identification / Flags(DF,MF) / Fragment Offset, Header Checksum
  • Fragmentation: only when packet > MTU; offset unit = 8 bytes; only the destination host reassembles
  • Example: 1980B of data through MTU 1500 → frag 1 data 1480B (offset 0, MF=1), frag 2 data 500B (offset 185, MF=0) (185=1480/8)
  • ICMP: Echo (ping), Time Exceeded (TTL=0 → traceroute), Dest Unreachable

routingDV update · LS comparison

d(x,y) = min over neighbors v { c(x,v) + d(v,y) }
  • Accept worse news too if it comes from your current next hop (it's the authority)
  • count-to-infinity fixes: split horizon / poison reverse (only fixes 2-node loops) + INFINITY=16
Link-StateDist-Vector
KnowsFull topologyOnly neighbor distances
AlgorithmDijkstraBellman-Ford
ConvergenceFastSlow (count-to-∞)
OverheadFlooding, heavyNeighbors only

bgpGao-Rexford (memorize)

Route preference: customer > peer > provider
Export: learned from customer → tell everyone; learned from peer/provider → tell only customers
  • In one line: only forward traffic that makes (or doesn't cost) you money
  • Selection order: LocalPref (policy) > shorter AS-path > … (policy always beats path length)
  • valley-free: uphill (cust→prov)* + ≤1 peer flat edge + downhill (prov→cust)*
  • path-vector carries the AS-path to prevent loops; $ flows from customer to provider

tcpseq / ack rules

  • seq = number of the segment's first byte; ack = next expected byte
  • SYN and FIN each consume 1 sequence number
  • Handshake: C→S SYN(seq=x) → S→C SYN-ACK(seq=y, ack=x+1) → C→S ACK(seq=x+1, ack=y+1); the 3rd ACK may piggyback data
  • Cumulative ACK: on loss the ack freezes → duplicate acks → 3 dups trigger fast retransmit
  • Teardown: one FIN/ACK each way; TIME_WAIT waits 2·MSL against stale packets; RST aborts immediately

cccwnd state transitions (Reno)

EventssthreshcwndThen
Slow Start×2 / RTTat ssthresh → CA
Cong. Avoid+1 / RTTlinear
Timeoutcwnd/21back to Slow Start
3 dup ACKcwnd/2cwnd/2stay in CA
  • Actual window = min(cwnd, rwnd); throughput ≈ (MSS/RTT)·(1/√p)
Hand-simulate RTT by RTT: one line per RTT, note cwnd, whether ssthresh is reached, and the loss type — don't treat a timeout as a halving.

archLayer responsibilities (bottom-up)

  • L1 Physical: bits on the wire
  • L2 Link: local hop, MAC, Ethernet, switches, STP, ARP, WiFi
  • L3 Network: IP addressing + end-to-end forwarding (the narrow waist), ICMP
  • L4 Transport: TCP/UDP, ports, reliability/congestion
  • L7 Application: DNS / HTTP / TLS (sits between L4-L7)…
  • encapsulation: each layer wraps the layer above's data with its own header

πŸ†• Formulas · Rules · Numbers II (Lec 15–26 · new Final topics)

dnsDNS query chain · Records

Query chain: client → resolver →(iterative) root → TLD → authoritative
TypeMaps
A / AAAAname → IPv4 / IPv6
NSdomain → name server (a name)
CNAMEalias → canonical name
MXdomain → mail server
  • Recursive vs iterative: the resolver is recursive toward the client (does the whole job); the resolver is iterative toward root/TLD (takes referrals and keeps asking itself)
  • Caching + TTL: resolver/OS/browser all cache; re-query on TTL expiry. With cached NS records you can skip root/TLD
  • glue record: the parent zone attaches the NS's A record, breaking the "to resolve the NS you must first resolve the NS's IP" cycle
  • DNS runs on UDP 53 (large responses / zone transfers use TCP)

httpHTTP quick reference · CDN

StatusMeaning
200OK
301Permanent redirect
304Not Modified (conditional GET cache hit)
404Not Found (client error 4xx)
500Server error (5xx)
  • Methods: GET / HEAD / POST / PUT / DELETE; GET is idempotent and cacheable
  • persistent: reuse the TCP connection, save handshakes; pipelining: send requests back-to-back without waiting (has HOL blocking)
  • Cache headers: Cache-Control: max-age, Expires, If-Modified-Since/ETag → 304
  • Cookies: delivered via Set-Cookie, client attaches automatically every time → adds state to stateless HTTP
  • CDN: DNS redirection to a nearby edge cache; on miss, fetch from origin. Saves latency + backbone bandwidth

l2Ethernet · Switch · STP

  • MAC: 48-bit, flat, globally unique, not aggregatable; broadcast address FF:FF:FF:FF:FF:FF
  • Learning switch: record (source MAC→ingress port); look up destination MAC: hit→directed send, miss/broadcast→flood (all but ingress port)
  • Frames have no TTL → any loop means a broadcast storm → STP required
  • STP: β‘  root = lowest bridge ID; β‘‘ each switch picks its shortest path to root (ties broken by neighbor ID); β‘’ non-tree ports block; β‘£ auto-reconverges on link failure
  • Hand-computing STP: circle the root first, mark each switch's root port, then cross out (×) the remaining loop-forming ports

glueARP · DHCP · NAT · TLS

  • ARP (IP→MAC, same subnet): broadcast question → unicast answer → cache it. Off-subnet, ARP for the gateway
  • DHCP DORA: Discover (broadcast) → Offer → Request (broadcast) → Ack; delivers IP+mask+gateway+DNS, with a lease
  • NAT: outbound rewrite (private IP:port)→(public IP:new port) and record it; inbound reverse-lookup. Shares a public IP, distinguished by port; hard for outsiders to connect in
  • TLS handshake: hello (negotiate ciphers + nonces) → server sends certificate → client verifies with the CA public key → key exchange (DH) yields a symmetric session key → symmetric encryption from then on
  • Certificate = CA-signed "domain↔public key"; trust chain root CA → intermediate CA → site
A classic ordering question — one full "getting online" sequence: DHCP (get IP/gateway/DNS) → ARP (gateway MAC) → DNS (name→IP) → TCP handshake → TLS handshake → HTTP.

dcDatacenter · Fat-tree math

k-ary fat-tree (k-port switches): hosts = k³/4; k switches per pod (k/2 edge + k/2 agg), k pods total; core = (k/2)²; total switches = 5k²/4
oversubscription = total downlink capacity / total uplink capacity (1:1 = full bisection)
  • east-west (internal, the bulk) vs north-south (to/from the outside)
  • full bisection bandwidth: after halving, cross-cut bandwidth ≥ half the hosts at full rate → any pairing can run at full speed simultaneously
  • ECMP: 5-tuple hash picks an equal-cost path; same flow same path (in-order), different flows spread; elephant flows may collide
  • Example: k=4 → 16 hosts, 4 pods, 20 switches, 4 core

sdnSDN · Host Networking

  • SDN: separate control plane (centralized controller computing routes with a global view) / data plane (switches just forward)
  • Rule = match (header fields, wildcards ok) + action (forward/drop/rewrite/send to controller) + priority; miss → ask the controller
  • Pros: central management, flexibility, faster innovation; cons: controller is a single point / scaling limit (needs redundancy)
  • kernel bypass / DPDK: user-space NIC polling, skipping kernel stack/interrupts/copies → low latency, high PPS, at the cost of burning CPU
  • RDMA: NIC reads/writes remote memory directly, bypassing both CPUs
  • Offloads: checksum, TSO/GSO (transmit segmentation), LRO/GRO (receive coalescing), RSS (hash across cores)

mcastMulticast · Collectives

ring all-reduce per-node traffic = 2(N−1)/N · D ≈ 2D (D split into N chunks; reduce-scatter N−1 steps + all-gather N−1 steps, D/N per step)
  • multicast: forward along a tree, one copy per link; RPF: only accept packets "arriving on the shortest-path port toward the source"; IGMP: hosts declare group join/leave
  • broadcast = same copy to all; scatter = split into chunks and distribute; gather = collect chunks; all-gather = everyone gets all chunks; reduce = aggregate to root; all-reduce = reduce + broadcast
  • Comparison: naive all-reduce (everyone sends D to everyone) is O(N·D) traffic; ring is independent of N but pays 2(N−1) steps of latency

wifiWireless · Cellular

  • SNR ↑ → denser modulation → rate ↑; distance/interference ↑ → SNR ↓ → automatic rate step-down. Wireless has high error rates, is half-duplex, and suffers attenuation/multipath
  • hidden terminal: A and C can't hear each other, both send to B → collision; exposed terminal: hearing someone else makes you hold back (though there'd be no conflict)
  • CSMA/CA: listen before sending + random backoff + link-layer ACK to confirm (you can't hear your own collision → CD impossible); optional RTS/CTS reserves the channel to fix hidden terminals
  • WiFi: AP sends beacons (SSID) → client scans → association; all traffic then goes through the AP
  • Cellular: device ↔ base station (RAN) ↔ core network ↔ Internet; licensed spectrum; cross-tower handoff is network-coordinated and the connection survives
⚠️ Compliance reminder: the CS168 Final allows a handwritten, double-sided cheat sheet (sheet count per the course's final policy; printed handwritten tablet notes are also fine). This web version is for review / memorization / organizing — whatever you actually bring into the exam must be handwritten. Suggested priorities to copy: the πŸ†• rows of the rapid-fire table + BGP export + cwnd transitions + DORA + the fat-tree formulas + the ring all-reduce formula.