Công Cụ Tính Thông Lượng TCP Là Gì?
Công cụ này ước tính thông lượng lý thuyết tối đa của một kết nối TCP đơn lẻ, dựa trên kích thước cửa sổ nhận (receive window) của TCP và thời gian khứ hồi của mạng (RTT). Vì tại mỗi thời điểm TCP chỉ có thể giữ một lượng dữ liệu chưa được xác nhận tương đương đúng một cửa sổ đang "lưu thông" trên đường truyền, nên kích thước cửa sổ và RTT cùng nhau giới hạn tốc độ truyền dữ liệu — bất kể băng thông thực của đường truyền lớn đến đâu. Mối quan hệ này chính là ràng buộc nổi tiếng mang tên tích băng thông–độ trễ (bandwidth-delay product).
Cách Sử Dụng
Nhập kích thước cửa sổ TCP theo kilobyte (KB) và thời gian khứ hồi theo mili-giây (ms). Công cụ sẽ quy đổi cửa sổ sang bit và RTT sang giây, sau đó chia để cho ra thông lượng theo các đơn vị Mbps, Kbps và bps. Cửa sổ càng lớn hoặc RTT càng thấp thì thông lượng đạt được càng cao.
Giải Thích Công Thức
Công thức cốt lõi rất đơn giản: thông lượng = kích thước cửa sổ ÷ RTT. Để các đơn vị nhất quán, ta quy đổi: 1 KB = 1024 byte = 8192 bit, còn RTT tính bằng mili-giây thì chia cho 1000 để ra giây. Như vậy thông lượng tính theo bit/giây sẽ là $$\text{Throughput (Mbps)} = \frac{\text{Window (KB)} \times 1024 \times 8}{\text{RTT (ms)} / 1000} \times \frac{1}{10^{6}}$$ Chia tiếp cho 1.000.000 sẽ ra kết quả tính bằng Mbps.
Ví Dụ Minh Họa
Giả sử cửa sổ TCP là 64 KB và RTT là 50 ms. Cửa sổ tính theo bit = \(64 \times 1024 \times 8 = 524{,}288\) bit. RTT tính theo giây = \(50 / 1000 = 0{,}05\) giây. Thông lượng = \(524{,}288 / 0{,}05 = 10{,}485{,}760\) bps ≈ 10,49 Mbps. Để tận dụng hết một đường truyền nhanh hơn, bạn sẽ cần cửa sổ lớn hơn (cơ chế mở rộng cửa sổ TCP — TCP window scaling).
Câu Hỏi Thường Gặp
Vì sao thông lượng của tôi không khớp với tốc độ đường truyền? Bởi vì một cửa sổ nhỏ đi qua đường truyền có RTT cao sẽ hạn chế lượng dữ liệu có thể đang lưu thông cùng lúc. Đây chính là lý do các đường truyền đường dài thường cần đến cơ chế mở rộng cửa sổ.
Tôi cần cửa sổ kích thước bao nhiêu để đạt tốc độ mong muốn? Hãy biến đổi công thức: \(\text{Window (bit)} = \text{Throughput} \times \text{RTT}\). Tích số này chính là tích băng thông–độ trễ, tương ứng với kích thước bộ đệm lý tưởng.
Công cụ này có tính đến mất gói (packet loss) không? Không — đây là giá trị tối đa trong điều kiện không mất gói. Trên các đường truyền hay mất gói, thông lượng thực tế sẽ thấp hơn và được mô hình hóa chính xác hơn bằng phương trình Mathis.