(57)【要約】  ルータ・ポートを通るＶｏＩＰトラフィックの帯域幅は、ポートを通じて発送されるすべてのＶｏＩＰ呼び出しについての所望のサービス品質を保証するために、所定の帯域幅を超えないように制御される。ポートによって受信されるパケットの情報は、パケット・ヘッダから抜き出される。この情報は、パケットによって使用される帯域幅とともに、ソースおよび行き先のアドレスならびにポート数を含む。パケットが既存の呼び出しから来たものである場合、パケットは発送され、パケットが受信された時間は更新される。パケットが新たな呼び出しから来たものである場合、ポートが新たな呼び出しを発送するために十分な帯域幅を有するかどうかが判定される。ポートが十分な帯域幅を有する場合、パケットは発送され、帯域幅は新たな呼び出しからのその後のパケットのために割り当てられ、ポート情報はその後のパケットを受け入れるために更新される。ポートが十分な帯域幅を有していない場合、パケットはドロップされる。
2008544606.tif 000002
【特許請求の範囲】
【請求項１】
ボイスオーバ・インターネット・プロトコル（ＶｏＩＰ）のトラフィックを受信するルータのポートを通る帯域幅を制限する方法であって、
新たなＶｏＩＰパケットを受信するステップと、
前記新たなパケットの識別情報を前記新たなパケットのヘッダから抜き出すステップと、
前記新たなパケットが新たなＶｏＩＰ呼び出しから来たものであるのかどうかを判定するステップと、
前記新たなパケットが新たなＶｏＩＰ呼び出しから来たものである場合、
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定するステップと、
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有する場合、新たなパケットを発送し、前記新たなＶｏＩＰ呼び出しからのその後のパケットのために所定の帯域幅を割り当て、前記その後のパケットを受け入れるために前記ポートの情報を更新するステップと、
前記ポートが前記新たなＶｏＩＰ呼び出しを受け入れるために十分な帯域幅を有していない場合、前記新たなパケットをドロップするステップとを含む方法。
【請求項２】
前記識別情報を抜き出すステップが、前記新たなパケットのソースおよび行き先のＩＰアドレス、ならびにソースおよび行き先のポートの個数を抜き出すことを含む請求項１に記載の方法。
【請求項３】
前記新たなパケットが新たなＶｏＩＰ呼び出しから来たものであるのかどうかを判定するステップが、前記抜き出された情報を含む照合キーを構成し、前記照合キーを前記ポートの既存の照合キーに対して検査することを含む請求項１に記載の方法。
【請求項４】
前記新たなパケットが記憶されている以前に発送されたパケットの識別情報と同じ識別情報を含むと判定される場合に、前記新たなパケットを発送するステップをさらに含む請求項１に記載の方法。
【請求項５】
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定するステップが、
前記新たなパケットを作成するために使用されるコーデックと前記新たなパケットのパケット長とを含む前記識別情報から前記新たなパケットの帯域幅を判定することと、
前記ポートによって現時点で発送されているすべてのＶｏＩＰ呼び出しによって使用される総帯域幅に前記新たなパケットの前記帯域幅を付加することによって、前記ポートの暫定の総帯域幅を計算することと、
前記ポートの前記暫定総帯域幅が前記ポートの最大の許容可能帯域幅を超えるかどうかを判定することとを含む請求項１に記載の方法。
【請求項６】
前記ポートを通じて発送されるすべてのＶｏＩＰトラフィックについての所望のサービス品質を使用して、前記ポートの前記最大の許容可能帯域幅を設定するステップをさらに含む請求項６に記載の方法。
【請求項７】
表中の前記ポートによって発送されるすべてのＶｏＩＰ呼び出しのパケットの最後の到着時間とともに、前記識別情報を記憶するステップをさらに含む請求項１に記載の方法。
【請求項８】
少なくとも１つのＶｏＩＰ呼び出しのパケットの前記最後の到着時間が最大の最後の到着時間を超える場合、前記表から少なくとも１つのＶｏＩＰ呼び出しを除去するステップをさらに含む請求項３に記載の方法。
【請求項９】
最後の到着時間が前記最大の最後の到着時間を超えているパケットを有するすべての遅いＶｏＩＰ呼び出しを判定し、前記表からすべての遅いＶｏＩＰ呼び出しを除去するステップをさらに含む請求項３に記載の方法。
【請求項１０】
前記表から少なくとも１つのＶｏＩＰ呼び出しを除去するステップが、前記新たなパケットが前記ルータによって発送されたか、またはドロップされた後に生じる請求項８に記載の方法。
【請求項１１】
前記表から少なくとも１つのＶｏＩＰ呼び出しを除去するステップが、前記新たなパケットが受信された後で、前記新たなパケットが前記ルータによって発送されるか、またはドロップされる前に生じる請求項８に記載の方法。
【請求項１２】
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有していない場合、前記新たなパケットをドロップする前に、
任意のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきかどうかを判定するステップと、
１つまたは複数のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきである場合、前記１つまたは複数のＶｏＩＰ呼び出しに割り当てられた前記帯域幅を解放し、前記帯域幅が解放された後で、前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定するステップをさらに含む請求項１に記載の方法。
【請求項１３】
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定する前に、任意のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきかどうかを判定するステップと、
１つまたは複数のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきである場合、前記１つまたは複数のＶｏＩＰ呼び出しに割り当てられた帯域幅を解放するステップをさらに含む請求項１に記載の方法。
【請求項１４】
ボイスオーバ・インターネット・プロトコル（ＶｏＩＰ）のトラフィックを受信するルータのポートを通る帯域幅を制限するための命令を含むコンピュータ可読媒体であって、
前記ポートによって受信された新たなパケットの識別情報を前記新たなパケットのヘッダから抜き出すための第１ルーチンと、
前記新たなパケットが新たなＶｏＩＰ呼び出しから来たものであるのかどうかを判定するための第２ルーチンと、
前記新たなパケットが新たなＶｏＩＰ呼び出しから来たものである場合、
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定するための第３ルーチンと、
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有する場合、前記新たなパケットを発送し、前記新たなＶｏＩＰ呼び出しからのその後のパケットのために所定の帯域幅を割り当て、前記その後のパケットを発送するために前記ポートの情報を更新するための第４ルーチンと、
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有していない場合、前記新たなパケットをドロップするため第５ルーチンとを含むコンピュータ可読媒体。
【請求項１５】
前記新たなパケットが新たなＶｏＩＰ呼び出しから来たものであるのかどうかを判定するステップが、前記抜き出された情報を含む照合キーを構成し、前記照合キーを前記ポートの既存の照合キーに対して検査することを含む請求項１４に記載のソフトウェア・アプリケーション。
【請求項１６】
前記第３ルーチンが、
前記新たなパケットを作成するために使用されるコーデックと前記新たなパケットのパケット長とを含む前記識別情報から前記新たなパケットの帯域幅を判定するための第６ルーチンと、
前記ポートによって現時点で発送されているすべてのＶｏＩＰ呼び出しによって使用される総帯域幅に前記新たなパケットの前記帯域幅を付加することによって、前記ポートの暫定の総帯域幅を計算するための第７ルーチンと、
前記ポートの前記暫定総帯域幅が前記ポートの最大の許容可能帯域幅を超えるかどうかを判定するための第８ルーチンとを含む請求項１４に記載のソフトウェア・アプリケーション。
【請求項１７】
少なくとも１つのＶｏＩＰ呼び出しのパケットの最後の到着時間が最大の最後の到着時間を超える場合、前記表から前記少なくとも１つのＶｏＩＰ呼び出しを除去するための第９ルーチンをさらに含む請求項１４に記載のソフトウェア・アプリケーション。
【請求項１８】
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有していない場合、前記新たなパケットをドロップする前に、
任意のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきかどうかを判定するための第１０ルーチンと、
１つまたは複数のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきである場合、前記１つまたは複数のＶｏＩＰ呼び出しに割り当てられた前記帯域幅を解放し、前記帯域幅が解放された後に、前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定するための第１１ルーチンをさらに含む請求項１４に記載のソフトウェア・アプリケーション。
【請求項１９】
前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定する前に、任意のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきかどうかを判定するための第１２ルーチンと、
１つまたは複数のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきである場合、前記１つまたは複数のＶｏＩＰ呼び出しに割り当てられた前記帯域幅を解放するための第１３ルーチンとをさらに含む請求項１４に記載のソフトウェア・アプリケーション。
【請求項２０】
ボイスオーバ・インターネット・プロトコル（ＶｏＩＰ）のトラフィックを受信するネットワークの中のルータのポートを通る帯域幅を制限するための通信システムであって、
パケットの識別情報を含むヘッダを有するパケットを受信するポートを有するルータと、
前記パケットの前記識別情報がルータを通じて発送された以前のパケットの記憶されている識別情報と合致せず、したがってそれが新たなＶｏＩＰ呼び出しであり、前記ポートの帯域幅が、前記ポートによって発送される既存のＶｏＩＰ呼び出しの品質を低下させることなく、前記ルータが前記パケットを発送できるようにするために十分ではない場合に前記パケットがドロップされる、前記識別情報を抜き出すための前記ルータと通信する検出システムとを含む通信システム。
【請求項２１】
前記ポートが前記新たなＶｏＩＰ呼び出しの前記パケットを発送するために十分な帯域幅を有する場合、前記新たなＶｏＩＰ呼び出しからのその後のパケットのために所定の帯域幅が割り当てられ、前記ポートの前記記憶されている情報が前記その後のパケットを発送するために更新される請求項２０に記載の通信システム。
【請求項２２】
前記抜き出された情報を含む照合キーが構成され、前記ポートの記憶されている既存の照合キーに対して検査される請求項２０に記載の通信システム。
【請求項２３】
前記パケットの帯域幅が、前記パケットを作成するために使用されるコーデックと前記パケットのパケット長とを含む前記識別情報から判定され、
前記ポートの暫定の総帯域幅が、前記ポートによって現時点で発送されているすべてのＶｏＩＰ呼び出しによって使用される総帯域幅に前記パケットの前記帯域幅を付加することによって計算され、
前記暫定総帯域幅が、前記ポートが最大の許容可能帯域幅を超えるかどうかを判定するために、前記ポートの前記最大の許容可能帯域幅と比較される請求項２０に記載の通信システム。
【請求項２４】
少なくとも１つのＶｏＩＰ呼び出しからのパケットの最後の到着時間が最大の最後の到着時間を超える場合、前記少なくとも１つのＶｏＩＰ呼び出しが除去される請求項２０に記載の通信システム。
【請求項２５】
前記新たなパケットがドロップされる前に、任意のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきであるかどうかを判定し、１つまたは複数のＶｏＩＰ呼び出しに割り当てられた帯域幅が解放されるべきである場合、前記１つまたは複数のＶｏＩＰ呼び出しに割り当てられた前記帯域幅を解放し、前記帯域幅が解放された後で、前記ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定する請求項２０に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワーク上のボイスオーバ・インターネット・プロトコル（ＶｏＩＰ）のトラフィックについてのサービス・レベルの合意を執行するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ボイスオーバ・インターネット・プロトコル（ＶｏＩＰ）・サービスは、通信サービス・プロバイダ、それらの顧客および潜在的顧客から着実に注目を集めてきている。ＶｏＩＰはＩＰネットワーク上で届けられる音声情報である。ＶｏＩＰは、従来の公衆交換電話網（ＰＳＴＮ）の回線プロトコルを使用するのではなく、別個のデジタル・パケットの中で音声情報を送信することによって動作する。通信サービス・プロバイダは、個々の消費者および企業などのエンド・ユーザに、プロバイダのＩＰネットワーク・インフラストラクチャの中でより費用効率の高い音声サービスを提供するために、ＶｏＩＰ技術を使用している。これらのサービスは典型的に、デジタル加入者線（ＤＳＬ）アクセス・ネットワークなどのブロードバンド・アクセス・ネットワークを通じて顧客に届けられる。ＶｏＩＰ技術は、顧客に関する移動性および費用の削減に対処することができる新たなマルチメディア通信サービスのための基礎として使用されることができる。ＶｏＩＰはまた、共用のＩＰデータ・ネットワークを介して大量の音声トラフィックを輸送するために使用する場合などに、通信サービス・プロバイダのＰＳＴＮネットワークの費用を最適化することもできる。
【０００３】
ＶｏＩＰを使用して送信される通信メッセージの品質を保証するために、ＶｏＩＰはマウス・トゥ・イヤ遅延（ｍｏｕｔｈ−ｔｏ−ｅａｒ  ｄｅｌａｙ）、ジッタおよびパケット・ロスなど、ＩＰネットワーク上で厳しいサービス品質（ＱｏＳ）制約を課す。マウス・トゥ・イヤ遅延とは、話し手が音声ストリームを開始する時間から音声ストリームが対象（聞き手）に与えられるまでの時間から生じる遅延のことである。ジッタとは、異なるＶｏＩＰパケットによって経験される遅延の相違のことである。パケット・ロス割合とは、発信点で作り出されたパケットに対する目標点で受信されたパケットの割合のことである。ＶｏＩＰベースの通信のためのマウス・トゥ・イヤ遅延は、１５０ｍｓを上回らないように制限される。エンド・トゥ・エンドのジッタは４０ｍｓを下回るように制限されてもよく、パケット・ロス割合は０．５％を上回らないように制限される。
【０００４】
このＱｏＳを達成するために、通信サービス・プロバイダは帯域幅などの大量のネットワーク資源を供給してＶｏＩＰアプリケーションを支援しなければならない場合がある。ＶｏＩＰトラフィックによって使用されるネットワーク帯域幅は、ＶｏＩＰコーデック（エンコーダ／デコーダ）と、ＶｏＩＰコーデックによって使用されるパケット化遅延とによって決まる。ＶｏＩＰトラフィックは、発信元と目標との間の複数のＩＰルータを通過する場合がある。これらのＩＰルータの各々は、ＶｏＩＰトラフィックによって使用されることが可能な帯域幅の量が固定されている複数のポートを有する。所望のＱｏＳを達成するために、ＶｏＩＰトラフィックの量は、ルータ・ポートの帯域幅を超えないように制限されなければならない。
【０００５】
特に、一部の通信サービス・プロバイダは、各ＩＰルータ上のＶｏＩＰトラフィックの量を制御するために、いわゆる「リーキー・バケット（ｌｅａｋｙ−ｂｕｃｋｅｔ）」ベースのパケット・ポリサを使用する。リーキー・バケット・ポリサは、各ルータ・ポートで受信されるＶｏＩＰトラフィックの量を継続的に監視する。ポリサはＶｏＩＰトラフィックが事前に割り当てられた帯域幅を超えていると判定する場合、新たに到着したＶｏＩＰパケットを無差別に廃棄する。パケットの廃棄プロセスは、ＶｏＩＰトラフィックが事前に割り当てられた帯域幅に適合するまで、しばらくの期間継続する。パケットの廃棄プロセスの間、パケットはすべてのＶｏＩＰ呼び出しからドロップされる。
【０００６】
しかしながら、前述のリーキー・バケットの輻輳制御方式にはＶｏＩＰサービスに対する望ましくない影響がある。例えば、ネットワークの中にＮ個のＶｏＩＰ呼び出しが存在しており、総帯域幅が事前に割り当てられた帯域幅よりも少ない場合、Ｎ個すべての呼び出しの品質はかなり良いものである。（Ｎ＋１）番目のＶｏＩＰ呼び出しが開始して、事前に割り当てられた帯域幅を超える場合、輻輳したＩＰルータは、（Ｎ＋１）個のフローのすべてからＶｏＩＰパケットを無作為に廃棄し始める。（Ｎ＋１）個のＶｏＩＰ呼び出しのすべての品質は落とされ、すべての呼び出しについてのＱｏＳを所望のレベルよりも下に低下させる。このことは付随的に、そのルータ・ポートを通じて会話が中継されている当事者間で不満を作り出す。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は上述の従来技術の問題を解決すべくなされたものである。
【課題を解決するための手段】
【０００８】
本発明の方法は、ボイスオーバ・インターネット・プロトコル（ＶｏＩＰ）のトラフィックを受信するルータのポートを通る帯域幅を制限する方法であって、新たなＶｏＩＰパケットを受信するステップと、新たなパケットの識別情報を新たなパケットのヘッダから抜き出すステップと、新たなパケットが新たなＶｏＩＰ呼び出しから来たものであるのかどうかを判定するステップと、新たなパケットが新たなＶｏＩＰ呼び出しから来たものである場合、ポートが前記新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有するかどうかを判定するステップと、ポートが新たなＶｏＩＰ呼び出しを発送するために十分な帯域幅を有する場合、新たなパケットを発送し、新たなＶｏＩＰ呼び出しからのその後のパケットのために所定の帯域幅を割り当て、その後のパケットを受け入れるためにポートの情報を更新するステップと、ポートが新たなＶｏＩＰ呼び出しを受け入れるために十分な帯域幅を有していない場合、新たなパケットをドロップするステップとを含む。
【発明を実施するための最良の形態】
【０００９】
ボイスオーバ・インターネット・プロトコル（ＶｏＩＰ）を使用して高品質のパケット化された音声呼び出しを保証するために、通信サービス・プロバイダは、特定のＩＰルータでＶｏＩＰ呼び出しのために使用されるルータに新たなＶｏＩＰ呼び出しが加わることによる過剰な帯域幅を検出し、ＩＰルータを通るすべてのＶｏＩＰトラフィックについての一貫したサービス品質（ＱｏＳ）を維持するために、選択的に新たなＶｏＩＰ呼び出しのパケットをドロップするか、または終了されたＶｏＩＰ呼び出しを新たなＶｏＩＰ呼び出しと置き換えることができる。
【００１０】
図１は、パケット・ベース・メッセージを使用した音声通信を提供する通信システム１００のブロック図である。この通信システムによって、発信側１４０と着信側１５０とは、実質的にリアル・タイムでお互いに話をすることができる。通信システム１００は、インターネット・プロトコル（ＩＰ）・ネットワークなどのネットワーク１３０上で、プロセッサ１２０を介してお互いに接続している通信デバイス１１０を含む。通信デバイス１１０は、陸上通信線を用いて使用される電話、移動電話、衛星電話、マイクロフォンとスピーカとを有するコンピュータなどのＢｌａｃｋｂｅｒｒｙおよびその他などの電話を含んでいる音声型の通信デバイスを含む。通信デバイス１１０は、ハンドヘルドまたはハンズフリーのデバイスを含んでもよい。プロセッサ１２０はデスク・トップ・コンピュータ、ラップトップ・コンピュータおよびサーバなどのデバイスの中に含まれてもよい。通信デバイス１１０とプロセッサ１２０とは、１つまたは複数の物理デバイスとして実装されてもよい。
【００１１】
ネットワーク１３０は、ローカル・エリア・ネットワーク（ＬＡＮ）と、インターネットなどのワイド・エリア・ネットワーク（ＷＡＮ）を含む。ネットワーク１３０は、ネットワーク・ベースの仮想プライベート・ネットワーク（ＶＰＮまたはＮＶＰＮ）・サービスとともに実装されてもよい。ＶＰＮは、ノードに接続するために公衆線を使用して構成されてもよいネットワークである。ＶＰＮは、通信サービス・プロバイダがデータを輸送するための媒体としてインターネットなどのパケット交換ネットワークを使用して、ネットワークを作成することを可能にしてもよい。ＶＰＮシステムは、許可されたユーザだけがネットワークにアクセスすることができ、データが傍受されることが不可能であることを保証するために、暗号化およびその他のセキュリティ・メカニズムを使用してもよい。
【００１２】
パケット交換ネットワークでは、メッセージまたはファイルの中の音声および非音声のデータは一連のパッケージに分割されてもよい。これらのパッケージの各々には、送信者のアドレス、受信者のアドレス、メッセージ全体の中でのパッケージの場所、およびどのようにして受信を行うコンピュータが、パッケージが損なわれずに到着したことを識別できるのかということについての情報を含むラッパが与えられている。次いでパケットと呼ばれる各データ・パッケージは、最も有効な経路を介して、その行き先に送信される。１つのパケットの経路は、メッセージ中の別のパケットのうちのすべて、一部によって利用されてもよく、またはどれにも利用されなくてもよい。ネットワーク１３０は、ミリ秒毎の基準で、機器の様々な部分の間で負荷のバランスを取ってもよい。パケットは銅ケーブル、光ファイバ、マイクロ波および衛星等を通過してもよい。受信者は実質的にリアル・タイムで送信者と通信してもよい。
【００１３】
実質的にリアル・タイムで通信することができるということは、発信側１４０から着信側１５０への音声通信などの通信が実質的に即時に生じてもよいということを意味する。反対に、電子メールを介してＷＡＶファイルなどのテキスト・メッセージを送信する場合などの実質的にリアル・タイムではない通信では、メッセージの受信者は応答するために数秒、数分かまたはそれ以上を必要とするかもしれない。リアル・タイムはまた、人間が応答した場合に起こると思われるものと同じ速度でコンピュータによってシミュレートされるイベントにも関係する。ネットワーク１３０は、従来の回路専用の電話通信を使用してお互いに話をしているときに経験すると思われるリアル・タイム通信の感覚をユーザに提供する。
【００１４】
図２は、ネットワーク１３０の例示的なコンポーネント２００を示すブロック図である。コンポーネント２００は複数のルータ２１０を含む。各ルータ２１０は、能動的輻輳制御システム２３０を含む。ルータ２１０の各々と能動的輻輳制御システム２３０とは、ルータを通るトラフィックを制御し、監視するために使用されてもよいソフトウェア、ハードウェアおよび／またはファームウェアなどのロジックを含む。ソフトウェアは、メモリ媒体に記憶された動作可能なルーチンを含む。ルータ２１０は、発信側１４０のネットワークと着信側１５０のネットワークとの間などのネットワーク間でパケット・ベースのメッセージを送信する特殊化されたコンピュータおよびアプリケーションを含んでもよい。
【００１５】
能動的輻輳制御システム２３０によって、通信サービス・プロバイダはコーデックを検出することができ、またＶｏＩＰ呼び出しによって使用されるパケット長および／またはパケット化遅延などの別のネットワーク変数を検出することができる。コーデックおよびパケット化遅延／帯域幅についての情報は、以下でより詳細に説明されるように、より良い品質のサービスを顧客に提供するために使用されてもよい。能動的輻輳制御システム２３０はルータ２１０と一緒に実装されてもよく、またはルータ２１０とは別に実装されてもよい。
【００１６】
図３は、通信システム１００の能動的輻輳制御システム２３０の動作の全体の流れ図である。図３で、能動的輻輳制御方式は、複数の個別のブロックを含む。はじめにルータは、ポートでＶｏＩＰパケットを受信する（ブロック３００）。ルータはソースおよび行き先のＩＰアドレス、ならびにソースおよび行き先のポートの個数情報を受信されたパケットから抜き出す（ブロック３１０）。
【００１７】
次いでルータは、抜き出された情報を含む照合キーＭ＿ＫＥＹ３２０を構成する。１つの実施例では、以下で論じられるように、Ｍ＿ＫＥＹ＝（ｓｏｕｒｃｅ＿ＩＰ＿ａｄｄｒｅｓｓ，ｄｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿ａｄｄｒｅｓｓ，ｓｏｕｒｃｅ＿ｐｏｒｔ＿ｎｕｍｂｅｒ，ｄｅｓｔｉｎａｔｉｏｎ＿ｐｏｒｔ＿ｎｕｍｂｅｒ）である。この情報は、照合キーを形成するために望み通りに配置されることが可能である。
【００１８】
次いでルータは、照合キーＭ＿ＫＥＹをポートに関連する記憶されたＶｏＩＰ呼び出し識別子に対して検査し（ブロック３３０）、合致が存在するのかどうかを判定する（ブロック３４０）。
合致が存在する場合、その後ルータはパケットが既存のＶｏＩＰ呼び出しに属することを判定する。パケットは承認され、合致するエントリが記憶されている最後の到着時間がルータの現在の時間に設定される（ブロック３５０）。パケットは既存のＶｏＩＰ呼び出しに属しており、コーデックのための最大帯域幅と既存のＶｏＩＰ呼び出しについてのパケット化遅延とはすでに割り当てられているので、事前に割り当てられた帯域幅の限度を超えることはない。したがって、ルータのポートを通るすべての既存のＶｏＩＰ呼び出しのために、所望のＱｏＳが維持される。
【００１９】
しかしながら合致が存在しない場合、その後ルータはパケットが新たなＶｏＩＰ呼び出しから来たものかどうかを判定し、新たなＶｏＩＰ呼び出しの帯域幅を判定する（ブロック３６０）。ルータは記憶されたコーデック情報およびパケット長を抜き出すか、または読み取り、次いで新たなＶｏＩＰ呼び出しの帯域幅を計算するためにグローバル表（表１）を使用する。
【００２０】
より詳細には、図４は、能動的輻輳制御システム２３０がどのようにして新たなＶｏＩＰ呼び出しの帯域幅を判定する（ブロック３８０）のかを示す流れ図である。ブロック４００で、ルータ２１０は、ルータ２１０によって受信されたパケット・ベースのメッセージの帯域幅を判定し始める。
【００２１】
ブロック４１０で、ルータ２１０はパケット・ヘッダからペイロード型を抜き出すか、または記憶されているブロック３１０で抜き出されたペイロード型を読み取る。ブロック４２０で、ルータ２１０はパケット・ヘッダからパケット長を抜き出すか、またはこれもまた記憶されている、ブロック３１０で抜き出された記憶されたパケット長を読み取る。ブロック４３０で、ルータ２１０はペイロード型およびパケット長から帯域幅を判定し、ブロック４４０で図３に示されているルーチンを継続する。帯域幅は、ルータ２１０で表１を使用して判定される。ＶｏＩＰトラフィックがリアル・タイム輸送プロトコル（ＲＴＰ）、音声および映像などのリアル・タイムのデータを伝送するためのインターネット・プロトコルを使用して送信される場合、ルータはＲＴＰヘッダを調査する。ＲＴＰは、リアル・タイムのデータの配送を保証するものではないが、データのストリーミングを支援する送受信アプリケーションのためのメカニズムを提供する。図５〜６には、様々なヘッダが示されている。
【表１】
2008544606.tif 000003
【００２２】
図５はＲＴＰヘッダ５００の図である。ＲＴＰヘッダ５００は、ＲＴＰのバージョンを識別するバージョン・フィールド（Ｖ）５１０と、設定のときに、パケットがペイロードの一部ではない、パケットの最後にある１つまたは複数の追加のパディング・オクテットを含むことを示すパディング・パケット（Ｐ）５２０とを含む。ＲＴＰヘッダ５００はまた、設定のときに、定義された形式で正しく１つのヘッダ拡張部が固定ヘッダの後に続くことを示す再拡張（ＲＥｘｔｅｎｓｉｏｎ）ビット（Ｘ）５３０も含む。ＲＴＰヘッダ５００はまた、固定ヘッダの後に続くＣＳＲＣ（貢献ソース）識別子の数を含むＣＳＲＣカウント５４０も含む。マーカ（Ｍ）５５０によって、フレームの境界などのイベントがパケット・ストリームの中にマークされることが可能になる。ペイロード型フィールド５４０は、ＶｏＩＰ呼び出しによって使用されるコーデックを識別する。シーケンス番号５７０は送信される各ＲＴＰデータ・パケットにつき１つ増加し、タイムスタンプ５８０は、ＲＴＰデータ・パケットの中の最初のオクテットのサンプリング時点を反映し、ＳＳＲＣ（同期ソース）５９０は、同期ソースを識別し、ＣＳＲＣ５９２はパケットの中に含まれたペイロードのための貢献ソースを識別する。
【００２３】
ＲＴＰは、ユーザ・データグラム・プロトコル（ＵＤＰ）の先頭で動作してもよい。ＵＤＰは、行き先アドレスを用いてネットワーク１３０にメッセージを送信することによって、受信者との接続を確立することなくメッセージを送信してもよい無接続のプロトコルである。ＵＤＰ／ＩＰは、ＩＰネットワークを介してデータグラムを送受信するための直接的な方法を提供する。ＩＰは、ネットワークを介してＲＴＰメッセージをブロードキャストするためにＵＤＰを使用してもよい。
【００２４】
図６はＩＰヘッダ６００の図である。その他のフィールドの間で、ＩＰヘッダ６００は、ＵＤＰなどの使用される輸送プロトコルの型を識別するプロトコル・フィールド６１０を含む。ＩＰヘッダ６００はまた、３２ビットのワードの中でヘッダの長さを識別するＩＰヘッダ長（ＩＨＬ）フィールド６２０も含む。データグラム・フィールド６３０のサイズは、ヘッダ＋データのサイズを含む。ＩＰヘッダはまた、送信を行うノードのアドレスである３２ビットのソースＩＰアドレス６４０と、受信を行うノードのアドレスである３２ビットの行き先ＩＰアドレス６５０とを含む。サービスの種類を示すＴｏＳフィールドは使用されない。フラグ・セクションによって、大きなメッセージが一連のＩＰパケットに分割されることが可能になる。例えばフラグ・セクションは、メッセージが次のＩＰパケットの中で継続されることを示すためのフラグと、この特定のＩＰパケットが分解されるべきではないことを示すためのフラグとを含む。チェックサムによって、ルータ内のＩＰヘッダの破損の検出が可能になる。
【００２５】
図７はＵＤＰヘッダ７００の図である。ＵＤＰヘッダ７００は、送信者のポート数を識別するために使用されるソース・ポート・フィールド７１０を含む。パケットが宛てられているポートを識別する行き先ポート・フィールド７２０もまた含まれる。長さフィールド７３０は、ＵＤＰヘッダおよび封入されたデータのバイトでの長さを含む。チェックサムフィールド７４０は、正確なデータの伝送を保証することを助けるために使用されてもよい。データは、データ・フィールド７５０の中に含まれる。
【００２６】
したがって再度図４を参照すると、ブロック４１０で、ルータ２１０はＶｏＩＰコーデックを識別するために、ＲＴＰヘッダ５００の抜き出されたペイロード型フィールド５６０からのＶｏＩＰトラフィックを使用してもよい。ブロック４２０で、ルータ２１０はＩＰヘッダ６００のサイズ・フィールド６３０からパケットの長さを判定する。同様に、ＵＤＰヘッダ７００からのＶｏＩＰパケットのソースＩＰアドレス６４０と行き先ＩＰアドレス６５０とのペア、およびソース／行き先ポート数のペアはブロック３１０で抜き出される。上述のように、この情報は、パケットが新たなＶｏＩＰ呼び出しから来たものなのかどうかを判定するために使用される。
【００２７】
図３に戻ると、次にルータは使用される暫定の総帯域幅を得るために、新たなＶｏＩＰ呼び出しから計算された帯域幅を、使用されている既存の総帯域幅に付加する（ブロック３７０）。したがって、新たなＶｏＩＰ呼び出しがポートによって承認されているのであれば、総ＶｏＩＰトラフィック帯域幅が判定される。
【００２８】
その後、ルータはポートが新たなＶｏＩＰ呼び出しを受け入れるために利用可能な帯域幅を有するかどうかを判定する（ブロック３８０）。
より詳細には、ルータの各ポートはＮ個のＶｏＩＰ呼び出しを処理する。各ポートは、ポートに特有の表２を含む。表２は、パケットの発信元とポートによって受け入れられた各ＶｏＩＰ呼び出しの行き先とを詳述するソースおよび行き先のＩＰアドレス、ならびにソースおよび行き先のポート数を保持する。表２はまた、特定のヘッダを備えたパケットがポートによって受信された表２のものと最後に合致した時間とともに、各ＶｏＩＰ呼び出しの中のパケットの帯域幅も含む。
【表２】
2008544606.tif 000004
【００２９】
ルータを通じて転送される特定のＶｏＩＰ呼び出しについての情報を抜き出すことに加えて、ルータはまたＶｏＩＰトラフィックの全体の帯域幅を継続的に監視する。表１に示されているように、ＶｏＩＰ呼び出しからのトラフィックによって使用される帯域幅の量は、ＶｏＩＰコーデックおよび、ＶｏＩＰトラフィックを生成するＶｏＩＰエンコーダによって使用されるパケット化遅延から判定される。能動的輻輳制御方式は、ＶｏＩＰトラフィックを運搬する各ルータ・ポートについての２つのパラメータであるＢＤ＿ｔｏｔａｌとＢＤ＿ｌｉｍｉｔとを用いて実施される。ＢＤ＿ｔｏｔａｌは、ポートのＶｏＩＰトラフィックによって使用される集合された帯域幅である。ＢＤ＿ｌｉｍｉｔは、ＶｏＩＰトラフィックが所望のＱｏＳを維持するためにルータから使用することができる事前に割り当てられた帯域幅制限である。能動的輻輳制御方式は、ＶｏＩＰトラフィックがＢＤ＿ｌｉｍｉｔを上回ることを止める。
【００３０】
換言すれば、ルータは、ＶｏＩＰトラフィックを受信しているルータの各ポート上のＶｏＩＰトラフィックを継続的に監視する。ルータは、能動的輻輳制御方式が使用される場合に、表１と表２との両方を用いる。特に、表２がアクティブのＶｏＩＰ呼び出しと、各ＶｏＩＰ呼び出しが特定のポート上で使用する帯域幅の量とを追跡する場合、この表は各ポートに基づいている。したがって、ＶｏＩＰトラフィックを受信しているルータの中にＭ個のポートがある場合、各ポートにつき１つ、Ｍ表２の表が存在する。表１がＶｏＩＰコーデックおよびＶｏＩＰパケット長をＶｏＩＰ呼び出しが使用する帯域幅の量にマップする場合、これはルータのすべてのポートによって使用されるグローバル表である。
ブロック３８０で、ルータがＢＤ＿ｔｏｔａｌ＞ＢＤ＿ｌｉｍｉｔであるかどうかを判定した後、新たなＶｏＩＰ呼び出しにより使用される帯域幅によって、総帯域幅ＢＤ＿ｔｏｔａｌはポートＢＤ＿ｌｉｍｉｔの最大割り当て帯域幅を上回る（すなわちＢＤ＿ｔｏｔａｌ＿ｔｅｍｐｏｒａｒｙ＞ＢＤ＿ｌｉｍｉｔ）とルータが判定する場合、その後ルータは新たなパケットを拒否する（ブロック３９０）。したがって、新たなＶｏＩＰからのパケットが廃棄され、総帯域幅ＢＤ＿ｔｏｔａｌは変わらないままである。
【００３１】
しかしながら、ポートは新たなＶｏＩＰ呼び出しを受け入れるために利用可能な帯域幅を有する（すなわちＢＤ＿ｔｏｔａｌ＿ｔｅｍｐｏｒａｒｙ＜ＢＤ＿ｌｉｍｉｔ）とルータが判定する場合、パケットはポートによって許可され、ルータによって発送される（ブロック３９２）。その後ポートの表２は更新され、新たなＶｏＩＰ呼び出しの情報とともに記憶される（ブロック３９４）。すなわち、ソースおよび行き先のＩＰアドレスならびにソースおよび行き先のポート数を備えた識別子と、パケットの帯域幅と、特定の識別子を備えたパケットがポートによって最後に受信された時間とは、ポートの表２の中に保持される。
【００３２】
さらに、ルータは表から完了されたＶｏＩＰ呼び出しのエントリを除去するために、ＶｏＩＰトラフィックを受信する各ポートのために表２を周期的に検査し、更新する。１つのポートのための検査と更新の方法は、図８に示されている。ルータは、選択された第１のＶｏＩＰ呼び出しについての記憶された最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅを調査する（ブロック８００）。最初に、任意のＶｏＩＰ呼び出しが選択されることが可能であることに留意されたい。例えば、表２の最初の列のＶｏＩＰ呼び出し、帯域幅が最も大きいＶｏＩＰ呼び出し、または最後の到着時間が最も早いＶｏＩＰ呼び出しが最初に選択されてもよい。
【００３３】
次いでルータは、現在の時間Ｒｏｕｔｅｒ＿Ｔｉｍｅ＿ＣｕｒｒｅｎｔとＶｏＩＰ呼び出しについての最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅとの差を計算し、その差が所定の時間Ｔｉｍｅｏｕｔよりも大きいかどうかを判定する（ブロック８１０）。すなわちルータは、Ｔｉｍｅｏｕｔが完了されたＶｏＩＰ呼び出しを検出するために使用される事前に割り当てられたパラメータであるとして、（Ｒｏｕｔｅｒ＿Ｔｉｍｅ＿Ｃｕｒｒｅｎｔ−Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅ）＞Ｔｉｍｅｏｕｔであるかどうかを計算する。
【００３４】
差が所定の時間Ｔｉｍｅｏｕｔよりも大きくないとルータが判定する場合、次のＶｏＩＰ呼び出しについてのＬａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅが抜き出される（ブロック８３０）。
【００３５】
差が所定の時間Ｔｉｍｅｏｕｔよりも大きいとルータが判定する場合、ＶｏＩＰ呼び出しは終了しているとみなされ、適切なエントリが表２から除去される（ブロック８２０）。これは帯域幅をルータのポートから解放し、その後新たなＶｏＩＰ呼び出しが処理されることを可能にしてもよい。第１のＶｏＩＰ呼び出しの除去を反映するために表２が更新された後、本方法は上述のように継続し、次のＶｏＩＰ呼び出しについてのＬａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅが抜き出される（ブロック８３０）。
【００３６】
第１ＶｏＩＰ呼び出しのために使用される方法と同様に、ルータは現在の時間Ｒｏｕｔｅｒ＿Ｔｉｍｅ＿Ｃｕｒｒｅｎｔと次のＶｏＩＰ呼び出しについての最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅとの差を計算し、その差が所定の時間Ｔｉｍｅｏｕｔよりも大きいかどうかを判定する（ブロック８４０）。上述のように、以前に選択されていないＶｏＩＰ呼び出しのうちの任意のものが、検査されるべき次のＶｏＩＰ呼び出しとして選択されてもよいということに留意されたい。例えば、表２の２番目の列のＶｏＩＰ呼び出し、帯域幅が２番目に大きいＶｏＩＰ呼び出し、最後の到着時間が２番目に早いＶｏＩＰ呼び出しが次に検査されるＶｏＩＰとして選択されてもよい。
【００３７】
現在の時間Ｒｏｕｔｅｒ＿Ｔｉｍｅ＿ＣｕｒｒｅｎｔとＶｏＩＰ呼び出しについての最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅとの差が所定の時間Ｔｉｍｅｏｕｔよりも大きいとルータが判定する場合、ＶｏＩＰ呼び出しは終了しているとみなされ、適切なエントリが表２から除去される（ブロック８５０）。
【００３８】
表２からエントリが除去された後（ブロック８５０）か、または差が所定の時間Ｔｉｍｅｏｕｔよりも大きくないとルータが判定する場合、次にルータは、確認されるべき任意のＶｏＩＰ呼び出しが表２の中に残っているかどうかを確認する（ブロック８６０）。
【００３９】
確認されるべきＶｏＩＰ呼び出しがさらに存在する場合、本方法は次のＶｏＩＰ呼び出しへ移り、適切であるならば、ポート上の最後のＶｏＩＰ呼び出しが検査されたとルータが判定するまで、判定８４０と除去８５０とを繰り返す。ポート上の最後のＶｏＩＰ呼び出しが検査されたとルータが判定する場合、本方法は図３に示されている方法に戻る（ブロック８７０）。
【００４０】
代替として、図８に示されている方法の代わりに、図９に示されている方法が使用されてもよい。図９で、ルータは表２を検査し、表２の中に記憶されているポートによって受け入れられたＶｏＩＰ呼び出しの中で、最大の最後の到着時間ｍａｘ＿Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅを判定する。これを達成するために、図９に示されている実施形態では、ルータは選択された第１ＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅを判定する（ブロック９００）。
【００４１】
次いでルータは、最大の最後の到着時間ｍａｘ＿Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅを、選択された第１ＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅに設定する（ブロック９１０）。
【００４２】
次いでルータは、選択された次のＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅを検査し（ブロック９２０）、選択された次のＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅが、選択された第１の次のＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅよりも大きいかどうかを判定する（ブロック９３０）。
【００４３】
選択された次のＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅが、選択された第１の次のＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅよりも大きい場合、ルータは最大の最後の到着時間ｍａｘ＿Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅを、次のＶｏＩＰ呼び出しのより長い最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅと置き換える（ブロック９４０）。
【００４４】
一旦ルータが最大の最後の到着時間ｍａｘ＿Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅを次のＶｏＩＰ呼び出しのより長い最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅに置き換えると、または選択された次のＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅが、選択された第１の次のＶｏＩＰ呼び出しのための最後の到着時間Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅよりも大きくない場合、ルータは、最後に選択されたＶｏＩＰ呼び出しがポートのための表２の中の最後のＶｏＩＰ呼び出しであるのかどうかを判定する（ブロック９５０）。
【００４５】
最後に選択されたＶｏＩＰ呼び出しがポートのための表２の中の最後のＶｏＩＰ呼び出しではない場合、ルータは選択された次のＶｏＩＰ呼び出しのための最後の到着時間を検査し続け（ブロック９２０）、その最後の到着時間が現在の最後の到着時間よりも大きいかどうかを判定し（ブロック９３０）、適切であれば、ポートの中のすべてのＶｏＩＰ呼び出しが検査されるまで（ブロック９５０）、最大の最後の到着時間を置き換える（ブロック９４０）。
【００４６】
一旦ポートの中のすべてのＶｏＩＰ呼び出しが検査され、最大の最後の到着時間ｍａｘ＿Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅが判定されると、その後ルータは現在の時間Ｒｏｕｔｅｒ＿Ｔｉｍｅ＿ＣｕｒｒｅｎｔとＶｏＩＰ呼び出しのための最大の最後の到着時間ｍａｘ＿Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅとの差を計算し、その差が所定の時間Ｔｉｍｅｏｕｔよりも大きいかどうかを判定する（ブロック９６０）。すなわちルータは、Ｔｉｍｅｏｕｔが完了されたＶｏＩＰ呼び出しを検出するために使用される事前に割り当てられたパラメータであるとして、（Ｒｏｕｔｅｒ＿Ｔｉｍｅ＿Ｃｕｒｒｅｎｔ−ｍａｘ＿Ｌａｓｔ＿Ａｒｒｉｖａｌ＿Ｔｉｍｅ）＞Ｔｉｍｅｏｕｔであるかどうかを計算する。
【００４７】
差が所定の時間Ｔｉｍｅｏｕｔよりも大きいとルータが判定する場合、ＶｏＩＰ呼び出しは終了しているとみなされ、表２から適切なエントリが除去される（ブロック９７０）。第１ＶｏＩＰ呼び出しの除去を反映するために表２が更新された後、または差が所定の時間Ｔｉｍｅｏｕｔよりも大きいとルータが判定する場合、本方法は図３に示されている方法に戻る（ブロック９８０）。
【００４８】
１つまたは複数の呼び出しがドロップされるべきかどうかを判定するための図８に示されている方法または図９に示されている方法のいずれかは、図３の手順の間の複数の時点で実行されてもよい。より詳細には、図３に示されているように、図８または９の方法はパケットが受信される前、パケットが受け入れられたか、もしくはドロップされた後、またはパケットの処理の間に実行されてもよい。
【００４９】
最後の場合では、図８または９に示されている方法はパケット処理の間の任意の中間の時点で実行されてもよいが、論じられるのは示されている特定の実施例だけである。図３に示されているように、受信されたパケットが新たなＶｏＩＰ呼び出しから来たものであると結論を出し、新たな呼び出しの帯域幅が判定された後、ルータはポートの暫定の総帯域幅を計算する前に、１つまたは複数の既存のＶｏＩＰ呼び出しがドロップされるべきかどうかを判定することができる。代替として、ルータはポートの暫定の総帯域幅が帯域幅制限を超えると判定した後にだけ、１つまたは複数の既存のＶｏＩＰ呼び出しがドロップされるべきであるかどうかを判定することができる。
【００５０】
後者の場合では、ポートの暫定の総帯域幅が帯域幅制限を超えると結論を出した後、ルータがいかなるＶｏＩＰ呼び出しもドロップしない場合、戻り経路（１）によって示されているように、本方法は継続し、パケットはドロップされる（ブロック３９０）。
【００５１】
ルータが１つまたは複数のＶｏＩＰ呼び出しをドロップする場合、本方法は暫定の総帯域幅を再計算し、新たな暫定総帯域幅が帯域幅制限を超えるかどうか（すなわち、ここで新たなＶｏＩＰ呼び出しが受け入れられることが可能であるかどうか）を判定することができる。このことは、戻り経路（２）として示されている。新たな暫定総帯域幅が依然として帯域幅制限を超えている場合に、任意のＶｏＩＰ呼び出しがドロップされるべきであるかどうかをルータが再度確認することのないように、内部フラグが設定されてもよい。すなわち新たなパケットが受信されると、ルータは任意のＶｏＩＰ呼び出しがドロップされるべきであるかどうかを一度だけ確認する。
【００５２】
図３および８／９の処理手順は、同じＶｏＩＰ呼び出しから次のパケットが到着する前に完了される。検索エンジンに基づくＴＣＡＭ（ターナリ・コンテント・アドレサブル・メモリ）などの特定のハードウェア高速化技術は、これらの方法の実施の速度を上げるために使用されてもよい。しかしながら、各ＶｏＩＰ呼び出しのための帯域幅が小さいものであると想定すると、２つの連続するパケットが同じＶｏＩＰ呼び出しから来た可能性は極めて低い。このことは、本方法の実施の複雑性を減少させる。各ポートおよび／またはルータのために使用されるＴｉｍｅｏｕｔパラメータは、ネットワーク・リンクが活用不足とならないように選択される。
【００５３】
ＶｏＩＰを使用して高品質のパケット化された音声呼び出しを保証するために、ＶｏＩＰトラフィックが転送されるルータは受信されるパケットを監視し、その上で動作してもよい。より詳細には、ルータは新たなＶｏＩＰ呼び出しからパケットが到着するときに特定のポートのＶｏＩＰ呼び出しのために使用される帯域幅を検出し、新たな呼び出しを受け入れるために利用可能な帯域幅が十分にない場合にはパケットをドロップする。代替として、ルータは既存のＶｏＩＰ呼び出しのためにとっておかれる帯域幅がＶｏＩＰ呼び出しの終了のために解放されているということを判定し、終了されたＶｏＩＰ呼び出しを新たなＶｏＩＰ呼び出しと置き換え、新たなＶｏＩＰ呼び出しを発送してもよい。これによってルータは、ルータを通るすべてのＶｏＩＰトラフィックについての一貫したＱｏＳを維持することができる。
【００５４】
本発明の様々な実施形態によって、本明細書で説明される方法は、コンピュータ・プロセッサ上で動作するソフトウェア・プログラムとしての動作を目的とする。以下のものに限定されるわけではないが、特定用途向け集積回路、プログラマブル・ロジック・アレイを含む専用のハードウェア実装、およびその他のハードウェア・デバイスは、本明細書で説明されている方法を実施するために同様に構成されることが可能である。さらに、以下のものに限定されるわけではないが、分散型処理もしくはコンポーネント／オブジェクト分散型処理、並行処理または仮想マシン処理を含む代替のソフトウェア実装もまた、本明細書で説明されている方法を実施するために構成されることが可能である。
【００５５】
本明細書で説明されている本発明のソフトウェア実装は、ディスクもしくはテープなどの磁気媒体、ディスクなどの光磁気もしくは光媒体、または１つまたは複数の読み取り専用（不揮発性）メモリ、ランダム・アクセス・メモリもしくはその他の再書き込み可能な（揮発性）メモリを収容するメモリ・カードまたはその他のパッケージなどのソリッド・ステート媒体、またはネットワーク環境の中で送信されるコンピュータ命令を含む信号などの有形の記憶媒体に任意で記憶されるということにもまた留意されたい。電子メールまたはその他の自己内蔵型の情報アーカイブへの電子ファイルの添付は、有形記憶媒体と均等の配布媒体であるとみなされる。したがって本発明は、本明細書で挙げられている、本明細書のソフトウェア実装が記憶された当技術分野で承認されている均等物および後継の媒体を含む有形記憶媒体または配布媒体を含むものとみなされる。
【００５６】
本明細書は、特定の規格およびプロトコルに関する実施形態の中で実施されるコンポーネントおよび機能を説明しているが、本発明はそのような規格およびプロトコルに限定されるわけではない。インターネットおよびその他のパケット交換ネットワーク伝送（例えばＴＣＰ／ＩＰ、ＵＤＰ／ＩＰ、ＨＴＭＬ、ＨＴＴＰ）のための各規格は、現状技術の実施例を表している。そのような規格は、本質的に同じ機能を有するより速い、またはより効果的な均等物によって周期的に置き換えられる。したがって、同じ機能を有する代替の規格およびプロトコルは、均等物とみなされる。
【００５７】
したがって本発明は、ネットワーク環境に接続されたデバイスが音声、映像またはデータを送信または受信することができるように、また命令を使用してネットワーク上で通信を行うために、命令を含んでいるか、または伝播信号から命令を受信して実行するコンピュータ可読媒体を意図している。命令は、デバイスが所望の方法で動作できるようにするために実行可能な１つまたは複数のルーチンを形成する。
【００５８】
さらに、本発明のデバイスは概して、電話、コードレス電話、移動電話、携帯電話、携帯情報端末（ＰＤＡ）、セットトップ・ボックス、コンピュータおよび／またはサーバなどの音声、映像またはデータ通信を提供する任意の電子デバイスを含むということが理解されよう。
【００５９】
本発明は様々な実施形態を参照して上で説明されてきたが、本発明の範囲から逸脱することなく、多くの変更および修正がなされうることが理解されよう。したがって上述の詳細な説明は、本発明の定義としてではなく、本発明の現時点での好ましい実施形態の例示として理解されるということが意図されている。本発明の範囲を定義することが意図されているのは、すべての均等物を含む冒頭の特許請求の範囲のみである。
【図面の簡単な説明】
【００６０】
【図１】ＶｏＩＰ通信システムのブロック図である。
【図２】通信システムのネットワークの例示的なコンポーネントを示すブロック図である。
【図３】能動的輻輳制御方式を示す流れ図である。
【図４】ＶｏＩＰ呼び出しの帯域幅推定プロセスを示す流れ図である。
【図５】ＲＴＰヘッダを示す図である。
【図６】ＩＰヘッダを示す図である。
【図７】ＵＤＰヘッダを示す図である。
【図８】呼び出しのドロッピング方法を示す流れ図である。
【図９】別の呼び出しのドロッピング方法を示す流れ図である。
【図１】
2008544606.tif 000005
【図２】
2008544606.tif 000006
【図３】
2008544606.tif 000007
【図４】
2008544606.tif 000008
【図５】
2008544606.tif 000009
【図６】
2008544606.tif 000010
【図７】
2008544606.tif 000011
【図８】
2008544606.tif 000012
【図９】
2008544606.tif 000013
【国際調査報告】
2008544606.tif 000014