Diameterの特徴を理解するには,RADIUSと比較してみるのが早道でしょう。今回は,RADIUSの制限事項はどんなことか,その事項についてDiameterではどのように規定されているかを説明しましょう。

 RADIUSはAVPのような優れたアーキテクチャを持つ反面,現在AAAサーバーに求められる機能に対して十分に応えられるだけの拡張性や安全性が確保されていないという問題があります。ヘッダーやAVPで扱える情報量が少なかったり,情報の暗号化のための機能が貧弱なのが原因です。現在よりもとても非力な開発当時のシステム環境で動作させるためにはしかたがなかったと言えます。

 一方,Diameterは,現在利用可能なリッチなシステム環境の利用を前提としているので,RADIUSに存在する制限はなくなりました(表1)。AAAサーバーとしての機能が豊富で,安全性・信頼性にも配慮されています。また,将来に備えて十分すぎるほどの拡張性を持たせています。

表1●RADIUSとDiameterの違い
表1●RADIUSとDiameterの違い
[画像のクリックで拡大表示]

 以下では,Diameterの特徴を知るために,RADIUSの制限事項はどんなことか,その事項についてDiameterではどのように規定されているかを説明しましょう。

トランスポート

【RADIUS】

 UDP(User Datagram Protocol)上で動作します。

 問題点としては,次の項で説明する再送機能により発生しやすくなる輻輳(ふくそう)を制御する機能が組み込まれていません。輻輳制御の不備が原因で,パフォーマンスの低下やデータ損失が懸念されるため,大規模なシステムでの利用には不向きです。状況に応じて転送速度を落とすなどして混雑を緩和するよう制御することを輻輳制御といいます。

 さらに,トランスポート層におけるセキュリティに関しては規定されていません。

【Diameter】

 TCP(Transmission Control Protocol)もしくは,SCTP(Stream Control Transmission Protocol)上で動作します。SCTPはあまり聞きなれないプロトコルですが,IP網上で電話網並みの信頼性を持って,データをやり取りするために作られたものです。

 ちなみに,SCTPの使用ですが,DiameterクライアントではTCPかSCTPのどちらかを使えばよいことになっています。対してDiameterサーバーは両方をサポートしなければなりません。SCTPのサポートという要求は,SCTP自体が現段階において広く普及していないことを考えれば,Diameterの採用で障壁となると考えられます。

 RADIUSにはなかった輻輳制御機能を備えるようになりました。また,欠損パケットが各ホップ(ホップ・バイ・ホップ,hop by hop)で再送されることにより信頼性が向上しており,大規模なシステムでの利用も可能です。

 セキュリティに関しては,IPsecもしくはTLS(Transport Layer Security)を使用してホップ・バイ・ホップのセキュリティを提供することが規定されています。IPsecのサポートは必須,TLSはオプションです。