(57)【要約】【課題】ＴＣＰ／ＩＰプロトコルを有する既存の装置からの送信要求を受け、既成のＮＩＣを使用して通信品質を劣化させないパケットの高速再送を行う。【解決手段】再送発生検出部１１１は、送信要求Ｑ１を受信し、該パケットを構成する各項目が過去に送信したパケットの各項目と同一か否かを判定する。両者を同一と判定した場合は、予防的再送実施部１１３は、再送間隔設定部１１６を介してパケットの再送間隔時間を設定する。その後、同一の送信要求を生成し、再送間隔設定部１１６で算出された再送間隔時間を経過した時点で、該送信要求をハードウェア制御処理部１１４に引き渡す。ハードウェア制御処理部１１４は、既存のＮＩＣ１０３の主記憶上のＩ／Ｏ空間にマップされたＮ個の制御レジスタ、及びディスクリプタデータバッファ１１５を操作して、該送信要求のパケットをネットワーク上に送信する。【選択図】図１
2011182185.tif 000002
【特許請求の範囲】
【請求項１】
送信要求の入力を受けると、該入力された送信要求を出力し、また、該入力された送信要求が、主記憶装置に記憶された送信済みの送信要求のいずれかと同一か否かを判定する再送発生検出手段と、
前記再送発生検出手段が、前記入力された送信要求が前記主記憶装置に記憶された送信済みの送信要求のいずれかと同一と判定した場合に、再送間隔を設定する再送間隔設定手段と、
前記再送間隔設定手段が設定した再送間隔時間の経過後に、前記判定が成された前記送信要求を出力する予防的再送実施手段と、
前記再送発生検出手段から出力される前記送信要求に従って、既存のＮＩＣ（Network Interface Card）を使用して送信を行うよう制御し、また、前記予防的再送実施手段から出力される前記送信要求に従って、前記既存のＮＩＣを使用して送信を行うよう制御するハードウェア制御処理手段と、
を備えたことを特徴とする送信処理装置。
【請求項２】
前記再送間隔設定手段は、平均送信要求間隔時間と平均送信完了割り込み間隔時間との範囲にある時間を前記再送間隔時間として設定することを特徴とする請求項１に記載の送信処理装置。
【請求項３】
前記再送間隔設定手段は、送信要求情報に記録されている送信要求を引き渡した時刻と、その応答である受信完了割り込み通知時間との差として算出されるターン・アラウンドタイムの半分の時間を前記再送間隔時間として設定することを特徴とする請求項１に記載の送信処理装置。
【請求項４】
前記入力される送信要求は、階層構造の上位に位置し、ＴＣＰ／ＩＰプロトコルを有する既存の装置からの送信要求であることを特徴とする請求項１に記載の送信処理装置。
【請求項５】
ＬＡＮ（Local Area Network）の制御を行うＬＡＮ−ＬＳＩ（ＬＡＮコントローラ）を制御するＬＡＮドライバとして構成され、前記ＬＡＮ−ＬＳＩに対して送信依頼を行うことを特徴とする請求項１に記載の送信処理装置。
【請求項６】
送信要求の入力を受けると、該入力された送信要求を出力し、また、該入力された送信要求が、主記憶装置に記憶された送信済みの送信要求のいずれかと同一か否かを判定する再送発生検出ステップと、
前記再送発生検出ステップから出力される前記送信要求に従って、既存のＮＩＣ（Network Interface Card）を使用して送信を行うよう制御する第１のハードウェア制御処理ステップと、
前記再送発生検出ステップが、前記入力された送信要求が前記主記憶装置に記憶された送信済みの送信要求のいずれかと同一と判定した場合に、再送間隔を設定する再送間隔設定ステップと、
前記再送間隔設定手段が設定した再送間隔時間の経過後に、前記判定が成された前記送信要求を出力する予防的再送実施ステップと、
前記予防的再送実施ステップから出力される前記送信要求に従って、前記既存のＮＩＣを使用して送信を行うよう制御する第２のハードウェア制御処理ステップと、
を有することを特徴とする送信処理方法。
【請求項７】
送信要求の入力を受けると、該入力された送信要求を出力し、また、該入力された送信要求が、主記憶装置に記憶された送信済みの送信要求のいずれかと同一か否かを判定する再送発生検出ステップと、
前記再送発生検出ステップから出力される前記送信要求に従って、既存のＮＩＣ（Network Interface Card）を使用して送信を行うようハードウェア制御処理部を制御する第１の送信制御ステップと、
前記再送発生検出ステップが、前記入力された送信要求が前記主記憶装置に記憶された送信済みの送信要求のいずれかと同一と判定した場合に、再送間隔を設定する再送間隔設定ステップと、
前記再送間隔設定手段が設定した再送間隔時間の経過後に、前記判定が成された前記送信要求を出力する予防的再送実施ステップと、
前記予防的再送実施ステップから出力される前記送信要求に従って、前記既存のＮＩＣを使用して送信を行うよう前記ハードウェア制御処理部を制御する第２の送信制御ステップと、
を有することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は送信処理装置及び送信処理方法並びにコンピュータプログラムに係り、例えば、ＬＡＮ（Local Area Network）ドライバとして構成されて、上位層に位置してＴＣＰ／ＩＰプロトコルを有する既存の装置と、ＮＩＣ（Network Interface Card）を変更することなく、高速なパケットの再送を行う送信処理装置及び送信処理方法並びにコンピュータプログラムに関する。
【背景技術】
【０００２】
ＬＡＮ等のネットワークに接続されてネットワーク通信を行う送信処理装置が、ネットワークにパケットを送信した際に、経路上の機器のリソース不足等によりパケットロスト（Packet Lost、パケットの消失）が生じると、パケットの再送が必要となり、パケットが遅延する点で通信性能が劣化する。
ここで、ネットワーク通信のプロトコルとしては、ＴＣＰプロトコルが一般的に用いられている。ＴＣＰプロトコルに従って通信を行う送信処理装置は、パケットロストの際の再送制御もＴＣＰプロトコルに基づいて行う。例えば、送信処理装置は、ＬＡＮ（Local Area Network）の制御を行うＬＡＮ−ＬＳＩ（ＬＡＮコントローラ）と、該ＬＡＮ−ＬＳＩを制御するプログラムで構成されたＬＡＮドライバを備える情報処理装置（例えば、ネットワークプリンタ、パーソナルコンピュータ、ワークステーション）であり、上位層、例えば、ＩＰ（Internet Protocol ）やＴＣＰ（Transmission Control Protocol）等といったプロトコルの処理部が、応答待ちタイムアウトを検出してパケットの再送要求を出力し、ＬＡＮ−ＬＳＩを制御するＬＡＮドライバが、上位層からの再送要求を受け付けて、該ＬＡＮ−ＬＳＩに対して再送要求を行う。
【０００３】
このように、ＴＣＰプロトコルで採用されているパケットの再送方式の場合、送信処理装置は、応答待ちタイムアウトの検出を契機に再送処理を行い、その再送間隔は数百ミリ秒程度である。これは、一般的なデータセンター内のネットワーク上の伝送遅延時間の数マイクロ秒と比較すると非常に長い時間となっている。再送処理間隔が長いことにより、パケットの送信が遅延し、この点で通信性能が劣化する。また、この再送方式では、Ｎａｇｌｅアルゴリズムを用いた計算も必要となるので、ＣＰＵ負荷も大きくなる。
そこで、特許文献１では、コリジョンエラー（パケット同士の衝突）を検出することにより、ＬＡＮドライバのレベルでパケットの再送処理を行う技術が示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２１８８７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されている技術は、コリジョンエラーの発生で再送の判断を行うため、通信方法が半二重通信の場合にしか適用できず、一般的な通信品質の改善策にはならない。
【０００６】
本発明は、上記従来の問題点に鑑みてなされたものであって、ＬＡＮドライバとして構成されて、使用するＮＩＣ（Network Interface Card）を変更することなく、上位層に位置してＴＣＰ／ＩＰプロトコルを有する既存の装置（例えばプロトコルスタック装置）からの要求を受けた場合にパケットの高速再送を行うことを可能にして、半二重通信以外の通信方式においても通信性能の劣化をより少なくできる送信処理装置及び送信処理方法並びにコンピュータプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る送信処理装置は、送信要求の入力を受けると、該入力された送信要求を出力し、また、該入力された送信要求が、主記憶装置に記憶された送信済みの送信要求のいずれかと同一か否かを判定する再送発生検出手段と、前記再送発生検出手段が、前記入力された送信要求が前記主記憶装置に記憶された送信済みの送信要求のいずれかと同一と判定した場合に、再送間隔を設定する再送間隔設定手段と、前記再送間隔設定手段が設定した再送間隔時間の経過後に、前記判定が成された前記送信要求を出力する予防的再送実施手段と、前記再送発生検出手段から出力される前記送信要求に従って、既存のＮＩＣ（Network Interface Card）を使用して送信を行うよう制御し、また、前記予防的再送実施手段から出力される前記送信要求に従って、前記既存のＮＩＣを使用して送信を行うよう制御するハードウェア制御処理手段と、を備えたことを特徴とする。
【０００８】
また、本発明に係る送信処理方法は、送信要求の入力を受けると、該入力された送信要求を出力し、また、該入力された送信要求が、主記憶装置に記憶された送信済みの送信要求のいずれかと同一か否かを判定する再送発生検出ステップと、前記再送発生検出ステップから出力される前記送信要求に従って、既存のＮＩＣ（Network Interface Card）を使用して送信を行うよう制御する第１のハードウェア制御処理ステップと、前記再送発生検出ステップが、前記入力された送信要求が前記主記憶装置に記憶された送信済みの送信要求のいずれかと同一と判定した場合に、再送間隔を設定する再送間隔設定ステップと、前記再送間隔設定手段が設定した再送間隔時間の経過後に、前記判定が成された前記送信要求を出力する予防的再送実施ステップと、前記予防的再送実施ステップから出力される前記送信要求に従って、前記既存のＮＩＣを使用して送信を行うよう制御する第２のハードウェア制御処理ステップと、を有することを特徴とする。
【０００９】
さらに、本発明に係るコンピュータプログラムは、送信要求の入力を受けると、該入力された送信要求を出力し、また、該入力された送信要求が、主記憶装置に記憶された送信済みの送信要求のいずれかと同一か否かを判定する再送発生検出ステップと、前記再送発生検出ステップから出力される前記送信要求に従って、既存のＮＩＣ（Network Interface Card）を使用して送信を行うようハードウェア制御処理部を制御する第１の送信制御ステップと、前記再送発生検出ステップが、前記入力された送信要求が前記主記憶装置に記憶された送信済みの送信要求のいずれかと同一と判定した場合に、再送間隔を設定する再送間隔設定ステップと、前記再送間隔設定手段が設定した再送間隔時間の経過後に、前記判定が成された前記送信要求を出力する予防的再送実施ステップと、前記予防的再送実施ステップから出力される前記送信要求に従って、前記既存のＮＩＣを使用して送信を行うよう前記ハードウェア制御処理部を制御する第２の送信制御ステップと、を有することを特徴とする。
【発明の効果】
【００１０】
本発明の送信処理装置によれば、例えば、ＬＡＮドライバに適用した場合、上位層に位置してＴＣＰ／ＩＰプロトコルを有する既存のプロトコルスタック装置等から要求されたパケットの再送を、ＮＩＣを制御するドライバ自体で、かつ従来のＴＣＰプロトコルに頼ることなく、ほぼハードウェア装置だけで構成された高速のＬＡＮドライバのレベルで実行するので、例えば、ＩＥＥＥ８０２．３に準拠したＬＡＮに接続されている通信経路上の機器が、リソース不足等の要因でパケットを廃棄している状況等において、パケットの再送時間を短縮することが可能となり、通信性能の劣化をより少なくできる効果が有る。そして、コリジョンエラーではなく、送信済みパケットとの対比に基づいて再送処理を行うので、半二重通信以外の通信方式においても通信性能の劣化を少なくできる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係る送信処理装置の全体構成を示す構成図である。
【図２】同実施形態に係る送信処理装置の再送発生検出部１１１の動作を示すフローチャート図である。
【図３】同実施形態に係る送信処理装置の予防的再送実施部１１３の動作を示すフローチャート図である。
【図４】同実施形態に係る送信処理装置の再送間隔設定部１１６の動作を示すフローチャート図である。
【図５】同実施形態に係る送信処理装置のハードウェア制御処理部１１４が、予防的再送実施部１１３から送信される送信要求を処理する動作を示すフローチャート図である。
【図６】同実施形態において、送信要求間隔時間を受け取った時刻、及び信完了割り込みが通知された時刻を送信要求情報に記録する方法を示した説明図である。
【図７】本発明の第２の実施形態に係る送信処理装置の動作を示すフローチャート図である。
【発明を実施するための形態】
【００１２】
＜第１の実施形態＞
本発明に係る送信処理装置は、例えば、ＩＥＥＥ８０２．３の規定に準拠したＬＡＮに接続される既存のＮＩＣ（Network Interface Card）を経由してネットワーク上の通信を行うサーバ装置であり、特に、ドライバ装置として構成する場合、上位層の既存プロトコルスタック装置からの送信要求が再送の要求であるか否かを判定し、再送の要求であると判定した場合は、所定の再送間隔時間の経過後に送信を行う。
なお、本発明に係る送信処理装置は、ＩＥＥＥ８０２．３の規定に準拠したＬＡＮにおいて、ＴＣＰ／ＩＰプロトコルを有する既存のプロトコルスタック装置と、前記ＮＩＣを変更することなく、高速なパケットの再送を行うことができるように構成している。
以下、本発明の送信処理装置及び送信処理方法の実施形態について、図面を参照して詳細に説明するが、本発明のコンピュータプログラムについては、本発明の送信処理装置を制御するコンピュータプログラムであることから、以下の説明に含まれる。
【００１３】
図１は、本発明の第１の実施形態に係る送信処理装置の全体構成を示す構成図である。
本発明の送信処理装置は、例えばＬＡＮドライバとして構成され、ネットワーク（例えばＬＡＮ）の制御を行う既存のＮＩＣ（例えばＬＡＮ−ＬＳＩ）に対して送信依頼を行うようにすることも可能である。図１において、本発明の送信処理装置は、本発明を実施するための形態として、少なくとも１つのネットワーク（図示は省略）に接続されたドライバ装置１０２（サーバ装置）として構成されている。
ドライバ装置１０２は、上位層に位置付けられる既存のプロトコルスタック装置１０１からの送信要求Ｑ１が、再送要求であるか否かを検出する再送発生検出部１１１と、送信要求情報を格納する主記憶装置１１２と、再送発生検出部１１１が再送要求を検出した場合に、送信要求を生成して再送間隔時間経過後に出力する予防的再送実施部１１３と、既存のＮＩＣ（Network Interface Card）１０３を制御するハードウェア制御処理部１１４と、制御情報を保持するディスクリプタデータバッファ１１５と、再送間隔設定部１１６と、を備える。
【００１４】
ドライバ装置１０２は、上位層に位置付けられる既存のプロトコルスタック装置１０１と接続されており、プロトコルスタック装置１０１からの送信要求Ｑ１に対処してパケットの送信を行うが、この際に、Ｎ個の制御用レジスタから成る既存のＮＩＣ１０３を使用する。
以下、本実施形態の送信処理装置の主要部の機能について説明する。
再送発生検出部１１１は、送信要求Ｑ１を受信し、受信した送信要求Ｑ１をハードウェア制御処理部１１４に引き渡す。また、再送発生検出部１１１は、受信した送信要求Ｑ１のパケットを構成する各項目と、主記憶装置１１２に格納されている送信要求情報とをコピーしたパケット情報の各項目とを比較して、送信要求Ｑ１のパケットを構成する各項目が、過去に送信したパケットを構成する各項目と同一か否かを検証する。
再送発生検出部１１１は、上記検証で、両パケットの全項目が同一であると判断した場合は、該当するデータフロー上で既に再送が発生していると判断する。
【００１５】
他方、再送発生検出部１１１は、両パケットの項目のいずれか１つ以上が同一ではないと判断した場合には、該当するデータフロー上で未だ再送が発生していないと判断する。
該当するデータフロー上で再送が既に発生していると判断された場合、予防的再送実施部１１３は、再送間隔設定部１１６を介してパケットの再送間隔時間を設定する。その後、予防的再送実施部１１３は、同一の送信要求を生成し、再送間隔設定部１１６で算出された再送間隔時間を経過した時点で、該送信要求のパケットをハードウェア制御処理部１１４に引き渡す。以下では、このように、再送間隔時間を経過した後に信号の再送を行うことを「予防的再送」という。
ハードウェア制御処理部１１４は、既存のＮＩＣ１０３の主記憶上のＩ／Ｏ空間にマップされたＮ個の制御レジスタと、この既存のＮＩＣ１０３と情報を受け渡しするディスクリプタデータバッファ１１５の共有情報とを操作して、パケットをネットワーク上に送信する。
【００１６】
（動作の説明）
図２は、本発明の実施形態に係る送信処理装置の再送発生検出部１１１の動作を示すフローチャート図である。
図６は、送信要求間隔時間を受け取った時刻、及び信完了割り込みが通知された時刻を送信要求情報に記録する方法を示した説明図である。
以下、図１，６を参照しながら、図２に示すフローチャート図を使用して、本実施形態に係る送信処理装置の再送発生検出部１１１の動作を説明する。
（ステップＳ１）
まず、ステップＳ１では、再送発生検出部１１１は、既存のプロトコルスタック装置１０１から送信された送信要求Ｑ１を受信し、受信した送信要求Ｑ１を、ハードウェア制御処理部１１３に出力する。ハードウェア制御処理部１１３は、この送信要求Ｑ１に従って、自己内部にマッピングされている既存のＮＩＣ１０３の制御レジスタに該送信要求を設定し、その後、データをネットワーク上に送信する。
また、再送発生検出部１１１は、該送信要求Ｑ１を受信した時刻と、主記憶装置１１２内の送信要求情報に含まれている１つ前の送信要求を受信した時刻との差の時間を主記憶装置１１２内の送信要求情報の「再送要求間隔時間」の項目として記録する。なお、主記憶装置１１２内の送信要求情報への送信要求間隔時間の記録は、図６に示すように、送信要求間隔時間を受け取った時刻と対応させて記録するものとする。
【００１７】
（ステップＳ２）
次に、ステップＳ２では、再送発生検出部１１１は、既存のプロトコルスタック装置１０１から送信要求Ｑ１を受信した時刻を、送信要求情報に上書きする。
（ステップＳ３）
次に、ステップＳ３では、再送発生検出部１１１は、受信した送信要求Ｑ１に含まれている「送信先データの送信先ＩＰアドレス」、「送信先ポート番号」、「プロトコル番号」、及び「シーケンス番号」が、主記憶装置１１２内の送信要求情報に含まれている対応する各項目と、それぞれ一致するか否かを判定し、前記の対応する各項目と全て一致すると判定した場合（ステップＳ３：Ｙｅｓ）はステップＳ５に進み、前記の対応する各項目のいずれか１つでも一致しないと判定した場合（ステップＳ３：Ｎｏ）は、ステップＳ４に進む。
【００１８】
（ステップＳ４）
ステップＳ４では、再送発生検出部１１１は、受信した送信要求Ｑ１に含まれている送信データ（送信先ＩＰアドレス、送信先ポート番号、プロトコル番号、及びシーケンス番号）を、主記憶装置１１２内の送信要求情報に転記し、処理を終了する。なお、転記した送信データの送信先ＩＰアドレス、送信先ポート番号、プロトコル番号、及びシーケンス番号は、同一データフローか否かを判断するために管理しておく。
（ステップＳ５）
ステップＳ５では、再送発生検出部１１１は、受信した送信要求Ｑ１を、データを再送すべきコマンドと判定し、処理を終了する。この後、制御の流れは、予防的再送実施部１１３に移される。
【００１９】
図３は、本発明の実施形態に係る送信処理装置の予防的再送実施部１１３の動作を示すフローチャート図である。
以下、図１を参照しながら、図３に示すフローチャート図を使用して、本実施形態に係る送信処理装置の予防的再送実施部１１３の動作を説明する。
（ステップＳ２１）
まず、ステップＳ２１では、予防的再送実施部１１３は、再送発生検出部１１１から送信要求Ｑ１を引き渡されると、再送間隔設定部１１６を呼び出し、再送間隔設定部１１６によって算出されて既に得られている再送間隔時間を取得する。
【００２０】
（ステップＳ２２）
次に、ステップＳ２２では、予防的再送実施部１１３は、再送パケットのための送信要求を生成する。より具体的には、この生成処理は、既存のプロトコルスタック装置１０１から渡された送信要求のコピーを生成する方法で実行される。
（ステップＳ２３）
次に、ステップＳ２３では、予防的再送実施部１１３は、ステップＳ２１で再送間隔設定部１１６から取得した再送間隔時間分の時間を待ち合わせてから、予防的再送のために、ステップＳ２２で生成した再送パケットの送信要求をハードウェア制御処理部１１４に引き渡す。
【００２１】
図４は、本発明の実施形態に係る送信処理装置の再送間隔設定部１１６の動作を示すフローチャート図である。
以下、図１を参照しながら、図４に示すフローチャート図を使用して、本実施形態に係る送信処理装置の再送間隔設定部１１６の動作を説明する。
（ステップＳ４１）
まず、ステップＳ４１では、再送間隔設定部１１６は、既存のプロトコルスタック装置１０１から送信された送信要求Ｑ１の平均間隔時間を求めるために、主記憶装置１１２内の送信要求情報に含まれる項目：「送信要求間隔時間」の時間値を参照する。なお、この「送信要求間隔時間」の項目は、前述のとおり、既存のプロトコルスタック装置１０１から送信要求を受け取った順番に、該送信要求を受け取った時刻（イベント時刻）に対応付けて送信要求間隔時間を記録しているものである（図６参照）。これにより、最後に記録された送信要求間隔時間から１０ミリ秒前まで遡り、該当する各送信要求間隔時間の平均送信要求間隔時間を計算する（以下、この計算により得られた平均送信要求間隔時間をＡＶＧ１とする）。
【００２２】
（ステップＳ４２）
次に、ステップＳ４２では、再送間隔設定部１１６は、ステップ４１の処理と同様の処理方法で、既存のＮＩＣ１０３からハードウェア制御処理部１１４に通知される送信完了割り込みの出現間隔（図６に示す項目：「割り込み通知間隔時間」の時間値）の平均値を求める。これにより、最後に記録されている送信完了割り込み時間から１０ミリ秒前まで遡り、該当する各送信完了割り込み間隔時間の平均送信完了割り込み間隔時間を計算する（以下、この計算により得られた平均送信完了割り込み間隔時間をＡＶＧ２とする）。  
【００２３】
（ステップＳ４３）
次に、ステップＳ４３では、再送間隔設定部１１６は、平均送信要求間隔時間ＡＶＧ１、及び平均送信完了割り込み間隔時間ＡＶＧ２の範囲に入る時間から、ランダムに１つの時間を取得する。
（ステップＳ４４）
最後に、ステップＳ４４では、再送間隔設定部１１６は、ステップＳ４３でランダムに１つ取り出した時間を、予防的再送実施部１１３に引き渡す再送間隔時間とする。
【００２４】
なお、以下では、ステップＳ４３で、再送間隔設定部１１６が、平均送信要求間隔時間ＡＶＧ１と平均送信完了割り込み間隔時間ＡＶＧ２の範囲から、ランダムに１つの時間を取り出す方法の１例を説明する。
［ｒａｎｄ（）×｛ｍａｘ（ＡＶＧ１，ＡＶＧ２）−ｍｉｎ（ＡＶＧ１，ＡＶＧ２）｝］＋ｍｉｎ（ＡＶＧ１，ＡＶＧ２）として与えられる数式を計算する。ここで、ｒａｎｄ（）は、０から１の範囲のランダムな値とする。また、ｍａｘ（ＡＶＧ１，ＡＶＧ２）は、ＡＶＧ１とＡＶＧ２の値を比較した時の大きい方の値とする。さらに、ｍｉｎ（ＡＶＧ１，ＡＶＧ２）は、ＡＶＧ１とＡＶＧ２の値を比較した時の小さい方の値とする。
【００２５】
図５は、本発明の実施形態に係る送信処理装置のハードウェア制御処理部１１４が、予防的再送実施部１１３から送信される送信要求を処理する動作を示すフローチャート図である。
以下、図１を参照しながら、図５に示すフローチャート図を使用して、本実施形態に係る送信処理装置のハードウェア制御処理部１１４の動作を説明する。
（ステップＳ６１）
まず、ステップＳ６１では、ハードウェア制御処理部１１４は、予防的再送の送信要求を受け取ると、該送信要求を既存のＮＩＣ１０３へ引き渡すために、該送信要求を、ディスクリプタデータバッファ１１５の記録形式に変換する。
（ステップＳ６２）
次に、ステップＳ６２では、ハードウェア制御処理部１１４は、自己内部にマッピングされている既存のＮＩＣ１０３の制御レジスタに該送信要求を設定し、その後、データをネットワーク上に送信する。また、送信完了割り込みが通知された時刻を、図６に示すように記録し、１つ前の送信完了割り込み通知（再送発生検出部１１１から出力される送信要求に基づく送信の送信完了割り込み通知）との時間差を計算する処理も行う。
【００２６】
この実施の形態に係る送信処理装置によれば、例えば、ＬＡＮドライバ（即ちサーバ装置）に適用した場合、上位層に位置してＴＣＰ／ＩＰプロトコルを有する既存のプロトコルスタック装置等から要求されたパケットの予防的再送を、ＮＩＣを制御するドライバ自体で、かつ従来のＴＣＰプロトコルに頼ることなく、ほぼハードウェア装置だけで構成された高速のＬＡＮドライバのレベルで実行できる。これにより、ＴＣＰ／ＩＰプロトコル等のソフトウェアレベルで応答待ちタイムアウトを検出してパケットの再送を行う従来の方法よりも、より短時間で予防的再送を行えるので、ＩＥＥＥ８０２．３に準拠したＬＡＮに接続されている通信経路上の機器が、リソース不足等の要因でパケットを廃棄している状況等において、サーバ装置としてのパケットの再送時間を短縮することが可能となり、通信性能の劣化をより少なくできる効果が有る。そして、コリジョンエラーではなく、送信済みパケットとの対比に基づいて再送処理を行うので、半二重通信以外の通信方式においても通信性能の劣化を少なくできる。
また、ＬＡＮドライバのレベルで予防的再送処理を行うので、上位層では予防的再送処理を行う必要が無く、上位層の処理を行うＣＰＵ負荷を軽減できる。
【００２７】
＜第２の実施形態＞
図１に示す構成の送信処理装置には、その動作について、他の実施形態も可能である。
第２の実施形態では、再送間隔設定部１１６において、再送間隔を算出する際に、主記憶装置１１２内の送信要求情報に記録されている送信要求が発生した時間と、ＴＣＰプロトコルでの送信したパケットに対する応答パケット（ＡＣＫ）の受信完了割り込みが通知された時間とを使用する。
【００２８】
図７は、本発明の第２の実施形態に係る送信処理装置の動作を示すフローチャート図である。
本実施形態における送信処理装置の構成は、図１に示したものと同様である。以下、図１を参照しながら、図７に示すフローチャート図を使用して、本実施形態に係る送信処理装置の動作を説明する。
（ステップＳ８１）
ステップＳ８１では、既存のＮＩＣ１０３が応答パケットを受信すると、ハードウェア制御処理部１１４が、該応答パケットの受信完了割り込みが通知された時間を、図６に示すイベント時刻として記録する。
【００２９】
（ステップＳ８２）
ステップＳ８２では、ハードウェア制御処理部１１４は、受信した応答パケットの確認応答番号が、主記憶装置１１２内の送信要求情報に記録されている送信データのシーケンス番号の続き（即ち、送信データに対する応答）になっているか否かを検証し、受信した応答パケットの確認応答番号が送信要求情報に記録している送信データのシーケンス番号の続きになっていない（即ち、送信データに対する応答でない）場合（ステップＳ８２：Ｎｏ）は、ステップＳ８５に移り、他方、受信した応答パケットの確認応答番号が送信要求情報に記録している送信データのシーケンス番号の続き（即ち、送信データに対する応答）になっている場合（ステップＳ８２：Ｙｅｓ）は、ステップＳ８３に進む。
（ステップＳ８３）
ステップＳ８３では、ハードウェア制御処理部１１４は、主記憶装置１１２内の送信要求情報に記録されている送信要求を引き渡した時刻と、その応答である受信完了割り込み通知時間との差（ターン・アラウンドタイム）を計算する。
【００３０】
（ステップＳ８４）
ステップＳ８４では、ハードウェア制御処理部１１４は、ステップＳ８３で計算したターン・アラウンドタイムの半分の値を再送間隔時間に設定し、処理を終了する。
（ステップＳ８５）
ステップＳ８５では、ハードウェア制御処理部１１４は、主記憶装置１１２内の送信要求情報に記録した該当する受信完了割り込み通知時間を削除し、処理を終了する。
この第２の実施形態に係る送信処理装置によれば、第１の実施形態に係る送信処理装置の効果（通信性能の劣化をより少なくする効果、および、ＣＰＵ負荷軽減の効果）に加えて、ターン・アラウンドタイムの半分の値を再送間隔時間に設定したことにより、再送時間の管理を、システム全体の稼働状況の実態に則して、より適切に行うことができる効果が有る。
【００３１】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【００３２】
本発明は、送信処理装置の構築に適用可能であり、特に、ＬＡＮドライバとして構成されて、上位層に位置してＴＣＰ／ＩＰプロトコルを有する既存の装置と、使用するＮＩＣを変更することなく、高速なパケットの再送を行うことができる送信処理装置の構築に好適である。
【符号の説明】
【００３３】
１０１  プロトコルスタック装置（既存の装置）
１０２  ドライバ装置（本実施形態に係る送信処理装置）
１０３  ＮＩＣ（Network Interface Card）（既存の装置）
１１１  再送発生検出部
１１２  主記憶装置
１１３  予防的再送実施部
１１４  ハードウェア制御処理部
１１５  ディスクリプタデータバッファ
１１６  再送間隔設定部
Ｑ１  送信要求
【図１】
2011182185.tif 000003
【図２】
2011182185.tif 000004
【図３】
2011182185.tif 000005
【図４】
2011182185.tif 000006
【図５】
2011182185.tif 000007
【図６】
2011182185.tif 000008
【図７】
2011182185.tif 000009