We may earn an affiliate commission when you visit our partners.
Course image
Course image
Coursera logo

Network Systems Foundations

Eric Keller

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

Read more

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

This course can be taken for academic credit as part of CU Boulder’s Masters of Science in Computer Science (MS-CS) degrees offered on the Coursera platform. This fully accredited graduate degree offer targeted courses, short 8-week sessions, and pay-as-you-go tuition. Admission is based on performance in three preliminary courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals. Learn more:

MS in Computer Science: https://coursera.org/degrees/ms-computer-science-boulder

Course logo by Jordan Harrison on Unsplash.

Enroll now

What's inside

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.
Read more
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Emphasizes both theoretical understanding and practical implementation, enhancing your knowledge and skills in network technologies
Suitable for individuals with a foundational understanding of computer networks and programming, preparing you to delve deeper
Empowers you with Python programming skills to manage routing tables, analyze network traffic, and create digital certificates
Led by experienced instructors Eric Keller, who bring industry knowledge and expertise to the learning experience
Offers an academic credit option as part of CU Boulder's Masters of Science in Computer Science (MS-CS) degrees, allowing you to apply your credits towards an accredited graduate degree

Save this course

Save Network Systems Foundations to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Network Systems Foundations. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Network Systems Foundations will develop knowledge and skills that may be useful to these careers:
Network Engineer
A Network Engineer plays an integral role in the design, installation, and maintenance of computer networks across an organization. This course lays a strong foundation for a career as a Network Engineer, providing a comprehensive understanding of the fundamental layers of network communication, including the Link Layer, Internet Protocol (IP), router data planes, transport layer, and application layer. The hands-on Python programming assignments further equip Network Engineers with practical skills for managing routing tables, analyzing network traffic, and simulating router functionalities, preparing them for real-world network management challenges.
Network Security Analyst
A Network Security Analyst is responsible for protecting an organization's network infrastructure and data from unauthorized access, intrusion, and cyber threats. This course provides Network Security Analysts with a comprehensive understanding of network security principles, including IPsec, RPKI, TLS/HTTPS, and digital certificates. It also covers the fundamentals of network communication, network layers, and application protocols, building a solid foundation for securing networks and data.
Network Administrator
A Network Administrator manages and maintains the day-to-day operations of an organization's computer network, ensuring smooth network performance and resolving technical issues. This course provides Network Administrators with a thorough understanding of network protocols, routing, and security, enabling them to effectively manage and troubleshoot network systems. The practical Python programming assignments help Network Administrators develop hands-on skills in managing route announcements and withdrawals, simulating router functionalities, and analyzing network traffic.
Cloud Network Architect
A Cloud Network Architect designs and implements network architectures for cloud computing environments, ensuring optimal network performance and security. This course provides Cloud Network Architects with a deep understanding of network communication principles and the practical skills to manage and secure cloud networks. The coverage of network layers, routing, and security, combined with the Python programming assignments, prepares Cloud Network Architects for the challenges of designing and managing cloud-based network infrastructures.
Network Consultant
A Network Consultant provides expert advice and guidance to organizations on network design, implementation, and security. This course equips Network Consultants with a comprehensive understanding of network technologies, protocols, and best practices. The coverage of network layers, routing, transport layer, and application layer, along with the hands-on Python programming assignments, helps Network Consultants build a solid foundation for providing expert network consulting services.
Software Engineer
A Software Engineer designs, develops, and maintains software applications. This course may be useful for Software Engineers who wish to specialize in network programming or develop network-centric software applications. The coverage of network layers, transport layer, and application layer, as well as the Python programming assignments, provides Software Engineers with a solid foundation for understanding and implementing network-related software solutions.
Data Scientist
A Data Scientist analyzes and interprets data to extract insights and knowledge. This course may be useful for Data Scientists who wish to gain a deeper understanding of network communication and data transmission. The coverage of network layers, routing, and transport layer provides Data Scientists with a foundation for understanding how data is transmitted over networks and how network performance can impact data analysis and modeling.
IT Manager
An IT Manager oversees the planning, implementation, and maintenance of an organization's IT infrastructure, including networks, servers, and software. This course provides IT Managers with a comprehensive understanding of network technologies and best practices. The coverage of network layers, routing, and security, along with the hands-on Python programming assignments, helps IT Managers build a solid foundation for effectively managing and optimizing network infrastructure.
Cybersecurity Analyst
A Cybersecurity Analyst identifies, assesses, and mitigates cybersecurity risks and threats. This course provides Cybersecurity Analysts with a strong foundation in network security principles and technologies. The coverage of IPsec, RPKI, TLS/HTTPS, and digital certificates, along with the practical Python programming assignments, equips Cybersecurity Analysts with the skills to secure networks and prevent cyber threats.
Information Security Analyst
An Information Security Analyst implements and manages an organization's information security program, including network security. This course provides Information Security Analysts with a comprehensive understanding of network security principles and technologies. The coverage of IPsec, RPKI, TLS/HTTPS, and digital certificates, along with the practical Python programming assignments, helps Information Security Analysts build a solid foundation for securing networks and protecting sensitive data.
Web Developer
A Web Developer designs, develops, and maintains websites and web applications. This course may be useful for Web Developers who wish to gain a deeper understanding of network communication and web application security. The coverage of network layers, transport layer, application layer, and HTTP provides Web Developers with a foundation for understanding how web applications interact with networks and how to implement secure web applications.
Mobile Application Developer
A Mobile Application Developer designs, develops, and maintains mobile applications. This course may be useful for Mobile Application Developers who wish to gain a deeper understanding of network communication and mobile application security. The coverage of network layers, transport layer, application layer, and gRPC provides Mobile Application Developers with a foundation for understanding how mobile applications interact with networks and how to implement secure mobile applications.
Technical Support Specialist
A Technical Support Specialist provides technical support to users of computer systems and software. This course provides Technical Support Specialists with a broad understanding of network technologies and troubleshooting techniques. The coverage of network layers, routing, and security, along with the practical Python programming assignments, helps Technical Support Specialists build a solid foundation for resolving network-related technical issues.
Systems Administrator
A Systems Administrator manages and maintains computer systems, including networks, servers, and software. This course provides Systems Administrators with a comprehensive understanding of network technologies and best practices. The coverage of network layers, routing, and security, along with the hands-on Python programming assignments, helps Systems Administrators build a solid foundation for effectively managing and optimizing network infrastructure.
Information Technology Specialist
An Information Technology Specialist provides technical support and consulting services to organizations on a wide range of IT-related issues, including network management. This course provides Information Technology Specialists with a broad understanding of network technologies and best practices. The coverage of network layers, routing, and security, along with the practical Python programming assignments, helps Information Technology Specialists build a solid foundation for effectively managing and troubleshooting network issues.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Network Systems Foundations.
Provides a comprehensive overview of computer networking, covering topics from the physical layer to the application layer. It valuable resource for students and professionals who want to learn more about the fundamentals of networking.
Classic reference on the TCP/IP protocol suite. It provides detailed explanations of the protocols and how they work together. It valuable resource for network engineers and anyone who wants to learn more about TCP/IP.
Provides a comprehensive overview of routing TCP/IP networks. It covers topics such as routing protocols, routing tables, and network performance. It valuable resource for network engineers and anyone who wants to learn more about routing.
Provides a comprehensive overview of network security. It covers topics such as cryptography, authentication, and firewalls. It valuable resource for network engineers and anyone who wants to learn more about network security.
Provides a comprehensive overview of the HTTP protocol. It covers topics such as HTTP methods, headers, and response codes. It valuable resource for web developers and anyone who wants to learn more about HTTP.
Provides a comprehensive overview of Wireshark, a network protocol analyzer. It covers topics such as Wireshark basics, protocol analysis, and troubleshooting. It valuable resource for network engineers and anyone who wants to learn more about Wireshark.
Provides a comprehensive overview of the TCP/IP protocol suite. It covers topics such as TCP/IP architecture, routing, and security. It valuable resource for anyone who wants to learn more about TCP/IP.
Provides a comprehensive overview of networking concepts. It covers topics such as network topologies, protocols, and security. It valuable resource for anyone who wants to learn more about networking.
Provides a comprehensive overview of computer security. It covers topics such as cryptography, authentication, and access control. It valuable resource for anyone who wants to learn more about computer security.
Provides a comprehensive overview of computer networks. It covers topics such as network topologies, protocols, and applications. It valuable resource for anyone who wants to learn more about computer networks.
Provides a comprehensive overview of data communications and networking. It covers topics such as data transmission, network protocols, and network security. It valuable resource for anyone who wants to learn more about data communications and networking.
Provides a comprehensive overview of network security. It covers topics such as cryptography, authentication, and network security controls. It valuable resource for anyone who wants to learn more about network security.
Provides a comprehensive overview of Python for network programming. It covers topics such as socket programming, web scraping, and network security. It valuable resource for anyone who wants to learn more about Python for network programming.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Network Systems Foundations.
Network Principles in Practice: Cloud Networking
Most relevant
Network Principles in Practice: Linux Networking
Most relevant
Computing, Ethics, and Society Foundations
Most relevant
Applications of Software Architecture for Big Data
Most relevant
Dynamic Programming, Greedy Algorithms
Most relevant
Fundamentals of Software Architecture for Big Data
Most relevant
Deep Learning Applications for Computer Vision
Most relevant
Fundamentals of Data Visualization
Most relevant
Software Architecture Patterns for Big Data
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser