Floodschutz des D-T-Net

Funktionsweise des Floodschutz ('excess flood') und der Floodbremse

Schema des Datenflusses vom Client bis zur Verarbeitung durch den Server

Empfang der Daten in den Puffer

Der IRC-Server hat für jeden seiner IRC-Clients einen seperaten Empfangspuffer, der standardmäßig 1000 Zeichen groß ist. Alles, was der Client schickt, gelangt zunächst in diesen Puffer. Die Daten wird in einem späteren Schritt dann aus diesem Puffer in der Reihenfolge des Eintreffens wieder ausgelesen und verarbeitet.

Die Floodbremse

Um zu verhindern, dass jemand den IRC-Server in hoher Geschwindigkeit mit Daten zumüllt, wird aus dem Puffer immer nur eine Zeile pro Sekunde ausgelesen. Zeilen mit Überlänge (mehr als 90 Zeichen) werden hingegen erst nach
{[Zeichenzahl der Zeile]/90 + 1} Sekunden
ausgelesen und dann verarbeitet.

Verarbeitungs-Burst

Da es aber z.B. beim Pasten eines Textes sehr störend wäre, wenn pro Sekunde maximal eine Zeile verarbeitet würde, setzt die Bremsung erst nach 10 Zeilen (bei Zeilenlängen >90 Zeichen jedoch weniger) ein. Dieses verzögerte Einsetzen der Bremse wird so realisiert, indem beim Auslesen aus dem Puffer geschaut wird, wieviele Sekunden zuvor Client nichts mehr geschickt hat. Entsprechend viele Zeilen werden dann auf einmal verarbeitet. Mehr als 10 Zeilen werden jedoch nie auf einmal ungebremst verarbeitet, selbst wenn vom Client mehr als 10 Sekunden lang nichts mehr kam.

Excess Flood

Da die Verarbeitung/Bremsung und der Empfang der Daten in den Empfangspuffer voneinander getrennt ablaufen, kann es auch passieren, dass sich Daten im Empfangspuffer stauen, weil durch die Bremsung die Daten langsamer verarbeitet werden, als sie eintreffen. Sollte der Puffer voll sein und es treffen weitere Daten ein, wird die Verbindung zum Client mit der Begründung 'Excess flood' beendet.
Letzte Änderung dieser Seite erfolgte am 16.05.2004 um 19:58:46 Uhr
(das war vor 4909 Tagen)