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

8. Permissions (パーミッション)

各アロケーションについて、サーバーは0個以上のパーミッションのリストを保持します。各パーミッションは、IPアドレスと関連する有効期限で構成されます。パーミッションが存在する場合、サーバーは、パーミッション内のIPアドレスを使用しているすべてのピアがクライアントにデータを送信することを許可します。有効期限は、パーミッションが期限切れになるまでの秒数です。アロケーションのコンテキストでは、パーミッションは関連するIPアドレスによって一意に識別されます。

CreatePermissionリクエストまたはChannelBindリクエストのいずれかを送信することで、クライアントは、サーバーに特定のIPアドレスのパーミッションをインストールまたは更新させることができます。これにより、次の2つのいずれかが発生します:

  • そのIPアドレスのパーミッションが存在しない場合、指定されたIPアドレスと、パーミッション有効期間 (Permission Lifetime) に等しい有効期限を持つパーミッションが作成されます。

  • そのIPアドレスのパーミッションが既に存在する場合、そのパーミッションの有効期限がパーミッション有効期間にリセットされます。

パーミッション有効期間は300秒(= 5分)でなければなりません (MUST)。

各パーミッションの有効期限は1秒ごとに1ずつ減少し、0に達すると、パーミッションは期限切れになり削除されます。

CreatePermissionリクエストとChannelBindリクエストは、パーミッション上で自由に混在させることができます。特定のパーミッションは、最初にCreatePermissionリクエストでインストールおよび/または更新され、その後ChannelBindリクエストで更新されることもあり、またはその逆もあります。

UDPデータグラムがアロケーションの中継トランスポートアドレスに到着すると、サーバーはIPヘッダーから送信元IPアドレスを抽出します。次に、サーバーは、このアドレスを、アロケーションのパーミッションリスト内の各パーミッションに関連付けられたIPアドレスと比較します。一致が見つからない場合、中継は許可されず、サーバーはUDPデータグラムを静かに破棄します。完全一致が見つかった場合、パーミッションチェックは成功したと見なされ、サーバーは他の場所で指定されているようにUDPデータグラムの処理を続行します(セクション10.3)。アドレスのみが比較され、ポート番号は考慮されないことに注意してください。

1つのアロケーションのパーミッションは、別のアロケーションのパーミッションとは完全に無関係です。アロケーションが期限切れになると、そのすべてのパーミッションも期限切れになります。

注意: TURNパーミッションは5分後に期限切れになりますが、本文書の公開時点で展開されている多くのNATは、UDPバインディングがかなり速く期限切れになります。したがって、TURNを使用するアプリケーションは、おそらくはるかに高速なレートで何らかのキープアライブトラフィックを送信したいと考えるでしょう。ICEを使用するアプリケーションは、ICE [RFC5245] のキープアライブガイドラインに従うべきであり、ICEを使用しないアプリケーションは同様のことを行うことが推奨されます (RECOMMENDED)。