Network Systems Foundations (Coursera)

Network Systems Foundations (Coursera)

Welcome! Throughout this course, Network Systems Foundations, you will delve into the fundamental layers of network communication. You will start with a thorough discussion of the Link Layer and its crucial role, moving on to the intricacies of Internet Protocol (IP) and router data planes, and then navigate through the complexities of the transport layer, application layer, and network security.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

With a practical focus, you'll write Python code to manage routing tables, analyze network traffic, simulate router functionalities, and create digital certificates for web servers. By the end of this course, you will have a well-rounded understanding of networking principles, from data transmission and routing to application protocols and security, and will be equipped with practical skills to navigate the ever-evolving landscape of network technology.
By completing this course, learners will be able to:

  1. Describe the layers in depth and how they relate to one another
  2. Analyze traffic through python programming
  3. Design a simplified routing protocol that has similar features as to what powers the Internet
  4. Create a client and server with socket programming
  5. Generate certificates for TLS which powers the security in https

What you'll learn

  • 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.

Syllabus

Link Layer
Welcome to Network Systems Foundations, over the next five weeks you'll explore topics related to network systems. This will center on the layered design of networks, and cover the link layer (Ethernet), network layer (IP), transport layer (TCP, UDP), and application layer (HTTP, gRPC). With those as a foundation, you will learn about network security problems and how current solutions work at different layers. 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.

Network Layer
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).

Transport Layer
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.

Application Layer
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.

Network Security
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.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Comparing Genes, Proteins, and Genomes (Bioinformatics III) (Coursera) Coursera
University of California, San Diego

Comparing Genes, Proteins, and Genomes (Bioinformatics III) (Coursera)

Once we have sequenced genomes in the previous course, we would like to compare them to determine how species have evolved and what makes them different. In the first half of the course, we will compare two short biological sequences, such as genes (i.e., short sequences of DNA) or proteins. We will encounter a powerful algorithmic tool called dynamic programming that will help us determine the number of mutations that have separated the two genes/proteins.

Nov 9th 2026
5-12 Weeks
An Introduction to Interactive Programming in Python (Part 1) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 1) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Nov 2nd 2026
5-12 Weeks
Kali Linux (Coursera) Coursera
Board Infinity

Kali Linux (Coursera)

"Introduction to Kali Linux" is a meticulously designed course to guide beginners through the essentials of Kali Linux, a powerful tool for cybersecurity. Spanning two modules, the course begins with a comprehensive introduction to Kali Linux, its installation, navigation, and essential tools. It then advances into practical applications, covering network monitoring, ethical hacking principles, penetration testing, and vulnerability assessment.

Nov 9th 2026
2 Weeks
IoT Communications and Networks (Coursera) Coursera
Institut Mines-Telecom

IoT Communications and Networks (Coursera)

By presenting the building blocks of the IoT network architecture, this MOOC will help learners adapt to the fast changing communications and networking environment of IoT. The IoT world represents billions of sophisticated objects, such as sensors, actuators and meters, that are deployed nearly everywhere, in homes, hospitals, factories, cities, and are connected to the Internet. However, they come with limited capacity in terms of memory storage, computational power and energy; how can these objects then ensure network reliability and timely transmission?

Nov 9th 2026
4 Weeks
Cloud Computing Fundamentals on Alibaba Cloud (Coursera) Coursera
Alibaba Cloud Academy

Cloud Computing Fundamentals on Alibaba Cloud (Coursera)

Looking to dive into the world of Alibaba Cloud with a comprehensive introduction to the range of products and solutions offered by Alibaba Cloud? Fundamental Architecting on Alibaba Cloud is a course designed for users looking to start this journey with a look into Alibaba Cloud's core products. Fundamental Architecting looks into storage, networking, auto-scaling, and security solutions as well as scenarios to best combine these products to create a complete cloud-based architecture.

Nov 9th 2026
5-12 Weeks
Core 2: OS, Software, Security and Operational Procedures (Coursera) Coursera
IBM

Core 2: OS, Software, Security and Operational Procedures (Coursera)

Are you interested in becoming a proficient and sought-after IT professional? Are you currently or do you plan to pursue a career in an IT support, network technician, or other IT-related role? This IBM course, designed for individuals with IT Fundamentals knowledge, is part of a series of courses that will help you prepare for the CompTIA Core 2 Certification exam. You will gain a solid foundation in operating systems, IT support best practices and procedures, and the skills necessary to excel in an IT role.

Nov 9th 2026
5-12 Weeks
An Introduction to Interactive Programming in Python (Part 2) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 2) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Nov 2nd 2026
4 Weeks
Career 911: Your Future Job in Medicine and Healthcare (Coursera) Coursera
Northwestern University

Career 911: Your Future Job in Medicine and Healthcare (Coursera)

This course aims to help high school students, recent graduates, and those considering career transitions explore health care career options and learn strategies for entry into the health care workforce and health related fields. There are lots of amazing job opportunities in medicine and healthcare! Join us, as we share the strategies and secrets for getting those jobs.

Nov 9th 2026
5-12 Weeks