(57)【要約】【課題】送信ホストにおいて、経路ＭＴＵ情報を効率的に探索し、記憶するための方法、コンピュータ・プログラム製品、およびデータ処理システムを提供すること。【解決手段】好ましい実施形態では、２つの経路ＭＴＵテーブルが維持される。一方の経路ＭＴＵテーブルは、送信ホストに関連付けられた第１ホップ・ルータに対応するＭＴＵ値を含む。他方の経路ＭＴＵテーブルは、個々の宛先ホストに対応するＭＴＵ値を含む。送信ホストは、情報を宛先に送る必要がある場合、まず、個々の宛先ホストに関連付けられたＭＴＵテーブルに照会する。その宛先ホストに対するエントリがテーブル中で見出された場合、送信ホストは、そのＭＴＵ値を使用する。見出されない場合、送信ホストは、宛先ホストへの経路上の第１ホップ・ルータに対するＭＴＵテーブルに照会し、そのＭＴＵ値を使用する。そのＭＴＵ値が高すぎる場合、宛先ホストに対して、新しいエントリがホスト特有のＭＴＵテーブル中に作成される。【選択図】図１
2010515388.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数の第１ホップ・ルータと関連付けられた１組の最大送信ユニット（ＭＴＵ）値を記憶するステップと、
宛先ホストへのネットワーク経路上の第１ホップ・ルータを識別するステップと、
前記識別された第１ホップ・ルータに対応する第１ホップ・ルータの最大送信ユニット値を決定するステップと、
前記ネットワーク経路を介して、前記宛先ホストにデータ・パケットを送信するように試みるステップであり、前記データ・パケットのサイズが、前記第１ホップ・ルータの最大送信ユニット値により定義されるステップと
を含む方法。
【請求項２】
１つまたは複数の第１ホップ・ルータと相関のある最大送信ユニット（ＭＴＵ）値の第１の組を記憶するステップと、
１つまたは複数のホストと相関のある最大送信ユニット値の第２の組を記憶するステップと、
特定の宛先ホストが、前記１つまたは複数のホストの１つであるかどうかを判定するステップと、
前記特定の宛先ホストが、前記１つまたは複数のホストの１つであるとの判定に応じて、経路最大送信ユニット値として使用するために、前記第２の組から値を取り出すステップと、
前記特定の宛先ホストが、前記１つまたは複数のホストの１つではないという判定に応じて、前記経路最大送信ユニット値として使用するために、前記第１の組から値を取り出すステップと、
前記経路最大送信ユニット値により決定されたサイズを有するデータ・パケットを送信するステップと
を含む方法。
【請求項３】
前記ネットワーク経路に対して、実際に必要な経路最大送信ユニット値が、前記決定された最大送信ユニット値よりも小さいかどうか判定するステップと、
前記ネットワーク経路に対する前記実際に必要な経路最大送信ユニット値が、前記決定された最大送信ユニット値よりも小さいという判定に応じて、前記実際に必要な経路最大送信ユニット値を、前記宛先ホストに関連付けられたものとして記憶するステップと
をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記実際に必要な経路最大送信ユニット値が、前記宛先ホストに関連付けられたものとして記憶されているかどうかを判定するステップと、
前記実際に必要な経路最大送信ユニット値が、前記宛先ホストに関連付けられたものとして記憶されているとの判定に応じて、第２のデータ・パケットを前記宛先ホストに送信するステップであり、前記データ・パケットの前記サイズが、前記記憶された実際に必要な経路最大送信ユニット値により定義されるステップと
をさらに含む、請求項３に記載の方法。
【請求項５】
前記実際に必要な経路最大送信ユニット値が、前記宛先ホストに関連付けられたものとして記憶されていないという判定に応じて、前記宛先ホストに第２のデータ・パケットを送信するステップであり、前記データ・パケットの前記サイズが、前記第１ホップ・ルータの最大送信ユニット値により定義されるステップをさらに含む、請求項４に記載の方法。
【請求項６】
超過したパケット・サイズのため、前記データ・パケットが前記宛先ホストに達することに失敗したことを検出するステップと、
超過したパケット・サイズのため、前記データ・パケットが前記宛先ホストに達することに失敗したことを検出したことに応じて、
前記失敗を克服するように、前記データ・パケットの前記サイズを調整するステップと、
前記調整されたデータ・パケットを、前記宛先ホストに再送信するように試みるステップと
をさらに含む、請求項２または３に記載の方法。
【請求項７】
前記調整されたデータ・パケットの前記サイズから、前記ネットワーク経路に対する前記実際に必要な経路最大送信ユニット値を決定するステップをさらに含む、請求項６に記載の方法。
【請求項８】
コンピュータにより実行されたとき、前記コンピュータに、請求項１ないし７のいずれかに記載のアクションを実施させる機能的な記述要素を含むコンピュータ・プログラム製品。
【請求項９】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにアクセス可能なデータ・ストレージと、
前記データ・ストレージ中の１組の命令とを備え、
前記少なくとも１つのプロセッサが、請求項１ないし７のいずれかに記載のアクションを実施するために前記１組の命令を実行するように動作可能であるデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータのネットワーキングに関する。
【背景技術】
【０００２】
今日の電気通信はネットワークに依存している。ネットワークは、１組の相互接続されたマシン（ネットワーク要素）であり、データを、その１組のマシンを介してソースから宛先まで中継することができる。ネットワークは、その占有する地理的な領域に従って分類することができる。ＬＡＮ（ローカル・エリア・ネットワーク）は通常、１つの建築物や１群の建築物など、比較的小さな領域に物理的に限定されるネットワークとして定義される。ＷＡＮ（広域ネットワーク）は、より大きなサイズのネットワークを表す一般的な用語である。
【０００３】
インターネットワークまたはインターネット（internet）は、ルータにより相互接続されたネットワークの集合体である。ルータは、ネットワーク間でデータを中継（経路指定）するネットワーク要素である。大部分のＷＡＮは、複数の相互接続されたＬＡＮから構成されるインターネット（internet）である。したがって、ＷＡＮという用語は、インターネット（internet）を指すために使用されることが多いが、用語ＬＡＮは、インターネット（internet）またはＷＡＮの構成ネットワークを示すためにしばしば使用される。この文書では、用語ＷＡＮおよびＬＡＮは、この「インターネットワーキング」の意味で使用されるが、かなりの量のコンピューティングおよび電気通信文献で、用語ＬＡＮおよびＷＡＮが、前に述べた「地理的」な意味で使用されることにも注意すべきである。ワールド・ワイド・ウェブのためのバックボーンを提供する「ワールド・ワイド・インターネット（Internet）」または簡単に「インターネット（Internet）（大文字）」は、おそらく最もよく知られたインターネット（internet）（小文字）であり、インターネット（Internet）を定義するプロトコルおよび規格が、現在のネットワーキング技術の大部分に対する基本モデルを定義する。したがって、一般に、インターネット（Internet）に適用される技術はまた、他のネットワークでも同様に用途を見出すことができる。
【０００４】
インターネット（Internet）は、いくつかの異なる「自律システム」（ＡＳ）に分割され、そのそれぞれが、大学または会社など単一のエンティティの管理下で、１つまたは複数のルータまたはＬＡＮあるいはその両方を含む。ルータ（古い文献では、「ゲートウェイ」と呼ばれることも時々ある）は、ネットワーク間でデータを中継（経路指定）するネットワーク要素である。ルータは、物理的なリンクまたは時には無線リンクを介して、他のルータに接続される。データは、適正なネットワークに達するまで、物理リンクを介してルータからルータへと転送されることにより、インターネットワークを通して送られる。ルータは、ネットワークを介して情報を適正に転送するために、所与の一片の情報を、どのリンク上で転送すべきかに関するガイダンスをルータに示す「ルーティング・テーブル」を維持する。実際には、ルータと非ルータのネットワーク要素（ホスト）が共にルーティング・テーブルを維持するが、ルータはデータを転送するようにプログラムされており、一方、ホストは概してそのホストにアドレス指定されていないデータはどれも破棄するようにプログラムされる点で、他のネットワーク要素とは区別される。
【０００５】
ネットワーク要素間の通信に対するルールを定義するネットワーキング・プロトコルは、通常、層中で働くように設計されており、各層は、データ送信において少し異なる役割を行う。ＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）は、インターネットおよび多くの他のネットワークに対する基礎を形成するプロトコルの集合体（プロトコル群と呼ばれる）である。ＴＣＰ／ＩＰは、通常、代替的にパケットまたはデータグラムとして知られる比較的小さなチャンクの形で、広域ネットワークを介してデータを送信するために使用される。ＴＣＰ／ＩＰは、概して、４層のプロトコル・モデルに従うと考えられる。ＴＣＰ／ＩＰプロトコル群の最下層は、「リンク層」と呼ばれ、それは、ケーブルまたは無線リンクなどの物理的なネットワーク媒体への接続をサポートするための物理的なインターフェースを表す。４層モデルの中で次に高い層であるネットワーク層は、ネットワークまわりのデータ・パケットの移動を処理する。ネットワーク層の上はトランスポート層であり、トランスポート層は、送信および受信ホスト・コンピュータそれ自体において、ネットワーク・パケットが編成され、使用される方法を制御する。典型的なＴＣＰ／ＩＰプロトコル・スタックの最上位層はアプリケーション層であり、それは、電子メール（SimpleMail Transfer Protocol、すなわち、「ＳＭＴＰ」を介して）またはワールド・ワイド・ウェブ・アクセス（HyperText TransferProtocol、すなわち、「ＨＴＴＰ」を介して）など、特定のネットワーク・アプリケーションをサポートする機能を示す。
【０００６】
ＩＰ（インターネット・プロトコル）は、ＴＣＰ／ＩＰプロトコル群の主要なネットワーク層プロトコルである。現在、ＲＦＣ７９１で定義されるバージョン４（ＩＰｖ４）と、ＲＦＣ１８８３で定義されるバージョン６（ＩＰｖ６）との２つの主要なＩＰバージョンが使用されている。ＩＰは、データのパケットが、ネットワーク中の数値的なソース・アドレスからパケットのヘッダ中で指定される数値的な宛先アドレスへと送られることを可能にする。通常、これらのパケットは、必要なリンク層プロトコルが何であれ、そのパケット中に「カプセル化」される。これは、ＩＰパケットが、イーサネット（Ｒ）などのリンク層プロトコルにより生成されたパケット内のデータとして運ばれることを意味する。
【０００７】
したがって、ＴＣＰ／ＩＰプロトコル群におけるこれらの数値的なアドレスは、一般に、「ＩＰアドレス」と呼ばれるが、総称的なＩＰ特有ではない用語は、「ネットワーク・アドレス」である。ネットワーク・アドレスは、同じＬＡＮ上のＮＡ中で１つのＮＡを識別するためではなく、ＷＡＮ全体（例えば、インターネット）にわたりネットワーク要素を識別するために使用されるため、ネットワーク・アドレスはハードウェア・アドレスとは異なる。したがって、所与のネットワーク要素は、そのＮＡに対応するハードウェア・アドレスと、ＷＡＮを介してネットワーク要素を識別する１つまたは複数のネットワーク・アドレスとを有することになる。ＩＰｖ４は、３２ビットのＩＰアドレスをサポートするが、ＩＰｖ６は、インターネット接続されるホストの爆発的な増加に適合させるために１２８ビットのＩＰアドレスをサポートする。
【０００８】
ＩＣＭＰｖ４（Internet Control Message Protocolversion 4）（ＲＦＣ７９２）およびＩＧＭＰ（Internet Group Management Protocol）（ＲＦＣ１１１２）など、他のネットワーク層プロトコルは、制御およびエラー・メッセージを送るために、またグループ中の複数の宛先に対して、個々のパケットをマルチキャストするようにＩＰアドレスをグループ化するために、それぞれ使用される。ＩＣＭＰｖ４は、ＩＰｖ４と共に使用するように設計されているので、そのプロトコルの新しいバージョンであるＩＣＭＰｖ６（ＲＦＣ１８８５）もＩＰｖ６と共に使用する必要がある。
【０００９】
ＩＣＭＰにより通常行われるタスクの１つは、「経路ＭＴＵ探索（Path MTU discovery）」として知られている。用語「ＭＴＵ」は、「最大移送ユニット」を表しており、それは、ＩＰネットワーク中の２つのノード間における最大の許容可能なパケット・サイズを指す。パケットがＩＰネットワーク中の任意の２つのリンクされたノード間で送信されるとき、そのリンクに関連付けられたＭＴＵが存在する。典型的なＩＰパケットは、その宛先ホストへの途上で、複数のルータ（および、したがって、複数のリンク）を介して経路指定されることになる。各リンクは、通常、そのリンクを介して移送するために使用されるリンク層プロトコルの関数である、リンクに関連付けられたＭＴＵ値を有する（したがって、各ＩＰパケットは、単一のリンク層パケット中にカプセル化することができるが、その最大のリンク層パケット・サイズが、通常、リンクに対するＭＴＵを決定する）。各リンクは、それに関連付けられたＭＴＵを有するため、パケットをその意図する宛先に到達させる場合、パケットは、ソース・ホストから宛先ホストまでの経路に沿ったどのリンクに対するＭＴＵも超えてはならない。したがって、所与の経路中のリンクのすべてにわたる最小のＭＴＵは、その経路に対する「経路ＭＴＵ」と呼ばれる。送信ホストは、宛先ホストに達するために使用される経路に対する経路ＭＴＵを超えないＩＰパケットを生成しなくてはならない。
【００１０】
経路ＭＴＵ探索のための標準的な方法は、ＲＦＣ１１９１に述べられている。送信ホストは、概して、宛先ホストに達するためにパケットが取る実際の経路を認識していないので、実際に探索されるものは、各宛先ホストに関連する「経路ＭＴＵ」である。所与の経路に対する経路ＭＴＵは、まずＩＣＭＰを用いた試行錯誤過程と特徴付けられ得るものを用いて探索される。ルータが、経路中の次のリンクに対するＭＴＵよりも大きいパケットを受信した場合、ルータは、そのパケットを破棄し、「データグラムが大き過ぎる」というＩＣＭＰメッセージを含むデータグラムを送信ホストに返すが、それはまた、経路中の次のリンクに対するＭＴＵ値も含む。送信ホストは、返されたＭＴＵ値に適合させるようにそのパケット・サイズ（すなわち、特定の宛先ホストに対する「経路ＭＴＵ」のその推定値）を調整し、再度試行する。最終的に、送信ホストは、宛先ホストにパケットを送信するように働く経路ＭＴＵ値に到達し、さらに送信ホストは、（経路ＭＴＵが、とにかくキャッシュ中に常駐し続ける限り）試行錯誤過程を繰り返す必要がないように、将来使用するためにその経路ＭＴＵをキャッシュする。
【００１１】
この経路ＭＴＵ探索機構の下では、（例えば、ワールド・ワイド・ウェブ検索エンジンなどの）大規模な、高頻度で使用されるホストは、非常に多くの数の経路ＭＴＵ値をキャッシュする必要があり、あるいは再度行われる宛先ホストに向けて経路ＭＴＵ値を繰り返して計算する必要のある場合には、著しい性能劣化を受けることになる。これらのいずれのシナリオ下においても、（ネットワーク帯域幅であれ、計算時間、またはストレージ・コストであれ）大量のコンピュータ資源が必要となる。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】インターネット規格文書ＲＦＣ−１１９１
【発明の概要】
【発明が解決しようとする課題】
【００１３】
したがって、高頻度で使用されるネットワーク・ホストが、特定の宛先ホストに使用される正しい経路ＭＴＵを追跡するためのより効率的な方法が求められている。本発明は、この問題または他の問題あるいはその両方に対処し、かつ以前の解決策を越える利点を提供する。
【課題を解決するための手段】
【００１４】
したがって本発明は、送信ホストにおいて、経路ＭＴＵ情報を効率的に探索し、記憶するための方法、コンピュータ・プログラム製品、およびデータ処理システムを提供する。好ましい実施形態では、２つの経路ＭＴＵテーブルが維持される。一方の経路ＭＴＵテーブルは、送信ホストに関連付けられた第１ホップ・ルータに対応するＭＴＵ値を含む。他方の経路ＭＴＵテーブルは、個々の宛先ホストに対応するＭＴＵ値を含み、その宛先ホストに対する経路ＭＴＵは、その宛先ホストに達するために使用される第１ホップ・ルータに対するＭＴＵよりも低い。送信ホストは、情報を宛先ホストに送る必要がある場合、まず、個々の宛先ホストに関連付けられたＭＴＵテーブルに照会する。その宛先ホストに対するエントリがテーブル中で見出された場合、送信ホストは、そのＭＴＵ値を使用する。見出されない場合、送信ホストは、宛先ホストへの経路上の第１ホップ・ルータに対するＭＴＵテーブルに照会し、そのＭＴＵ値を使用する。そのＭＴＵ値が、意図する宛先にパケットが到達できるようにする上で高すぎる場合、宛先ホストに対して、新しいエントリがホスト特有のＭＴＵテーブル中に作成される。
【００１５】
添付の図面を参照して、例としてだけであるが、本発明の諸実施形態を次に述べる。
【図面の簡単な説明】
【００１６】
【図１】本発明の好ましい実施形態を実装することのできるネットワークの一部の図である。
【図２】本発明の好ましい実施形態による２つのＭＴＵテーブルの図である。
【図３】本発明の好ましい実施形態によるＭＴＵ情報探索および記憶のプロセスを表す流れ図である。
【図４】本発明の好ましい実施形態を実装することのできるデータ処理システムのブロック図である。
【発明を実施するための形態】
【００１７】
図１は、本発明の好ましい実施形態を実装することのできるネットワークの一部１００の図である。ネットワーク部分１００は、相互接続されたルータ１０４、１０６、１０８、１１０、１１２および１１４を介して、複数の宛先ホスト１１６、１１８、および１２０のいずれかにデータを送ることのできる送信（ソース）ホスト１０２の観点から見ている。しかし、「送信ホスト」および「宛先ホスト」という用語は、単一のデータ送信において、２つのネットワーク化されたコンピュータにより行われる役割に対して相対的なものであると見なされることが当業者であれば理解されよう。他のネットワーク化されたコンピュータにデータを送信しているネットワーク中の任意のコンピュータは、そのデータ送信に関して送信ホストであるが、反対に、他のネットワーク化されたコンピュータからデータを受信しているネットワーク中の任意のコンピュータは、そのデータ送信に関して宛先ホストとなる。
【００１８】
図１で示すように、ネットワーク部分１００における２つのノード間の各接続は、関連付けられたＭＴＵ値を有する。例えば、ホスト１０２とルータ１０４の間のリンクに対するＭＴＵは１５００である。送信ホストと宛先ホストの各組合せに対して「経路ＭＴＵ」があり、それは、送信ホストから宛先ホストまでに取られるネットワーク経路上で許容できる最大のパケット・サイズを表す。「経路ＭＴＵ」は、送信ホストから宛先ホストまでのネットワーク経路上のすべての接続にわたる最小のＭＴＵである。例えば、送信ホスト１０２と宛先ホスト１１６の間の経路ＭＴＵは１５００であるが、送信ホスト１０２と宛先ホスト１１８の間の経路ＭＴＵは１２００である（それは、送信ホスト１０２から宛先ホスト１１８までの経路上の最小のＭＴＵが、ルータ１０８とルータ１１２の間で生ずる１２００のＭＴＵとなるからである）。
【００１９】
図１から、いずれの場合においても、送信ホストから宛先ホストまでの経路ＭＴＵは、送信ホストと、宛先ホストへの経路上の「第１ホップ・ルータ」との間の接続上のＭＴＵを超えないことが明らかである。「第１ホップ・ルータ」とは、送信ホストと宛先ホストの間の経路上で遭遇する最初のルータのことである。所与の任意の送信ホストに対して、有限数の第１ホップ・ルータが存在する（それは、所与の送信ホストから、有限数の物理的接続だけが存在し得るからである）。例えば、図１では、送信ホスト１０２は、２つの第１ホップ・ルータであるルータ１０４およびルータ１０６を有する。第１ホップ・ルータ１０４は、宛先ホスト１１６および１１８への経路上の第１ホップ・ルータであり、一方、第１ホップ・ルータ１０６は、宛先ホスト１２０への経路上の第１ホップ・ルータである。本発明の好ましい実施形態は、所与の第１ホップ・ルータへのＭＴＵは、経路ＭＴＵに対する上限であることを利用することにより、経路ＭＴＵ情報を送信ホスト中に記憶するのに必要な記憶量を低減する。
【００２０】
図２は、本発明の好ましい実施形態による２つのＭＴＵテーブルの図である。この好ましい実施形態では、送信ホストは、２つの経路ＭＴＵテーブル（経路ＭＴＵテーブル２００および２０２）を維持する。経路ＭＴＵテーブル２００は、送信ホストに関連付けられた第１ホップ・ルータに対応するＭＴＵ値を含む。経路ＭＴＵテーブル２０２は、個々の宛先ホストに対応するＭＴＵ値を含み、その宛先ホストに対する経路ＭＴＵは、そこに達するために使用される第１ホップ・ルータに対するＭＴＵよりも低い。送信ホストが宛先に情報を送る必要があるとき、それは、まずＭＴＵテーブル２０２に照会する。その宛先ホストに対するエントリがＭＴＵテーブル２０２中で見出された場合、送信ホストはそのＭＴＵ値を使用する。見出されない場合は、送信ホストはＭＴＵテーブル２００に照会して、宛先ホストへの経路上の第１ホップ・ルータに関連付けられたＭＴＵ値を特定し、そのＭＴＵ値を使用する。第１ホップ・ルータのＭＴＵ値が、パケットを、意図する宛先に到達できるようにするには高すぎることが分かった場合、そのホストに対する実際の経路ＭＴＵ値を用いて、その宛先ホストに対する新しいエントリがテーブル２０２に作成される。
【００２１】
例えば、図１における宛先ホスト１２０に対して、テーブル２０２中にエントリが存在しない場合、送信ホスト１０２はまず、送信ホスト１０２がテーブル２００から取り出した、第１ホップ・ルータ１０６に対する１２００のＭＴＵを用いて、宛先ホスト１２０にパケットを送るように試みる。ルータ１０６とルータ１１４の間のリンクに対するＭＴＵは８００であるので、第１ホップ・ルータの１２００のＭＴＵは、宛先ホスト１２０にパケットを送信するためには高すぎ、ルータ１０６は、ＩＣＭＰメッセージを送信ホスト１０２に返して、送信ホスト１０２に、ルータ１０６とルータ１１４の間の８００のＭＴＵを超えないパケットを送る必要のあることを通知することになる。この場合、送信ホスト１０２は、調整された８００のＭＴＵを含む、宛先ホスト１２０に対する新しいエントリをテーブル２０２中に作成することになる。この技法は、可能な場合は常に第１ホップ・ルータのＭＴＵを用いることにより、絶対的に必要な場合に限ってホスト特有のＭＴＵ情報が記憶されることを保証する。
【００２２】
図３は、本発明の好ましい実施形態によるＭＴＵ情報探索および記憶を用いて、単一のパケットを送信するプロセスを表す流れ図である。送信ホストが、宛先ホストに送るべきデータを有する場合（ブロック３００）、宛先ホストが、ホスト特有のＭＴＵテーブル（例えば、図２のテーブル２０２）中にエントリを有するかどうかに関して、まず判定が行われる（ブロック３０２）。宛先ホストに対するホスト特有のエントリがない場合（ブロック３０２でＮｏ）、宛先ホストへの経路上の第１ホップ・ルータが決定される（ブロック３０４）。次いで、（例えば、図２のテーブル２００から決定されるように）この第１ホップ・ルータに関連付けられたＭＴＵにより設定されたパケット・サイズを用いて、データのパケットを送信する試みが行われる（ブロック３０６）。この第１ホップ・ルータのＭＴＵが、宛先ホストへの実際の経路ＭＴＵよりも大きいことが分かった場合（例えば、「パケット・サイズが超過している」というＩＣＭＰメッセージが受信されたため）（ブロック３０８でＹｅｓ）、宛先ホストに対して、調整されたホスト特有のＭＴＵを記憶するエントリが（例えば、図２のテーブル２０２中で）生成される（ブロック３１０）。このような「パケット・サイズが超過している」メッセージが受信されない（すなわち、送信されたパケットが過大ではなかった）場合（ブロック３０８でＮｏ）、単一のパケットを送信するプロセスは完了し、必要に応じて、後続するパケットを送信するためにプロセスが反復される。
【００２３】
ホスト特有のＭＴＵ値が、アプリオリに存在することが決定されていたため（ブロック３０２でＹｅｓ）、またはちょうど生成されたため（ブロック３１０）、ホストＭＴＵテーブル中に存在する場合、パケットは、このホスト特有のＭＴＵ値により決定されたパケット・サイズで送信される（ブロック３１２）。この（ホスト特有のサイズを有する）パケットが宛先に達するには大き過ぎることが分かった場合（ブロック３１４でＹｅｓ）、ホストＭＴＵテーブル中に記憶されたホスト特有の値は（例えば、受信された「パケット・サイズが超過している」というＩＣＭＰメッセージに従って）この失敗を克服するように調整され（ブロック３１６）、この新しい、より小さなサイズのパケットを送信する試みが行われる（ブロック３１２）。このプロセスは、適正なサイズのパケットが送信され、これ以上パケット・サイズに関係する失敗が生じなくなるまで繰り返される（ブロック３１４でＮｏ）。
【００２４】
当業者であれば、ブロック３１２、３１４、および３１６は、単独で、参照により本明細書に組み込むインターネット規格文書ＲＦＣ−１１９１に述べられたＭＴＵ探索機構と等価であることが理解されよう。したがって、本発明を実装する１つの方法は、（ブロック３１２、３１４、および３１６を「ブラック・ボックス」として実装している）既存のＭＴＵ探索コードに、ブロック３００〜３１０により提供される機能を増補する／付加することになるはずである。
【００２５】
図４は、本発明の好ましい実施形態に関して、本明細書で述べたコンピューティング・オペレーションを実施できるコンピュータ・システム／データ処理システムの簡単化した例である情報処理システム４０１を示している。コンピュータ・システム４０１は、ホスト・バス４０２に結合されたプロセッサ４００を含む。レベル２（Ｌ２）キャッシュ・メモリ４０４もホスト・バス４０２に結合される。ホスト−ＰＣＩブリッジ４０６は、主メモリ４０８に結合され、キャッシュ・メモリおよび主メモリの制御機能を含み、さらにＰＣＩバス４１０、プロセッサ４００、Ｌ２キャッシュ４０４、主メモリ４０８、およびホスト・バス４０２の間での転送を処理するためのバス制御を提供する。主メモリ４０８は、ホスト−ＰＣＩブリッジ４０６ならびにホスト・バス４０２に結合される。ＬＡＮカード４３０など、ホスト・プロセッサ（複数可）４００により単独で使用される装置は、ＰＣＩバス４１０に結合される。サービス・プロセッサ・インターフェースおよびＩＳＡアクセス・パススルー４１２は、ＰＣＩバス４１０とＰＣＩバス４１４の間のインターフェースを提供する。このように、ＰＣＩバス４１４は、ＰＣＩバス４１０から隔離される。フラッシュ・メモリ４１８などの装置は、ＰＣＩバス４１４に結合される。一実装形態では、フラッシュ・メモリ４１８は、様々な低レベルのシステム機能およびシステムのブート機能のために必要なプロセッサ実行可能コードを組み込むＢＩＯＳコードを含む。
【００２６】
ＰＣＩバス４１４は、ホスト・プロセッサ（複数可）４００、およびサービス・プロセッサ４１６により共用される、例えば、フラッシュ・メモリ４１８を含む様々な装置に対するインターフェースを提供する。ＰＣＩ−ＩＳＡブリッジ４３５は、ＰＣＩバス４１４とＩＳＡバス４４０の間の転送、USB（universal serial bus）機能４４５、電力管理機能４５５を処理するためのバス制御を提供し、ＲＴＣ（real-timeclock）、ＤＭＡ制御、割込みサポート、およびシステム管理バス・サポートなど、図示されていない他の機能要素を含むことができる。不揮発性ＲＡＭ４２０は、ＩＳＡバス４４０に接続される。サービス・プロセッサ４１６は、初期化段階中に、プロセッサ（複数可）４００と通信するためのＪＴＡＧおよびＩ２Ｃバス４２２を含む。ＪＴＡＧ／Ｉ２Ｃバス４２２はまた、Ｌ２キャッシュ４０４、ホスト−ＰＣＩブリッジ４０６、および主メモリ４０８に結合されて、プロセッサ、サービス・プロセッサ、Ｌ２キャッシュ、ホスト−ＰＣＩブリッジ、および主メモリ間の通信経路を提供する。サービス・プロセッサ４１６はまた、情報処理装置４０１の電源を切るためのシステム電力資源にアクセスすることができる。
【００２７】
周辺装置および入力／出力（Ｉ／Ｏ）装置は、様々なインターフェースに接続することができる（例えば、ＩＳＡバス４４０に結合される並列インターフェース４６２、シリアル・インターフェース４６４、キーボード・インターフェース４６８、およびマウス・インターフェース４７０）。代替的には、多くのＩ／Ｏ装置を、ＩＳＡバス４４０に接続されたスーパーＩ／Ｏコントローラ（図示せず）により適合させることができる。
【００２８】
ネットワークを介してファイルを複製するように、コンピュータ・システム４０１を他のコンピュータ・システムに接続するために、ＬＡＮカード４３０がＰＣＩバス４１０に結合される。同様に、コンピュータ・システム４０１を、電話回線接続を用いてＩＳＰに接続し、インターネットに接続するために、モデム４７５がシリアル・ポート４６４およびＰＣＩ−ＩＳＡブリッジ４３５に接続される。
【００２９】
図４で述べたコンピュータ・システムは、本明細書で述べるプロセスを実行することができるが、このコンピュータ・システムは、コンピュータ・システムの一例に過ぎない。当業者であれば、多くの他のコンピュータ・システム設計が、本明細書で述べるプロセスを実施できることが理解されよう。
【００３０】
本発明の好ましい実装形態の１つは、クライアント・アプリケーション、すなわち、例えば、コンピュータのランダム・アクセス・メモリに常駐することのできる１組の命令（プログラム・コード）、またはコード・モジュール中の他の機能的な記述要素（material）である。コンピュータにより要求されるまで、その１組の命令は、他のコンピュータ・メモリ中に、例えば、ハードディスク・ドライブ中に、または光ディスク（最終的に、ＣＤ  ＲＯＭで使用する）、もしくはフロッピー（Ｒ）・ディスク（最終的に、フロッピー（Ｒ）・ディスク・ドライブで使用する）などの取外し可能なメモリ中に記憶することができ、あるいはインターネットまたは他のコンピュータ・ネットワークを介してダウンロードすることができる。したがって、本発明は、コンピュータ中で使用されるコンピュータ・プログラム製品として実施することができる。さらに、前述の様々な方法は、便宜的に、ソフトウェアにより選択的に活動化された、または再構成された汎用コンピュータで実施されるが、当業者はさらに、このような方法は、ハードウェアで、ファームウェアで、または必要な方法の諸ステップを実施するように構成された、さらに専用化された装置で実行できることを理解するはずである。機能的な記述要素とは、マシンに機能を伝える情報のことである。機能的な記述要素は、これだけに限らないが、コンピュータ・プログラム、命令、ルール、事実、計算可能な機能の定義、オブジェクト、およびデータ構造を含む。
【００３１】
本発明の特定の実施形態が示され、かつ述べられてきたが、当業者であれば、本明細書の教示に基づいて、本発明およびそのより広い態様から逸脱することなく、変更および修正を加え得ることは自明であろう。したがって、添付の特許請求の範囲は、本発明の真の趣旨および範囲に含まれるすべてのこのような変更および修正をその範囲に包含すべきである。さらに、本発明は、添付の特許請求の範囲によってのみ定義されることを理解されたい。導入される請求項要素の特定の数が意図される場合、このような意図は請求項中で明示的に記載されるものであって、かかる記載がなければこのような限定は存在しないことが当業者であれば理解されよう。理解するための一助としてであるが、限定することのない例の場合、この後に添付される請求項では、請求項要素を導くために、「少なくとも１つの」、および「１つまたは複数の」という導入フレーズの使用を含む。しかし、このようにフレーズを使用することにより、不定冠詞「ａ」または「ａｎ」による請求項要素の導入が、このように導入された請求項要素を含む任意の特定の請求項を、このような要素を１つだけ含む発明に限定することを暗に示すものと解釈されるべきではなく、それは、同じ請求項が、導入フレーズ「１つまたは複数の」もしくは「少なくとも１つの」、および「ａ」もしくは「ａｎ」などの不定冠詞を含む場合であってもそうであり、請求項で定冠詞を使用する場合も同様である。用語「または／あるいは（ｏｒ）」が請求項中で使用される場合、それは、包含的意味で使用される（すなわち、「ＡまたはＢのいずれか」とは反対に、「ＡまたはＢあるいはその両方」）。
【図１】
2010515388.tif 000003
【図２】
2010515388.tif 000004
【図３】
2010515388.tif 000005
【図４】
2010515388.tif 000006
【手続補正書】
【提出日】平成21年7月31日(2009.7.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つまたは複数の第１ホップ・ルータと関連付けられた１組の最大送信ユニット（ＭＴＵ）値を記憶するステップと、
宛先ホストへのネットワーク経路上の第１ホップ・ルータを識別するステップと、
前記識別された第１ホップ・ルータに対応する第１ホップ・ルータの最大送信ユニット値を決定するステップと、
前記ネットワーク経路を介して、前記宛先ホストにデータ・パケットを送信するように試みるステップであり、前記データ・パケットのサイズが、前記第１ホップ・ルータの最大送信ユニット値により定義されるステップと
を含む方法。
【請求項２】
１つまたは複数の第１ホップ・ルータと相関のある最大送信ユニット（ＭＴＵ）値の第１の組を記憶するステップと、
１つまたは複数のホストと相関のある最大送信ユニット値の第２の組を記憶するステップと、
特定の宛先ホストが、前記１つまたは複数のホストの１つであるかどうかを判定するステップと、
前記特定の宛先ホストが、前記１つまたは複数のホストの１つであるとの判定に応じて、経路最大送信ユニット値として使用するために、前記第２の組から値を取り出すステップと、
前記特定の宛先ホストが、前記１つまたは複数のホストの１つではないという判定に応じて、前記経路最大送信ユニット値として使用するために、前記第１の組から値を取り出すステップと、
前記経路最大送信ユニット値により決定されたサイズを有するデータ・パケットを送信するステップと
を含む方法。
【請求項３】
前記ネットワーク経路に対して、実際に必要な経路最大送信ユニット値が、前記決定された最大送信ユニット値よりも小さいかどうか判定するステップと、
前記ネットワーク経路に対する前記実際に必要な経路最大送信ユニット値が、前記決定された最大送信ユニット値よりも小さいという判定に応じて、前記実際に必要な経路最大送信ユニット値を、前記宛先ホストに関連付けられたものとして記憶するステップと
をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記実際に必要な経路最大送信ユニット値が、前記宛先ホストに関連付けられたものとして記憶されているかどうかを判定するステップと、
前記実際に必要な経路最大送信ユニット値が、前記宛先ホストに関連付けられたものとして記憶されているとの判定に応じて、第２のデータ・パケットを前記宛先ホストに送信するステップであり、前記データ・パケットの前記サイズが、前記記憶された実際に必要な経路最大送信ユニット値により定義されるステップと
をさらに含む、請求項３に記載の方法。
【請求項５】
前記実際に必要な経路最大送信ユニット値が、前記宛先ホストに関連付けられたものとして記憶されていないという判定に応じて、前記宛先ホストに第２のデータ・パケットを送信するステップであり、前記データ・パケットの前記サイズが、前記第１ホップ・ルータの最大送信ユニット値により定義されるステップをさらに含む、請求項４に記載の方法。
【請求項６】
超過したパケット・サイズのため、前記データ・パケットが前記宛先ホストに達することに失敗したことを検出するステップと、
超過したパケット・サイズのため、前記データ・パケットが前記宛先ホストに達することに失敗したことを検出したことに応じて、
前記失敗を克服するように、前記データ・パケットの前記サイズを調整するステップと、
前記調整されたデータ・パケットを、前記宛先ホストに再送信するように試みるステップと
をさらに含む、請求項２または３に記載の方法。
【請求項７】
前記調整されたデータ・パケットの前記サイズから、前記ネットワーク経路に対する前記実際に必要な経路最大送信ユニット値を決定するステップをさらに含む、請求項６に記載の方法。
【請求項８】
コンピュータにより実行されたとき、前記コンピュータに、請求項１ないし７のいずれかに記載の方法の各ステップを前記コンピュータに実行させる、コンピュータ・プログラム。
【請求項９】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにアクセス可能なデータ・ストレージと、
前記データ・ストレージ中の１組の命令とを備え、
前記少なくとも１つのプロセッサが、請求項１ないし７のいずれかに記載のアクションを実施するために前記１組の命令を実行するように動作可能であるデータ処理システム。
【国際調査報告】
2010515388.tif 000007
2010515388.tif 000008
2010515388.tif 000009