(57)【要約】  通信装置は、順序確認を行うまでのパケットを蓄積する、網ごとに複数設置された順序バッファと、順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定する欠落検出部と、少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットを送信する再送要求部と、再送要求部が送信する再送要求パケットに、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報を搭載する順序バッファ解放契機情報搭載部と、再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する順序バッファ解放契機識別部とを備える。
2012014397.tif 000002
【特許請求の範囲】
【請求項１】
送信機と受信機とが網内でのパケット順序逆転が発生しない複数の網で接続されている通信システムにおける通信装置であって、
順序確認を行うまでのパケットを蓄積する、網ごとに複数設置された順序バッファと、
前記順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定する欠落検出部と、
少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットを送信する再送要求部と、
前記再送要求部が送信する前記再送要求パケットに、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報を搭載する順序バッファ解放契機情報搭載部と、
前記再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する順序バッファ解放契機識別部とを備える
ことを特徴とする通信装置。
【請求項２】
各順序バッファは、受信したパケットにシーケンス番号の若返りが発生した場合に、当該順序バッファに既に格納されているパケットを全て削除して当該順序バッファを解放し、
再送要求部は、欠落検出部によってパケットの欠落が検出された場合に加えて、１つ以上のパケットが格納されていた順序バッファが解放された場合に、現時点で順序確認がされているパケットより後のパケットの再送を要求する再送要求パケットを送信し、
順序バッファ解放契機情報搭載部は、順序バッファ解放契機情報として、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機であることを識別する識別子を搭載し、
順序バッファ解放契機識別部は、再送要求パケットに搭載された順序バッファ解放契機情報が、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機である旨を示している場合に、再送を行わない
請求項１に記載の通信装置。
【請求項３】
各順序バッファは、当該順序バッファがあふれた場合に、当該順序バッファに既に格納されているパケットを全て削除して当該順序バッファを解放し、
順序バッファ解放契機識別部は、再送要求パケットに搭載された順序バッファ解放契機情報が、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機でない旨を示している場合には、再送を行う
請求項１または請求項２に記載の通信装置。
【請求項４】
再送要求部は、再送要求パケットとして、順序確認がとれたパケットのシーケンス番号を付与した到着確認応答パケットを再送信する
請求項１から請求項３のうちのいずれか１項に記載の通信装置。
【請求項５】
送信機と受信機とが、網内でのパケット順序逆転が発生しない複数の網で接続され、
前記受信機が、
順序確認を行うまでのパケットを蓄積する、網ごとに複数設置された順序バッファと、
前記順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定する欠落検出部と、
少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットを送信する再送要求部と、
前記再送要求部が送信する前記再送要求パケットに、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報を搭載する順序バッファ解放契機情報搭載部とを備え、
前記送信機が、
前記再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する順序バッファ解放契機識別部を備える
ことを特徴とする通信システム。
【請求項６】
各順序バッファは、受信したパケットにシーケンス番号の若返りが発生した場合に、当該順序バッファに既に格納されているパケットを全て削除して当該順序バッファを解放し、
再送要求部は、パケットの欠落が検出された場合に加えて、１つ以上のパケットが格納されていた順序バッファが解放された場合に、現時点で順序確認がされているパケットより後のパケットの再送を要求する再送要求パケットを送信し、
順序バッファ解放契機情報搭載部は、順序バッファ解放契機情報として、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機であることを識別する識別子を搭載し、
順序バッファ解放契機識別部は、再送要求パケットに搭載された順序バッファ解放契機情報が、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機である旨を示している場合に、再送を行わない
請求項５に記載の通信システム。
【請求項７】
送信機と受信機とが網内でのパケット順序逆転が発生しない複数の網で接続されている通信システムに適用されるパケット再送制御方法であって、
前記受信機が、
順序確認を行うまで網ごとの順序バッファにパケットを蓄積し、
前記順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定し、
少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットであって、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報が搭載された再送要求パケットを送信し、
前記送信機が、再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する
ことを特徴とするパケット再送制御方法。
【請求項８】
受信機が、
網ごとに受信したパケットにシーケンス番号の若返りが発生した場合に、当該順序バッファに既に格納されているパケットを全て削除して当該順序バッファを解放し、
１つ以上のパケットが格納されていた順序バッファが解放された場合に、現時点で順序確認がされているパケットより後のパケットの再送を要求し、
送信機が、
再送要求パケットに搭載された順序バッファ解放契機情報が、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機である旨を示している場合に、再送を行わない
請求項７に記載のパケット再送制御方法。
【請求項９】
送信機と受信機とが網内でのパケット順序逆転が発生しない複数の網で接続されている通信システムにおける通信装置に搭載されているコンピュータに、
順序確認を行うまで網ごとの順序バッファにパケットを蓄積する処理、
前記順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定する処理、
少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットであって、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報が搭載された再送要求パケットを送信する処理、および
再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する処理
を実行させるためのパケット再送制御プログラム。
【請求項１０】
コンピュータに、
網ごとに受信したパケットにシーケンス番号の若返りが発生した場合に、当該順序バッファに既に格納されているパケットを全て削除して当該順序バッファを解放する処理、
１つ以上のパケットが格納されていた順序バッファが解放された場合に、現時点で順序確認がされているパケットより後のパケットの再送を要求する処理、および
再送要求パケットに搭載された順序バッファ解放契機情報が、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機である旨を示している場合に、再送要求を無視する処理
を実行させる請求項９に記載のパケット再送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数経路にデータを分散させたマルチパス通信を行う通信装置、通信システム、パケット再送制御方法およびパケット再送制御プログラムに関する。
【背景技術】
【０００２】
例えば、特許文献１に記載されているような、送信端末と受信端末の間の通信で用いられる１つの通信フローのデータを複数経路に分岐させ、元のフローを復元するマルチパス通信方法がある。【０００３】
また、特許文献２には、送信機と受信機が網内でのパケット順序逆転が発生しない複数の網で接続されている通信システムにおいて、順序確認を行うまでパケットを蓄積する順序バッファを網ごとに設け、それら網ごとに設置した順序バッファへのパケット滞留状態を監視することにより、パケット損失を検出するパケット欠落検出方法が記載されている。なお、特許文献２に記載されているパケット欠落検出方法（以下、高速パケット欠落検出方法という。）では、順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落（パケット欠落、パケット損失、パケットロスともいう。）が発生したと判定される。その方法を用いた場合には、タイムアウトを待って再送要求を行う場合に比べて、より高速にパケット損失を検出することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−７１１５６号公報
【特許文献２】特開２００９−５５４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献２に記載されている高速パケット欠落検出方法は、順序バッファからパケットを取り出す際に各順序バッファへのパケット滞留状態を監視することにより、パケット損失を検出する方法である。しかし、到着パケットの整序番号の若返りなどの不整合は順序バッファへ格納する前に判断できる。そのような不整合を検出した場合には即座に再送要求を行った方がより高速にパケットシーケンスを復旧させることができる。【０００６】
しかし、特許文献２に記載されている高速パケット欠落検出方法では、パケット滞留状態によりパケット欠損を検出したときには、順序バッファの破棄は行われない。再送されたパケットにて整序番号の若返りが検出されたときに古いパケット（再送要求前に経路上に送信されたパケット）が破棄される。その結果、再送要求が再度生じる。そして、高負荷時にこのような再送要求が重複すると、再送による経路の帯域が消費され、システム全体のスループットが低下するという問題があった。【０００７】
そこで、本発明は、高速パケット欠落検出とパケット到着時に判定して行う再送要求とを組み合わせて行った場合において、高負荷時にもシステム全体のスループット低下を抑えることができる通信装置、通信システム、パケット再送制御方法およびパケット再送制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明による通信装置は、送信機と受信機とが網内でのパケット順序逆転が発生しない複数の網で接続されている通信システムにおける通信装置であって、順序確認を行うまでのパケットを蓄積する、網ごとに複数設置された順序バッファと、順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定する欠落検出部と、少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットを送信する再送要求部と、再送要求部が送信する再送要求パケットに、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報を搭載する順序バッファ解放契機情報搭載部と、再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する順序バッファ解放契機識別部とを備えることを特徴とする。【０００９】
また、本発明による通信システムは、送送信機と受信機とが、網内でのパケット順序逆転が発生しない複数の網で接続され、受信機が、順序確認を行うまでのパケットを蓄積する、網ごとに複数設置された順序バッファと、順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定する欠落検出部と、少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットを送信する再送要求部と、再送要求部が送信する再送要求パケットに、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報を搭載する順序バッファ解放契機情報搭載部とを備え、送信機が、再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する順序バッファ解放契機識別部を備えることを特徴とする。【００１０】
また、本発明によるパケット再送制御方法は、送信機と受信機とが網内でのパケット順序逆転が発生しない複数の網で接続されている通信システムに適用されるパケット再送制御方法であって、受信機が、順序確認を行うまで網ごとの順序バッファにパケットを蓄積し、順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定し、少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットであって、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報が搭載された再送要求パケットを送信し、送信機が、再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断することを特徴とする。【００１１】
また、本発明によるパケット再送制御プログラムは、送信機と受信機とが網内でのパケット順序逆転が発生しない複数の網で接続されている通信システムにおける通信装置に搭載されているコンピュータに、順序確認を行うまで網ごとの順序バッファにパケットを蓄積する処理、順序バッファのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定する処理、少なくとも欠落検出部によってパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットであって、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報が搭載された再送要求パケットを送信する処理、および再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する処理を実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、高速パケット欠落検出とパケット到着時に判定して行う再送要求とを組み合わせて行う場合において、高負荷時にもシステム全体のスループットの低下を抑制できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の通信装置の全体構成例を示すブロック図である。
【図２】順序バッファ制御の動作の一例を示すフローチャートである。
【図３】ＡＣＫ送信制御の動作の一例を示すフローチャートである。
【図４】ＡＣＫ受信時の動作の一例を示すフローチャートである。
【図５】実施形態の通信装置間でやり取りされるパケットの例を示すシーケンス図である。
【図６】パケット欠落時の受信機２の動作例を示すブロック図である。
【図７】パケット欠落時の受信機２の動作例を示すブロック図である。
【図８】パケット欠落時の受信機２の動作例を示すブロック図である。
【図９】パケット欠落時の受信機２の動作例を示すブロック図である。
【図１０】パケット欠落時の受信機２の動作例を示すブロック図である。
【図１１】本発明の概要を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図面を参照して説明する。
【００１５】
以下の説明においては、１対の送信機と受信機との間の通信を、１フローと定義する。また、あるフローが流れる経路をパスと定義する。例えば、１フローを４つの網（ネットワーク）に分散させて通信する場合は、４パスを用いて通信するといい、２つのフローを４つの網（ネットワーク）に分散させて通信する場合は、８つのパスを用いて通信するという。ただし、以下の説明では、１つのフローに着目して説明を行うため、結果的に網とパスが同義になっている。
【００１６】
図１は、本発明の実施形態の通信装置の構成例を示すブロック図である。図１に示す例では、送信機１は、データ送信部１１と、ＳＥＱ付与部１２と、再送バッファ１３と、振り分け部１４と、再送タイマ１５と、順序バッファ解放契機識別部１６とを備える。また、受信機２は、順序バッファ２１１〜２１４と、欠落検出部２０と、取出制御部２２と、ＡＣＫ送信部２３と、出力バッファ２４と、ＳＥＱ削除部２５と、データ受信部２６と、順序バッファ解放契機情報搭載部２７とを備える。
【００１７】
なお、図１には、送信機１と受信機２という異なる構成の２つの通信装置が例として示されているが、送信機能と受信機能とを両方充足する通信装置を送信側と受信側にそれぞれ備えるようにしてもよい。例えば、図１に示される例では、送信機１と受信機２の代わりに、送信機１の構成要素と受信機２の構成要素の両方を備えた通信装置を２台備える構成とすることも可能である。
【００１８】
なお、図１には、１つのフローを４つの網に分散させて通信する例が示されている。このため、受信機２が４つの順序バッファ（順序バッファ２１１〜２１４）を備える。しかし、順序バッファは当該受信機２が受信に用いる網の数に応じて備えられていればよい。例えば、通信に３つの網を利用する場合には３つの順序バッファが備えられていればよい。
【００１９】
まず、送信機１の構成について説明する。データ送信部１１は、受信機２に対して送信するデータを生成し、ＳＥＱ付与部１２に渡す。一般的にはサーバアプリケーションなどがデータ送信部に相当する。
【００２０】
ＳＥＱ付与部１２は、データ送信部１２から受信機２に対して送信するデータを受け取り、受け取ったデータを網３１〜網３４で転送可能な大きさに分割し、分割した個々のデータ（以下パケットと呼ぶ）に対して転送に必要なヘッダや整序番号（シーケンスナンバーともいう、以下ＳＥＱと表記する）を設定し、再送バッファ１３に渡す。
【００２１】
再送バッファ１３は、ＦＩＦＯバッファであり、以下の動作を行う。
【００２２】
（１）ＳＥＱ付与部１２からＳＥＱつきのパケットを受け取り格納する。
【００２３】
（２）あらかじめ決められた速度や個数に従い、受け取ったＳＥＱつきのパケットの複製を振り分け部１４に送る。このとき、再送タイマ１５をセットする。
【００２４】
（３）ＡＣＫ送信部２３より送達確認（ＡＣＫ）を受け取り、ＡＣＫに記載された受信済ＳＥＱ以下の値のＳＥＱが付与された格納パケットを消去する。このとき、再送タイマ１５を再セットする。
【００２５】
（４）（３）において、もしＡＣＫに記載されたＳＥＱが、前回受信したＡＣＫに記載されたＳＥＱと同一である場合は、再送要求（重複ＡＣＫ）であるとみなす。そして、ＡＣＫに記載されたＳＥＱ以降のパケットについて、（２）と同様あらかじめ決められた速度や個数に従い、当該パケットの複製を振り分け部１４に再送信する。
【００２６】
（５）再送タイマ１５の満了時に、前回受信したＡＣＫに記載されたＳＥＱ以降のパケットについて、（２）と同様あらかじめ決められた速度や個数に従い、当該パケットの複製を振り分け部１４に再送信する。
【００２７】
振り分け部１４は、再送バッファ１３から到着したパケットを、ラウンドロビン方法等により網３１〜３４に順次振り分ける。
【００２８】
再送タイマ１５は、再送バッファ１３からセット要求を受信すると、あらかじめ設定された時間が経過した際に、再送バッファ１３に対してタイマ満了通知を行う。
【００２９】
順序バッファ解放契機識別部１６は、対向の受信機２からのＡＣＫ等に搭載された順序バッファ解放契機通知用フィールドの情報を参照し識別する。ここで、順序バッファ解放契機通知用フィールドは、当該フィールドを付与したメッセージの送信要因となった、受信機２が順序バッファを解放する契機を示す情報を登録するための情報である。本実施形態では、ＳＥＱ若返りによる順序バッファ解放か否かを示す情報とする。
【００３０】
順序バッファ解放契機識別部１６は、順序バッファ解放契機通知用フィールドの情報が、高速パケット欠損検出後の再送パケット受信にもとづくＳＥＱ若返りによる順序バッファ解放による再送要求通知となっている場合には、再送バッファ１３に再送要求を行わない。再送要求が行われないので、再送は行われない。それ以外の再送要求である場合には再送バッファ１３に再送を要求する。
【００３１】
続いて、受信機２の構成について説明する。順序バッファ２１１〜２１４は、それぞれＦＩＦＯバッファである。順序バッファ２１１〜２１４は、対応づけられた網（網３１〜３４のいずれか）からパケットを受信して一旦格納し、取出制御部２２に格納完了通知を行う。また、取出制御部２２からの指示に従い、格納したパケットを出力バッファ２４に転送する。
【００３２】
また、順序バッファ２１１〜２１４は、対応づけられた網より到着したパケットのＳＥＱと、前回にその網より到着したパケットのＳＥＱとを比較する。順序バッファ２１１〜２１４は、今回到着したパケットのＳＥＱが、前回到着したパケットのＳＥＱより小さい値または同じ値である場合は、再送が発生したとみなす。順序バッファ２１１〜２１４は、再送が発生したとみなした場合、格納済パケットをすべて廃棄（削除）し、順序バッファを解放する。そして、順序バッファ２１１〜２１４は、欠落検出部２０に順序バッファ解放契機としてその旨（ＳＥＱ若返りによるバッファ解放通知）を通知する。なお、順序バッファに１つもパケットが格納されていない場合にはバッファを解放したとはみなさないため、通知は行われない。
【００３３】
なお、順序バッファ２１１〜２１４は、順序バッファをクリアした後に、再送により受信したパケットを順次バッファに格納すればよい。このような場合、欠落検出部２０にバッファ解放通知を通知した後、取出制御部２２に格納完了通知を行うことになる。なお、順序バッファあふれが発生した場合も同様でよい。この場合、欠落検出部２０にはバッファあふれによるバッファ解放通知を行う。
【００３４】
欠落検出部２０は、取出制御部２２からパケット取出完了の通知を受けると、パケットロスの有無を確認する。もしパケットロスを発見した場合は、ＡＣＫ送信部２３に対して再送要求を行う。また、パケットロス検出に伴い順序バッファの解放があった場合に順序バッファ解放契機情報搭載部２７に順序バッファ解放契機を通知する。
【００３５】
取出制御部２２は、順序バッファ２１１〜２１４からの格納完了通知を受け、順序確認動作２２１を起動する。取出制御部２２は、ＳＥＱの順番に従い、出力バッファ２４へパケットを転送する。このとき、ＡＣＫ送信部２３に対して、出力バッファ２４に転送したパケットのＳＥＱを通知する。
【００３６】
ＡＣＫ送信部２３および順序バッファ解放契機情報搭載部２７は、以下の動作を行う。なお、本実施形態では、一例として、出力バッファ２４へ１パケット転送が完了する毎に１パケットのＡＣＫが送信される１ＡＣＫ方式が採用される。しかし、Ｎ（Ｎは１以上）個のパケット到着報告を１つのＡＣＫでまとめて行うＮ＿ＡＣＫ方式が用いられてもよい。
【００３７】
（１）ＡＣＫ送信部２３は、取り出し制御部２２から出力バッファ２４に転送したパケットのＳＥＱ通知を受けると、ＳＥＱを含むＡＣＫを生成する。順序バッファ解放契機情報搭載部２７は、ＡＣＫを送信機１に通知する。このときＡＣＫは、網３１〜３４のいずれかを用いて通知される。また、ＡＣＫ送信部２３は、通知されたＳＥＱを記憶する。
【００３８】
（２）ＡＣＫ送信部２３は、欠落検出部２０から再送要求を受けると、（１）で記憶したＳＥＱを含むＡＣＫを再度生成する。順序バッファ解放契機情報搭載部２７は、ＡＣＫに順序バッファ解放契機情報を搭載し送信機１に通知する。ＡＣＫは、網３１〜３４のいずれかを用いて通知される。（２）におけるＡＣＫは、送信機１において重複ＡＣＫ（再送要求）として扱われる。
【００３９】
出力バッファ２４は、ＦＩＦＯバッファである。出力バッファ２４は、順序バッファ２１１〜２１４から受け取ったパケットを格納する。そして、出力バッファ２４は、ＳＥＱ削除部２５から要求があった際に、格納された順にパケットをＳＥＱ削除部２５に出力する。
【００４０】
ＳＥＱ削除部２５は、出力バッファ２４よりパケットを受け取る。ＳＥＱ削除部２５は、パケットからＳＥＱやヘッダを削除して、ＳＥＱ削除後のデータをデータ受信部２６に転送する。
【００４１】
データ受信部２６は、ＳＥＱ削除部２６よりデータを受信する。データ受信部２６は、一般的にはクライアントアプリケーションとも呼ばれる。
【００４２】
網３１〜３４は、それぞれ送信機１と受信機２の間を結ぶネットワークである。網３１〜３４は、例えばイーサネットなど、網内でのパケットの順序逆転が発生しない網であるとする。なお、図１において各網は１本の線で表現されているが、実際には網内でのパケット順序逆転が発生しない限り、リンクの他に、スイッチ等が存在してもよい。また、各網は、それぞれ物理的に遮断されてか、またはＶＬＡＮ等で論理的に遮断されている。すなわち、各網は、互いに交わることがないとする。
【００４３】
本実施形態において、データ送信部１１、ＳＥＱ付与部１２は、ＣＰＵ等のプログラムに従って動作するプロセッサ・ユニットによって実現される。また、振り分け部１４、順序バッファ解放契機識別部１６は、各網との通信機能を実現するハードウェアおよびＣＰＵ等のプログラムに従って動作するプロセッサ・ユニットによって実現される。また、再送タイマ１５は、計時機能を実現するハードウェアやＣＰＵ等のプログラムに従って動作するプロセッサ・ユニットによって実現される。また、再送バッファ１３は、記憶装置およびそれを制御する制御部（ＣＰＵ等のプログラムに従って動作するプロセッサ・ユニットであってもよい）によって実現される。
【００４４】
また、データ受信部２６、ＳＥＱ削除部２５、取り出し制御部２２、欠落検出部２０は、ＣＰＵ等のプログラムに従って動作するプロセッサ・ユニットによって実現される。また、ＡＣＫ送信部２３、順序バッファ解放契機情報搭載部２７は、各網との通信機能を実現するハードウェアおよぼＣＰＵ等のプログラムに従って動作するプロセッサ・ユニットによって実現される。また、順序バッファ２１１〜２１４は、各網との通信機能を実現するハードウェア、記憶装置およびそれを制御する制御部（ＣＰＵ等のプログラムに従って動作するプロセッサ・ユニットであってもよい）によって実現される。また、出力バッファ２４は、記憶装置によって実現される。
【００４５】
次に、本実施形態の動作を説明する。図２は、受信機２の取出制御部２２が行う順序確認動作２２１の例を示すフローチャートである。
【００４６】
図２に示す例では、取出制御部２２は、順序バッファ２１１〜２１４のいずれかに１つのパケットが格納された後、格納完了通知が行われたときに順序確認動作２２１を起動する（ステップ２２１０１）。
【００４７】
取出制御部２２は、順序確認動作２２１で、まず、順序バッファ２１１の先頭（出力バッファ２４側）に格納されているパケットのＳＥＱを確認する（ステップ２２１０２）。
【００４８】
取出制御部２２は、ステップ２２１０２において確認した順序バッファ２１１の先頭パケットのＳＥＱ（先頭ＳＥＱ）と、順序制御部２２が次に出力バッファ２４に送信しようとしているＳＥＱ（受信期待ＳＥＱ、以下期待ＳＥＱと記す）とを比較する（ステップ２２１０３）。
【００４９】
比較した結果、先頭ＳＥＱと期待ＳＥＱが一致した場合には、取出制御部２２は、順序バッファ２１１よりパケットを取り出して、出力バッファ２４に送る（ステップ２２１０４）。
【００５０】
次いで、取出制御部２２は、ＡＣＫ送信部２３に対して、送達確認パケット（ＡＣＫ）の送信を要求する。このＡＣＫには期待ＳＥＱのＳＥＱが格納されている。従って、期待ＳＥＱまでの受信と整序が完了したことが送信機１に通知される（ステップ２２１０５）。
【００５１】
そして、取出制御部２２は、期待ＳＥＱをインクリメントする。つまり、期待ＳＥＱ＝期待ＳＥＱ＋１とする（ステップ２２１０６）。
【００５２】
取出制御部２２は、ステップ２２１０７〜２２１１１で、順序バッファ２１２に関して、ステップ２２１０２〜２２１０６と同様の動作を行う。
【００５３】
取出制御部２２は、ステップ２２１１２〜２２１１６で、順序バッファ２１３に関して、ステップ２２１０２〜２２１０６と同様の動作を行う。
【００５４】
取出制御部２２は、ステップ２２１１７〜２２１２１で、順序バッファ２１４に関して、ステップ２２１０２〜２２１０６と同様の動作を行う。
【００５５】
このように、取出制御部２２は、各順序バッファに関してＳＥＱの確認動作において、順序バッファから取り出して出力バッファへ送付したパケットの数をカウントする。パケットの数が１以上である場合には、取出制御部２２は、再度ステップ２２１０２以降の処理を実行する。
【００５６】
一方、順序バッファから取り出して出力バッファへ送付したパケットの数が０である場合、つまり出力バッファ２３に転送可能な（つまり整序可能な）パケットが、順序バッファ２１１〜２１４のいずれにも存在しない場合、取出制御部２２は、ステップ２２１２３の処理を実行する（ステップ２２１２２）。
【００５７】
ステップ２２３１２では、取出制御部２２は、欠落検出部２０にパケット取出完了を通知し、欠落検出動作を起動する。
【００５８】
次に、図３を参照して、欠落検出部２０の動作を説明する。図３は、欠落検出部２０の動作例を示すフローチャートである。欠落検出部２０は、例えば順序確認動作２２１からパケット取り出し完了通知を受けると、欠落検出動作を起動する（ステップ２０００）。なお、欠落検出部２０は、順序確認動作２２１からのパケット取り出し完了通知を受けたとき以外のときに欠落検出動作を開始することがある。例えば、順序バッファ２１１〜２１４からバッファ解放通知を受けると、欠落検出動作を開始する。
【００５９】
欠落検出部２０は、欠落検出動作では、まず、順序バッファがクリアされたかを確認する（ステップ２００１）。
【００６０】
順序バッファがクリアされていない場合は、欠落検出部２０は、順序バッファ２１１に格納されているパケットの個数を確認する（ステップ２００２）。
【００６１】
順序バッファ２１１に格納されているパケットの数が０である場合は、欠落検出部２０は、動作を終了する。格納パケット数が１以上である場合は、ステップ２００４に移る（ステップ２００３）。
【００６２】
欠落検出部２０は、ステップ２００４およびステップ２００５で、順序バッファ２１２に関して、ステップ２００２およびステップ２００３と同様の動作を行う。
【００６３】
欠落検出部２０は、ステップ２００６およびステップ２００７で、順序バッファ２１３に関して、ステップ２００２およびステップ２００３と同様の動作を行う。
【００６４】
欠落検出部２０は、ステップ２００８およびステップ２００９で、順序バッファ２１４に関して、ステップ２００２およびステップ２００３と同様の動作を行う。
【００６５】
以上のように、欠落検出部２０は、各順序バッファに格納されているパケットの個数を確認する。順序バッファ２１１〜２１４の全てにおいて、１つ以上のパケットの格納が確認された場合、欠落検出部２０は、ＡＣＫ送信部２３に対して送信要求を行う。なお、送信要求を受けたＡＣＫ送信部２３は、前回送信したＡＣＫと同じＳＥＱが含まれるＡＣＫ（重複ＡＣＫ）を生成し、送信機１に対して再送要求を行う（ステップ２０１２）。
【００６６】
また、ステップ２００１において順序バッファがクリアされた場合、欠落検出部２０は、ＳＥＱの若返りがあったかを確認する（ステップ２０１０）。
【００６７】
ＳＥＱの若返りがない場合、欠落検出部２０は、ＡＣＫ送信部に対してＡＣＫ送信要求を行う。
【００６８】
ＳＥＱの若返りがあった場合、欠落検出部２０は、順序バッファ解放契機フラグを設定し（ステップ２０１１）、ＡＣＫ送信部２３に対し送信要求を行う。このときＡＣＫ送信部２３は、前回送信したＡＣＫと同じＳＥＱが含まれるＡＣＫ（重複ＡＣＫ）を生成し、送信機１に対して再送要求を行うことになるが、送信機１には、順序バッファ解放契機フラグが設定されたＡＣＫが送信される。
【００６９】
図４は、順序バッファ解放契機情報識別部１６の動作例を示すフローチャートである。図４に示す例では、順序バッファ解放契機情報識別部１６は、受信機２からＡＣＫが送信され、送信機１に到着すると（ステップ３０００）、受信されたＡＣＫが重複ＡＣＫ（すなわち、再送要求）であるか否か確認する（ステップ３００１）。
【００７０】
重複ＡＣＫでない場合、順序バッファ解放契機情報識別部１６は、受信されたＡＣＫを通常のＡＣＫとして処理し、再送バッファの解放等を行う（ステップ３００２）。
【００７１】
一方、重複ＡＣＫである場合、順序バッファ解放契機情報識別部１６は、受信されたＡＣＫにおける順序バッファ解放契機通知用フィールドの順序バッファ解放契機フラグを確認する（ステップ３００３）。
【００７２】
順序バッファ解放契機フラグがＳＥＱ若返りによる順序バッファ解放を示している場合、順序バッファ解放契機情報識別部１６は、受信されたＡＣＫは再送要求ではあるものの再送処理対象とせずに処理を終了する。
【００７３】
一方、順序バッファ解放契機フラグがＳＥＱ若返りによる順序バッファ解放を示していない場合には、順序バッファ解放契機情報識別部１６は、受信されたＡＣＫを再送処理対象として、再送バッファに再送指示をだす（ステップ３００４）。
【００７４】
以下、図５のシーケンス図を参照して、本実施形態の動作例を説明する。なお、図５には、説明を簡単にするため、１つのフローを２つの網（網３１，３２）に分散させて通信する場合の例が示されている。従って、受信機２は２つの順序バッファ（順序バッファ２１１〜２１２）を備えているものとする。なお、図５では、網３１を用いて送信されたパケットが実線の矢印で示され、網３２を用いて送信されたパケットが破線の矢印で示されている。
【００７５】
まず、送信機１において、データ送信部１１が、データ受信部２６に対するデータを生成し、ＳＥＱ付与部１２に送付する。
【００７６】
ＳＥＱ付与部１２は、データ送信部１２からのデータを、網３１〜３２で転送可能な大きさに分割し、各データにヘッダを取り付けてパケットを生成する。さらに受信機２がデータを復元できるよう、パケットに対して整序のためにシーケンスナンバー（ＳＥＱ）を割り振り、パケットを再送バッファ１３に転送する。
【００７７】
再送バッファ１３は、ＳＥＱ付与部１２よりパケットを受け取り一旦格納する。そして、あらかじめ設定された送信レートやウインドウサイズ等に従って、格納したパケットの複製を振り分け部１４に送出する。
【００７８】
振り分け部１４は、再送バッファ１３から受け取ったパケットを、ラウンドロビン方法等により網３１〜３２の各網に分散させて送出する。例えば、ＳＥＱ０のパケットは網３１、ＳＥＱ１のパケットは網３２、ＳＥＱ２のパケットは網３１、ＳＥＱ３のパケットは網３２というように、一連のＳＥＱが付与されたパケットを網３１〜３２に振り分ける。
【００７９】
網３１〜３２は送信機１から送出されたパケットを受信機２に送る。
【００８０】
受信機２では、各順序バッファ２１１，２１２が、それぞれ対応づけられた網から到着したパケットを格納し、取出制御部２２に格納完了を通知する。
【００８１】
取出制御部２２は、順序バッファからの格納完了通知を受け、順序確認動作２２１を起動する。
【００８２】
順序格納動作２２１は、各順序バッファの先頭に格納されているパケットのＳＥＱを調べる。当該ＳＥＱが次に出力バッファ２４に送るべきＳＥＱ（期待ＳＥＱ）と一致した場合は、順序格納動作２２１は、このパケットを取り出して出力バッファ２４に送り、ＡＣＫ送信部２３に対してＡＣＫの送信を要求する。例えば以前にＳＥＱ＝５まで出力バッファ２４に転送完了していた場合、各順序バッファのいずれかの先頭に、ＳＥＱ＝６のパケットが格納されていた場合は、順序格納動作２２１は、これを取り出して出力バッファに転送し、ＳＥＱ＝６のＡＣＫ送信を要求する。
【００８３】
また、順序確認動作２２１は、出力バッファに転送すべきパケットを各順序バッファのいずれにおいても発見できなかった場合は、欠落検出部２０に取り出し完了を通知する。
【００８４】
欠落検出部２０は、取出制御部２２からの取出完了通知を受けると、各順序バッファに格納されているパケットの個数を調べる。全ての順序バッファにおいてパケットの格納が確認された場合は、欠落検出部２０は、パケットロスが発生したものと判断してＡＣＫ送信部２３に対して再送要求を行う。また、各順序バッファからのバッファ解放通知を受けた場合には、欠落検出部２０は、順序バッファ解放契機情報搭載部２７およびＡＣＫ送信部２３に対してバッファ解放要因に応じた再送要求を行う。
【００８５】
ＡＣＫ送信部２３は、取出制御部２２または欠落検出部２０からの要求に応じて、対向の送信機１にＡＣＫを送信する。なお、再送要求の場合、ＳＥＱ＝期待ＳＥＱ−１とする重複ＡＣＫを送信する。
【００８６】
なお、出力バッファ２４は、順序バッファよりパケットを受信し、ＳＥＱ削除部２５からの要求により、ＦＩＦＯ方式でパケットを取り出して転送する。
【００８７】
ＳＥＱ削除部２５は、出力バッファ２４からパケットを取り出し、ヘッダ（ＳＥＱ含む）を削除して、データをデータ受信部２６に転送する。
【００８８】
データ受信部２６は、ＳＥＱ削除部２５からので０他を受け取り、各種処理を行う。
【００８９】
送信機１の順序バッファ解放契機識別部１６は、受信機２からのパケットを受信し、前回受信したＡＣＫのＳＥＱよりも大きなＳＥＱが含まれる場合には、当該ＳＥＱまでのパケットを再送バッファ１３から消去する。前回受信したＡＣＫのＳＥＱと同じＳＥＱが含まれていた場合には、順序バッファ解放契機識別部１６は、重複ＡＣＫ（再送要求）であるとみなし、ただちに再送バッファに格納されているパケットを、ＳＥＱの若いものから順に再送信する。
【００９０】
図５を参照して、送信機１がフルレートでパケットを送信するような高負荷状態において、ＦＣＳエラー等によるパケットロスが発生した場合を例に、通信装置のより詳細な動作を説明する。図５には、ＳＥＱ＝１０のパケットが欠落した場合の例が示されている。
【００９１】
図６は、パケット欠落時の受信機２の動作例を示すブロック図である。図６に示す例では、順序格納動作２２１により、ＳＥＱ１〜９までのパケットが、出力バッファ２４に転送される。これらパケットに対して、ＡＣＫ送信部２３および順序バッファ解放契機情報識別部１６により、ＡＣＫ１〜９が送出されている。なお、図中において特に記載がない場合は、順序バッファ解放契機フラグの値は、未設定（ＳＥＱ若返りによる順序バッファ解放でない旨を示す値）であるとする。
【００９２】
順序バッファ２１２に、ＳＥＱ＝１１のパケットが格納されると、順序確認動作２２１が起動する。しかし、出力バッファ２４に送出できるパケット（ＳＥＱ＝１０のパケット）がないので、欠落検出部２０に対して取り出し完了通知が送信される。欠落検出部２０は、各順序バッファに格納されているパケットの個数を調べる。ここでは、欠落したＳＥＱ＝１０のパケットの次に網３１に送出されたＳＥＱ＝１２のパケットは未受信であるため、順序バッファ２１１のパケット数＝０である。よって、欠落検出部２０は、処理を終了する。
【００９３】
次に、順序バッファ２１１に、ＳＥＱ＝１２のパケットが格納されると、再度順序確認動作２２１が起動する。しかし、出力バッファ２４に送出できるパケット（ＳＥＱ＝１０のパケット）がないので、欠落検出部２０に対して取り出し完了通知送信される。欠落検出部２０は、各順序バッファに格納されているパケットの個数を調べる。今度は、欠落検出部２０は、順序バッファ２１１を含む全ての順序バッファ内にパケットが格納されていること（すなわち、ＳＥＱが飛んでパケット滞留していること）を確認し、欠落が発生しているとみなして、ＡＣＫ送信部２３に対して再送要求を行う。以下、この再送要求をシーケンス飛び滞留による再送要求と表現する場合がある。
【００９４】
ＡＣＫ送信部２３は、欠落検出部２０からの再送要求を受け、前回送出したＡＣＫ（ＡＣＫ＝９）と同じＳＥＱ＝９を含むＡＣＫを送信する。なお、ＡＣＫ送信部２３は、順序バッファ解放契機フラグを非設定（例えば、０）とする。
【００９５】
送信機１には、同じ番号のＡＣＫが連続して届く。よって、送信機１は、再送要求があったと判断して、再送バッファ内のパケットの再送を行う。
【００９６】
このような高速パケット欠落方法によって高速にパケットロスを検知し再送要求を行ったとしても、送信機１側が高いビットレートでパケット送信をしている場合には、再送要求が到達するまでの間に送信されたパケットが経路上に残っている（例えば、図５のＳＥＱ＝２７までを参照）。このため、これらのパケットは、図７に示すように、破棄されずに各順序バッファに残る。図７は、シーケンス飛び滞留による再送要求を行った後の受信機１のバッファの様子を示すブロック図である。
【００９７】
その後、受信機２は、再送パケットであるＳＥＱ＝１０からのパケットを受信することになる。例えば、ＳＥＱ＝１０からのパケットが網３２から再送された場合、順序バッファ２１２は、既に受信しているパケットのＳＥＱ＝２７と比較し、ＳＥＱ若返りが発生したことを認識する。すると、順序バッファ２１２は、再送が発生したとみなして格納済みパケットをすべて廃棄し、欠落検出部２０にその旨（ＳＥＱ若返りによるバッファ解放通知）を通知する。
【００９８】
その通知後、順次バッファ２１２は、廃棄後のバッファに受信したＳＥＱ＝１０のパケットを格納し、取出制御部２２に格納完了通知を行う。
【００９９】
欠落検出部２０は、順序バッファ２１２からバッファ解放通知を受けると、欠落検出動作を行う。欠落検出部２０は、欠落検出動作として、まず、バッファ解放があったこと、およびその要因がＳＥＱ若返りであることを認識し、ＳＥＱ若返りによる再送要求をＡＣＫ送信部２３および順序バッファ解放契機情報搭載部２７に対して行う。欠落検出部２０は、例えば、順序バッファ解放契機情報搭載部２７が管理している順序バッファ解放契機フラグを１（有効）にした上で、ＡＣＫ送信部２３に再送要求を行ってもよい。
【０１００】
ＡＣＫ送信部２３および順序バッファ解放契機情報搭載部２７は、欠落検出部２０からの再送要求を受け、前回送出したＡＣＫ（ＡＣＫ＝９）と同じＳＥＱ＝９を含むＡＣＫを送信する。なお、今回は、順序バッファ解放契機フラグは若返りによるバッファ解放を示す値（例えば、１）とする。図８は、網３２からのＳＥＱ若番受信による再送要求を行った際の受信機１のバッファの様子を示すブロック図である。
【０１０１】
また図８に示すように、ＳＥＱ若番受信による再送要求が行われた後、順序バッファ２１２には受信したＳＥＱ＝１０のパケットが格納されている。取出制御部２２は、順序バッファ２１２にＳＥＱ＝１０のパケットが格納されると、順序確認動作２２１を起動し、期待ＳＥＱと同じＳＥＱである当該パケットを取り出し、出力バッファ２４に送出する。そして、ＡＣＫ送信部２３を介して正常に受信した旨を通知するためのＡＣＫ（ＳＥＱ＝１０を含む）を送信機１に送信する。
【０１０２】
送信機１側では、ＳＥＱ＝１０のパケットに続いて、ＳＥＱ＝１１以降のパケットも順次送信している。例えば、ＳＥＱ＝１１のパケットは網３１を用いて送信される。図９は、網３１からのＳＥＱ若番受信による再送要求を行った際の受信機１のバッファの様子を示すブロック図である。順序バッファ２１１でもＳＥＱ若返りを検出し、順序バッファの解放が行われる。ここでは、ＳＥＱ＝１０を受信した場合と同様に、受信バッファ２１１に格納されているパケットが廃棄され、ＳＥＱ若番受信による再送要求（ＳＥＱ＝１０、順序バッファ解放契機フラグ＝１を含む）が行われた後、順序バッファ２１１は、受信したＳＥＱ＝１１のパケットを格納する。そして、順序確認動作２２１が起動し、期待ＳＥＱと同じＳＥＱである当該パケットが取り出され、出力バッファ２４に送出される。そして、正常に受信した旨を通知するためのＡＣＫ（ＳＥＱ＝１１を含む）が送信機１に送信される。なお、網が３以上の網を用いた場合は、各パスにＳＥＱ若番受信による再送要求が行われることになる。
【０１０３】
送信機１には同じ番号のＡＣＫが連続して届く。順序バッファ解放契機情報識別部１６が順序バッファ解放契機フラグを確認した結果、ＳＥＱ若番受信による再送要求であると認識した場合には、それによる再送処理は行わない。従って、現在処理中の再送処理が継続して行われる（図５のＳＥＱ＝１４〜１５を参照）。
【０１０４】
なお、上記動作例では、再送パケットが異なる網によって再送されたが、例えば図１０に示すように、再送パケットが網３１を用いて送信された場合、順序バッファ２１１がクリアされてＳＥＱ＝１０のパケットが格納されたときに、順序バッファ２１２には再送前のＳＥＱ＝１１が残っていることがある。このような場合には、取出制御部２２は、取り出せるだけのデータを取り出しておき、再送されたＳＥＱ＝１１が再度順序バッファ２１１に格納されたときに、ＳＥＱ＝１１が既に取り出し済みのＳＥＱであるとして廃棄するようにしてもよい。例えば、図２のステップ２２１０３、２２１０８、２２１１３、２２１１８のそれぞれの処理でＮｏであった場合であって、先頭ＳＥＱが期待ＳＥＱよりも小さい値である場合には、そのパケットを廃棄する処理を追加してもよい。
【０１０５】
また、上記実施形態では、順序バッファ解放契機情報は０か１の二値をとるフラグであるとしたが、順序バッファ解放契機情報は、例えば、解放種別を示す二値以上の値をとる情報であってもよい。
【０１０６】
以上のように、本実施形態によれば、経路上に再送前の送信されたパケットが廃棄されずに残っていて受信機側でそれらのパケットを受信する等に起因する再度の再送要求を適切に処理することができる。よって、データ送信部への入力が高負荷時にパケット欠落が発生しても、より高速に復旧できるとともに、その再送による帯域消費を抑制することができる。
【０１０７】
なお、本発明の主題は、高速パケット欠落方法が行われることを前提に、高負荷時における再送による帯域消費を抑制することである。高速パケット欠落方法の具体的な方法については上記実施形態に記載の方法の限りではない。例えば、本発明において、各順序バッファと出力バッファとが兼用される構成を適用可能である。そのような場合には、先行技術文献として挙げた特許文献２に記載されているように、取り出し待機数が管理され、再送パケット到着時の順序バッファクリアにおいて、順序保証確認済みのパケットは削除されないという条件を付加すればよい。なお、順序保証確認済みのパケットの数は、取り出し待機数と同値である。従って、順序バッファに格納されたパケットのうち格納された順番が古い順から数えて取り出し待機数分のパケットを削除対象から除外すればよい。
【０１０８】
また、各順序バッファの容量を、網ごとの帯域と遅延時間とに基づいて決定してもよい。
【０１０９】
次に、本発明の概要について説明する。図１１は、本発明の概要を示すブロック図である。図１１に示す通信装置は、送信側の機能として、順序バッファ５１（５１−１〜５１−ｎ）と、欠落検出部５２と、再送要求部５３と、順序バッファ解放契機情報搭載部５４とを備える。また、受信側の機能として、順序バッファ解放契機識別部５５を備える。
【０１１０】
順序バッファ５１−１〜５１−ｎ（例えば、順序バッファ２１１〜２１４）は、網ごとに設置され、順序確認を行うまでのパケットを蓄積する。
【０１１１】
欠落検出部５２（例えば、欠落検出部２０）は、順序バッファ５１−１〜５１−ｎのすべてに１つ以上のパケットが蓄積された場合に欠落が発生したと判定する。
【０１１２】
再送要求部５３（例えば、ＡＣＫ送信部２３）は、少なくともパケットの欠落が検出された場合に、欠落したパケットの再送を要求するための再送要求パケットを送信する。
【０１１３】
順序バッファ解放契機情報搭載部５４（例えば、順序バッファ解放契機情報搭載部２７）は、再送要求部５３が送信する再送要求パケットに、順序バッファ解放契機を通知するための情報である順序バッファ解放契機情報を搭載する。
【０１１４】
また、順序バッファ解放契機識別部５５（例えば、順序バッファ解放契機識別部１６）は、再送要求パケットに搭載された順序バッファ解放契機情報を参照し、再送が必要であるかを判断する。
【０１１５】
なお、各順序バッファは、受信したパケットにシーケンス番号の若返りが発生した場合に、当該順序バッファに既に格納されているパケットを全て削除して当該順序バッファを解放し、再送要求部は、欠落検出部によってパケットの欠落が検出された場合に加えて、１つ以上のパケットが格納されていた順序バッファが解放された場合に、現時点で順序確認がされているパケットより後のパケットの再送を要求する再送要求パケットを送信し、順序バッファ解放契機情報搭載部は、順序バッファ解放契機情報として、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機であることを識別する識別子を搭載し、順序バッファ解放契機識別部は、再送要求パケットに搭載された順序バッファ解放契機情報が、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機である旨を示している場合に、再送を行わないようにしてもよい。
【０１１６】
また、各順序バッファは、当該順序バッファがあふれた場合に、当該順序バッファに既に格納されているパケットを全て削除して当該順序バッファを解放し、順序バッファ解放契機識別部は、再送要求パケットに搭載された順序バッファ解放契機情報が、受信したパケットのシーケンス番号の若返りによる順序バッファ解放契機でない旨を示している場合には、再送を行うようにしてもよい。
【０１１７】
また、再送要求部は、再送要求パケットとして、順序確認がとれたパケットのシーケンス番号を付与した到着確認応答パケットを再送信してもよい。
【０１１８】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１９】
この出願は、２０１０年７月２６日に出願された日本特許出願２０１０−１６６９２８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１２０】
本発明は、複数の網を利用して大容量のデータを高速転送するイーサネット（登録商標）スイッチやルータ等に適用可能である。また、サーバ間を高速に結ぶネットワークインタフェースカード（ＮＩＣ）等にも適用可能である。
【符号の説明】
【０１２１】
１  送信機
２  受信機
１１  データ送信部
１２  ＳＥＱ付与部
１３  再送バッファ
１４  振り分け部
１５  再送タイマ
１６  順序バッファ解放契機識別部
２０  欠落検出部
２１１〜２１４  順序バッファ
２２  取出制御部
２２１  順序確認動作
２３  ＡＣＫ送信部
２４  出力バッファ
２５  ＳＥＱ削除部
２６  データ受信部
１７  順序バッファ解放契機情報搭載部
５１−１〜５１−ｎ  順序バッファ
５２  欠落検出部
５３  再送要求部
５４  順序バッファ解放契機情報搭載部
５５  順序バッファ解放契機識別部
【図１】
2012014397.tif 000003
【図２】
2012014397.tif 000004
【図３】
2012014397.tif 000005
【図４】
2012014397.tif 000006
【図５】
2012014397.tif 000007
【図６】
2012014397.tif 000008
【図７】
2012014397.tif 000009
【図８】
2012014397.tif 000010
【図９】
2012014397.tif 000011
【図１０】
2012014397.tif 000012
【図１１】
2012014397.tif 000013
【国際調査報告】
2012014397.tif 000014
2012014397.tif 000015