(57)【特許請求の範囲】
【請求項１】
インターネット・プロトコル通信を行うユーザ端末からのパケットを複数のネットワークに転送するデータ転送装置において、
宛先アドレスと、パケットの転送先とを対応付けする情報を保持するルーティング・テーブルと、
複数のサービスクラスのネットワークの静的及び動的な情報を保持する情報テーブルと、
前記複数のサービスクラスのネットワークの静的及び動的な情報に従って適切なサービスクラスを選択する選択手段とを
有することを特徴とするデータ転送装置。
【請求項２】
インターネット・プロトコル通信を行うユーザ端末からのパケットを複数のネットワークに転送するデータ転送装置において、
宛先アドレスと、パケットの転送先とを対応付けする情報を保持するルーティング・テーブルと、
前記複数のネットワークの静的及び動的な情報を保持する情報テーブルと、
前記複数のネットワークの静的及び動的な情報に従って適切なネットワークを選択する選択手段とを有し、
前記複数のネットワークのいずれかが複数のサービスクラスを持ち、
前記選択手段は、前記複数のネットワーク及び複数のサービスクラスの静的及び動的な情報に従って適切なネットワークの適切なサービスクラスを選択することを特徴とするデータ転送装置。
【請求項３】
請求項１または２記載のデータ転送装置において、
前記ネットワークの状態を監視する監視手段を有し、
前記選択手段は、前記監視手段でネットワークの状態の変化が検出された場合にサービスクラスの変更を行うことを特徴とするデータ転送装置。
【請求項４】
請求項３記載のデータ転送装置において、
前記監視手段でネットワーク状態の変化が検出され前記情報テーブルの動的な情報が変化した場合に、前記情報テーブルを参照して前記ルーティング・テーブルを書き換えるルーティング・テーブル書換手段を
有することを特徴とするデータ転送装置。
【請求項５】
請求項３記載のデータ転送装置において、
前記監視手段は、ネットワークが公開している情報から前記ネットワークの動的な情報を得ることを特徴とするデータ転送装置。
【請求項６】
請求項３記載のデータ転送装置において、
前記監視手段は、情報収集のためのパケットを送信してネットワークの動的な情報を得ることを特徴とするデータ転送装置。
【請求項７】
請求項６記載のデータ転送装置において、
前記監視手段は、ＴＣＰ／ＩＰ通信を行っている場合、情報収集のためのメッセージパケットを宛先に送信し、前記宛先から前記メッセージパケットに対する確認応答を受信して前記宛先までのネットワークの動的な情報としての混雑度を得ることを特徴とするデータ転送装置。
【請求項８】
請求項６記載のデータ転送装置において、
前記監視手段は、情報収集のためＩＣＭＰタイムスタンプ要求メッセージを宛先に送信し、前記宛先から返送されるＩＣＭＰタイムスタンプ応答メッセージを受信して前記ＩＣＭＰタイムスタンプ応答メッセージのタイムスタンプから前記宛先までのネットワークの動的な情報としての混雑度を得ることを特徴とするデータ転送装置。
【請求項９】
インターネット・プロトコル通信を行うユーザ端末からのパケットを複数のネットワークに転送するデータ転送方法において、
宛先アドレスと、パケットの転送先とを対応付けする情報をルーティング・テーブルに保持し、
複数のサービスクラスのネットワークの静的及び動的な情報を情報テーブルに保持し、
前記複数のサービスクラスのネットワークの静的及び動的な情報に従って適切なサービスクラスを選択する
ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送方法及びその装置に関し、特に、ネットワーク及びサービスクラスを選択してＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）通信を行うデータ転送方法及びその装置に関する。
【０００２】
【従来の技術】
近年、インターネットの爆発的な普及に伴い、インターネットの接続サービスを行っているＩＰＳ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）の数が急増している。こうした状況では、ユーザが複数のＩＳＰと契約する場合も考えられる。またＩＳＰの数が増加すると、他ＩＳＰとの差別化を図るために、現在ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）で標準化が進められているＩＰネットワーク上での差別化サービス（Ｄｉｆｆｅｒｅｎｔａｉｔｅｄ  Ｓｅｒｖｉｃｅ）をサポートするＩＳＰもあるかもしれないし、今後差別化サービスをサポートするＩＳＰが増えることは十分に予想される。また将来、ネットワークの混雑度に応じて課金体系が変わるようなことがあるかもしれない。
【０００３】
ここで、差別化サービスとは、現在等しくベスト・エフォートで転送されているＩＰデータを、ＩＰヘッダの一部、例えばＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４）のＴＯＳフィールド、あるいはＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６）のトラフィック・クラス・オクテットに、優先度を示すコードＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔａｉｔｅｄ  Ｓｅｒｖｉｃｅ  Ｃｏｄｅ  Ｐｏｉｎｔ）を書き込むことにより、データ毎の差別化サービスを実現するものである。
【０００４】
差別化サービスがサポートされると、少なくとも同一のドメインでは（将来的にはドメインを越えるデータに関しても）ＩＰネットワーク上の差別化サービスが実現できると期待されている。差別化サービスでは、ＰＨＢ（Ｐｅｒ  ＨｏｐＢｅｈａｖｉｏｕｒ）という、いわゆるサービスクラスが定義されており、現在、ＥＦ−ＰＨＢ（Ｅｘｐｅｄｉｔｅｄ  Ｆｏｒｗａｒｄｉｎｇ  ＰＨＢ）、ＡＦ−ＰＨＢ（Ａｓｓｕｒｅｄ  Ｆｏｒｗａｒｄｉｎｇ  ＰＨＢ）が提案され、標準化が進められている。ＥＦ−ＰＨＢは最も高い優先度を持つ。ＥＦ−ＰＨＢよりも優先度の低いＡＦ−ＰＨＢは、その中にさらに４つの優先度クラスを持ち、ＡＦ１，ＡＦ２，ＡＦ３，ＡＦ４の順に優先度が高い。ＡＦ−ＰＨＢはベスト・エフォート・サービスよりも優先度は高いが、ネットワークの輻輳時には廃棄される場合もある。
【０００５】
ユーザが複数のＩＳＰと契約した場合、「どのネットワーク及びどのサービスクラスを使うと最も効率よくデータが転送できるか」は、大きな関心事である。差別化サービスのサービスクラスの内容等の静的な情報については事前に検討を行うことができる。しかし、混雑度等のネットワークの現在の状況を示す動的な情報については、これまでネットワークが内部のそうした情報を公開していないために選択する手段がなかったり、あるいはネットワーク内のそうした情報が公開されている場合でも、データ転送装置自身に選択する手段がないために、ユーザ自らが判断してネットワーク及びサービスクラスの選択を行っていた。また、サービスクラスの変更も手動で設定する必要があった。このため、最も効率のよいデータ転送のためのネットワーク及びサービスクラスの選択を自動的に行う機能を持つデータ転送装置が必要とされていた。
【０００６】
図１は、従来のデータ転送装置の構成図、図２はそのシステム構成図、図３はその動作のフローチャートを示す。図１において、データ転送装置は、入力されたデータを格納するためのバッファ１１、入力されたデータのネットワーク層のアドレス情報と転送先であるデータ転送装置あるいはホストの対応付けを保持しているルーティング・テーブル１２、ルーティング・テーブル１２を参照して最適経路を判断する経路選択装置１３、出力インターフェース１４、出力ポート１５から構成される。
【０００７】
データ転送装置の基本的な機能は、宛先ＩＰアドレスを基にしてルーティング・テーブル１２を検索し、転送すべき次のデータ転送装置やホストに向けてデータを送出することである。ユーザから送信されたデータが到着した場合、データ転送装置は図３に示すように動作する。まず、受信したデータをバッファ１１に格納する。次いで、宛先ＩＰアドレスのネットワーク・アドレス部を基に、ルーティング・テーブル１２から次ホップ（段）のデータ転送装置あるいはホストを検索し、該当するデータ転送装置あるいはホストが接続された出力ポートを求める。次ホップのデータ転送装置あるいはホストが接続されている出力ポートから、バッファ１１内のデータを送出する。
【０００８】
ルーティング・テーブル１２の作成法には静的なものと動的なものがある。静的な作成法は、ネットワークの管理者などが固定値をテーブルに設定する方式である。この方式は、データ転送装置の負荷を減らすことができ、セキュリティ管理や障害検出が容易という利点はあるが、ネットワークの構成が変更するたびに関連するデータ転送装置の固定値を変更する必要があるため、管理者の負担が大きくなるという欠点がある。
【０００９】
動的な作成法は、データ転送装置が把握しているネットワーク状態を互いに交換して、ルーティング・テーブルを作成する方式である。各データ転送装置は、入手した情報を基に、自律的にネットワーク状態に対応した最適な経路を算出してテーブルを動的に作成する。これにより、ネットワークの一部に障害が発生しても、残りの正常な部分が自律的に動作し、ネットワークを自動的に再構成または新たな経路を見つけ出し、通信を継続する。また、データ転送装置間でネットワーク状態を情報交換するために、ルーティング・プロトコルが用いられる。
【００１０】
【発明が解決しようとする課題】
ユーザが複数のＩＳＰと契約している場合、「どのネットワークに接続すれば最も効率が良いか」は、大きな関心事である。ＩＳＰネットワーク内の混雑状況の情報は、時々刻々変化する動的な情報であるが、従来のデータ転送装置は、こうしたネットワークの現在の状況を示す情報を入手し、保持し、これら情報を基に最適経路を判断する手段を持っていないため、ユーザ自らが判断してネットワークの選択を行わなければならなかった。
【００１１】
ＩＳＰが自ネットワークの混雑度状況等の動的な情報を公開していない場合、ユーザはネットワークが提供しているサービスクラスの内容だけでその接続を判断してしまうかもしれず、必ずしも最適なネットワークが選択できないという問題点があった。例えば、ユーザは、図２に示すデータ転送装置１０から、有料サービスである差別化サービスに対応している例えばＩＳＰ−ＡのＡＦ−ＰＨＢでデータを転送しようとしたが、実際はその経路が非常に混んでいて、差別化サービスに対応していない例えばＩＳＰ−Ｂのベスト・エフォート転送の経路の方が早かったという場合も起こり得る。
【００１２】
ネットワークが混雑状況等のネットワークの現在の状況を示す情報を公開している場合でも、従来のデータ転送装置にはこうした情報を入手し保持しておく手段を持っていないために、複数のネットワークからどれを選択するかはユーザ自身が決定し、設定しなければならないという問題点もあった。
【００１３】
また、ネットワークに複数のサービスクラスが提供されている場合、サービスクラスについての静的・動的な情報を入手し保持しておく手段を持っていないため、従来のデータ転送装置はサービスクラスの選択を行う機能も持つことができなかった。このため、サービスクラスの選択及び設定もユーザが手動で行わなければならないという問題点もあった。
【００１４】
このようにユーザが設定を行う場合、ネットワークの状況が変化に応じて最適な経路やサービスクラスに変更することは、ユーザにとって負担が大きく、また常に最適な経路やサービスクラスが選択できないかもしれないという問題点もあった。
【００１５】
本発明は、上記の点に鑑みなされたものであり、適切なネットワークあるいはサービスクラスを用いてユーザのデータ転送を行うことができ、また、ネットワークの状況の変化に応じて適切なネットワークあるいはサービスクラスに変更することができるデータ転送方法及びその装置を提供することを目的とする。
【００１６】
【課題を解決するための手段】
請求項１に記載の発明は、インターネット・プロトコル通信を行うユーザ端末からのパケットを複数のネットワークに転送するデータ転送装置において、
宛先アドレスと、パケットの転送先とを対応付けする情報を保持するルーティング・テーブルと、
複数のサービスクラスのネットワークの静的及び動的な情報を保持する情報テーブルと、
前記複数のサービスクラスのネットワークの静的及び動的な情報に従って適切なネットワークを選択する選択手段とを有する。
【００１９】
このように、複数のサービスクラスのネットワークの静的及び動的な情報に従って適切なサービスクラスを選択するため、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【００２０】
請求項２に記載の発明は、インターネット・プロトコル通信を行うユーザ端末からのパケットを複数のネットワークに転送するデータ転送装置において、
宛先アドレスと、パケットの転送先とを対応付けする情報を保持するルーティング・テーブルと、
前記複数のネットワークの静的及び動的な情報を保持する情報テーブルと、
前記複数のネットワークの静的及び動的な情報に従って適切なネットワークを選択する選択手段とを有し、
前記複数のネットワークのいずれかが複数のサービスクラスを持ち、
前記選択手段は、前記複数のネットワーク及び複数のサービスクラスの静的及び動的な情報に従って適切なネットワークの適切なサービスクラスを選択する。
【００２１】
このように、複数のネットワーク及び複数のサービスクラスの静的及び動的な情報に従って適切なネットワークを選択するため、適切なネットワークの適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【００２２】
請求項３に記載の発明は、請求項１または２記載のデータ転送装置において、  前記ネットワークの状態を監視する監視手段を有し、
前記選択手段は、前記監視手段でネットワークの状態の変化が検出された場合にサービスクラスの変更を行う。
【００２３】
このように、ネットワークの状態を監視し、状態の変化が検出された場合にサービスクラスの変更を行うため、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【００２４】
請求項４に記載の発明は、請求項３記載のデータ転送装置において、
前記監視手段でネットワーク状態の変化が検出され前記情報テーブルの動的な情報が変化した場合に、前記情報テーブルを参照して前記ルーティング・テーブルを書き換えるルーティング・テーブル書換手段を有する。
【００２５】
このように、ネットワーク状態の変化が検出され情報テーブルの動的な情報が変化した場合に、情報テーブルを参照し、その動的な情報に応じてルーティング・テーブルを書き換えるため、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【００２６】
請求項５に記載の発明は、請求項３記載のデータ転送装置において、
前記監視手段は、ネットワークが公開している情報から前記ネットワークの動的な情報を得る。
【００２７】
このように、ネットワークが公開している情報からネットワークの動的な情報を得るため、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【００２８】
請求項６に記載の発明は、請求項３記載のデータ転送装置において、
前記監視手段は、情報収集のためのパケットを送信してネットワークの動的な情報を得る。
【００２９】
このように、情報収集のためのパケットを送信してネットワークの動的な情報を得るため、ネットワークが情報を公開していない場合にも、ネットワークの動的な情報を得ることができ、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【００３０】
請求項７に記載の発明は、請求項６記載のデータ転送装置において、
前記監視手段は、ＴＣＰ／ＩＰ通信を行っている場合、情報収集のためのメッセージパケットを宛先に送信し、前記宛先から前記メッセージパケットに対する確認応答を受信して前記宛先までのネットワークの動的な情報としての混雑度を得る。
【００３１】
このように、ＴＣＰ／ＩＰ通信を行っている場合、情報収集のためのメッセージパケットを宛先に送信し、宛先から前記メッセージパケットに対する確認応答を受信して宛先までのネットワークの動的な情報としての混雑度を得ることにより、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【００３２】
請求項８に記載の発明は、請求項６記載のデータ転送装置において、
前記監視手段は、情報収集のためＩＣＭＰタイムスタンプ要求メッセージを宛先に送信し、前記宛先から返送されるＩＣＭＰタイムスタンプ応答メッセージを受信して前記ＩＣＭＰタイムスタンプ応答メッセージのタイムスタンプから前記宛先までのネットワークの動的な情報としての混雑度を得ることを特徴とするデータ転送装置。
【００３３】
このように、情報収集のためＩＣＭＰタイムスタンプ要求メッセージを宛先に送信し、宛先から返送されるＩＣＭＰタイムスタンプ応答メッセージを受信して前記ＩＣＭＰタイムスタンプ応答メッセージのタイムスタンプから宛先までのネットワークの動的な情報としての混雑度を得ることにより、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【００３６】
請求項９に記載の発明は、インターネット・プロトコル通信を行うユーザ端末からのパケットを複数のネットワークに転送するデータ転送方法において、
宛先アドレスと、パケットの転送先とを対応付けする情報をルーティング・テーブルに保持し、
複数のサービスクラスのネットワークの静的及び動的な情報を情報テーブルに保持し、
前記複数のサービスクラスのネットワークの静的及び動的な情報に従って適切なサービスクラスを選択する。
【００３７】
このように、複数のサービスクラスのネットワークの静的及び動的な情報に従って適切なサービスクラスを選択するため、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【発明の実施の形態】
図４は本発明のデータ転送装置の第１実施例の構成図、図５はそのシステム構成図及びテーブル構成図、図６はその動作のフローチャートを示す。図４において、データ転送装置２０は、入力されたデータを格納するためのバッファ２１、入力されたデータのネットワーク層のアドレス情報と転送先であるデータ転送装置あるいはホストの対応付けを保持しているルーティング・テーブル２２、自装置が接続されているネットワークの静的な情報及び動的な情報を保持している情報テーブル２６、ルーティング・テーブル２２及び情報テーブル２６を参照して最適経路を判断する経路選択装置２３、出力インターフェース２４、出力ポート２５、ルーティング・テーブル２２及び情報テーブル２６を管理するテーブル管理部２８から構成されている。
【００３８】
図５（Ａ）において、データ転送装置２０は、ＩＳＰ−＃１，ＩＳＰ−＃２に接続されている。ここでは２つのＩＳＰに接続された場合を例としているが、データ転送装置２０に接統されるＩＳＰの数はいくつでもよい。データ転送装置２０は、自装置が接続されているすぺてのネットワークの課金情報等の静的な情報を情報テーブル２６に保持している。
【００３９】
図５（Ｂ），（Ｃ）は、ルーティング・テーブル２２，情報テーブル２６の一例を示す。ルーティング・テーブル２２は、宛先、ホストとネットワークの区別、次ホップ、出力ポート、最適ルートが登録されている。なお、最適ルートは「＊」で示している。情報テーブル２６は、宛先、経由ネットワーク、メッセージパケット返送時間、課金情報が登録されている。
【００４０】
図６において、データ転送装置２０は、当初、ネットワーク構成等の静的な情報を入手して情報テーブル２６に保持しておく（ステップＳ１０，Ｓ１１）。ユーザからのデータを受信すると（ステップＳ１２）、このユーザ端末からのデータ（宛先Ｘとする）をバッファ２１に格納する（ステップＳ１４）。
【００４１】
ＩＳＰがネットワークの混雑度等の動的な情報を公開している場合は、テーブル管理部２８は、これを定期的に受信して情報テーブル２６に保持しておく（ステップＳ１６，Ｓ１８，Ｓ２０）。なお、ネットワークの混雑度等の動的な情報が未公開等の理由で入手されていない場合については後述する。
【００４２】
経路選択装置２３は、入力データの宛先アドレスから、ルーティング・テーブル２２及び情報テーブル２６を参照する（ステップＳ２２）。次いで経路選択装置２３は、ルーティング・テーブル２２及び情報テーブル２６に書き込まれたデータから最適な経路を判断する（ステップＳ２４）。図５（Ｃ）の情報テーブル２６では、課金情報がＩＳＰ−＃１とＩＳＰ−＃２では同じなので、転送時間の短いＩＳＰ−＃１の経路が最適と判断できる。経路選択後、次ホップのデータ転送装置あるいはホストが接続された出力ポートを求める（ステップＳ２６）。図５（Ｂ）のルーティング・テーブル２２では、出力ポート＃１が選択される。
【００４３】
次いで、次ホップのデータ転送装置あるいはホストが接続されている出力ポート＃１から、バッファ２１内のデータを送出する（ステップＳ２８）。ここで、経路選択装置２３は、ＣＰＵで構成される場合もあるし、専用ハードウエアで構成される場合も有り得る。
【００４４】
このように、データ転送装置２０内に情報テーブル２６を持ち、情報テーブルにネットワークの静的及び動的な情報を保持しておき、実際にデータを転送する際に、この情報を参照して経路を決定することにより、ユーザにとって最適なネットワークの経路をデータ転送装置２０自身が選択することができる。
【００４５】
図７は本発明のデータ転送装置の第２実施例の構成図、図８はそのシステム構成図及びテーブル構成図を示す。図７において、データ転送装置２０は、入力されたデータを格納するためのバッファ２１、入力されたデータのネットワーク層のアドレス情報と転送先であるデータ転送装置あるいはホストの対応付けを保持しているルーティング・テーブル２２、自装置が接続されているネットワークの課金情報等の静的な情報及び動的な情報を保持している情報テーブル２６、ルーティング・テーブル２２及び情報テーブル２６を参照して差別化サービスにおける最適クラスを判断するクラス選択装置３０、出力インターフェース２４、出力ポート２５、ルーティング・テーブル２２及び情報テーブル２６を管理するテーブル管理部２８から構成されている。
【００４６】
図８（Ａ）において、データ転送装置２０は、差別化サービスに対応したＩＳＰ−＃１に接続されている。ここでは複数のサービスクラスを持つ例として差別化サービスをあげているが、差別化サービスに限定されるものではない。データ転送装置２０は、自装置が接続されているすぺてのネットワークの課金情報、サービスクラス内容等の静的な情報を情報テーブル２６に保持している。また、ＩＳＰが混雑度等の動的な情報を公開している場合は、これを定期的に受信して、これも情報テーブル２６に保持しておく。
【００４７】
図８（Ｂ），（Ｃ）は、ルーティング・テーブル２２，情報テーブル２６の一例を示す。ルーティング・テーブル２２は、宛先、ホストとネットワークの区別、次ホップ、出力ポート、サービスクラス、速度と課金による最適ルートが登録されている。なお、最適ルートは「＊」で示している。情報テーブル２６は、宛先、経由ネットワーク、メッセージパケット返送時間、課金情報、速度優先時の値、課金優先時の値が登録されている。
【００４８】
ユーザからのデータを受信すると、データ転送装置２０は以下のように動作する。まず、ユーザ端末から送信されたデータ（宛先Ｘとする）を、バッファ２１に格納する。クラス選択装置３０は、入力データの宛先アドレスまたはＩＰヘッダに書かれているポート番号等の情報から、ルーティング・テーブル２２及び情報テーブル２６を参照する。ポート番号を認識することにより、ポート番号から認識できるアプリケーション毎にサービスクラスを設定することも可能である。例えばＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）であれば転送速度よりも課金情報を重視する、動画像データであれば転送速度を重視する等をユーザが設定できる。
【００４９】
各サービスクラスの混雑度等の動的な情報が未公開等の理由で入手されていない場合は、後述の手段で情報を入手し、情報テーブル２６に書き込む。次いでクラス選択装置３０は、情報テーブル２６に書き込まれたデータから最適なクラスを判断してクラスを設定し、必要であればＩＰヘッダの書き換えを行い、ルーティング・テーブル２２を参照して得た出力ポート２５からバッファ２１内のデータを送出する。
【００５０】
ここで、クラス選択装置３０は、ＣＰＵで構成される場合もあるし、専用ハードウエアで構成される場合も有り得る。また、何を最適と判断するかは、例えば以下のような式を用い、α，βに適当な値を入れることによりユーザが設定できる。
【００５１】
選択クラス＝転送時間×α＋課金×β
但し、α＋β＝１
差別化サービスの場合は、選択されたクラスの値ＩＰヘッダのＤＳＣＰフィールドに書き込む過程が必要となる。
【００５２】
このように、データ転送装置２０内に情報テーブル２６を持ち、情報テーブル２６にネットワークのサービスクラスの静的及び動的な情報を保持しておき、実際にデータを転送する際にこの情報を参照してクラスを決定することにより、ユーザにとって最適なサービスクラスをデータ転送装置２０自身が選択することができる。
【００５３】
図９は本発明のデータ転送装置の第３実施例の動作のフローチャート、図１０はそのテーブル構成図を示す。この実施例の構成、及び最適クラスの選択、設定、データ送出に至るまでの過程は第２実施例と同じである。
【００５４】
データ転送装置２０は、データ転送中においても図９に示す動作を定期的に実行する。図９において、データ転送装置２０のテーブル管理部２８は、ステップＳ３０でネットワークの動的な情報を入手してネットワーク状態を把握する。クラス選択装置３０は、ステップＳ３２で情報テーブル２６を参照してその時点で最適なクラスを判断する。ネットワークの状態が変化し、ステップＳ３４で最適と判断されるサービスクラスが現設定と異なる場合は、ステップＳ３６でクラス選択装置３０はルーティング・テーブル２２における最適送信クラスの変更を行う。この処理はデータ転送の途中であっても実行される。
【００５５】
例えばルーティング・テーブル２２，情報テーブル２６が図１０（Ｂ），（Ｃ）に示す内容で速度優先の場合は、宛先Ｘへのデータ転送はＡＦ−ＰＨＢでの転送が最適であったが、ネットワークが混雑してきたことにより、ルーティング・テーブル２２，情報テーブル２６が図１０（Ａ），（Ｂ）に示す内容に変更されて、速度優先の最適ルートも図１０（Ａ）に示すようにＥＦ−ＰＨＢでの転送が最適となっている。
【００５６】
このように、データ転送中にもネットワークの状態を監視し、ネットワークの状態が変化した場合には最適なサービスクラスに変更することにより、ネットワークの状態が変化した場合でも常にユーザにとって最適なネットワークをデータ転送装置２０自身で選択できる。この方法は、パケット長の長いデータを送信するときに特に有効である。
【００５７】
図１１は本発明のデータ転送装置の第４実施例の構成図、図１２はそのシステム構成図及びテーブル構成図を示す。図１１において、データ転送装置２０は、入力されたデータを格納するためのバッファ２１、入力されたデータのネットワーク層のアドレス情報と転送先であるデータ転送装置あるいはホストの対応付けを保持しているルーティング・テーブル２２、自装置が接続されているネットワークの課金情報等の静的な情報及び動的な情報を保持している情報テーブル２６、ルーティング・テーブル２２及び情報テーブル２６を参照して差別化サービスにおける最適の経路及びクラスを判断する経路・クラス選択装置３２、出力インターフェース２４、出力ポート２５、ルーティング・テーブル２２及び情報テーブル２６を管理するテーブル管理部２８から構成されている。
【００５８】
図１２（Ａ）において、データ転送装置２０は、ＩＳＰ−＃１，ＩＳＰ−＃２に接統されており、ＩＳＰ−＃１は差別化サービスに対応して３つのサービスクラスを提供し、ＩＳＰ−＃２は差別化サービスに対応しておらず１つのサービスクラスしか持たないものとする。これは一例であり、ＩＳＰの数及びサービスクラスの数はいくつであっても良い。データ転送装置２０は自装置が接続されているすぺてのネットワークの課金情報、サービスクラス内容等の静的な情報を情報テーブル２６に保持している。また、ＩＳＰが混雑度等の動的な情報を公開している場合は、これを定期的に受信して、これも情報テーブル２６に保持しておく。
【００５９】
図１２（Ｂ），（Ｃ）は、ルーティング・テーブル２２，情報テーブル２６の一例を示す。ルーティング・テーブル２２は、宛先、ホストとネットワークの区別、次ホップ、出力ポート、サービスクラス、速度と課金による最適ルートが登録されている。なお、最適ルートは「＊」で示している。情報テーブル２６は、宛先、経由ネットワーク、メッセージパケット返送時間、課金情報、速度優先時の値、課金優先時の値が登録されている。
【００６０】
ユーザからのデータを受信すると、データ転送装置２０は以下のように動作する。まず、ユーザ端末から送信されたデータ（宛先Ｘとする）を、バッファ２１に格納する。経路・クラス選択装置３２は、入力データの宛先アドレスまたはＩＰヘッダに書かれているポート番号等の情報から、ルーティング・テーブル２２及び情報テーブル２６を参照する。ポート番号を認識することにより、ポート番号から認識できるアプリケーション毎にサービスクラスを設定することも可能である。例えばＦＴＰであれば転送速度よりも課金情報を重視し、動画像データであれば転送速度を重視する等をユーザが設定できる。
【００６１】
ネットワーク及びサービスクラスの混雑度等の動的な情報が未公開等の理由で入手されていない場合は、後述の手段で情報を入手し、情報テーブル２６に書き込む。次いで経路・クラス選択装置３２は、情報テーブル２６に書き込まれたデータから最適な経路及びクラスを判断して、次ホップのデータ転送装置２０あるいはホストが接続された出力ポートを求める。必要であれば入力データのＩＰヘッダを書き換え、次のポップのデータ転送装置あるいはホストが接続されている出力ポート２５からバッファ２１内のデータを送出する。ここで、経路・クラス選択装置３２は、ＣＰＵで構成される場合もあるし、専用ハードウエアで構成される場合も有り得る。
【００６２】
情報テーブル２６が図１２（Ｃ）の場合、メッセージパケット返送時間による混雑度だけから判断するとＩＳＰ−＃１のＥＦ−ＰＨＢで送信するのが最速であるが、課金情報も考慮すると、ＩＳＰ−＃２のベスト・エフォートで送信するのが適当と判断することができる。何を判断のポイントとするかは、情報テーブル２６の値に重み付けを行うことにより、ユーザが設定できる。
【００６３】
このように、データ転送装置内に情報テーブルを持ち、情報テーブルにネットワークの静的及び動的な情報を保持しておき、実際にデータを転送する際にこの情報を参照して経路及びサービスクラスを決定することにより、ユーザにとって最適なネットワーク及びそのサービスクラスをデータ転送装置２０自身が選択できる。
【００６４】
図１３は本発明のデータ転送装置の第５実施例におけるテーブル構成図を示す。この実施例の構成、及び最適クラスの選択、設定、データ送出に至るまでの過程は第４実施例と同じである。
【００６５】
データ転送装置２０は、宛先Ｘへのデータ転送中に、定期的にネットワークの状態を把握する。経路・クラス選択装置３２は、定期的にルーティング・テーブル２２及び情報テーブル２６を参照して、その時点で最適な経路及びクラスを判断する。ネットワークの状態が変化し、最適と判断される経路及びサービスクラスが現設定と異なる場合は、経路・クラス選択装置３２は経路及びクラスの変更を行い、必要であれば転送するデータのＩＰヘッダの書き換えを行って、データを転送する。
【００６６】
例えばルーティング・テーブル２２，情報テーブル２６が図１２（Ｂ），（Ｃ）に示す内容で速度優先の場合は、宛先Ｘへのデータ転送はＩＳＰ＃１のＡＦ−ＰＨＢでの転送が最適であったが、ネットワークが混雑してきたことにより、ルーティング・テーブル２２，情報テーブル２６が図１３（Ｂ），（Ｃ）に示す内容に変更されて、速度優先の最適ルートも図１３（Ｂ）に示すようにＩＳＰ＃２のベスト・エフォートでの転送が最適となっている。
【００６７】
このように、データ転送中にもネットワークの状態を監視し、ネットワークの状態が変化した場合には最適なネットワーク及びサービスクラスに変更することにより、ネットワークの状態が変化した場合でも常にユーザにとって最適なネットワーク及びサービスクラスをデータ転送装置２０自身で選択できる。この方法は、パケット長の長いデータを送信するときに特に有効である。
【００６８】
次に、図１２に示す構成におけるテーブル参照動作について説明する。図１４は、本発明のデータ転送装置の第６実施例の動作のフローチャートを示す。
【００６９】
この動作に先立ち、情報テーブル２６にはネットワークＩＳＰ＃１，ＩＳＰ＃２の課金情報、サービスクラス内容等の静的な情報を入手し保持しておく。ＩＳＰが混雑度等の動的な情報を公開している場合は、これを定期的に受信して情報テーブル２６に保持しておく。ルーティング・テーブル２２は、情報テーブル２６が変更されるたぴにこれを参照し、その値を参考にして最適経路の書き換えを行う。ネットワークの混雑度等の動的な情報が未公開等の理由で入手されていない場合は、ルーティング・テーブル２２は最適経路を決定しないようにしておく。
【００７０】
図１４において、データ転送装置２０はステップＳ４０でユーザからのデータを受信すると、このデータ（宛先Ｘとする）をバッファ２１に格納する。経路・クラス選択装置３２は、ステップＳ４２で入力データの宛先アドレスからルーティング・テーブル２２のみを参照して最適な経路を得る。ネットワークの混雑度等の動的な情報が未公開等の理由で入手されておらず、ルーティング・テーブル２２が完成されていない場合はステップＳ４４からステップＳ４６に進んで情報テーブル２６を参照する。
【００７１】
次に、ステップＳ４８で動的な情報が入手されているか否かを判別し、入手されていなければステップＳ５０でテーブル管理部２８は動的な情報を入手してステップＳ５２で情報テーブル２６に書き込む。その後、ステップＳ５４で情報テーブル２６を参照してルーティング・テーブル２２における最適経路の決定してルーティング・テーブル２２に書き込む。次いで経路・クラス選択装置３２は、ステップＳ５５で入力データの宛先アドレスからルーティング・テーブル２２のみを参照して最適な経路を得る。
【００７２】
この後、ステップＳ５６でルーティング・テーブル２２の参照結果から次ホップのデータ転送装置あるいはホストが接続された出力ポートを求め、ステップＳ５８で次ホップのデータ転送装置あるいはホストが接続されている出力ポートからバッファ２１内のデータを送出する。
【００７３】
このように、情報テーブル２６を参照してルーティング・テーブル２２を書き換えることにより、ルーティング・テーブル２２のみを参照するだけで、常にユーザにとって最適なネットワークをデータ転送装置２０自身で選択することができる。
【００７４】
図１５は本発明のデータ転送装置の第７実施例の動作のフローチャートを示す。この実施例はユーザ端末に接続されているネットワークが、混雑度等のネットワークの現在の状況を示す動的な情報を公開している場合を示している。
【００７５】
図１５において、データ転送装置２０のテーブル管理部２８は、当初ステップＳ６０でネットワーク構成等の静的な情報を入手してステップＳ６２で情報テーブル２６に保持しておく。また、ステップＳ６４でテーブル管理部２８は動的な情報を入手してステップＳ６６で情報テーブル２６に書き込む。次に、ステップＳ６８で情報テーブル２６の書き込みから所定時間経過したか否かを判別し、所定時間経過している場合はステップＳ６４に進み、所定時間経過していない場合はステップＳ７０に進む。
【００７６】
ステップＳ７０でユーザからのデータを受信すると、ステップＳ７２でこのユーザ端末からのデータをバッファ２１に格納する。次に、ステップＳ７４で情報テーブル２６及びルーティング・テーブル２２を参照して最適な経路を得る。この後、ステップＳ７６で上記の参照結果から次ホップのデータ転送装置あるいはホストが接続された出力ポートを求め、ステップＳ７８で次ホップのデータ転送装置あるいはホストが接続されている出力ポートを決定し、ステップＳ８０でこの決定した出力ポートからバッファ２１内のデータを送出する。
【００７７】
図１６は本発明のデータ転送装置の第８実施例の動作のフローチャートを示す。この実施例はユーザ端末に接続されているネットワークが、混雑度等のネットワークの現在の状況を示す動的な情報を公開していない場合を示している。なお、図１６中、図１４と同一部分には同一符号を付す。
【００７８】
図１６において、データ転送装置２０はステップＳ４０でユーザからのデータを受信すると、このデータ（宛先Ｘとする）をバッファ２１に格納する。経路・クラス選択装置３２は、ステップＳ４２で入力データの宛先アドレスからルーティング・テーブル２２のみを参照して最適な経路を得る。ネットワークの混雑度等の動的な情報が未公開等の理由で入手されておらず、ルーティング・テーブル２２が完成されていない場合はステップＳ４４からステップＳ４６に進んで情報テーブル２６を参照する。
【００７９】
次に、ステップＳ４８で動的な情報が入手されているか否かを判別し、入手されていなければ、ステップＳ８２でルーティング・テーブル２２を参照し、接続されている各ネットワーク／サービスクラス経由で、情報収集のためのメッセージパケットを宛先アドレスに送信する。そして、ステップＳ８４で、このメッセージパケットに対する応答などにより各ネットワーク／サービスクラスの動的な情報を算出する。なお、経由するネットワークを指定する方法としては、ＩＰヘッダのオプションであるソース・ルーティング（宛先までにデータが通過するルートを指定するオプション）を使用する。
【００８０】
次に、ステップＳ５２でテーブル管理部２８は情報テーブル２６に書き込む。その後、ステップＳ５４で情報テーブル２６を参照してルーティング・テーブル２２における最適経路の決定してルーティング・テーブル２２に書き込む。次いで経路・クラス選択装置３２は、ステップＳ５５で入力データの宛先アドレスからルーティング・テーブル２２のみを参照して最適な経路を得る。
【００８１】
この後、ステップＳ５６でルーティング・テーブル２２の参照結果から次ホップのデータ転送装置あるいはホストが接続された出力ポートを求め、ステップＳ５８で次ホップのデータ転送装置あるいはホストが接続されている出力ポートからバッファ２１内のデータを送出する。
【００８２】
このように、メッセージパケットを用いて自ら動的な情報を入手することで、動的な情報が未公開の場合でも、常に最適なネットワークを選択することが可能となる。この動的な情報の入手について、更に詳しく説明する。
【００８３】
図１７は本発明のデータ転送装置の第９実施例のシステム構成図及びテーブル構成図、図１８はその動作のフローチャートを示す。
【００８４】
図１７（Ａ）において、データ転送装置２０は、ＩＳＰ−＃１，ＩＳＰ−＃２に接統されており、ＩＳＰ−＃１は差別化サービスに対応して３つのサービスクラスを提供し、ＩＳＰ−＃２は差別化サービスに対応しておらず１つのサービスクラスしか持たないものとする。データ転送装置２０は自装置が接続されているすぺてのネットワークの課金情報、サービスクラス内容等の静的な情報及び混雑度等の動的な情報を情報テーブル２６に保持する。
【００８５】
データ転送装置２０は、ネットワークが混雑度情報を公開していない場合、図１８に示すステップＳ１００でメッセージパケットを作成し、ルーティング・テーブル２２を参照して接続されている各ネットワーク／サービスクラス経由で、メッセージパケットを宛先アドレスに送信する（ステップＳ１０１，Ｓ１１１）。図１７（Ａ）の例では、ＩＳＰ−＃１のデータ転送装置４１，４２経由、ＩＳＰ−＃２のデータ転送装置４３，４４経由の２つの経路でメッセージパケットを送信する。そして送信時刻を記憶する（ステップＳ１０２，Ｓ１１２）。
【００８６】
ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）通信を行っている場合、メッセージパケットを受信（ステップＳ１０３，Ｓ１１３）した宛先Ｘのデータ転送装置あるいはホストは、ＡＣＫ（確認応答）を送信元データ転送装置に返送する（ステップＳ１０４，Ｓ１１４）。送信元データ送信装置２０は、返送されてきたＡＣＫを受信して（ステップＳ１０５，Ｓ１１５）、その到着した時刻を保持し（ステップＳ１０６，Ｓ１１６）、メッセージパケットを送信した時刻からの差を算出して（ステップＳ１０７，Ｓ１１７）、転送時間として図１７（Ｂ）に示す情報テーブル２６に保持する（ステップＳ１１８）。なお、ステップＳ１０１〜Ｓ１０７とステップＳ１１１〜Ｓ１１７は同時に実行される。
【００８７】
経路・クラス転送装置３２は、転送時間情報を混雑度情報として参照する。転送時間が小さいほど、混雑度は小さいと判断できる。このように、ＴＣＰのＡＣＫを利用することにより、ネットワークの混雑度情報が公開されていない場合でもこれらの情報を得ることができ、ＴＣＰ／ＩＰ通信では必ず使用されるＴＣＰのＡＣＫを利用することで、本発明を既存のデータ転送装置に適用することが容易となる。
【００８８】
図１９は本発明のデータ転送装置の第１０実施例のシステム構成図及びＩＰヘッダ構成図、図２０はその動作のフローチャートを示す。
【００８９】
図１９（Ａ）において、データ転送装置２０は、ＩＳＰ−＃１，ＩＳＰ−＃２に接続されており、ＩＳＰ−＃１は差別化サービスに対応して３つのサービスクラスを提供し、ＩＳＰ−＃２は差別化サービスに対応しておらず１つのサービスクラスしか持たないものとする。データ転送装置２０は自装置が接続されているすぺてのネットワークの課金情報、サービスクラス内容等の静的な情報及び混雑度等の動的な情報を情報テーブル２６に保持する。
【００９０】
データ転送装置２０は、ネットワークが混雑度情報を公開していない場合、図２０に示すステップＳ１２０でタイムスタンプ要求・応答メッセージのメッセージパケットを作成する。ここでは、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）タイムスタンプ要求・応答メッセージを使用する。このメッセージは図１９（Ｂ）に示すＩＰヘッダを持ち、ネットワークの応答時間を調べることができる。
【００９１】
このＩＣＭＰメッセージパケットの開始タイムスタンプに送信時刻を書き込み（ステップＳ１２１，Ｓ１３１）、ルーティング・テーブル２２を参照して接続されている各ネットワーク／サービスクラス経由で、メッセージを宛先アドレスに送信する（ステップＳ１２２，Ｓ１３２）。図１９（Ａ）の例では、ＩＳＰ−＃１のデータ転送装置４１，４２経由、ＩＳＰ−＃２のデータ転送装置４３，４４経由の２つの経路でＩＣＭＰメッセージパケットを送信する。
【００９２】
ＩＣＭＰメッセージパケットを受信（ステップＳ１２３，Ｓ１３３）した宛先Ｘのデータ転送装置あるいはホストは、ＩＣＭＰメッセージパケットの受信タイムスタンプに受信時刻を書き込み（ステップＳ１２４，Ｓ１３４）、ＩＣＭＰメッセージパケットの送出タイムスタンプに送出時刻を書き込み（ステップＳ１２５，Ｓ１３５）、このＩＣＭＰメッセージパケットを送信元データ転送装置に返送する（ステップＳ１２６，Ｓ１３６）。送信元データ送信装置２０は、返送されてきたＩＣＭＰメッセージパケットを受信して（ステップＳ１２７，Ｓ１３７）、受信ＩＣＭＰメッセージパケットの開始タイムスタンプと受信タイムスタンプとの差から転送時間を算出して（ステップＳ１２８，Ｓ１３８）、この転送時間を情報テーブル２６に保持する（ステップＳ１３９）。なお、ステップＳ１２１〜Ｓ１２８とステップＳ１３１〜Ｓ１３８は同時に実行される。
【００９３】
経路・クラス転送装置３２は、転送時間情報を混雑度情報として参照する。転送時間が小さいほど、混雑度は小さいと判断できる。このように、ＩＣＭＰタイムスタンプ要求・応答メッセージを利用することにより、ネットワークの混雑度情報が公開されていない場合でもこれらの情報を得ることができ、本発明を既存のデータ転送装置に適用することが容易となる。
【００９４】
図２１は本発明のデータ転送装置の第１１実施例のシステム構成図を示す。同図中、本発明を実現するデータ転送装置はルータＲ１である。また、ＩＳＰ−＃１及びＩＳＰ−＃２の入り口及び出口、及びホストＹにデータ転送装置としてのルータＲａ, Ｒｂ，Ｒｃ，Ｒｄ，Ｒ２が設けられており、図中に示したようなＩＰアドレスを持つ。また、ホストＸ，Ｙも図中に示したようなＩＰアドレスを持つ。ホストＸからホストＹにデータを送信する場合について説明する。ここでは単純化するために、静的な情報として課金情報、動的な情報として混雑度のみを考える。また、ネットワークの混雑度状況は公開されていないとする。現時点でルータＲ１がホストＹに対して持つ情報テーブル２６の例を図２２（Ａ）に示し、ルーティング・テーブル２２の例を図２２（Ｂ）に示す。
【００９５】
混雑度が公開されていないため、情報テーブル２６のメッセージパケット返送時間は空欄となっている。このためルーティング・テーブル２２では、これら情報が反映できず、最適ルートが決定されていない。
【００９６】
最適ルート決定の過程を説明する。
（１）ホストＸはＩＰヘッダの宛先アドレスにホストＹのＩＰアドレス（１７２. １６. ６. ２０）を記載し、ルータＲ１に送信する。
（２）ルータＲ１は、ホストＹへのデータをバッファ２１に格納する。ルータＲ１はルーティング・テーブル２２を参照し、転送ルートを決定する。ホストＹへは図２２（Ｂ）の最下欄からＩＳＰ−＃１［Ｒａ（１７２．１６．２．３）］経由とＩＳＰ−＃２［Ｒｂ（１７２．１６．２．４）］経由が考えられる。
（３）ルータＲ１はメッセージパケットを作成し、ソース・ルーティングを使い、ＩＳＰ−＃１経由，ＩＳＰ−＃２経由で送信する。ここでは、混雑度情報の収集にＩＣＭＰタイムスタンプ要求・応答メッセージを利用する。
【００９７】
ルータＲ１が作成したＩＳＰ−＃１，ＩＳＰ−＃２用のＩＣＭＰメッセージパケットを図２３（Ａ），（Ｂ）に示す。ここで、プロトコルタイプ＝０１は、ＩＣＭＰを表す。ソースルーティングには、ストリクト・ソースルーティングとルーズ・ソースルーティングがある。この実施例で示したオプションタイプ「１０００００１１」は、ルーズ・ソースルーティングを示す。ルーズ・ソースルーティングでは宛先までのソースルート・オプション（アドレス１、アドレス２、…以下に示すアドレス）に記載されている次のアドレスまで、他の中間ルータを経由するルートを使用することもできる。すなわちこの場合は、１７２. １６. ３. ０のＩＳＰ−＃１（ネットワーク）から１７２. １６. ６. ２０のホストＹまでに１つ、あるいは複数のルータを経由することも可能である。ストリクト・ソースルーティングの場合は、ソースルート・オプションに記載されている次のアドレスまで（すなわちアドレス１からアドレス２まで、あるいはアドレス２からアドレス３まで）、パケットを直接に転送できなければならない。直接転送できない場合、このパケットは廃棄される。なお、コード番号が示されていないフィールドについては、そのデータに適した数字が記載される。
（４) ＩＳＰ−＃１経由のメッセージパケットを受信したルータＲａは、オプションタイプ・フィールドの値「１０００００１１」からルーズ・ソースルーティングであることがわかる。ソースルート・オプションから、アドレス２に自身のアドレスが示されており、次ソースルートがホストＹであることを知る。ルータＲａは、自身の持つ図２４（Ａ）に示す内容のルーティング・テーブル２２を参照し、ホストＹへの転送経路を決定する。この場合、ルース・ソースルーティングであるので、ホストＹに至る直接の経路がなくても、パケットは廃棄されない。ルーティング・テーブル２２から、次ホップがルータＲｂであることがわかる。ルータＲａは、次ソースルートを示すポインタがアドレス３を示すように書き換え、ポート２からパケットをルータＲｂに送信する。
（５）ルータＲａからのメッセージパケットを受信したルータＲｂは、ソースルーティングではあるが、自身はソースルート・オプションに自身のアドレスがないことから、同様に、次ソースルート・ホストＹへの経路を決定するために自身の持つ図２４（Ｂ）に示す内容のルーティング・テーブル２２を参照する。このテーブルから次ホップがルータＲ２であることが分かり、ポート２からパケットをルータＲ２に送信する。
（６）ルータＲｂからのメッセージパケットを受信したルータＲ２は、同様に次ソースルート・ホストＹへの経路を決定するために自身の持つ図２４（Ｃ）に示す内容のルーティング・テーブル２２を参照する。このテーブルからホストＹが直接経路であることが分かり、ポート２からパケットをホストＹに送信する。
（７）ルータＲｂからのメッセージパケットを受信したホストＹは、ＩＰヘッダから自装置宛てであることを知り、取り込む。このパケットがＩＣＭＰタイムスタンプ要求メッセージであることを認識したホストＹは、次の動作で図２５（Ａ）に示すＩＣＭＰタイムスタンプ応答メッセージを返送する。
【００９８】
１．受信タイムスタンプ・フィールドにパケットを受信した時刻を入れる。
【００９９】
２．タイプを０Ｄから０Ｅに変更、識別子フィールドとシーケンス番号フィールドはそのまま。
【０１００】
３．応答メッセージ送信開始直前に送出タイムスタンプ・フィールドに時刻を入力する。
【０１０１】
４．ＩＰヘッダを付加し、タイムスタンプ応答メッセージを送信する。
【０１０２】
なお、図２５（Ａ）ではソース・ルーティングせずに返送しているが、開始タイムスタンプ及び受信タイムスタンプによってルータＲ１からルータＲ２に到達するまでの時間が分かるので、返送ルートはいずれを通っても良い。
（８）ホストＹから返送されたタイムスタンプ応答メッセージのメッセージパケットは、上記（３）〜（７）のような転送動作を繰り返して宛先アドレスであるホストＸに到達する。
（９）ホストＸは、識別子フィールドとシーケンス番号フィールドを使って、要求と応答を対応させる。このようにして、タイムスタンプ応答メッセージが、ＩＳＰ−＃１経由で送信したタイムスタンプ要求メッセージに対する応答であることが分かる。ホストＸは、ＩＳＰ−＃１の混雑度情報として（開始タイムスタンプ）−（受信タイムスタンプ）の値を情報テーブル２６に書き込む。
（１０）ＩＳＰ−＃２経由で送信されたタイムスタンプ応答メッセージに対しても上記（３）〜（９）と同様の過程を経て、ＩＳＰ−＃２の混雑度情報が情報テーブル２６に書き込まれる。この時点でルータＲ１がホストＹに対して持つ情報テーブル２６を図２５（Ｂ）に示す。
（１１）情報テーブル２６が更新されたので、ルーティング・テーブル２２を更新する。更新されたルータＲ１のルーティング・テーブル２２を図２５（Ｃ）に示す。ここには、ホストＹにはＩＳＰ−＃１経由の方が速いという情報が反映されている。
（１２）ルータＲ１はバッファ２１内に格納されているデータの転送ルートを決定するため、ルーティング・テーブル２２を参照し、バッファ２１内に格納されているデータをＩＳＰ−＃１経由で転送するために、ルータＲａに送出する。
【０１０３】
上記の動作により、ユーザに取って最適なネットワークをデータ転送装置２０自身で選択することができる。
【０１０４】
図２６は本発明のデータ転送装置の第１２実施例のシステム構成図を示す。同図中、本発明を実現するデータ転送装置はルータＲ１であり、複数のサービスクラスを持つＩＳＰ−＃１に接続されている。ＩＳＰ−＃１の入り口及び出口、及びホストＹにデータ転送装置としてのルータＲａ, Ｒｂ，Ｒ２が設けられており、図中に示したようなＩＰアドレスを持つ。また、ホストＸ，Ｙも図中に示したようなＩＰアドレスを持つ。ホストＸからホストＹにデータを送信する場合について説明する。ＩＳＰ−＃１は差別化サービスに対応しており、ルータＲ１とはＥＦ−ＰＨＢ，ＡＦ−ＰＨＢ，ベスト・エフォートの３つのクラスで契約しているとする。ここでは簡単化のため、ＡＦ−ＰＨＢの中は１クラスだけであるとする。またユーザは、データがリアルタイム・データである場合には速度優先、ＦＴＰである場合には課金優先で送信するように設定しているとする。
【０１０５】
ホストＸからホストＹにリアルタイム・データを送信する場合について、説明する。ＴＣＰ／ＩＰ通信を行っているとすると、リアルタイム・データであるかどうかは、ＴＣＰのポート番号で識別できる。例えば動画像のためのプロトコルＲＴＰのポート番号は「５００４」が登録されている。ここでは単純化するために、静的な情報として課金情報、動的な情報として混雑度のみを考える。また、ネットワークの混雑度状況は公開されていないとする。
【０１０６】
現時点でルータＲ１がホストＹに対して持つ情報テーブル２６の例を図２７（Ａ）に示し、ルーティング・テーブル２２の例を図２７（Ｂ）に示す。混雑度が公開されていないため、図２７（Ａ）ではメッセージパケット返送時間は空欄となっている。このためルーティング・テーブル２２では、これら情報が反映できず、最適ルートが決定されていない。
【０１０７】
最適ルート決定の過程を説明する。
（１）ホストＸはＩＰヘッダの宛先アドレスにホストＹのＩＰアドレス（１７２. １６. ６. ２０）を記載し、ルータＲ１に送信する。
（２）ルータＲ１は、ホストＹへのデータをバッファ２１に格納する。ルータＲ１は図２７（Ｂ）に示すルーティング・テーブル２２を持つものとする。ホストＹへのデータを受信したルータＲ１は、ルーティング・テーブル２２を参照し、転送ルートを決定する。図２７（Ｂ）から、ホストＹへはルータＲａに転送すれぱよいことがわかる。
（３）ルータＲ１はメッセージパケットを作成し、各サービスクラス経由で送信する。ここでは、混雑度情報の収集にＩＣＭＰタイムスタンプ要求・応答メッセージを利用する。ルータＲ１が作成したＩＣＭＰメッセージパケットを図２８（Ａ），（Ｂ），（Ｃ）に示す。ここで、物理的な経路はＩＳＰ−＃１の１つしかないので、ソースルーティングの必要はない。なお、サービスタイプには、ＥＦ−ＰＨＢを表すコードが記載され、プロトコルタイプ０１は、ＩＣＭＰを表す。コード番号が示されていないフィールドについては、そのデータに適した数字が記載される。
（４）ＥＦ−ＰＨＢ経由のメッセージパケットを受信したＲａは、自身の持つ図２９（Ａ）に示すルーティング・テーブル２２を参照し、ホストＹへの転送経路を決定する。このルーティング・テーブル２２から、次ホップがルータＲｂであることがわかる。ルーティング・テーブル２２では最適クラスの設定がされていないが、ＩＰヘッダより受信したメッセージがＥＦ−ＰＨＢ経由であることが分かる。従ってルータＲａは、パケットをポート２からＥＦ−ＰＨＢ経由でルータＲｂに送信する。
（５) ルータＲａからのメッセージパケットを受信したルータＲｂは同様に、ホストＹへの経路を決定するために自身の持つ図２９（Ｂ）に示すルーティング・テーブル２２を参照する。ルーティング・テーブル２２から、次ホップがルータＲ２であることが分かり、ポート２からパケットをＥＦ−ＰＨＢでルータＲ２に送信する。
（６）ルータＲａからのメッセージパケットを受信したルータＲ２は、同様に、ホストＹへの経路を決定するために自身の持つ図２９（Ｃ）に示すルーティング・テーブル２２を参照する。このルーティング・テーブル２２から、ホストＹが直接経路であることがわかり、ポート２からパケットをＥＦ−ＰＨＢ経由でホストＹに送信する。
（７）ルータＲ２からのパケットを受信したホストＹは、ＩＰヘッダからそれが自分宛てであることを知り、自装置に取り込む。このパケットがＩＣＭＰタイムスタンプ要求メッセージであることを理解したホストＹは、以下のように動作してタイムスタンプ応答メッセージを返送する。
【０１０８】
１．受信タイムスタンプ・フィールドにパケットを受信した時刻を入れる。
【０１０９】
２．タイプを０Ｄから０Ｅに変更、識別子フィールドとシーケンス番号フィールドはそのまま。
【０１１０】
３．応答メッセージ送信開始直前に送出タイムスタンプ・フィールドに時刻を入力する。
【０１１１】
４．ＩＰヘッダを付加し、タイムスタンプ応答メッセージを送信する。図３０（Ａ）にルータＲａから送信されるタイムスタンプ応答メッセージを示す。このとき、返送ルートでのサービスクラスはＥＦ−ＰＨＢの必要はなく、ベスト・エフォートで返送してもかまわない。これはルータＲ２での受信時刻が必要であるため、ルータＲ１への返送時間が遅くなっても影響がないためである。
（８）ホストＹから返送されたタイムスタンプ応答メッセージのメッセージパケットは、上記（３）〜（７）のような転送動作を繰り返して宛先アドレスであるホストＸに到達する。
（９）ホストＸは、識別子フィールドとシーケンス番号フィールドを使って、要求と応答を対応させる。このようにして、タイムスタンプ応答メッセージが、ＥＦ−ＰＨＢ経由で送信したタイムスタンプ要求メッセージに対する応答であることが分かる。ホストＸは、ＥＦ−ＰＨＢの混雑度情報として（開始タイムスタンプ）−（受信タイムスタンプ）の値を情報テーブル２６に書き込む。
（１０）ＡＦ−ＰＨＢ経由、ベスト・エフォート経由で送信されたタイムスタンプ応答メッセージに対しても上記（３）〜（９）と同様の過程を経て、それぞれの混雑度情報が情報テーブル２６に書き込まれる。この時点でルータＲ１がホストＹに対して持つ情報テーブル２６を図３０（Ｂ）に示す。
（１１）情報テーブル２６が更新されたので、ルーティング・テーブル２２を更新する。更新されたルータＲ１のルーティング・テーブル２２を図３０（Ｃ）に示す。ここには、ホストＹにはＥＦ−ＰＨＢ経由の方が速いという情報が反映されている。
（１２）ルータＲ１はバッファ２１内に格納されているデータの転送ルートを決定するため、ルーティング・テーブル２２を参照し、バッファ２１内に格納されているデータをＥＦ−ＰＨＢ経由で転送するために、ルータＲａに送出する。
【０１１２】
上記の動作により、ユーザに取って最適なネットワークをデータ転送装置２０自身で選択することができる。
【０１１３】
ところで、ルータＲ１はホストＹにデータ転送をしている間、例えば５分等の一定間隔でメッセージパケットを各サービスクラス経由で送信し、各サービスクラスの混雑情報を収集して情報テーブル２６を更新する。更新の結果、最適サービスクラスが現設定と異なる場合に配下のように動作する。
（１）データの送信を一時停止する。このデータはバッファ２１内に格納しておく。
（２）転送サービスクラスの設定を変更する。具体的にはサービスタイプ・フィールドを書き換える。
（３）設定が完了したら、再びデータの送信を開始する。
この方法は、パケット長の長いデータを送信するときに特に有効である。
【０１１４】
本発明では、ネットワークの混雑状況を観測する手段をもち、ネットワークが動的な情報を公開していない場合にも、最も効率の良いデータ転送のためのネットワークをユーザが設定することなく、自動的に選択することが可能となる。また、複数のサービスクラスが提供されている場合には、混雑度等の状況に応じて、適切なサービスクラスを自動的に選択することも可能となる。従って、ユーザの負担を減らすことができる。
【０１１５】
なお、経路選択手段２３，クラス選択手段３０，経路・クラス選択手段３２が請求項記載の選択手段に対応し、テーブル管理部２８が監視手段及びルーティング・テーブル書換手段に対応する。
【０１１６】
【発明の効果】
上述の如く、請求項１に記載の発明は、複数のサービスクラスのネットワークの静的及び動的な情報に従って適切なネットワークを選択するため、適切なネットワークに接続してユーザのデータ転送を行うことができる。
【０１１８】
請求項２に記載の発明は、複数のネットワーク及び複数のサービスクラスの静的及び動的な情報に従って適切なネットワークを選択するため、適切なネットワークの適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【０１１９】
請求項３に記載の発明は、ネットワークの状態を監視し、状態の変化が検出された場合にサービスクラスの変更を行うため、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【０１２０】
請求項４に記載の発明は、ネットワーク状態の変化が検出され情報テーブルの動的な情報が変化した場合に、情報テーブルを参照し、その動的な情報に応じてルーティング・テーブルを書き換えるため、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【０１２１】
請求項５に記載の発明は、ネットワークが公開している情報からネットワークの動的な情報を得るため、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【０１２２】
請求項６に記載の発明は、情報収集のためのパケットを送信してネットワークの動的な情報を得るため、ネットワークが情報を公開していない場合にも、ネットワークの動的な情報を得ることができ、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【０１２３】
請求項７に記載の発明は、ＴＣＰ／ＩＰ通信を行っている場合、情報収集のためのメッセージパケットを宛先に送信し、宛先から前記メッセージパケットに対する確認応答を受信して宛先までのネットワークの動的な情報としての混雑度を得ることにより、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【０１２４】
請求項８に記載の発明は、情報収集のためＩＣＭＰタイムスタンプ要求メッセージを宛先に送信し、宛先から返送されるＩＣＭＰタイムスタンプ応答メッセージを受信して前記ＩＣＭＰタイムスタンプ応答メッセージのタイムスタンプから宛先までのネットワークの動的な情報としての混雑度を得ることにより、ネットワークの状態が変化しても、ユーザ端末に対して適切なサービスクラスを選択でき、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【０１２５】
請求項９に記載の発明は、複数のサービスクラスのネットワークの静的及び動的な情報に従って適切なサービスクラスを選択するため、適切なサービスクラスに接続してユーザのデータ転送を行うことができる。
【図面の簡単な説明】
【図１】従来のデータ転送装置の構成図である。
【図２】従来のデータ転送装置のシステム構成図である。
【図３】従来のデータ転送装置の動作のフローチャートである。
【図４】本発明のデータ転送装置の第１実施例の構成図である。
【図５】本発明のデータ転送装置の第１実施例のシステム構成図及びテーブル構成図である。
【図６】本発明のデータ転送装置の第１実施例の動作のフローチャートである。
【図７】本発明のデータ転送装置の第２実施例の構成図である。
【図８】本発明のデータ転送装置の第２実施例のシステム構成図及びテーブル構成図である。
【図９】本発明のデータ転送装置の第３実施例の動作のフローチャートである。
【図１０】ルーティング・テーブル，情報テーブルのテーブル構成図である。
【図１１】本発明のデータ転送装置の第４実施例の構成図である。
【図１２】本発明のデータ転送装置の第４実施例のシステム構成図である。
【図１３】本発明のデータ転送装置の第５実施例におけるテーブル構成図である。
【図１４】本発明のデータ転送装置の第６実施例の動作のフローチャートである。
【図１５】本発明のデータ転送装置の第７実施例の動作のフローチャートである。
【図１６】本発明のデータ転送装置の第８実施例の動作のフローチャートである。
【図１７】本発明のデータ転送装置の第９実施例のシステム構成図及びテーブル構成図である。
【図１８】本発明のデータ転送装置の第９実施例の動作のフローチャートである。
【図１９】本発明のデータ転送装置の第１０実施例のシステム構成図及びＩＰヘッダ構成図である。
【図２０】本発明のデータ転送装置の第１０実施例の動作のフローチャートである。
【図２１】本発明のデータ転送装置の第１１実施例のシステム構成図である。
【図２２】本発明を説明するための図である。
【図２３】本発明のを説明するための図である。
【図２４】本発明を説明するための図である。
【図２５】本発明を説明するための図である。
【図２６】本発明のデータ転送装置の第１２実施例のシステム構成図である。
【図２７】本発明を説明するための図である。
【図２８】本発明を説明するための図である。
【図２９】本発明を説明するための図である。
【図３０】本発明を説明するための図である。
【符号の説明】
２０  データ転送装置
２１  バッファ
２２  ルーティング・テーブル
２３  経路選択装置
２４  出力インターフェース
２５  出力ポート
２６  情報テーブル
２８  テーブル管理部
３０  クラス選択装置
３２  クラス・経路選択装置
【図１】
0004091723.tif 000002
【図２】
0004091723.tif 000003
【図３】
0004091723.tif 000004
【図４】
0004091723.tif 000005
【図５】
0004091723.tif 000006
【図６】
0004091723.tif 000007
【図７】
0004091723.tif 000008
【図８】
0004091723.tif 000009
【図９】
0004091723.tif 000010
【図１０】
0004091723.tif 000011
【図１１】
0004091723.tif 000012
【図１２】
0004091723.tif 000013
【図１３】
0004091723.tif 000014
【図１４】
0004091723.tif 000015
【図１５】
0004091723.tif 000016
【図１６】
0004091723.tif 000017
【図１７】
0004091723.tif 000018
【図１８】
0004091723.tif 000019
【図１９】
0004091723.tif 000020
【図２０】
0004091723.tif 000021
【図２１】
0004091723.tif 000022
【図２２】
0004091723.tif 000023
【図２３】
0004091723.tif 000024
【図２４】
0004091723.tif 000025
【図２５】
0004091723.tif 000026
【図２６】
0004091723.tif 000027
【図２７】
0004091723.tif 000028
【図２８】
0004091723.tif 000029
【図２９】
0004091723.tif 000030
【図３０】
0004091723.tif 000031