CSCA 5063: Network Systems Foundation

Get a head start on program admission

ÌýPreview this courseÌýin the non-credit experience today!Ìý
Start working toward program admission and requirements right away.ÌýWork you complete in the non-credit experience will transfer to the for-credit experience when you upgrade and pay tuition. See How It Works for details.

  • Course Type: Breadth
  • Specialization: Network Systems: Principles and Practice (Linux and Cloud Networking)
  • Instructor:ÌýDr. Eric Keller, Associate Professor, Electrical, Computer & Energy Engineering
  • Prior knowledge needed:
    • Programming languages: Basic experience with Python
    • Math: Basic experience with math - through college algebra
    • Technical requirments: Windows or Mac, Linux, VS Code

Learning Outcomes

  • Describe networking layers in depth and how they relate to one another.

  • Analyze traffic through python programming.

  • Design a simplified routing protocol that has similar features as to what powers the Internet.

  • Develop a client and server with socket programming.

Course Grading Policy

Assignment

Percentage of Grade

Quiz: Link Layer

8%

Programming Assignment: Modifying Ethernet Frames

10%

Quiz: Network Layer

8%

Programming Assignment: Network Layer - BGP Like Sim

10%

Quiz: Transport Layer

8%

Programming Assignment: TCP - Find Max Bytes in Flight

10%

Quiz: Application Layer

8%

Programming Assignment: Application Layer - Socket Programming

10%

Quiz: Network Security

8%

Programming Assignment: Network Security Lab - Certificates

10%

CSCA 5063 Network Systems Foundations Final Exam

10%

Course Content

Duration: 3Ìýhours

We'll start the course by understanding the Link Layer, comprehending its critical role, and exploring why it's vital in the realm of network communication. You'll explore the intriguing behavior of network switches, investigating how they react when receiving frames with various destination MAC addresses. You'll learn to distinguish between the characteristics of different channel partitioning methods, offering valuable insights into network efficiency. You'll explore the Ethernet Frame Check Sequence (FCS) field, uncovering its role and significance in data integrity. Finally, you'll have the opportunity to put your knowledge to the test by designing and developing Python code that can skillfully manage route announcements and withdrawals, ensuring the efficient maintenance of a routing table.

Duration: 5 hours

This week, you will explore the network layer, which is responsible for routing packets between different networks and deals with logical addressing, routing, and forwarding. Throughout the week, you'll learn about the intricacies of the Internet Protocol (IP) and its pivotal role in orchestrating the efficient routing of data. Then, you will explore the intricate operations of router data planes and the concept of routing, focusing on the distinctions between Routing Link State Protocol and Routing Path Vector Protocol. You will then turn your attention to troubleshooting techniques for resolving network layer issues. At the end of the week, you will be tasked with the development of a Python program that simulates the functionalities of a simplified router akin to those employed in the Border Gateway Protocol (BGP).

Duration: 3 hours

This week, you will explore the transport layer, which ensures end-to-end communication, error detection, and data flow control, and protocols like TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) work at this layer. You'll begin the week with an overview of the transport layer and its relationship with the other layers. Then, you learn about multiplexing and how to efficiently combine multiple data streams into a single channel. Then the TCP protocol will be explored, beginning with the establishment of connections and extending to the nuances of congestion control. The concludes with a programming assignment in Python, where you will analyze a pcap file containing a single TCP flow to determine the maximum bytes in flight—a hands-on exploration of the week's concepts.

Duration: 4 hours

This week, you will explore the application layer, where application-specific protocols and services reside. It includes protocols for services like email (e.g., SMTP), web browsing (e.g., HTTP), and file transfer (e.g., FTP). You'll begin the week with an overview of the application layer and its relationship with the other layers. Then, you'll explore the Domain Name System (DNS), unraveling its role in translating domain names to IP addresses. A vital aspect of network application development, socket programming, will be discussed, equipping you with the knowledge to facilitate network communication. The week further delves into application protocols, specifically HTTP and gRPC, detailing their structures and functions. This week, you'll have two programming assignments: one to explore gRPC, and the other, a graded assignment, to create a client-server using socket programming for RPC functionality.

Duration: 2 hours

In this final week, you will delve into network security. The week begins with the basics of network security, then focuses on the intricacies of IPsec, securing the network data plane, and the role of RPKI in fortifying the network control plane. You will examine the bedrock of secure communication—TLS/HTTPS, which extends its protective embrace to the transport and application layers. The week will end with a programming assignment where you will create a digital certificate for a web server.

Duration: 1 hour

This module contains materials for the final exam that is similar to the quiz assignments you have completed throughout the course. It contains multiple choice questions, and it is one hour, not proctored and you may not use any notes or access other websites when you take your exam.

Notes

  • Cross-listed Courses: CoursesÌýthat are offered under two or more programs. Considered equivalent when evaluating progress toward degree requirements. You may not earn credit for more than one version of a cross-listed course.
  • Page Updates: This page is periodically updated. Course information on the Coursera platform supersedes the information on this page. Click theÌýView on CourseraÌýbuttonÌýabove for the most up-to-date information.