Wie die meisten Leistungsprobleme ist es kompliziert. Wie viel Bandbreite jede Aufgabe erhält, ist eine komplexe Interaktion zwischen vielen Dingen auf verschiedenen Ebenen des Netzwerkstapels. Auch ohne Umformung. Eine unvollständige Liste:
- CPU-Scheduler, wenn Tasks (und Treiber-Interrupt-Handler) auf die CPU gelangen können
- Wie schnell die Aufgaben ihre Daten erhalten, möglicherweise begrenzt durch Engpässe oder Konflikte
- Welche Warteschlangendisziplin wird verwendet, im Wesentlichen ein Paketplaner
- Treiberdetails wie die Anzahl der Hardware-TX-Warteschlangen und wie sie Datenflüsse auswählen
- Verhalten des TCP-Protokolls:Wenn ein Datenfluss auf die Überlastungskontrolle stößt, kann er langsam bleiben, während die Bandbreite begrenzt ist
- Alle oben genannten Überlegungen für das/die entfernte(n) System(e), das/die die Flüsse empfängt(en)
- Wenn nicht alle Ihre Verbindungen zum selben Empfänger gehen, der andere end ist möglicherweise von größerer Bedeutung als dein Ende
Viele von diesen optimieren nicht auf gleiche Bandbreiten-„Fairness“, sondern auf andere Kriterien. Die TCP-Überlastungssteuerung hätte lieber ein wenig Goodput, als einen Staueinbruch zu erleiden.
Und vergiss auch nicht, du bist wahrscheinlich nicht der einzige im Netzwerk zu einem bestimmten Zeitpunkt - also müssen Sie auch Router(s), Switch(es) usw. zwischen "hier" und "dort" berücksichtigen.
Sollte dies mehr als eine Kuriosität sein, ist eine Lösung, um so schnell wie möglich mehr Bandbreite zu bekommen.
Oder durch QoS, Shaping oder Anwendungsdrosselung können Quoten für ein besseres Gesamtverhalten festgelegt werden, was auch immer besser bedeutet. Aber das ist nicht mehr so schnell wie möglich, Sie wählen die Gewinner und Verlierer nach Richtlinien aus.