CS 43 — Quiz Study Guides

Study guides in this course are not meant to be a point-by-point list of exactly the questions that will appear on the quiz. Rather, they are a list of the Learning Objectives (LOs) covered by the relevant lectures, labs, and readings. They say what you should be able to do if you’ve gained a solid understanding of the concepts. Each quiz will assess its LOs, drawing on how they were covered in lecture, lab, and the reading.

Quizzes are taken on paper at the start of class, with a mix of multiple choice and short answer questions. Please show up on time.

1. Quiz 1: Protocols and Layering

Wednesday, September 9 (in class)

Last updated: September 3, 2026

Covers: Lectures 1 and 2, and the assigned reading (Kurose & Ross sections 1.1 and 1.5).

Duration: 15 minutes

1.1. Learning Objectives

Students should be able to…​

  1. List and define the five layers of the Internet Model in order from top to bottom.

  2. Describe the core responsibility of each layer.

  3. Match the name of the data unit: message, segment, datagram, and frame, to its layer.

  4. Define what a protocol is.

  5. Explain the advantages and disadvantages of protocol layering.

  6. Illustrate the process of encapsulation.

  7. Explain why every device on the Internet must implement the IP protocol, while transport and application protocols run only on end hosts.

  8. Design a simple protocol for a new application (example: a basic chat service), defining the message format (headers and payload) and the rules for message exchange.

1.2. Practice Problems

From the end of Chapter 1 in the textbook: K&R (page 52-53): R1, R3, R22, R23, R24, R25, P1

I will not provide exact answers to the textbook problems, though I’m happy to discuss your answers on Ed or in office hours. Sometimes there is also no "one" right answer.

There are also links to interactive practice problems on the publisher’s website which tell you when your answer is correct or incorrect and give you hints. These are really good!

2. Quiz 2: The Web and HTTP

Last updated: September 10, 2026

Covers: Lecture 3, Lab 1 Week 1, and K&R sections 2.1.1, 2.1.2, 2.1.5 and 2.2.1-2.2.6

Duration: 15 minutes.

2.1. Learning objectives

Students should be able to…​

  1. Trace the high-level steps of a web request, from a user click to receiving data.

  2. Identify the host name and the path name in a URL.

  3. Define the role of HTTP, web browser and web servers in Web browsing.

  4. Explain why web servers are always on at well-known addresses.

  5. Deconstruct a basic HTTP GET request, identifying the request line, headers (including Host header) and the terminating blank line.

  6. Explain why an HTTP request needs a Host header and why header lines end in CRLF.

  7. Deconstruct a basic HTTP response, identifying the status line, headers (example: Content-Type, Content-Length, Date, Last-Modified), and the message body containing the requested object.

  8. Interpret common status codes (200, 404) in terms of what happened at the server.

  9. Explain why HTTP is considered a stateless protocol and what that means for server design.

  10. Explain the purpose of cookies and trace an HTTP request and response that includes cookies.

  11. Calculate the time to load a page of N objects under non-persistent HTTP and persistent HTTP.

  12. Explain how HTTP/1.1 improved the latency performance of HTTP/1.0.

  13. Explain head-of-line blocking, why parallel TCP connections are an incomplete fix, and how HTTP/2 improved the performance of HTTP/1.1.

  14. Explain how browser caching and conditional GET (304 Not Modified) reduce response time and load on the origin server.

  15. Given the number and relative sizes of the objects on a web page, evaluate which HTTP performance technique helps most.

2.2. Not on this quiz

These come up in the reading or in lecture, but you will not be asked about them:

  • Cookie privacy, third-party tracking, and GDPR

  • Bandwidth and throughput. Any timing question will be expressed in round trip times (RTT) and per-object transmission time only.

  • HTTP methods other than GET

  • User-Agent header

2.3. Practice

Interactive exercises:

Knowledge checks:

Textbook problems and the end of Chapter 2 (K&R page 101-102):

  • R3, R4, R5

  • P1 parts (a), (b), (c), and (e)

  • P4, parts (a), (b), (c) and (d)

  • P5

  • P6 (Bonus, for fun)

3. Quiz 3: Sockets and Concurrency

Last updated: September 17, 2026

Covers: Lecture 4 (Sockets), Lecture 5 (Sockets & Concurrency), Lab 1, Computer Networks: A Systems Approach sections 1.4, Beej’s Guide section 7.1, and the non-blocking I/O and select() reading.

Duration: 15 minutes.

3.1. Learning objectives

Students should be able to…​

  1. Define what a socket is and what socket() returns.

  2. List, in order, the socket calls a TCP client and a TCP server make, and state what each call does.

  3. Given a sequence of send() or recv() calls and the state of the socket buffer before each, determine what each call does and returns, on a blocking socket and on a non-blocking socket.

  4. Given client or server socket code, check whether it uses the socket calls correctly, including send() and recv(), explain what goes wrong when it runs, and describe the correct usage.

  5. Given a server’s connections, determine how many sockets it has open and the role of each.

  6. Given a timeline of client actions, trace when a server with no concurrency serves each client.

  7. Explain how processes, threads, and select() each let a server handle multiple clients, and compare their overhead.

  8. Given a server loop that uses non-blocking sockets, determine where the loop spends its time and whether it serves every client.

3.2. Not on this quiz

These come up in the reading or in lecture, but you will not be asked about them:

  • UDP sockets

  • Byte order and htons()

  • Address structures, gethostbyname(), and getaddrinfo()

  • Exact function signatures. Function signatures will be given to you if needed

  • poll() and epoll

3.3. Practice

  • Sockets worksheet from Lecture 4. Work through it on your own.

  • Completing Lab 1

Knowledge checks: