Final Study Topics
The following are topics that we have covered during the second half of the
course and a few from the first half that I think would be fair game for the
final.
- ARQ Mechanisms
- Stop and Wait - know how it works. Know the benefits and
drawbacks. Why is a one-bit sequence number required on frames
and ACKs? Check out example in notes and in book of the
relationship between delay-bandwidth product, average frame size,
and link utilization.
- Sliding Window - know how it works. Understand how you might
decide on a window size. Know how big the window can be given
the length of the sequence number.
- Ethernet (802.3)
- Know the format of MAC addresses, and how they are guaranteed to
be unique.
- Carrier Sense Multiple Access with Collision Detection (CSMA/CD)
protocol - know how it works: the 1-persistent way that the
sender transmits immediately when line is idle, the exponential
backoff technique that happens after collisions.
- Ethernet segments have length limit (500 m for 10Base5, 200 m for
10Base2, 100 m for Cat5). They can be connected by repeaters, but
no more than 4 repeaters between any two stations (max length of
2,500 m for network). Understand why this limit is there.
Understand the corresponding limit on the minimum length of an
Ethernet frame. (Both are to make it so there can't be a collision
that the sender doesn't detect.)
- Understand why this makes the Ethernet degrade when heavily loaded -
max throughput rarely exceeds 30% of theoretical maximum.
- The socket API
- Standard interface between application programs and network software
(in Unix, Windows, other OSes)
- Know commonly used calls for both TCP and UDP connections:
socket(), bind(), listen(), accept(), connect(), send(), recv(),
sendto(), recvfrom(),
- The five-tuple identifying a connection: (my IP, my port, other IP,
other port, protocol)
- Function of the port is to route messages to the correct application
once they make it to the right host
- Host vs. network byte order - htonl(), htons(), ntohl(), ntohs()
- Know the differences between TCP and UDP, and the advantages and
drawbacks of each. Understand why you might choose one or the other
protocol to implement a particular application.
- How can you represent a network diagram as a graph? What are the
vertices in the graph, and what are the edges?
- The Spanning Tree algorithm
- Where and why is it used?
- How does it turn a network graph into a tree?
- How does it decide which bridge is the "designated forwarder" for
a LAN? How does it use this information ?
- Internet Protocol (IP)
- Datagram (connectionless) protocol
- Know what information is carried in IP header
- Understand MTUs and fragmentation
- Know how the TTL/hop count is used
- Know how IP addressing works - classes of network addresses, what
is the host number and what is the network number in an address,
how many bits are in host number and network number for each class
- Know how IP broadcast works
- Address Resolution Protocol (ARP) - know why it is used and what it does
- Dynamic Host Configuration Protocol (DHCP) - know what it does
- Know how IP forwarding, as used in VPN and mobile networking, works
- Routing Information Protocol (RIP)
- Intradomain routing protocol based on distance-vector algorithm
- Know how it works
- Know what the count-to-infinity problem is
- Open Shortest Path First (OSPF)
- Intradomain routing protocol based on link-state algorithm
- Know how it works - reliable flooding
- Route computation - Dijkstra's shortest path algorithm, forward
search algorithm
- Mobile Routing
- Know function of home and foreign agents
- Understand how packets are tunneled to remote network
- Review the route optimization techniques
- IPv6 - know some of the features: expanded address space,
self-configuration, how the header works (extension headers),
support for mobile networking
- Network Address Translation (NAT) - how does it work, and why is it
useful
- Subnetting and Supernetting (CIDR)
- Understand how subnetting and supernetting help with the problem of
exhausting the IPv4 address space
- Know the format of subnet masks and how supernets are defined
- UDP
- Know the basic service it provides. Understand the checksum and
the pseudoheader
- Understand how port numbers work
- TCP
- Know the basic service it provides: Connections, reliability,
congestion control
- Know how connections are established and torn down (three-way
handshake, connection FIN process)
- Understand how the sliding window works and how and why the size
of the window is adjusted
- Know how TCP decides when to send packets - Nagle's algorithm
- Know how TCP decides when to retransmit packets - you don't need
to memorize the Karn/Partridge and Jacobsen/Karels algorithms,
but understand the basics of what they are doing
- RPC
- Know the basics of RPC - what is intended to be accomplished, and
what must be provided by an RPC layer in order to "get 'er done".
- Know some of the available RPC mechanisms - SunRPC, DCE, Java RMI,
EJBs, CORBA, Web Services
- Know the function of CORBA IDL and WSDL - you don't need to worry
about gory details, just what they do at a high level
- Know the function of UDDI
- Know the function of IIOP and SOAP - again, at a high level
- Understand the foundations of Web Services and why they are becoming
the most popular mechanism for providing remote services