Tiền đề:
Vị trí nông thôn, không có nhiều lựa chọn cho kết nối internet băng thông cao. Nhanh nhất cho đến nay là Internet vệ tinh, nhưng nó đắt tiền (cả thiết bị và chi phí hàng tháng và có những hạn chế về độ trễ), vì vậy nhiều hộ gia đình muốn chia sẻ nó.
Bản thân việc này rất đơn giản - thiết lập bộ định tuyến với mạng con cho từng hộ gia đình (Vlan hoặc cổng vật lý), chặn lưu lượng giữa chúng và định cấu hình modem để định tuyến đến các mạng con đó hoặc thiết lập NAT kép.
Vấn đề:
Cách TCP hoạt động bình thường có nghĩa là mỗi kết nối TCP sẽ ít nhiều nhận được 1 / n băng thông có sẵn, trong đó n là số lượng kết nối. Vì vậy, nếu một hộ gia đình / người dùng tạo ra nhiều kết nối, họ sẽ nhận được một phần lớn hơn trong tổng thể kết nối. Điều này không đặc biệt công bằng - với một liên kết bão hòa, mỗi hộ gia đình sẽ có được một phần bằng nhau. Mặt khác, khi không có ai khác sử dụng kết nối, có thể sử dụng toàn bộ băng thông.
Ví dụ: có 4 hộ gia đình chia sẻ kết nối xuống 12Mbit / s. Nếu một trong số họ đang tải xuống / phát trực tuyến / bất cứ điều gì, họ sẽ có thể sử dụng toàn bộ 12Mbit / s (hoặc gần đủ). Nếu 2 hộ gia đình đang sử dụng kết nối, họ sẽ nhận được 6Mbit / s, bất kể một hộ gia đình đang tải xuống 1 tệp và 11. còn lại (không có quản lý băng thông, mỗi tệp sẽ tải xuống với tốc độ khoảng 1Mbit / giây trong trường hợp đó) nhận 4Mbit / s mỗi cái và cứ thế.
Những gì tôi đã làm việc cho đến nay:
Vị trí tốt nhất để thực hiện một chính sách như thế này (đối với hạ lưu) sẽ là ở đầu kia của đường ống hẹp, tức là tại ISP. Rõ ràng, điều đó là không thể trong trường hợp này, vì vậy sẽ tốt hơn nếu có thể ước chừng nó bằng cách nào đó. Nhưng bằng cách nào? Có bộ định tuyến ngoài hỗ trợ nào đó như thế này không? Tôi có thể định cấu hình hộp Linux hoặc BSD để làm việc đó không? Nó không phải chống đạn - máy chủ TCP hoạt động sai hoặc dịch vụ UDP tích cực có thể phá vỡ mọi thứ tôi có thể làm ở cuối - nhưng nó sẽ hoạt động trong trường hợp phổ biến của hầu hết lưu lượng truy cập bao gồm nhiều RFC tuân thủ RFC Kết nối TCP.
Để rõ ràng, tôi không nói về việc ưu tiên các ứng dụng cụ thể, mà là tổng hợp lưu lượng truy cập đến / từ các thiết bị ethernet cụ thể hoặc dải địa chỉ IP. Cung cấp cho một số lưu lượng truy cập có mức độ ưu tiên cao hơn các lưu lượng khác có vẻ được hỗ trợ tốt, nhưng tình huống không rõ ràng khi cố gắng phân bổ băng thông đều cho các lớp lưu lượng.
Có rất nhiều thông tin được viết xấu / không suy nghĩ lại / thông tin không được thông tin về định hình lưu lượng truy cập trên web. Các tài liệu về phần cứng bộ định tuyến là không đặc biệt khủng khiếp, vì vậy tôi dường như đang chạy xung quanh trong vòng tròn.
Theo tôi hiểu, cách để khiến TCP hoạt động theo cách này là thực tế mô phỏng một đường ống hẹp hơn một chút so với thực tế có sẵn và bỏ các gói một cách giả tạo để khiến nó quay trở lại. Vì vậy, tôi nghĩ rằng sẽ khá đơn giản để cung cấp cho mọi người chính xác 3Mbit / s trong ví dụ trên bằng cách bỏ bất kỳ gói tin bổ sung nào. Điều này không thực sự sử dụng kết nối một cách hiệu quả vì hầu hết thời gian có dung lượng dự phòng.
Có cách nào để làm những gì tôi yêu cầu không? Tôi đang đi về nó sai? Tôi (hoặc đúng hơn là các hộ gia đình trong câu hỏi) sẵn sàng chi tiền cho việc này - có thể là một bộ định tuyến / thiết bị có giá vừa phải hoặc một hộp chung để chạy bản phân phối Linux hoặc BSD.