(57)【要約】  本発明は、ネットワーク要素において転送ループを検出するための方法および機器を含む。本方法は、受信されたメッセージが第１のネットワーク要素によって前に受信されたかどうか判定することと、受信されたメッセージが前に受信された場合は、現在のルーティングダイジェストを計算し、受信されたメッセージのヘッダが前のルーティングダイジェストを含むかどうか判定することとを含む。受信されたメッセージのヘッダが前のルーティングダイジェストを含む場合は、転送ループが存在するかどうかに関して判定が行われる。受信されたメッセージのヘッダが前のルーティングダイジェストを含まない場合は、現在のルーティングダイジェストが受信されたメッセージのヘッダに挿入され、メッセージが第２のネットワーク要素の方へ転送される。受信されたメッセージが前に受信されなかった場合は、受信されたメッセージを第２のネットワーク要素の方へ転送する。
2009538564.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）受信されたメッセージが第１のネットワーク要素によって前に受信されたかどうか判定することと、
（ｂ１）受信されたメッセージが第１のネットワーク要素によって前に受信された場合は、現在のルーティングダイジェストを計算し、受信されたメッセージのヘッダが前のルーティングダイジェストを含むかどうか判定し、
（ｂ１１）受信されたメッセージのヘッダが前のルーティングダイジェストを含む場合は、転送ループが存在するかどうか判定することと、
（ｂ１２）受信されたメッセージのヘッダが前のルーティングダイジェストを含まない場合は、現在のルーティングダイジェストを受信されたメッセージのヘッダに挿入し、メッセージを第２のネットワーク要素の方へ転送することと
のうちの１つを実行することと、
（ｂ２）受信されたメッセージが第１のネットワーク要素によって前に受信されなかった場合は、受信されたメッセージを第２のネットワーク要素の方へ転送することと
を備える、第１のネットワーク要素において転送ループを検出するための方法。
【請求項２】
受信されたメッセージが第１のネットワーク要素によって前に受信されたかどうか判定することが、
受信されたメッセージが第１のネットワーク要素によって前に受信されたときに、受信されたメッセージのヘッダが第１のネットワーク要素によって挿入されたヘッダフィールドを含むかどうか判定すること
を備える、請求項１に記載の方法。
【請求項３】
転送ループが存在するかどうか判定することが、
現在のルーティングダイジェストと前のルーティングダイジェストを比較し、
現在のルーティングダイジェストと前のルーティングダイジェストが一致する場合は、転送ループを検出することと、
現在のルーティングダイジェストと前のルーティングダイジェストが一致しない場合は、メッセージを第２のネットワーク要素の方へ転送することと
のうちの１つを実行することを備える、請求項１に記載の方法。
【請求項４】
現在のルーティングダイジェストを計算することが、
受信されたメッセージのヘッダ内で、受信されたメッセージのルーティングに関連する複数のヘッダフィールドのうちの選択されたものを識別することと、
受信されたメッセージのルーティングに関連するヘッダフィールドのうちの選択されたものを使用して現在のルーティングダイジェストを計算することと
を備える、請求項１に記載の方法。
【請求項５】
受信されたメッセージのルーティングに関連するヘッダフィールドのうちの選択されたものを使用して現在のルーティングダイジェストを計算することが、
ヘッダフィールドのうちの選択されたものに関するハッシュ関数の結果を合計することを備える、請求項１に記載の方法。
【請求項６】
現在のルーティングダイジェストが、受信されたメッセージのヘッダの一部分として、受信されたメッセージに挿入される、請求項１に記載の方法。
【請求項７】
現在のルーティングダイジェストが受信されたメッセージのヘッダのヘッダフィールドの一部分として、受信されたメッセージに挿入され、現在のルーティングダイジェストがルーティングダイジェストパラメータ名およびルーティングダイジェストパラメータ値を備える、請求項１に記載の方法。
【請求項８】
受信されたメッセージが、第１のネットワーク要素によって前に受信されたかどうか判定するための手段と、
受信されたメッセージが第１のネットワーク要素によって前に受信された場合は、現在のルーティングダイジェストを計算し、受信されたメッセージのヘッダが前のルーティングダイジェストを含むかどうか判定するための手段と
を備え、さらに、
受信されたメッセージのヘッダが前のルーティングダイジェストを含む場合は、転送ループが存在するかどうか判定するための手段と、
受信されたメッセージのヘッダが前のルーティングダイジェストを含まない場合は、現在のルーティングダイジェストを受信されたメッセージのヘッダに挿入し、メッセージを第２のネットワーク要素の方へ転送するための手段と、
受信されたメッセージが第１のネットワーク要素によって前に受信されなかった場合は、受信されたメッセージを第２のネットワーク要素の方へ転送するための手段と
を備える、第１のネットワーク要素において転送ループを検出するための機器。
【請求項９】
転送ループが存在するかどうか判定するための手段が、
現在のルーティングダイジェストおよび前のルーティングダイジェストを比較するための手段を備え、さらに、
現在のルーティングダイジェストおよび前のルーティングダイジェストが一致する場合は、転送ループを検出するための手段と、
現在のルーティングダイジェストおよび前のルーティングダイジェストが一致しない場合は、メッセージを第２のネットワーク要素の方へ転送するための手段と
を備える、請求項８に記載の機器。
【請求項１０】
コンピュータによって実行された場合、コンピュータに、
（ａ）受信されたメッセージが第１のネットワーク要素によって前に受信されたかどうか判定することと、
（ｂ１）受信されたメッセージが第１のネットワーク要素によって前に受信された場合は、現在のルーティングダイジェストを計算し、受信されたメッセージのヘッダが前のルーティングダイジェストを含むかどうか判定し、
（ｂ１１）受信されたメッセージのヘッダが前のルーティングダイジェストを含む場合は、転送ループが存在するかどうか判定することと、
（ｂ１２）受信されたメッセージのヘッダが前のルーティングダイジェストを含まない場合は、現在のルーティングダイジェストを受信されたメッセージのヘッダに挿入し、メッセージを第２のネットワーク要素の方へ転送することと
のうちの１つを実行することと、
（ｂ２）受信されたメッセージが第１のネットワーク要素によって前に受信されなかった場合は、受信されたメッセージを第２のネットワーク要素の方へ転送することと
を備える方法を実行させるソフトウェアプログラムを記憶する、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークの分野に関し、より詳細には、転送ループを検出することに関する。
【背景技術】
【０００２】
セッション開始プロトコル（ＳＩＰ）プロトコルは、ボイス、インスタントメッセージング、ビデオ、オンラインゲームなどをサポートするインタラクティブユーザセッションを開始、修正、および終了するためのエンドツーエンドクライアントサーバシグナリングプロトコルである。インターネットプロトコル（ＩＰ）マルチメディアサブシステム（ＩＭＳ）ネットワークなどの次世代ネットワークにおいて利用されるＳＩＰプロトコルは、分散された要素間（例えば、ＳＩＰユーザエージェント（ＵＡ）間）の通信を可能にする。ＳＩＰプロトコルを使用して、ＳＩＰ  ＵＡ間で交換されるＳＩＰメッセージは、一連のＳＩＰネットワーク要素（プロキシとして知られている）をトラバースする。残念ながら、不正確に構成されたネットワーク要素または悪意のあるネットワーク攻撃のために、転送ループが発生する可能性があり、その結果、ＳＩＰメッセージがＳＩＰネットワーク要素間で繰り返し転送されるようになり、それによって、ＳＩＰメッセージの所期のＳＩＰ  ＵＡへの配信を妨害し、高いメッセージ処理負荷を生じさせる。転送ループは、ＳＩＰを利用するネットワーク（ならびに、他の電気通信プロトコルを利用するネットワーク）において生じる可能性があるので、転送ループを低減するように試みるいくつかの手段が実行されてきた。
【０００３】
１つの可能な解決策では、例えば、転送ループが検出される前にＳＩＰメッセージが転送される回数を限定するために、クライアント装置はＳＩＰメッセージのヘッダに「最大転送」ヘッダフィールドを追加することができる（すなわち、転送ループが検出される前にＳＩＰメッセージはＮ回（例えば、Ｎ＝７０）しか転送されることができない）。不都合なことには、「最大転送」ヘッダフィールドの使用は多くの問題を引き起こす可能性がある。「最大転送」ヘッダフィールド値（Ｎ）が低く設定されすぎると、有効なサービス提供が制限されすぎる可能性がある。「最大転送」ヘッダフィールド値（Ｎ）が高く設定されすぎると、かなりのネットワークリソースが消費される可能性がある。さらに、転送ループの検出に応答して生成された転送ループエラーメッセージが、トラバースされるパスに沿って転送される可能性があり、それによってネットワークリソースの追加の消費を引き起こす可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術における様々な欠陥が、ネットワーク要素における転送ループを検出するための本発明の方法および機器によって対処される。
【課題を解決するための手段】
【０００５】
本方法は、受信されたメッセージが第１のネットワーク要素によって前に受信されたかどうかを判定し、受信されたメッセージが前に受信された場合は、現在のルーティングダイジェストを計算し、受信されたメッセージのヘッダが前のルーティングダイジェストを含むかどうかを判定することを含む。受信されたメッセージのヘッダが前のルーティングダイジェストを含む場合は、転送ループが存在するかどうかに関して判定が行われる。受信されたメッセージのヘッダが、前のルーティングダイジェストを含まない場合は、現在のルーティングダイジェストが受信されたメッセージのヘッダに挿入され、メッセージが第２のネットワーク要素の方へ転送される。受信されたメッセージが前に受信されなかった場合は、受信されたメッセージを第２のネットワーク要素の方へ転送する。
【０００６】
本発明の教示は、添付の諸図面と併せて以下の詳細な説明を考察することによって容易に理解されることができる。
【０００７】
理解を容易にするために、諸図に共通の同じ要素を示すために、可能な場合は、同じ参照数字が使用されている。
【図面の簡単な説明】
【０００８】
【図１】通信ネットワークの高レベルのブロック図である。
【図２】本発明の一実施形態による方法を示す図である。
【図３】本明細書に記載された機能の少なくとも一部分を実行する際の使用に適した汎用コンピュータの高レベルのブロック図である。
【発明を実施するための形態】
【０００９】
本発明は、転送ループ検出処理を提供する。本発明は、転送ループの検出を可能にする。本発明は、転送ループの効果的な検出と、転送ループの検出に関連する処理コストとの間のトレードオフを示し、それによって効果的な転送ループ検出機能を提供し、同時に、転送ループ検出処理を実行するために利用されるネットワーク要素処理リソースを著しく低減する。本発明は、転送ループがない場合はネットワーク要素がダイジェスト計算をしなくてもよいようにし、その代わり、潜在的転送ループがネットワーク要素によって検出されるまで（すなわち、メッセージがネットワーク要素によって前に受信され、転送された場合は）、ダイジェスト計算および挿入を延期する。
【００１０】
本発明の転送ループ検出処理は、ＲＦＣ３２６１の転送ループ検出処理よりかなりの利点を提供する。本発明の転送ループ検出処理は、ＲＦＣ３２６１の転送ループ検出処理と比べて（ＣＰＵ処理の点から見て）より低いコストの転送ループの検出を可能にする。一実施形態では、本発明の転送ループ検出処理を使用して、転送ループが、そうでなければ、ＲＦＣ３２６１の転送ループ検出処理を使用して転送ループが検出されるであろうステップ（例えば、メッセージがネットワーク要素によって受信される２回目に）より１転送ステップ遅く（例えば、メッセージがネットワーク要素によって受信される３回目に）検出される。一実施形態では、（ＲＦＣ３２６１の場合のように、既存のヘッダフィールドの一部分を再使用するのではなく）新しいヘッダフィールドを利用することによって、本発明の転送ループ検出処理は他のメッセージ処理を妨害することなく実行されることができる。
【００１１】
図１は、通信ネットワークの高レベルのブロック図を示す。詳細には、通信ネットワーク１００は、第１の複数のＳＩＰユーザエージェント（ＵＡ）１０２Ａ１−１０２ＡＮ（まとめて、ＳＩＰ  ＵＡ１０２Ａ）、ＳＩＰネットワーク１１０、および第２の複数のＳＩＰユーザエージェント（ＵＡ）１０２Ｚ１−１０２ＺＮ（まとめて、ＳＩＰ  ＵＡ１０２Ｚ）を含む。ＳＩＰ  ＵＡ１０２Ａおよび１０２Ｚは、まとめてＳＩＰ  ＵＡ１０２と呼ばれることもある。ＳＩＰネットワーク１１０は、複数のＳＩＰプロキシサーバ（ＳＩＰ  ＰＳ）１１２１−１１２４（まとめて、ＳＩＰ  ＰＳ１１２）および複数のＳＩＰ  アプリケーションサーバ（ＡＳ）１１４１−１１４２（まとめて、ＳＩＰ  ＡＳ１１４）を含む。ＳＩＰ  ＰＳ１１２は、複数の通信リンク（ＣＬ）１１３（まとめて、ＣＬ１１３）を使用して通信する。ＳＩＰ  ＰＳ１１２２および１１２３は、通信リンク（ＣＬ）１１５１および１１５２（まとめて、ＣＬ１１５）を使用して、ＳＩＰ  ＡＳ１１４１および１１４２と通信する。
【００１２】
図１に示されているように、ＳＩＰ  ＵＡ１０２は、ＳＩＰシグナリングをサポートするエンドユーザ装置を含む。ＳＩＰ  ＵＡ１０２は、（ＳＩＰ要求をＳＩＰ  ＵＡサーバに提供するために）ＳＩＰ  ＵＡクライアント、および（ＳＩＰ応答をＳＩＰ  ＵＡクライアントに提供するために）ＳＩＰ  ＵＡサーバとして動作することができる。ＳＩＰ  ＵＡ１０２Ａ１−１０２ＡＮおよびＳＩＰ  ＵＡ１０２Ｚ１−１０２ＺＮは、それぞれの複数の通信リンク（ＣＬ）１０３Ａ１−１０３ＡＮ（まとめて、ＣＬ１０３Ａ）、および１０３Ｚ１−１０３ＺＮ（まとめて、ＣＬ１０３Ｚ）を使用して、それぞれＳＩＰ  ＰＳ１１２１および１１２３と通信する。ＳＩＰ  ＵＡ１０２は、有線アクセス（例えば、ケーブルアクセス、デジタル加入者回線（ＤＳＬ）アクセス、イーサネット（登録商標）アクセスなど、ならびにそれらの様々な組合せ）、無線アクセス（例えば、符号分割多重接続（ＣＤＭＡ）アクセス、汎用パケット無線サービス（ＧＰＲＳ）アクセス、無線ローカルエリアネットワーク（ＷＬＡＮ）アクセスなど、ならびにそれらの様々な組合せ）を使用して、ＳＩＰネットワーク１１０にアクセスすることができる。
【００１３】
図１に示されているように、ＳＩＰ  ＰＳ１１２は、ＳＩＰ  ＵＡ１０２間のマルチメディア接続を確立、修正、および終了するためのＳＩＰ  ＵＡ１０２間のＳＩＰシグナリングを容易にする。ＳＩＰ  ＰＳ１１２は、ＳＩＰ  ＵＡ１０２間のマルチメディア接続を確立、修正、および終了するためのＳＩＰ  ＵＡ１０２間のＳＩＰシグナリングに関連する様々な機能をサポートするために、他の様々なＳＩＰベースのネットワーク要素（例えば、ＳＩＰ  ＡＳ１１４）とのＳＩＰシグナリングを容易にする。例えば、ＳＩＰ  ＰＳ１１２は、ボイス、インスタントメッセージング、ビデオ、ゲーム、プレゼンスなど、ならびにそれらの様々な組合せをサポートするように構成されたマルチメディア接続を確立、修正、および終了するためのＳＩＰ  ＵＡ１０２間のＳＩＰシグナリングをサポートする。ＳＩＰ  ＡＳ１１４は、ＳＩＰ  ＵＡ１０２に様々な機能（例えば、呼待機、呼転送、会議呼サービス、インスタントメッセージングサービスなど、ならびにそれらの様々な組合せ）を提供する。
【００１４】
本明細書で説明されているように、ＳＩＰシグナリングは様々なＳＩＰメッセージを使用して実行される。ＳＩＰ  ＵＡクライアントとして動作するＳＩＰ  ＵＡ１０２によって開始されたＳＩＰメッセージは、ＳＩＰ要求である。例えば、ＳＩＰ要求メッセージは、ＩＮＶＩＴＥ、ＡＣＫ、ＢＹＥ、ＣＡＮＣＥＬ、ＯＰＴＩＯＮＳ、ＲＥＧＩＳＴＥＲなどを含む。ＳＩＰ  ＵＡサーバとして動作するＳＩＰ  ＵＡ１０２によって開始されたＳＩＰメッセージは、ＳＩＰ応答である。例えば、ＳＩＰ応答メッセージは、ＳＩＰ１ｘｘ情報応答、ＳＩＰ２ｘｘ成功応答、ＳＩＰ３ｘｘ指示応答、ＳＩＰ４ｘｘクライアント障害応答、ＳＩＰ５ｘｘサーバ障害応答、ＳＩＰ６ｘｘ全体的障害応答などを含む。ＳＩＰ要求メッセージおよびＳＩＰ応答メッセージ、ならびにＳＩＰセッションの確立、修正、および終了をサポートするように構成された他のＳＩＰメッセージは、本明細書では全体的にＳＩＰメッセージと呼ばれる。
【００１５】
本明細書で説明されているように、様々なネットワーク状況（例えば、不正確に構成されたＳＩＰプロキシサーバ（１つまたは複数）、悪意のあるネットワーク攻撃など）は、ＳＩＰネットワーク１１０の中での転送ループの形成を引き起こすことになる可能性がある。例えば、ＳＩＰ  ＩＮＶＩＴＥメッセージは、ＳＩＰ  ＵＡ１０２Ａ２からＳＩＰ  ＵＡ１０２Ｚ１の方へ開始される可能性がある。ＳＩＰ  ＵＡ１０２Ａ２は、ＳＩＰ  ＩＮＶＩＴＥメッセージをＳＩＰプロキシ１１２１に転送する。ＳＩＰプロキシ１１２１は、メッセージをＳＩＰプロキシ１１２２に転送する。ＳＩＰプロキシ１１２２は、ネットワーク状況の（例えば、ＳＩＰプロキシ１１２３が不正確に構成されている）ために、ＳＩＰ  ＩＮＶＩＴＥメッセージをＳＩＰ  ＵＡ１０２Ｚ１への配信のためにＳＩＰプロキシ１１２４に転送するのではなく、ＳＩＰ  ＩＮＶＩＴＥメッセージをＳＩＰプロキシ１１２３に転送し、ＳＩＰプロキシ１１２３は、ＳＩＰ  ＩＮＶＩＴＥメッセージをＳＩＰプロキシ１１２２に送り返してもよい。ＳＩＰプロキシ１１２２は、ＳＩＰ  ＩＮＶＩＴＥメッセージをＳＩＰプロキシ１１２３に再転送する。本明細書で説明されているように、（図２に関してよりよく理解されることができる）本発明は、そのような転送ループの効率のよい、費用効果の高い検出を可能にする。
【００１６】
図２は、本発明の一実施形態による方法を示す。詳細には、方法２００は、ネットワーク要素において転送ループを検出するための方法を含む。ＳＩＰメッセージに関連する転送ループを検出するためのＳＩＰプロキシサーバによって実行される処理に関して本明細書で最初に説明されたが、方法２００は、それぞれ、ＳＩＰおよび非ＳＩＰメッセージに関連する転送ループを検出するための他のＳＩＰおよび非ＳＩＰネットワーク要素によって実行されることができる。順次実行されるように図示され、説明されているが、方法２００の諸ステップの少なくとも一部分は、同時に、または図２に示されているのと異なる順序で実行されてもよい。方法２００は、ステップ２０２から始まり、ステップ２０４に進む。
【００１７】
ステップ２０４で、ＳＩＰメッセージ（要求）が、ＳＩＰプロキシサーバで受信される。受信されたＳＩＰメッセージは、いかなるＳＩＰ要求メッセージ（例えば、ＳＩＰ  ＩＮＶＩＴＥ、ＳＩＰ  ＲＥＧＩＳＴＥＲなど）でもよい。ＳＩＰメッセージは、いかなるＳＩＰネットワーク要素（例えば、ＳＩＰ  ＵＡ（クライアントまたはサーバ）、ＳＩＰ  ＰＳ、ＳＩＰ  ＡＳなど）から受信されてもよい。ステップ２０６で、受信されたＳＩＰ要求メッセージがＳＩＰプロキシサーバによって前に受信されたかどうか（すなわち、受信されたＳＩＰ要求メッセージが前にＳＩＰプロキシを通り過ぎたかどうか）に関して判定が行われる。受信されたＳＩＰ要求メッセージがＳＩＰプロキシサーバによって前に受信されたかどうかに関して判定が行われる、複数の方法のうちの１つを使用して実行されることができる。
【００１８】
一実施形態では、受信されたＳＩＰメッセージがＳＩＰプロキシサーバによって前に受信されたかどうかの判定は、受信されたＳＩＰメッセージのヘッダが、ＳＩＰプロキシサーバによって挿入された（すなわち、受信されたＳＩＰメッセージがＳＩＰプロキシサーバによって前に処理されたときにＳＩＰプロキシサーバによって挿入された）ヘッダフィールドを含むかどうかの判定を含む。一実施形態では、受信されたＳＩＰメッセージのヘッダが、ＳＩＰプロキシサーバによって前に挿入されたヘッダフィールドを含むかどうかに関する判定が、ＳＩＰプロキシを識別するヘッダフィールド値を発見するように、受信されたＳＩＰメッセージのヘッダの１つまたは複数のヘッダフィールドを検索すること（例えば、ＳＩＰプロキシサーバのＩＰアドレスまたはホスト名を含むＳＩＰ  ＶＩＡヘッダフィールドを識別するために、受信されたメッセージのヘッダに含まれた複数のＳＩＰ  ＶＩＡヘッダフィールドを解析すること）を含む。複数のＳＩＰ  ＶＩＡヘッダフィールドを有するＳＩＰヘッダおよびセッション記述プロトコル（ＳＤＰ）本体を含む例示的ＳＩＰメッセージは、以下のとおりである。
【数１】
2009538564.tif 000003
2009538564.tif 000004
【００１９】
一実施形態では、受信されたＳＩＰメッセージがＳＩＰプロキシサーバによって前に受信されたかどうかの判定は、受信されたＳＩＰメッセージのヘッダフィールドのうちの１つまたは複数がＳＩＰプロキシサーバによって挿入された（すなわち、受信されたＳＩＰメッセージがＳＩＰプロキシサーバによって前に受信されたときにＳＩＰプロキシサーバによって挿入された）ヘッダフィールド値を含むかどうかの判定を含む。一実施形態では、ヘッダフィールドがＳＩＰ  ＶＩＡヘッダフィールドを含む。一実施形態では、受信されたＳＩＰメッセージの１つまたは複数のヘッダフィールドが、ＳＩＰプロキシサーバによって前に挿入されたヘッダフィールド値を含むかどうかに関する判定が、ＳＩＰプロキシを識別するヘッダフィールド値を発見するように、受信されたＳＩＰメッセージのヘッダの１つまたは複数のヘッダフィールドを検索すること（例えば、ＳＩＰプロキシサーバのＩＰアドレスを含むＳＩＰ  ＶＩＡヘッダフィールドを識別するために、受信されたメッセージのヘッダに含まれた複数のＳＩＰ  ＶＩＡヘッダフィールドを解析すること）を含む。
【００２０】
図２に示されているように、受信されたメッセージがＳＩＰプロキシサーバによって前に受信されなかった場合は、方法２００は、ステップ２２０に進み、その時点で、受信されたＳＩＰメッセージが転送される。受信されたＳＩＰメッセージが、別のＳＩＰネットワーク要素（例えば、ＳＩＰ  ＰＳ、ＳＩＰ  ＡＳ、ＳＩＰ  ＵＡなど）の方へ転送される。ステップ２２０から、方法２００がステップ２２６に進み、そこで方法２００が終了する。図２に示されているように、受信されたＳＩＰメッセージがＳＩＰプロキシサーバによって前に受信された場合は、方法２００はステップ２０８に進む。ステップ２０８で、現在のルーティングダイジェスト（ＣＲＤ）が計算される。
【００２１】
一実施形態では、ルーティングダイジェストは、以下のヘッダおよびメッセージ部分のうちの１つまたは複数に関するハッシュ関数の結果を合計することによって計算される。要求統一資源識別子（ＵＲＩ）、最上位Ｒｏｕｔｅヘッダ、いずれかのまたは全てのＲｅｑｕｉｒｅおよび／またはＰｒｏｘｙ−Ｒｅｑｕｉｒｅヘッダ、いずれかのまたは全てのＡｕｔｈｏｒｉｚａｔｉｏｎおよび／またはＰｒｏｘｙ−Ａｕｔｈｏｒｉｚａｔｉｏｎヘッダ、Ｃａｌｌ−Ｉｄヘッダ、Ｆｒｏｍおよび／またはＴｏヘッダ（タグパラメータを含む）、およびＣＳｅｑヘッダなど、ならびにそれらの様々な組合せ。一般に、プロキシサーバルーティング決定の根拠となることができるいかなる情報が含まれてもよい。ルーティングダイジェストを計算することによって、この情報内の変更が検出される。前提は、メッセージがプロキシをトラバースした前の時間以来この情報のいかなる部分も変更されなかった場合は、プロキシが同じルーティング決定を行うであろうということである。全てのプロキシがこの論理に従う場合は、要求が最後には現在のプロキシに再度到着し、それによってループを形成する。
【００２２】
ステップ２１０で、受信されたＳＩＰメッセージが前のルーティングダイジェスト（ＰＲＤ）を含むかどうかに関して判定が行われる。ＰＲＤは、ＳＩＰプロキシサーバによって、前に計算され、受信されたＳＩＰメッセージに挿入されたルーティングダイジェストである。一実施形態では、受信されたＳＩＰメッセージがＰＲＤを含むかどうかに関する判定は、受信されたＳＩＰメッセージの少なくとも１つのメッセージヘッダフィールド（例えば、ＳＩＰプロキシサーバによって、受信されたＳＩＰメッセージに前に挿入されたと識別されたメッセージヘッダフィールド（例えば、ＳＩＰ  ＶＩＡヘッダフィールド））を検索することを含む。受信されたＳＩＰメッセージが、（ＳＩＰプロキシサーバによって前に計算され、挿入された）ＰＲＤを含まない場合は、方法２００はステップ２１２に進む。受信されたＳＩＰメッセージが（ＳＩＰプロキシサーバによって前に計算され、挿入された）ＰＲＤを含む場合は、方法２００はステップ２１４に進む。
【００２３】
ステップ２１２で、ＣＲＤが受信されたＳＩＰメッセージに挿入される。一実施形態では、ＣＲＤが、（本明細書では「ループチェック」（すなわち、「ｌｃ」）パラメータとして示される）ＣＲＤパラメータを使用して、受信されたＳＩＰメッセージに挿入される。一実施形態では、ＣＲＤが、受信されたＳＩＰメッセージのヘッダに挿入される。一実施形態では、ＣＲＤが、既存のＳＩＰメッセージヘッダフィールドの一部分として挿入される。一実施形態では、ＣＲＤが、ＣＲＤパラメータ値（例えば、「Ｖｉａ：ＳＩＰ／２．０／ＵＤＰ  １３５．８５．６５．２１４：５０６２；ｂｒａｎｃｈ＝ｚ９ｈＧ４ｂＫ−２；０３ａｂｄ８７ｆ」、この場合、ルーティングダイジェスト値は１６進数である）を使用して、既存のＳＩＰメッセージヘッダフィールドの一部分として挿入される。一実施形態では、ＣＲＤが、ＣＲＤパラメータ名（例えば、「ｌｃ」）および関連するＣＲＤパラメータ値（例えば、「Ｖｉａ：ＳＩＰ／２．０／ＵＤＰ  １３５．８５．６５．２１４：５０６２；ｂｒａｎｃｈ＝ｚ９ｈＧ４ｂＫ−２；ｌｃ＝０３ａｂｄ８７ｆ」、この場合、ルーティングダイジェスト値は１６進数である）を使用して、既存のＳＩＰメッセージヘッダフィールドの一部分として挿入される。一実施形態では、ＣＲＤが、ＳＩＰメッセージヘッダフィールド名および関連するＳＩＰメッセージヘッダフィールド値（例えば、「Ｌｏｏｐ−Ｃｈｅｃｋ：ｐｒｏｘｙ．ｅｘａｍｐｌｅ．ｃｏｍ；ｌｃ＝０１２３４５６７８」）を有する新しいＳＩＰメッセージヘッダフィールドとして挿入される。
【００２４】
例示的な計算されたルーティングダイジェスト（例えば、ＰＲＤかＣＲＤのいずれか）を含む例示的ＳＩＰメッセージは以下のとおりである。例示的ＳＩＰメッセージに示されているように、ＶＩＡヘッダフィールドの１つは、ループチェック「パラメータ（ｌｃとして示されている）」を含む。「ｌｃ」パラメータは、「ｌｃ」パラメータ名（例えば、「ｌｃ」として示されている）、および関連する「ｌｃ」パラメータ値を含んでもよい。「ｌｃ」パラメータ名によって識別されるように説明されているが、ルーティングダイジェストを識別するために他の様々なパラメータ名が利用されてもよい。特定の「ｌｃ」パラメータ値が示されているが、計算されたルーティングダイジェストを伝達するために他の様々な「ｌｃ」パラメータ値（例えば、他のフォーマットを有する「ｌｃ」パラメータ値）が使用されてもよい。
【数２】
2009538564.tif 000005
2009538564.tif 000006
【００２５】
計算されたルーティングダイジェストは、ＶＩＡヘッダフィールドのパラメータとして示されているが、一実施形態では、パラメータ（例えば、「ｌｃ」パラメータ、または他の１つまたは複数のヘッダフィールドの他の１つまたは複数のパラメータ）として実施されてもよい。計算されたルーティングダイジェストは、ＶＩＡヘッダフィールドのパラメータとして示されているが、一実施形態では、別々のヘッダフィールドとして（すなわち、ＶＩＡヘッダフィールドなどの既存のヘッダフィールドのパラメータとして含まれるのではなく、ルーティングダイジェストヘッダフィールドを使用して）実施されてもよい。計算されたルーティングダイジェストが別々のヘッダフィールドとして実施される一実施形態では、別々のヘッダフィールドが、計算されたルーティングダイジェストを計算するＳＩＰネットワーク要素に関連するＶＩＡヘッダフィールドのすぐあとに、ＳＩＰメッセージヘッダに挿入されてもよい。
【００２６】
ステップ２１４で、ＰＲＤが判定される。一実施形態では、ＰＲＤは、受信されたＳＩＰメッセージのヘッダを分析することによって判定される。一実施形態では、ＰＲＤは、ルーティングダイジェストヘッダフィールド名を識別し、関連するルーティングダイジェストヘッダフィールド値を識別することによって判定される。一実施形態では、ＰＲＤは、ルーティングダイジェストパラメータ名（例えば、ヘッダフィールドの一部分）を識別し、関連するルーティングダイジェストパラメータ値を識別することによって判定される。一実施形態では、ＰＲＤは、受信されたＳＩＰメッセージがＰＲＤを含むかどうか判定するために実行される処理の一部分として判定される。
【００２７】
ステップ２１６で、ＣＲＤとＰＲＤが比較される。ＣＲＤとＰＲＤは、転送ループが存在するかどうか判定するために比較される。ステップ２１８で、転送ループが検出されたかどうかに関して判定が行われる。一実施形態では、ＣＲＤとＰＲＤが同じである場合は、転送ループが検出される（ＣＲＤとＰＲＤが異なる場合は、転送ループが検出されない）。一実施形態では、ＣＲＤとＰＲＤがかなり類似している場合は（例えば、ＣＲＤとＰＲＤとの間の違いが閾値内にある場合は）、転送ループが検出される。
【００２８】
図２に示されているように、転送ループが検出されない場合は、方法２００はステップ２２０に進み、その時点で、受信されたメッセージが転送される。受信されたメッセージは、別のＳＩＰネットワーク要素の方へ転送される。方法２００はステップ２２０からステップ２２６に進み、そこで方法２００が終了する。転送ループが検出された場合は、方法２００はステップ２２２に進む。ステップ２２２で、ループエラーが生成される。ステップ２２４で、少なくとも１つのＳＩＰネットワーク要素に対してループエラーが生成される。方法２００はステップ２２４からステップ２２６に進み、そこで方法２００が終了する。
【００２９】
図３は、本明細書に記載の諸機能を実行する際の使用に適した汎用コンピュータの高レベルのブロック図を示す。図３に示されているように、システム３００は、プロセッサ要素３０２（例えば、ＣＰＵ）、メモリ３０４、例えば、ランダムアクセスメモリ（ＲＡＭ）および／または読出し専用メモリ（ＲＯＭ）、ループ検出モジュール３０５、および様々な入／出力装置３０６（例えば、テープドライブ、フロッピー（登録商標）ドライブ、ハードディスクドライブまたはコンパクトディスクドライブを含むがそれらに限定されない記憶装置、受信機、送信機、スピーカ、ディスプレイ、出力ポート、およびユーザ入力装置（キーボード、キーパッド、マウスなど））を備える。
【００３０】
本発明は、ソフトウェアで、および／またはソフトウェアとハードウェアの組合せで、例えば、特定用途向け集積回路（ＡＳＩＣ）、汎用コンピュータまたは他のいかなるハードウェア同等物をも使用して、実施されてもよいことに留意されたい。一実施形態では、本ループ検出モジュールまたはプロセス３０５はメモリ３０４にロードされ、上記で論じられたような諸機能を実施するためにプロセッサ３０２によって実行されることができる。したがって、本発明のループ検出プロセス３０５（関連するデータ構造を含む）は、コンピュータ可読媒体または担体、例えば、ＲＡＭメモリ、磁気あるいは光ドライブまたはディスケットなどに記憶されることができる。
【００３１】
一実施形態では、本発明の転送ループ検出処理は、他のメッセージ処理機能に対する影響を防止するように実施されてもよい。一実施形態では、例えば、本発明の転送ループ検出処理機能の少なくとも一部分を実行するように構成されたプロシージャ呼出しが、各受信されたメッセージがそこで処理されるコードパスに追加されてもよい。特定の実施形態に関して説明されているが、本発明の転送ループ検出処理は、他の様々なサポートされたメッセージ処理機能に影響を与える可能性がある、または可能性がない、他の様々な設計（例えば、ネットワーク要素のコンポーネントの構成、他のコードパス修正形態など、ならびにそれらの様々な組合せ）を使用して実施されてもよい。
【００３２】
一実施形態では、本発明の転送ループ検出処理は、本発明の転送ループ検出処理機能が（例えば、要素ごとベースで個別に、複数の要素にわたって全体的になど、ならびにそれらの様々な組合せで）アクティブ化または非アクティブ化され得るように構成可能であり得る。一実施形態では、本発明の転送ループ検出処理が自動的にアクティブ化または非アクティブ化されることができる（例えば、各ネットワーク要素が、各ネットワーク要素によって（例えば、関連する管理システムから）取得された予め決められたスケジュールに従って転送ループ検出機能をアクティブ化および非アクティブ化することができる）。一実施形態では、本発明の転送ループ検出処理が手動でアクティブ化または非アクティブ化されることができる（例えば、各ネットワーク要素が転送ループ検出機能をアクティブ化および非アクティブ化するために手動で構成されることができる）。
【００３３】
一実施形態では、本発明の転送ループ検出処理が、転送ループの検出が少なくとも１つの転送ループ検出基準を使用して行うように構成可能であり得る。一実施形態では、例えば、本発明の転送ループ検出処理が、メッセージ内の特定のヘッダの数が閾値を満たすという判定に応答して実行されることができるだけである。そのような一実施形態では、例えば、本発明の転送ループ検出処理が、メッセージ内のＳＩＰ  ＶＩＡヘッダの数が閾値を満たすという判定に応答して実行されることができるだけである。ＳＩＰ  ＶＩＡヘッダの数に関して説明されているが、本発明の転送ループ検出処理のアプリケーションを限定するために他の様々な基準が利用されてもよい。
【００３４】
ＳＩＰメッセージを利用するＳＩＰベースのネットワークに関して最初に本明細書で図示され、説明されたが、他の様々な実施形態では、他の様々なネットワーク要素、シグナリングプロトコル、メッセージタイプ、メッセージフォーマットなど、ならびにそれらの様々な組合せを利用する他の様々なネットワーク内の転送ループを検出するために、本発明の諸機能の少なくとも一部分が利用されてもよい。本発明は、ＳＩＰメッセージを利用するＳＩＰベースのネットワークに限定されないものとする。
【００３５】
本発明の教示を組み込んだ様々な実施形態が本明細書で詳細に図示され、説明されてきたが、これらの教示を依然として組み込んだ他の多くの変形形態を当業者は容易に考案することができる。
【図１】
2009538564.tif 000007
【図２】
2009538564.tif 000008
【図３】
2009538564.tif 000009
【国際調査報告】
2009538564.tif 000010
2009538564.tif 000011
2009538564.tif 000012