Passa al contenuto principale

5. Allocazioni

Tutte le operazioni TURN ruotano attorno alle allocazioni, e tutti i messaggi TURN sono associati a un'allocazione. Un'allocazione consiste concettualmente nei seguenti dati di stato:

  • l'indirizzo di trasporto inoltrato

  • la 5-tupla: (indirizzo IP del client, porta del client, indirizzo IP del server, porta del server, protocollo di trasporto)

  • le informazioni di autenticazione

  • il tempo alla scadenza (time-to-expiry)

  • un elenco di permessi

  • un elenco di associazioni canale-peer

L'indirizzo di trasporto inoltrato è l'indirizzo di trasporto allocato dal server per comunicare con i peer, mentre la 5-tupla descrive il percorso di comunicazione tra il client e il server. Sul lato client, la 5-tupla utilizza l'indirizzo di trasporto host del client; sul lato server, la 5-tupla utilizza l'indirizzo di trasporto riflesso dal server del client.

L'indirizzo di trasporto inoltrato e la 5-tupla devono essere univoci in tutte le allocazioni, quindi uno dei due può essere utilizzato per identificare in modo univoco l'allocazione.

Le informazioni di autenticazione (ad esempio, nome utente, password, realm e nonce) sono utilizzate sia per verificare le richieste successive sia per calcolare l'integrità dei messaggi delle risposte. I valori di nome utente, realm e nonce sono inizialmente quelli utilizzati nella richiesta Allocate autenticata che ha creato l'allocazione, sebbene il server possa modificare il valore del nonce durante la durata dell'allocazione utilizzando una risposta 438 (Stale Nonce). Si noti che, piuttosto che memorizzare esplicitamente la password, per motivi di sicurezza, può essere desiderabile per il server memorizzare il valore della chiave, che è un hash MD5 su nome utente, realm e password (vedere [RFC5389]).

Il tempo alla scadenza è il tempo in secondi rimanente fino alla scadenza dell'allocazione. Ogni transazione Allocate o Refresh imposta questo timer, che poi conta alla rovescia verso 0. Per impostazione predefinita, ogni transazione Allocate o Refresh reimposta questo timer al valore di durata predefinito di 600 secondi (10 minuti), ma il client può richiedere un valore diverso nelle richieste Allocate e Refresh. Le allocazioni possono essere aggiornate solo utilizzando la richiesta Refresh; l'invio di dati a un peer non aggiorna un'allocazione. Quando un'allocazione scade, i dati di stato associati all'allocazione possono essere liberati.

L'elenco dei permessi è descritto nella sezione 8 e l'elenco dei canali è descritto nella sezione 11.