8. Berechtigungen
Für jede Allokation führt der Server eine Liste von null oder mehr Berechtigungen. Jede Berechtigung besteht aus einer IP-Adresse und einer zugehörigen Zeit bis zum Ablauf. Wenn eine Berechtigung existiert, erlaubt der Server allen Peers, die die IP-Adresse in der Berechtigung verwenden, Daten an den Client zu senden. Die Zeit bis zum Ablauf ist die Anzahl der Sekunden, bis die Berechtigung abläuft. Im Kontext einer Allokation wird eine Berechtigung durch ihre zugehörige IP-Adresse eindeutig identifiziert.
Durch Senden einer CreatePermission-Anfrage oder einer ChannelBind-Anfrage kann der Client den Server veranlassen, eine Berechtigung für eine bestimmte IP-Adresse zu installieren oder zu aktualisieren. Dies führt zu einem von zwei Ergebnissen:
-
Wenn keine Berechtigung für diese IP-Adresse existiert, wird eine Berechtigung mit der angegebenen IP-Adresse und einer Zeit bis zum Ablauf erstellt, die der Berechtigungslebensdauer (Permission Lifetime) entspricht.
-
Wenn bereits eine Berechtigung für diese IP-Adresse existiert, wird die Zeit bis zum Ablauf für diese Berechtigung auf die Berechtigungslebensdauer zurückgesetzt.
Die Berechtigungslebensdauer muss 300 Sekunden (= 5 Minuten) betragen.
Die Zeit bis zum Ablauf für jede Berechtigung wird einmal pro Sekunde um eins verringert, bis sie null erreicht. Zu diesem Zeitpunkt läuft die Berechtigung ab und wird gelöscht.
CreatePermission- und ChannelBind-Anfragen können für eine Berechtigung frei gemischt werden. Eine bestimmte Berechtigung kann zunächst mit einer CreatePermission-Anfrage installiert und/oder aktualisiert werden und dann später mit einer ChannelBind-Anfrage aktualisiert werden, oder umgekehrt.
Wenn ein UDP-Datagramm an der weitergeleiteten Transportadresse für die Allokation ankommt, extrahiert der Server die Quell-IP-Adresse aus dem IP-Header. Der Server vergleicht dann diese Adresse mit der IP-Adresse, die mit jeder Berechtigung in der Liste der Berechtigungen für die Allokation verknüpft ist. Wenn keine Übereinstimmung gefunden wird, ist die Weiterleitung nicht erlaubt und der Server verwirft das UDP-Datagramm stillschweigend. Wenn eine genaue Übereinstimmung gefunden wird, gilt die Berechtigungsprüfung als erfolgreich und der Server fährt mit der Verarbeitung des UDP-Datagramms wie an anderer Stelle spezifiziert fort (Abschnitt 10.3). Beachten Sie, dass nur die Adresse verglichen wird und die Portnummer nicht berücksichtigt wird.
Die Berechtigungen für eine Allokation sind völlig unabhängig von den Berechtigungen für eine andere Allokation. Wenn eine Allokation abläuft, laufen alle ihre Berechtigungen mit ihr ab.
HINWEIS: Obwohl TURN-Berechtigungen nach 5 Minuten ablaufen, laufen viele der zum Zeitpunkt der Veröffentlichung dieses Dokuments eingesetzten NATs ihre UDP-Bindungen erheblich schneller ablaufen. Daher möchte eine Anwendung, die TURN verwendet, wahrscheinlich eine Art Keep-Alive-Verkehr mit einer viel schnelleren Rate senden. Anwendungen, die ICE verwenden, sollten den Keep-Alive-Richtlinien von ICE [RFC5245] folgen, und Anwendungen, die ICE nicht verwenden, wird empfohlen, etwas Ähnliches zu tun.