5. Allocations (アロケーション)
すべてのTURN操作はアロケーションを中心に展開され、すべてのTURNメッセージはアロケーションに関連付けられています。アロケーションは、概念的に以下の状態データで構成されます:
-
中継トランスポートアドレス
-
5タプル: (クライアントのIPアドレス、クライアントのポート、サーバーIPアドレス、サーバーポート、トランスポートプロトコル)
-
認証情報
-
有効期限 (Time-to-Expiry)
-
パーミッションのリスト
-
チャネルとピアのバインディングのリスト
中継トランスポートアドレスは、ピアとの通信のためにサーバーが割り当てたトランスポートアドレスであり、5タプルはクライアントとサーバー間の通信パスを記述します。クライアント側では、5タプルはクライアントのホストトランスポートアドレスを使用します。サーバー側では、5タプルはクライアントのサーバー反射トランスポートアドレスを使用します。
中継トランスポートアドレスと5タプルは、すべてのアロケーション間で一意でなければならず (MUST)、したがって、どちらか一方を使用してアロケーションを一意に識別できます。
認証情報(例: ユーザー名、パスワード、レルム、ノンス)は、後続のリクエストを検証し、応答のメッセージ完全性を計算するために使用されます。ユーザー名、レルム、ノンス値は、最初はアロケーションを作成した認証済みAllocateリクエストで使用された値ですが、サーバーは438 (Stale Nonce) 応答を使用して、アロケーションの有効期間中にノンス値を変更できます。セキュリティ上の理由から、パスワードを明示的に保存するのではなく、サーバーはユーザー名、レルム、パスワードに対するMD5ハッシュであるキー値を保存することが望ましい場合があることに注意してください([RFC5389] を参照)。
有効期限は、アロケーションが期限切れになるまでの残り秒数です。各AllocateまたはRefreshトランザクションはこのタイマーを設定し、タイマーは0に向かってカウントダウンします。デフォルトでは、各AllocateまたはRefreshトランザクションは、このタイマーをデフォルトの有効期間値である600秒(10分)にリセットしますが、クライアントはAllocateおよびRefreshリクエストで異なる値を要求できます。アロケーションはRefreshリクエストを使用してのみ更新でき、ピアへのデータ送信ではアロケーションは更新されません。アロケーションが期限切れになると、アロケーションに関連付けられた状態データを解放できます。
パーミッションのリストはセクション8で説明され、チャネルのリストはセクション11で説明されます。