NET-1. Networking
QUESTION NET-1A. Which of the following system calls should a programmer expect to sometimes block (i.e., to return after significant delay)? Circle all that apply.
socket
read
accept
listen
connect
write
usleep
- None of these
#2
read
, #3accept
, #5connect
, #6write
, #7usleep
.
QUESTION NET-1B. ⚠️ Below are seven message sequence diagrams demonstrating the operation of a client–server RPC protocol. A request such as “get(X)” means “fetch the value of the object named X”; the response contains that value. Match each network property or programming strategy below with the diagram with which it best corresponds. You will use every diagram once.
- Loss
- Delay
- Reordering
- Duplication
- Batching
- Prefetching
- Exponential backoff
A | B | C | D |
E | F | G |
#1—B, #2—C, #3—F, #4—D, #5—G, #6—A, #7—E
(A—#6, B—#1, C—#2, D—#4, E—#7, F—#3, G—#5)While G could also represent prefetching, A definitely does not represent batching at the RPC level—each RPC contains one request—so under the rule that each diagram is used once, we must say G is batching and A is prefetching.
QUESTION NET-1C. List some resources that a DoS attack on a network server might exhaust.
At least: file descriptors, memory (stack), processes/threads. There’re a lot of correct answers, though! You can run out of virtual memory or even physical memory.
QUESTION NET-1D. A server sets up a socket to listen on a connection. When a client wants to establish a connection, how does the server manage the multiple clients? In your answer indicate what system call or calls are used and what they do.
The server calls
accept
on a listening file descriptor. This creates a new file descriptor that is particular to the connection with a particular client, giving the server uses a different fd for each client.