CS4270 and CS8803-DCL: Internet Lab
College of Computing, Georgia Tech
Spring 2012
Course Objectives
The main objective of this course is to offer students
hands-on experience
with networking technologies (routers, switches, hubs), networking protocols
(RIP, OSPF, BGP, DHCP, NAT, DNS, TCP, UDP, SNMP, IP multicast),
and networking tools (tcpdump, netstat, ping, traceroute).
Additionally, the course covers the main Internet protocols in greater
technical depth than a basic networking course. We will also cover a
number of state-of-the-art networking topics through recent research papers.
The only prerequisite is CS3251 or an equivalent first course
in computer networks.
Instructor
Teaching assistant
(announced in class -- please see T-Square)
Table of Contents
- Lectures: Mon, Wed - 2:05 - 2:55
- Time slot for extra class (when needed): Fri 2:05 - 2:55
- Classroom: CCB 102 (for lectures)
- Lab: CCB 1371
- Prerequisite: CS3251 or equivalent
- The lab exercises will be done in groups of THREE students.
- the midterm exam will be on October 24, in class
- the final exam will be on December 12, in class
We will use the following two textbooks. The first (referred to as the
"lab manual") describes the lab exercises. The second (referred to
as the "textbook") is a very recently written textbook that we will
be referring to at the lectures (and it is free!).
Other good references:
- The "IBM Textbook": TCP/IP Tutorial and Technical Overview, by A. Rodriguez, J. Gatrell, K. Karas and R. Peschke, IBM 2006 (publicly available on-line).
- A.Leon Garcia and I.Widjaja,
Communication Networks (second edition) , 2003
- J.Kurose and K.Ross,
Computer Networking, A top down approach featuring the Internet , 2000
- W. R. Stevens,
TCP/IP Illustrated, Volume 1: The Protocols, 1994.
- Week-1: (Aug 20,24)
Course overview, review of key networking concepts
Lecture slides: Overview of labs
Lecture slides: TCP/IP networking: an example
Lecture slides: Review of important networking concepts
Research reading: The Evolution of Layered Protocol Stacks Leads to an Hourglass-Shaped Architecture
Lab assignment: Visit lab, become familiar with equipment
- Week-2: (Aug 27,31)
Addressing (locators versus identifiers), IP addresses
Lecture slides: IP addresses
Research reading: Evaluating the benefits of the Locator/Identifier Separation
Research reading: IPv6 Will Be Deployed Any Day Now
Lab assignment: Lab-1: Read Introduction from Lab Manual - Become familiar with Ethereal
- Week-3: (Sep 3,5,7)
Layer-2 and Internetworking
Lecture slides: Data-link layer protocols
Lecture slides: ARP
Lecture slides: IP protocol
Lecture slides: ICMP protocol
Research reading: Networking named content
Research reading: Avoiding traceroute anomalies with Paris traceroute
Lab assignment: Lab-2: Single segment IP networks
- Week-4: (Sep 12,14)
Internet routing architecture - Router architectures
Lecture slides: The Internet
Lecture slides: Router architectures
Research reading: Internet inter-domain traffic
Lab assignment: Lab-3: Static routing
- Week-5: (Sep 17,19)
Intradomain routing: RIP and OSPF
Lecture slides: Distance vector routing and RIP
Lecture slides: Link state routing and OSPF
Research reading: Path splicing
Lab assignment: Lab-4a: Dynamic routing (RIP-related: Parts 1 through 4)
- Week-6: (Sep 24,28, and Oct 1)
Interdomain routing: BGP
Lecture slides (for both lectures): Path vector routing and BGP - Policy-based routing
Additional material: BGP best route selection
Research reading: BGP routing policies in ISP networks
Research reading: Pathlet routing
Lab assignment: Lab-4b: Dynamic routing (OSPF-related: Parts 5 and 6)
- Week-7: (Oct 3,8,10)
Router algorithmics: switch scheduling and packet forwarding algorithms
Lecture slides: Packet switching (see also the Wikipedia article for Clos network)
Lecture slides: IP-lookup algorithms
Research reading: The iSLIP scheduling algorithm for input-queued switches
Research reading: Survey and taxonomy of IP lookup algorithms
Lab assignment: Lab-4c: Dynamic routing (BGP-related: Part 7)
- Week-8: (Oct 17,22)
Transport protocols: UDP and TCP
Lecture slides: Transport protocols - part 1
Research reading: The power of explicit congestion control
Research reading: Bandwidth estimation: metrics, measurement methods and tools
Lab assignment: Lab-5a: Transport protocols
- Week-9: (Oct 22,26,29)
TCP flow, error and congestion control
Lecture slides: Transport protocols - part 2
Lecture slides: Transport protocols - part 3
Lecture slides: Read the first 3 sections to understand mostly the Bandwidth-Delay Product (BDP) concept.
Research reading: CUBIC: A new TCP-friendly high-speed TCP variant
Lab assignment: Lab-5b: Transport protocols
- Week-10: (Oct 31, Nov 2)
LAN switching, bridges and VLANs
Lecture slides: LAN switching
Lecture slides: VLANs (optional)
Research reading: The cost of a cloud: research problems in data center networks
Lab assignment: Lab-6: LAN switching
- Week-12: (Nov 5, 7)
The Domain Name System (DNS)
Lecture slides: The DNS system and protocol
Lecture slides: DNS-based server selection
Lecture slides: Anycast routing for DNS root servers
Research reading: DONAR: Decentralized server selection for cloud services
Research reading: An overview of DNS-based server selections in content distribution networks
Lab assignment: Lab-8: DNS
- Week-11: (Nov 9, 19)
DHCP and NATs
Lecture slides: DHCP
Lecture slides: Network address translation
Lecture slides: NAT traversal
Research reading: On Dominant Characteristics of Residential Broadband Internet Traffic
Research reading: Understanding Block-level Address Usage in the Visible Internet
Lab assignment: Lab-7: NAT and DHCP
- Week-13: (Nov 21, 26)
The Simple Network Management Protocol (SNMP)
Lecture slides: SNMP and network management
Research reading: Virtual Routers on the Move: Live Router Migration as a Network Management Primitive
Lab assignment: Lab-9: SNMP
- Week-14: (Nov 28, Dec 3)
IP Multicast
Lecture slides: IP multicast
Lab assignment: Lab-10: Multicasting
- Week-15: (Dec 5)
Network Security
Research reading: Hardware-based malware detection
Research reading: Spamming Botnets: Signatures and Characteristics
The lab exercises are described in the Lab Manual. Each exercise
has a "prelab" section that you will need to study before doing
the lab.
Also, each exercise has a number a questions that you
will answer during the lab session.
A report (in electronic form)
that includes your answers is due one week after your group was assigned
to complete that lab exercise. Your report should focus on
qualitative facts and explanations; you do not need to submit
lengthy traces and raw data.
The lab exercises, and the lab reports, will be done by groups of
THREE students.
Each group will have access to the lab for a specific day
of the week, either in the "morning time slot" (until 2pm) or
in the "evening time slot" (after 3pm). The lab will be open
in the weekends in case you need some extra time.
Each group will pick a time slot on the class of Monday, August 27
(make sure that you attend that class).
It is very important that you clean up the lab after your time
slot. Additionally, you should unplug all network cables and
return them to the cable box, undo any changes you made in
host or router configuration files, and report any potential problems
with the equipment to the instructor (and to the next group).
You should NOT leave data files saved on the PCs.
You need to leave the machines in a ``clean state''.
The same goes for routers.
ROM-monitor mode recovery is not fun, so make sure that you do NOT
save the router configurations.
Shutting down PCs: Do NOT just switch off the power of the PCs.
It makes the routers unhappy and the PCs will sometimes fail to boot.
In the router case, the 'reset' command will get them started normally.
The PCs should work after a power cycle.
Unfortunately, the PCI eth1 cards often come out of their sockets in the PCs.
If a card all of a sudden stops showing up in the output of 'lspci',
it is likely that the card has come out of its socket.
In that case please notify the TA as soon as possible.
We need to unlock that PC and reposition the card.
- Lab reports: 30%
- Midterm exam: 25%
- Final exam: 25%
- Class presentation: 10%
- Class participation: 10%
- All work for this class, except the lab exercises and reports,
is to be done individually.
You are strongly urged to familiarize yourselves with the
GT Student Honor Code
rules. Specifically, the following is not allowed:
- Copying, with or without modification, someone else's work when this work is
not meant to be publicly accessible (e.g., a classmate's program or solution).
- Submission of material that is wholly or substantially identical to that
created or published by another person or persons, without adequate credit
notations indicating authorship (plagiarism).
You are encouraged to discuss problems and papers with others as long as this
does not involve copying of code or solutions. Any public material that you
use (open-source software, help from a text, or substantial help from a
friend, etc...) should be acknowledged explicitly in anything you submit to us.
If you have any doubt about whether something is legal or not please do
check with the class Instructor or the TA.
- Absolutely no late homeworks, assignments, or projects will be accepted.
The deadline for each homework/assignment/project will be specified at the
corresponding handout.