Diameter (protocol)
Diameter コンピュータネットワーク用の認証、認可、および課金プロトコルです。 それはそれより前に進んでいたはるかに能力の低いRADIUSプロトコルから発展し、代わりになりました。 これはインターネットプロトコルスイートのアプリケーション層プロトコルに属します。
Diameter Applicationsは、Extensible Authentication Protocol(EAP)で使用するような新しいコマンドや属性を追加することで基本プロトコルを拡張します。
目次
RADIUSとの比較[編集]
名前は、RADIUSプロトコルに由来する言葉の遊びであり、これは前身である(直径は半径の2倍)。 Diameterは直接下位互換性ではなく、RADIUSのアップグレードパスを提供します。 Diameterによって提供されるが、RADIUSには欠けている主な機能は次のとおりです。
- SCTPのサポート
- 能力交渉
- Application layer承認、Diameterはfailoverメソッドと状態マシン(RFC 3539)を定義します。
- 拡張性。 新しいコマンドを定義することができます
- 32ビット境界で整列
また、 ローカルAAAとローミングAAAの両方の状況で動作するように意図されています。 それはTCPまたはSCTPを使用し、UDPは使用しません。 トランスポートレベルのセキュリティ(IPSECまたはTLS)を使用します。 8ビットの識別子の代わりに32 ビットがあります。 ステートフルモードとステートフルモードをサポートしています。 アプリケーション層の肯定応答をサポートし、フェールオーバーを定義します。 より良いローミングサポートを提供します。 AVPを使用します。 Diameterを使用すると、新しいコマンドと属性を定義できます。 伸ばすのは簡単です。
アプリケーション[編集]
Diameter Applicationは、 software applicationではなく、RFC 6733(Obsoletes:RFC 3588)で定義されているDiameterベースプロトコルに基づくプロトコルです。 各アプリケーションはアプリケーション識別子によって定義され、新しいコマンドコードおよび/または新しい必須AVP(属性 - 値ペア)を追加することができます。 新しいオプションのAVPを追加しても、新しいアプリケーションは必要ありません。
Diameterアプリケーションの例:
- Diameter Mobile IPv4アプリケーション (MobileIP, RFC 4004)
- Diameter ネットワークアクセスサーバーアプリケーション (NASREQ, RFC 7155)(Obsoletes: RFC 4005)
- Diameter 拡張可能認証プロトコルアプリケーション (RFC 4072)
- 口座クレジット・コントロール・アプリケーション (DCCA, RFC 4006)
- Diameter セッション開始プロトコルアプリケーション (RFC 4740)
- 3GPP [IPマルチメディアサブシステム]のさまざまなアプリケーション
(汎用ブートストラップアーキテクチャ):ブートストラップサーバ機能
歴史[編集]
Diameterプロトコルは、1998年にPat R. Calhoun、Glen Zorn、およびPing Panによって開発され、RADIUSの限界を克服できる認証、認可、アカウンティング( AAA)のフレームワークを提供しました 。 RADIUSには、信頼性、スケーラビリティ、セキュリティ、柔軟性に関する問題がありました。 RADIUSは、リモートアクセス、IPモビリティ、ポリシー制御を効果的に処理できません。 Diameterプロトコルは、クライアントがポリシー、AAA、およびリソース制御を実行するために使用するポリシープロトコルを定義します。 これにより、単一のサーバーが多くのサービスのポリシーを処理できます。
DiameterはRADIUSと同様にAAA機能を提供しますが、 UDPの代わりに TCPとSCTPを使用するため、通信上の問題の検出と処理が委任されます。 Diameterプロトコルは、第3世代パートナーシッププロジェクト(3GPP)[IPマルチメディアサブシステム](IMS)の開発によってさらに強化されています。 Cx、Dh、Dx、Rf、Ro、Sh、およびZhインタフェースはDiameterアプリケーションでサポートされています。 拡張機能を使用することで、プロキシ、ブローカー、強力なセキュリティー、モバイルIP、ネットワークアクセスサーバー(NASREQ)、アカウンティングおよびリソース管理をサポートするようにプロトコルを拡張することができました。
プロトコル記述[編集]
Diameterベースプロトコルは、RFC 6733(Obsoletes:RFC 3588)によって定義され、AAAプロトコルの最小要件を定義します。 Diameter Applications は、新しいコマンド、属性、またはその両方を追加することによって基本プロトコルを拡張できます。 Diameterセキュリティは、IPsecまたは TLSによって提供されます。 IANAは TCPと SCTPポート番号3868をDiameterに割り当てました。
パケットフォーマット[編集]
パケットは、Diameterメッセージに関連する情報をカプセル化するために、Diameterヘッダーと可変数のAttribute-Value Pairs(AVP)から構成されます。
ビットオフセット | <code style="font-size:8pt; line-height:1px;;"> 0</code> | <code style="font-size:8pt; line-height:1px;;"> 1</code> | <code style="font-size:8pt; line-height:1px;;"> 2</code> | <code style="font-size:8pt; line-height:1px;;"> 3</code> | <code style="font-size:8pt; line-height:1px;;"> 4</code> | <code style="font-size:8pt; line-height:1px;;"> 5</code> | <code style="font-size:8pt; line-height:1px;;"> 6</code> | <code style="font-size:8pt; line-height:1px;;"> 7</code> | <code style="font-size:8pt; line-height:1px;;"> 8</code> | <code style="font-size:8pt; line-height:1px;;"> 9</code> | <code style="font-size:8pt; line-height:1px;;">10</code> | <code style="font-size:8pt; line-height:1px;;">11</code> | <code style="font-size:8pt; line-height:1px;;">12</code> | <code style="font-size:8pt; line-height:1px;;">13</code> | <code style="font-size:8pt; line-height:1px;;">14</code> | <code style="font-size:8pt; line-height:1px;;">15</code> | <code style="font-size:8pt; line-height:1px;;">16</code> | <code style="font-size:8pt; line-height:1px;;">17</code> | <code style="font-size:8pt; line-height:1px;;">18</code> | <code style="font-size:8pt; line-height:1px;;">19</code> | <code style="font-size:8pt; line-height:1px;;">20</code> | <code style="font-size:8pt; line-height:1px;;">21</code> | <code style="font-size:8pt; line-height:1px;;">22</code> | <code style="font-size:8pt; line-height:1px;;">23</code> | <code style="font-size:8pt; line-height:1px;;">24</code> | <code style="font-size:8pt; line-height:1px;;">25</code> | <code style="font-size:8pt; line-height:1px;;">26</code> | <code style="font-size:8pt; line-height:1px;;">27</code> | <code style="font-size:8pt; line-height:1px;;">28</code> | <code style="font-size:8pt; line-height:1px;;">29</code> | <code style="font-size:8pt; line-height:1px;;">30</code> | <code style="font-size:8pt; line-height:1px;;">31</code> |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | バージョン | メッセージ |長さ | ||||||||||||||||||||||||||||||
32 | <code style="font-size:8pt; line-height:1px;;">R</code> | <code style="font-size:8pt; line-height:1px;;">P</code> | <code style="font-size:8pt; line-height:1px;;">E</code> | <code style="font-size:8pt; line-height:1px;;">T</code> | コマンドコード | |||||||||||||||||||||||||||
64 | application ID | |||||||||||||||||||||||||||||||
96 | hop-by-hop ID | |||||||||||||||||||||||||||||||
128 | end-to-end ID | |||||||||||||||||||||||||||||||
160<br />... | AVPs<br/>... |
バージョン[編集]
このフィールドはDiameter Base Protocolのバージョンを示します。 2014年以降、サポートされる唯一の値は1です。
メッセージの長さ[編集]
メッセージ長フィールドは、ヘッダーフィールドと埋め込みAVPを含むDiameterメッセージの長さをバイト単位で示します。
フラグ[編集]
"R"(要求)ビット - 設定されている場合、メッセージは要求です。 クリアされている場合、そのメッセージは答えです。
"P"(Proxiable)ビット - もし設定されていれば、メッセージは代理、中継、またはリダイレクトされてもよい(MAY)。 クリアされた場合、メッセージはローカルで処理されなければならない(MUST)。
"E"(エラー)ビット - 設定されている場合、メッセージにはプロトコルエラーが含まれており、メッセージはこのコマンドで説明されているCCFに準拠しません。 Eビットがセットされたメッセージは、一般にエラーメッセージと呼ばれる。 要求メッセージにこのビットを設定してはならない(MUST NOT)。
"T"(潜在的に再送信されたメッセージ)ビット - このフラグは、リンクフェイルオーバー手順の後に設定され、重複要求の除去を助ける。 リンク障害のために重複している可能性があることを示すものとしてまだ確認されていない要求を再送信する場合に設定されます。
コマンド[編集]
各コマンドの要求/応答ペアには、コマンドコードが割り当てられます。 それが要求であるか回答であるかは、ヘッダーのコマンドフラグフィールドのRビットによって識別されます。
値0〜255は、RADIUSの下位互換性のために予約されています。 値256~16777213は、 IANAによって割り当てられた永続的な標準コマンド用です。 値16777214と16777215(16進数0xFFFFFEと0xFFFFFF)は実験用とテスト用に予約されています。
コマンドコードは、特定のメッセージに対して実行されるアクションを決定するために使用されます。 プロトコル(基本とアプリケーション)で定義されている一般的なDiameterコマンドは次のとおりです。
コマンド名 | Abbr. | コード | アプリケーション |
---|---|---|---|
AA-Request | AAR | 265 | Diameter NAS Application - RFC 7155 |
AA-Answer | AAA | 265 | Diameter NAS Application - RFC 7155 |
Diameter-EAP-Request | DER | 268 | Diameter EAP Application - RFC 4072 |
Diameter-EAP-Answer | DEA | 268 | Diameter EAP Application - RFC 4072 |
Abort-Session-Request | ASR | 274 | Diameter base |
Abort-Session-Answer | ASA | 274 | Diameter base |
Accounting-Request | ACR | 271 | Diameter base |
Accounting-Answer | ACA | 271 | Diameter base |
Credit-Control-Request | CCR | 272 | Diameter Credit-Control Application - RFC 4006 |
Credit-Control-Answer | CCA | 272 | Diameter Credit-Control Application - RFC 4006 |
Capabilities-Exchange-Request | CER | 257 | Diameter base |
Capabilities-Exchange-Answer | CEA | 257 | Diameter base |
Device-Watchdog-Request | DWR | 280 | Diameter base |
Device-Watchdog-Answer | DWA | 280 | Diameter base |
Disconnect-Peer-Request | DPR | 282 | Diameter base |
Disconnect-Peer-Answer | DPA | 282 | Diameter base |
Re-Auth-Request | RAR | 258 | Diameter base |
Re-Auth-Answer | RAA | 258 | Diameter base |
Session-Termination-Request | STR | 275 | Diameter base |
Session-Termination-Answer | STA | 275 | Diameter base |
User-Authorization-Request | UAR | 283 | Diameter SIP Application - RFC 4740 |
User-Authorization-Answer | UAA | 283 | Diameter SIP Application - RFC 4740 |
Server-Assignment-Request | SAR | 284 | Diameter SIP Application - RFC 4740 |
Server-Assignment-Answer | SAA | 284 | Diameter SIP Application - RFC 4740 |
Location-Info-Request | LIR | 285 | Diameter SIP Application - RFC 4740 |
Location-Info-Answer | LIA | 285 | Diameter SIP Application - RFC 4740 |
Multimedia-Auth-Request | MAR | 286 | Diameter SIP Application - RFC 4740 |
Multimedia-Auth-Answer | MAA | 286 | Diameter SIP Application - RFC 4740 |
Registration-Termination-Request | RTR | 287 | Diameter SIP Application - RFC 4740 |
Registration-Termination-Answer | RTA | 287 | Diameter SIP Application - RFC 4740 |
Push-Profile-Request | PPR | 288 | Diameter SIP Application - RFC 4740 |
Push-Profile-Answer | PPA | 288 | Diameter SIP Application - RFC 4740 |
User-Authorization-Request | UAR | 300 | Diameter base ( 3GPP ) RFC 3589 |
User-Authorization-Answer | UAA | 300 | Diameter base ( 3GPP ) RFC 3589 |
Server-Assignment-Request | SAR | 301 | Diameter base ( 3GPP ) RFC 3589 |
Server-Assignment-Answer | SAA | 301 | Diameter base ( 3GPP ) RFC 3589 |
Location-Info-Request | LIR | 302 | Diameter base ( 3GPP ) RFC 3589 |
Location-Info-Answer | LIA | 302 | Diameter base ( 3GPP ) RFC 3589 |
Multimedia-Auth-Request | MAR | 303 | Diameter base ( 3GPP ) RFC 3589 |
Multimedia-Auth-Answer | MAA | 303 | Diameter base ( 3GPP ) RFC 3589 |
Registration-Termination-Request | RTR | 304 | Diameter base ( 3GPP ) RFC 3589 |
Registration-Termination-Answer | RTA | 304 | Diameter base ( 3GPP ) RFC 3589 |
Push-Profile-Request | PPR | 305 | Diameter base ( 3GPP ) RFC 3589 |
Push-Profile-Answer | PPA | 305 | Diameter base ( 3GPP ) RFC 3589 |
User-Data-Request | UDR | 306 | Diameter base ( 3GPP ) RFC 3589 |
User-Data-Answer | UDA | 306 | Diameter base ( 3GPP ) RFC 3589 |
Profile-Update-Request | PUR | 307 | Diameter base ( 3GPP ) RFC 3589 |
Profile-Update-Answer | PUA | 307 | Diameter base ( 3GPP ) RFC 3589 |
Subscribe-Notifications-Request | SNR | 308 | Diameter base ( 3GPP ) RFC 3589 |
Subscribe-Notifications-Answer | SNA | 308 | Diameter base ( 3GPP ) RFC 3589 |
Push-Notification-Request | PNR | 309 | Diameter base ( 3GPP ) RFC 3589 |
Push-Notification-Answer | PNA | 309 | Diameter base ( 3GPP ) RFC 3589 |
Bootstrapping-Info-Request | BIR | 310 | Diameter base ( 3GPP ) RFC 3589 |
Bootstrapping-Info-Answer | BIA | 310 | Diameter base ( 3GPP ) RFC 3589 |
Message-Process-Request | MPR | 311 | Diameter base ( 3GPP ) RFC 3589 |
Message-Process-Answer | MPA | 311 | Diameter base ( 3GPP ) RFC 3589 |
Update-Location-Request | ULR | 316 | 3GPP TS 29.272 [RFC 5516] |
Update-Location-Answer | ULA | 316 | 3GPP TS 29.272 [RFC 5516] |
Cancel-Location-Request | CLR | 317 | 3GPP TS 29.272 [RFC 5516] |
Cancel-Location-Answer | CLA | 317 | 3GPP TS 29.272 [RFC 5516] |
Authentication-Information-Request | AIR | 318 | 3GPP TS 29.272 [RFC 5516] |
Authentication-Information-Answer | AIA | 318 | 3GPP TS 29.272 [RFC 5516] |
Insert-Subscriber-Data-Request | IDR | 319 | 3GPP TS 29.272 [RFC 5516] |
Insert-Subscriber-Data-Answer | IDA | 319 | 3GPP TS 29.272 [RFC 5516] |
Delete-Subscriber-Data-Request | DSR | 320 | 3GPP TS 29.272 [RFC 5516] |
Delete-Subscriber-Data-Answer | DSA | 320 | 3GPP TS 29.272 [RFC 5516] |
Purge-UE-Request | PER | 321 | 3GPP TS 29.272 [RFC 5516] |
Purge-UE-Answer | PEA | 321 | 3GPP TS 29.272 [RFC 5516] |
Notify-Request | NR | 323 | 3GPP TS 29.272 [RFC 5516] |
Notify-Answer | NA | 323 | 3GPP TS 29.272 [RFC 5516] |
Provide-Location-Request | PLR | 8388620 | 3GPP-LCS-SLg (Application-ID 16777255) |
Provide-Location-Answer | PLA | 8388620 | 3GPP-LCS-SLg (Application-ID 16777255) |
Routing-Info-Request | RIR | 8388622 | 3GPP-LCS-SLh (Application-ID 16777291) |
Routing-Info-Answer | RIA | 8388622 | 3GPP-LCS-SLh (Application-ID 16777291) |
AA-Mobile-Node-Request | AMR | 260 | Diameter Mobile IPv4 - RFC 4004 |
AA-Mobile-Node-Answer | AMA | 260 | Diameter Mobile IPv4 - RFC 4004 |
Home-Agent-MIP-Request | HAR | 262 | Diameter Mobile IPv4 - RFC 4004 |
Home-Agent-MIP-Answer | HAA | 262 | Diameter Mobile IPv4 - RFC 4004 |
Configuration-Information-Request | CIR | 8388718 | S6t per 3GPP TS 29.336 |
Configuration-Information-Answer | CIA | 8388718 | S6t per 3GPP TS 29.336 |
Reporting-Information-Request | RIR | 8388719 | S6t per 3GPP TS 29.336 |
Reporting-Information-Answer | RIA | 8388719 | S6t per 3GPP TS 29.336 |
NIDD-Information-Request | NIR | 8388726 | S6t per 3GPP TS 29.336 |
NIDD-Information-Answer | NIA | 8388726 | S6t per 3GPP TS 29.336 |
アプリケーションID[編集]
アプリケーションIDは、メッセージが適用可能なDiameterアプリケーションを識別するために使用されます。 アプリケーションは、認証アプリケーション、会計アプリケーション、またはベンダー固有のアプリケーションです。
特定のDiameter拡張に適合するDiameterエージェントは、Capabilities-Exchange-Request(CER)コマンドとCapabilities-Exchange-Answer(CEA)コマンドのAuth-Application-Id属性に特定の値を含めることによって、そのサポートを公表します。
ヘッダーのApplication-IDフィールドの値は、メッセージに含まれている関連するApplication-Id AVPの値と同じです。 たとえば、クレジット制御要求(CCR)およびクレジット制御応答(CCA)コマンドのアプリケーションIDおよびAuth-Application-Id属性の値は、4つです。
アプリケーションID | Abbr. | フルネーム | 使用法 |
---|---|---|---|
0 | Base | Diameter Common Messages | Diameterプロトコルの確立/ティアダウン/メンテナンス |
16777217 | Sh | 3GPP Sh | VoIP / IMS SIPアプリケーションサーバからHSSインタフェースへ |
16777251 | S6a/S6d | 3GPP S6a/S6d | LTEローミングシグナリング |
16777255 | SLg | 3GPP LCS SLg | 位置情報サービス |
16777345 | S6t | 3GPP S6t | SCEFとHSS間のインタフェース |
ホップバイホップ識別子[編集]
Hop-by-Hop Identifierは、リクエスト内の同じ値がレスポンスで使用されているため、レスポンスでリクエストを照合するために使用される符号なし32ビット整数フィールドです(ネットワークバイトオーダー)。
Diameterプロトコルでは、リレーエージェントとプロキシエージェントがフェールオーバーの目的で使用されるトランザクション状態を維持する必要があります。 トランザクション状態は、要求を転送すると、ホップバイホップ識別子が保存されることを意味します。 フィールドは、対応する応答が受信されたときに元の値に復元される、ローカルに一意の識別子に置き換えられます。 要求の状態は、応答の受信時に解放されます。 既知のHop-by-Hop Identifierと一致しない受信した回答は、Diameterエージェントによって無視されます。
リダイレクトエージェントの場合、ホップバイホップ識別子は、Diameterエージェントが応答メッセージで応答するときにヘッダーに保持されます。
エンドツーエンド識別子[編集]
End-to-End Identifierは、Origin-Host AVPの組み合わせと共に重複メッセージを検出するために使用される符号なし32ビット整数フィールド(ネットワークバイトオーダー)です。
要求を作成するとき、エンドツーエンド識別子はローカルで一意の値に設定されます。 End-to-End IdentifierはDiameterエージェントによってどのような種類のものでも変更されず、対応する要求の同じ値がその答えに使用されます。
属性値ペア(AVP)[編集]
ビットオフセット | <code style="font-size:8pt; line-height:1px;;"> 0</code> | <code style="font-size:8pt; line-height:1px;;"> 1</code> | <code style="font-size:8pt; line-height:1px;;"> 2</code> | <code style="font-size:8pt; line-height:1px;;"> 3</code> | <code style="font-size:8pt; line-height:1px;;"> 4</code> | <code style="font-size:8pt; line-height:1px;;"> 5</code> | <code style="font-size:8pt; line-height:1px;;"> 6</code> | <code style="font-size:8pt; line-height:1px;;"> 7</code> | <code style="font-size:8pt; line-height:1px;;"> 8</code> | <code style="font-size:8pt; line-height:1px;;"> 9</code> | <code style="font-size:8pt; line-height:1px;;">10</code> | <code style="font-size:8pt; line-height:1px;;">11</code> | <code style="font-size:8pt; line-height:1px;;">12</code> | <code style="font-size:8pt; line-height:1px;;">13</code> | <code style="font-size:8pt; line-height:1px;;">14</code> | <code style="font-size:8pt; line-height:1px;;">15</code> | <code style="font-size:8pt; line-height:1px;;">16</code> | <code style="font-size:8pt; line-height:1px;;">17</code> | <code style="font-size:8pt; line-height:1px;;">18</code> | <code style="font-size:8pt; line-height:1px;;">19</code> | <code style="font-size:8pt; line-height:1px;;">20</code> | <code style="font-size:8pt; line-height:1px;;">21</code> | <code style="font-size:8pt; line-height:1px;;">22</code> | <code style="font-size:8pt; line-height:1px;;">23</code> | <code style="font-size:8pt; line-height:1px;;">24</code> | <code style="font-size:8pt; line-height:1px;;">25</code> | <code style="font-size:8pt; line-height:1px;;">26</code> | <code style="font-size:8pt; line-height:1px;;">27</code> | <code style="font-size:8pt; line-height:1px;;">28</code> | <code style="font-size:8pt; line-height:1px;;">29</code> | <code style="font-size:8pt; line-height:1px;;">30</code> | <code style="font-size:8pt; line-height:1px;;">31</code> |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | AVPコード | |||||||||||||||||||||||||||||||
32 | <code style="font-size:8pt; line-height:1px;;">V</code> | <code style="font-size:8pt; line-height:1px;;">M</code> | <code style="font-size:8pt; line-height:1px;;">P</code> | AVP長 | ||||||||||||||||||||||||||||
64 | ベンダーID (オプション) | |||||||||||||||||||||||||||||||
96<br>... | データ<br>... |
単純化のために、 "'V"は、ベンダー固有;"M "は、必須を意味します。 "P"は、保護を意味します。
Vendor-Specificビットとして知られている "V"ビットは、オプションの Vendor-IDフィールドがAVPヘッダーに存在するかどうかを示します。 AVPコードが設定されると、特定のベンダーコードのアドレス空間に属します。
必須ビットと呼ばれる "'M"ビットは、AVPのサポートが必要かどうかを示します。 Diameterクライアント、サーバー、プロキシ、または変換エージェントによって "M"ビットがセットされたAVPが受信され、AVPまたはその値が認識されない場合、メッセージは拒否される必要があります。 Diameterリレーとリダイレクトエージェントは、認識できないAVPのメッセージを拒否してはいけません。
"P"ビットはエンドツーエンドセキュリティのための暗号化の必要性を示します。
属性名 | コード | データ タイプ |
---|---|---|
Acct-Interim-Interval | 85 | 署名なし32 |
Accounting-Realtime-Required | 483 | 列挙された |
Acct-Multi-Session-Id | 50 | UTF8文字列 |
Accounting-Record-Number | 485 | 署名なし32 |
Accounting-Record-Type | 480 | 列挙された |
Accounting-Session-Id | 44 | Octet文字列 |
Accounting-Sub-Session-Id | 287 | 署名なし64 |
Acct-Application-Id | 259 | 署名なし32 |
Auth-Application-Id | 258 | 署名なし32 |
Auth-Request-Type | 274 | 列挙された |
Authorization-Lifetime | 291 | 署名なし32 |
Auth-Grace-Period | 276 | 署名なし32 |
Auth-Session-State | 277 | 列挙された |
Re-Auth-Request-Type | 285 | 列挙された |
Class | 25 | Octet文字列 |
Destination-Host | 293 | DiamIdent |
Destination-Realm | 283 | DiamIdent |
Disconnect-Cause | 273 | 列挙された |
E2E-Sequence | 300 | グループ化 |
Error-Message | 281 | UTF8文字列 |
Error-Reporting-Host | 294 | DiamIdent |
Event-Timestamp | 55 | 時間 |
Experimental-Result | 297 | グループ化 |
Experimental-Result-Code | 298 | 署名なし32 |
Failed-AVP | 279 | グループ化 |
Firmware-Revision | 267 | 署名なし32 |
Host-IP-Address | 257 | アドレス |
Inband-Security-Id | 299 | 署名なし32 |
Multi-Round-Time-Out | 272 | 署名なし32 |
Origin-Host | 264 | DiamIdent |
Origin-Realm | 296 | DiamIdent |
Origin-State-Id | 278 | 署名なし32 |
Product-Name | 269 | UTF8文字列 |
Proxy-Host | 280 | DiamIdent |
Proxy-Info | 284 | グループ化 |
Proxy-State | 33 | Octet文字列 |
Redirect-Host | 292 | DiamURI |
Redirect-Host-Usage | 261 | 列挙された |
Redirect-Max-Cache-Time | 262 | 署名なし32 |
Result-Code | 268 | 署名なし32 |
Route-Record | 282 | DiamIdent |
Session-Id | 263 | UTF8文字列 |
Session-Timeout | 27 | 署名なし32 |
Session-Binding | 270 | 署名なし32 |
Session-Server-Failover | 271 | 列挙された |
Supported-Vendor-Id | 265 | 署名なし32 |
Termination-Cause | 295 | 列挙された |
User-Name | 1 | UTF8文字列 |
Vendor-Id | 266 | 署名なし32 |
Vendor-Specific-Application-Id | 260 | グループ化 |
ステートマシン[編集]
RFC3588は、ピアと処理メッセージとの間の接続を維持するためのコア状態機械を定義する。 これは基本的なプロトコル機能の一部であり、すべてのスタックがそれをサポートしなければならず、接続関連の操作からの要約としてサポートする必要があります。
<gallery> File:RFC3588_peer_state_machine_1.png|ピア状態マシンパート1 File:RFC3588_peer_state_machine_2.png|ピア状態マシンパート2 </gallery>
さらに、アプリケーション固有の状態マシンは、後で、またはより高い抽象化レイヤーで導入することができます。 RFC 3588では、認可とアカウンティングのステートマシンが定義されています。 <gallery> File:RFC3588_auth_state_machine_client.png|Diameter認証ステートマシン(クライアント) File:RFC3588_auth_state_machine_server.png|Diameter認証ステートマシン(サーバー) File:RFC3588_acct_state_machine_client.png|Diameterアカウンティングステートマシン(クライアント) File:RFC3588_acct_state_machine_server.png|Diameterアカウンティングステートマシン(サーバー) </gallery>
メッセージの流れ[編集]
2つの直径のピア間の通信は、トランスポート接続( TCPまたはSCTP)の確立から始まります。 次に、イニシエータはCapabilities-Exchange-Request(CER)を他のピアに送信し、これはCapabilities-Exchange-Answer(CEA)で応答します。 RFC3588準拠のピアの場合、TLS(Transport Layer Security)はオプションでネゴシエートされます。 RFC6733準拠ピアの場合、TLSネゴシエーションは、CER / CEAの前に任意に発生することがあります。
これで、アプリケーションメッセージの交換が可能になります。
ある時間メッセージが交換されていない場合は、いずれかの側がDevice-Watchdog-Request(DWR)を送信し、他のピアはDevice-Watchdog-Answerで応答する必要があります。
いずれかの側は、他のピアがDisconnect-Peer-Answerで応答しなければならないDisconnect-Peer-Request(DPR)を送信することによって通信を終了することができる。 その後、トランスポート接続を切断することができます。
RFCs[編集]
Diameterプロトコルは現在、次のIETF RFCで定義されています。廃止されたRFCは取り消し線テキストで示されます。
# | タイトル | 発行日 | 関連記事 | 廃止された | ノート |
---|---|---|---|---|---|
<s>RFC 3588</s> | <s>Diameter ベースプロトコル.</s> | <s>2003年9月</s> | RFC 6733 | ||
RFC 3589 | Diameter 第3世代パートナーシッププロジェクト(3GPP)リリース5のコマンドコード. | 2003年9月 | |||
RFC 4004 | Diameter モバイルIPv4アプリケーション. | 2005年8月 | |||
<s>RFC 4005</s> | <s>Diameter ネットワークアクセスサーバーアプリケーション.</s> | <s>2005年8月</s> | RFC 7155 | ||
RFC 4006 | Diameter クレジット制御アプリケーション. | 2005年8月 | Diameter Credit-Control Application | ||
RFC 4072 | Diameter 拡張認証プロトコル(EAP)アプリケーション. | 2005年8月 | |||
RFC 4740 | Diameter セッション開始プロトコル(SIP)アプリケーション. M. | 2006年11月 | |||
RFC 5224 | Diameter ポリシー処理アプリケーション. | 2008年3月 | |||
RFC 5431 | Diameter ITU-T Rwとポリシー適用インタフェースアプリケーション. | 2009年3月 | |||
RFC 5447 | Diameter モバイルIPv6:Diameterサーバーとの相互作用に対するネットワークアクセスサーバーのサポート. | 2009年2月 | |||
RFC 5516 | Diameter 第3世代パートナーシッププロジェクト(3GPP)のためのコマンドコード登録進化したパケットシステム(EPS). | 2009年4月 | - | ||
RFC 5624 | Diameterによる使用のためのサービス品質パラメータ. | 2009年8月 | |||
<s>RFC 5719</s> | <s>Diameterコマンドコード割り当てに関するIANAの考慮事項の更新.</s> | <s>2010年1月</s> | RFC 6733 | ||
RFC 6733 | Diameter ベースプロトコル. | 2012年10月 | |||
RFC 6737 | Diameter機能更新アプリケーション. | 2012年10月 | |||
RFC 7155 | Diameter ネットワークアクセスサーバーアプリケーション. | 2014年4月 |