Lesson 08 — Tầng giao vận: TCP

Bốn module tương tác: bắt tay 3 bước từng bước, mô phỏng mất gói & phát lại, cửa sổ trượt, bóc tách header TCP.

1. Bắt tay 3 bước (3-way handshake)

Nhập ISN của Client và Server, sau đó bấm từng bước để xem SYN / SYN-ACK / ACK với số SEQ/ACK cụ thể.

CLIENT SERVER t₀ t₁ t₂ t₃ CLOSED LISTEN SYN SEQ=? ACK=0 SYN-ACK SEQ=? ACK=? ACK SEQ=? ACK=? KET NOI DUOC THIET LAP
Nhấn "Bước tiếp theo" để bắt đầu mô phỏng bắt tay 3 bước TCP. ISN (Initial Sequence Number) được chọn ngẫu nhiên trong thực tế — ở đây bạn tự nhập để dễ theo dõi.

2. Truyền tin cậy — mất gói & phát lại

Mô phỏng gửi 5 segment, chọn segment nào bị mất. TCP phát hiện qua 3 duplicate ACK và phát lại ngay (fast retransmit).

SENDER RECEIVER
Log sự kiện xuất hiện ở đây khi bạn bấm "Bước tiếp"...

3. Cửa sổ trượt & Throughput

Kéo slider để thay đổi window sizeRTT. Xem cách throughput thay đổi — và tại sao RTT cao (vệ tinh) làm tắc nghẽn throughput dù đường truyền rộng.

1 KB512 KB1 MB
1 ms400 ms800 ms
Window SEQ start SEQ+W Không giới hạn Đã ACK Gửi chưa ACK (window) Chưa gửi
Đang tính...
Lý do RTT ảnh hưởng throughput: Sender gửi tối đa W byte, rồi phải đợi ACK trước khi gửi tiếp. Thời gian chờ = RTT. Trong 1 RTT chỉ gửi được W byte → Throughput = W/RTT. Đường vệ tinh RTT=600ms, W=64KB → chỉ 0.85 Mbps dù đường truyền có thể là hàng Gbps.

4. Bóc tách header TCP

Nhập các trường header, chọn flags, rồi click vào từng vùng màu trong sơ đồ header để xem giải thích chi tiết.

Flags:
Click vào vùng màu trong header để xem giải thích chi tiết trường đó.
Ví dụ handshake SYN: bật flag SYN, SEQ=100, ACK=0, DST Port=80 (HTTP) → đây là gói SYN mở kết nối tới web server. Thử: bật SYN+ACK, SEQ=300, ACK=101 → đây là SYN-ACK phản hồi từ server.