OLHub

TCP & UDP Deep Dive

Tầng vận chuyển: 3-way handshake, reliability, flow & congestion control, TIME_WAIT, UDP, connection pooling, lỗi mạng, MTU.

10 bài · ~191 phútMiễn phí

Nội dung

Danh sách bài học

  1. 01

    Module 1 — TCP & UDP Deep Dive: tổng quan

    Tầng Transport là nơi backend dev debug nhiều nhất — ECONNRESET, TIME_WAIT, hết port, throughput chậm đều sinh ở đây. Module này đào sâu từng cơ chế.

    ~10 phút
  2. 02

    TCP 3-way handshake — bắt gói thật bằng Wireshark

    Trước khi byte dữ liệu đầu tiên rời máy, ba gói SYN / SYN-ACK / ACK đã bay qua lại. Bài này mổ vì sao cần đúng ba bước, sequence number được đồng bộ thế nào, và cách bắt handshake thật để đọc từng cờ.

    ~22 phút
  3. 03

    TCP reliability — sequence, ACK, retransmission

    IP là best-effort — gói có thể mất, đảo, trùng. Bài này mổ cơ chế TCP đảm bảo dữ liệu tới đủ đúng thứ tự: sequence number đánh số byte, cumulative ACK, RTO vs fast retransmit, SACK, và head-of-line blocking — pitfall nền tảng của HTTP/2.

    ~22 phút
  4. 04

    Flow control & congestion control — vì sao download tăng tốc dần

    Sliding window, window scaling, slow start, congestion avoidance, CUBIC, BBR. Bài này phân biệt rõ hai cơ chế kiểm soát tốc độ của TCP — flow control bảo vệ đầu nhận, congestion control bảo vệ mạng — và giải thích vì sao throughput ramp up dần thay vì tối đa ngay từ đầu.

    ~22 phút
  5. 05

    TIME_WAIT, CLOSE_WAIT & vì sao server hết port

    4-way termination tháo từng chiều độc lập, TIME_WAIT giữ port 60 giây để nuốt gói trễ, CLOSE_WAIT là bug ứng dụng không gọi close() — phân biệt hai cái này giúp bạn debug hết port đúng chỗ.

    ~20 phút
  6. 06

    TCP vs UDP — khi nào bỏ độ tin cậy đổi tốc độ

    UDP gửi-và-quên, header chỉ 8 byte, không bắt tay — DNS, VoIP, game chọn nó vì trễ chết người hơn mất gói. QUIC xây lại reliability trên UDP để kiểm soát ở user-space.

    ~18 phút
  7. 07

    Connection pooling & keep-alive — vì sao app cần pool

    Mỗi kết nối mới tốn 1 RTT TCP + 1 RTT TLS trước byte đầu tiên. HTTP keep-alive tái dùng kết nối; connection pool giữ sẵn rổ kết nối ESTABLISHED. Tune pool size sai — quá nhỏ thì request xếp hàng, quá lớn thì server quá tải.

    ~20 phút
  8. 08

    ECONNREFUSED, ECONNRESET, ETIMEDOUT — đọc đúng nguyên nhân

    Bốn lỗi mạng kinh điển, mỗi lỗi ứng với chặng nào hỏng và cách xác định nhanh bằng ss, nc, tcpdump.

    ~22 phút
  9. 09

    MTU & fragmentation — vì sao ping được mà app timeout

    MTU, phân mảnh IP, Path MTU Discovery và PMTUD black-hole — khi firewall chặn ICMP khiến gói lớn bị drop âm thầm, ping thông nhưng TLS handshake treo.

    ~20 phút
  10. 10

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

    Recap TCP/UDP deep dive: state machine đầy đủ, bảng so sánh TCP vs UDP, bảng tra lỗi mạng, glossary 20 thuật ngữ, pitfall tổng hợp và self-assessment.

    ~15 phút