CS 352 Exam info

The final exam will be held in our regular classroom on May 9, 2016 from 8:00-10:00pm.

Please be sure to arrive on time and bring your ID! Expect a format similar to the other exams: a few short-answer questions and a larger number of multiple-choice questions in the style of those on mid-semester exams.

Remember that the final is optional and will only serve to displace a lower normalized grade on one of the three exams. It will not make up for poor performance on quizzes or assignments.

Exam rules

Be sure to arrive on time. If you arrive after the exam starts, you will not be allowed to take it.

This will be a closed book, closed notes exam. Calculators, phones, augmented reality glasses, laptops, and tablets are neither needed nor permitted. If you have these devices, you must turn them off, put them out of sight, and not access them for the duration of the exam.

No other electronic devices are permitted except for hearing aids, pacemakers, electronic nerve stimulators, other implanted medical devices, or electronic watches that function only as timekeeping devices or chronographs.

Bring a couple of pens or pencils with you. An extra pencil is affordable fault tolerance. If you want to splurge, the Palomino Blackwing 602 is considered by many to be one of the finest pencils available. The company advertises its key virtue as "half the pressure, twice the speed." If that claim is really true, using this product might help you complete the exam quicker. If you do not choose bring several extra pencils, you may want to bring a pencil sharpener. Palamino makes a companion Blackwing Long Point Sharpener. This, too, is pricey at $11.00. For a bit less money, you can get what looks like a clone: the Alvin Kum Long Point Pencil Sharpener. Both of these feature two-step sharpening: one for the wood case and another for the graphite core of the pencil. A truly beautiful sharpener is the El Casco Pencil Sharpener, but bringing this to class is really overkill, as is spending over $300 on a pencil sharpener. If you would like to learn the craft of pencil sharpening, there are several books available. The best of these may be How to Sharpen Pencils: A Practical & Theoretical Treatise on the Artisanal Craft of Pencil Sharpening for Writers, Artists, Contractors, Flange Turners, Anglesmiths, & Civil Servants by David Rees. Do not be intimidated by the omission of "students" in the title. You can read more about it at artisinalpencilsharpening.com. A video by David Rees is here. You are welcome to bring a full pencil sharpening travel kit to the exam but be aware that a proper sharpening routine may consume too much time during the exam and may be messy.

Past exams

You can use my recent mid-semester exams as a guide to what this exam may look like. Expect a few short-answer questions and a bunch of multiple-choice questions.

Get past 352 exams here.

Also, be sure to review the exams from this semester. You can find a discussion of the solutions on the documents page.

Study Guide

I've prepared a study guide that attempts to cover most of the material you should know. This is a concatenation of the previous three study guides. It is not a substitute for the textbook and other lecture materials. My goal has been to put most of the information you need to know in as concise a form as possible, with more elaboration in areas where textbook coverage may be lacking.

Topics

You are responsible for the material from since the start of the semester.

Topics that you should know and may be on the exam include:

Study guide

History/terminology

  • History of networking
    • I will not ask you about history but you should know the key terminology
    • Unicast messaging
    • Broadcast messaging
    • Negative acknowledgement
    • Positive acknowledgement
    • Control data vs. message data
    • Repeater
    • Message encoding
    • Synchronization
    • Flow control (rate control)
    • What is congestion?
    • How does flow control affect congestion?
  • History of the Internet
    • What's an IMP (Interface Message Processor)?
    • What was NCP (Network Control Protocol); see homework?
    • What is meant by an interconnection of networks (or network of networks)?
    • What is meant by best effort message delivery?
    • What is open architecture networking (homework)?
  • Internet/LAN overview
    • What's a node (=host)?
    • What does it mean to be a peer on a local area network?
    • What does peering among ISPs mean?
    • What is an adapter (NIC)?
    • What is media? Give a couple of examples.
    • What is a local area network (LAN)?
    • What is a link-layer switch?
    • What does a router do?
    • What is an ISP?
  • Networking overview
    • What is a physical circuit?
    • What is broadband versus baseband?
    • What is Frequency Division Multiplexing vs. Time Division Multiplexing?
    • What is circuit switching?
    • What is packet switching?
    • What are the tradeoffs and benefits of packet switching?
    • What is a connection?

Network protocols

  • Latency
    • Make sure you understand units: milli vs. micro vs. nano; kilo vs. mega vs. giga
    • Store-and-forward; how it contributes to delay
    • Know how to compute delay due to store and forward (NL/R)
    • Know the sources of delay: processing, queuing, transmission, propagation
    • Know how to compute transmission delay.
    • Understand transmission vs. propagation delay
    • What is traffic intensity (La/R)?
    • At what level of traffic intensity are we assured of packet loss?
    • What happens when traffic intensity approaches one?
    • Understand total end-to-end delay
  • Protocols
    • What is layering? Why do we want it?
    • What is the OSI model? How do IP layers map onto it?
    • Understand what the responsibilities are of the following layers: physical, data link, network, transport, presentation, application
    • What is encapsulation?
  • Application Layer concepts
    • Application architectures: client-server, peer-to-peer, hybrid
    • What is self-scalability?
    • Why would we want to request specific throughput over a network?
    • Why would we want to request limits on delay and jitter?
    • What are the differences between TCP/IP and UDP/IP?
    • What is connection-oriented vs. connectionless service?
    • What do we not get to control with IP? [throughput, delay, jitter, security]
    • What is the difference between a machine address and a transport endpoint (transport address)?
    • What is the purpose of a port number in TCP and UDP packets?
  • Sockets
    • What is a socket?
    • What does it mean to name a socket?
    • What does it mean to set a socket to listen?
    • What do these system calls do: socket, bind, listen, accept, connect, shutdown?
    • What does a Java ServerSocket do?
    • What does a Java Socket do?
    • I will not ask you to write code.
  • Concurrency and threads
    • What is a thread?
    • What do threads share in a process?
    • What do they not share?
    • I will not ask you about Java threading but understand join and synchronized blocks.
    • What is a race condition? What causes it?
    • What does synchronization accomplish?

Application Layer Protocols

  • DNS
    • What is the Internet Assigned Numbers Authority (IANA)?
    • What is a Regional Internet Registry (RIR)?
    • What is at the top of the domain name hierarchy?
    • What are generic top-level domains (gTLD) and country-code top-level domains (ccTLD)?
    • What is a domain name registry?
    • What are the roles of the domain name registry operator and the domain name registrar?
    • What is a designated registrar?
    • What is authoritative name server?
    • What is a zone?
    • Understand some of the key items that DNS servers know about: host address, canonical name (alias), name servers, mail exchanger
    • What are root name servers?
    • What is iterative versus recursive name resolution?
    • What is a referral?
    • What is a DNS resolver? How does it interact with other name servers?
    • What is the value of caching previous lookups in DNS servers. When/how do they expire?
    • What is a resource record?
    • Know that DNS servers use a request/response protocol with the same data structure used in both directions.
    • Know that each DNS request may contain multiple queries.
    • Know that a DNS server is stateless if it does not support recursion.
    • I will not ask you about the structure of DNS messages or their encoding.
    • What is the in-addr.arpa domain?
    • How is reverse DNS handled differently from looking up domain names?
  • HTTP
    • Understand that HTTP is a stateless protocol
    • What is a URL?
    • Difference between persistent vs. non-persistent HTTP connections?
    • What is the advantage of persistent connections?
    • I will not ask you to compute response times.
    • How is user input data sent from the client to the server? POST command or GET command with attribute/value pairs in the URL
    • Understand GET, POST, HEAD commands
    • What is a cookie? Understand how they are used.
    • What is the difference between a first-party and third-party cookie?
    • I will not ask you to calculate network utilization with proxy caches.
    • How does HTTP support content caching? Understand the Last-Modified and ETag headers.
    • Head of line blocking
    • Pareallel connections vs. pipelining vs. multiplexing
  • FTP
    • Understand that the FTP protocol uses a separate TCP connection for data transfers versus control (commands)
    • What is meant by out-of-band control? (the use of a separate channel rather than intermixing commands with data)
    • Know that FTP is a line-oriented text-based protocol
    • Understand what USER, PASS, GET, PUT commands do. Know that GET and PUT cause the second channel to be opened and used.
    • What is the difference between active and passive mode FTP?
  • Email: SMTP
    • Understand that SMTP is used for email delivery, not retrieval
    • Line-oriented, text-based protocol
    • Know the RCPT TO: command of SMTP. This determines where email goes. The message headers you see in email serve no part in mail delivery.
    • Pull vs. push protocols (HTTP vs. SMTP)
    • How does one send non-text email? Encode it as text and use MIME headers
    • How does one send several objects in a message (e.g., multiple pictures)? Encode each of them as text and use multipart MIME headers.
    • Know that the above two items have absolutely nothing to do with SMTP! It's up to the mail app (user agent) to know how to work with this.
  • Email: POP
    • Know that POP3 and IMAP were designed for mail access: when your mailbox in on a remote system.
    • POP3 is a line-oriented text based protocol.
    • I will not ask you to recite commands, but know that there are user/password commands and commands to list, retrieve, and delete messages.
    • Difference between a "download-and-delete" model versus "download-and-keep"
    • Deficiency of POP3: no state stored outside of a session (e.g., messages targeted for deletion), no folder support
  • Email: IMAP
    • Goal in creating IMAP: for users who access mail from multiple systems (plus folder support)
    • Know that IMAP is also a text-based, line-oriented protocol (just more verbose and complex)
    • I will not ask you IMAP commands.

Peer-to-Peer File Sharing

  • Text
    • Section 2.6.1 (P2P File Distribution/BitTorrent). Pages 149-151
    • Note: the text does not cover Napster, Gnutella, and Kazaa.
  • What is robustness?
  • What is self-scalability?
  • Don't memorize but understand the need for join, publish, search, fetch operations
  • Napster
    • Understand the use of a central directory The only peer-to-peer component was file fetch
  • Gnutella
    • Understand query flooding
    • What is an overlay network?
    • What are peer connections (neighbors)?
    • When is a query forwarded?
    • What stops queries from being forwarded forever?
    • Why were ultrapeers added
  • FastTrack/Kazaa
    • What is a supernode?
  • BitTorrent
    • What is the big idea? You become a server for the file you're downloading; you can download pieces of the file from lots of places.
    • What is a seed node?
    • What is a tracker?
    • What does a .torrent file contain?
    • What is a leecher vs. a seeder (seeder=peer with a complete copy of the file; leecher=peed that is downloading the file and offering uploads)
    • What does BitTorrent not handle? (Search)

Distributed Hash Tables

  • Text
    • Section 2.6.2 (Distributed Hash Tables). Pages 151-156.
  • What's a hash table?
  • What is an overlay network?
  • Node assignment to hash values of the key: what's a successor?
  • Why and how are requests forwarded around the ring to successors?
  • How are keys reassigned when you add or remove a successor?
  • How can we achieve O(1) lookups? Have all nodes know about each other.
  • How can we achieve O(logN) lookups? Use finger tables.
  • What's a finger table? Just know it's a table that lists your first, second, fourth, eighth, etc. successors.
  • I won't ask about fault tolerance.

Transport Layer

  • Text
    • Sections 3 (Transport Layer) through 3.4.4 (Selective Repeat). Pages 185-230.
  • End-to-end principle
  • What is transport layer multiplexing?
  • What is transport layer demultiplexing?
  • Purpose of port numbers
  • UDP demultiplexing vs. TCP demultiplexing
  • UDP
    • UDP advantages: timing, message boundaries, no connection overhead, stateless, lightweight
    • Understand the components in a UDP header: checksum, length, source port number, destination port number
    • Checksum computation and validation
    • What is an IP pseudo header?
  • TCP multiplexing/demultiplexing
    • What is a socket table?
    • What does bind do?
    • What does listen do?
    • What does accept do?
    • What does connect do?
    • How does an OS determine which socket an incoming packet belongs to?
  • Reliable data transfer (RDT)
    • What is a positive vs. negative acknowledgement?
    • What is the characteristic of ARQ (Automatic Repeat reQuest) protocols?
    • Know the three capabilities of RDT protocols: error detection, receiver feedback, retransmission
    • Do not memorize state machines but understand how they work
    • Stop-and-wait protocol
    • Sequence number to resolve duplicate packets
    • Alternating-bit protocol (1-bit sequence number)
    • Duplicate ACKs instead of NACKs; sequence numbers on ACKs
    • Duplicate packets due to corrupt ACK
    • Detecting packet loss: countdown timer
    • Duplicate packets premature timer expiration
    • Network utilization with stop-and-wait protocol
    • I will not ask you to calculate the network utilization but have a feel for its magnitude with stop-and-wait
    • Pipelining
    • Go-Back-N (GBN)
      • Sliding window protocol
      • What is a window?
      • What the significance of a window size?
      • Retramission of all unacknowledged packets
      • Cumulative acknowledgement
      • Receiver handling out-of-order packets
    • Selective Repeat (SR)
      • Receive window vs. send window
      • When are packets delivered to the application?
      • When does the send window advance?
      • When does the receive window advance?
      • What good packets will be ignored but acknowledged?
      • What good packets will be ignored and not acknowledged?

Transport Layer: TCP

  • Text
    • Sections 3.5 (Connection-Oriented Transport: TCP) through 3.5.6 (connection Management). Pages 320-258
    • Sections 3.7 (TCP Congestion Control), not including 3.7.1 (Fairness). Pages 269-279
  • Know these terms:
    • segment
    • connection-oriented
    • end-to-end control
    • connection setup and teardown
    • full duplex
    • send buffer
    • receive buffer
    • Maximum Segment Size (MSS)
    • Maximum Transmission Unit (MTU)
  • Path MTU
    • Path MTU Discovery
  • TCP structure
    • Don't memorize but know the purpose of these fields
    • Source port number
    • Destination port number
    • Checksum
    • Sequence number
    • Acknowledgement number
    • Receive window size
  • TCP sequence numbers
    • Know how they are numbered from segment to segment
  • TCP acknowledgement numbers
    • How is an acknowledgement number generated?
    • What is a piggybacked acknowledgement?
    • What are cumulative acknowledgements?
    • What are duplicate acknowledgements and when are they sent?
  • TCP connection setup and teardown
    • Understand the three-way handshake: SYN, SYN-ACK, ACK
    • What is SYN flooding?
    • What comprises a server sequence number if SYN cookies are used?
    • When is the transmission control block allocated if SYN cookies are used vs. not used?
    • I will not ask you about MSS announcement or reset segments
    • Termination: don't memorize the states but understand the handshake and the FIN flag
    • Understand the TIME_WAIT state
  • Retransmission timeouts (RTO)
    • What is a retransmission timeout?
    • You don't need to memorize the formula but know what an exponentially weighted moving average (EWMA) is
    • What is the Smoothed Round Trip Time (SRTT)?
    • What is the Round Trip Time Variation (RTTVAR)?
    • You don't need to remember the formula for RTO but do remember that it's a function of SRTT and RTTVAR
    • RTO doubling: exponential backoff
  • TCP Reliable Data Transfer
    • Purpose of RTO timer: when is it set and when is it reset?
    • Pipelined delivery
    • What is retransmitted after an RTO?
    • Understand the cases of lost ACKs and delayed ACKs
    • What is Fast Retransmit? What makes it fast
    • What do Selective Acknowledgements do to the protocol?
  • Flow control
    • How does the TCP receiver regulate flow?
    • What is probing?
  • TCP congestion control
    • Know that TCP is a sliding window protocol
    • How does the window size regulate the transmission rate?
    • What does it mean when we say TCP is a self-clocking protocol?
    • Receive window (rwnd) vs. Congestion window (cwnd)
    • What is meant by bandwidth probing?
    • What is AIMD (Additive Increase, Multiplicative Decrease)?
    • Slow Start
      • When is this state entered? (on RTO)
      • What is the initial window size?
      • How is ssthresh set?
      • When is the window size increased and by how much?
      • When does TCP exit the slow start state?
    • Congestion Avoidance
      • How does the window size grow in this state?
      • What causes a transition from this state to slow start?
      • What causes a transition from this state to fast recovery?
    • Fast Recovery
      • Understand that entry to this state is a multiplicative decrease
      • When does TCP transition from this state to Collision Avoidance?
      • When does TCP transition from this state to Slow Start?

Network Layer

  • Text
    • Sections 4 (Network Layer) through 4.4.4 (IPv6). Pages 305-362.
  • Forwarding vs. Routing
  • Forwarding table (=routing table)
  • Difference between a packet switch and a router
  • Difference between a virtual circuit network and a datagram network
  • What is the longest prefix matching rule?
  • Router architecture
    • What is difference between the control plane and data plane?
    • What is the meaning of a port on a router?
    • What is switch fabric?
    • Conventional shared memory architecture
    • Distributed CPU shared memory architecture (routing table per line card)
    • Bus data path architecture
    • Crossbar data path architecture
    • What input processing takes place on a router?
    • What output processing takes place on a router?
    • Purpose of active queue management algorithms
    • Head of line blocking
  • Internet Protocol
    • The fields of the IP header that you should know are: total length, identification, fragmentation flags, fragment offset, TTL, protocol, checksum, source address, and destination address
    • What is the reason for a TTL field?
    • What is the purpose of a protocol field?
    • IP fragmentation
      • How does IP fragmentation and reassembly work?
      • How does a recipient know where the data from a fragment goes into a reassembled datagram?
      • How does a recipient know which fragments belong with which datagrams?
    • Addressing
      • Per interface addressing
      • Route aggregation
      • What is a Subnet (= subnetwork = network)
      • What is CIDR notation?
      • What is a subnet mask?
      • Given a subnet in CIDR notation, what are the network and host numbers?
      • I will not ask about special addresses but know what a limited broadcast is (and a limited broadcast address)
    • Host Configuration
      • What information does a host need to be on an IP network?
      • What is the purpose of DHCP, the Dynamic Host Configuration Protocol?
      • How DHCP can allocate addresses? automatic (permanent addresses), dynamic (temporary addresses), manual assignment (specific address for a specific host)
      • DHCP protocol steps: D-O-R-A: discover, offer, request, ack
      • Why does a client have to use a broadcast?
      • Why does the DHCP server have to use a broadcast for a response?
    • Network Address Translation
      • What is the purpose of a NAT Translation Table and how does it work?
      • Understand that NAT with port translation touches the transport layer
      • Do not memorize the range of private addresses
    • ICMP: Internet Control Message Protocol
      • Purpose of ICMP
      • Network, not transport layer protocol
      • Do not memorize the ICMP header structure
      • Do not memorize ICMP message types but know what the purpose of the type field is
      • How does the ping program work? Send an ICMP echo message and get back an ICMP echo reply message
      • How does the traceroute program work? Send UDP datagrams with progressively longer TTLs; pick up ICMP TTL exceeded messages
    • IPv6
      • You do not need to know the traffic class or flow label header fields
      • 128-bit IPv6 vs. 32-bit IPv4 addresses
      • Recognize that the hop limit is the same as the TTL
      • Know that fragmentation are optional fields in IPv6
      • Know that the IPv6 does not have a checksum
      • What is a dual-stack system?

    Routing

    • Text
      • Sections 4.5 (Routing Algorithms) through 4.5.2 (Distance-Vector Routing Algorithm). Pages 363-379
    • Terminology: graph, nodes (=routers), edges (=links), neighbors, edge cost, path cost
    • Least-cost path, shortest path
    • Global vs. decentralized routing algorithms
    • Link-state routing algorithm (Dijkstra's shortest path)
      • Understand how to use it to find the least cost path from a node
      • Understand terms of distance and previous node
      • Understand how to compute the full path given a list of distances and previous nodes
      • Oscillations: what causes them and how to minimize them
    • Distance-Vector routing algorithm
      • I will not ask you to recite the Bellman-Ford equation but be sure to understand it since it is the key to the DV algorithm
      • Know how to update a distance vector at a node given a distance vector from another node.
      • Know that a node advertises its distance vector to its neighbors whenever it changes or the link cost to any neighbor changes
      • Understand how the count-to-infinity problem can arise
      • What does poison reverse do? (Note: the text calls it poisoned reverse but poison reverse seems to have dominant use.)

    Internet Routing

    • Text
      • Sections 4.5.3 (Hierarchical Routing) through 3.6.3 (Inter-AS Routing: BGP). Pages 379-399
    • Additional notes
    • Autonomous Systems (AS)
      • Intra-AS routing: Interior Gateway Protocol (IGP)
      • Inter-AS routing: Exterior Gateway Protocol (EGP)
      • Peering
      • Tier 1 ISP
      • Transit AS
      • Stub AS
      • Multihomed Stub AS
      • Hot potato routing
    • Intra-AS Routing: Router Information Protocol (RIP)
      • RIP is a distance-vector routing protocol
      • Runs over UDP
      • Cost metric is hop count
      • Know that a routing table tracks, for each subnet, the hop to the next router and the hop count to the final destination
      • Understand how a routing table is updated based on receiving a routing table from a neighbor
    • Intra-AS Routing: Open Shortest Path First (OSPF)
      • OSPF is based on the link-state algorithm
      • Know that a link state change is broadcast to all routers in the AS
      • Implemented as a special protocol above IP
      • AS can be segmented into multiple OSPF Areas
        • Area Border Routers (ABR) serve as gateways out of an area
        • A backbone area is a special area that contains all ABRs: allows routing between areas
    • Inter-AS Routing: BGP
      • What are BGP peers?
      • Difference between an External BGB (eBGP) session and an Internal (iBGP) session
      • Understand what is meant by propagating reachability information
      • Understand what a CIDR prefix is
      • Know that key attributes of a BGP prefix advertisement are the path and the next-hop
      • How can the next-hop attribute be used to handle multiple links from one AS to another?
      • Know that routing policies, decisions on what routes to advertise, are a part of BGP

    Multicast Routing

    • Text
      • Sections 4.7 (Broadcast and Multicast Routing) through 4.8 (Summary). Pages 399-412
    • Broadcast vs. multicast
    • N-way unicast vs. in-network duplication
    • Uncontrolled flooding (broadcast storm)
    • Sequence number controlled flooding
    • Reverse path forwarding (RPF)
    • What is a spanning tree?
      • Rendezvous point (center node)
      • Tree-join message
    • IP multicast routing
      • What is a Class D address (you don't have to remember the number of bits)?
      • What is a host group?
      • Understand how the Internet Group Management Protocol (IGMP) works
        • What systems does it operate with? (between hosts and routers on the LAN)
        • Understand that it's a soft state protocol: a host has to periodically re-join by responding to a membership query message
        • Understand why a leave_group message is optional
      • Protocol Independent Multicast (PIM)
        • What is the role of this protocol?
        • Dense mode multicast (source-based tree)
          • RPF
          • Pruning
          • Who initiates flooding?
        • Sparse mode multicast (group shared tree)
          • Who initiates path discovery
          • What is the rendezvous point
          • What is an advantage of sparse mode multicast over dense mode multicast?

    Data Link Layer

    • Text
      • Sections 5.0 (The Link Layer) through 5.4.4 (VLANs). Pages 433-486
        You can skip Unslotted ALOHA on the bottom of 452-453 and 5.3.4 (DOCSIS) on pages 460-461
    • Purpose of the data link layer
    • What is Medium Access Control (MAC)
    • What is a MAC address? How does it differ from an IP address?
    • Error detection and correction
      • Parity (What is it? What is even vs. odd parity?)
      • Two-dimensional parity (What does it accomplish?)
      • What is an error correcting code?
      • What is meant by Forward Error Correction (FEC)?
      • What is a checksum?
      • What is the Internet checksum?
      • What is a CRC? Be able to compute a CRC given a generator
    • What is a multiple access problem?
    • Understand the general approach in the three categories of multiple access protocols?
      • Channel partitioning
        • TDM
        • FDM
        • Why is this approach not a good use of bandwidth?
      • Taking turns
        • Polling
        • Token passing
      • Random access
        • Principle of slotted ALOHA (time slots, collisions, when to retransmit)
        • CSMA/CD
          • What is carrier sensing
          • What is a collision? What do we do if we detect one?
          • What is binary exponential backoff?
    • Ethernet
      • I will not ask you about ethernet technology (100BASE-TX, 10GBASE-T, Cat 5e, etc.)
      • Know that the Ethernet frame has a MAC source, destination, protocol type, payload, and CRC
      • Know that Ethernet addresses are globally unique and unrelated to IP addresses
      • Address Resolution Protocol
        • What is it used for?
        • What is in an ARP table?
        • Understand that there is a broadcast query and unicast response
      • IPv6 Neighbor Discovery
        • IPv6 replacement for ARP
        • Know that each host has to listen on a multicast address derived from part of the host's IP address
        • Know that this is a multicast instead of a broadcast protocol
      • Know how we address a MAC frame that carries a datagram
        • If it's for a host on the LAN, use ARP to get the address
        • If it's for a remote host, find where to route it and use ARP to get the address of the router
        • If it's a multicast message, derive the MAC address from the Class D multicast IP address
      • Know how Ethernet cards can get multicast packets
        • Listen for a small list of addresses
        • Grab all addresses that match a hash value
        • Grab all multicast frames when in multicast promiscuous mode
      • How are IP multicast addresses converted to Ethernet multicast addresses?
        • For both IPv4 and IPv6, know that only a subset of the IP address is copied to a MAC address template
      • Switched LANs
        • Understand that a switch does link layer forwarding
        • What does it mean for a switch to be self-learning?
        • What is a switch table?
        • Switches can be cascaded? How does that affect the switch table?
      • Virtual Local Area Networks (VLANs)
        • Understand the basic principle: make one switch look like several switches
        • What is VLAN trunking?
        • Why is VLAN tag needed in an extended ethernet frame?

    Wireless Networks

    • Text
      • Sections 6.0 (Wireless and Mobile Networks) through 6.1 (Introduction). Pages 513-518
      • Sections 6.3 (Wi-Fi: 802.11 Wireless LANs) through 6.3.5 (Advanced Features in 802.11). Pages 526-544
      • Sections 6.5 (Mobility Management: Principles) through 6.5.2 (Routing to a Mobile Node). Pages 555-564
    • Terminology
      • What is a base station?
      • What is infrastructure mode vs. ad hoc (peer-to-peer) mode?
      • What is an Access Point (AP)?
      • What is a Basic Service Set (BSS)?
      • What is a BSS ID (BSSID)? MAC address of the AP (you don't need to know channels)
      • What is a Service Set Identifier (SSID)? Human-friendly name of the AP
    • 802.11
      • You don't have to know the different 802.11 versions
      • How does a host associate with a specific access point?
        • Passive scanning vs. active scanning
        • Sending an association request
      • Understand the key distinctions between wired and wireless transmissions
        • Higher bit-error rate
        • Cannot listen while transmitting (also, hidden node problem)
      • 802.11 MAC Protocol
        • How does CSMA/CA differ from CSMA/CD?
          • No detection of collisions
          • Wait a random time after detecting the channel is clear
          • You don't need to remember the distributed inter-frame space or short inter-frame spacing
        • Why does 802.11 use acknowledgements and retransmission? Know that the 802.11 frame has a sequence number in it
        • What is the point of RTS/CTS?
        • How does it help with the hidden node problem?
        • Do not memorize how the three (or four) address fields are used but know that we need to identify the AP, wireless host, and the wired host
      • Handoff
        • Understand what happens to an IP data stream (e.g., TCP) when a host moves from one AP to another in a subnet.
        • How does the switch learn to send data to the new interface?
      • Power management
        • Know that a node can tell the AP that it will go to sleep and the AP will not send it packets
        • Know that the node finds out there are packets waiting when the AP sends a beacon message
    • Mobile IP (wide area): I will not ask you about this topic
      • What is a Home Network vs. Foreign Network?
      • What is a Care-of-Address (COA)?
      • Understand datagram encapsulation and that a home agent will forward received datagrams to the foreign agent
      • Why does the node not need to forward back to the home agent?
      • Indirect vs. direct routing
      • What is the role of a corresponding agent?

    Quality of Service in Networks

    • Text
      • The text deviates somewhat from what I covered in class; try to follow the lecture slides as a primary reference
      • Sections 7.5 (Network Support for Multimedia) - Section 7.5.2 (through Policing: The Leaky Bucket). Pages 632-647
      • Sections 7.5.3 (Diffserv) through 7.5.4 (Per-Connection QoS). Pages 648-655
      • Sections 7.4 (Protocols for Real-Time Conversational Applications) through 7.4.1 (RTP). Pages 623-627
    • Understand the terms of items that affect quality of service
      • Bandwidth (bit-rate)
      • Delay (latency)
      • Jitter
      • Loss
    • Soft QoS vs. Hard QoS
    • What is a link scheduling discipline?
      • FIFO
      • Priority scheduling
      • What is traffic isolation and why do we want it?
      • Round robin
      • Weighted Fair Queuing (WFQ)
    • Traffic shaping vs. traffic policing
    • Leaky bucket algorithm
      • Primary goal: remove jitter
    • Token bucket algorithm
      • Primary goal: provide an average bandwidth; burts of traffic are possible
    • QoS in IP networks
      • Differentiated Services (DiffServ)
        • What is it?
        • What is a differentiated services codepoint (DSCP)?
      • Integrated Services (IntServ)
        • What is RSVP?
        • What is admission control?
        • What does it mean for a protocol to be soft state?
        • Don't bother with TSPEC and RSPEC; just know that the sender sends a specification & establishes a route and the receiver sends a message for the routers in the path to reserve the resources
      • RTP & RTCP
        • Know that these are protocols on top of UDP
        • They do not affect routing
        • What is the purpose of RTP? To identify the type of media stream, its encoding, and allow a receiver to play it at the required time intervals
        • What is the purpose of RTCP? To provide feedback on the RTP stream.

    SECURITY

    • Text
      • Section 8.2 Principles of Cryptography, pages 675-693
      • Section 8.3 Digital Signatures, pages 693-699
      • Section 8.4 End-Point Authentication, pages 700-704
      • Section 8.6 SSL (the text goes into more detail than you need to know), pages 711-714
      • Section 8.7 Network-Layer Security: IPsec and Virtual Private Networks, pages 718-724 (the text goes into a bit more detail and introduces more acronyms than you need to know)
    • Packet filters
      • What is a screening router?
      • What packet data is used by the screening router?
      • What is a chain of rules (or filters)?
      • Policy for network ingress filtering (deny all by default, filter for specific services you need to offer)
      • What can you do about source address spoofing?
      • Why might it be a good idea to restrict certain network egress traffic?
      • What does stateful inspection add?
      • What is a DMZ?
      • How can data flow between an internal subnet, external Internet, and DMZ subnet?
      • How does NAT help with network security?
      • What is deep packet inspection?
      • What does application-layer filtering offer?
    • Intrusion Detection System
      • How does a protocol-based IDS function?
      • What is the difference between that and a signature-based IDS?
      • How does an anomaly-based IDS work?
    • Application proxies
      • What is the purpose of an application proxy?
      • How does it differ from a protocol-based IDS?
    • Cryptography
      • Definitions: plaintext, ciphertext, encryption, decryption, cipher
      • Symmetric vs. public key cryptography
      • Communication with symmetric cryptography
      • Cipher block chaining
      • Communication with symmetric cryptography
      • Communication with public key cryptography
      • What does the Diffie-Hellman algorithm provide? (you don't need to know it; just know what it does)
      • What's a hybrid cryptosystem?
      • What's a session key?
      • cryptographic hash function
      • What is a Message Authentication Code?
      • What is a digital signature and how do you use a has function and public key cryptography to create one?
      • What is non-repudiation?
      • What is a digital certificate? Understand the components: owner's name, owner's public key, issuer, and signature
      • What is a CA (certification authority)?
      • I will not ask details of SSL/TLS; just know that it uses a hybrid cryptosystem and each message contains a MAC (message authentication code) along with the data
    • Virtual Private Networks
      • What is a network tunnel?
      • How does tunnel mode communication differ from transport mode?
      • IPsec Authentication Header protocol (AH) protocol: what does it do? (signs but does not encrypt)
      • IPsec Encapsulating Security Payload (ESP) protocol: what does it do? (encrypts and signs)

    NAT Traversal

    • What is NAT traversal?
    • What's the motivation for NAT traversal?
    • Approaches: relay, hole punching
    • What technique does STUN use?
    • What does technique does TURN use?
    • What is ICE? [Protocol to negotiate a traversal mechanism that works]

    Zero Configuration Networking

    • What can you do if DHCP is not available?
    • What is an IP Link-Local Address?
    • What is multicast DNS?