educative.io

Grokking Computer Networking for Software Engineers (Educative)


Getting to Know the Internet - What is the Internet? Let's start with the big question. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3jQgm8xAnxA). Getting Started - Learning Instruments Here's a short summary of some tools used throughout this course to maximize your learning. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B6Vo9n40pYo). The Transport Layer - What Is the Transport Layer? We finished the application layer, and now we'll study the transport layer. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/gxQl90g1279). The Application Layer - Exercise: Looking at a Real HTTP Request In this lesson, you will be looking at real HTTP messages right from your browser! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7DYOEEPvDDj). Network Infrastructure: The OSI Model - Layered Architectures & Protocol Stacks Layered architectures are a way to organize computer networks. Let's dive right in! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/q218DjmOP52). The Transport Layer - Multiplexing & Demultiplexing in UDP Connectionless refers to multiplexing and demultiplexing with UDP. Let's dive right in. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/JE4wpnQYl2K). The Transport Layer - Key Features of the Transmission Control Protocol Here are some key properties of TCP. These are important to know to understand the design of the protocol. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3927z5jyVq4). An Introduction to Socket Programming with Python - Project: Write a UDP Chat App! Welcome to your UDP project in this course! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7XYlN9MOL7O). The Application Layer - HTTP: The Basics Welcome to the core of this course! We are finally getting started with protocols, the first of which is HTTP. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B8ZkJYkmR2W). Network Layer - Organization of the Network layer We'll study the two internal organizations of the network layer in this lesson! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B170WkjEQoo). Link Layer - Principles of The Data Link Layer: The Framing Problem We'll discuss some key principles of the data link layer in this lesson. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/m7Y5mq35vR0). Getting to Know the Internet - A Quick History of The Internet Here's a short overview of how the Internet came to be. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/qVLRLZJ3k3R). The Transport Layer - More on Principles of Congestion Control Let's look at a couple of more key principles that congestion control algorithms adhere to! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B8XWDYw7D1Y). The Transport Layer - UDP Checksum Calculation & Why UDP? Let's look at how the UDP checksum is calculated in-depth, why UDP would ever get used, and applications that use UDP. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/qVvBjxOVE33). The Transport Layer - TCP Window Scaling In this lesson, we'll discuss TCP window scaling! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3jW4n0WMNqx). The Application Layer - How Processes Communicate Let's have a quick look at the technical aspect of how applications communicate View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/g2M6LyWPmRk). The Application Layer - Email: SMTP Let's now discuss some important protocols that make email what it is. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B8PkWyQNyko). Network Layer - Middleboxes: Firewalls In this lesson, we'll study middleboxes! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/m2ByM7l19kn). The Application Layer - Exercise: Looking at a Real HTTP Response In this lesson, we'll look at and study real HTTP responses via cURL. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/m21BQkW4xDO). The Application Layer - Email: POP & IMAP Let's now discuss the other side of the coin for how email works. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B8W3ko6j7NW). Getting Started - Course Learning Outcomes An overview of what you'll learn and the structure of this course. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/JQBKG47LlGg). Access Networks - The Edge of The Internet: End Systems Here's an introduction to the important physical components of the Internet that make it tick! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/m229DgnRrPr). Access Networks - What Are Access Networks? Let's study how end systems access the Internet. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7AZNYYr1YJr). Access Networks - Types of Access Networks: DSL There are a number of ways that your end system can access the Internet, let's look at each in detail! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3j9XYvVRnMr). Access Networks - Types of Access Networks: Cable, FTTH, Dial-Up, and Satellite Let's discuss a few other common access networks. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/q2E9wOj11W7). Types of Computer Networks - Types by Physical Medium: Unguided Physical Media In this lesson, we'll discuss unguided physical media. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/mEQyvVJ8P5p). The Transport Layer - When Connection Establishment Fails: Syn Floods & Retransmission In this lesson, we'll look at a couple of loopholes in TCP's implementation and how modern fixes took care of them. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/xl7G66JQ8yn). Getting to Know the Internet - Internet Standards Documents Let's look at what can be called the "official documentation of the Internet" now! We'll refer to these standards documents throughout this course. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/JEZQkEnLN5P). Types of Computer Networks - Types by Topology We'll study the types of computer networks based on topologies in this lesson. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/qVL2Nq6rRRR). Link Layer - What is The Data Link Layer? This lesson will give us a quick introduction to the data link layer! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/Y5k5XGYrqDn). The Application Layer - Network Application Architectures In this lesson, we'll learn about network application architectures. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/R8MNDLDkALY). Types of Computer Networks - Types by Geographical Distance In this lesson, we'll discuss the types of networks based on geographical distance. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/gkz48qD8Y8Z). The Application Layer - Exercise: Finding Name Servers In this lesson, we will look at a few command-line tools to lookup domain name servers. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/RMLO138QMEY). The Application Layer - HTTP: Response Messages Let's look at what HTTP response messages look like! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/xVDnOkp9yWJ). Network Layer - Dynamic Host Configuration Protocol (DHCP) In this lesson, we'll discuss how IP addresses are assigned to devices on the network. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/NEklOr5oMM2). The Transport Layer - TCP Connection Release In this lesson, we'll discuss how TCP terminates established connections. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/qVqgKxrgxmG). The Application Layer - Cookies Let's discuss another key concept of computer networking, cookies! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/YM5KVoj67GW). Network Infrastructure: The OSI Model - The Open Systems Interconnection (OSI) Model The OSI layer model will help us to understand the overall picture of how computer networks work without getting into too many low-level details. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/JPJRz7AlVjg). The Application Layer - Exercise: Checking a Domain’s Mail Server with nslookup In this lesson, we'll use nslookup to look up a domain's mail server. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/N7GDYG5GZ1p). The Transport Layer - Multiplexing and Demultiplexing Let's discuss how the transport layer handles so many simultaneous connections over one network! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/RMkqGDqopQO). The Transport Layer - Principles of Reliable Data Transfer Have questions about Principles of Reliable Data Transfer? Go for it! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/397GLvojwMA). The Transport Layer - Reliable Data Transfer: Sliding Window In this lesson, we'll study sliding windows View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B6Yzq7O6xKn). The Transport Layer - The User Datagram Protocol This lesson gives an introduction to one of the protocols at the heart of the transport layer: UDP! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/YVK8ZJPLN3A). The Transport Layer - Exercise: Capturing UDP Packets We'll now look at a command-line tool that allows us to capture UDP packets. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/RMwm0qB0mxE). The Transport Layer - TCP Header Flags In the last lesson, we discussed eight fields of the TCP header. Let's now discuss the last few! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/gkPznVK1qn9). The Transport Layer - TCP Headers: Window Size, Checksum & More We'll continue our discussion of TCP headers in this lesson View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B13opVG7QRJ). The Transport Layer - TCP Connection Establishment: Three-way Handshake In this lesson, we'll discuss how a TCP connection is established! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/xlMyzABwL33). Network Infrastructure: The OSI Model - The TCP/IP Model Let's now have a look at the TCP/IP Model View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/RMpzRE7Vok0). The Transport Layer - Efficient data transmission with TCP In this lesson, we'll study the main data transfer mechanisms used by TCP. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/q2Qk8QW43P2). The Transport Layer - Exercise: Measuring RTT with Ping Have questions about Exercise: Measuring RTT with Ping? Go for it! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/BnjnZDYmPno). The Transport Layer - TCP Congestion Control: AIMD The last part of TCP that we're going to study is congestion control. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B8LP6B9Nnwk). The Transport Layer - TCP Congestion Control: Slow Start In this lesson, we're going to look at the slow start algorithm. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7DV98Mnpzg1). The Application Layer - DNS: Records and Messages Let's now get into what DNS records and messages look like. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/RMxW1oROP7O). An Introduction to Socket Programming with Python - The Basics Congratulations, we made it! We can finally get to writing some code. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/N73706w7Br6). An Introduction to Socket Programming with Python - Writing a UDP Server In the last lesson, we'd written code to setup an IPV4 socket on TCP. Let's now get into writing a program for a basic server. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3j22VxQ5M4A). An Introduction to Socket Programming with Python - Improvements to UDP Programs: Avoiding Arbitrary Servers There are a few improvements that can easily be made to our UDP program. Let's have a look. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/R8pWq1O4R5q). Network Layer - Border Gateway Protocol: Determining the Best Routes We left the last lesson off at the question: how do routers pick a path to reach a specific destination out of a given number of paths? View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/JYkY5V4Lg2K). Network Layer - Programming Challenge: Routing Information Protocol In this lesson, you'll be writing code for the routing information protocol that we looked at previously. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/gxkmDxo72xZ). Network Layer - The Internet Control Message Protocol (ICMP) In this lesson, we'll study ICMP, the network layer's error reporting protocol. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/YQDVPwB6xk2). Network Layer - The Internet Protocol: Introduction to IPV4 We're finally at the very core of the Internet. This lesson contains an introduction to the Internet protocol! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/39KvLrwoQv4). Network Layer - Address Resolution Protocol (ARP) In this lesson, we'll discuss how data link layer addresses are resolved in an IPv4 network View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/g2yA9g0JLxZ). Network Layer - Exercise: Sending ICMP Messages With Ping & Traceroute In this lesson, we'll look at real live ICMP packets with ping and traceroute! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/N8z8ozoo1Vm). Network Layer - The Control Plane: Route Calculation - Dijkstra's In this lesson, we'll study Dijkstra's shortest path algorithm! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/xlwpQ000x0r). Network Layer - Programming Challenge: Implementing Dijkstra's In this lesson, you'll be implementing Dijkstra's Shortest Path Algorithm. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7AP4JNAr5Rr). Network Layer - The Internet Protocol: IPV4 Packet Fragmentation & Reassembly In this lesson, we'll study IP version 4 fragmentation and reassembly. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3jJXrWrEJQA). Network Layer - The Internet Protocol: IPV4 Address Allocation We ended the last lesson with a discussion on variable-length subnets. Let's discuss how blocks of addresses are allocated to organizations, in this lesson. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/R1EJmVzkjgL). Network Layer - The Control Plane: Link State Routing In this lesson, we'll study link state routing. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B8BzZPX6mNW). Network Layer - Solution Review: Implementing Dijkstra's In this lesson, we'll look at a way to implement Dijkstra's Algorithm. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/gk671wqPMWG). Network Layer - The Control Plane: Static & Dynamic Routing In this section, we discuss the three main techniques that can be used to maintain the routing tables in a network. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3YnAWQAnPq4). Network Layer - Solution Review: Routing Information Protocol In this lesson, we'll analyze the solution to the RIP challenge. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/RMwV1ZvpjyR). The Application Layer - What Is the Application Layer? Here's an introduction to the application layer! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/RMlKzPJZwGO). The Application Layer - HTTP: Request Messages HTTP request messages are a pivotal part of the protocol. Let's have a close look at them! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/xoNPoDWnjpl). Link Layer - Principles of The Data Link Layer: Error Detection This lesson will go into depth with how the data link layer does error detection View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/g7q5Yy7DGA6). Network Layer - Middleboxes: NATs In this lesson, we'll study Network Address Translation! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3j2LL5Egvzx). The Application Layer - Email: Message Format Let's study the exact format of an email message! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/m2kGRXYG5NA). The Application Layer - DNS: Introduction DNS is the Internet's directory service. Let's jump right in! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/39LZ8PvPLnR). Network Layer - Intradomain Routing: OSFP In this lesson we'll study the OSPF protocol. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/3j1QlX4nZ7M). Network Layer - IPv6 Features In this lesson, we'll study IPv6 address types. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/gxwkllR6Eyl). Network Layer - Why IPv6? In this lesson, we'll get an introduction to IP version 6. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/mElowPNVxqO). Network Layer - Introduction to Routing in IP: Intradomain & Interdomain In this lesson, we'll look at an introduction to intradomain and interdomain routing algorithms. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/g78K7j86g59). Link Layer - Medium Access Control: Stochastic Methods - CSMA In this lesson, we'll study the carrier sense multiple access protocol. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/qZL9pxpAWwD). An Introduction to Socket Programming with Python - Writing a UDP Client Program Let's now write a client to go with the server we wrote. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/JP8VR6glEjg). Link Layer - Introduction to Ethernet In this lesson, we give a quick introduction to Ethernet. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/qAl1Y8QEvMD). Link Layer - Ethernet Switches In this lesson, we'll get a brief introduction to Ethernet switches. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/m25AZ9vl96A). Link Layer - Ethernet Frame Format In this lesson, we'll study the ethernet frame format. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7D3ww3AKgVA). Link Layer - Medium Access Control: Stochastic Methods - Optimizing CSMA/CD In this lesson, we'll learn about techniques to optimize CSMA/CD View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/gk2L01OYg16). Link Layer - Solution Review: Spanning Tree Protocol In this lesson, we'll look at a solution to the spanning tree protocol programming assignment. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B8VEwxyOV4n). An Introduction to Socket Programming with Python - Running The UDP Server & Client Together We've spent the last few lessons writing code for a very basic client and a server. Let's see these in action in this lesson! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/JPjnl36VN3g). Link Layer - Virtual LANs In this lesson, we'll study virtual LANs! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B134vQDEZxo). Conclusion - Networks Career Paths In this lesson, we'll look at some possible career paths that you can pursue after you finish this course! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/39lB9AV9PAA). Link Layer - Programming Challenge: Spanning Tree Protocol Have questions about Programming Challenge: Spanning Tree Protocol? Go for it! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/x1gw41gQX2r). Conclusion - Final Thoughts Thanks for reading! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/g7MJkMAY6lD). Network Layer - What Is the Network Layer? In this lesson, we'll get a quick introduction to the network layer. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/qVrr9yXmWwD). Link Layer - Medium Access Control: Static Allocation In this lesson, we introduce medium access control protocols. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/gx5N1kwxpMk). Link Layer - Physical Layers for Ethernet In this lesson, we'll look at various types of physical layers and their limitations and benefits to Ethernet. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/xomM5Jgk38n). Link Layer - Medium Access Control: Stochastic Methods - ALOHA In this lesson, we'll study ALOHANet! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/YV0x8B83noA). Link Layer - Medium Access Control: Stochastic Methods - CSMA/CD In this lesson, we'll look at the variant of CSMA that also detects collisions. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7D39n6rYQ4j). An Introduction to Socket Programming with Python - Solution: Write a UDP Chat App! Have questions about Solution: Write a UDP Chat App!? Go for it! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/NEAMl5yBl8D). Network Layer - The Internet Protocol: IPV4 Packets Now that we have clarified the allocation of IPv4 addresses and the utilization of the longest prefix match to forward IPv4 packets, we can have a more detailed look at IPv4 by starting with the format of the IPv4 packets. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/R1ZpYLD0Now). Network Layer - IPv4 in Practice: The Life of a Packet In this lesson, we'll consolidate everything we have learned about the network layer so far by tracing the journey of a packet. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/JQMqZR4vxw2). Network Layer - Interdomain Routing: Border Gateway Protocol In this lesson, we'll study the border gateway protocol. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/g231WJ0GQDD). The Application Layer - Exercise: View and Manage Your Cookies In this lesson, we'll go through an exercise to manage your browser's cookies. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/xlLoK6YjWnq). An Introduction to Socket Programming with Python - A TCP Client-Server Program In the last chapter, we studied TCP theory in detail. Now, we'll look at how we can code up TCP programs in Python. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/x1x73w8029z). Getting to Know the Internet - Communication Over the Internet Before we dive deeper into the course, let's study some key concepts to understand how communication over the Internet works View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/myV8DgE0pZn). The Application Layer - BitTorrent BitTorrent is a key protocol and has millions of users simultaneously and actively sharing and downloading hundreds of thousands of files of all types: music, movies, books, and so on. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/R1Axlvo5Ymq). Network Layer - The Control Plane: Distance Vector - Routing Information Protocol In this lesson, we'll discuss the Routing Information Protocol, a popular distance-vector algorithm, based on the famous Bellman-Ford algorithm. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/qVE9QM1kmEG). The Transport Layer - Introduction to Congestion Control In this lesson, we'll look at congestion control! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/B1grxg4nooo). The Transport Layer - TCP Segment Header We'll now study TCP headers. They're are far more complex than UDP headers and really are what allow for TCP to work properly! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/RMPXOjLVwnR). An Introduction to Socket Programming with Python - Setting up a UDP Socket We're now going to write some basic server code in TCP. Let's get right into it. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/xVMkk76v2NE). The Application Layer - Exercise: Looking At DNS Response Messages and Resource Records In this lesson, we'll use command-line tools to look at DNS response messages and resource records! View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/N8B0xgk73KK). Types of Computer Networks - Types by Physical Medium: Guided Physical Media Now that we've discussed the infrastructure of the edge of the Internet let's discuss some actual hardware components. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7X53AkBk5Ej). The Transport Layer - Reliable Data Transfer: Go-back-n In this lesson, we'll study go-back-n: a simple protocol to ensure detection and retransmission of lost packets. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/N811q0JmwAz). The Transport Layer - The Transmission Control Protocol In this lesson, we'll look at a quick overview of TCP and some famous applications that use it. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7Xw8KoRLYqQ). The Transport Layer - Other TCP Connection Establishment Methods In this lesson, we'll look at some unconventional ways that connection establishment may occur. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/7AnwxvL864A). The Application Layer - P2P vs. Client-Server Before we move on with the details of BitTorrent, it's useful to do a quantitative comparison of the hybrid architecture with the client-server architecture. View the lesson [here](https://www.educative.io/courses/grokking-computer-networking/NENkP909BLv).
About the Grokking Computer Networking for Software Engineers (Educative) category [Grokking Computer Networking for Software Engineers (Educative)] (1)