5. Allokationen
Alle TURN-Operationen drehen sich um Allokationen, und alle TURN-Nachrichten sind mit einer Allokation verbunden. Eine Allokation besteht konzeptionell aus den folgenden Zustandsdaten:
-
die weitergeleitete Transportadresse
-
das 5-Tupel: (IP-Adresse des Clients, Port des Clients, Server-IP-Adresse, Server-Port, Transportprotokoll)
-
die Authentifizierungsinformationen
-
die Zeit bis zum Ablauf (Time-to-Expiry)
-
eine Liste von Berechtigungen
-
eine Liste von Kanal-zu-Peer-Bindungen
Die weitergeleitete Transportadresse ist die vom Server zugewiesene Transportadresse für die Kommunikation mit Peers, während das 5-Tupel den Kommunikationspfad zwischen dem Client und dem Server beschreibt. Auf der Client-Seite verwendet das 5-Tupel die Host-Transportadresse des Clients; auf der Server-Seite verwendet das 5-Tupel die serverreflexive Transportadresse des Clients.
Die weitergeleitete Transportadresse und das 5-Tupel müssen über alle Allokationen hinweg eindeutig sein, sodass jedes von beiden verwendet werden kann, um die Allokation eindeutig zu identifizieren.
Die Authentifizierungsinformationen (z. B. Benutzername, Passwort, Realm und Nonce) werden sowohl zur Überprüfung nachfolgender Anfragen als auch zur Berechnung der Nachrichtenintegrität von Antworten verwendet. Die Werte für Benutzername, Realm und Nonce sind zunächst diejenigen, die in der authentifizierten Allocate-Anfrage verwendet wurden, die die Allokation erstellt hat, obwohl der Server den Nonce-Wert während der Lebensdauer der Allokation mithilfe einer 438-Antwort (Stale Nonce) ändern kann. Beachten Sie, dass es aus Sicherheitsgründen wünschenswert sein kann, dass der Server anstelle der expliziten Speicherung des Passworts den Schlüsselwert speichert, der ein MD5-Hash über Benutzername, Realm und Passwort ist (siehe [RFC5389]).
Die Zeit bis zum Ablauf ist die verbleibende Zeit in Sekunden, bis die Allokation abläuft. Jede Allocate- oder Refresh-Transaktion setzt diesen Timer, der dann auf 0 herunterzählt. Standardmäßig setzt jede Allocate- oder Refresh-Transaktion diesen Timer auf den Standardlebensdauerwert von 600 Sekunden (10 Minuten) zurück, aber der Client kann in den Allocate- und Refresh-Anfragen einen anderen Wert anfordern. Allokationen können nur mit der Refresh-Anfrage aktualisiert werden; das Senden von Daten an einen Peer aktualisiert eine Allokation nicht. Wenn eine Allokation abläuft, können die mit der Allokation verbundenen Zustandsdaten freigegeben werden.
Die Liste der Berechtigungen wird in Abschnitt 8 beschrieben und die Liste der Kanäle wird in Abschnitt 11 beschrieben.