Kapitel 1:
komplett neuprogrammierter Uploadthrottler
-----------------------------------
new: -uploadthrottler händelt die Slots nach einem komplett neuen Prinzip.
- die Konditionen wann ein neuer Slot geöffnet wird
- Einstellbare Slotspeed
to test:- stabiler Upload ?
- Laufzeitverhalten über 24 Stunden, auch nach Zwangstrennung
- Gesamtstabilität
hints: - LowID-Support wurde noch nicht fertiggestellt, es kann also sein, daß LowIDs nur selten einen Uploadslot bekommen
Anmerkungen:
- der Xtreme unterstützt ein USS (wird durch NAFC ersetzt werden), bitte abstellen, da eh nicht benutzt
- der Xtreme unterstützt keinen unlimeted Upload, bitte gültigen Wert angeben!
Erklärung:
Um zu verstehen warum was wie arbeitet, solltet Ihr erst einam das Grundprinzip eines Uploads verstehen.
Alle x Millisekunden überprüft emule den Upload um zu sehen, ob er wieder etwas schicken muß, damit der eingestellte Upload auch erreicht wird. Was emule dann schickt sind nicht ein paar Bytes, es sind immer komplette Packete, welche Standardmäßig 1300 Bytes groß sind, bei Mods mit einstellbarer MTU/MSS, sich nach dessen Größe richten.
Der offzielle emule sieht also, da0 es an der Zeit ist, ein neues Packet zu schicken und schickt es an den ersten Slot; nächstes mal dann der zweite Slot usw. dann geht es wieder von vorne hoch. Die Slotspeed errechnet sich somit aus Upload/Anzahl Slots.
Der neue Uploadthrottler arbeitet nach einem völlig neuen Prinzip. Er merkt sich für jeden Slot einzeln, wann es Zeit ist ein Packet zu schicken um die gewünschte Slotspeed zu erreichen. Desweiteren sieht er, wenn ein Slot die gewünschte Speed nicht nehmen kann und reguliert die gewünschte Speed nach unten. Die übrige Bandbreite um den Upload zu füllen wird an die Trickles verteilt. Sobald nach dieser Restverteilung noch immer Bandbreite übrig ist, wird ein neuer Trickleslot angefordert.
Um es nochmal klarzustellen: eine Slotspeed kann nie auf das Byte genau eingehalten werden, da immer ganze Packete geschickt werden. D.h. nach senden des Packetes, ist der Speed etwas über der eingestellten Slotspeed. Nach ca. 1-2 Sekunde ist er etwas kleiner, bis ein neues Packet gesendet wird. Würde der Slotspeed pro Sekunde angezeigt, so würde man sehen, daß er 0, 0, ... viel ist. Würde die Anzeige den Durchscnittswert über einen längeren Zeitraum anzeigen, so würde sich der Angezeigte Speed dem eingestellten Speed nähern. Zukünftige Xtreme-Versionen werden die Möglichkeit besitzen anzugeben, über welchen Zeitraum der Durchschnitt angezeigt werden soll.
Download:
sources & binaries
changelog:
- rewritten Uploadbandwidthtrottler
- changed PPGConnection, included slotspeed
- changed Pfreferences, included slotspeed
- changed uploadqueue::acceptnewclient
- changed uploadlistctrl drwaing of items