Die Voraussetzung:
Ländliche Lage, nicht viele Optionen für Internetverbindungen mit hoher Bandbreite. Das mit Abstand schnellste ist das Satelliten-Internet, aber es ist teuer (sowohl die Geräte als auch die monatlichen Kosten und es weist Latenzprobleme auf), sodass mehrere Haushalte es gerne gemeinsam nutzen möchten.
Dies ist an sich unkompliziert: Richten Sie einen Router mit einem Subnetz für jeden Haushalt ein (VLANs oder physische Ports), blockieren Sie den Datenverkehr zwischen diesen und konfigurieren Sie das Modem entweder für die Weiterleitung zu diesen Subnetzen oder richten Sie Double-NAT ein.
Das Problem:
Die Art und Weise, wie TCP normalerweise funktioniert, bedeutet, dass jede TCP-Verbindung mehr oder weniger 1 / n der verfügbaren Bandbreite erhält, wobei n die Anzahl der Verbindungen ist. Wenn also ein Haushalt / Benutzer viele Verbindungen herstellt, erhält er einen größeren Anteil an der Gesamtverbindung. Dies ist nicht besonders gerecht - mit einem gesättigten Link sollte jeder Haushalt einen gleichen Anteil erhalten. Wenn andererseits niemand die Verbindung nutzt, sollte es möglich sein, die gesamte Bandbreite zu nutzen.
Angenommen, es gibt 4 Haushalte, die sich eine 12-Mbit / s-Verbindung teilen. Wenn einer von ihnen herunterlädt / streamt / was auch immer, sollte er in der Lage sein, die vollen 12 Mbit / s (oder fast genug) zu nutzen. Wenn 2 Haushalte die Verbindung verwenden, sollten sie jeweils 6 Mbit / s erhalten, unabhängig davon, ob ein Haushalt 1 Datei und der andere 11 eine Datei herunterlädt Holen Sie sich jeweils 4Mbit / s und so weiter.
Was ich bisher ausgearbeitet habe:
Der beste Ort für die Implementierung einer solchen Richtlinie (für den Downstream) wäre das andere Ende der engen Leitung, dh der ISP. Offensichtlich ist das in diesem Fall nicht möglich, daher wäre es gut, wenn man es irgendwie annähern könnte. Aber wie? Gibt es handelsübliche Router, die so etwas unterstützen? Kann ich eine Linux- oder BSD-Box dafür konfigurieren? Es muss nicht kugelsicher sein - ein sich schlecht verhaltender TCP-Server oder ein aggressiver UDP-Dienst könnten vermutlich alles umgehen, was ich an meinem Ende tun kann -, aber es sollte für den allgemeinen Fall funktionieren, dass der größte Teil des Datenverkehrs aus vielen RFC-kompatiblen Daten besteht TCP-Verbindungen.
Um es klar auszudrücken, ich spreche nicht von der Priorisierung bestimmter Anwendungen, sondern von der Zusammenfassung des Datenverkehrs zu / von bestimmten Ethernet-Geräten oder IP-Adressbereichen. Es scheint gut unterstützt zu sein, einem Teil des Datenverkehrs eine höhere Priorität als dem anderen zuzuweisen, aber die Situation ist weniger klar, wenn versucht wird, die Bandbreite gleichmäßig auf die Verkehrsklassen zu verteilen.
Es gibt viele schlecht geschriebene / unüberlegte / ansonsten uninformierte Informationen zur Verkehrsgestaltung im Web. Die Dokumentation zur Router-Hardware ist fürchterlich unspezifisch, so dass ich scheinbar im Kreis herumlaufe.
So wie ich es verstehe, besteht die Möglichkeit, TCP dazu zu bringen, sich auf diese Weise zu verhalten, darin, eine etwas schmalere Pipe zu simulieren, als tatsächlich verfügbar ist, und Pakete künstlich abzulegen, um sie zurückzusetzen. Ich denke, es wäre ziemlich einfach, im obigen Beispiel jedem genau 3 Mbit / s zuzuweisen, indem zusätzliche Pakete künstlich verworfen werden. Dadurch wird die Verbindung nicht wirklich effizient genutzt, da die meiste Zeit über freie Kapazität verfügt.
Gibt es eine Möglichkeit, das zu tun, wonach ich frage? Gehe ich falsch? Ich bin (oder besser gesagt, die Haushalte in Frage kommen) bereit, Geld dafür auszugeben - sei es ein handelsüblicher Router / eine handelsübliche Appliance oder eine generische Box für den Betrieb einer Linux- oder BSD-Distribution.