Nền tảng Mạng máy tính/Module 1 — Tổng kết & cheat sheet
4/17
Bài 4 / 17~12 phútTừ URL đến ResponseMiễn phí lượt xem

Module 1 — Tổng kết & cheat sheet

Recap toàn cảnh một HTTP request: bản đồ 5 chặng + công cụ debug mỗi chặng, mô hình TCP/IP 4 tầng, glossary, pitfall tổng hợp và self-assessment. Một trang để bookmark trước khi vào module địa chỉ & định tuyến.

TL;DR: Module 1 dựng bản đồ một HTTP request từ hai góc: theo dòng thời gian (5 chặng DNS → TCP → TLS → HTTP → render) và theo chiều dọc (mô hình TCP/IP 4 tầng + encapsulation). Đây là trang gom lại tất cả thành cheat sheet một trang, glossary, và danh sách pitfall — để bookmark và tra nhanh. Nếu bạn trace được một request qua 5 chặng, chỉ ra mỗi địa chỉ (MAC/IP/port) thuộc tầng nào, và biết một sự cố đang kẹt ở đâu, bạn đã sẵn sàng cho module 2.

Đã đi qua những gì

Bạn bắt đầu từ một câu hỏi tưởng đơn giản — "gõ google.com rồi nhấn Enter thì điều gì xảy ra?" — và thấy đằng sau nó là 5 chặng nối tiếp chạy trên nhiều máy: phân giải tên miền (DNS), bắt tay mở kết nối (TCP), thiết lập kênh mã hoá (TLS), trao đổi nội dung (HTTP), rồi render. Mỗi chặng có thể là điểm nghẽn hoặc điểm hỏng riêng.

Sau đó bạn lùi lại nhìn cùng request đó theo chiều dọc: dữ liệu HTTP được bọc dần qua 4 tầng (Application → Transport → Internet → Link) thành segment → packet → frame, và bóc ngược ở máy nhận. Mỗi tầng lo một việc và một loại địa chỉ. Hai góc nhìn này — dòng thời gian và phân tầng — là khung tư duy bạn sẽ dùng suốt phần còn lại của khoá.

🗺️ Cheat sheet

Một request, hai góc nhìn — theo dòng thời gian (5 chặng) và theo chiều dọc (4 tầng):

flowchart LR
    subgraph T["Dong thoi gian (5 chang)"]
      direction LR
      A["DNS"] --> B["TCP"] --> C["TLS"] --> D["HTTP"] --> E["Render"]
    end

5 chặng của một request — và công cụ debug:

ChặngLo việc gìHỏng thì thấy gìCông cụ
DNSTên miền → IPKhông phân giải được têndig, nslookup
TCP handshakeMở kết nối (SYN/SYN-ACK/ACK)ECONNREFUSED, timeoutnc, ss, telnet
TLSMã hoá + xác thực certLỗi cert, "Not Secure"openssl s_client, curl -v
HTTPRequest/response, status4xx/5xx, header saicurl -v, DevTools
RenderParse + vẽ trangTrang trắng, lỗi JSDevTools (frontend)

Mô hình TCP/IP 4 tầng — địa chỉ mỗi tầng:

TầngGiao thứcĐịa chỉSản phẩm (PDU)
ApplicationHTTP, DNS, TLS(không)data
TransportTCP, UDPPortsegment / datagram
InternetIP, ICMPĐịa chỉ IPpacket
LinkEthernet, Wi-FiĐịa chỉ MACframe

Quy tắc vàng: IP đích giữ nguyên suốt hành trình; MAC đổi ở mỗi chặng. Tối ưu hiệu năng mạng phần lớn là giảm số RTT, không phải tăng băng thông.

📖 Glossary module

Thuật ngữĐịnh nghĩa 1 câu
DNSHệ thống phân giải tên miền thành địa chỉ IP.
TTLSố giây một bản ghi DNS được phép cache trước khi hỏi lại.
RTTRound-Trip Time — thời gian một gói đi tới đích và quay về.
HandshakeQuá trình bắt tay nhiều bước để mở kết nối (TCP 3 bước, TLS).
EncapsulationViệc mỗi tầng thêm header bọc quanh dữ liệu tầng trên.
Segment / packet / frameTên dữ liệu khi đã bọc tới header TCP / IP / Ethernet.
PortSố định danh ứng dụng trên một máy (tầng Transport).
IP addressĐịa chỉ định danh máy trên toàn Internet (tầng Internet).
MAC addressĐịa chỉ định danh thiết bị trong một chặng LAN (tầng Link).
OSI 7 tầngMô hình mạng học thuật; ngành dùng số tầng của nó (L4, L7).

⚠️ Pitfall tổng hợp

  • "Trang chậm chắc do server yếu." Độ trễ có thể nằm ở DNS, TLS, hay định tuyến — đo từng chặng (curl -w) trước khi tối ưu server.
  • "Ping được nên lỗi do code." ping chỉ kiểm tra tầng Internet (ICMP), không đụng TCP/TLS/HTTP. Ping thông mà app vẫn timeout là chuyện thường.
  • "HTTPS chậm vì phải mã hoá." Chi phí thật là handshake (thêm RTT), gần như biến mất nhờ keep-alive + session resumption; HTTP/2 còn làm trang nhanh hơn.
  • "Tầng là các chương trình riêng." Tầng là mô hình khái niệm; thực tế nằm rải ở NIC, kernel, và app.
  • "TCP/IP là một giao thức." Nó là cả một bộ giao thức (TCP, UDP, IP, ICMP, ARP, DNS…).

✅ Self-assessment

Bạn đã đạt module này nếu trả lời được:

  • Trace được vòng đời một request qua 5 chặng DNS → TCP → TLS → HTTP → render, nói được mỗi chặng lo việc gì.
    • Nếu chưa: đọc lại bài Điều gì xảy ra khi gõ google.com, mục "Toàn cảnh 5 chặng".
  • Explain được vì sao mạng chia tầng và mô hình TCP/IP 4 tầng — encapsulation bọc dữ liệu thành segment/packet/frame ra sao.
    • Nếu chưa: đọc lại bài Mô hình TCP/IP 4 tầng, mục "Encapsulation" và "Bốn tầng TCP/IP".
  • Diagnose được một sự cố bằng cách xác định nó kẹt ở chặng/tầng nào, rồi chọn đúng công cụ.
    • Nếu chưa: xem lại bảng cheat sheet phía trên và mục "Pitfall" của hai bài.

🚀 What's next

Module 1 cho bạn bản đồ. Module 2 — Địa chỉ & Định tuyến — phóng to tầng Internet và tầng Link: địa chỉ MAC và ARP hoạt động thế nào trong LAN, IP và subnet/CIDR (đọc được 10.0.0.0/8 hay 192.168.1.0/24), gói tin nhảy hop qua router ra sao, và NAT để nhiều máy chung một IP công cộng. Hiểu module 2, bạn đọc được sơ đồ mạng thực tế và khoanh vùng sự cố đến tận tầng định tuyến.

Bài tiếp theo: Module 2 — Địa chỉ & Định tuyến: tổng quan

📚 Tài liệu mở rộng

  • RFC 1122 — Requirements for Internet Hosts: phát biểu chính thức mô hình TCP/IP 4 tầng.
  • Sách: Computer Networking: A Top-Down Approach (Kurose & Ross) — chương 1, cách tiếp cận "top-down" rất hợp với góc nhìn module này.
  • Công cụ: thử curl -v https://example.comcurl -w "@-" -o /dev/null -s https://example.com với format timing để thấy thời gian từng chặng (DNS, connect, TLS, TTFB).

Bài này có giúp bạn hiểu bản chất không?

Hỏi đáp về bài này

Chưa có câu hỏi

Đặt câu hỏi

Có gì chưa rõ trong bài? Đặt câu hỏi đầu tiên — câu trả lời từ cộng đồng giúp bạn (và người sau).

Đặt câu hỏi đầu tiên