Rechnernetze
Home Nach oben

Berechnung des Timeouts

Wird ein Datenpaket nicht innerhalb einer bestimmten Wartezeit bestätigt, so wird das entsprechende Datenpaket noch einmal gesendet; diese maximale Wertezeit wird als Timeout bezeichnet. Da die Übertragungszeit im Netzwerk variiert, muss das Timeout ständig neu berechnet werden. Das RFC schlägt dafür folgendes Vorgehen vor.

Sei ein geeigneter Wert für SRTT (Smoothed Round Trip Time) vorgegeben. Die Round Trip Time (RTT) wird berechnet aus der Dauer vom Absenden eines Bytes bis zu dessen Empfang (die Quittung kann für ein anderes Segment eintreffen; es kommt nur auf das Byte an). Die nächste SRTT wird dann berechnet nach der Iterationsformel

SRTT = ( ALPHA * SRTT ) + ((1-ALPHA) * RTT)

Mit diesem Wert wird dann das Retransmission Timeout (RTO) berechnet nach der Formel

RTO = min[UBOUND,max[LBOUND,(BETA*SRTT)]], 

mit   UBOUND als oberer Grenze des Timeouts (z.B. 1 Minute),
        LBOUND als unterer Grenze des Timeouts (z.B. 1 Sekunde),
        ALPHA als Glättungsfaktor (z.B. 0,8 bis 0,9),
        BETA als Verzögerungsvarianz-Faktor (beispielsweise im Bereich 1,3 bis 2,0).

Danach gilt also: LBOUND < RTO < UBOUND.

 

Beispiel

Sei SRTT = 10 s. Ändert sich die gemessene RTT zu 50 s, so wird bei ALPHA = 0,8:
SRTT1= 0,8*10 + 0,2*50 = 18
SRTT2= 0,8*18 + 0,2*50 = 24,4
SRTT3= 0,8*10 + 0,2*50 = 29,5
usw.

Wird nach 10 Sekunden die RTT auf 80 erhöht und nach dreißig Sekunden wieder auf 10 abgesenkt, so folgt das folgende Verhalten für RTO, wenn UBOUND = 100 gesetzt wird: