Skip to main content
CF

Fundamentals of Networking Engineering

18h 6m 23s
English
Paid

Welcome to the Fundamentals of Networking Engineering course! In today's software landscape, we heavily rely on libraries and frameworks, which, although beneficial, often lead to performance issues and unexpected errors. This course aims to address these challenges by providing a deep understanding of the underlying principles of networking.

Importance of Network Communication

Network communication is a crucial component of backend engineering. At its core, the TCP/IP suite is the fundamental building block that connects the frontend to the backend. Every protocol we use is eventually encapsulated within a TCP segment or UDP datagram, wrapped in an IP packet, framed, and then transmitted across networks.

Understanding these layers is vital for backend engineers to optimize performance, reduce latency, and increase throughput. Mastery of these concepts goes beyond memorizing definitions; it is about grasping the intricate processes at play when an API receives a request.

Transforming Backend API Design

By understanding the complexities of network interactions, engineers can revolutionize their approach to backend API design. This knowledge empowers them to:

  • Select the most appropriate protocol for their needs.
  • Optimize and tune the chosen protocol to its full potential.
  • Critically assess frameworks and libraries to maximize their utility.

Armed with this knowledge, they will pose insightful questions that enable them to fully leverage existing frameworks.

Who is This Course For?

This course is tailored for:

  • Backend engineers looking to elevate their applications, services, or API development skills.
  • Frontend engineers interested in delving into backend engineering through previous experience in building backend applications.
  • Network engineers wishing to transition into backend application development with a solid foundational knowledge.

Please note: This course is not intended for those solely seeking to pass network certification exams (e.g., CCNA, CCNP, CCIE).

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 61 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 61 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: 1.1. Welcome
All Course Lessons (61)
#Lesson TitleDurationAccess
1
1.1. Welcome Demo
02:45
2
1.2. Who is this course for
03:19
3
1.3. Course Outline
10:05
4
2.1. Client - Server Architecture
07:08
5
2.2. OSI Model
47:30
6
2.3. Host to Host communication
14:57
7
3.1. The IP Building Blocks
18:17
8
3.2. IP Packet
30:12
9
3.3. ICMP, PING, TraceRoute
17:40
10
3.4. ARP
12:03
11
3.5. Capturing IP, ARP and ICMP Packets with TCPDUMP
13:12
12
3.6. Routing Example
12:29
13
3.8. Private IP addresses (Alaska Airlines WIFI example)
10:09
14
4.1. What Is UDP
12:38
15
4.2. User Datagram Structure
05:45
16
4.3. UDP Pros & Cons
11:39
17
4.4. Sockets, Connections and Kernel Queues
33:53
18
4.5. UDP Server with Javascript using NodeJS
08:36
19
4.6. UDP Server with C
07:57
20
4.7. Capturing UDP traffic with TCPDUMP
09:57
21
5.1. What is TCP
29:38
22
5.2. TCP Segment
08:49
23
5.3. Flow Control
13:43
24
5.4. Congestion Control
15:04
25
5.5. Slow Start vs Congestion Avoidance
10:15
26
5.6. NAT
22:06
27
5.7. TCP Connection States
06:23
28
5.8. TCP Pros and Cons
11:53
29
5.9. TCP Server with Javascript using NodeJS
06:43
30
5.10. TCP Server with C
08:18
31
5.11. Capturing TCP Segments with TCPDUMP
23:49
32
6.1. Networking Protocols Introduction
03:18
33
6.2. DNS
39:29
34
6.3. TLS
27:00
35
6.4. HTTPS, TLS, Keys and Certificates
01:01:39
36
7.1. What is this section
01:26
37
7.2. MSS vs MTU vs PMTUD
16:27
38
7.3. Nagle's Algorithm's Effect on Performance
12:09
39
7.4. Delayed Acknowledgment Effect on Performance
05:39
40
7.5. Cost of Connection Establishment
11:53
41
7.6. TCP Fast Open
05:44
42
7.7. Listening Server
30:21
43
7.8. TCP Head of line blocking
04:02
44
7.9. The importance of Proxy and Reverse Proxies
20:06
45
7.10. Load Balancing at Layer 4 vs Layer 7
27:52
46
7.11. Network Access Control to Database Servers
17:21
47
8.1. Fundamentals of Network Routing
01:07:15
48
8.2. Networking with Docker
48:59
49
9.1. Wiresharking UDP
06:59
50
9.2. Wiresharking TCPHTTP
16:43
51
9.3. Wiresharing HTTP2 (Decrypting TLS)
16:50
52
9.4. Wiresharking MongoDB
22:44
53
9.5. Wiresharking Server Sent Events
06:17
54
10.1. Should Layer 4 Proxies buffer segments
10:25
55
10.2. How does the Kernel manage TCP connections
04:56
56
11.1. Course Summary
00:59
57
12.3. What is SNI (Server Name Indication TLS Extension)
50:08
58
12.4. Replacing TCP for Data Centers (Part 1)
31:26
59
12.5. Replacing TCP for Data Centers (Part 2)
23:02
60
12.6. Replacing TCP for Data Centers (Part 3)
29:48
61
12.7. Running out of TCP Source Ports
18:34
Unlock unlimited learning

Get instant access to all 60 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Books

Read Book Fundamentals of Networking Engineering

#TitleTypeOpen
11.1. DNS-Slides PDF
21.2. Fundamentals of Networking Engineering PDF
31.3. HTTPS-TLS-And-Certificates PDF
41.4. IP-TCP-UDP-TLS Slides PDF
51.5. kernel queues PDF
61.6. proxy vs reverse proxy PDF
71.7. Routing PDF
81.8. Sockets, Connections and Queues PDF
91. Fundamentals of Networking for Effective Backends-v2 PDF
103.5. tcpdump-doc PDF
113.8. rfc1918-privateipaddress PDF
125.4. rfc5681 PDF
135.5. rfc5681 PDF
146.2. rfc1035-dns PDF
156.3. rfc5246-tls1.2 PDF
166.3. rfc8446-tls1.3 PDF
177.3. Nagle-Algorithm-rfc896 PDF
187.4. Delayed-ACK-rfc1122 PDF
197.9. proxy vs reverse proxy PDF
208.1. Routing PDF
218.2. docker-networking PDF
2212.9. TLS-0RTT PDF

Related courses

Frequently asked questions

What prerequisites should a student have before taking this course?
Before enrolling in the Fundamentals of Networking Engineering course, students should have a basic understanding of computer science principles and familiarity with programming concepts. Knowledge of backend engineering and an understanding of client-server architecture will be beneficial, as the course delves into networking layers and backend API design optimization.
What projects or skills will I develop during this course?
Throughout the course, students will gain practical experience in network communications, including capturing and analyzing IP, ARP, and ICMP packets using TCPDUMP. They will also develop UDP and TCP servers using NodeJS and C, and learn to optimize backend API design by selecting and tuning appropriate protocols.
Who is the target audience for this course?
The course is designed for backend engineers and software developers interested in mastering network communication principles. It is particularly beneficial for those looking to optimize performance, reduce latency, and increase throughput in their backend systems.
How does this course compare in depth and scope to other networking courses?
This course provides an in-depth understanding of networking principles, focusing on practical applications such as optimizing backend API design and utilizing TCP and UDP protocols. Unlike some introductory courses, it emphasizes critical assessment of frameworks and libraries to maximize utility, making it suitable for those seeking a deeper technical grasp of networking.
What specific tools or platforms are covered in the course?
The course includes practical lessons using tools such as TCPDUMP for packet capturing and Wireshark for network traffic analysis. It also covers server implementation using NodeJS and C programming languages, providing a comprehensive exploration of tools relevant to networking engineering.
What topics are not covered in this course?
The course does not cover frontend development or advanced security topics beyond the basics of TLS and HTTPS. While it introduces networking with Docker, it does not delve into containerization or orchestration platforms like Kubernetes in detail.
What is the expected time commitment for completing the course?
The course consists of 61 lessons, and while the total runtime is not listed, students should anticipate spending several hours per week engaging with the material, completing practical exercises, and reviewing concepts to fully grasp the intricacies of networking engineering.