Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Networking Concepts with Socket Programming - Academic Level

Khái niệm Mạng máy tính với Lập trình Socket - Trình độ Học thuật

Khái niệm Mạng máy tính với Lập trình Socket - Trình độ Học thuật

Khóa học Mạng máy tính đi sâu vào lập trình socket với TCP/UDP/HTTP, từ cơ bản đến nâng cao

4.4
(991 đánh giá)
11,140 học viên
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 409.000đ -88%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
23.5 giờ video
222 bài giảng
1 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Tự tin trả lời các câu hỏi liên quan đến Mạng máy tính
Mở ra cơ hội tại các công ty Lập trình Hệ thống/Mạng
Làm quen với Linux và học song song Lập trình Hệ thống Linux
Xây dựng portfolio Github, tăng cường khả năng tìm việc
Làm đẹp CV với các dự án thực hiện trong khóa học
Học các khái niệm Mạng ở tất cả các tầng của Mô hình OSI
Nội dung khóa học được thiết kế với mục tiêu phỏng vấn tại các tập đoàn đa quốc gia
Bài tập lập trình và Dự án thực hành
Trở thành Nhà phát triển chuyên nghiệp về Mạng
Thành thạo thiết kế và Viết Máy chủ TCP/UDP trong môi trường Linux
Xây dựng & Giải mã gói tin hoàn chỉnh từ đầu
Khái niệm Đóng gói Gói tin (Packet Encapsulation)
Định tuyến L2 và L3, Định tuyến dựa trên Vlan

Yêu cầu

Khóa học đại cương cơ bản về Mạng máy tính
Yêu cầu kỹ năng lập trình C cơ bản

Đối tượng phù hợp

Sinh viên Đại học, Sau đại học
Những người muốn xây dựng sự nghiệp trong lĩnh vực Mạng
Những người yêu thích lập trình, thích xây dựng dự án và nhìn thấy kết quả thực tế
Những người muốn khác biệt và nổi bật giữa đám đông

Nội dung khóa học

21 phần • 195 bài giảng
1 Mục lục
2 Tham gia Nhóm Telegram
3 Giới thiệu Mô hình OSI
4 Chức năng các Tầng Mô hình OSI
5 Phép loại suy thực tế của TCP/IP Stack
6 Giới thiệu Đóng gói và Giải đóng gói Dữ liệu
7 Đóng gói Dữ liệu
8 Giải đóng gói Dữ liệu
9 Đóng gói và Giải đóng gói Dữ liệu trên các nút chuyển tiếp
10 Bức tranh tổng thể
1 Cảnh báo!
2 CML - Bắt đầu
3 CML - Tạo tài khoản
4 CML - Tạo cấu trúc liên kết (Topology)
5 CML - Lưu & Tải lại Cấu trúc liên kết
1 Chia mạng con - Phần 1
2 Chia mạng con - Phần 2
3 Phân phối Dữ liệu
4 Địa chỉ Mac và IP
5 ID Mạng
6 Địa chỉ Broadcast
7 Giá trị Tối đa và các Bit điều khiển
8 Cấu hình Địa chỉ IP
9 Mặt nạ cho Liên kết Điểm-điểm
10 Địa chỉ Broadcast Chi tiết
11 Bài tập lập trình Tính toán IP
1 Giới thiệu Định tuyến L2
2 Mạng con Cục bộ và Từ xa
3 Định tuyến L2 - Cơ bản
4 Định dạng Header Ethernet
5 Định tuyến Tầng 2 được thực hiện như thế nào?
6 Mục tiêu của ARP
7 Định dạng Tin nhắn Chuẩn ARP
8 Giao thức Phân giải Địa chỉ - Phần 1
9 Giao thức Phân giải Địa chỉ - Phần 2
10 Minh họa Giao thức Phân giải Địa chỉ
11 Khái niệm Switch Lớp 2
12 Cách thức hoạt động của Switch L2
13 Ví dụ về Switch Lớp 2
14 Mô tả Cấu trúc liên kết Kiểm tra
15 Demo Cấu trúc liên kết L2
1 Tổng quan Định tuyến Lớp 3
2 Tại sao chúng ta cần Định tuyến L3?
3 Ngữ nghĩa của các Tuyến đường Lớp 3
4 Tra cứu Bảng định tuyến
5 Cấu trúc liên kết Định tuyến L3
6 Hoạt động và Lưu đồ Lớp 3
7 Ví dụ Định tuyến Lớp 3
8 Giới thiệu Giao diện Loopback
9 Tính chất của Giao diện Loopback
10 Định tuyến sử dụng Địa chỉ IP Loopback làm Địa chỉ Đích
11 Phiên Lab về Định tuyến L3
12 Xây dựng và Demo Cấu trúc liên kết L3
1 Phần dành cho Nhà phát triển
2 Mặt nạ Tiền tố và Wildcard
3 Cấu trúc Dữ liệu
4 Chèn Tuyến đường - Ví dụ 1
5 Chèn Tuyến đường - Ví dụ 2
6 Tóm tắt
7 Thuật toán Tìm kiếm Tuyến đường
8 Thuật toán Xóa Tuyến đường
9 Khớp Tiền tố Dài nhất - Tra cứu Tuyến đường
10 Ví dụ Tra cứu Tuyến đường 1
11 Ví dụ Tra cứu Tuyến đường 2
1 Giới thiệu
2 Mục tiêu và Phát biểu Bài toán
3 Định dạng Mục nhập Bảng định tuyến
4 ECMP - Đa đường với Chi phí Bằng nhau
5 Sự Phối hợp giữa các Thiết bị L3
6 Các Bước Chung để Xây dựng Bảng định tuyến
1 Các Giai đoạn của Phần này
2 Giai đoạn 1 - 4 Bước
3 Giai đoạn 1 - Bước 1 và 2
4 Giai đoạn 1 - Bước 3 và 4
5 Giai đoạn 2 - Thuật toán SPF
6 Giai đoạn 2 - Ví dụ Thuật toán SPF 1
7 Giai đoạn 2 - Quy tắc Thuật toán SPF
8 Giai đoạn 2 - Ví dụ Thuật toán SPF 2
9 Giai đoạn 3 - Tính toán Bảng định tuyến Cuối cùng
10 Đảm bảo Không có Vòng lặp
11 Hội tụ - Khi Nút/Liên kết gặp sự cố
12 Tóm tắt
1 Giới thiệu BD và CD
2 Giảm Miền Collision bằng Switch L2 - Ví dụ 1
3 Giảm Miền Broadcast bằng Router L3 - Ví dụ 2
1 LAN là gì và Các trường hợp sử dụng
2 Vấn đề LAN 1 - Tính bất động
3 Vấn đề LAN 1 - Ví dụ thực tế về Tính bất động
4 Vấn đề LAN 2 - Các vấn đề Bảo mật
5 Giới thiệu VLAN
6 Cổng Access và Trunk của Switch L2
7 Header VLAN 802.1Q
8 Quy tắc Gắn thẻ VLAN
9 Ví dụ Định tuyến L2 VLAN - Phần 1
10 Ví dụ Định tuyến L2 VLAN - Phần 2
11 Ví dụ Định tuyến L2 VLAN - Phần 3
12 Lợi ích VLAN 1 - Phân đoạn
13 Lợi ích VLAN 2 - Giải quyết Tình trạng Tắc nghẽn
14 Lợi ích VLAN 3 - Giảm Miền Broadcast
15 Lợi ích VLAN 4 - Tính di động
16 Tài liệu đọc thêm về VLAN
1 Giới thiệu và Phát biểu Bài toán
2 Khái niệm SVI
3 Cấu hình Router L3 để Chuyển tiếp VLAN
4 Ví dụ Chuyển tiếp từ Router sang VLAN
1 Phát biểu Bài toán
2 Ôn tập Định tuyến L3 Truyền thống
3 Ôn tập Tuyến đường Mặc định và Phân giải ARP trong Mạng dựa trên VLAN
4 Cơ bản về Định tuyến giữa các VLAN
5 Ví dụ Định tuyến giữa các VLAN - Phần 1
6 Ví dụ Định tuyến giữa các VLAN - Phần 2
7 Tóm tắt
8 Bài tập
1 Giới thiệu Tầng Giao vận
2 Mục tiêu của Tầng Giao vận
3 Giao thức Datagram Người dùng (UDP) - phần 1
4 Giao thức Datagram Người dùng (UDP) - Phần 2
5 Lưu ý về TCP
6 Giao thức Điều khiển Truyền (TCP) - Hướng kết nối
7 TCP - Giao thức có trạng thái
8 TCP - Giao thức hướng byte
9 TCP - Phân phối có thứ tự
10 TCP - Phân phối đáng tin cậy
11 Công cụ TCP cho Mạng có tổn thất
12 TCP so với UDP
13 Xếp chồng Header
14 Số hiệu Cổng Tầng Giao vận
15 Giao diện Lời gọi Hệ thống
1 TCP so với các Giao thức khác
2 Thách thức ARQ của TCP
3 Bộ đệm Vòng Byte của TCP
4 Phân đoạn và Số thứ tự - Phần 1
5 Phân đoạn và Số thứ tự - Phần 2
6 Header TCP: Số thứ tự và Số xác nhận
7 Loại Phân đoạn TCP
8 Ôn tập Phân phối Dữ liệu Đáng tin cậy của TCP
9 Minh họa Bộ đếm thời gian Truyền lại của TCP
10 Tóm tắt
1 Mã nguồn cho Phần này
2 Giới thiệu Lập trình Socket
3 Thiết kế Máy chủ
4 Lời gọi hệ thống Accept
5 Lời gọi hệ thống Select
6 Triển khai Ghép kênh với Accept & Select
7 Ví dụ Máy chủ TCP - phần 1
8 Ví dụ Máy chủ TCP - phần 2
9 Ví dụ Máy chủ TCP - phần 3
10 Quan sát về Thiết kế Máy chủ TCP
11 Thiết kế và Triển khai Máy khách TCP
12 Demo Máy chủ - Máy khách TCP
13 Máy chủ TCP với Ghép kênh - Thiết kế Cấp cao - Phần 1
14 Máy chủ TCP với Ghép kênh - Triển khai - phần 2
15 Máy chủ TCP với Ghép kênh - Demo - phần 3
16 Kết luận Lập trình Socket
1 Giới thiệu Tầng Ứng dụng
2 Thiết kế và Triển khai Máy chủ HTTP từ đầu
3 Demo Máy chủ HTTP
4 Đi qua Mã nguồn Máy chủ HTTP
5 Bài tập Máy chủ HTTP
1 Mục tiêu Dự án
2 Triển khai Dự án
3 Thuật toán Yêu cầu Put
4 Thuật toán Xử lý Yêu cầu GET
5 Các Loại Tin nhắn
6 Xử lý Tin nhắn
7 Mã giả (Pseudocode) cho Dự án
8 Lời cuối trước khi Bắt đầu Lập trình
1 Nội dung về DNS
2 DNS - Giới thiệu
3 DNS - Vấn đề đặt ra
4 DNS là gì?
5 Kiến trúc và Phân bố Địa lý của DNS
6 DNS - Hệ thống Phân cấp và Phi tập trung
7 DNS - Tự lưu trữ Website của bạn
8 Tên miền Website và FQDN
9 Phân loại Máy chủ Tên miền Cấp cao nhất (TLD)
10 Bộ phân giải DNS (DNS Resolver)
11 Các loại Truy vấn DNS
12 Truy vấn DNS - Đệ quy
13 Truy vấn DNS - Lặp
14 Truy vấn DNS Ngược (Reverse DNS)
15 Tổng kết
1 Đóng gói IP trong IP - Giới thiệu
2 Mạng không đồng nhất (Heterogeneous Networks) là gì?
3 Tình huống 1 - Vấn đề Đóng gói IPv6 trong IP
4 Tình huống 1 - Giải pháp Đóng gói IPv6 trong IP
5 Tình huống 2 - Vấn đề và Giải pháp Đóng gói IP
6 Tình huống 2 - Ứng dụng thực tế của Đóng gói IP
7 Kết luận và Tổng kết về Đóng gói IP
1 TLVs - Giới thiệu
2 Tại sao chúng ta cần TLVs
3 Tại sao chúng ta cần TLVs - Một tình huống khác
4 Hiểu về TLVs
5 TLVs Giải quyết vấn đề Nâng cấp Phần mềm
1 Bài học Thêm - Đến lúc nhận kẹo thôi nào!!

Giới thiệu khóa học

This course is about strengthening the Networking concepts and fundamentals with assignments side by side with theory. Through this course you will be able to :

1. Understand the Functioning of TCP/IP Stack (OSI Model). Understand the function of each layer in TCP/IP stack in good detail.

2. Explain the L2 routing concepts - Mac Addresses and ARP

3. Explain the L3 routing concepts - IP Addresses and IP protocol

4. Understand the procedure of Dynamic construction of L3 Routing Table

5. Understand various ways to design a Linux TCP/UDP server program in C

6. Understand Socket programming in C 

7. Understand the Networking devices functioning - L2 switch and L3 router

8. Understand packet Journey through the layers of TCP/IP stack

9. Design and implement HTTP Webservers from scratch

10. Read and manufacture the network packets from scratch

11. Understand the concept of TLVs

12. Concept of packet Encapsulation

13. Understand Domain Name System (DNS)

14. Virtual LANs (VLANs) and Routing in VLANs

15. Broadcast Domain and Collision Domain


We Understand - Networking by its nature is inclined towards being a theoretical subject of study. To arouse the interest of the students ,we elaborate each and every topic of this course through an assignment or project.

This course is thorough. We explain the design, discuss the code flow and then guide the audience how to implement the particular concept design in detail in a step by step manner. All you need is a Linux OS running on your system to do this course.

Who should do this course ?

This course is meant for UG Computer science students, job seekers and professional developers. This is MUST do course for those who want to join MNCs as a developer. The topics covered in this course are of utmost importance from interviews aspects and students graduating in computer science and looking to seek an opportunity in MNCs as a developer should have Networking concepts at his/her finger tips. Better to have done Networking under graduate course, not mandatory. Job seekers trying for the position of Networking developers in product based MNCs System software development including Networking is an evergreen area. Internet will not going to be doomed ever.


Pre-requisite

There is no pre-requisite for this course, however, it shall be advantage if you know a little of C. We designed this course assuming student is a complete beginner in Networking and we raise the level of course gradually as we move from Basic to advance Networking concepts. 

Also, Please just do not sit and watch my codes. Write your own codes, even if it is same as mine !

We have a strong reasons to choose C as a language for this course:

1. The entire core networking development work is being done in C in industry. So, this reason alone is good enough that you should learn network development in C if you are aiming to join industry as a network protocol developer. 

2. Network equipment need to interact with underlying hardware - the ASIC chips. What could be a better language other than C when it comes to interact and program the hardware.

3. C is middle level language - not as low as assembly, neither as high as Java/Python. In C, its the programmer's responsibility to write every line of code to get the task done, unlike Java/Python which provides rich rest of libraries to do the most tasks for you. Using High Level Languages for learning network programming would obscure the low level details of networking - that is what is going behind the scenes. If you are are beginner in network programming, you must learn things from scratch and only C provides you the opportunity to do that. So, you must do all your assignments in C.

4. Networking is all about cooking up the packets and sending it out of wire. C will allow you to cook packets exactly the same way as you would like them to appear on wire. Lot of Bit level programming.  

5. If you are a beginner in Networking, pls refrain from learning network programming in High Level Languages such as Java Or Python. It is not job oriented thing to do in networking domain.

No Third Party libraries

Whatever logic you implement, you need to implement it from scratch. This course do not suggest taking help of any third party library to get the jobs done. Use of external libraries completely defeats the purpose of the course. However, it is recommended to use third party libraries for commonly used data structures such as linked lists/Trees/Queues etc which saves a lot of time implementing these data structures.


What else along with the course ?

If you are aiming to become a developer, then, besides strong in Data structure and Algorithms, you should have clarity of concepts related to other Linux utilities. Networking is all about system programming, and you would be interested in learning other linux concepts of prime importance such as Inter Process Communication, Remote Procedure Calls etc. Please take a look at my other courses in this regard. These courses will summed you up as a more competitive developer in Networking & System Programming domain.


See what students are saying about this course

Just Take a Look at These Top Rated Reviews (Browse review section to verify these reviews)

***** What a Fantastic Course!!! I really appreciate the efforts Abhishek has put in this course. He has put his sweat and heart into it. The way he explains things keeps you hooked on to this course. He directly gets TO THE POINT without beating around the bush. No author of any networking book can explain things like Abhishek is doing. What Abhishek is doing is that he is explaining the Meat of the subject. One would have to read 10 books to understand this. or perhaps more. There was a hunch in my heart that dont know networking clearly. This course meets my expectations with respect to content, clarity and teaching style with proper presentations. This course improves your understanding and removes the fear of not knowing...not only that, it injects a good amount of confidence about your knowledge of Networking...Thanks for coming up with such a course. Thanks Again.

***** Come across right course at right time. This course seems cover all important areas of networking. Author explains the topics in good detail and with good pace. This course looks like designed to beat technical interviews.

***** Great Course, instructor is very thorough and provide quick guidance and clear any doubts promptly with high availability. I really enjoyed this course. Networking has been a tough subject for me to learn, but this course has made it quite easy. I now have my concepts thoroughly clear ! Thanks Abhishek, and Udemy.

***** I am working as Firmware/Embedded engineer, and the courses from this guys are goddamn blessing. In the real industry, as he mentioned earlier, all network programming or Linux system programming must be implemented with C cuz C is a perfect language for accessing memory spaces and customizing serial communication with other chips. In the real industrial fields, no one is gonna teach you. You are the only one who needs to figure it out by yourself cuz everyone wishes you not to excel in workplace. Only one person can be a manager or supervisor. Take this guy's courses. Needless to say, quality guaranteed. If I could do hacking on this site, i am gonna crash his lectures. I do not want other people to get benefits from his lectures. It would be best if he makes a lecture for "making Operating System from scratch" :) 


Warning : This course has auto system-generated subtitles which may not be perfect. Please disable subtitles as per your convenience.


Curriculum

0. Setting up Linux Development Environment on your machine 

  • For those who are not familiar with Linux Installation/environment

1. OSI Model Vs TCP/IP Stack

  • Data Encapsulation and Data Decapsulation

  • Headers Cascading

  • Ingress and egress Journey of packet through a TCP/IP Stack

  • Big Picture

2. Multi-node setup environment on your machine

  • Setup Multinode Cluster of Virtual machines on your machine

  • Local and Remote Subnets

  • Layer 3 Route Semantics

  • Configure Layer 3 routes in nodes

  • Understand L3 Routing table semantics 

3. Subnetting and IP address

  • Understand Subnets

  • Differentiate between local and remote subnets

  • IP Address assignment scheme/policy

  • Data Delivery

  • Understand MAC addresses and their use

  • Calculation of Networking ID, Broadcast address and Cardinality of a subnet

  • Understand the relationship between L3 routers and Subnets

  • Understand Point-to-Point links

  • MAC layer and IP rules of packet rejection/acceptance

  • Broadcast Addresses

4. Layer 2 Networking concepts

  • L3 Router as a gateway to subnet

  • Protocol Identifier fields at each layer

  • Ethernet header format

  • How Ethernet hdr makes L2 routing possible

  • ARP (Address resolution protocol)

  • ARP table population and use

  • Step by Step ARP protocol functioning

  • Assignment on ARP

  • Layer2 Switch - How it works 

  • MAC address table

  • Step by Step description of L2 Switch functioning

  • Problem of Layer Thrashing

5. Layer 3 Networking concepts

  • Relationship between Layer2 and Layer3 routing

  • Explained the dependency of two layers over each other

  • Configuring Layer 3 routing table

  • Semantics of a Layer 3 route

  • Layer 3 route look up

  • Concept of Longest prefix match

  • IP Header - fields you should know

  • Network Layer Operations

  • Step by Step description of L3 routing routing

  • Loopback interface - purpose and configuring loopback interface 

  • Exercise on Layer 3 route installation, routing and forwarding of traffic

  • BroadCast and Collision Domain

6. Dynamic Construction of L3 Routing Table

  • Phase 1 - Neighbotship database management

  • Phase 2 - Creation of Link State Database

  • Phase 3 - Shortest Path first Algorithm

  • Calculation of Final Routing Table

7. Virtual LANs (VLANs)

  • LANs and why they are outdated today

  • VLANs - The purpose

  • 802.1Q VLAN hdr

  • Rules of Vlan Tagging

  • Vlan Aware L2 Switches

  • Vlan based L2 routing

  • Other Vlan Benefits

8. Router to Vlan Forwarding

  • Convept of SVI interfaces

  • SVI - VLAN Binding

  • Router to Vlan Forwarding - Step by Step

9. Inter Vlan Routing

  • Two Step Process

    • From Src host Machine to Gateway L3 router

    • From Gateway L3 router to Dst host machine

    • Exercise and more examples

10. Network troubleshooting tools

  • How ping works - ICMP protocol description

  • Networking applications troubleshooting utilities - ping, wireshark, tcpdump 

  • Capturing the packets and examine its contents using tcpdump

11. Transport Layer

  • Layer Goals

  • Contrasting Layer2, Layer 3 and Layer 4 together

  • TCP and UDP - Properties of two protocols

  • TCP Vs UDP

  • Understanding TCP in Detail

  • Concept of Headers stacking

  • Concept of port numbers

  • Linux System call interface

12. Socket programming concepts

  • Socket Programming Design

  • Select System call

  • Accept System call

  • Concept of Multiplexing

  • Server State machine

13. Application Layer 

  • Different ways to implement Sockets

    • on Top of Transport layer

    • on Top of Network Layer

    • on Top of  Data link layer

  • Designing HTTP Webserver from scratch

  • HTTP Webserver Implementation

  • Custom application sockets

14. Domain Name System

  • What is DNS ?

  • DNS Architecture and Design

  • FQDN

  • Hosting a website

  • DNS Resolver

  • DNS Query types

    • Iterative Query

    • Recursive DNS Query

    • Reverse DNS Query

  • Summary

15. IP-in-IP Encapsulation/Tunneling

  • What is IP-in-IP Encapsulation ?

  • Why we need IP-in-IP Encapsulation ?

  • How Encapsulated packet is routed in the network ?

  • Two scenarios using IP-in-IP Encapsulation

16. Concept of TLVs

  • What are TLVs

  • Why we need TLVs

  • Writing a TLV decoder

  • Benefits of TLVs in Network communication

  • STREAMS - Data Structure

  • TLV (De)Serialization using STREAMS


**AUDIT TRIAL**

2 Aug 2020 - Added Section on Dynamic Construction of L3 Routing Table

14 June 2019 - Added Section on TCP

06 Oct 2018 - Added Section 6 On VLANs

07 Sept 2018 - Added Section 11, Domain Name System

13 July 2018 - Added Section 12, IP-in-IP Encapsulation/Tunneling

17 June 2018 - Added Section 10, The Application Layer and HTTP Webserver Design & Implementation

10 June 2018 - Added Section 15, The concept of TLVs

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Cisco Networking
Hiển thị tất cả khoá học Computer Networking
IP Routing 101

IP Routing 101

Andrew Walding

4.5 (308)
1,358
50.000đ -86%
Hiển thị tất cả khoá học Network Fundamentals
Hiển thị tất cả khoá học Socket Programming
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊