メインコンテンツまでスキップ

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で説明されます。