Computer Networks
How the internet works, layer by layer: application protocols (HTTP, DNS, CDNs), transport protocols (UDP, TCP, flow and congestion control), the network layer (IP, routers, routing, BGP, SDN), the link layer and wireless networks, security, and datacenters.
Johns Hopkins · EN.601.414 · Fall 2023
General
Course Overview
- What is a computer network? What is the internet?
Application Layer
- What is the four layer internet model?
- What is the client-server paradigm?
- What is peer-to-peer architecture?
- What is the hypertext transport protocol (HTTP)?
- What's in a HTTP request or response message?
- How do you maintain state with HTTP (i.e., what are cookies)?
- What are the performance goals of HTTP, what are the Three "P"s to achieve them, and how is performance measured?
Content Distribution Network
- What is caching?
- What are reverse and forward proxies?
- What are content distribution networks?
- What are the server selection methods?
Domain Name System
- What is machine address, machine name, and DNS?
- What are the other directory design choices? What is "flood the query"?
- What are the goals of the DNS?
- What is hierarchical namespace?
- What is hierarchical administration?
- What is the server hierarchy? Who manages the top-level directory server or the authoritative DNS servers?
- What is anycast?
- What are DNS resource records, and what are the types? How do you insert resource records into DNS?
- What is the relationship between local DNS servers and client applications?
- What is the difference between recursive and iterative name resolution?
- What are the components of a DNS query and reply message?
- How is replication done with DNS servers?
- What is and how is caching and negative caching done in DNS?
- What is the mapping between names and addresses? What is "indirection"?
Transport Layer
Intro to the Transport Layer
- What is the need for the transport layer? What is its role?
- What is multiplexing and demultiplexing?
- What are sockets and ports?
- What is the user diagram protocol (UDP)?
- What does it mean to have reliable transport? What do the following mechanisms do: checksum, ACKs, NACKs, sequence numbers, retransmission, timeouts?
- What is the "Stop and Wait" reliable transport solution?
- What is a sliding window? What is cumulative vs selective ACKs? What is Go-Back-N vs Selective Repeat?
TCP
- What are the contents in a TCP header?
- What is a TCP Segment?
- How are sequence numbers specified when sending and acknowledging data? What is fast retransmit and how are they related?
- What is a retransmission timeout?
- How do you estimate RTT? What is Karn/Partidge Algorithm and Kacobson/Karels Algorithm?
- How to establish connection with TCP? What is the 3-way handshake? What happens when the initial SYN packet is lost?
- How are connections torn down? What is the difference between normal and abrupt termination?
Flow Control
- What is the idea of flow control? Why is it needed?
- What is an advertised window (RWND)? What is the difference between the sliding window and advertised window?
Congestion Control
- What is congestion? What was the congestion collapse?
- What was Jacobson's fix to TCP congestion? What is the difference between CWND, RWND, and Sender-side Window?
- How do we detect congestion in the network?
- How do we adjust rate?
- What is slow start? How does the slow start phase begin, when does it stop, and how does it adjust to varying bandwidth?
- What is the congestion avoidance phase?
- How do you implement congestion control?
- What is fast recovery?
- What are other TCP flavors?
Network Layer
Intro to the Network Layer
- What is the network layer?
- What are autonomous systems, border routers, interior routers, routes, and end hosts?
- What is forwarding and routing?
IP
- What is an IP packet?
- What is in a IP header and what are its goals?
- What is fragmentation?
- How is fragmentation implemented in the IP header?
Switched Networks
- What is circuit switching?
- What are the circuit types and how do they differ?
- What is packet switching?
Network Addresses
- What is an IP address?
- What is a LAN or WAN?
- What is hierarchical addressing and what does it provide?
- What is classless inter-domain routing (CIDR)?
- What is IPv6?
Routers
- What is a router and how do you calculate its capacity?
- What is inside a router?
- How do input linecards look up the output port from a destination address?
- What does switching fabric do and how does it switch?
- What does an output linecard do? What are the buffer management techniques?
- What is packet scheduling and what are the four scheduling policies?
- What is router-assisted congestion control?
- What is explicit congestion notification (ECN)?
- What is random early detection (RED)?
Routing
- What is routing and its goal?
- What is the difference between local and global routing state?
- How do you know a routing state is valid?
- What is least-cost path routing and what is a protocol that implements it?
- What is Dijkstra's Algorithm?
- What is link-state routing protocol, flooding, and convergence?
- What is the distance-vector routing and what is a protocol that implements it?
- What is the count-to-infinity scenario and what is the poisoned reverse heuristic?
- What are the differences and similarities between link-state and distance-vector routing?
BGP
- What are relationships between autonomous systems?
- What is BGP?
- What is a BGP Policy?
- What are the Gao-Rexford rules?
- What does it mean to "speak BGP"?
- What is eBGP, iBGP, IGP?
- What are the four basic messages in BGP?
- What are route attributes and what are the four standard attributes?
- What are the issues with BGP?
Software Defined Networks
- What is the data and control plane of a traditional computer network?
- What are main frames and routers/switches?
- What is a software defined network and what problem does it address?
- What are the benefits of programmable switches?
- What is P4 language?
Link Layer
Intro to the Link Layer
- What is the data link layer and what are its four primary services?
- What are frames and mediums that data can go through?
- How do you support multiple access in a shared broadcast channel? What are the three classes of technique? What is the random access
- What is carrier sense multiple access (CSMA) and what does it mean to have collision detection?
- What is the difference between broadcast ethernet and switched ethernet? What are the advantages of a switched ethernet?
- What are ethernet frames? What is the framing problem? What does it mean to frame with sentinel bits?
- What is a medium access control (MAC) address?
- What is an ethernet switch? What is a switch table? What does it mean for it to be self learning?
- What are the discovery protocols in the link layer?
- What is Dynamic Host Configuration Protocol (DHCP)?
- What is Address Resolution Protocol (ARP)? How does it differ from DHCP?
- What are virtual LANs? What is a trunk port?
Wireless Networks
- What are the elements of a wireless network?
- What are the characteristics of wireless links
- How do you deal with bit errors in a wireless network?
- What is CSMA/CA?
- What is 802.11 wireless LAN?
- What is the hidden terminal problem?
Review
Midterm Review
Others
Security
- What are security risks with TCP What is the risk with a TCP abrupt termination? What is a TCP RST injection? What is connection Hijacking?
- What is SSL and what does it provide?
- What are security concerns with IP? What is a denial of service attack? What is spoofing? How can IP options be misused? How can ToS be used to attack traffic? What are the security implications of fragmentation? What is a state-holding attack? What are the security implications of TTL?
- What are network layer threats? What is IPsec? What is a VPN?
- What are physical and link layer Issues? What is eavesdropping or sniffing? What are some DHCP vulnerabilities?
Datacenters
- What is cloud computing?
- What is in a datacenter?
- What does a datacenter network look like?
- What are the challenges of datacenter networks?
- What is partition-aggregation traffic?
- What are data center workload types?
- What is incast?
- What are datacenter transport requirements?
- What is datacenter TCP and how is it different from TCP?