JPWO2010110356A1 - パケット再送制御システム、パケット再送制御方法および再送制御プログラム - Google Patents

パケット再送制御システム、パケット再送制御方法および再送制御プログラム Download PDF

Info

Publication number
JPWO2010110356A1
JPWO2010110356A1 JP2011506107A JP2011506107A JPWO2010110356A1 JP WO2010110356 A1 JPWO2010110356 A1 JP WO2010110356A1 JP 2011506107 A JP2011506107 A JP 2011506107A JP 2011506107 A JP2011506107 A JP 2011506107A JP WO2010110356 A1 JPWO2010110356 A1 JP WO2010110356A1
Authority
JP
Japan
Prior art keywords
packet
retransmission control
mac
retransmission
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011506107A
Other languages
English (en)
Other versions
JP5617838B2 (ja
Inventor
真人 安田
真人 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2010110356A1 publication Critical patent/JPWO2010110356A1/ja
Application granted granted Critical
Publication of JP5617838B2 publication Critical patent/JP5617838B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

TCP層の下位層であるMAC層のパケット再送制御技術では、1つのTCPフローで送るデータサイズが小さいShort Flowでしか効果が得られないという課題を解決する。パケット再送制御システムは、通信処理を行うアプリケーションが動作するアプリケーション処理モジュールと、アプリケーション処理モジュールから送出要求のあったパケットについて、所定のルールに基づき下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御モジュールと、MAC再送制御モジュール又はパケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールを含む。

Description

本発明は、パケットの再送制御システムに関し、特に、ネットワークの上位層がTCP(Transport Control Protocol)などの再送処理を行うプロトコルである場合の下位層のパケットのパケット再送制御方法に関する。
TCPには再送タイムアウトというパラメータが存在し、ネットワークの途中経路でパケットが廃棄された際、TCPスタックは再送タイムアウトが経過するのを待ってから該当パケットを再送する。一般的にはTCPスタックはOS(Operating System)に実装されている。
ここで、OSはソフトウェアで実装されているため、TCPの再送タイムアウトを高い精度で判定できない。例えば、Linuxの単位時間(Jiffies)は10ミリ秒単位であるため、Linuxの標準的なTCPスタックは再送タイムアウトを10ミリ秒未満に短縮できない。
データセンタのようなRTT(Round Trip Time)が非常に短いネットワークでは、再送タイムアウトをマイクロ秒単位にまで短縮することにより、FCT(Flow Completion Time)を減少させ、通信効率を向上させることができる。しかし、OS上で動作するTCPスタックは、前述の理由により、再送タイムアウトをマイクロ秒レベルまで短縮できないため、そのようなネットワークにおいてFCTを減少させることができない。
この問題を解決するため、非特許文献1に開示されるようなパケット再送制御システムが関連技術として提案されている。この非特許文献1に記載のパケット再送制御システムによれば、TCP層よりも下位のMAC層にてマイクロ秒レベルのタイムアウト判定を行ってパケットの再送制御を実施する。これにより、OSやTCPスタックの構成を変えることなく、RTTの短いネットワークにおいてFCTを減少させ通信効率を上げることができる。
関連技術によるパケット再送制御技術の第1の問題点は、Short Flow(ショートフロー)でしかMAC層の再送制御の効果が得られないことである。
その理由は、Long Flow(ロングフロー)のデータ転送時は、連続した3つ以上の重複TCP−ACK(Acknowledgement)パケットによりTCPのFast Retransmit機能が起動するために、再送タイムアウトを待たずに欠落したパケットが再送されるからである。
そのため、パケット再送制御技術の再送タイムアウトを待たずして、TCPレベルでパケットが再送されるため、Long Flowではパケット再送制御技術の効果が得られない。
なお、Short FlowとはTCPフローあたりの転送データサイズが小さいFlowを指す。具体的には1、2パケット程度で構成されるFlowを指す。また、Short Flowに対し、Long FlowはTCPフローあたりの転送データサイズが大きいFlowを指す。
一方、Short Flowの場合は、Fast Retransmitのトリガとなる連続した3つ以上の重複ACKが発生しない。従って、パケット廃棄が発生しても、TCPによる欠落したパケットの再送はTCPの再送タイムアウトまで行われない。
第2の問題点は、TCPのLong Flowの輻輳発生時にパケット廃棄率が上昇することである。
その理由は、経路上のスイッチ(ネットワークスイッチ)でパケット廃棄が起きても、パケット再送制御技術により欠落したパケットがMAC層で再送されるため、TCP層ではパケットの廃棄を検知できず、輻輳が発生してもTCPの輻輳アルゴリズムが働かず送出レートが減少しないためである。
(発明の目的)
本発明の目的は、高速再送制御をMAC層の高速パケット再送制御の効果が得られるShort Flowのみに適用し、高速パケット再送制御により悪影響が出るLong Flowの転送時は高速再送制御を行わないような、動的な切り替え機能を実現するパケット再送制御システム、パケット再送制御方法および再送制御プログラムを提供することにある。
本発明の他の目的は、ホスト上のプロトコルスタックを改変せず、既存のTCPのプロトコルスタックのままで、動的な切り替えを実現するパケット再送制御システム、パケット再送制御方法および再送制御プログラムをことである。
本発明の第1のパケット再送制御システムは、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、通信処理を行うアプリケーションが動作するアプリケーション処理モジュールと、アプリケーション処理モジュールから送出要求のあったパケットについて、所定のルールに基づき下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御モジュールと、MAC再送制御モジュール又はパケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールとを含む。
本発明の第2のパケット再送制御システムは、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、通信処理を行うアプリケーションが動作し、データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理モジュールと、アプリケーション処理モジュールから通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御モジュールと、MAC再送制御モジュール又はパケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールとを含む。
本発明の第1のパケット再送制御方法は、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、データ送信要求を行うアプリケーション処理ステップと、送信要求のあったパケットについて、所定のルールに基づき下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐ステップと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御ステップと、MAC再送制御ステップ又はパケット処理分岐ステップから送られたパケットを外部に出力する外部出力ステップとを有する。
本発明の第2のパケット再送制御方法は、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理ステップと、アプリケーション処理ステップから通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐ステップと、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御ステップと、MAC再送制御ステップ又はパケット処理分岐ステップから送られたパケットを外部に出力する外部出力ステップとを有する。
本発明の第1のパケット再送制御プログラムは、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、コンピュータ装置に、データ送信要求を行うアプリケーション処理機能と、送信要求のあったパケットについて、所定のルールに基づき下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐機能と、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御機能と、MAC再送制御機能又はパケット処理分岐機能から送られたパケットを外部に出力する外部出力機能と、を実行させる。
本発明の第2のパケット再送制御プログラムは、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、コンピュータ装置に、データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理機能と、アプリケーション処理機能から通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐機能と、高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御機能と、MAC再送制御機能又はパケット処理分岐機能から送られたパケットを外部に出力する外部出力機能と、を実行させる。
本発明によれば、送信パケットについて、MAC層の高速再送制御が有効に働くShort FlowのみMAC再送制御を実施し、MAC層の高速再送制御が悪影響を与えるLong Flowの時にはMAC再送制御を実施しないように動的に制御することが可能になることである。
本発明の第1の実施の形態によるパケット再送制御システムの構成例を示すブロック図である。 第1の実施の形態における送信処理の動作を示すフローチャートである。 第1の実施の形態における受信処理の動作を示すフローチャートである。 第1の実施の形態における動作の具体例を示す図である。 本発明の第2の実施の形態の送信処理の動作を示すフローチャートである。 本発明の第3の実施の形態の送信処理の動作を示すフローチャートである。 本発明の第4の実施の形態の構成を示すブロック図である。 本発明のパケット再送制御システムのハードウェア構成例を示すブロック図である。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
(第1の実施の形態)
図1を参照すると、本発明の第1の実施の形態に係るパケット再送制御システム1は、プログラム処理装置100と、ネットワークインタフェース装置200と、記憶装置300とを含む。
プログラム処理装置100は、アプリケーションを実行するアプリケーション処理モジュール101、TCPなどのプロトコル処理を実施するプロトコル処理モジュール102を含む。
プログラム処理装置100は、サーバやPC(Personal Computer)をはじめとするホストのCPU(Central Processing Unit)等により実現される。
アプリケーション処理モジュール101は、ネットワーク処理を行うアプリケーションが動作し、ネットワークデータの送受信の要求をプロトコル処理モジュール102に対して行う。
プロトコル処理モジュール102は、ホストのCPUで動作するOS(Operating System)のネットワークスタックであり、ソフトウェアで実現される。プロトコル処理モジュール102では、TCPなどの再送制御が含まれるネットワークプロトコルが動作している。
ネットワークインタフェース装置200は、パケットの再送制御判定を行う再送制御判定モジュール201と、再送制御有効パケットと再送制御無効パケットを振り分けるパケット処理分岐モジュール202と、パケットの再送制御を行うMAC再送制御モジュール203と、パケットを装置外のネットワークに送出する外部出力モジュール204と、装置外のネットワークから到着したパケットを受信する外部入力モジュール205と、受信パケットの種別を判定する受信パケット種別判定モジュール206とを含む。
ネットワークインタフェース装置200は、ホストの拡張カードやオンボードで搭載されるNIC(Network Interface Card)を想定している。
再送制御判定モジュール201は、パケットの有効バイト長をカウントすることにより送出パケットのパケットサイズを求め、マイクロ秒単位の高速タイムアウト(ここではMAC再送制御と呼称する)による再送制御を実現するか否かを判定する。
本実施の形態の再送制御判定モジュール201は、パケットサイズが、MSS(Maximum Segment Size)より小さければMAC再送制御を有効にし、MSSに等しければMAC再送制御を無効と判定する。
ここで言うMSSとMTU(Maximum Transfer Unit)との関係は、TCPの規定により以下の式で定義される。
MSS = MTU−(Ethernetヘッダサイズ)−(MAC再送制御用ヘッダサイズ)−(TCPIPヘッダサイズ)
パケット処理分岐モジュール202は、再送制御判定モジュール201にて再送制御が有効と判定されたパケットと無効と判定されたパケットを振り分ける。
有効と判定されたパケットは、パケット処理分岐モジュール202でMAC再送制御モジュール203に振り分けられ、MAC再送制御モジュール203によって再送制御が行なわれる。無効と判定されたパケットは、パケット処理分岐モジュール202で外部出力モジュール204に振り分けられ、外部出力モジュール204によって外部に出力される。
MAC再送制御モジュール203は、有効と判定されたパケットについて短い再送タイムアウトによるMAC再送制御を行う。
MAC再送制御モジュール203は、パケット処理分岐モジュール202から転送されたパケットに再送タイムアウトをセットし、記憶装置300のMAC再送パケットデータ保持部301にパケットデータを保持する。
次いで、MAC再送制御モジュール203は、パケット処理分岐モジュール202から転送されたパケットにMAC再送制御用のヘッダを付与し、外部出力モジュール204に転送する。
また、MAC再送制御モジュール203は、外部出力モジュール204から送出されたパケットに対するACKの到着前に再送タイムアウトが経過した場合、MAC再送パケットデータ保持部301から再送パケットデータを読み出し、再度MAC再送制御用のヘッダを付与し、外部出力モジュール204へ再送パケットを転送する。
外部出力モジュール204は、パケット処理分岐モジュール202、もしくはMAC再送制御モジュール203から転送されてきたパケットを装置外のネットワークへ送出する。
外部入力モジュール205は、装置外のネットワークから到着したパケットを受信する。受信したパケットは受信パケット種別判定モジュール206へ転送される。
受信パケット種別判定モジュール206は、受信したパケットの種別を確認する。
受信したパケットの種別がMAC再送制御のACKである場合、受信パケット種別判定モジュール206は、その旨をMAC再送制御モジュール203に通知し、MAC再送制御モジュール203にて再送タイムアウトの解除処理や再送用バッファ領域の解放処理を実行する。
受信したパケットの種別がMAC再送制御用ヘッダの付いたデータである場合、受信パケット種別判定モジュール206は、受信したパケットのヘッダ情報をMAC再送制御モジュール203に通知して、MAC再送制御のACKを、外部出力モジュール204を介して対向ホストに送出し、プログラム処理装置100に受信データを転送する。
受信したパケットの種別がそれ以外であれば、受信パケット種別判定モジュール206は、受信パケットデータをプログラム処理装置100に転送する。
記憶装置300は、MAC再送パケットデータ保持部301を含む。記憶装置300としては、NICに搭載されるメモリを想定している。MAC再送パケットデータ保持部301には、MAC再送用のパケットデータを格納する。
(第1の実施の形態の動作の説明)
次に図を参照して本実施の形態によるパケット再送制御システム1の動作について詳細に説明する。
(データ送信処理の動作の説明)
まず、図1、図2を参照して本実施の形態におけるデータ送信処理の動作について詳細に説明する。
アプリケーション処理モジュール101から送信要求のあったデータは、プロトコル処理モジュール102に供給される。
プロトコル処理モジュール102は、送信要求のあったデータのデータ長がMSSより大きいか否かについて確認し、MSSより大きい場合、MSSサイズ毎に送信データを分割する(ステップA1〜A3)。
また、プロトコル処理モジュール102は、送信データをパケットの形に生成し、生成した送信パケットをネットワークインタフェース装置200に転送する(ステップA4)。
ネットワークインタフェース装置200に転送された送信パケットは、再送制御判定モジュール201により、再送制御判定が行なわれる。
再送制御判定モジュール201は、送信パケットの有効バイト長をカウントして送信パケットのデータサイズを求め、送信パケットのデータサイズとヘッダサイズからペイロードサイズを求め、送信パケットのペイロードサイズをMSSと比較する(ステップA5、A6)。
再送制御判定モジュール201は、送信パケットのペイロードサイズがMSSに等しい場合、送信パケットを再送制御無効パケットと判定し、送信パケットのペイロードサイズがMSS未満の場合は、送信パケットを再送制御有効パケットと判定し、パケット処理分岐モジュール202へ送信パケットを転送する。
パケット処理分岐モジュール202は、再送制御送信パケットが再送制御有効であるか再送制御無効であるかをチェックする。
送信パケットが再送制御無効パケットの場合、パケット処理分岐モジュール202は、送信パケットを外部出力モジュール204へ転送し、外部出力モジュール204は、転送されてきた送信パケットをネットワークに送出する(ステップA6、A11)。
送信パケットが再送制御有効パケットの場合、パケット処理分岐モジュール202は、送信パケットをMAC再送制御モジュール203に転送する。
MAC再送制御モジュール203は、送信パケットに対してMAC再送制御を行う。
MAC再送制御モジュール203は、まずMAC再送タイムアウトを短い値(例えばマイクロ秒オーダー)で設定する(ステップA8)。
次いで、MAC再送制御モジュール203は、送信パケットをMAC再送パケットデータ保持部301へ格納する(ステップA9)。
次いで、MAC再送制御モジュール203は、送信パケットにMAC再送制御用のヘッダを付与し(ステップA10)、MAC再送制御用のヘッダを付与した送信パケットを外部出力モジュール204へ転送する。
外部出力モジュール204は、MAC再送制御モジュール203から転送されてきた送信パケットをネットワークに送出する(ステップA11)。
また、MAC再送制御モジュール203は、MAC再送制御用のヘッダを付した送信パケットに対するMAC再送制御用ACKの到着通知が、再送タイムアウト時間以内に受信パケット種別判定モジュール206より通知されない場合、MAC再送パケットデータ保持部301から再送パケットデータを読み出し、再送処理を行う。
MAC再送制御モジュール203は、再送する送信パケットに対しても再送制御用ヘッダを付与し、外部出力モジュール204へ再送パケットを転送する。
(データ受信処理の動作の説明)
次に図1、図3を参照して本実施の形態におけるデータ受信処理の動作について詳細に説明する。
外部から到着したパケット(受信パケット)は、ネットワークインタフェース装置200の外部入力モジュール205にて受信され、外部入力モジュール205から受信パケット種別判定モジュール206へ転送される(ステップB1)。
受信パケット種別判定モジュール206は、受信パケットの種別を判定するする(ステップB2)。
判定の結果、受信パケットにMAC再送制御用のヘッダが無い場合、受信パケット種別判定モジュール206は、受信パケットを、MAC再送制御を行わないパケットと認識し、受信パケットをプログラム処理装置100に転送する。転送された受信パケットについては、プロトコル処理モジュール102において受信プロトコル処理が実施される(ステップB3、B9)。
ステップB3で、受信パケットにMAC再送制御用のヘッダが付されていた場合、そのパケットが、送信したMAC再送制御用ヘッダのついたデータに対するACKであるかどうかを判別する(ステップB4)。
MAC再送制御用ヘッダのついたデータに対するACKであるならば、受信パケット種別判定モジュール206は、その旨をMAC再送制御モジュール203へ通知する(ステップB5)。通知を受けたMAC再送制御モジュール203は、該当パケットのMAC再送タイムアウトのエントリを解除、MAC再送用バッファ領域を解除する(ステップB6、B7)。
受信パケットにMAC再送制御用のヘッダが付属していたがACKでは無い場合は、受信パケット種別判定モジュール206は、受信パケットをMAC再送制御用ヘッダの付属したデータ受信と認識し、MAC再送制御用のACKを、外部出力モジュール204を介して対向ホストに送信し(ステップB8)、受信データをプログラム処理装置100に転送する(ステップB9)。MAC再送制御用のACKの送信先は、送信元MACアドレスである。
受信パケットがプログラム処理装置100に転送されると、プロトコル処理モジュール102は、受信パケットをデータの形に結合し、受信データをアプリケーション処理モジュール101に転送する(ステップB9〜B11)。
次に、具体的な動作例について実施例をあげて説明する。図4は、第1の実施の形態の具体的な動作例の1つとして、MSSより短いデータ、またはMSSより長いデータを転送する場合の例を示す図である。
(構成の説明)
図4では、ホスト1のアプリケーション処理モジュール101Aから、MSS未満の短いデータサイズであるデータAを転送した場合と、アプリケーション処理モジュール101Aから、MSSより長いデータサイズのデータBを転送した場合を示している。
ホスト1は、パケット再送制御システム1Aを有する。パケット再送制御システム1Aは、アプリケーション処理モジュール101A及びプロトコル処理モジュール102Aを備えるプログラム処理装置100Aと、再送制御判定モジュール201A、パケット処理分岐モジュール202A、MAC再送制御モジュール203A、外部出力モジュール204A、外部入力モジュール205A、及び受信パケット種別判定モジュール206Aを備えるネットワークインタフェース装置200Aと、MAC再送パケットデータ保持部301Aを備える記憶装置300Aとを含む。
ホスト2は、パケット再送制御システム1Bを有する。パケット再送制御システム1Bは、アプリケーション処理モジュール101B及びプロトコル処理モジュール102Bを備えるプログラム処理装置100Bと、再送制御判定モジュール201B、パケット処理分岐モジュール202B、MAC再送制御モジュール203B、外部出力モジュール204B、外部入力モジュール205B、及び受信パケット種別判定モジュール206Bを備えるネットワークインタフェース装置200Bと、MAC再送パケットデータ保持部301Bを備える記憶装置300Bとを含む。
本実施例におけるプログラム処理装置及びアプリケーション処理モジュール、プロトコル処理モジュール、ネットワークインタフェース装置及び再送制御判定モジュール、パケット処理分岐モジュール、MAC再送制御モジュール、外部出力モジュール、外部入力モジュール、記憶装置及びMAC再送パケットデータ保持部は、第1の実施の形態と同等の機能を有する。
(動作の説明)
図4に示すように、例えばホスト1のアプリケーション処理モジュール101Aから、MSS未満の短いデータサイズであるデータAを転送するとする。
アプリケーション処理モジュール101Aは、データAを、プロトコル処理モジュール102へ転送する。
プロトコル処理モジュール102Aは、データAに対してTCP処理を実施し、データAにMACヘッダ、TCPIPヘッダを付与したTCPパケットAを生成する。
次いで、プロトコル処理モジュール102Aは、TCPパケットAをネットワークインタフェース装置200Aに転送する。
ネットワークインタフェース装置200Aでは、まず、再送制御判定モジュール201Aが再送制御判定を行う。
再送制御判定モジュール201Aは、TCPパケットAの有効バイト長をカウントしてパケットサイズを求め、TCPパケットAのパケットサイズからMACヘッダ、TCPIPヘッダを除いたペイロードサイズがMSS未満か否かを判別する。
TCPパケットAはMSS未満の短いデータサイズであるため、再送制御判定モジュール201Aは、TCPパケットAを再送制御有効パケットと判定し、TCPパケットAをパケット処理分岐モジュール202Aへ転送する。
パケット処理分岐モジュール202Aは、TCPパケットAが再送制御有効パケットか再送制御無効パケットであるかを確認する。
TCPパケットAは再送制御有効パケットであるため、パケット処理分岐モジュール202Aは、TCPパケットAをMAC再送制御モジュール203Aへ転送する。
MAC再送制御モジュール203Aは、まずMAC再送タイムアウトを短い値、例えばマイクロ秒オーダーで設定し、TCPパケットAをMAC再送パケットデータ保持部301へと格納し、次いで、TCPパケットAにMAC再送制御用のヘッダを付与して、外部出力モジュール204Aへ転送する。
外部出力モジュール204Aは、TCPパケットAをネットワークに送出する。
ネットワークに送出されたTCPパケットAは、ホスト2のネットワークインタフェース装置200Bの外部出力モジュール205Bにて受信さる。
外部出力モジュール205Bは、受信したTCPパケットAを受信パケット種別判定モジュール206Bに転送する。
受信パケット種別判定モジュール206Bは、TCPパケットAのパケットヘッダをチェックし、パケットの種別を確認する。
TCPパケットAは再送制御有効パケットであるため、受信パケット種別判定モジュール206Bは、TCPパケットAをMAC再送制御情報が付与された受信データと判定し、外部出力モジュール204Bを介してホスト1にMAC再送制御用のACKを送信し、TCPパケットAをホスト2のプログラム処理装置100Bに転送する。
プログラム処理装置100Bでは、まず、プロトコル処理モジュール102Bが受信TCP処理を行う。
プロトコル処理モジュール102Bは、TCPパケットAをデータAへと再構築し、アプリケーション処理モジュール102BへデータAを転送する。
次に、ホスト1のアプリケーション処理モジュール101Aから、MSSより長いデータサイズのデータBを転送するとする。
アプリケーション処理モジュール101Aは、データBを、プロトコル処理モジュール102へ転送する。
プロトコル処理モジュール102Aは、データBに対してTCP処理を実施する。
データBはMSSよりサイズが大きいため、プロトコル処理モジュール102Aは、データBをMSS毎に分割し、分割したデータそれぞれにMACヘッダ、TCPIPヘッダを付与したTCPパケットBl,B2,B3を生成する。
次いで、プロトコル処理モジュール102Aは、TCPパケットB1,B2,B3をネットワークインタフェース処理装置200Aに転送する。
ネットワークインタフェース装置200Aでは、まず、再送制御判定モジュール201Aが再送制御判定を行う。
再送制御判定モジュール201Aは、TCPパケットB1,B2,B3の有効バイト長をカウントしてパケットサイズをもとめ、TCPパケットB1,B2,B3のパケットサイズからMACヘッダ、TCPIPヘッダを除いたペイロードサイズがMSS未満か否かを判別する。
TCPパケットB1,B2,B3はプロトコル処理モジュール102AでMSS毎に分割されているため、再送制御判定モジュール201Aは、TCPパケットB1,B2,B3のペイロードサイズがMSSと等しいと認識し、TCPパケットB1,B2,B3を再送制御無効パケットと判別し、TCPパケットB1,B2,B3をパケット処理分岐モジュール202Aに転送する。
パケット処理分岐モジュール202Aは、TCPパケットB1,B2,B3が再送制御有効パケットか再送制御無効パケットであるかを確認する。
TCPパケットB1,B2,B3は再送制御無効パケットであるため、パケット処理分岐モジュール202Aは、TCPパケットB1,B2,B3を外部出力モジュール204Aへ転送する。
外部出力モジュール204Aは、TCPパケットB1,B2,B3をネットワークに送出する。
ネットワークに送出されたTCPパケットB1,B2,B3は、ホスト2のネットワークインタフェース装置200Bの外部出力モジュール205Bにて受信さる。
外部出力モジュール205Bは、受信したTCPパケットB1,B2,B3を受信パケット種別判定モジュール206Bに転送する。
受信パケット種別判定モジュール206Bは、TCPパケットB1,B2,B3のそれぞれのパケットヘッダをチェックし、パケットの種別を確認する。
TCPパケットB1,B2,B3は再送制御無効パケットであるため、受信パケット種別判定モジュール206Bは、TCPパケットB1,B2,B3をMAC再送制御情報がない受信データと判定し、TCPパケットB1,B2,B3をプログラム処理装置100Bに転送する。
プログラム処理装置100Bでは、まず、プロトコル処理モジュール102Bが受信TCP処理を行う。
プロトコル処理モジュール102Bは、TCPパケットB1,B2,B3を一つのデータBへと再構築し、アプリケーション処理モジュール101BへデータBを転送する。
これにより、データAを例とするMSS未満のデータサイズからなるShort Flowの転送の場合は、MAC再送制御を有効にし、データBを例とするMSS以上のデータからなるFlowの場合はMAC再送制御を無効にすることができる。
しかし、パケット2個以上から構成されるShort Flowの転送は本実施の形態ではMAC再送制御機能を有効化することができない。また、本実施の形態では、Long Flowの最終パケットもMAC再送制御を行うが、MAC再送制御を行うのは最終パケットのみであるのでLong Flowのスループットには影響を与えない。
(第1の実施の形態による効果)
次に本実施の形態の効果について説明する。
本実施の形態では、再送制御判定モジュール201にて送信パケットのペイロードサイズを確認し、ペイロードサイズがMSSであればLong Flowのパケットと判断し、ペイロードサイズがMSS未満であればShort Flowのパケットと判断する。これにより、MAC再送制御が有効となるShort Flowの時のみMAC再送制御を実施し、MAC再送制御が逆に悪影響を及ぼすLong Flowの転送の時にはMAC再送制御を実施しないように動的に制御することが可能になることである。
その理由は、Long Flowの転送要求がアプリケーションから通知された場合、TCPのプロトコルスタックはMSSごとにデータを分割して、TCPパケットを生成するため、送信パケットのペイロードサイズをモニタする事で、Long Flowと1パケットからなるShort Flowの判別が可能となるためである。
また、本実施の形態を行うに当たっては、Short FlowとLong Flowの判断はプロトコル処理を終えた後の送信パケットサイズから判断するため、MAC再送制御の有効無効を、プロトコル処理モジュール102を改変せずに実現することができるという効果もある。
(第2の実施の形態)
次に、本発明の第2の実施の形態を説明する。本発明の第1の実施の形態では、MSS未満のデータサイズからなるShort FlowのみでMAC再送制御を有効にすることができ、2パケット以上からなるShort FlowではMAC再送制御を有効にすることができなかった。第2の実施の形態では、それらの場合でもMAC再送制御を有効にすることができる。
本実施の形態の構成及び受信処理の動作については、第1の実施の形態の図1に示す構成及び図3に示す動作と同じであるので、ここでは説明を省略する。
(第2の実施の形態の動作の説明)
第2の実施の形態の送信処理の動作について説明する。
図5を参照すると、本発明の第2の実施の形態においては、図2のフローチャートのステップA5,A6が、ステップA5’、A6’となっている点が異なる。
第1の実施の形態では、再送制御判定モジュール201においてパケットのペイロードサイズを確認していたが、本実施の形態では、規定時間内に通過したパケットの有効長からパケットの送出レート(スループット)を求め(ステップA5’)、求めた送出レートが予め規定したレート(規定値)以上であれば、MAC再送制御を無効と判定し、規定したレート未満であればMAC再送制御を有効と判定するものである。求めた送出レートと比較するスループットの規定値としては、例えば、ラインレートを設定する。例えば、1000BASE−Tであれば規定値を1Gbps、10GBASE−Tであれば規定値を10Gbpsとする。
(第2の実施の形態による効果)
これにより、スイッチが過負荷にならないほどスループットが小さい場合にはMAC再送制御を有効にし、スループットが大きい場合にはMAC再送制御を無効にすることがでる。すなわち、スループットをMAC再送制御の切り替え判断に使う事でShort FlowとLong Flowで動的なMAC再送制御の有効無効の切り替えが可能になる。
また、これにより、2パケット以上からなるShort FlowであってもMAC再送制御を有効にし、Flow Completion Timeを短縮することができる。
その理由は、Short Flowの場合は、1Flowを構成するパケット数が小さいため、TCPのSlow Startによりスループットが上昇しないためである。それに対してLong Flowはパケット数が多いためTCPの状態がSlow StartからCongestion Avoidanceに変わり、Short Flowに比べて高いスループットとなる。
また、プロトコルスタックを改変せずとも動的なMAC再送制御の有効無効の切り替えが可能となる。その理由は、プロトコル処理が完了したパケットの転送スループットをMAC再送制御の有効無効の判定基準にしているからである。
(第3の実施の形態)
本発明の第1の実施の形態および第2の実施の形態では、ネットワークインタフェース装置200の再送制御判定モジュール201にて、一定の判定基準に基づいてMAC再送制御の有効と無効の判定を行っていた。
しかしながら、Long FlowであってもMAC再送制御を有効にしたい場合、または逆に、Short FlowであってもMAC再送制御を無効にしたい場合なども考えられる。
そこで、第3の実施の形態では、アプリケーション側が明示的に、MAC再送制御の有効無効を指定することができる構成としている。
本実施の形態の構成及び受信処理の動作については、第1の実施の形態の図1に示す構成及び図3に示す動作と同じであるので、ここでは説明を省略する。
(第3の実施の形態の動作の説明)
第3の実施の形態の送信処理の動作について説明する。
図6を参照すると、本実施の形態では図2のフローチャートと比較してステップA1がステップA1”に、ステップA5,A6がステップA5”,A6”となっている点が異なる。
第3の実施の形態では、アプリケーション処理モジュール101がデータを送信する際に、送信データに併せて、MAC再送制御の有効無効の情報を通知する(ステップA1”)。
MAC再送制御の有効無効の通知手段の例としては、Socketオプションによる通知であったり、Socketのデータ送信用関数であるsendtoシステムコールのフラグ設定フィールドであったり、専用のAPIを用いた通知が考えられる。
プロトコル処理モジュール102にてプロトコル処理後、ネットワークインタフェース装置200の再送制御判定モジュール201にて、アプリケーション処理モジュール101から通知されたMAC再送制御の有効無効に関する情報を確認する(ステップA5”)。
確認の結果、MAC再送制御が有効と通知されていた場合は、該当データに相当するパケットのMAC再送制御を有効にし、無効であればMAC再送制御を行わない。
(第3の実施の形態による効果)
第3の実施の形態によれば、アプリケーションが、送出データともにMAC再送制御の有効無効に関する情報をネットワークインタフェース装置に通知する構成とすることにより、アプリケーション側が送信制御に対してMAC再送制御が必要か否かについて明示的に指定することができるようになる。
(第4の実施の形態)
次に、本発明の第4の実施の形態について説明する。
本発明の第1〜第3の実施の形態では、MAC再送制御をネットワークインタフェース装置2のハードウェア処理で実施していたが、これらのMAC再送制御をプログラム処理装置1のソフトウェア処理で実施することも可能である。
第4の実施の形態では、MAC再送制御をソフトウェア処理で実現した場合の実施の形態である。
図7を参照すると、本発明の第4の実施の形態に係るパケット再送制御システム1は、プログラム処理装置100と、ネットワークインタフェース装置200と、記憶装置300とを含む。
プログラム処理装置100は、アプリケーションを実行するアプリケーション処理モジュール101と、TCPなどのプロトコル処理を実施するプロトコル処理モジュール102と、パケットの再送制御判定を行う再送制御判定モジュール103と、再送制御有効パケットと再送制御無効パケットを振り分けるパケット処理分岐モジュール104と、パケットの再送制御を行うMAC再送制御モジュール105と、受信パケットの種別を判定する受信パケット種別判定モジュール106とを含む。
再送制御判定モジュール103は、第1〜第3の実施の形態の何れかの形態の再送制御判定モジュール201と同等の機能を実現する。
また、パケット処理分岐モジュール104、MAC再送制御モジュール105、受信パケット種別判定モジュール106についても、それぞれ第1〜第3の実施の形態の何れかの形態と同等の機能を実現する。
(第4の実施の形態の動作の説明)
本実施の形態による動作については、上述した第1〜第3の実施の形態の何れかの動作と同じであるので説明は省略する。
第1の実施の形態では、ステップA6〜A11がネットワークインタフェース装置200で実施されていたが、本実施の形態ではプログラム処理装置100でソフトウェア処理によって実施されている点が異なる。
(第4の実施の形態による効果)
本実施の形態のように構成することで、MAC再送制御をプログラム処理装置100のソフトウェア処理で実現することができる。
次に、パケット再送制御システム1のハードウェア構成例について、図8を参照して説明する。図8は、パケット再送制御システム1のハードウェア構成例を示すブロック図である。
図8を参照すると、パケット再送制御システム1は、一般的なコンピュータ装置と同様のハードウェア構成であり、CPU(Central Processing Unit)801、RAM(Random Access Memory)等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部802、ネットワークを介してデータの送受信を行う通信部803、入力装置805や出力装置806及び記憶装置807と接続してデータの送受信を行う入出力インタフェース部804、上記各構成要素を相互に接続するシステムバス808を備えている。記憶装置807は、例えば、Flash ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成される。
本実施の形態によるパケット再送制御システム1のプログラム処理装置100及びネットワークインタフェース装置200、記憶装置300は、プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、補助記憶部807に格納し、そのプログラムを主記憶部802にロードしてCPU801で実行することにより、ソフトウェア的に実現することも可能である。
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
この出願は、2009年3月27日に出願された日本出願特願2009−078490を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (36)

  1. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、
    送信するパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御モジュールと、
    前記MAC再送制御モジュールによる再送制御を行ったパケット又は高速再送制御を不要と判定したパケットを外部に出力する外部出力モジュールと
    を備えることを特徴とするパケット再送制御システム。
  2. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、
    通信処理を行うアプリケーションが動作するアプリケーション処理モジュールと、
    前記アプリケーション処理モジュールから送出要求のあったパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、
    高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御モジュールと、
    前記MAC再送制御モジュール又は前記パケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールと
    を備えることを特徴とするパケット再送制御システム。
  3. 前記再送制御判定モジュールは、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項1又は請求項2に記載のパケット再送制御システム。
  4. 前記ペイロードサイズの規定値が、TCPのMaximum Segment Sizeを含むトランスポート層で規定された最大データサイズであることを特徴とする請求項3に記載のパケット再送制御システム。
  5. 前記再送制御判定モジュールは、送信データの出力スループットをモニタし、スループットが前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項1又は請求項2に記載のパケット再送制御システム。
  6. 前記スループットの規定値を、ラインレートとすることを特徴とする請求項5に記載のパケット再送制御システム。
  7. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムであって、
    通信処理を行うアプリケーションが動作し、データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理モジュールと、
    前記アプリケーション処理モジュールから通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定モジュールと、
    高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐モジュールと、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御モジュールと、
    前記MAC再送制御モジュール又は前記パケット処理分岐モジュールから送られたパケットを外部に出力する外部出力モジュールと
    を備えることを特徴とするパケット再送制御システム。
  8. トランスポート層のプロトコルが動作するプロトコル処理モジュールとを備え、
    前記アプリケーション処理モジュールから送信要求されたデータを、プロトコル処理モジュールによりネットワークに送出可能な一定サイズ毎に分割し、パケットとして前記再送制御判定モジュールに送出することを特徴とする請求項1から請求項7の何れかに記載のパケット再送制御システム。
  9. 前記MAC再送制御モジュールは、短い値の再送タイムアウトを設定し、パケットをMAC再送パケットデータ保持部へ格納すると共に、送信パケットにMAC再送制御用のヘッダを付与して前記外部出力モジュールへ転送することを特徴とする請求項1から請求項8の何れかに記載のパケット再送制御システム。
  10. 前記MAC再送制御モジュールは、前記再送制御用のヘッダを付した送信パケットに対するACKの到着通知が、前記再送タイムアウト時間以内に通知されない場合、前記MAC再送パケットデータ保持部から再送するパケットを読み出し、再送送信パケットに対して前記再送制御用のヘッダを付与して前記外部出力モジュールへ転送することを特徴とする請求項9に記載のパケット再送制御システム。
  11. 外部からのパケットを受信する外部入力モジュールと、
    前記外部入力モジュールから送られてきたパケットの種別を判定し、前記受信パケットに前記MAC再送制御用のヘッダが無い場合、受信パケットを前記前記プロトコル処理モジュールに送り、前記MAC再送制御用のヘッダがあり、かつ受信パケットが前記MAC再送制御モジュールから送出したパケットに対するACKであれば、ACKの情報を前記MAC再送制御モジュールに通知する受信パケット判定モジュールとを備え、
    前記MAC再送制御モジュールは、前記受信パケット判定モジュールからの通知を受けると、パケットの前記再送タイムアウトを解除することを特徴とする請求項9又は請求項10に記載のパケット再送制御システム。
  12. 前記受信パケット判定モジュールは、前記受信パケットに前記MAC再送制御用のヘッダがあるが、前記MAC再送制御モジュールから送出したパケットに対するACKでない場合には、MAC再送制御用のACKを、前記外部出力モジュールを介して外部に出力することを特徴とする請求項11に記載のパケット再送制御システム。
  13. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、
    送信するパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御ステップと、
    前記MAC再送制御ステップによる再送制御を行ったパケット又は高速再送制御を不要と判定したパケットを外部に出力する外部出力ステップと
    を有することを特徴とするパケット再送制御方法。
  14. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、
    データ送信要求を行うアプリケーション処理ステップと、
    送信要求のあったパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、
    高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐ステップと、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御ステップと、
    前記MAC再送制御ステップ又は前記パケット処理分岐ステップから送られたパケットを外部に出力する外部出力ステップと
    を有することを特徴とするパケット再送制御方法。
  15. 前記再送制御判定ステップで、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項13又は請求項14に記載のパケット再送制御方法。
  16. 前記ペイロードサイズの規定値が、TCPのMaximum Segment Sizeを含むトランスポート層で規定された最大データサイズであることを特徴とする請求項15に記載のパケット再送制御方法。
  17. 前記再送制御判定ステップで、送信データの出力スループットをモニタし、スループットが前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項13又は請求項14に記載のパケット再送制御方法。
  18. 前記スループットの規定値を、ラインレートとすることを特徴とする請求項17に記載のパケット再送制御方法。
  19. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムによるパケット再送制御方法であって、
    データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理ステップと、
    前記アプリケーション処理ステップから通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定ステップと、
    高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐ステップと、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御ステップと、
    前記MAC再送制御ステップ又は前記パケット処理分岐ステップから送られたパケットを外部に出力する外部出力ステップと
    を有することを特徴とするパケット再送制御方法。
  20. トランスポート層のプロトコルが動作するプロトコル処理ステップとを備え、
    前記アプリケーション処理ステップから送信要求されたデータを、プロトコル処理ステップによりネットワークに送出可能な一定サイズ毎に分割し、パケットとして前記再送制御判定ステップに送出することを特徴とする請求項12から請求項19の何れかに記載のパケット再送制御方法。
  21. 前記MAC再送制御ステップで、短い値の再送タイムアウトを設定し、パケットをMAC再送パケットデータ保持部へ格納すると共に、送信パケットにMAC再送制御用のヘッダを付与して前記外部出力ステップへ転送することを特徴とする請求項13から請求項20の何れかに記載のパケット再送制御方法。
  22. 前記MAC再送制御ステップで、前記再送制御用のヘッダを付した送信パケットに対するACKの到着通知が、前記再送タイムアウト時間以内に通知されない場合、前記MAC再送パケットデータ保持部から再送するパケットを読み出し、再送送信パケットに対して前記再送制御用のヘッダを付与して前記外部出力ステップへ転送することを特徴とする請求項21に記載のパケット再送制御方法。
  23. 外部からのパケットを受信する外部入力ステップと、
    前記外部入力ステップから送られてきたパケットの種別を判定し、前記受信パケットに前記MAC再送制御用のヘッダが無い場合、受信パケットを前記前記プロトコル処理ステップに送り、前記MAC再送制御用のヘッダがあり、かつ受信パケットが前記MAC再送制御ステップから送出したパケットに対するACKであれば、ACKの情報を前記MAC再送制御ステップに通知する受信パケット判定ステップとを有し、
    前記MAC再送制御ステップで、前記受信パケット判定ステップからの通知を受けると、パケットの前記再送タイムアウトを解除することを特徴とする請求項21又は請求項22に記載のパケット再送制御方法。
  24. 前記受信パケット判定ステップで、前記受信パケットに前記MAC再送制御用のヘッダがあるが、前記MAC再送制御ステップから送出したパケットに対するACKでない場合には、MAC再送制御用のACKを、前記外部出力ステップを介して外部に出力することを特徴とする請求項23に記載のパケット再送制御方法。
  25. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、
    前記コンピュータ装置に、
    送信するパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御機能と、
    前記MAC再送制御機能による再送制御を行ったパケット又は高速再送制御を不要と判定したパケットを外部に出力する外部出力機能と、を実行させることを特徴とするパケット再送制御プログラム。
  26. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、
    前記コンピュータ装置に、
    データ送信要求を行うアプリケーション処理機能と、
    送信要求のあったパケットについて、所定の条件に基づき下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、
    高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐機能と、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御機能と、
    前記MAC再送制御機能又は前記パケット処理分岐機能から送られたパケットを外部に出力する外部出力機能と、を実行させることを特徴とするパケット再送制御プログラム。
  27. 前記再送制御判定機能で、送信パケットのパケットサイズをチェックし、パケットのヘッダを除いたペイロードサイズが、前記所定の条件として設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項25又は請求項26に記載のパケット再送制御プログラム。
  28. 前記ペイロードサイズの規定値が、TCPのMaximum Segment Sizeを含むトランスポート層で規定された最大データサイズであることを特徴とする請求項27に記載のパケット再送制御プログラム。
  29. 前記再送制御判定機能で、送信データの出力スループットをモニタし、スループットが前記所定のルールとして設定された規定値未満であれば下位層の高速再送制御を実施すると判定することを特徴とする請求項25又は請求項26に記載のパケット再送制御プログラム。
  30. 前記スループットの規定値を、ラインレートとすることを特徴とする請求項29に記載のパケット再送制御プログラム。
  31. トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの下位層の高速再送制御を行うパケット再送制御システムを構成するコンピュータ装置で実行されるパケット再送制御プログラムであって、
    前記コンピュータ装置に、
    データの送信要求と共に、送信データについて下位層の再送制御を有効とするか否かを示す情報を通知するアプリケーション処理機能と、
    前記アプリケーション処理機能から通知された情報に基づいて、送出パケットについて下位層による高速再送制御を行うか否かを判定する再送制御判定機能と、
    高速再送制御を行うと判定したパケットと行わないと判定したパケットを振り分けるパケット処理分岐機能と、
    高速再送制御を行うと判定したパケットに対し、トランスポート層のプロトコルより短い時間の再送タイムアウトによる送信パケットの再送制御を行うMAC再送制御機能と、
    前記MAC再送制御機能又は前記パケット処理分岐機能から送られたパケットを外部に出力する外部出力機能と、を実行させることを特徴とするパケット再送制御プログラム。
  32. トランスポート層のプロトコルが動作するプロトコル処理機能とを備え、
    前記アプリケーション処理機能から送信要求されたデータを、プロトコル処理機能によりネットワークに送出可能な一定サイズ毎に分割し、パケットとして前記再送制御判定機能に送出することを特徴とする請求項25から請求項31の何れかに記載のパケット再送制御プログラム。
  33. 前記MAC再送制御機能で、短い値の再送タイムアウトを設定し、パケットをMAC再送パケットデータ保持部へ格納すると共に、送信パケットにMAC再送制御用のヘッダを付与して前記外部出力機能へ転送することを特徴とする請求項25から請求項32の何れかに記載のパケット再送制御プログラム。
  34. 前記MAC再送制御機能で、前記再送制御用のヘッダを付した送信パケットに対するACKの到着通知が、前記再送タイムアウト時間以内に通知されない場合、前記MAC再送パケットデータ保持部から再送するパケットを読み出し、再送送信パケットに対して前記再送制御用のヘッダを付与して前記外部出力機能へ転送することを特徴とする請求項33に記載のパケット再送制御プログラム。
  35. 外部からのパケットを受信する外部入力機能と、
    前記外部入力機能から送られてきたパケットの種別を判定し、前記受信パケットに前記MAC再送制御用のヘッダが無い場合、受信パケットを前記前記プロトコル処理機能に送り、前記MAC再送制御用のヘッダがあり、かつ受信パケットが前記MAC再送制御機能から送出したパケットに対するACKであれば、ACKの情報を前記MAC再送制御機能に通知する受信パケット判定機能とを有し、
    前記MAC再送制御機能で、前記受信パケット判定機能からの通知を受けると、パケットの前記再送タイムアウトを解除することを特徴とする請求項33又は請求項34に記載のパケット再送制御プログラム。
  36. 前記受信パケット判定機能で、前記受信パケットに前記MAC再送制御用のヘッダがあるが、前記MAC再送制御機能から送出したパケットに対するACKでない場合には、MAC再送制御用のACKを、前記外部出力機能を介して外部に出力することを特徴とする請求項35に記載のパケット再送制御プログラム。
JP2011506107A 2009-03-27 2010-03-25 パケット再送制御システム、パケット再送制御方法および再送制御プログラム Expired - Fee Related JP5617838B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009078490 2009-03-27
JP2009078490 2009-03-27
PCT/JP2010/055187 WO2010110356A1 (ja) 2009-03-27 2010-03-25 パケット再送制御システム、パケット再送制御方法および再送制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2010110356A1 true JPWO2010110356A1 (ja) 2012-10-04
JP5617838B2 JP5617838B2 (ja) 2014-11-05

Family

ID=42781049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011506107A Expired - Fee Related JP5617838B2 (ja) 2009-03-27 2010-03-25 パケット再送制御システム、パケット再送制御方法および再送制御プログラム

Country Status (3)

Country Link
US (1) US8854957B2 (ja)
JP (1) JP5617838B2 (ja)
WO (1) WO2010110356A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5854044B2 (ja) * 2011-01-12 2016-02-09 日本電気株式会社 通信装置、パケット再送制御方法、パケット再送制御プログラム
JP2017038261A (ja) 2015-08-11 2017-02-16 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US9967373B2 (en) * 2015-10-07 2018-05-08 The United States Of America As Represented By The Secretary Of The Army Test and training enabling architecture gateway implemented on a chip

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55137742A (en) * 1979-04-16 1980-10-27 Nippon Telegr & Teleph Corp <Ntt> Data transmission system
JPH10126772A (ja) * 1996-10-18 1998-05-15 Chokosoku Network Computer Gijutsu Kenkyusho:Kk 動画像データ転送方法
JPH11177536A (ja) 1997-12-08 1999-07-02 Mitsubishi Electric Corp 無線データリンク層の誤り制御方式
US6496481B1 (en) * 1998-07-16 2002-12-17 Industrial Technology Research Institute Data transfer method for wire real-time communications
JP2005020528A (ja) * 2003-06-27 2005-01-20 Toshiba Corp 無線装置
JP2006186557A (ja) * 2004-12-27 2006-07-13 Nec Corp 無線通信システム

Also Published As

Publication number Publication date
US8854957B2 (en) 2014-10-07
US20120082030A1 (en) 2012-04-05
WO2010110356A1 (ja) 2010-09-30
JP5617838B2 (ja) 2014-11-05

Similar Documents

Publication Publication Date Title
US20220311544A1 (en) System and method for facilitating efficient packet forwarding in a network interface controller (nic)
JP5635117B2 (ja) 動的接続された移送サービス
US7571247B2 (en) Efficient send socket call handling by a transport layer
US9503383B2 (en) Flow control for reliable message passing
TWI306711B (en) Message context based tcp transmission
CN112769718B (zh) 网络接口卡
JP2013534103A (ja) 少なくとも部分的なフレーム送信の割り込み
US8539089B2 (en) System and method for vertical perimeter protection
WO2023040949A1 (zh) 网络接口卡、消息发送方法和存储装置
JP5617838B2 (ja) パケット再送制御システム、パケット再送制御方法および再送制御プログラム
CN114138707B (zh) 一种基于fpga的数据传输系统
WO2022068744A1 (zh) 获取报文头信息、生成报文的方法、设备及存储介质
JP5664646B2 (ja) パケット整列装置、パケット整列方法、及び記憶媒体
CN109067506A (zh) 一种基于多滑动窗口并发的轻量级异步消息实现方法
TW202347133A (zh) 具有分層通信架構的晶片至晶片互連
JP4506430B2 (ja) アプリケーションモニタ装置
Koop et al. Zero-copy protocol for mpi using infiniband unreliable datagram
WO2022259452A1 (ja) 中間装置、通信方法、およびプログラム
WO2024113830A1 (zh) 数据传输方法、装置、设备、系统及存储介质
EP3229145A1 (en) Parallel processing apparatus and communication control method
WO2024125098A1 (zh) 数据传输方法、装置、设备及计算机可读存储介质
US20240089219A1 (en) Packet buffering technologies
JP2020178182A (ja) 通信装置、通信装置の制御方法およびプログラム
CN117675890A (zh) 一种rdma动态连接传输服务提供方法和装置
CN116722884A (zh) 一种支持远程数据直接访问协议的网络接口

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130207

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20131010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140901

R150 Certificate of patent or registration of utility model

Ref document number: 5617838

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees