Timeout (Netzwerktechnik)
Das Timeout bezeichnet in der Programmierung und Netzwerktechnik entweder
- die Zeitspanne, die ein Vorgang in Anspruch nehmen darf, bevor er mit einem Fehler abgebrochen wird, oder
- den Fehler selbst, der nach der Zeitüberschreitung ausgelöst wird.
Diese Zweideutigkeit existiert im Deutschen nicht, hier wird zwischen Zeitbeschränkung und Zeitüberschreitung unterschieden.
Anwendung
Zeitbeschränkungen sind vor allem dann sinnvoll, wenn vermieden werden soll, dass ein Prozess auf etwas wartet, das niemals oder erst stark verspätet eintritt. In Bezug auf die Prozesssynchronisation ist ein Timeout die Zeitspanne, für die auf das Eintreten einer Bedingung gewartet werden soll, bevor ein Fehler ausgelöst wird. Speziell in Bezug auf Computernetzwerke bezeichnen Timeouts die Zeit, die auf eine Antwort gewartet wird, bevor ein Datenpaket als verloren gilt und entweder noch einmal übertragen werden muss (retry), oder die Kommunikation mit einem (Timeout-)Fehler abgebrochen wird.
Zeitbasis
Das Timeout muss sich nicht unbedingt auf eine Echtzeituhr beziehen, er kann sich auch an einem anderen Zähler orientieren. Einige Netzwerkprotokolle schränken zum Beispiel ein, wie oft ein Datenpaket weitergereicht werden darf (siehe Routing). Das Internet Protocol hat zum Beispiel dafür im Kopfdatenbereich ein Feld namens TTL (Time to Live, deutsch etwa: „zu lebende Zeit, verbleibende Lebensdauer“), bei dem eine anfänglich festgelegte Zahl (bei IPv4 meist ein Vielfaches von 32) von jedem Router herabgesetzt wird, bis das Paket schließlich gelöscht wird, falls der TTL-Wert null erreicht. Somit kann erreicht werden, dass Pakete nicht ewig weiterversandt, sondern irgendwann gelöscht werden, insbesondere dann, wenn die Pakete durch Fehlkonfiguration im Kreis laufen (Routing-Schleife). Die ursprüngliche Idee war die Implementierung eines wirklichen Zeitfensters, die aber mangels Zeitsynchronisation unter den Routern verworfen wurde.