CS3502 Computer Communications and Networks

This course covers basic computer networking concepts and technology through the study of protocols at each layer of the Internet architecture. Materials taught in class are reinforced through laboratory projects. Prerequisite: a solid background in Computer Architecture, Algorithm and Data Structures, and programming experience with C/C++ or Java are important for success in this class.

Prerequisite

CS2011 or CS3030 or EC2700

Lecture Hours

3

Lab Hours

2

Course Learning Outcomes

Upon successfully completing the course, the student will be able to perform these tasks.

  • Explain functionality of major networking hardware components of an enterprise network, including switches and routers, and how they interconnect.
  • Elucidate the role and operation of common Internet protocols, including Ethernet, VLAN, IP, IPv6, DHCP, ARP, TCP, UDP, ICMP, SMTP, HTTP, FTP, DNS and NAT
  • Demonstrate understanding of broad classes of network traffic (transactional/interactive, bulk transfer, streaming) and their characteristics
  • Explain the Internet structure at autonomous system and router levels, and its major building blocks, including points of presence, Internet exchange points, and content distribution networks.
  • Explain the difference between circuit switching, packet switching, and message switching.
  • Explain the difference between packet forwarding and routing.
  • Explain functionality of inter and intra-domain routing protocols, including RIP, OSPF, and BGP
  • Compute transmission delay and propagation delay of a communication link and describe the relationship between traffic intensity and queueing delay at a shared link.
  • Measure and explain major factors for end-to-end packet latency, packet loss rate, and application throughput.
  • Use timing diagrams to model and analyze protocol behavior.
  • Capture and analyze packet traces using tools such as Wireshark.
  • Troubleshoot basic networking connectivity using tools such as ping and traceroute.
  • Write basic client server or peer-to-peer applications that use TCP or UDP.
  • Elucidate the key design rationales behind emerging technologies such as data center networks and software defined networks.