CS 455/555 Mid-Term Study Guide
Notes:
Regarding terms, you should know the definitions and
concepts well enough to be able to answer "compare and contrast",
"define the term", "fill-in-the-blank", and "definition matching" questions.
This is not meant to be an exhaustive list of possible questions
for the exam. It is meant to give you a general idea of the
possible types of questions that might be asked and an idea of the
topics I think are most important.
You should also study homework questions and problems that we've
discussed during lectures.
Overview
- Terms:
- protocol
- router
- multiplexing
- connection-oriented
- connectionless
- packet-switching
- circuit-switching
- datagram routing
- flow control
- congestion control
- statistical multiplexing
- out-of-band control vs. in-band control
- push protocol vs. pull protocol
- transmission delay
- propagation delay
- queuing delay
- end-to-end delay
- TCP
- UDP
- Why would it be better to use packet-switching instead of
message-switching (assuming that packets are much smaller than messages)?
- What are 2 types of multiplexing in circuit switching?
- What are the 5 TCP/IP protocol layers?
- What are the 4 types of delay that a packet can encounter when
traveling through a network? For a fixed path and fixed packet size,
which are constant and which are variable?
- Compute transmission delay given link speed, propagation delay,
and packet size.
- Compute the propagation delay given propagation speed and
physical distance.
- Compute when bits of a packet arrive at the destination given link
speed, propagation delay, and packet size.
- Compute the bandwidth-delay product of a link given link speed and
propagation delay.
Client-Server
Socket Programming
- C Socket Calls -- Know what these calls do, which side of the client/server uses them, used for TCP/UDP, and if they block waiting for input.
- socket
- connect
- accept
- listen
- send
- recv
- sendto
- recvfrom
- htonl
- htons
- ntohl
- ntohs
- What is a socket? What is it used for?
- Why do we use recvfrom() and sendto() with UDP
applications?
- Why do TCP server typically use two sockets instead of just one?
- Is there any way to avoid using recvfrom() and
sendto() with UDP applications and just use recv()
and send()?
- TCP vs. UDP message boundaries - Which preserves them? How does
this affect our programs?
HTTP
- Terms:
- GET
- persistent connections
- non-persistent connections
- parallel connections
- persistent connections with pipelining
- HTTP/1.0
- HTTP/1.1
- browser cache
- proxy server, or proxy cache
- What is the typical application-level exchange for a HTTP/1.0 transfer?
- Which are typically larger - HTTP requests or HTTP responses?
- Given a network topology, compute the total delay for a HTTP/1.0
request-response pair. Include all TCP-related operations. Assume
that the IP address is known.
- List all TCP connections that would be needed to request a web
page using HTTP/1.1 where the base page is at host1 and there are 3
embedded objects located at host1, host2, and host3, respectively.
- Compute the total delay to download all elements of a web page,
given a network topology and number and size of embedded objects in the
web page using non-persistent connections, persistent connections, N
parallel connections, and HTTP/1.1.
- Compute the traffic intensity on a link given the request rate,
average object size, and link speed.
- Compute the traffic intensity of a network once a web cache with a
X% hit rate has been installed.
- Compute the average response time for downloading an HTTP object
using a cache - given the information in the previous two questions.
FTP and Email
- Terms:
- user agent
- mailbox
- active FTP
- passive FTP
- How many connections are used simultaneously for correct FTP operation?
- Does FTP offer persistent connections?
- Is FTP a transport-level protocol or an application-level protocol?
- Is FTP the same as ftp?
- Is FTP secure (are messages sent in plain text)?
- When is SMTP used and when is POP used?
- Why doesn't an email user agent directly contact the recipient's
SMTP server?
- Can a mail server be a client in SMTP?
- Is SMTP secure (are messages sent in plain text)?
- Is POP secure (are messages sent in plain text)?
DNS
- Terms:
- hostname
- IP address
- host aliasing
- mail aliasing
- recursive query
- iterative query
- TLD (top-level domain)
- authoritative server
- How can DNS be used for load distribution?
- Is a typical DNS lookup a recursive query, iterative query, or not
totally either? If not either, explain.
- If a given hostname needs to be resolved, but the default name
server has an empty cache, how many DNS requests will the default name
server typically have to make before the address is resolved?
- Why can't the root DNS servers store all of the hostname to IP
address translations?
- Given an example DNS name resolution that starts with an empty
cache, show the contents of the cache after the name resolution has
completed.
- Is DNS a transport-level protocol or application-level?
- When does DNS name resolution occur (ie, before a TCP connection
starts or after)?
- Apply the DNS name resolution process to other questions, such as
determining response time of an HTTP request.