University of Colorado Boulder

Network Systems Foundations

Eric Keller

Instructor: Eric Keller

3,020 already enrolled

Included with Coursera Plus

Gain insight into a topic and learn the fundamentals.
4.3

(36 reviews)

Intermediate level

Recommended experience

Flexible schedule
Approx. 19 hours
Learn at your own pace
Build toward a degree
Gain insight into a topic and learn the fundamentals.
4.3

(36 reviews)

Intermediate level

Recommended experience

Flexible schedule
Approx. 19 hours
Learn at your own pace
Build toward a degree

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.

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

5 quizzes

Taught in English

See how employees at top companies are mastering in-demand skills

Placeholder

Build your subject-matter expertise

This course is part of the Network Systems: Principles in Practice Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate
Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 5 modules in this course

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.

What's included

7 videos3 readings1 quiz1 programming assignment

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

What's included

9 videos1 reading1 quiz1 programming assignment

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.

What's included

7 videos1 reading1 quiz1 programming assignment

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.

What's included

6 videos1 reading1 quiz2 programming assignments

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.

What's included

6 videos1 reading1 quiz1 programming assignment

Instructor

Instructor ratings
3.8 (16 ratings)
Eric Keller
University of Colorado Boulder
3 Courses3,644 learners

Offered by

Recommended if you're interested in Computer Security and Networks

Build toward a degree

This course is part of the following degree program(s) offered by University of Colorado Boulder. If you are admitted and enroll, your completed coursework may count toward your degree learning and your progress can transfer with you.¹

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

Showing 3 of 36

4.3

36 reviews

  • 5 stars

    66.66%

  • 4 stars

    19.44%

  • 3 stars

    2.77%

  • 2 stars

    2.77%

  • 1 star

    8.33%

JT
4

Reviewed on Nov 23, 2024

IM
4

Reviewed on Aug 10, 2024

MS
5

Reviewed on Sep 22, 2024

New to Computer Security and Networks? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions