Fundamentals of Networking Engineering

18h 6m 23s
English
Paid

Course description

We are entering an era in software engineering where we rely on libraries and frameworks to do most of our work. While this is useful and save tremendous dev hours, it creates leaky abstractions that manifest in form of performance degradation, unexpected errors, 100% CPU , network and disk usage, hangs, latency and many other. It becomes difficult to articulate what goes wrong on the backend and how to fix it when engineers don't understand the basic building block of what they are interacting with.

Read more about the course

Network communication is one of the most critical pieces in backend engineering. And the TCP/IP Internet suite is the basic fundemntal building block of communications that link the frontend to the backend. Any protocol we use eventually gets encapsulated into either a TCP segment or UDP datagram. That packet is wrapped in an IP packet which is placed into a frame and then sent across the network. These layers are important to understand for backend engineers in order to optimize the stack, minimize latency, and increase throughput. What matters  is the true understanding of these pieces and not just memorizing definitions and packet headers to pass an exam. If an engineer truly understood what is happening when their backend API receives an HTTP POST request for example, they will be astonished at how much is happening behind the scenes. They would completely change the way they approach backend API designs, they will try to select the best protocol for the job, and they will tune that protocol to its maximum potential. They will start asking questions about frameworks and libraries that nobody else does. It is those questions that will make them fully utilize those framework to their maximum potential.

This course is primarily designed for backend engineers who built applications, services or APIs and want to take their skillset to the next level. If you are a frontend engineer who are interested in the backend and have attempted to build backend apps before this course is also for you. If you are a network engineer who already know the basic fundamentals and want to start building backend applications effectively this course might help you bridge the gap

This course is not designed for those who want to pass network certification tests (CCNA, CCNP, CCIE etc..)

Watch Online

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

Watch Online Fundamentals of Networking Engineering

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

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

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Fundamentals of Database Engineering

Fundamentals of Database Engineering

Sources: udemy
Database Engineering is a very interesting sector in software engineering. If you are interested in learning about database engineering you have come to the rig
26 hours 2 minutes 59 seconds
Mastering Postgres | The most comprehensive course on PostgreSQL

Mastering Postgres | The most comprehensive course on PostgreSQL

Sources: Aaron Francis
Your application operates at the speed of the slowest query, regardless of the language, framework, or platform you use. The course "Mastering Postgres"...
16 hours 13 minutes 30 seconds
Fullstack Typescript with TailwindCSS and tRPC Using Modern Features of PostgreSQL

Fullstack Typescript with TailwindCSS and tRPC Using Modern Features of PostgreSQL

Sources: fullstack.io
This comprehensive course will equip you with the skills and knowledge to build modern full-stack applications using TypeScript, TailwindCSS, tRPC, and PostgreS
4 hours 54 minutes 49 seconds
Relational Databases

Relational Databases

Sources: Oz Nova (csprimer.com)
Modern business processes rely on data, and most companies use complex database management systems (DBMS) to store and process this data.
13 hours 15 minutes 17 seconds
PostgreSQL Replication, High Availability HA and Scalability

PostgreSQL Replication, High Availability HA and Scalability

Sources: udemy
PostgreSQL is one of the most powerful and user-friendly database management systems. It is actively supported by the community and receives new releases...
3 hours 9 minutes 35 seconds