(57)【特許請求の範囲】
【請求項１】
ＴＣＰの伝送プロトコルに従ってデータパケットを受信装置へ送信し、前記受信装置からＡＣＫを受信する送信装置において、
前記受信装置により優先度指標が付加されたＡＣＫを受信するパケット受信部と、
前記パケット受信部により受信されたＡＣＫに含まれる優先度指標を読み取る優先度読取部と、
前記優先度読取部により読み取られた優先度指標に従って、データパケットの送信量を調節するパケット送信部と、を備え、
前記パケット送信部は、前記優先度読取部により読み取られた優先度指標が、予め設定された許容範囲に含まれるか否かを判定し、前記優先度指標が前記許容範囲に含まれると判定した場合、前記優先度指標に従ってデータパケットの送信量を調節し、前記優先度指標が前記許容範囲に含まれないと判定した場合、予め設定された優先度指標に従ってデータパケットの送信量を調節することを特徴とする送信装置。
【請求項２】
請求項１に記載の送信装置において、
前記パケット送信部に代わる新たなパケット送信部は、前記優先度読取部により読み取られた優先度指標に従って、データパケットの送信量を調節し、さらに、データパケットの送信量を調節していた過去の優先度指標を保持し、その後、前記優先度読取部により読み取られた優先度指標が予め設定された値であると判定した場合、前記保持していた過去の優先度指標に従ってデータパケットの送信量を調節することを特徴とする送信装置。
【請求項３】
請求項１に記載の送信装置において、
前記パケット送信部に代わる新たなパケット送信部は、前記優先度読取部により読み取られた優先度指標を入力した場合、当該送信装置にて予め設定された優先度指標ではなく、前記入力した優先度指標に従って、データパケットの送信量を調節し、前記受信したＡＣＫに優先度指標読み出し要求が付加されている場合、前記データパケットの送信量の調節のために現在使用している優先度指標を、前記受信装置へ送信することを特徴とする送信装置。
【請求項４】
請求項１から３までのいずれか一項に記載の送信装置において、
前記優先度指標は、前記ＡＣＫに含まれるＴＣＰヘッダに記述されていることを特徴とする送信装置。
【請求項５】
ＴＣＰの伝送プロトコルに従って送信装置からデータパケットを受信し、前記データパケットに対するＡＣＫを前記送信装置へ送信する受信装置において、
前記データパケットを受信するパケット受信部と、
前記パケット受信部によりデータパケットが受信されたタイミングにて、前記送信装置から送信されるデータパケットの送信量を調節するための優先度指標を記述すると共に、データパケットの送信量の調節のために前記送信装置にて現在使用している優先度指標を読み出す要求を記述してＴＣＰヘッダを生成するＴＣＰヘッダ生成部と、
前記ＴＣＰヘッダ生成部により生成されたＴＣＰヘッダを含むＡＣＫを生成し、前記送信装置へ返信するパケット送信部と、を備え、
前記送信装置から、データパケットの送信量の調節のために現在使用している優先度指標を受信することを特徴とする受信装置。
【請求項６】
請求項５に記載の受信装置において、
前記ＴＣＰヘッダ生成部は、前記優先度指標を拡張ヘッダ部に記述し、既存のＴＣＰヘッダに前記拡張ヘッダ部を付加して新たなＴＣＰヘッダを生成することを特徴とする受信装置。
【請求項７】
コンピュータを、請求項１から４までのいずれか一項に記載の送信装置として機能させるための送信プログラム。
【請求項８】
コンピュータを、請求項５または６に記載の受信装置として機能させるための受信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰネットワークを利用したデータ伝送に用いられる送信装置、受信装置及びプログラムに関し、特に、指定された優先度指標に従ってパケット送信量を調節する技術に関する。
【背景技術】
【０００２】
現在、一般に広く普及しているＩＰネットワークでは、送信装置と受信装置との間のデータ伝送を行うためのプロトコルとして、ＴＣＰ(Transmission Control protocol)が用いられている。このＴＣＰには、伝送の開始、終了を制御するコネクション機能、全てのデータを正常に伝送することを保証する再送機能、受信装置の処理能力に合わせてデータの送信量を調節するフロー制御機能、ネットワークが必要以上に混雑しないように送信量を調節する輻輳制御機能が備わっている。
【０００３】
ＴＣＰに組み込まれている輻輳制御機能の制御方法として様々な方式が提案されている。提案されているいずれの方式も、送信装置が、受信装置から確認応答（ＡＣＫ）パケットを受信してパケットロスの発生を検出することにより、または、ＲＴＴ(Round Trip Time：ラウンドトリップタイム)を計測してその変化を判定することにより、パケット送信量を決定し、送信レートを制御するものである。
【０００４】
ＴＣＰに組み込まれた輻輳制御機能のうち最も普及している方式は、ＴＣＰ  ＮｅｗＲｅｎｏ方式である（非特許文献１を参照）。このＮｅｗＲｅｎｏ方式は、送信装置が、インクリメントする確認応答番号を含むＡＣＫを受信した場合、その受信毎に、一度に送信するパケット送信量を１パケットずつ増加させ、同一の確認応答番号を含むＡＣＫを連続して受信した場合、パケットロスの発生を検出したと判定し、一度に送信するパケット送信量を１／２に減少させるものである。このようなパケットロスの発生によってパケット送信量を調節するＮｅｗＲｅｎｏ方式は、ロスベース輻輳制御方式と呼ばれている。
【０００５】
ここで、ＡＣＫに含まれる確認応答番号は、送信装置により送信されたデータパケットのパケット信号に対応しており、正常時には、ＡＣＫ毎にインクリメントした値となる。受信装置がデータパケットを受信したが、正しいパケット番号ではなかったと判定した場合には（異常時には）、本来受信すべき番号を確認応答番号としたＡＣＫが生成され、送信装置へ送信される。つまり、受信装置は、正しい番号ではないパケット番号を含むデータパケットを受信した場合、本来受信すべき番号を確認応答番号としたＡＣＫを送信装置へ送信する。このように、受信装置は、正しい番号ではないパケット番号を含むデータパケットを連続して受信した場合、同一の確認応答番号を含むＡＣＫを連続して送信装置へ送信する。
【０００６】
また、ＮｅｗＲｅｎｏ方式以外の他の代表的な輻輳制御方式として、ＴＣＰ  Ｖｅｇａｓ方式（非特許文献２を参照）がある。このＶｅｇａｓ方式は、送信装置がＲＴＴの増減に従ってパケット送信量を調整するものであり、ディレイベース輻輳制御方式と呼ばれている。
【０００７】
また、上記ＮｅｗＲｅｎｏ方式及びＶｅｇａｓ方式の２つの輻輳制御方式を基本にして、帯域の有効利用及び送信レートの公平性の観点から、多くの改良方式が提案されている（特許文献１を参照）。また、伝送されているデータの内容に緊急性がない場合、そのデータのパケット送信量を抑え、緊急性がある場合、そのデータのパケット送信量を増やすことにより、緊急性の高いデータ伝送を優先させる方式も提案されている（特許文献２を参照）。このように、従来の輻輳制御方式は、送信装置及び受信装置が自発的に送信レートを制御することが前提となっている。
【０００８】
一方、ＩＰネットワークにＱｏＳ(Quality of Service)機能を持たせ、各伝送の内容に応じた優先度に基づいて、ルータのパケット転送順位を制御する方式も提案されている。代表的な方式として、ＩｎｔＳｅｒｖ方式及びＤｉｆｆＳｅｒｖ方式がある（非特許文献３，４を参照）。これらの方式は、パケットに優先度が記述されており、ＩＰネットワークを構成するルータが、優先度の高いパケットを優先度の低いパケットよりも先に転送するものである。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−２１７２３４号公報
【特許文献２】特開２００６−１４３２９号公報
【非特許文献】
【００１０】
【非特許文献１】ＩＥＴＦ  ＲＦＣ３７８２
【非特許文献２】L.Brakmo and L.Peterson, TCP Vegas: End to End Congestion Avoidance on a Global Internet, IEEE Journal on Selected Areas in Communications, Vol 13 No.8, Oct.1995
【非特許文献３】ＩＥＴＦ  ＲＦＣ１６３３
【非特許文献４】ＩＥＴＦ  ＲＦＣ２４７４
【発明の概要】
【発明が解決しようとする課題】
【００１１】
前述のとおり、ＴＣＰの伝送プロトコルに従ってデータの送信を行う送信装置においては、ＴＣＰが持つフロー制御機能及び輻輳制御機能によりパケット送信量を調節することができる。しかしながら、このような送信装置では、優先度を指定してパケット送信量を調節することはできない。ここで、データの伝送サービスを受ける利用者が、伝送内容の重要度または緊急度に応じて優先度を指定し、指定された優先度に従って送信装置がパケット送信量を調節することができれば、利用者にとって利便性が向上し、好適である。
【００１２】
そこで、本発明はかかる問題を解決するためになされたものであり、その目的は、既存のＴＣＰの伝送プロトコルと互換性を持ちながら、優先度を指定してパケット送信量を調節することが可能な送信装置、受信装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、請求項１の発明は、ＴＣＰの伝送プロトコルに従ってデータパケットを受信装置へ送信し、前記受信装置からＡＣＫを受信する送信装置において、前記受信装置により優先度指標が付加されたＡＣＫを受信するパケット受信部と、前記パケット受信部により受信されたＡＣＫに含まれる優先度指標を読み取る優先度読取部と、前記優先度読取部により読み取られた優先度指標に従って、データパケットの送信量を調節するパケット送信部と、を備え、前記パケット送信部が、前記優先度読取部により読み取られた優先度指標が、予め設定された許容範囲に含まれるか否かを判定し、前記優先度指標が前記許容範囲に含まれると判定した場合、前記優先度指標に従ってデータパケットの送信量を調節し、前記優先度指標が前記許容範囲に含まれないと判定した場合、予め設定された優先度指標に従ってデータパケットの送信量を調節することを特徴とする。
【００１４】
また、請求項２の発明は、請求項１に記載の送信装置において、前記パケット送信部に代わる新たなパケット送信部が、前記優先度読取部により読み取られた優先度指標に従って、データパケットの送信量を調節し、さらに、データパケットの送信量を調節していた過去の優先度指標を保持し、その後、前記優先度読取部により読み取られた優先度指標が予め設定された値であると判定した場合、前記保持していた過去の優先度指標に従ってデータパケットの送信量を調節することを特徴とする。
【００１５】
また、請求項３の発明は、請求項１に記載の送信装置において、前記パケット送信部に代わる新たなパケット送信部が、前記優先度読取部により読み取られた優先度指標を入力した場合、当該送信装置にて予め設定された優先度指標ではなく、前記入力した優先度指標に従って、データパケットの送信量を調節し、前記受信したＡＣＫに優先度指標読み出し要求が付加されている場合、前記データパケットの送信量の調節のために現在使用している優先度指標を、前記受信装置へ送信することを特徴とする。
【００１６】
また、請求項４の発明は、請求項１から３までのいずれか一項に記載の送信装置において、前記優先度指標が、前記ＡＣＫに含まれるＴＣＰヘッダに記述されていることを特徴とする。
【００１７】
また、請求項５の発明は、ＴＣＰの伝送プロトコルに従って送信装置からデータパケットを受信し、前記データパケットに対するＡＣＫを前記送信装置へ送信する受信装置において、前記データパケットを受信するパケット受信部と、前記パケット受信部によりデータパケットが受信されたタイミングにて、前記送信装置から送信されるデータパケットの送信量を調節するための優先度指標を記述すると共に、データパケットの送信量の調節のために前記送信装置にて現在使用している優先度指標を読み出す要求を記述してＴＣＰヘッダを生成するＴＣＰヘッダ生成部と、前記ＴＣＰヘッダ生成部により生成されたＴＣＰヘッダを含むＡＣＫを生成し、前記送信装置へ返信するパケット送信部と、を備え、前記送信装置から、データパケットの送信量の調節のために現在使用している優先度指標を受信することを特徴とする。
【００１８】
また、請求項６の発明は、請求項５に記載の受信装置において、前記ＴＣＰヘッダ生成部が、前記優先度指標を拡張ヘッダ部に記述し、既存のＴＣＰヘッダに前記拡張ヘッダ部を付加して新たなＴＣＰヘッダを生成することを特徴とする。
【００１９】
また、請求項７の発明は、コンピュータを、請求項１から４までのいずれか一項に記載の送信装置として機能させるための送信プログラムにある。
【００２０】
また、請求項８の発明は、コンピュータを、請求項５または６に記載の受信装置として機能させるための受信プログラムにある。
【発明の効果】
【００２１】
本発明によれば、既存のＴＣＰのプロトコルと互換性を持ちながら、優先度指標を指定して送信量を調節することができる。つまり、伝送内容の重要度または緊急度に応じた伝送を実現し、利便性の向上を図ることができる。
【図面の簡単な説明】
【００２２】
【図１】実施例１の送信装置及び受信装置を含む全体システムの構成を示す図である。
【図２】実施例１の送信装置及び受信装置それぞれの概略構成を示すブロック図である。
【図３】既存のＴＣＰヘッダの構造を示す図である。
【図４】実施例１の受信装置により生成されるＴＣＰヘッダの構造を示す図である。
【図５】実施例１の送信装置と受信装置との間の優先度の送受信を概念的に示した図である。
【図６】実施例１の受信装置によるＡＣＫ生成処理を示すフローチャートである。
【図７】実施例１の送信装置による送信量調節処理を示すフローチャートである。
【図８】実施例２の送信装置及び受信装置を含む全体システムの構成を示す図である。
【図９】実施例３の送信装置及び受信装置における機能階層を示す図である。
【図１０】実施例４の伝送装置により生成されるＴＣＰヘッダの構造を示す図である。
【図１１】実施例５の送信装置による送信量調節処理を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明を実施するための形態について、図面を参照して説明する。
【実施例１】
【００２４】
まず、実施例１について詳細に説明する。実施例１は、複数台の送信装置から１台の受信装置へデータをアップロードするシステムを想定しており、各送信装置が送信するデータの重要性または緊急度に応じて送信量を調節する例である。
【００２５】
図１は、実施例１の送信装置及び受信装置を含む全体システムの構成を示す図である。実施例１のシステムは、複数台の送信装置１−１，１−２，１−３，・・・，１−ｎ（例えば、複数台のクライアント）と、１台の受信装置２（例えば、１台のサーバ）とを備えて構成され、複数台の送信装置１−１，１−２，１−３，・・・，１−ｎが１台の受信装置２へ向けて伝送するデータのアップロードを想定したシステムである。送信装置１−１，１−２，１−３，・・・，１−ｎと受信装置２とはネットワーク経路３により接続される。
【００２６】
各送信装置１−１，１−２，１−３，・・・，１−ｎは、共有するネットワーク経路３を介して受信装置２へ向けてデータを伝送する。従来のＴＣＰでは、フロー制御機能及び輻輳制御機能により送信量を調節することができるが、伝送内容の重要性または緊急度に応じて優先度を指定して送信量を調節することはできなかった。そこで、実施例１では、伝送内容の重要性または緊急度に応じて送信量を調節できるデータ伝送を実現する。
【００２７】
（送信装置及び受信装置の構成）
次に、図１に示した送信装置１−１，１−２，１−３，・・・，１−ｎ及び受信装置２それぞれの構成について説明する。図２は、実施例１の送信装置１（以下、送信装置１−１，１−２，１−３，・・・，１−ｎを総称して送信装置１という）及び受信装置２それぞれの概略構成を示すブロック図である。送信装置１は、送信データバッファ部１１、パケット送信部１２、パケット受信部１３及び優先度読取部１４を備えている。
【００２８】
送信データバッファ部１１は、アプリケーション（図示せず）からの送信データを一時的に保持する。パケット送信部１２は、送信データバッファ部１１から送信データを入力し、優先度指標（指定された優先度）に従った送信量制御を行い、パケット（データパケット）を受信装置２へ送信する。すなわち、パケット送信部１２は、送信データバッファ部１１から送信データを入力して、ＴＣＰヘッダ（パケットヘッダ）を付加したパケットを生成し、優先度指標に従った送信量制御を行い、パケットを受信装置２へ送信する。
【００２９】
ここで、受信装置２は、送信装置１より送信されたパケットを受信し、受信したパケットが本来受信すべきパケット番号のパケットであると判定した場合（すなわち、パケットが正常であると判定した場合）、パケットに含まれるパケット番号を確認応答番号に設定し、確認応答番号を含むＡＣＫ（ＡＣＫパケット）を生成して送信装置１へ送信する。また、受信装置２は、受信したパケットが本来受信すべきパケット番号のパケットでないと判定した場合（すなわち、パケットが正常でないと判定した場合）、本来受信すべきパケットに含まれるパケット番号を確認応答番号に設定し、確認応答番号を含むＡＣＫを生成して送信装置１へ送信する。
【００３０】
受信装置２は、パケット受信部２１、ＴＣＰヘッダ生成部２２及びパケット送信部２３を備えている。パケット受信部２１は、送信部１から送信されたパケットを受信し、受信したパケットを受信アプリケーション（図示せず）に出力する。また、パケット受信部２１は、送信装置１から送信されたパケットを受信したタイミングをＴＣＰヘッダ生成部２２に通知する。ＴＣＰヘッダ生成部２２は、パケット受信部２１からパケットを受信したタイミングを受けると、ＴＣＰヘッダを生成する。ＴＣＰヘッダ生成部２２は、ＴＣＰヘッダを生成する際に優先度の指定があると、ＴＣＰヘッダを拡張した拡張ヘッダ部を生成し、その拡張ヘッダ部に優先度指標を記述する。ＴＣＰヘッダ生成部２２は、生成したＴＣＰヘッダをパケット送信部２３に出力する。ＴＣＰヘッダ生成時に用いられる優先度指標は、利用者が手動で入力することも可能であり、また、受信側のアプリケーションが自動的に生成することも可能である。
【００３１】
図３は、既存のＴＣＰヘッダの構造を示す図である。図３において、ＴＣＰヘッダ５は、２０バイトの大きさになっている。ＴＣＰヘッダ５は、１６ビットの「送信元ポート番号」、１６ビットの「宛先ポート番号」、３２ビットの「シーケンス番号」、３２ビットの「確認応答番号」、４ビットの「データオフセット（ヘッダ長）」、６ビットの「予約済み」、各１ビットの６つの「コードビット（ＵＲＧ，ＡＣＫ，ＰＳＨ，ＲＳＴ，ＳＹＮ，ＦＩＮ）」、１６ビットの「ウィンドウサイズ」、１６ビットの「チェックサム」、及び１６ビットの「緊急ポインタ」から構成される。
【００３２】
ＴＣＰでは、２１バイト目以降にヘッダの拡張が許されており、オプションデータの記述が可能となっている。ＴＣＰヘッダの長さは、上述した「データオフセット（ヘッダ長）」で表される。データオフセットの値は、４バイトの整数倍として数えた数値で表現されるため、ヘッダ拡張していない場合のデータオフセットの値は「５」となる。すなわち、ＴＣＰヘッダの長さは２０（４×５）バイトとなる。
【００３３】
図４は、実施例１の受信装置２により生成されるＴＣＰヘッダの構造を示す図である。図４において、ＴＣＰヘッダ５Ａは、図３に示した既存のＴＣＰヘッダ５に加え、拡張ヘッダ部５２を備えて構成され、既存のＴＣＰヘッダ５を４バイト拡張したものである。４バイト拡張することにより、データオフセット５１の値は前述の「５」から１つ増加した「６」となる。また、ＴＣＰヘッダ５Ａの長さは２４バイト（４×６）となる。データオフセット５１の値に基づいて、ヘッダが拡張されているか否かが判別される。
【００３４】
拡張ヘッダ部５２は、オプションタイプ（１）、オプションタイプ（１００）、オプションレングス（３）、オプションバリュー（０−２５５）の各１バイトからなる４バイト構成となっている。オプションタイプの（）内の値はタイプ値を示している。拡張ヘッダ部５２では、オプションタイプ（１００）、オプションレングス（３）及びオプションバリュー（０−２５５）の３バイト分を使用しており、残りの１バイト分をオプションとして挿入している。つまり、拡張ヘッダ部５２を４バイトの整数倍に保つために、最初にタイプ値１、長さ１バイトのオプションを挿入している。このタイプ値１は、ノーオペレーション(No Operation)を表し、データとして意味のないことを示している。
【００３５】
ノーオペレーションのオプションタイプ（１）に続くオプションタイプ（１００）のタイプ値１００は、優先度指標オプションを表す番号であり、このタイプ値１００を参照することにより、拡張ヘッダ部５２に優先度指標オプションが記述されていると判別される。なお、タイプ値１００は仮に付けた値であり、必ずしもこの値に限定されるものではない。
【００３６】
オプションタイプ（１００）に続くオプションレングス（３）は、オプションの長さの全体を表す。ここでは３バイト目と記述しており、残りの読み取るべき値は１バイトであることが判別される。最後のオプションバリュー（０−２５５）は、１バイトで表現可能な０−２５５の優先度指標を表す。優先度指標は０−２５５の段階で優先度を表すものである。優先度指標は数値が大きいほど優先度が高く、一定の時間内の送信量を多く割り当てることを示すものである。
【００３７】
なお、拡張ヘッダ部５２を４バイトの整数倍に保つ方法として、上述した方法以外に、０（ゼロ）でパディングする方法、優先度指標を２バイトにて割り当てる方法、タイプ値１００のオプションで伝送する情報を優先度指標１バイト及びリザーブバイト１バイトの合計２バイトとする方法などがある。０（ゼロ）でパディングする方法は記述が決まっており、オプションタイプ（１）を付けないで、オプションタイプ（１００）から始めて、１バイト目にオプションタイプ（１００）、２バイト目にオプションレングス（３）、３バイト目にオプションバリュー（０−２５５）、４バイト目に全部０（ゼロ）で埋める、という記述方法が採用されている。なお、オプションタイプとオプションレングスは必ず１バイトの中に納めなければならないが、オプションバリューは自由に長さを決めることができる。優先度指標を２バイトにて割り当てる方法では、０−６５５３５の段階で優先度を表すことが可能となる。
【００３８】
図２に戻り、受信装置２から送信装置１へ送信されるＡＣＫは、送信装置１から受信装置２へ送信されたパケットに対する応答である（すなわち、返信である）。受信装置２は、ＡＣＫを生成する際に、優先度指定があるか否かを確認し、優先度指定があれば、上述した拡張ヘッダ部５２を生成し、生成した拡張ヘッダ部５２のオプションバリューに優先度指標を記述する。また、受信装置２は、ＡＣＫを生成する際に、受信装置２の最大受付可能データ量を示すＲＷＮＤ（受信ウィンドウサイズ）をＴＣＰヘッダに記述する。そして、ＴＣＰヘッダを付加したＡＣＫを生成して送信装置１へ送信する。これにより、送信装置１が受信するＡＣＫには、確認応答番号、優先度指標及びＲＷＮＤが含まれる。ＲＷＮＤは、受信装置２において、送信装置１からパケットを受信することができる最大受付可能データ量を示す受信ウィンドウサイズである。
【００３９】
送信装置１の説明に戻り、パケット受信部１３は、受信装置２から確認応答番号、優先度指標及びＲＷＮＤを含むＡＣＫを受信したときの時刻を内蔵タイマ（図示せず）から取得する。また、パケット受信部１３は、受信したＡＣＫのＴＣＰヘッダに優先度指標が記述された拡張ヘッダ部５２があるか否かを確認し、拡張ヘッダ部５２があれば、ＴＣＰヘッダから拡張ヘッダ部５２を取得し、拡張ヘッダ部５２を優先度読取部１４に出力する。また、パケット受信部１３は、パケット送信部１２からパケットの送信時刻を入力して記憶し、そのパケットに対するＡＣＫの受信時刻を記憶する。そして、パケット受信部１３は、受信時刻から送信時刻を減算してＲＴＴを計測し、その減算結果であるＲＴＴをパケット送信部１２に出力する。また、パケット受信部１３は、受信したＡＣＫのＴＣＰヘッダに記述されたＲＷＮＤを取得することによりＲＷＮＤを検出し、このＲＷＮＤをパケット送信部１２に出力する。
【００４０】
また、パケット受信部１３は、受信したＡＣＫに含まれる確認応答番号に基づいて、前回受信して入力したＡＣＫに含まれる確認応答番号と、今回受信したＡＣＫに含まれる確認応答番号とを比較し、パケットロスの発生を検出する。そして、パケット受信部１３は、パケットロスが発生しているか否かを示すパケットロス発生有無の情報を送信データバッファ部１１に出力する。具体的には、パケット受信部１３は、前回の確認応答番号と今回の確認応答番号とが同一であると判定して、その同一の判定が所定回数連続した場合、パケットロスが発生したものと判定する。例えば、所定回数が２に設定されているとき、パケット受信部１３は、確認応答番号が同一であるとの判定を２回連続して行った場合、すなわち、同一の確認応答番号を含むＡＣＫが３回連続したことを判定した場合、パケットロスが発生したものと判定する。この判定手法を３ＤＵＰＡＣＫという。
【００４１】
優先度読取部１４は、パケット受信部１３から拡張ヘッダ部５２を入力し、拡張ヘッダ部５２に記述された優先度指標を読み取る。そして、読み取った優先度指標をパケット送信部１２に出力する。パケット送信部１２は、優先度読取部１４から優先度指標を入力できた場合、送信装置１側で指定された優先度指標ではなく、優先度読取部１４から入力した優先度指標に従ってパケット送信量を調節する。また、パケット送信部１２は、パケット受信部１３からＲＴＴ、パケットロス発生有無の情報及びＲＷＮＤを入力し、優先度指標、ＲＴＴ及びパケットロス発生有無の各データに基づいてＣＷＮＤ（送信パケット数を示す輻輳ウィンドウサイズ）を算出し、ＣＷＮＤ及びＲＷＮＤのうちの小さい方をパケット送信量に決定する。これにより、送信レートが決定される。
【００４２】
なお、送信装置１における優先度指標の指定は、利用者が送信装置１に対して直接キー操作を行うことにより指定されるようにしてもよいし、送信装置１側のアプリケーションが自動的に優先度指標を生成することにより指定されるようにしてもよい。また、優先度指標を設定するための専用の外部アプリケーションから指定されるようにしてもよい。
【００４３】
図５は、送信装置１と受信装置２との間の優先度の送受信を概念的に示した図である。この送信装置１は、図２に示した送信装置１に相当するものであり、ＴＣＰドライバ１７、優先度手動入力部１８及びアプリケーション１９を備え、受信装置２は、図２に示した受信装置２に相当するものであり、ＴＣＰドライバ２６、優先度手動入力部２７及びアプリケーション２８を備えている。送信装置１のＴＣＰドライバ１７は、図２に示した送信装置１における送信データバッファ部１１、パケット送信部１２、パケット受信部１３及び優先度読取部１４に対応しており、同等の機能を有する。
【００４４】
一方、受信装置２のＴＣＰドライバ２６は、図２に示した受信装置２におけるパケット受信部２１、ＴＣＰヘッダ生成部２２及びパケット送信部２３に対応しており、同等の機能を有する。送信装置１と受信装置２のそれぞれにおいて、手動による優先度指定が可能であり、送信装置１側では優先度手動入力部１８により優先度ＴＣＰドライバ１７に入力され、受信装置２側では優先度手動入力部２７によりＴＣＰドライバ２６に入力される。優先度を手動で入力する代わりに、ある特定のアルゴリズムに従って、自動的に優先度を決定する場合、優先度を取り決めるための情報の送受信は、送信装置１のアプリケーション１９と受信装置２のアプリケーション２８との間で行われる。送信装置１のＴＣＰドライバ１７は、送信側で動作している優先度指標をＴＣＰヘッダの拡張ヘッダ部５３（詳細については後述する）に記述し、送信パケットを受信装置２へ送信する。受信装置２のＴＣＰドライバ２６は、受信側で設定した優先度指標を、ＴＣＰヘッダの拡張ヘッダ部５２に記述し、ＡＣＫを送信装置１へ送信する。
【００４５】
次に、実施例１の送信装置１及び受信装置２の処理について説明する。
（受信装置の処理）
まず、受信装置２によるＡＣＫ生成処理について説明する。図６は、受信装置２によるＡＣＫ生成処理を示すフローチャートである。図６において、パケット受信部２１は、送信装置１からパケットを受信したかどうかを判定する（ステップＳ１０）。パケット受信部２１は、送信装置１からパケットを受信していない場合（ステップＳ１０：ＮＯ）、パケットを受信するまでステップＳ１０の判定を繰り返す。パケット受信部２１は、送信装置１からパケットを受信した場合（ステップＳ１０：ＹＥＳ）、パケットの受信タイミングをＴＣＰヘッダ生成部２２に通知する。ＴＣＰヘッダ生成部２２は、パケット受信部２１からパケットの受信タイミング通知を受けると、優先度指定の有無を判定する（ステップＳ１１）。優先度指定は、利用者が手動で設定するか、または受信側のアプリケーションが自動的に生成して設定することにより行われる。
【００４６】
ＴＣＰヘッダ生成部２２は、優先度指定が有ると判定した場合（ステップＳ１１：ＹＥＳ）、指定された優先度指標を取得する（ステップＳ１２）。ＴＣＰヘッダ生成部２２は、優先度指標を取得した後、ＴＣＰヘッダ５Ａ（図４を参照）を生成する（ステップＳ１３）。この際、優先度指標を取得しているので、ＴＣＰヘッダ５（図３を参照）に優先度指標を記述するための拡張ヘッダ部５２（図４を参照）を生成し、拡張ヘッダ部５２のオプションバリューに優先度指標を記述する。また、ＴＣＰヘッダ生成部２２は、拡張ヘッダ部５２の生成において、優先度指標オプションを表すオプションタイプ（１００）を記述し、また、オプションの全体の長さを表すオプションレングス（３）を記述する。さらに、ＴＣＰヘッダ生成部２２は、データオフセットの値を６に設定する。
【００４７】
ＴＣＰヘッダ生成部２２は、生成した拡張ヘッダ部５２を含むＴＣＰヘッダ５Ａをパケット送信部２３に出力する。パケット送信部２３は、ＴＣＰヘッダ生成部２２からＴＣＰヘッダ５Ａを入力し、このＴＣＰヘッダ５Ａを含むＡＣＫを生成する（ステップＳ１４）。そして、生成したＡＣＫを送信装置１へ送信する（ステップＳ１５）。
【００４８】
一方、ステップＳ１１の判定において優先度指定が無い場合は（ステップＳ１１：ＮＯ）、ステップＳ１３へ移行し、ＴＣＰヘッダ生成部２２は、ステップＳ１３において、図３に示した通常のＴＣＰヘッダ５を生成する。その後の処理は、上記同様に行われる。
【００４９】
このように、受信装置２では、パケット受信部２１が送信装置１からパケットを受信すると、そのタイミングでＴＣＰヘッダ生成部２２がＴＣＰヘッダ５Ａ（または５）を生成する。この際、優先度指定がされていれば、拡張ヘッダ部５２を生成して優先度指標を記述したＴＣＰヘッダ５Ａを生成し、優先度指定がされていなければ、通常のＴＣＰヘッダ５を生成する。ＴＣＰヘッダ生成部２２がＴＣＰヘッダ５Ａ（または５）を生成すると、パケット送信部２３がＴＣＰヘッダ５Ａ（または５）を含むＡＣＫを生成し、送信装置１へ送信する。
【００５０】
（送信装置の処理）
次に、送信装置１による送信量調節処理について説明する。図７は、送信装置１による送信量調節処理を示すフローチャートである。図７において、パケット受信部１３は、受信装置２から送信されたＡＣＫを受信したか否かを判定する（ステップＳ２０）。パケット受信部１３は、受信装置２からＡＣＫを受信しない場合（ステップＳ２０：ＮＯ）、ＡＣＫを受信するまでステップＳ２０の判定を繰り返す。パケット受信部１３は、受信装置２からＡＣＫを受信した場合（ステップＳ２０：ＹＥＳ）、ＡＣＫに含まれるＴＣＰヘッダを抽出する（ステップＳ２１）。そして、パケット受信部１３は、ＴＣＰヘッダのデータオフセットを参照し（ステップＳ２２）、データオフセットが「６以上」であるか否かを判定する（ステップＳ２３）。すなわち、パケット受信部１３は、拡張ヘッダ部５２（図４を参照）を有しているＴＣＰヘッダ５Ａであるか否かを判定する。
【００５１】
パケット受信部１３は、データオフセットが「６以上」であると判定した場合（ステップＳ２３：ＹＥＳ）、ＴＣＰヘッダ５Ａから拡張ヘッダ部５２を取得し、優先度読取部１４に出力する。優先度読取部１４は、パケット受信部１３から拡張ヘッダ５２を入力し、拡張ヘッダ部５２のオプションタイプを参照し（ステップＳ２４）、そのオプションタイプが「１００」であるか否かを判定する（ステップＳ２５）。オプションタイプが「１００」であると判定した場合（ステップＳ２５：ＹＥＳ）、そのオプションは優先度指標オプションであるから、優先度読取部１４は、拡張ヘッダ部５２のオプションバリューから優先度指標を取得する（ステップＳ２６）。そして、優先度読取部１４は、拡張ヘッダ部５２のオプションバリューから取得した優先度指標をパケット送信部１２に出力する。パケット送信部１２は、優先度読取部１４から優先度指標を入力すると、入力した優先度指標に従ってパケットの送信量を調節し（ステップＳ２７）、他の処理として、他のオプションタイプに応じた処理及び通常のＴＣＰヘッダ５を含むＡＣＫに対する処理が行われる（ステップＳ２８）。
【００５２】
一方、パケット受信部１３は、ステップＳ２３の判定において、データオフセットが「６以上」でないと判定した場合（ステップＳ２３：ＮＯ）、他の処理として、他のオプションタイプに応じた処理及び通常のＴＣＰヘッダ５を含むＡＣＫに対する処理が行われる（ステップＳ２８）。また、優先度読取部１４は、ステップＳ２５の判定において、オプションタイプが「１００」でないと判定した場合（ステップＳ２５：ＮＯ）、他の処理として、他のオプションタイプに応じた処理及び通常のＴＣＰヘッダ５を含むＡＣＫに対する処理が行われる（ステップＳ２８）。
【００５３】
このように、送信装置１では、パケット受信部１３が受信装置２からＡＣＫを受信すると、ＡＣＫに含まれるＴＣＰヘッダを抽出し、ＴＣＰヘッダのデータオフセットを参照する。データオフセットが「６以上」であれば、ＴＣＰヘッダから拡張ヘッダ部５２を取得し、優先度読取部１４に出力する。優先度読取部１４は、パケット受信部１３から拡張ヘッダ部５２を入力し、オプションタイプを参照し、「１００」であればオプションバリューから優先度指標を取得し、パケット送信部１２に出力する。パケット送信部１２は、優先度読取部１４から優先度指標を入力し、入力した優先度指標に従って送信量を調節する。
【００５４】
以上のように、実施例１の送信装置１及び受信装置２によれば、複数台の送信装置１−１，１−２，１−３，・・・，１−ｎから１台の受信装置２へデータをアップロードする場合において、受信装置２は、送信装置１から送信されたパケットを受信するタイミングでＴＣＰヘッダを生成し、その際、優先度指定がされていれば、拡張ヘッダ部５２を生成して優先度指標を記述したＴＣＰヘッダを生成し、生成したＴＣＰヘッダを含むＡＣＫを送信装置１へ送信する。一方、送信装置１は、受信装置２から送信されたＡＣＫを受信することにより、受信したＡＣＫに含まれるＴＣＰヘッダを抽出し、抽出したＴＣＰヘッダのデータオフセットが「６以上」であれば、ＴＣＰヘッダに含まれる拡張ヘッダ部５２を参照し、オプションタイプが「１００」であれば、オプションバリューから優先度指標を取得し、取得した優先度指標に従って送信量を調節する。これにより、伝送内容の重要度または緊急度に応じて優先度を指定して送信量を調節することが可能となり、利便性の向上を図ることができる。
【００５５】
なお、実施例１では、送信装置１が、受信装置２により指定された優先度指標を自装置（送信装置１）側で指定された優先度指標よりも優先的に選択し、選択した優先度指標に従って送信量の調節を行うようにしたが、受信装置２で指定された優先度指標によるデータの送信量が許容範囲を超える場合、送信装置１側で指定された優先度指標を選択するようにしてもよい。すなわち、送信装置１のパケット送信部１２は、送信装置１の優先度読取部１４で読み取られた優先度指標（受信装置２で指定された優先度指標）と、予め設定された優先度指標許容範囲とを比較し、優先度指標が優先度指標許容範囲に含まれないと判断した場合、つまりデータの送信量が許容範囲を超えると判断した場合、自装置１側で指定された優先度指標を選択し、選択した優先度指標に従う送信量でデータを送信するようにしてもよい。
【実施例２】
【００５６】
次に、実施例２について詳細に説明する。実施例２は、１台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、各受信装置が受信するデータの重要性または緊急度に応じて送信量を調節する例である。
【００５７】
図８は、実施例２の送信装置及び受信装置を含む全体システムの構成を示す図である。実施例２のシステムは、１台の送信装置１（例えば、１台のサーバ）と、複数台の受信装置２−１，２−２，２−３，・・・，２−ｎ（例えば、複数台のクライアント）とを備えて構成され、１台の送信装置１が複数台の受信装置２−１，２−２，２−３，・・・，２−ｎへ向けて伝送するデータのダウンロードを想定したシステムである。送信装置１と受信装置２−１，２−２，２−３，・・・，２−ｎとはネットワーク経路３により接続される。なお、実施例２の送信装置１及び複数台の受信装置２−１，２−２，２−３，・・・，２−ｎそれぞれの構成は、前述した実施例１による送信装置１及び複数台の受信装置２−１，２−２，２−３，・・・，２−ｎそれぞれの構成と同様に図２で表すことができるので、同じ符号を付けている。
【００５８】
複数台の受信装置２−１，２−２，２−３，・・・，２−ｎ（以下、受信装置２−１，２−２，２−３，・・・，２−ｎを総称して受信装置２という）は、共通の送信装置１から同時にデータをダウンロードする。この際、送信装置１は、受信装置２がダウンロードするデータの重要性などにより、受信装置２に指定される優先度指標に従って送信量を調節する。受信装置２は、送信装置１から送信されたパケットを受信してＡＣＫを返信する際に、図４に示したＴＣＰヘッダ５Ａの拡張ヘッダ部５２に優先度指標を記述する（すなわち、優先度指標を指定する）ことにより、指定した優先度指標に応じた送信量にてデータを送信装置１から受信することが可能となる。
【００５９】
なお、実施例２において、送信装置１は、優先度指標許容範囲が受信装置２毎に設定されている場合、その許容範囲を外れた優先度指標を指定してきた受信装置２に対し、優先度指標の指定を無効とし、送信装置１側で設定された優先度指標に従って送信量を調節するようにしてもよい。
【実施例３】
【００６０】
次に、実施例３について詳細に説明する。実施例１，２では、優先度指標をＴＣＰドライバ（図５に示したＴＣＰドライバ１７，２６に相当）に直接指定する例を示した。これに対し、実施例３は、アプリケーション（図５に示したアプリケーション１９，２８に相当）からＴＣＰドライバに優先度指標を渡す例である。優先度指標をアプリケーションからＴＣＰドライバに渡すために、実施例３では、ＡＰＩ(Application Program Interface)を用いている。
【００６１】
標準的なＡＰＩとしてソケットＡＰＩ(socketAPI)があり、このソケットＡＰＩでは、ｓｅｔｓｏｃｋｏｐｔ（）、ｇｅｔｓｏｃｋｏｐｔ（）関数により、アプリケーションとＴＣＰドライバとの間の補足的な情報の受け渡しを行うことができる。実施例３では、ソケットＡＰＩ形式に準じて、ｓｅｔｓｏｃｋｏｐｔ（）、ｇｅｔｓｏｃｋｏｐｔ（）関数により、アプリケーションから優先度指標の設定及び読み出しを行う。これにより、利用者の指定する優先度指標に従い、データ伝送中であっても優先度指標を指定することが可能となる。この場合、送信装置１では、アプリケーションに定義された関数により優先度指標が直接設定される。また、受信装置２では、アプリケーションに定義された関数により優先度指標が設定され、ＡＣＫ返信の際のＴＣＰヘッダ生成時に、拡張ヘッダ部５２が生成され、その拡張ヘッダ部５２に優先度指標が記述される。
【００６２】
図９は、実施例３の送信装置及び受信装置における機能階層を示す図である。送信装置１及び受信装置２の機能階層は、上位階層から下位階層へ向けて、アプリケーション３０、ＴＣＰ／ＩＰ層（ＴＣＰレイヤ）４０及びＮＩＣ(Network Interface Card)５０により構成される。アプリケーション３０は、ＴＣＰドライバのＴＣＰ通信を受け持つＴＣＰ／ＩＰ層４０にデータの送信を依頼する。このとき、ｓｅｔｓｏｃｋｏｐｔ（）関数を使用して優先度指標を設定する。ＴＣＰ／ＩＰ層４０は、アプリケーション３０から依頼のあったデータをパケット化し、それに優先度指標を含むＴＣＰヘッダを付加してＮＩＣ５０に渡す。ＮＩＣ５０は、ＴＣＰ／ＩＰ層４０から渡されたデータを送信する。また、アプリケーション３０は、ｇｅｔｓｏｃｋｏｐｔ（）関数を使用してＴＣＰヘッダの拡張ヘッダ部５２から優先度指標を読み出す。例えば、受信装置２のアプリケーション３０は、ｓｅｔｓｏｃｋｏｐｔ（）関数を使用して優先度指標を設定し、ＴＣＰ／ＩＰ層４０及びＮＩＣ５０を介して、優先度指標を含むＴＣＰヘッダが付加されたＡＣＫを送信装置１へ送信する。送信装置１のアプリケーション３０は、ｇｅｔｓｏｃｋｏｐｔ（）関数を使用して、ＴＣＰ／ＩＰ層４０及びＮＩＣ５０を介して、受信装置２から受信したＡＣＫのＴＣＰヘッダから優先度指標を取得する。
【００６３】
なお、上記の場合は、送信装置１及び受信装置２のそれぞれにおいて優先度指標を設定する場合であったが、送信装置１及び受信装置２の区別なく、送信装置１の機能及び受信装置２の機能を有する２台の伝送装置が双方向にデータを送受信する場合、各伝送装置が、自装置の送信のために設定する優先度指標と、相手装置に指定する優先度指標を別々に設定する必要がある。各伝送装置は、自装置の送信の優先度指標の設定及び読み出しを行うために、ｓｅｔｓｏｃｋｏｐｔ（ＴＸ＿ＰＲＩＯＲＩＴＹ，…）、ｇｅｔｓｏｃｋｏｐｔ（ＴＸ＿ＰＲＩＯＲＩＴＹ，…）のように引数で明示する。同様に、相手装置の送信に対する優先度指標の設定及び読み出しを行うために、ｓｅｔｓｏｃｋｏｐｔ（ＤＥＳＩＧＮＡＴＥ＿ＰＲＩＯＲＩＴＹ，…）、ｇｅｔｓｏｃｋｏｐｔ（ＤＥＳＩＧＮＡＴＥ＿ＰＲＩＯＲＩＴＹ，…）のように異なる引数で明示する。
【実施例４】
【００６４】
次に、実施例４について詳細に説明する。実施例４は、送信装置１が現在使用している優先度指標を受信装置２へ通知する例である。送信装置１から現在使用している優先度指標を受信装置２へ通知するために、新たなオプションタイプ（１０１）を用いる。
【００６５】
以下の説明では、前述した送信装置１及び受信装置２それぞれの構成を組み合わせた伝送装置について説明する。伝送装置は、送信装置１の送信機能及び受信装置２の受信機能を有する。
【００６６】
図１０は、実施例４の伝送装置により生成されるＴＣＰヘッダ５Ｂの構造を示す図である。図１０において、ＴＣＰヘッダ５Ｂは、相手の伝送装置に優先度指標を設定するための拡張ヘッダ部５２に加えて、現在使用している優先度指標を相手の伝送装置へ通知するための拡張ヘッダ部５３を有している。この拡張ヘッダ部５３は、拡張ヘッダ部５２と同様に、オプションタイプ（１）、オプションタイプ（１０１）、オプションレングス（３）、オプションバリュー（０−２５５）の各１バイトからなる４バイト構成となっている。
【００６７】
オプションタイプ（１０１）のタイプ値１０１は、優先度指標通知オプションを表す番号であり、相手の伝送装置がこのタイプ値を参照することにより、拡張ヘッダ部５３が優先度指標通知オプションを記述したものと判別できる。なお、タイプ値１０１は仮に付けた値であり、必ずしもこの値に限定されるものではない。
【００６８】
伝送装置は、他の伝送装置へデータパケットを送信し、他の伝送装置からＡＣＫを受信する。また、伝送装置は、他の伝送装置からデータパケットを受信し、他の伝送装置へＡＣＫを送信する。ＴＣＰヘッダ５Ｂは、データパケット及びＡＣＫに格納されて送信される。したがって、伝送装置は、他の伝送装置に対し、自伝送装置が指定した優先度指標を設定できると共に、自伝送装置が現在使用している優先度指標を他の伝送装置へ通知することができる。
【００６９】
なお、データパケットにＡＣＫを含めることも可能であり、この場合はＡＣＫを送信する必要がなくなる。要するに、データパケット同士を送受信することにより、他の伝送装置に自伝送装置が指定した優先度指標を設定できると共に、自伝送装置が現在使用している優先度指標を他の伝送装置へ通知することができるので、ＡＣＫを送信する必要がなくなる。
【００７０】
また、優先度指標の設定及び優先度指標の通知は、実施例３に示したようにアプリケーション３０が所定の関数を使用することによって行うことができる。
【００７１】
また、優先度指標通知オプション（タイプ値１０１）を示す拡張ヘッダ部５３は、常に送信する必要はなく、間欠的に送信するようにしてもよいし、優先度指標の読み出し要求という新たなオプション（例えば、タイプ値１０２）を定義して、この新たなオプションを受信したときにタイプ値１０１を示す拡張ヘッダ部５３を送信するようにしてもよい。
【実施例５】
【００７２】
次に、実施例５について詳細に説明する。実施例５は、受信装置２により指定された優先度指標で動作しているときに、所定のタイミングで優先度指標を所定値にリセットする例である。例えば、送信装置１にて指定した優先度指標に戻したり、または、送信装置１において優先度指標を自由に決定したりする。実施例５の送信装置１及び受信装置２の構成は、図２に示した実施例１の送信装置１及び受信装置２の構成と同様であるから、詳細な説明を省略する。
【００７３】
実施例５の送信装置１は、受信装置２からＡＣＫを受信し、ＡＣＫのＴＣＰヘッダに含まれる拡張ヘッダ部５２に従って、現在動作している優先度指標をリセットする場合、現在の優先度指標を予めメモリに保持しておく。送信装置１は、その後、受信装置２から所定値の優先度指標（例えば「０」）を受信した場合、過去に使用していた優先度指標をメモリから読み出し、元の（過去の）優先度指標に戻す。これにより、現在の優先度指標がリセットされる。この場合、受信装置２は、送信装置１が元の優先度指標に戻すための契機となる優先度指標「０」をＡＣＫに含めて送信する。
【００７４】
（送信装置の処理）
図１１は、実施例５の送信装置による送信量調節処理を示すフローチャートである。なお、図１１において、ステップＳ２０〜ステップＳ２６及びステップＳ２８での処理は、図７に示した実施例１の送信装置１における送信量調節処理と同様の処理であるので、説明を省略する。
【００７５】
優先度読取部１４が、ステップＳ２６において、拡張ヘッダ部５２のオプションバリューから優先度指標を取得した後、パケット送信部１２は、優先度指標を優先度読取部１４から入力し、優先度指標が「０」以外であるか否かを判定する（ステップＳ３０）。優先度指標が「０」以外でない場合（ステップＳ３０：ＮＯ）、すなわち「０」の場合、現在の優先度指標を、別パラメータとして保持している優先度指標に戻す（ステップＳ３１）。一方、パケット送信部１２は、優先度指標が「０」以外の場合（ステップＳ３０：ＹＥＳ）、現在の優先度指標と異なるか否かを判定する（ステップＳ３２）。パケット送信部１２は、入力した優先度指標が現在の優先度指標と同じである場合（ステップＳ３２：ＮＯ）、現在の優先度指標に従って送信量を調節する（ステップＳ３３）。一方、パケット送信部１２は、入力した優先度指標が現在の優先度指標と異なる場合（ステップＳ３２：ＹＥＳ）、現在の優先度指標を別パラメータとして保持し（ステップＳ３４）、入力した優先度指標に従って送信量を調節する（ステップＳ３５）。
【００７６】
このように、送信装置１は、受信装置２からの指示により変更した優先度指標を、元の優先度指標に戻すようにした。これにより、受信装置２を操作する利用者の一時的な判断により、送信装置１の優先度指標が変更された場合であっても、受信装置２からの指示により、再度元の優先度指標に復帰させることができる。なお、送信装置１が前回の優先度指標を保持していない場合は、予め設定されたデフォルトの優先度指標に戻すようにしてもよいし、送信装置１にて指定される優先度指標に従うようにしてもよい。
【００７７】
なお、実施例１〜５では、優先度指標を設定する方法として、既存のＴＣＰヘッダを拡張して優先度指標を記述する方法を採用したが、送信装置１と受信装置２との間の伝送開始セッションにおいて、ＳＹＮ，ＳＹＮ−ＡＣＫパケットのＴＣＰヘッダに優先度指標を記述するようにしてもよい。また、既存のＴＣＰヘッダの未使用領域、例えば図３に示したＴＣＰヘッダ５のＵＲＧ、予約済み、緊急ポインタなどを利用して優先度指標を記述するようにしてもよい。
【００７８】
本発明の実施例１〜５による送信装置１のハード構成としては、通常のコンピュータを使用することができる。送信装置１は、ＣＰＵ、ＲＡＭなどの揮発性の記憶媒体、ＲＯＭなどの不揮発性の記憶媒体、及びインターフェースなどを備えたコンピュータによって構成される。本発明の実施例１〜５の送信装置１に備えた送信データバッファ部１１、パケット送信部１２、パケット受信部１３及び優先度読取部１４の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、本発明の実施例１〜５の受信装置２に備えたパケット受信部２１、ＴＣＰヘッダ生成部２２及びパケット送信部２３の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【符号の説明】
【００７９】
１  送信装置
２  受信装置
３  ネットワーク経路
５，５Ａ，５Ｂ  ＴＣＰヘッダ
１１  送信データバッファ部
１２，２３  パケット送信部
１３，２１  パケット受信部
１４  優先度読取部
１７，２６  ＴＣＰドライバ
１８，２７  優先度手動入力部
１９，２８，３０  アプリケーション
２２  ＴＣＰヘッダ生成部
４０  ＴＣＰ／ＩＰ層
５０  ＮＩＣ
５１  データオフセット
５２，５３  拡張ヘッダ部
【図１】
0005520139.tif 000002
【図２】
0005520139.tif 000003
【図３】
0005520139.tif 000004
【図４】
0005520139.tif 000005
【図５】
0005520139.tif 000006
【図６】
0005520139.tif 000007
【図７】
0005520139.tif 000008
【図８】
0005520139.tif 000009
【図９】
0005520139.tif 000010
【図１０】
0005520139.tif 000011
【図１１】
0005520139.tif 000012