(57)【特許請求の範囲】
【請求項１】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、
送信するパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御モジュールと、
前記ＭＡＣ再送制御モジュールによる再送制御を行ったパケット又は高速再送制御を不要と判定したパケットを外部に出力する外部出力モジュールと
を備え、
前記再送制御判定モジュールは、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とするパケット再送制御システム。
【請求項２】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、
通信処理を行うアプリケーションが動作するアプリケーション処理モジュールと、
前記アプリケーション処理モジュールから送出要求のあったパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、
高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御モジュールと、
前記ＭＡＣ再送制御モジュール又は前記パケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールと
を備え、
前記再送制御判定モジュールは、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とするパケット再送制御システム。
【請求項３】
前記ペイロードサイズの規定値が、ＴＣＰのＭａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅを含むトランスポート層で規定された最大データサイズであることを特徴とする請求項１又は請求項２に記載のパケット再送制御システム。
【請求項４】
前記再送制御判定モジュールは、送信データの出力スループットをモニタし、スループットが前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項１又は請求項２に記載のパケット再送制御システム。
【請求項５】
前記スループットの規定値を、ラインレートとすることを特徴とする請求項４に記載のパケット再送制御システム。
【請求項６】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、
通信処理を行うアプリケーションが動作し、データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理モジュールと、
前記アプリケーション処理モジュールから通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、
高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御モジュールと、
前記ＭＡＣ再送制御モジュール又は前記パケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールと
を備え、
前記再送制御判定モジュールは、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とするパケット再送制御システム。
【請求項７】
トランスポート層のプロトコルが動作するプロトコル処理モジュールとを備え、
前記アプリケーション処理モジュールから送信要求されたデータを、プロトコル処理モジュールによりネットワークに送出可能な一定サイズ毎に分割し、パケットとして前記再送制御判定モジュールに送出することを特徴とする請求項２又は請求項６に記載のパケット再送制御システム。
【請求項８】
前記ＭＡＣ再送制御モジュールは、短い値の再送タイムアウトを設定し、パケットをＭＡＣ再送パケットデータ保持部へ格納すると共に、送信パケットにＭＡＣ再送制御用のヘッダを付与して前記外部出力モジュールへ転送することを特徴とする請求項７に記載のパケット再送制御システム。
【請求項９】
前記ＭＡＣ再送制御モジュールは、前記再送制御用のヘッダを付した送信パケットに対するＡＣＫの到着通知が、前記再送タイムアウト時間以内に通知されない場合、前記ＭＡＣ再送パケットデータ保持部から再送するパケットを読み出し、再送送信パケットに対して前記再送制御用のヘッダを付与して前記外部出力モジュールへ転送することを特徴とする請求項８に記載のパケット再送制御システム。
【請求項１０】
外部からのパケットを受信する外部入力モジュールと、
前記外部入力モジュールから送られてきたパケットの種別を判定し、前記受信パケットに前記ＭＡＣ再送制御用のヘッダが無い場合、受信パケットを前記プロトコル処理モジュールに送り、前記ＭＡＣ再送制御用のヘッダがあり、かつ受信パケットが前記ＭＡＣ再送制御モジュールから送出したパケットに対するＡＣＫであれば、ＡＣＫの情報を前記ＭＡＣ再送制御モジュールに通知する受信パケット判定モジュールとを備え、
前記ＭＡＣ再送制御モジュールは、前記受信パケット判定モジュールからの通知を受けると、パケットの前記再送タイムアウトを解除することを特徴とする請求項８又は請求項９に記載のパケット再送制御システム。
【請求項１１】
前記受信パケット判定モジュールは、前記受信パケットに前記ＭＡＣ再送制御用のヘッダがあるが、前記ＭＡＣ再送制御モジュールから送出したパケットに対するＡＣＫでない場合には、ＭＡＣ再送制御用のＡＣＫを、前記外部出力モジュールを介して外部に出力することを特徴とする請求項１０に記載のパケット再送制御システム。
【請求項１２】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、
送信するパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御ステップと、
前記ＭＡＣ再送制御ステップによる再送制御を行ったパケット又は高速再送制御を不要と判定したパケットを外部に出力する外部出力ステップと
を有し、
前記再送制御判定ステップで、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とするパケット再送制御方法。
【請求項１３】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、
データ送信要求を行うアプリケーション処理ステップと、
送信要求のあったパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、
高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐ステップと、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御ステップと、
前記ＭＡＣ再送制御ステップ又は前記パケット処理分岐ステップから送られたパケットを外部に出力する外部出力ステップと
を有し、
前記再送制御判定ステップで、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とするパケット再送制御方法。
【請求項１４】
前記ペイロードサイズの規定値が、ＴＣＰのＭａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅを含むトランスポート層で規定された最大データサイズであることを特徴とする請求項１２又は１３に記載のパケット再送制御方法。
【請求項１５】
前記再送制御判定ステップで、送信データの出力スループットをモニタし、スループットが前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項１２又は請求項１３に記載のパケット再送制御方法。
【請求項１６】
前記スループットの規定値を、ラインレートとすることを特徴とする請求項１５に記載のパケット再送制御方法。
【請求項１７】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、
データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理ステップと、
前記アプリケーション処理ステップから通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、
高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐ステップと、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御ステップと、
前記ＭＡＣ再送制御ステップ又は前記パケット処理分岐ステップから送られたパケットを外部に出力する外部出力ステップと
を有し、
前記再送制御判定ステップで、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とするパケット再送制御方法。
【請求項１８】
トランスポート層のプロトコルが動作するプロトコル処理ステップとを備え、
前記アプリケーション処理ステップから送信要求されたデータを、プロトコル処理ステップによりネットワークに送出可能な一定サイズ毎に分割し、パケットとして前記再送制御判定ステップに送出することを特徴とする請求項１３又は１７に記載のパケット再送制御方法。
【請求項１９】
前記ＭＡＣ再送制御ステップで、短い値の再送タイムアウトを設定し、パケットをＭＡＣ再送パケットデータ保持部へ格納すると共に、送信パケットにＭＡＣ再送制御用のヘッダを付与して前記外部出力ステップへ転送することを特徴とする請求項１８に記載のパケット再送制御方法。
【請求項２０】
前記ＭＡＣ再送制御ステップで、前記再送制御用のヘッダを付した送信パケットに対するＡＣＫの到着通知が、前記再送タイムアウト時間以内に通知されない場合、前記ＭＡＣ再送パケットデータ保持部から再送するパケットを読み出し、再送送信パケットに対して前記再送制御用のヘッダを付与して前記外部出力ステップへ転送することを特徴とする請求項１９に記載のパケット再送制御方法。
【請求項２１】
外部からのパケットを受信する外部入力ステップと、
前記外部入力ステップから送られてきたパケットの種別を判定し、前記受信パケットに前記ＭＡＣ再送制御用のヘッダが無い場合、受信パケットを前記プロトコル処理ステップに送り、前記ＭＡＣ再送制御用のヘッダがあり、かつ受信パケットが前記ＭＡＣ再送制御ステップから送出したパケットに対するＡＣＫであれば、ＡＣＫの情報を前記ＭＡＣ再送制御ステップに通知する受信パケット判定ステップとを有し、
前記ＭＡＣ再送制御ステップで、前記受信パケット判定ステップからの通知を受けると、パケットの前記再送タイムアウトを解除することを特徴とする請求項１９又は請求項２０に記載のパケット再送制御方法。
【請求項２２】
前記受信パケット判定ステップで、前記受信パケットに前記ＭＡＣ再送制御用のヘッダがあるが、前記ＭＡＣ再送制御ステップから送出したパケットに対するＡＣＫでない場合には、ＭＡＣ再送制御用のＡＣＫを、前記外部出力ステップを介して外部に出力することを特徴とする請求項２１に記載のパケット再送制御方法。
【請求項２３】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、
前記コンピュータ装置に、
送信するパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御機能と、
前記ＭＡＣ再送制御機能による再送制御を行ったパケット又は高速再送制御を不要と判定したパケットを外部に出力する外部出力機能と、
前記再送制御判定機能において、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定する実施判定機能と、を実行させることを特徴とするパケット再送制御プログラム。
【請求項２４】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、
前記コンピュータ装置に、
データ送信要求を行うアプリケーション処理機能と、
送信要求のあったパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、
高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐機能と、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御機能と、
前記ＭＡＣ再送制御機能又は前記パケット処理分岐機能から送られたパケットを外部に出力する外部出力機能と、
前記再送制御判定機能において、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定する実施判定機能と、を実行させることを特徴とするパケット再送制御プログラム。
【請求項２５】
前記ペイロードサイズの規定値が、ＴＣＰのＭａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅを含むトランスポート層で規定された最大データサイズであることを特徴とする請求項２３又は請求項２４に記載のパケット再送制御プログラム。
【請求項２６】
前記再送制御判定機能で、送信データの出力スループットをモニタし、スループットが前記所定のルールとして設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項２３又は請求項２４に記載のパケット再送制御プログラム。
【請求項２７】
前記スループットの規定値を、ラインレートとすることを特徴とする請求項２６に記載のパケット再送制御プログラム。
【請求項２８】
トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、
前記コンピュータ装置に、
データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理機能と、
前記アプリケーション処理機能から通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、
高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐機能と、
高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御機能と、
前記ＭＡＣ再送制御機能又は前記パケット処理分岐機能から送られたパケットを外部に出力する外部出力機能と、
前記再送制御判定機能において、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定する実施判定機能と、を実行させることを特徴とするパケット再送制御プログラム。
【請求項２９】
トランスポート層のプロトコルが動作するプロトコル処理機能とを備え、
前記アプリケーション処理機能から送信要求されたデータを、プロトコル処理機能によりネットワークに送出可能な一定サイズ毎に分割し、パケットとして前記再送制御判定機能に送出することを特徴とする請求項２４又は請求項２８に記載のパケット再送制御プログラム。
【請求項３０】
前記ＭＡＣ再送制御機能で、短い値の再送タイムアウトを設定し、パケットをＭＡＣ再送パケットデータ保持部へ格納すると共に、送信パケットにＭＡＣ再送制御用のヘッダを付与して前記外部出力機能へ転送することを特徴とする請求項２９に記載のパケット再送制御プログラム。
【請求項３１】
前記ＭＡＣ再送制御機能で、前記再送制御用のヘッダを付した送信パケットに対するＡＣＫの到着通知が、前記再送タイムアウト時間以内に通知されない場合、前記ＭＡＣ再送パケットデータ保持部から再送するパケットを読み出し、再送送信パケットに対して前記再送制御用のヘッダを付与して前記外部出力機能へ転送することを特徴とする請求項３０に記載のパケット再送制御プログラム。
【請求項３２】
外部からのパケットを受信する外部入力機能と、
前記外部入力機能から送られてきたパケットの種別を判定し、前記受信パケットに前記ＭＡＣ再送制御用のヘッダが無い場合、受信パケットを前記プロトコル処理機能に送り、前記ＭＡＣ再送制御用のヘッダがあり、かつ受信パケットが前記ＭＡＣ再送制御機能から送出したパケットに対するＡＣＫであれば、ＡＣＫの情報を前記ＭＡＣ再送制御機能に通知する受信パケット判定機能とを有し、
前記ＭＡＣ再送制御機能で、前記受信パケット判定機能からの通知を受けると、パケットの前記再送タイムアウトを解除することを特徴とする請求項３０又は請求項３１に記載のパケット再送制御プログラム。
【請求項３３】
前記受信パケット判定機能で、前記受信パケットに前記ＭＡＣ再送制御用のヘッダがあるが、前記ＭＡＣ再送制御機能から送出したパケットに対するＡＣＫでない場合には、ＭＡＣ再送制御用のＡＣＫを、前記外部出力機能を介して外部に出力することを特徴とする請求項３２に記載のパケット再送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの再送制御システムに関し、特に、ネットワークの上位層がＴＣＰ（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）などの再送処理を行うプロトコルである場合の下位層のパケットのパケット再送制御方法に関する。
【背景技術】
【０００２】
ＴＣＰには再送タイムアウトというパラメータが存在し、ネットワークの途中経路でパケットが廃棄された際、ＴＣＰスタックは再送タイムアウトが経過するのを待ってから該当パケットを再送する。一般的にはＴＣＰスタックはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に実装されている。【０００３】
ここで、ＯＳはソフトウェアで実装されているため、ＴＣＰの再送タイムアウトを高い精度で判定できない。例えば、Ｌｉｎｕｘの単位時間（Ｊｉｆｆｉｅｓ）は１０ミリ秒単位であるため、Ｌｉｎｕｘの標準的なＴＣＰスタックは再送タイムアウトを１０ミリ秒未満に短縮できない。【０００４】
データセンタのようなＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）が非常に短いネットワークでは、再送タイムアウトをマイクロ秒単位にまで短縮することにより、ＦＣＴ（Ｆｌｏｗ  Ｃｏｍｐｌｅｔｉｏｎ  Ｔｉｍｅ）を減少させ、通信効率を向上させることができる。しかし、ＯＳ上で動作するＴＣＰスタックは、前述の理由により、再送タイムアウトをマイクロ秒レベルまで短縮できないため、そのようなネットワークにおいてＦＣＴを減少させることができない。【０００５】
この問題を解決するため、非特許文献１に開示されるようなパケット再送制御システムが関連技術として提案されている。この非特許文献１に記載のパケット再送制御システムによれば、ＴＣＰ層よりも下位のＭＡＣ層にてマイクロ秒レベルのタイムアウト判定を行ってパケットの再送制御を実施する。これにより、ＯＳやＴＣＰスタックの構成を変えることなく、ＲＴＴの短いネットワークにおいてＦＣＴを減少させ通信効率を上げることができる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】高道  透，鴫原  正博，福知  清，”テラビット級ＬＡＮ  に向けた超高速ＭＡＣ  方式の検討，Ｕｌｔｒａ−Ｈｉｇｈ  Ｓｐｅｅｄ  ＭＡＣ  Ｔｅｃｈｎｏｌｏｇｙ  ｆｏｒ  Ｔｅｒａｂｉｔ−Ｃｌａｓｓ  ＬＡＮ”，  電子情報通信学会通信ソサイエティ大会，  ２００８年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
関連技術によるパケット再送制御技術の第１の問題点は、Ｓｈｏｒｔ  Ｆｌｏｗ（ショートフロー）でしかＭＡＣ層の再送制御の効果が得られないことである。【０００８】
その理由は、Ｌｏｎｇ  Ｆｌｏｗ（ロングフロー）のデータ転送時は、連続した３つ以上の重複ＴＣＰ−ＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットによりＴＣＰのＦａｓｔ  Ｒｅｔｒａｎｓｍｉｔ機能が起動するために、再送タイムアウトを待たずに欠落したパケットが再送されるからである。【０００９】
そのため、パケット再送制御技術の再送タイムアウトを待たずして、ＴＣＰレベルでパケットが再送されるため、Ｌｏｎｇ  Ｆｌｏｗではパケット再送制御技術の効果が得られない。【００１０】
なお、Ｓｈｏｒｔ  ＦｌｏｗとはＴＣＰフローあたりの転送データサイズが小さいＦｌｏｗを指す。具体的には１、２パケット程度で構成されるＦｌｏｗを指す。また、Ｓｈｏｒｔ  Ｆｌｏｗに対し、Ｌｏｎｇ  ＦｌｏｗはＴＣＰフローあたりの転送データサイズが大きいＦｌｏｗを指す。【００１１】
一方、Ｓｈｏｒｔ  Ｆｌｏｗの場合は、Ｆａｓｔ  Ｒｅｔｒａｎｓｍｉｔのトリガとなる連続した３つ以上の重複ＡＣＫが発生しない。従って、パケット廃棄が発生しても、ＴＣＰによる欠落したパケットの再送はＴＣＰの再送タイムアウトまで行われない。【００１２】
第２の問題点は、ＴＣＰのＬｏｎｇ  Ｆｌｏｗの輻輳発生時にパケット廃棄率が上昇することである。【００１３】
その理由は、経路上のスイッチ（ネットワークスイッチ）でパケット廃棄が起きても、パケット再送制御技術により欠落したパケットがＭＡＣ層で再送されるため、ＴＣＰ層ではパケットの廃棄を検知できず、輻輳が発生してもＴＣＰの輻輳アルゴリズムが働かず送出レートが減少しないためである。【００１４】
（発明の目的）
本発明の目的は、高速再送制御をＭＡＣ層の高速パケット再送制御の効果が得られるＳｈｏｒｔ  Ｆｌｏｗのみに適用し、高速パケット再送制御により悪影響が出るＬｏｎｇ  Ｆｌｏｗの転送時は高速再送制御を行わないような、動的な切り替え機能を実現するパケット再送制御システム、パケット再送制御方法および再送制御プログラムを提供することにある。【００１５】
本発明の他の目的は、ホスト上のプロトコルスタックを改変せず、既存のＴＣＰのプロトコルスタックのままで、動的な切り替えを実現するパケット再送制御システム、パケット再送制御方法および再送制御プログラムをことである。
【課題を解決するための手段】
【００１６】
本発明の第１のパケット再送制御システムは、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、通信処理を行うアプリケーションが動作するアプリケーション処理モジュールと、アプリケーション処理モジュールから送出要求のあったパケットについて、所定のルールに基づき下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御モジュールと、ＭＡＣ再送制御モジュール又はパケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールとを含む。【００１７】
本発明の第２のパケット再送制御システムは、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、通信処理を行うアプリケーションが動作し、データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理モジュールと、アプリケーション処理モジュールから通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御モジュールと、ＭＡＣ再送制御モジュール又はパケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールとを含む。【００１８】
本発明の第１のパケット再送制御方法は、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、データ送信要求を行うアプリケーション処理ステップと、送信要求のあったパケットについて、所定のルールに基づき下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐ステップと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御ステップと、ＭＡＣ再送制御ステップ又はパケット処理分岐ステップから送られたパケットを外部に出力する外部出力ステップとを有する。【００１９】
本発明の第２のパケット再送制御方法は、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理ステップと、アプリケーション処理ステップから通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐ステップと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御ステップと、ＭＡＣ再送制御ステップ又はパケット処理分岐ステップから送られたパケットを外部に出力する外部出力ステップとを有する。【００２０】
本発明の第１のパケット再送制御プログラムは、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、コンピュータ装置に、データ送信要求を行うアプリケーション処理機能と、送信要求のあったパケットについて、所定のルールに基づき下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐機能と、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御機能と、ＭＡＣ再送制御機能又はパケット処理分岐機能から送られたパケットを外部に出力する外部出力機能と、を実行させる。【００２１】
本発明の第２のパケット再送制御プログラムは、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、コンピュータ装置に、データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理機能と、アプリケーション処理機能から通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐機能と、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うＭＡＣ再送制御機能と、ＭＡＣ再送制御機能又はパケット処理分岐機能から送られたパケットを外部に出力する外部出力機能と、を実行させる。
【発明の効果】
【００２２】
本発明によれば、送信パケットについて、ＭＡＣ層の高速再送制御が有効に働くＳｈｏｒｔ  ＦｌｏｗのみＭＡＣ再送制御を実施し、ＭＡＣ層の高速再送制御が悪影響を与えるＬｏｎｇ  Ｆｌｏｗの時にはＭＡＣ再送制御を実施しないように動的に制御することが可能になることである。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施の形態によるパケット再送制御システムの構成例を示すブロック図である。
【図２】第１の実施の形態における送信処理の動作を示すフローチャートである。
【図３】第１の実施の形態における受信処理の動作を示すフローチャートである。
【図４】第１の実施の形態における動作の具体例を示す図である。
【図５】本発明の第２の実施の形態の送信処理の動作を示すフローチャートである。
【図６】本発明の第３の実施の形態の送信処理の動作を示すフローチャートである。
【図７】本発明の第４の実施の形態の構成を示すブロック図である。
【図８】本発明のパケット再送制御システムのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２５】
（第１の実施の形態）
図１を参照すると、本発明の第１の実施の形態に係るパケット再送制御システム１は、プログラム処理装置１００と、ネットワークインタフェース装置２００と、記憶装置３００とを含む。
【００２６】
プログラム処理装置１００は、アプリケーションを実行するアプリケーション処理モジュール１０１、ＴＣＰなどのプロトコル処理を実施するプロトコル処理モジュール１０２を含む。
【００２７】
プログラム処理装置１００は、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）をはじめとするホストのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等により実現される。
【００２８】
アプリケーション処理モジュール１０１は、ネットワーク処理を行うアプリケーションが動作し、ネットワークデータの送受信の要求をプロトコル処理モジュール１０２に対して行う。
【００２９】
プロトコル処理モジュール１０２は、ホストのＣＰＵで動作するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のネットワークスタックであり、ソフトウェアで実現される。プロトコル処理モジュール１０２では、ＴＣＰなどの再送制御が含まれるネットワークプロトコルが動作している。
【００３０】
ネットワークインタフェース装置２００は、パケットの再送制御判定を行う再送制御判定モジュール２０１と、再送制御有効パケットと再送制御無効パケットを振り分けるパケット処理分岐モジュール２０２と、パケットの再送制御を行うＭＡＣ再送制御モジュール２０３と、パケットを装置外のネットワークに送出する外部出力モジュール２０４と、装置外のネットワークから到着したパケットを受信する外部入力モジュール２０５と、受信パケットの種別を判定する受信パケット種別判定モジュール２０６とを含む。
【００３１】
ネットワークインタフェース装置２００は、ホストの拡張カードやオンボードで搭載されるＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）を想定している。
【００３２】
再送制御判定モジュール２０１は、パケットの有効バイト長をカウントすることにより送出パケットのパケットサイズを求め、マイクロ秒単位の高速タイムアウト（ここではＭＡＣ再送制御と呼称する）による再送制御を実現するか否かを判定する。
【００３３】
本実施の形態の再送制御判定モジュール２０１は、パケットサイズが、ＭＳＳ（Ｍａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅ）より小さければＭＡＣ再送制御を有効にし、ＭＳＳに等しければＭＡＣ再送制御を無効と判定する。
【００３４】
ここで言うＭＳＳとＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｆｅｒ  Ｕｎｉｔ）との関係は、ＴＣＰの規定により以下の式で定義される。
【００３５】
ＭＳＳ  ＝  ＭＴＵ−（Ｅｔｈｅｒｎｅｔヘッダサイズ）−（ＭＡＣ再送制御用ヘッダサイズ）−（ＴＣＰＩＰヘッダサイズ）
【００３６】
パケット処理分岐モジュール２０２は、再送制御判定モジュール２０１にて再送制御が有効と判定されたパケットと無効と判定されたパケットを振り分ける。
【００３７】
有効と判定されたパケットは、パケット処理分岐モジュール２０２でＭＡＣ再送制御モジュール２０３に振り分けられ、ＭＡＣ再送制御モジュール２０３によって再送制御が行なわれる。無効と判定されたパケットは、パケット処理分岐モジュール２０２で外部出力モジュール２０４に振り分けられ、外部出力モジュール２０４によって外部に出力される。
【００３８】
ＭＡＣ再送制御モジュール２０３は、有効と判定されたパケットについて短い再送タイムアウトによるＭＡＣ再送制御を行う。
【００３９】
ＭＡＣ再送制御モジュール２０３は、パケット処理分岐モジュール２０２から転送されたパケットに再送タイムアウトをセットし、記憶装置３００のＭＡＣ再送パケットデータ保持部３０１にパケットデータを保持する。
【００４０】
次いで、ＭＡＣ再送制御モジュール２０３は、パケット処理分岐モジュール２０２から転送されたパケットにＭＡＣ再送制御用のヘッダを付与し、外部出力モジュール２０４に転送する。
【００４１】
また、ＭＡＣ再送制御モジュール２０３は、外部出力モジュール２０４から送出されたパケットに対するＡＣＫの到着前に再送タイムアウトが経過した場合、ＭＡＣ再送パケットデータ保持部３０１から再送パケットデータを読み出し、再度ＭＡＣ再送制御用のヘッダを付与し、外部出力モジュール２０４へ再送パケットを転送する。
【００４２】
外部出力モジュール２０４は、パケット処理分岐モジュール２０２、もしくはＭＡＣ再送制御モジュール２０３から転送されてきたパケットを装置外のネットワークへ送出する。
【００４３】
外部入力モジュール２０５は、装置外のネットワークから到着したパケットを受信する。受信したパケットは受信パケット種別判定モジュール２０６へ転送される。
【００４４】
受信パケット種別判定モジュール２０６は、受信したパケットの種別を確認する。
【００４５】
受信したパケットの種別がＭＡＣ再送制御のＡＣＫである場合、受信パケット種別判定モジュール２０６は、その旨をＭＡＣ再送制御モジュール２０３に通知し、ＭＡＣ再送制御モジュール２０３にて再送タイムアウトの解除処理や再送用バッファ領域の解放処理を実行する。
【００４６】
受信したパケットの種別がＭＡＣ再送制御用ヘッダの付いたデータである場合、受信パケット種別判定モジュール２０６は、受信したパケットのヘッダ情報をＭＡＣ再送制御モジュール２０３に通知して、ＭＡＣ再送制御のＡＣＫを、外部出力モジュール２０４を介して対向ホストに送出し、プログラム処理装置１００に受信データを転送する。
【００４７】
受信したパケットの種別がそれ以外であれば、受信パケット種別判定モジュール２０６は、受信パケットデータをプログラム処理装置１００に転送する。
【００４８】
記憶装置３００は、ＭＡＣ再送パケットデータ保持部３０１を含む。記憶装置３００としては、ＮＩＣに搭載されるメモリを想定している。ＭＡＣ再送パケットデータ保持部３０１には、ＭＡＣ再送用のパケットデータを格納する。
【００４９】
（第１の実施の形態の動作の説明）
次に図を参照して本実施の形態によるパケット再送制御システム１の動作について詳細に説明する。
【００５０】
（データ送信処理の動作の説明）
まず、図１、図２を参照して本実施の形態におけるデータ送信処理の動作について詳細に説明する。
【００５１】
アプリケーション処理モジュール１０１から送信要求のあったデータは、プロトコル処理モジュール１０２に供給される。
【００５２】
プロトコル処理モジュール１０２は、送信要求のあったデータのデータ長がＭＳＳより大きいか否かについて確認し、ＭＳＳより大きい場合、ＭＳＳサイズ毎に送信データを分割する（ステップＡ１〜Ａ３）。
【００５３】
また、プロトコル処理モジュール１０２は、送信データをパケットの形に生成し、生成した送信パケットをネットワークインタフェース装置２００に転送する（ステップＡ４）。
【００５４】
ネットワークインタフェース装置２００に転送された送信パケットは、再送制御判定モジュール２０１により、再送制御判定が行なわれる。
【００５５】
再送制御判定モジュール２０１は、送信パケットの有効バイト長をカウントして送信パケットのデータサイズを求め、送信パケットのデータサイズとヘッダサイズからペイロードサイズを求め、送信パケットのペイロードサイズをＭＳＳと比較する（ステップＡ５、Ａ６）。
【００５６】
再送制御判定モジュール２０１は、送信パケットのペイロードサイズがＭＳＳに等しい場合、送信パケットを再送制御無効パケットと判定し、送信パケットのペイロードサイズがＭＳＳ未満の場合は、送信パケットを再送制御有効パケットと判定し、パケット処理分岐モジュール２０２へ送信パケットを転送する。
【００５７】
パケット処理分岐モジュール２０２は、再送制御送信パケットが再送制御有効であるか再送制御無効であるかをチェックする。
【００５８】
送信パケットが再送制御無効パケットの場合、パケット処理分岐モジュール２０２は、送信パケットを外部出力モジュール２０４へ転送し、外部出力モジュール２０４は、転送されてきた送信パケットをネットワークに送出する（ステップＡ６、Ａ１１）。
【００５９】
送信パケットが再送制御有効パケットの場合、パケット処理分岐モジュール２０２は、送信パケットをＭＡＣ再送制御モジュール２０３に転送する。
【００６０】
ＭＡＣ再送制御モジュール２０３は、送信パケットに対してＭＡＣ再送制御を行う。
【００６１】
ＭＡＣ再送制御モジュール２０３は、まずＭＡＣ再送タイムアウトを短い値（例えばマイクロ秒オーダー）で設定する（ステップＡ８）。
【００６２】
次いで、ＭＡＣ再送制御モジュール２０３は、送信パケットをＭＡＣ再送パケットデータ保持部３０１へ格納する（ステップＡ９）。
【００６３】
次いで、ＭＡＣ再送制御モジュール２０３は、送信パケットにＭＡＣ再送制御用のヘッダを付与し（ステップＡ１０）、ＭＡＣ再送制御用のヘッダを付与した送信パケットを外部出力モジュール２０４へ転送する。
【００６４】
外部出力モジュール２０４は、ＭＡＣ再送制御モジュール２０３から転送されてきた送信パケットをネットワークに送出する（ステップＡ１１）。
【００６５】
また、ＭＡＣ再送制御モジュール２０３は、ＭＡＣ再送制御用のヘッダを付した送信パケットに対するＭＡＣ再送制御用ＡＣＫの到着通知が、再送タイムアウト時間以内に受信パケット種別判定モジュール２０６より通知されない場合、ＭＡＣ再送パケットデータ保持部３０１から再送パケットデータを読み出し、再送処理を行う。
【００６６】
ＭＡＣ再送制御モジュール２０３は、再送する送信パケットに対しても再送制御用ヘッダを付与し、外部出力モジュール２０４へ再送パケットを転送する。
【００６７】
（データ受信処理の動作の説明）
次に図１、図３を参照して本実施の形態におけるデータ受信処理の動作について詳細に説明する。
【００６８】
外部から到着したパケット（受信パケット）は、ネットワークインタフェース装置２００の外部入力モジュール２０５にて受信され、外部入力モジュール２０５から受信パケット種別判定モジュール２０６へ転送される（ステップＢ１）。
【００６９】
受信パケット種別判定モジュール２０６は、受信パケットの種別を判定するする（ステップＢ２）。
【００７０】
判定の結果、受信パケットにＭＡＣ再送制御用のヘッダが無い場合、受信パケット種別判定モジュール２０６は、受信パケットを、ＭＡＣ再送制御を行わないパケットと認識し、受信パケットをプログラム処理装置１００に転送する。転送された受信パケットについては、プロトコル処理モジュール１０２において受信プロトコル処理が実施される（ステップＢ３、Ｂ９）。
【００７１】
ステップＢ３で、受信パケットにＭＡＣ再送制御用のヘッダが付されていた場合、そのパケットが、送信したＭＡＣ再送制御用ヘッダのついたデータに対するＡＣＫであるかどうかを判別する（ステップＢ４）。
【００７２】
ＭＡＣ再送制御用ヘッダのついたデータに対するＡＣＫであるならば、受信パケット種別判定モジュール２０６は、その旨をＭＡＣ再送制御モジュール２０３へ通知する（ステップＢ５）。通知を受けたＭＡＣ再送制御モジュール２０３は、該当パケットのＭＡＣ再送タイムアウトのエントリを解除、ＭＡＣ再送用バッファ領域を解除する（ステップＢ６、Ｂ７）。
【００７３】
受信パケットにＭＡＣ再送制御用のヘッダが付属していたがＡＣＫでは無い場合は、受信パケット種別判定モジュール２０６は、受信パケットをＭＡＣ再送制御用ヘッダの付属したデータ受信と認識し、ＭＡＣ再送制御用のＡＣＫを、外部出力モジュール２０４を介して対向ホストに送信し（ステップＢ８）、受信データをプログラム処理装置１００に転送する（ステップＢ９）。ＭＡＣ再送制御用のＡＣＫの送信先は、送信元MACアドレスである。
【００７４】
受信パケットがプログラム処理装置１００に転送されると、プロトコル処理モジュール１０２は、受信パケットをデータの形に結合し、受信データをアプリケーション処理モジュール１０１に転送する（ステップＢ９〜Ｂ１１）。
【実施例１】
【００７５】
次に、具体的な動作例について実施例をあげて説明する。図４は、第１の実施の形態の具体的な動作例の１つとして、ＭＳＳより短いデータ、またはＭＳＳより長いデータを転送する場合の例を示す図である。【００７６】
（構成の説明）
図４では、ホスト１のアプリケーション処理モジュール１０１Ａから、ＭＳＳ未満の短いデータサイズであるデータＡを転送した場合と、アプリケーション処理モジュール１０１Ａから、ＭＳＳより長いデータサイズのデータＢを転送した場合を示している。【００７７】
ホスト１は、パケット再送制御システム１Ａを有する。パケット再送制御システム１Ａは、アプリケーション処理モジュール１０１Ａ及びプロトコル処理モジュール１０２Ａを備えるプログラム処理装置１００Ａと、再送制御判定モジュール２０１Ａ、パケット処理分岐モジュール２０２Ａ、ＭＡＣ再送制御モジュール２０３Ａ、外部出力モジュール２０４Ａ、外部入力モジュール２０５Ａ、及び受信パケット種別判定モジュール２０６Ａを備えるネットワークインタフェース装置２００Ａと、ＭＡＣ再送パケットデータ保持部３０１Ａを備える記憶装置３００Ａとを含む。【００７８】
ホスト２は、パケット再送制御システム１Ｂを有する。パケット再送制御システム１Ｂは、アプリケーション処理モジュール１０１Ｂ及びプロトコル処理モジュール１０２Ｂを備えるプログラム処理装置１００Ｂと、再送制御判定モジュール２０１Ｂ、パケット処理分岐モジュール２０２Ｂ、ＭＡＣ再送制御モジュール２０３Ｂ、外部出力モジュール２０４Ｂ、外部入力モジュール２０５Ｂ、及び受信パケット種別判定モジュール２０６Ｂを備えるネットワークインタフェース装置２００Ｂと、ＭＡＣ再送パケットデータ保持部３０１Ｂを備える記憶装置３００Ｂとを含む。【００７９】
本実施例におけるプログラム処理装置及びアプリケーション処理モジュール、プロトコル処理モジュール、ネットワークインタフェース装置及び再送制御判定モジュール、パケット処理分岐モジュール、ＭＡＣ再送制御モジュール、外部出力モジュール、外部入力モジュール、記憶装置及びＭＡＣ再送パケットデータ保持部は、第1の実施の形態と同等の機能を有する。【００８０】
（動作の説明）
図４に示すように、例えばホスト１のアプリケーション処理モジュール１０１Ａから、ＭＳＳ未満の短いデータサイズであるデータＡを転送するとする。【００８１】
アプリケーション処理モジュール１０１Ａは、データＡを、プロトコル処理モジュール１０２へ転送する。【００８２】
プロトコル処理モジュール１０２Ａは、データＡに対してＴＣＰ処理を実施し、データＡにＭＡＣヘッダ、ＴＣＰＩＰヘッダを付与したＴＣＰパケットＡを生成する。【００８３】
次いで、プロトコル処理モジュール１０２Ａは、ＴＣＰパケットＡをネットワークインタフェース装置２００Ａに転送する。【００８４】
ネットワークインタフェース装置２００Ａでは、まず、再送制御判定モジュール２０１Ａが再送制御判定を行う。【００８５】
再送制御判定モジュール２０１Ａは、ＴＣＰパケットＡの有効バイト長をカウントしてパケットサイズを求め、ＴＣＰパケットＡのパケットサイズからＭＡＣヘッダ、ＴＣＰＩＰヘッダを除いたペイロードサイズがＭＳＳ未満か否かを判別する。【００８６】
ＴＣＰパケットＡはＭＳＳ未満の短いデータサイズであるため、再送制御判定モジュール２０１Ａは、ＴＣＰパケットＡを再送制御有効パケットと判定し、ＴＣＰパケットＡをパケット処理分岐モジュール２０２Ａへ転送する。【００８７】
パケット処理分岐モジュール２０２Ａは、ＴＣＰパケットＡが再送制御有効パケットか再送制御無効パケットであるかを確認する。【００８８】
ＴＣＰパケットＡは再送制御有効パケットであるため、パケット処理分岐モジュール２０２Ａは、ＴＣＰパケットＡをＭＡＣ再送制御モジュール２０３Ａへ転送する。【００８９】
ＭＡＣ再送制御モジュール２０３Ａは、まずＭＡＣ再送タイムアウトを短い値、例えばマイクロ秒オーダーで設定し、ＴＣＰパケットＡをＭＡＣ再送パケットデータ保持部３０１へと格納し、次いで、ＴＣＰパケットＡにＭＡＣ再送制御用のヘッダを付与して、外部出力モジュール２０４Ａへ転送する。【００９０】
外部出力モジュール２０４Ａは、ＴＣＰパケットＡをネットワークに送出する。【００９１】
ネットワークに送出されたＴＣＰパケットＡは、ホスト２のネットワークインタフェース装置２００Ｂの外部出力モジュール２０５Ｂにて受信さる。【００９２】
外部出力モジュール２０５Ｂは、受信したＴＣＰパケットＡを受信パケット種別判定モジュール２０６Ｂに転送する。【００９３】
受信パケット種別判定モジュール２０６Ｂは、ＴＣＰパケットＡのパケットヘッダをチェックし、パケットの種別を確認する。【００９４】
ＴＣＰパケットＡは再送制御有効パケットであるため、受信パケット種別判定モジュール２０６Ｂは、ＴＣＰパケットＡをＭＡＣ再送制御情報が付与された受信データと判定し、外部出力モジュール２０４Ｂを介してホスト１にＭＡＣ再送制御用のＡＣＫを送信し、ＴＣＰパケットＡをホスト２のプログラム処理装置１００Ｂに転送する。【００９５】
プログラム処理装置１００Ｂでは、まず、プロトコル処理モジュール１０２Ｂが受信ＴＣＰ処理を行う。【００９６】
プロトコル処理モジュール１０２Ｂは、ＴＣＰパケットＡをデータＡへと再構築し、アプリケーション処理モジュール１０２ＢへデータＡを転送する。【００９７】
次に、ホスト１のアプリケーション処理モジュール１０１Ａから、ＭＳＳより長いデータサイズのデータＢを転送するとする。【００９８】
アプリケーション処理モジュール１０１Ａは、データＢを、プロトコル処理モジュール１０２へ転送する。【００９９】
プロトコル処理モジュール１０２Ａは、データＢに対してＴＣＰ処理を実施する。【０１００】
データＢはＭＳＳよりサイズが大きいため、プロトコル処理モジュール１０２Ａは、データＢをＭＳＳ毎に分割し、分割したデータそれぞれにＭＡＣヘッダ、ＴＣＰＩＰヘッダを付与したＴＣＰパケットＢｌ，Ｂ２，Ｂ３を生成する。【０１０１】
次いで、プロトコル処理モジュール１０２Ａは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３をネットワークインタフェース処理装置２００Ａに転送する。【０１０２】
ネットワークインタフェース装置２００Ａでは、まず、再送制御判定モジュール２０１Ａが再送制御判定を行う。【０１０３】
再送制御判定モジュール２０１Ａは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３の有効バイト長をカウントしてパケットサイズをもとめ、ＴＣＰパケットＢ１，Ｂ２，Ｂ３のパケットサイズからＭＡＣヘッダ、ＴＣＰＩＰヘッダを除いたペイロードサイズがＭＳＳ未満か否かを判別する。【０１０４】
ＴＣＰパケットＢ１，Ｂ２，Ｂ３はプロトコル処理モジュール１０２ＡでＭＳＳ毎に分割されているため、再送制御判定モジュール２０１Ａは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３のペイロードサイズがＭＳＳと等しいと認識し、ＴＣＰパケットＢ１，Ｂ２，Ｂ３を再送制御無効パケットと判別し、ＴＣＰパケットＢ１，Ｂ２，Ｂ３をパケット処理分岐モジュール２０２Ａに転送する。【０１０５】
パケット処理分岐モジュール２０２Ａは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３が再送制御有効パケットか再送制御無効パケットであるかを確認する。【０１０６】
ＴＣＰパケットＢ１，Ｂ２，Ｂ３は再送制御無効パケットであるため、パケット処理分岐モジュール２０２Ａは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３を外部出力モジュール２０４Ａへ転送する。【０１０７】
外部出力モジュール２０４Ａは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３をネットワークに送出する。【０１０８】
ネットワークに送出されたＴＣＰパケットＢ１，Ｂ２，Ｂ３は、ホスト２のネットワークインタフェース装置２００Ｂの外部出力モジュール２０５Ｂにて受信さる。【０１０９】
外部出力モジュール２０５Ｂは、受信したＴＣＰパケットＢ１，Ｂ２，Ｂ３を受信パケット種別判定モジュール２０６Ｂに転送する。【０１１０】
受信パケット種別判定モジュール２０６Ｂは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３のそれぞれのパケットヘッダをチェックし、パケットの種別を確認する。【０１１１】
ＴＣＰパケットＢ１，Ｂ２，Ｂ３は再送制御無効パケットであるため、受信パケット種別判定モジュール２０６Ｂは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３をＭＡＣ再送制御情報がない受信データと判定し、ＴＣＰパケットＢ１，Ｂ２，Ｂ３をプログラム処理装置１００Ｂに転送する。【０１１２】
プログラム処理装置１００Ｂでは、まず、プロトコル処理モジュール１０２Ｂが受信ＴＣＰ処理を行う。【０１１３】
プロトコル処理モジュール１０２Ｂは、ＴＣＰパケットＢ１，Ｂ２，Ｂ３を一つのデータＢへと再構築し、アプリケーション処理モジュール１０１ＢへデータＢを転送する。【０１１４】
これにより、データＡを例とするＭＳＳ未満のデータサイズからなるＳｈｏｒｔ  Ｆｌｏｗの転送の場合は、ＭＡＣ再送制御を有効にし、データＢを例とするＭＳＳ以上のデータからなるＦｌｏｗの場合はＭＡＣ再送制御を無効にすることができる。【０１１５】
しかし、パケット２個以上から構成されるＳｈｏｒｔ  Ｆｌｏｗの転送は本実施の形態ではＭＡＣ再送制御機能を有効化することができない。また、本実施の形態では、Ｌｏｎｇ  Ｆｌｏｗの最終パケットもＭＡＣ再送制御を行うが、ＭＡＣ再送制御を行うのは最終パケットのみであるのでＬｏｎｇ  Ｆｌｏｗのスループットには影響を与えない。【０１１６】
（第１の実施の形態による効果）
次に本実施の形態の効果について説明する。【０１１７】
本実施の形態では、再送制御判定モジュール２０１にて送信パケットのペイロードサイズを確認し、ペイロードサイズがＭＳＳであればＬｏｎｇ  Ｆｌｏｗのパケットと判断し、ペイロードサイズがＭＳＳ未満であればＳｈｏｒｔ  Ｆｌｏｗのパケットと判断する。これにより、ＭＡＣ再送制御が有効となるＳｈｏｒｔ  Ｆｌｏｗの時のみＭＡＣ再送制御を実施し、ＭＡＣ再送制御が逆に悪影響を及ぼすＬｏｎｇ  Ｆｌｏｗの転送の時にはＭＡＣ再送制御を実施しないように動的に制御することが可能になることである。【０１１８】
その理由は、Ｌｏｎｇ  Ｆｌｏｗの転送要求がアプリケーションから通知された場合、ＴＣＰのプロトコルスタックはＭＳＳごとにデータを分割して、ＴＣＰパケットを生成するため、送信パケットのペイロードサイズをモニタする事で、Ｌｏｎｇ  Ｆｌｏｗと１パケットからなるＳｈｏｒｔ  Ｆｌｏｗの判別が可能となるためである。【０１１９】
また、本実施の形態を行うに当たっては、Ｓｈｏｒｔ  ＦｌｏｗとＬｏｎｇ  Ｆｌｏｗの判断はプロトコル処理を終えた後の送信パケットサイズから判断するため、ＭＡＣ再送制御の有効無効を、プロトコル処理モジュール１０２を改変せずに実現することができるという効果もある。【０１２０】
（第２の実施の形態）
次に、本発明の第２の実施の形態を説明する。本発明の第１の実施の形態では、ＭＳＳ未満のデータサイズからなるＳｈｏｒｔ  ＦｌｏｗのみでＭＡＣ再送制御を有効にすることができ、２パケット以上からなるＳｈｏｒｔ  ＦｌｏｗではＭＡＣ再送制御を有効にすることができなかった。第２の実施の形態では、それらの場合でもＭＡＣ再送制御を有効にすることができる。【０１２１】
本実施の形態の構成及び受信処理の動作については、第１の実施の形態の図１に示す構成及び図３に示す動作と同じであるので、ここでは説明を省略する。【０１２２】
（第２の実施の形態の動作の説明）
第２の実施の形態の送信処理の動作について説明する。【０１２３】
図５を参照すると、本発明の第２の実施の形態においては、図２のフローチャートのステップＡ５，Ａ６が、ステップＡ５’、Ａ６’となっている点が異なる。【０１２４】
第１の実施の形態では、再送制御判定モジュール２０１においてパケットのペイロードサイズを確認していたが、本実施の形態では、規定時間内に通過したパケットの有効長からパケットの送出レート（スループット）を求め（ステップＡ５’）、求めた送出レートが予め規定したレート（規定値）以上であれば、ＭＡＣ再送制御を無効と判定し、規定したレート未満であればＭＡＣ再送制御を有効と判定するものである。求めた送出レートと比較するスループットの規定値としては、例えば、ラインレートを設定する。例えば、１０００ＢＡＳＥ−Ｔであれば規定値を１Ｇｂｐｓ、１０ＧＢＡＳＥ−Ｔであれば規定値を１０Ｇｂｐｓとする。【０１２５】
（第２の実施の形態による効果）
これにより、スイッチが過負荷にならないほどスループットが小さい場合にはＭＡＣ再送制御を有効にし、スループットが大きい場合にはＭＡＣ再送制御を無効にすることがでる。すなわち、スループットをＭＡＣ再送制御の切り替え判断に使う事でＳｈｏｒｔ  ＦｌｏｗとＬｏｎｇ  Ｆｌｏｗで動的なＭＡＣ再送制御の有効無効の切り替えが可能になる。【０１２６】
また、これにより、２パケット以上からなるＳｈｏｒｔ  ＦｌｏｗであってもＭＡＣ再送制御を有効にし、Ｆｌｏｗ  Ｃｏｍｐｌｅｔｉｏｎ  Ｔｉｍｅを短縮することができる。【０１２７】
その理由は、Ｓｈｏｒｔ  Ｆｌｏｗの場合は、１Ｆｌｏｗを構成するパケット数が小さいため、ＴＣＰのＳｌｏｗ  Ｓｔａｒｔによりスループットが上昇しないためである。それに対してＬｏｎｇ  Ｆｌｏｗはパケット数が多いためＴＣＰの状態がＳｌｏｗ  ＳｔａｒｔからＣｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅに変わり、Ｓｈｏｒｔ  Ｆｌｏｗに比べて高いスループットとなる。【０１２８】
また、プロトコルスタックを改変せずとも動的なＭＡＣ再送制御の有効無効の切り替えが可能となる。その理由は、プロトコル処理が完了したパケットの転送スループットをＭＡＣ再送制御の有効無効の判定基準にしているからである。【０１２９】
（第３の実施の形態）
本発明の第１の実施の形態および第２の実施の形態では、ネットワークインタフェース装置２００の再送制御判定モジュール２０１にて、一定の判定基準に基づいてＭＡＣ再送制御の有効と無効の判定を行っていた。【０１３０】
しかしながら、Ｌｏｎｇ  ＦｌｏｗであってもＭＡＣ再送制御を有効にしたい場合、または逆に、Ｓｈｏｒｔ  ＦｌｏｗであってもＭＡＣ再送制御を無効にしたい場合なども考えられる。【０１３１】
そこで、第３の実施の形態では、アプリケーション側が明示的に、ＭＡＣ再送制御の有効無効を指定することができる構成としている。【０１３２】
本実施の形態の構成及び受信処理の動作については、第１の実施の形態の図１に示す構成及び図３に示す動作と同じであるので、ここでは説明を省略する。【０１３３】
（第３の実施の形態の動作の説明）
第３の実施の形態の送信処理の動作について説明する。【０１３４】
図６を参照すると、本実施の形態では図２のフローチャートと比較してステップＡ１がステップＡ１”に、ステップＡ５，Ａ６がステップＡ５”，Ａ６”となっている点が異なる。【０１３５】
第３の実施の形態では、アプリケーション処理モジュール１０１がデータを送信する際に、送信データに併せて、ＭＡＣ再送制御の有効無効の情報を通知する（ステップＡ１”）。【０１３６】
ＭＡＣ再送制御の有効無効の通知手段の例としては、Ｓｏｃｋｅｔオプションによる通知であったり、Ｓｏｃｋｅｔのデータ送信用関数であるｓｅｎｄｔｏシステムコールのフラグ設定フィールドであったり、専用のＡＰＩを用いた通知が考えられる。【０１３７】
プロトコル処理モジュール１０２にてプロトコル処理後、ネットワークインタフェース装置２００の再送制御判定モジュール２０１にて、アプリケーション処理モジュール１０１から通知されたＭＡＣ再送制御の有効無効に関する情報を確認する（ステップＡ５”）。【０１３８】
確認の結果、ＭＡＣ再送制御が有効と通知されていた場合は、該当データに相当するパケットのＭＡＣ再送制御を有効にし、無効であればＭＡＣ再送制御を行わない。【０１３９】
（第３の実施の形態による効果）
第３の実施の形態によれば、アプリケーションが、送出データともにＭＡＣ再送制御の有効無効に関する情報をネットワークインタフェース装置に通知する構成とすることにより、アプリケーション側が送信制御に対してＭＡＣ再送制御が必要か否かについて明示的に指定することができるようになる。【０１４０】
（第４の実施の形態）
次に、本発明の第４の実施の形態について説明する。【０１４１】
本発明の第１〜第３の実施の形態では、ＭＡＣ再送制御をネットワークインタフェース装置２のハードウェア処理で実施していたが、これらのＭＡＣ再送制御をプログラム処理装置１のソフトウェア処理で実施することも可能である。【０１４２】
第４の実施の形態では、ＭＡＣ再送制御をソフトウェア処理で実現した場合の実施の形態である。【０１４３】
図７を参照すると、本発明の第４の実施の形態に係るパケット再送制御システム１は、プログラム処理装置１００と、ネットワークインタフェース装置２００と、記憶装置３００とを含む。【０１４４】
プログラム処理装置１００は、アプリケーションを実行するアプリケーション処理モジュール１０１と、ＴＣＰなどのプロトコル処理を実施するプロトコル処理モジュール１０２と、パケットの再送制御判定を行う再送制御判定モジュール１０３と、再送制御有効パケットと再送制御無効パケットを振り分けるパケット処理分岐モジュール１０４と、パケットの再送制御を行うＭＡＣ再送制御モジュール１０５と、受信パケットの種別を判定する受信パケット種別判定モジュール１０６とを含む。【０１４５】
再送制御判定モジュール１０３は、第１〜第３の実施の形態の何れかの形態の再送制御判定モジュール２０１と同等の機能を実現する。【０１４６】
また、パケット処理分岐モジュール１０４、ＭＡＣ再送制御モジュール１０５、受信パケット種別判定モジュール１０６についても、それぞれ第１〜第３の実施の形態の何れかの形態と同等の機能を実現する。【０１４７】
（第４の実施の形態の動作の説明）
本実施の形態による動作については、上述した第１〜第３の実施の形態の何れかの動作と同じであるので説明は省略する。【０１４８】
第１の実施の形態では、ステップＡ６〜Ａ１１がネットワークインタフェース装置２００で実施されていたが、本実施の形態ではプログラム処理装置１００でソフトウェア処理によって実施されている点が異なる。【０１４９】
（第４の実施の形態による効果）
本実施の形態のように構成することで、ＭＡＣ再送制御をプログラム処理装置１００のソフトウェア処理で実現することができる。【０１５０】
次に、パケット再送制御システム１のハードウェア構成例について、図８を参照して説明する。図８は、パケット再送制御システム１のハードウェア構成例を示すブロック図である。【０１５１】
図８を参照すると、パケット再送制御システム１は、一般的なコンピュータ装置と同様のハードウェア構成であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部８０２、ネットワークを介してデータの送受信を行う通信部８０３、入力装置８０５や出力装置８０６及び記憶装置８０７と接続してデータの送受信を行う入出力インタフェース部８０４、上記各構成要素を相互に接続するシステムバス８０８を備えている。記憶装置８０７は、例えば、Ｆｌａｓｈ  ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成される。【０１５２】
本実施の形態によるパケット再送制御システム１のプログラム処理装置１００及びネットワークインタフェース装置２００、記憶装置３００は、プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、補助記憶部８０７に格納し、そのプログラムを主記憶部８０２にロードしてＣＰＵ８０１で実行することにより、ソフトウェア的に実現することも可能である。【０１５３】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。【０１５４】
この出願は、２００９年３月２７日に出願された日本出願特願２００９−０７８４９０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
0005617838.tif 000002
【図２】
0005617838.tif 000003
【図３】
0005617838.tif 000004
【図４】
0005617838.tif 000005
【図５】
0005617838.tif 000006
【図６】
0005617838.tif 000007
【図７】
0005617838.tif 000008
【図８】
0005617838.tif 000009