Version 1/6/2006
Instructor: John Copeland
Office: TTh VL-292B, MWF Centergy 5138
Email: john.copeland@ece.gatech.edu
Phone: 404-894-5177 (MWF)
Office Hours T/Th 10:00-12:00 a.m. Van Leer 292B
TAs:
Brian Faust gte889v@mail.gatech.edu
Patryk Prus gtg941d@mail.gatech.edu
Neil Joshi gte905z@mail.gatech.edu
Class Web site: http://www.csc.gatech.edu/copeland/jac/4110/
Fall 2005 Web site: http://users.ece.gatech.edu/~owen/Academic/academic.htm
Class Laboratory: COC 311
Lab Hours: See Schedule on door. It is an "open" lab; Lab T.A.s for this class post hours also. It is during these hours you may obtain help and or get signed off for completing a lab assignment.
You will work in “groups of two” on the labs. It is OK to talk to others and help each other in the lab.
3 hours of class per week, approximately 3 hours of lab per week, 4 hours of credit
This class covers how the Internet works and includes hands on practical networking exercises for the laboratory. Both Internet hardware (equipment) and software (both sockets programming and TCP/IP protocol implementation) are included in this class. Students use routers, network test equipment, hardware as well as software traffic generators, etc in the laboratory. The class also covers some aspects of network security. Using the Linux operating system, students examine the networking portions of the operating system in order to perform modifications to the computer's TCP/IP implementation. The laboratory consists of C programming on computers running Linux and working with computer network equipment such as routers and switches. Laboratory work is done in teams in an "open" laboratory in COC311which has class TA support during limited hours.
Last Semester Student reviews of Class and Instructor:
Available on line at class web site http://users.ece.gatech.edu/~owen/Academic/academic.htm under last semester’s class info.
Policy on Commenting Software:
Fully commenting code, even code that you were given as a starting point is mandatory. This is one of the instructor’s pet peeves. You must fully comment all code you turn in and must include comments to explain all of the code you turn in. (Even those parts of the code you did not write but were given as a starting point). You must include in the comments an explanation of what the purpose of the code is, the date the code was originally written, the date the code was last modified, your lab team member names and your group number must be in the comments. The last date modified must be correct and in the comments.
Policy on Handouts:
If you miss class you may obtain the class handouts from outside COC 360 on the bookshelves in a box labeled ECE4110. Class Web site also has assignments but not the lectures:
http://users.ece.gatech.edu/~owen/Academic/academic.htm
Prerequisites: ECE3076 Or CS3251 Or ISYE 3770 Or MATH 3770 Or CEE 3770 Or ISYE 2027 and only CMPE ECE EE CS; some previous C Programming (or Java) experience
Text Books
This class really does need three textbooks! We cover lots of really good material and no one textbook has it all. These are excellent references and will serve you well in future jobs or research projects.
Text Two: TCP/IP Illustrated Volume 1, Richard Stevens, ISBN 0-201-63346-9 (This book contains the detailed FTP sessions we will trace packet by packet so as to understand exactly what happens in an FTP session. Additionally this book contains the details of TCP/IP.)
Text Three: TCP/IP Protocol Suite by Forouzan (SECOND EDITION not first!) ISBN 0-07-246060-1 MCGraw Hill (The majority of the class lectures originate from this material.)
References:
TCP/IP and Internets in General:
IP Fundamentals, by Thomas Maufer ISBN 0-13-975483-0)
Internet Core Protocols, Eric Hall and Vint Cerf, O’Reilly, ISBN 1-56592-572-6
TCP/IP Illustrated The Implementation, Volume 2, Gary R. Wright and Richard W. Stevens
LINUX Internet Implementation:
TCP/IP and Linux Protocol Implementation, John Crowcroft and Ian Phillips, Wiley, ISBN 0-471-40882-4
Linux IP Stacks Commentary,” Coriolis Open Press, By Maxwell , ISBN 1576104702
Linux Core Kernel Commentary,” Second Edition, Coriolis Open Press, By Maxwell, ISBN 1588801497
Internet Programming:
The Pocket Guide to TCP/IP Sockets, C Version, Donahoo and Calvert, Morgan Kaufman, ISBN 1-55860-686-6
Beginning LINUX Programming, by Neil Matthew and Richard Stones, WROX Press,ISBN1-874416-68-0
UNIX Network Programming Interprocess Communications, Volume 2, SECOND EDITION, by Richard Stevens
Internetworking with TCP/IP Client-Server Programming and Applications, Volume III, by Douglas E. Comer and David L. Stevens
Interprocess Communications in UNIX, Second Edition, by John Shapley Gray
Intrusion Detection:
Intrusion Signatures and Analysis, Northcutt, Cooper, Fearnow and Frederick, New Riders, ISBN 0-7357-1063-5
Network Intrusion Detection An Analyst’s Handbook, Second Edition, New Riders, ISBN 0-7357-1008-2
Old Tests
Old exams are online on Henry Owen's Web site.
Grading:
Test 1 25%
Test 2 25%
Labs 20%
Final 30%
If you miss a test without prior approval, you will receive a grade of zero for that test. If you do not complete 2 or more of the labs/homeworks in a “timely manner” (within a week of the due date), the highest grade you can get in the class is a B. If you do not complete 4 or more labs in a timely manner, the highest grade you can get in the class is a C. Labs not signed off by the due date will be penalized.
Exams are open notes and closed old exams (but open text books). You are not allowed to bring in old exams during tests. You may use any books, including the class texts during the exam. Thus, reading the class textbooks and knowing where the info you need is located is important. You should always bring a calculator to all exams in this class. You may not use the in class computer during the exams. Cell phones must be turned off and should not be placed on your desk. You are not allowed to use the classroom computer during an exam or a network connection.
For maximal class benefit read the reading assignments prior to the class lectures on the subject.
The laboratory consists of the following labs (subject to change):
Installing the Linux Operating System on a Computer and configuring Networking. Install the Stevens book Sockets code and run examples from the Stevens text.
Modify a sockets program to send TCP traffic to a destination. At the receiver, measure the throughput and report it to the screen. Measure the throughput.
Modify a sockets program to send UDP traffic to a destination and at the destination measure the throughput and report it to the screen. When this program is used in conjunction with the LAB 2 UDP traffic generator, throughput measurements with conflicting traffic on the same Ethernet segment may be made. The TCP traffic generator will slow down as it encounters congestion. Examine how UDP and TCP act differently in a bottleneck situation.
Use a Network Sniffer to examine packet contents.
Configure a Linux box to act as a router. Examination of the routing tables and interface configuration.
Modify the Linux Kernel to print some messages from the Kernel. Build a priority queue that gives priority to a protocol. Run this with TCP receiving priority and then later with UDP receiving priority while using the traffic generators.
Configuring an internetwork from scratch using Cisco routers and switches
RIP Router Lab. Use Cisco Routers to demonstrate Routing Information Protocol (RIP).
OSPF Router Lab. Use Cisco Routers to demonstrate Open Shortest Path First (OSPF) Routing Protocol.
ECE4110 Internetwork Programming Schedule