Nguyên lý hoạt động của băng thông TCP thực tế
Máy tính băng thông và độ trễ mạng là một công cụ trực tuyến miễn phí giúp tính toán mức trần hiệu suất thực tế của một luồng TCP đơn lẻ dựa trên các điều kiện vật lý của đường truyền. Bằng cách nhập tốc độ đường truyền, thời gian khứ hồi và dung lượng dữ liệu, bạn có thể ngay lập tức xác định điểm nghẽn đang giới hạn kết nối của mình, xem băng thông TCP dự kiến và tổng thời gian truyền ước tính.
Công cụ này hoạt động dựa trên nguyên lý là một luồng TCP đơn lẻ luôn bị giới hạn bởi mức trần thấp nhất trong ba yếu tố độc lập: băng thông đường truyền vật lý (sau khi trừ hao hụt giao thức), giới hạn cửa sổ nhận của thiết bị đầu cuối, và tỷ lệ mất gói tin trên đường truyền. Việc hiểu rõ các giới hạn này giúp các kỹ sư mạng và quản trị viên hệ thống xác định chính xác nguyên nhân gây chậm kết nối thay vì phỏng đoán cảm tính.
Các thông số đầu vào của hệ thống
Để cấu hình đường truyền, tải trọng truyền tải và các tham số TCP, người dùng cần cung cấp các thông tin sau:
- Tốc độ đường truyền: Chặng chậm nhất trên đường truyền — thường là tốc độ định mức trong gói cước của bạn. Giá trị nhập vào phải lớn hơn 0.
- Thời gian khứ hồi (RTT): Thời gian ping đến đầu xa — sử dụng giá trị lớn nhất mà bạn dự kiến khi có tải. Giá trị nhập vào phải lớn hơn 0.
- Dung lượng dữ liệu: Tải trọng cần di chuyển — một tệp tin, một bản sao lưu, một tập dữ liệu. Giá trị nhập vào phải lớn hơn 0.
- Cửa sổ nhận: Số byte mà đầu nhận có thể đệm. Giá trị nhập vào phải lớn hơn 0 và không được vượt quá 1,073,725,440 byte. Nếu để trống trường này, hệ thống sẽ hiểu là không giới hạn cửa sổ.
- MSS (byte): Số byte tải trọng trên mỗi gói tin — 1,460 byte sẽ lấp đầy một khung Ethernet tiêu chuẩn. Giá trị nhập vào phải là một số nguyên byte trong khoảng từ 1 đến 65,495. Nếu để trống trường này, hệ thống sẽ bỏ qua hao hụt giao thức và mất gói.
- Mất gói tin (%): Xác suất mất gói trung bình. Giá trị nhập vào phải nằm trong khoảng từ 0 đến 100 phần trăm. Để trống hoặc nhập 0 tương đương với việc không giới hạn mất gói.
- Số thập phân hiển thị: Kiểm soát độ chính xác thập phân của các kết quả đầu ra.
Giao diện cung cấp nút Tải ví dụ để tự động điền các trường bằng dữ liệu mẫu, và nút Xóa để thiết lập lại toàn bộ các trường nhập liệu.
Kết quả tính toán và các công thức chi tiết
Sau khi tính toán, công cụ hiển thị kết quả trực quan qua ba phần chính:
Băng thông và thời gian truyền
- Băng thông TCP dự kiến: Đi kèm với nhãn phụ chỉ ra điểm nghẽn đang hoạt động: "bị giới hạn bởi
‹constraint›", trong đó điểm nghẽn được xác định động là băng thông đường truyền, cửa sổ nhận, hoặc mất gói tin. - Thời gian truyền
- Thời gian nhận byte đầu tiên (1 RTT)
- Thời gian truyền tải lượng lớn
- Tích số băng thông - độ trễ
- Cửa sổ để lấp đầy đường truyền
- Băng thông bị giới hạn do cửa sổ
- Băng thông bị giới hạn do mất gói (Mathis)
- Mức trần đường truyền sau hao hụt
- Hiệu suất giao thức
Thông báo hệ thống theo ngữ cảnh
Tùy thuộc vào các giá trị đầu vào, công cụ sẽ hiển thị các lưu ý kỹ thuật quan trọng:
- "Để lấp đầy đường truyền này cần cửa sổ
‹window›— vượt quá mức tối đa không tỷ lệ là 65,535-byte, vì vậy cả hai đầu phải thương lượng tỷ lệ cửa sổ TCP (RFC 7323)." - "Để lấp đầy đường truyền này cần
‹window›— vượt quá cửa sổ lớn nhất mà TCP có thể thương lượng (1,073,725,440 bytes). Một luồng đơn lẻ trên đường truyền này không bao giờ có thể vượt quá‹value›." - "Tăng cửa sổ nhận lên
‹window›sẽ giúp quá trình truyền này đạt tới tối đa‹value›." - "Tỷ lệ mất gói trên 1% nằm ngoài phạm vi đáng tin cậy của mô hình Mathis — hãy coi mức trần mất gói này là một ước tính lạc quan."
Công thức và thế số chi tiết
Để đảm bảo tính minh bạch, công cụ hiển thị chi tiết từng bước tính toán dưới mục Công thức và thế số:
- Công thức tổng quát:
băng thông = min(tốc độ × hiệu suất, cửa sổ ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = tốc độ × RTT - Hiệu suất giao thức:
Hiệu suất giao thức = MSS ÷ (MSS + 78 B) = ‹mss› ÷ ‹frame› = ‹eff› (40 B tiêu đề gói tin + 38 B hao hụt đường truyền) - Mức trần đường truyền:
Mức trần đường truyền = tốc độ × hiệu suất = ‹rate› × ‹eff› = ‹value› - BDP:
BDP = tốc độ × RTT = ‹rate› × ‹rtt› = ‹bdp› = ‹bytes› - Cửa sổ để lấp đầy đường truyền:
Cửa sổ để lấp đầy đường truyền = BDP ÷ 8 = ‹bdp› → ‹window› - Mức trần cửa sổ:
Mức trần cửa sổ = cửa sổ ÷ RTT = ‹window› ÷ ‹rtt› = ‹value› - Mức trần do mất gói (Mathis):
Mức trần do mất gói (Mathis) = MSS ÷ RTT ÷ √p = ‹mss› ÷ ‹rtt› ÷ √‹p› = ‹value› - Băng thông dự kiến:
Băng thông dự kiến = mức trần thấp nhất = ‹value› → bị giới hạn bởi ‹constraint› - Thời gian truyền:
Thời gian truyền = RTT + 8 × dung lượng ÷ băng thông = ‹rtt› + 8 × ‹size› ÷ ‹throughput› = ‹time›
Người dùng có thể sử dụng nút Sao chép kết quả để lưu lại toàn bộ dữ liệu đã tính toán.
Các quy tắc kỹ thuật và trường hợp đặc biệt
Khi phân tích hiệu suất mạng bằng công cụ này, cần lưu ý các quy tắc và giới hạn mô hình sau:
- Quy ước đơn vị: Tất cả các đơn vị trong công cụ đều dựa trên hệ thập phân (ví dụ: 1 kbit = 1,000 bits, 1 MB = 1,000,000 bytes). Các trình quản lý tệp thông thường sử dụng đơn vị nhị phân cơ số 1024 (trong đó tệp "100 MB" thực chất là 100 MiB, tương đương khoảng 104.86 MB thập phân), dẫn đến thời gian truyền thực tế trên máy tính sẽ lâu hơn khoảng 5% so với tính toán lý thuyết.
- Hao hụt giao thức: Hao hụt đường truyền được mô phỏng theo chuẩn Ethernet tiêu chuẩn, cộng thêm 78 byte cho mỗi gói tin (bao gồm 40 byte cho tiêu đề TCP/IP và 38 byte hao hụt vật lý trên đường truyền).
- Giới hạn của mô hình Mathis: Công thức Mathis giả định tỷ lệ mất gói tin phân bổ đều và độc lập. Mô hình này chỉ hoạt động đáng tin cậy với tỷ lệ mất gói dưới 1%. Nếu tỷ lệ mất gói vượt quá 1%, hệ thống sẽ đưa ra cảnh báo do kết quả tính toán lúc này có xu hướng quá lạc quan so với thực tế.
- Giới hạn tỷ lệ cửa sổ: Cửa sổ nhận TCP không tỷ lệ tối đa là 65,535 byte. Nếu đường truyền yêu cầu cửa sổ lớn hơn mức này để lấp đầy băng thông, hai đầu thiết bị bắt buộc phải hỗ trợ và thương lượng tính năng tỷ lệ cửa sổ TCP theo RFC 7323. Giới hạn cửa sổ tối đa tuyệt đối mà RFC 7323 hỗ trợ là 1,073,725,440 byte.
- Các yếu tố nằm ngoài mô hình: Các tính toán giả định một luồng TCP duy nhất ở trạng thái ổn định. Các yếu tố thực tế như giai đoạn khởi đầu chậm (slow start), cơ chế kiểm soát tắc nghẽn, tốc độ xử lý của thiết bị nhận và quá trình bắt tay TLS không nằm trong phạm vi tính toán của mô hình này, do đó tốc độ truyền thực tế ban đầu sẽ chậm hơn và có thể thấp hơn mức trần tính toán.
Xử lý lỗi nhập liệu
Nếu dữ liệu nhập vào không hợp lệ, hệ thống sẽ hiển thị các thông báo lỗi cụ thể sau:
- Định dạng không phải là số:
"‹field›: “‹token›” không phải là một số." - Tốc độ đường truyền bằng hoặc nhỏ hơn 0:
"Tốc độ đường truyền phải lớn hơn 0." - Thời gian khứ hồi bằng hoặc nhỏ hơn 0:
"Thời gian khứ hồi phải lớn hơn 0." - Dung lượng dữ liệu bằng hoặc nhỏ hơn 0:
"Dung lượng dữ liệu phải lớn hơn 0." - Cửa sổ nhận bằng hoặc nhỏ hơn 0:
"Cửa sổ nhận phải lớn hơn 0." - Cửa sổ nhận vượt quá giới hạn RFC 7323:
"TCP không thể thương lượng cửa sổ trên 1,073,725,440 byte (tỷ lệ cửa sổ RFC 7323)." - MSS ngoài phạm vi cho phép:
"MSS phải là một số nguyên byte trong khoảng từ 1 đến 65,495." - Tỷ lệ mất gói ngoài phạm vi cho phép:
"Tỷ lệ mất gói phải nằm trong khoảng từ 0 đến 100 phần trăm." - Vượt quá giới hạn tính toán của hệ thống:
"Một giá trị hoặc kết quả trung gian vượt quá phạm vi số được hỗ trợ."
Bảo mật và quyền riêng tư dữ liệu
Mọi giá trị bạn nhập đều được tính toán ngay trong trình duyệt này — không có dữ liệu nào được gửi đi đâu cả. Quá trình xử lý diễn ra hoàn toàn cục bộ trên thiết bị của người dùng, đảm bảo thông tin cấu hình mạng và dung lượng dữ liệu của bạn không bị rò rỉ ra bên ngoài.
Câu hỏi thường gặp (FAQ)
Tốc độ truyền thực tế của tôi tại sao lại chậm hơn tốc độ đường truyền tôi đăng ký? Một luồng TCP đơn lẻ phải đối mặt với ba mức trần độc lập, và mức thấp nhất sẽ quyết định. Hao hụt giao thức làm giảm băng thông đường truyền khoảng 5% — một khung Ethernet tiêu chuẩn mang 1,460 byte tải trọng trong tổng số 1,538 byte trên đường truyền. Cửa sổ nhận giới hạn băng thông ở mức cửa sổ ÷ RTT, vì vậy cửa sổ 65,535-byte cổ điển giới hạn đường truyền 50 ms ở mức khoảng 10.5 Mbit/s bất kể tốc độ đường truyền nhanh thế nào. Và việc mất gói giới hạn băng thông ở mức (MSS ÷ RTT) ÷ √loss. Kết quả ở trên sẽ chỉ ra mức trần nào đang giới hạn các số liệu của bạn.
Tích số băng thông - độ trễ là gì, và tại sao nó quyết định kích thước cửa sổ? BDP — tốc độ đường truyền × thời gian khứ hồi — là lượng dữ liệu đang truyền tải tại bất kỳ thời điểm nào. TCP chỉ có thể có tối đa một cửa sổ chưa được xác nhận, vì vậy một cửa sổ nhỏ hơn BDP sẽ khiến đường truyền bị trống một phần: ở tốc độ 100 Mbit/s với RTT 50 ms, đường truyền chứa được 625 kB, và cửa sổ 65,535-byte chỉ lấp đầy chưa đầy một phần mười dung lượng đó. Đó là lý do tại sao các đường truyền nhanh và dài cần tính năng tỷ lệ cửa sổ TCP (RFC 7323), giúp tăng mức tối đa có thể thương lượng từ 65,535 bytes lên khoảng 1 GB.
Việc mất gói tin giới hạn băng thông TCP như thế nào? TCP coi việc mất gói là tắc nghẽn và giảm một nửa tốc độ gửi đối với mỗi sự kiện mất gói, vì vậy ngay cả tỷ lệ mất gói cực nhỏ cũng ảnh hưởng lớn trên các đường truyền nhanh. Mô hình Mathis ước tính mức trần là (MSS ÷ RTT) ÷ √p — với tỷ lệ mất gói 0.01% trên đường truyền 50 ms có MSS 1,460-byte, tốc độ đó là khoảng 23 Mbit/s, bất kể tốc độ đường truyền. Mô hình này giả định các sự kiện mất gói phân bổ đều và độc lập; dưới mức khoảng 1%, nó phản ánh khá sát thực tế, còn đối với mất gói dạng bùng phát, nó sẽ mang tính lạc quan.
Megabyte ở đây có giống với megabyte trong trình quản lý tệp của tôi không? Không hoàn toàn giống. Trang này sử dụng các đơn vị thập phân theo quy ước mạng: 1 kbit = 1,000 bits và 1 MB = 1,000,000 bytes. Hầu hết các trình quản lý tệp tính toán theo đơn vị cơ số 1024 nhưng thường dán nhãn sai là MB — một tệp "100 MB" ở đó thường là 100 MiB ≈ 104.86 MB thập phân, vì vậy sẽ mất nhiều thời gian hơn khoảng 5% để truyền so với số liệu thập phân hiển thị. Hãy nhập 104.86 MB tại đây để khớp chính xác.