Dr. Muhammad Shahzad
CSC 573 Internet Protocols
3 Credit Hours
(also offered as ECE 573)
Principles and issues underlying provision of wide area connectivity through interconnection of autonomous networks. Internet architecture and protocols today and likely evolution in future. Case studies of particular protocols to demonstrate how fundamental principles applied in practice. Selected examples of networked clinet/server applications to motivate the functional requirements of internetworking.
CSC/ECE 570 Computer Networks. Programming experience in C/C++ or Java is recommended.
- Demonstrate understanding of the fundamental problems, trade-offs, and design issues that arise in internetworking, as well as identify and critically evaluate internet technologies, solution approaches, and design methodologies for future network architectures.
- Understand the details of several particular protocols, as example implementations of fundamental principles, and digest descriptions of specific protocols, extracting the fundamental concepts.
- Design and implement complex networked applications, protocols, and algorithms, and use the socket interface.
- Apply basic concepts to new networking environments
Throughout the course, the students are expected to complete written homework and programming projects. There will be one midterm and one final exam. All exams will be closed book and in-class/proctored.
Computer and Internet Requirements
Students are expected to have full access to a computer that meets or exceeds the following capabilities to accomplish the projects of this course:
- “Reasonably powerful x86 hardware” to “Reasonably powerful x86 or x64 hardware“
- “1GB RAM” to “4GB RAM“
- 16GB free hard disk space
- OS that is supported by VirtualBox (Windows, Linux, Mac OS X, Solaris and OpenSolaris)
As the course puts strong emphasis on hands-on experiences and practical training in computer networking, your assignments require you to perform programming inside the Linux kernel. To do that, we recommend that you install VirtualBox on your computer, create 2 virtual machines, and install Ubuntu 10.04 LTS on both virtual machines. The virtual box ensures that you have superuser privileges on the Linux boxes and your computer won’t crash due to your programming errors in the kernel (only the virtual machine crashes). The above hardware requirements are for a smooth experience with the virtual machines. For more information on VirutalBox, refer to http://www.virtualbox.org/