JP5668938B2 - パケット整列装置、受信装置、及びパケット整列方法 - Google Patents

パケット整列装置、受信装置、及びパケット整列方法 Download PDF

Info

Publication number
JP5668938B2
JP5668938B2 JP2011548942A JP2011548942A JP5668938B2 JP 5668938 B2 JP5668938 B2 JP 5668938B2 JP 2011548942 A JP2011548942 A JP 2011548942A JP 2011548942 A JP2011548942 A JP 2011548942A JP 5668938 B2 JP5668938 B2 JP 5668938B2
Authority
JP
Japan
Prior art keywords
packet
sequence number
order
received
flow information
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.)
Expired - Fee Related
Application number
JP2011548942A
Other languages
English (en)
Other versions
JPWO2011083670A1 (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
Priority to JP2011548942A priority Critical patent/JP5668938B2/ja
Publication of JPWO2011083670A1 publication Critical patent/JPWO2011083670A1/ja
Application granted granted Critical
Publication of JP5668938B2 publication Critical patent/JP5668938B2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6205Arrangements for avoiding head of line blocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、通信パケットの受信装置に関し、特に、送信順序とは異なる順序で受信された通信パケットを送信順序に並び替える受信装置に関する。
パケット通信ネットワークは、細かく分割されたデータを通信パケット(以下、パケット)に格納して、送受信装置間で送受信を行う通信ネットワークである。例えば、インターネットは、代表的なパケット通信ネットワークである。パケット通信ネットワークは、複数の伝送装置が相互に接続されることにより構成される。伝送装置は、パケットを送信先へ転送するネットワークルータ(以下、ルータ)やネットワークスイッチ(以下、スイッチ)に例示される。
パケット通信ネットワークでは、伝送中の通信パケットの廃棄や破壊が発生する。これは、パケットを転送するルータやスイッチにおける処理の輻輳や、装置間を接続する伝送線路からの信号受信感度の低下、あるいは外部からの電磁ノイズの影響といったことに起因する。一般的に、廃棄や破壊によるパケットの消失は、アプリケーション層、あるいはトランスポート層で動作するプロトコルによって検知される。そして、そのようなプロトコルの制御により、消失したパケットの再送が行われて、データの完全性が保証される。
パケットの再送が発生すると、先に送信されたパケットが後に送信されたパケットより遅れて受信装置へ到着する状態が発生する。つまり、パケットの送信時の順序と受信時の順序とが異なる状態が発生する。このような状態を、パケットの順序入れ替わりと呼ぶ。しかし、多くのアプリケーションは、パケットの順序入れ替わりが発生しないことを期待している。そこで、受信装置は、パケットの順序入れ替わりが発生した場合には、パケットを送信された順序に並び替えて、アプリケーションに正しい順序でデータを渡す。例えば、送信装置は、パケットの送信順序を示すシーケンス番号を付与したパケットを送信する。受信装置は、このシーケンス番号を参照して、パケットを正しい順序へ並び替える。このとき、受信装置は、並び替えを正しく行うために、順序が入れ替わって受信されたパケットを一時的に保存しておくためのメモリ(以下、並び替えバッファ)を備える必要がある。
ところで、パケット通信は1対1の送受信装置間で行われるとは限らない。一般に、複数の通信装置の間で互いにパケットの送受信が行われる。図1は、一般的な受信装置が複数の送信装置からパケットを受信する状況を示す概念図である。図1を参照すると、受信装置211が3つの送信装置210−1〜3からネットワーク200を介してパケット10を受信する状況が示されている。図1において、パケット10は、区別のため送信装置210−1〜3毎に形状を変えて示されている。パケット10内に示された数字は、パケット10に付されたシーケンス番号31を示す。複数の送信装置210−1〜3により送信されたパケット10は、スイッチ201により受信装置211へ転送される。パケット10は、その転送過程で、廃棄や破壊により消失する。
受信装置211は、通信中の送信装置210−1〜3に対応する数の並び替えバッファ230−1〜3を備える。これは、送信装置210−1〜3から送信されるパケット10のシーケンス番号31には互いに相関関係が無く、異なる送信装置210−1〜3から送信されたパケット10が同一のシーケンス番号31を付与されている場合があるからである。受信装置211は、送信装置210−1〜3の各々から受信するパケット10に対して、送信装置210−1〜3毎にシーケンス番号31を管理する必要がある。
ここでは、説明の簡易のために送信装置210−1〜3の装置単位でシーケンス番号31を付与される例を説明している。しかし、送信装置210−1〜3は、複数のアプリケーションプログラムを同時に実行する場合もある。また、各アプリケーションがさらに複数の通信コネクションをオープンすることも考えられる。このような場合には、受信装置211は、コネクション毎にシーケンス番号31を管理する必要がある。
なお、以下の説明において、一連のシーケンス番号31を付与されたパケット10の集合を、フローと定義する。フローは、送受信装置、ユーザ、リンク、搬送波の周波数、コネクション、セッション、アプリケーション等の単位、あるいはこれらの組み合わせによる単位で識別される。受信装置211における並び替えバッファ230−1〜3の必要数は、当該受信装置211が通信を行っているフローの数に等しいと言える。このような、フロー毎に設けられた並び替えバッファ230−1〜3用いてパケット10の並び替えを行う技術として、以下のような技術が開示されている。
特許文献1は、受信機におけるパケット再送方式において、データパケットの誤合成を回避するデータ受信方法を開示している。特許文献1のデータ受信方法は、移動体通信におけるHARQ(Hybrid Automatic Repeat−reQest)と呼ばれる自動再送制御に関する。図2は、特許文献1に開示された移動体通信ネットワークにおいてUTRAN(UMTS地上無線アクセスネットワーク:UMTS Terrestrial Radio Access Network)を構成するRNC(Radio Network Controller)のMAC(Media Access Control)サブレイヤの構成を示す図である。このMACサブレイヤ300は、MAC−eu301−1〜nと呼ばれる。図2に示される各MAC−eu301−1〜nは、それぞれ1ユーザに対応している。特許文献1において、RNCの備える並び替えバッファエンティティの数は、ユーザ数と1ユーザあたりのフローの数との積に等しい。そのため、特許文献1においてRNCは、総フロー数に対応する並び替えバッファを備える。
特許文献1によれば、並び替えバッファの容量は、受信装置における総フロー数に比例する。このため、サーバに例示されるような多数のフローを扱うことが多い受信装置は、並び替えバッファのために大量のメモリを消費してしまうという課題がある。
一般に、容量が少ないメモリは、容量が多いメモリよりも高速に動作する。必要とされるメモリが少なければ、マイクロプロセッサ内のキャッシュメモリやSRAM(Static Random Access Memory)に例示される高速なメモリを並び替えバッファとして使用できる。一方、そのような高速なメモリでは容量が不足する場合には、DRAM(Dynamic Random Access Memory)に例示される比較的低速なメモリを並び替えバッファとして使用せざるを得なくなる。
特許文献1のように多数のフローにおいてパケット10の並び替えを行う場合、並び替えバッファのためにメモリ資源が過剰に消費される。これに伴って、大容量だが低速なメモリの使用を余儀なくされる。そのため、パケットの並び替え処理に伴うメモリアクセスに係る所要時間が増加し、並び替え処理の速度が低下するという課題も存在する。
なお、特許文献2は、通信パケットの遅延・喪失の発生や、通信障害の発生においても高品質のサービスを安価で提供することができるパケット通信システムを開示している。
特開2007−028653号公報 特開2007−013510号公報
本発明は、上述の事情を鑑みてなされたものであり、受信されたパケットの並び替え処理に用いられるメモリ資源を節約することが可能なパケット整列装置を実現することを目的とする。
本発明の一つの観点としてパケット整列装置が提供される。本発明のパケット整列装置は、複数の通信フローのパケットを格納するために設けられた一つのバッファと、パケットを受信する度に受信パケットが順序誤りパケットであるかを判定処理により判定し、受信パケットが順序誤りパケットである場合は順序誤りパケットと順序誤りパケットの通信フロー識別情報との組をバッファへ格納することにより受信パケットを正しい順序に並べ替えて出力する制御部とを備える。順序誤りパケットは、送信時の順序とは異なる順序で受信された受信パケットである。通信フロー情報は、複数の通信フローの各々を識別するための情報である。
本発明の他の観点としてパケット整列装置を備える受信装置が提供される。本発明のパケット整列装置を備える受信装置は、上述のパケット整列装置を備える。
本発明のさらに他の観点としてパケット整列方法が提供される。本発明のパケット整列方法は、パケット整列装置におけるパケット整列方法である。パケット整列装置は、複数の通信フローのパケットを格納するために設けられた一つのバッファと制御部とを備える。パケット整列方法は、パケットを受信するステップと、受信パケットを受信する度に受信パケットが順序誤りパケットであるかを判定処理により判定するステップと、受信パケットが順序誤りパケットである場合は順序誤りパケットと順序誤りパケットの通信フロー識別情報との組をバッファへ格納するステップと、受信パケットを正しい順序に並べ替えて出力するステップとを具備する。順序誤りパケットは、送信時の順序とは異なる順序で受信された受信パケットである。通信フロー情報は、複数の通信フローの各々を識別するための情報である。
本発明によれば、受信されたパケットの並び替え処理に用いられるメモリ資源を節約することが可能なパケット整列装置を実現することができる。また、メモリ資源が小容量で済むため、小容量で高速なメモリを並び替えバッファとして使用することが可能となり、並び替え処理を高速化することができる。
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。
図1は、一般的な受信装置が複数の送信装置からパケットを受信する状況を示す概念図である。 図2は、特許文献1に開示された移動体通信ネットワークにおいてUTRANを構成するRNCのMACサブレイヤの構成を示す図である。 図3は、本発明の実施形態におけるパケット整列装置1の適用される通信ネットワークを示す図である。 図4は、本発明の実施形態におけるパケット整列装置1の構成を示す図である。 図5は、本発明の実施形態におけるフロー情報テーブル21を示す図である。 図6は、本発明の実施形態における並び替えバッファ22を示す図である。 図7は、本発明の実施形態におけるパケット整列装置1の動作フローである。 図8は、本発明の実施形態におけるパケット整列装置1によるパケット10の並び替えを処理の具体例を示す図である。 図9は、本発明の実施形態の具体例におけるフロー情報テーブル21と並び替えバッファ22とに記憶された情報を示す図である。 図10は、本発明の実施形態におけるパケット整列装置1を情報処理装置に適用した場合の構成を示す図である。
添付図面を参照して、本発明の実施形態によるパケット整列装置を以下に説明する。
[通信ネットワークの構成]
はじめに、本実施形態におけるパケット整列装置1が適用される通信ネットワークの説明を行う。図3は、本実施形態におけるパケット整列装置1が適用される通信ネットワークを示す図である。
図3の通信ネットワークは、送信装置210−1〜N(Nは自然数)と、ネットワーク200と、受信装置212とを備える。以下、単に任意の送信装置を指し示す場合は210の符号を付する。
まず、ネットワーク200は、送信装置210−1〜Nと受信装置212との間で送受信されるパケット10を転送する。ネットワーク200は、予め定められた転送経路に沿って、あるいはパケット10に含まれる宛先情報に従って、パケット10を適切な送信先へ転送する。ネットワーク200では、パケット10の消失や、パケット10の順序入れ替わりが発生する可能性がある。
次に、送信装置210は、受信装置212との間でネットワーク200を介したパケット10の送受信を行う。パケット10は、フロー情報30とシーケンス番号31をヘッダ、あるいはペイロードに格納している。フロー情報30は、パケット10が属するフローを識別するための情報である。フロー情報30は、送信装置210によりパケット10へ格納される。フロー情報30は、送受信装置のIP(Internet Protocol)アドレスや、ポート番号や、ユーザ識別子や、アプリケーション識別子等、あるいはこれらの組み合わせに例示される。なお、フロー情報30は、パケット10が属するフローを識別することが可能であればこれらの例に限定しない。
シーケンス番号31は、フロー毎のパケット10の送信順序を示す。送信装置210は、シーケンス番号31をパケット毎に付与する。送信装置210は、送信されたパケット10の消失を検知して、消失したパケット10を再送する機能を備える。送信装置210は、受信装置212からの通知によりパケット10の消失を検知してもよい。送信装置210は、消失したパケット10に付与されたシーケンス番号31と同じシーケンス番号31を付与したパケット10を再送する。
ここで、シーケンス番号31は、必ずしも「1、2、3、・・・」のように連続した番号である必要は無い。また、シーケンス番号31の初期値は、フロー毎に定められた任意の値であってよい。ただし、シーケンス番号31の初期値は、送信装置210と受信装置212との間で整合していなければならない。
次に、受信装置212は、下位レイヤ処理部221と、パケット整列装置1と、上位レイヤ処理部222と、物理ポート220−1〜M(Mは自然数)を備える。以下、単に任意の物理ポートを指し示すときは220の符号を付する。物理ポート220−1〜Mは、ネットワーク200と受信装置212とを接続する。
下位レイヤ処理部221は、物理ポート220から入力される入力信号に対して下位レイヤである物理層とリンク層の処理を行ってパケット10の検出処理を行う。下位レイヤ処理部221は、検出されたパケット10をパケット整列装置1へ出力する。下位レイヤ処理部221による入力信号からパケット10の検出処理は、公知の技術であるのでここでは説明を省略する。
パケット整列装置1は、パケット10を送信装置210により送信された順序に並べ替える。パケット整列装置1は、正しい順序に整列されたパケット10を整列済パケット11として上位レイヤ処理部222へ出力する。パケット整列装置1の構成は、後に詳細に説明する。
上位レイヤ処理部222は、パケット整列装置1から入力される整列済パケット11に対して上位レイヤであるアプリケーション層の処理を行う。ここで、アプリケーション層の処理には、セッション層やプレゼンテーション層の処理も含み、アプリケーションへのデータの受け渡しやアプリケーションの機能の実行が行われる。上位レイヤ処理部222によるアプリケーション層の処理は、公知の技術であるためここでは説明を省略する。なお、受信装置212は、必ずしも上位レイヤ処理部222を備えなくとも良い。
[パケット整列装置の構成]
次に、上述のような通信ネットワークに適用される本実施形態におけるパケット整列装置1の構成の説明を行う。図4は、本実施形態におけるパケット整列装置1の構成を示す図である。パケット整列装置1は、記憶部20と、制御部25とを備える。
はじめに、記憶部20の説明を行う。記憶部20は、パケット整列装置1の機能を実現するコンピュータプログラムやデータを記憶する。記憶部20は、RAM(Random Access Memory)や、ROM(Read Only Memory)や、HDD(Hard Disk Drive)に例示される。記憶部20は、フロー情報テーブル21と、並び替えバッファ22と、期待シーケンス番号レジスタ23と、蓄積パケット数レジスタ24とを備える。以下、各構成について説明を行う。
まず、フロー情報テーブル21は、受信装置212と送信装置210との間で通信中であるパケット10のフロー情報30を記憶する。図5は、本実施形態におけるフロー情報テーブル21を示す図である。フロー情報テーブル21は、フロー情報エントリ40を格納する。フロー情報エントリ40は、受信装置212が通信中であるフローの一つに対応している。フロー情報エントリ40には、フロー情報41と、期待シーケンス番号42と、蓄積パケット数43との組が記録される。なお、フロー情報テーブル21の内容は、初期状態で空である。
フロー情報41は、パケット10に格納されたフロー情報30である。フロー情報41は、パケット10から抽出されてフロー情報テーブル21に記録される。期待シーケンス番号42は、フロー情報41のフローにおいて、次に受信されるパケット10に格納されるべきシーケンス番号31の期待値を示す。つまり、パケット10に格納されたシーケンス番号31が期待シーケンス番号41と一致すれば、パケット10は送信順序どおりに受信されたことを示す。蓄積パケット数43は、並び替えバッファ22に蓄積されているフロー情報41毎のパケット10の数である。
次に、並び替えバッファ22は、誤った順序でパケット整列装置1に受信されたパケット10を蓄積する。ここで、誤った順序で受信されるとは、送信装置210により送信された順序とは異なる順序で受信されることを示す。図6は、本実施形態における並び替えバッファ22を示す図である。並び替えバッファ22は、パケットエントリ50を備える。パケットエントリ50は、誤った順序でパケット整列装置1に受信されたパケット10の一つに対応している。パケットエントリ50には、パケット10のフロー情報51と、シーケンス番号52と、パケット53との組が記録される。なお、並び替えバッファ22は、初期状態で空である。
フロー情報51は、パケット10に格納されたフロー情報30である。フロー情報51は、パケット10から抽出されて並び替えバッファ22に記録される。シーケンス番号52は、パケット10に格納されたシーケンス番号31である。シーケンス番号52は、パケット10から抽出されて並び替えバッファ22に記録される。パケット53は、パケット10自体である。パケット53は、パケット10自体が並び替えバッファ22に記憶される。
次に、期待シーケンス番号レジスタ23は、期待シーケンス番号42を保持する。期待シーケンス番号レジスタ23は、主制御部27が処理中のパケット10のフロー情報30と組でフロー情報テーブル21に記憶された期待シーケンス番号42の値を保持する。期待シーケンス番号レジスタ23は、期待シーケンス番号42を主制御部27により書き込まれる。
次に、蓄積パケット数レジスタ24は、パケット蓄積数43を保持する。蓄積パケット数レジスタ24は、主制御部27が処理中のパケット10のフロー情報30と組みでフロー情報テーブル21に記憶された蓄積パケット数43の値を保持する。蓄積パケット数レジスタ24は、蓄積パケット数43を主制御部27により書き込まれる。以上が、記憶部20の説明である。
続いて制御部25の説明を行う。制御部25は、CPU(Central Processing Unit)に例示される。制御部25は、記憶部20に記憶されたコンピュータプログラムを実行することでパケット整列装置1の機能を実現する。制御部25は、フロー情報抽出部26と、主制御部27とを備える。以下、これらの構成を説明する。
まず、フロー情報抽出部26は、下位レイヤ処理部221からパケット10を入力して、パケット10に格納されたフロー情報30及びシーケンス番号31を取得する。フロー情報抽出部26は、パケット10から取得されたフロー情報30及びシーケンス番号31を主制御部27へ出力する。
次に、主制御部27は、パケット10の並び替え処理を実行する。主制御部27は、下位レイヤ処理部221からパケット10を入力する。主制御部27は、フロー情報抽出部26から入力されたフロー情報30及びシーケンス番号31に基づいて、パケット10の並び替え処理を行う。主制御部27は、並び替え後のパケット10を整列済パケット11として上位レイヤ処理部222へ出力する。以上が、制御部25の説明である。
なお、パケット整列装置1は、上述のようにソフトウェアにより実現されても良いし、ハードウェアにより実現されてもよい。あるいは、パケット整列装置1は、ハードウェアとソフトウェアとを複合した構成により実現されてもよい。記憶部20及び制御部25は、ハードウェアによる構成として実現される場合、回路基板やメモリチップに例示されるデバイスにより実現されてもよい。
また、ソフトウェアによりパケット整列装置1を実現する場合、記憶部20に記憶されるコンピュータプログラムは、記録媒体80に記録しておくことが可能である。ここで、記録媒体80は、パケット整列装置1のハードディスクやROMに例示される。また、コンピュータプログラムは、CD−ROM(Compact Disc Read Only Memory)に例示される移動可能な記録媒体80に、一時的、あるいは、永続的に記録しておくことが可能である。コンピュータプログラムは、移動可能な記憶媒体80からパケット整列装置1へ直接導入される。コンピュータプログラムは、アプリケーションダウンロードサーバからネットワークを介してパケット整列装置1へ導入されても良い。以上が、本実施形態におけるパケット整列装置1の構成の説明である。
[パケット整列装置1の動作]
次に、上述のような構成による本実施形態におけるパケット整列装置1の動作の説明を行う。図7は、本実施形態におけるパケット整列装置1の動作フローである。
パケット整列装置1は、下位レイヤ処理部221からパケット10を入力する(ステップS100)。パケット10は、フロー情報抽出部26と主制御部27とへ入力される。フロー情報抽出部26は、パケット10からフロー情報30とシーケンス番号31とを抽出する(ステップS101)。フロー情報抽出部26は、抽出されたフロー情報30とシーケンス番号31とを主制御部27へ出力する。主制御部27は、フロー情報抽出部26から入力されたフロー情報30と一致するフロー情報41がフロー情報テーブル21に存在するか検索する(ステップS102)。主制御部27は、一致するフロー情報41が存在するか判定する(ステップS103)。存在した場合、検索成功となり、フローはステップS104へ進む。一方、存在しない場合、検索失敗となり、フローはステップS105へ進む。
主制御部27は、フロー情報30と一致するフロー情報41がフロー情報テーブル21に存在する場合(ステップS103のYes)、当該フロー情報41のフロー情報エントリ40に記録された期待シーケンス番号42を期待シーケンス番号レジスタ23へ、蓄積パケット数43を蓄積パケット数レジスタ23へそれぞれ代入する(ステップS104)。一方、主制御部27は、フロー情報30と一致するフロー情報41がフロー情報テーブル21に存在しない場合(ステップS103のNo)、期待シーケンス番号レジスタ23と蓄積パケット数レジスタ23とを初期化する(ステップS105)。ここで、期待シーケンス番号レジスタ23の初期値は、処理を行っているパケット10のフロー情報30に対応するフローのシーケンス番号31の初期値に等しい。また、蓄積パケット数レジスタ24の初期値は、「0」である。
続いて、主制御部27は、パケット10のシーケンス番号31と期待シーケンス番号レジスタ23との値が等しいか否かを判定する(ステップS106)。等しい場合、フローはステップS109へ進む。一方、等しくない場合、フローはステップS107へ進む。主制御部27は、パケット10のシーケンス番号31と期待シーケンス番号レジスタ23との値が等しくない場合(ステップS106のNo)、並び替えバッファ22にパケットエントリ50を登録する(ステップS107)。シーケンス番号の期待値と実際のシーケンス番号とが一致しないため、パケット10の順序誤りが発生したと考えられるからである。
ここで、前述の通り、パケットエントリ50には、フロー情報51、シーケンス番号52、パケット53が記録される。この場合のフロー情報51及びシーケンス番号52は、主制御部27が処理を行っているパケット10に格納されたフロー情報30及びシーケンス番号31である。また、パケット53は、パケット10自体である。主制御部27は、蓄積パケット数レジスタ24に「1」を加算する(ステップS108)。この後、ステップS117へ進む。
一方、主制御部27は、パケット10のシーケンス番号31と期待シーケンス番号レジスタ23との値が等しい場合(ステップS106のYes)、パケット10を整列済パケット11として上位レイヤ処理部222へ出力する(ステップS109)。シーケンス番号の期待値と実際のシーケンス番号が一致しているため、パケット10は正しい順序で受信されたパケットであるからである。その後、主制御部27は、期待シーケンス番号レジスタ23の値を、処理を行ったパケット10の属するフローにおいて次に受信するべきシーケンス番号31の期待値へ更新する(ステップS110)。例えば、シーケンス番号31が「1、2、3、・・・」のように「1」を加算される方法で付与されているのであれば、主制御部27は、期待シーケンス番号レジスタ23の値に「1」を加算する。あるいは、シーケンス番号31がパケット10の情報等を用いて演算される場合は、主制御部27は、演算を行って算出された値へ、期待シーケンス番号レジスタ23の値を更新する。
続いて、主制御部27は、蓄積パケット数レジスタ24の値が「0」であるか否かを判定する(ステップS111)。「0」である場合、送信された順序と異なる順序で受信されたパケット10は蓄積パケット数レジスタ24には存在しない。そのため、フローは、ステップS117へ進む。一方、「0」でない場合、送信された順序と異なる順序で受信されたパケット10が蓄積パケット数レジスタ24に存在する。そのため、フローは、当該パケット10の処理を行うべくステップS112へ進む。
主制御部27は、蓄積パケット数レジスタ24の値が「0」でない場合(ステップS111のNo)、並び替えバッファ22を検索する(ステップS112)。主制御部27は、並び替えバッファ22に、整列済みパケット11として出力されたパケット10のフロー情報30と一致するフロー情報51を記録し、かつ、更新された期待シーケンス番号レジスタ23の値と一致する値のシーケンス番号52を記録したパケットエントリ50が存在するか検索する。これは、直前に上位レイヤ処理部222へ出力されたパケット10の後続のパケット10が並び替えバッファ22に記録されているか確認することを意味する。
主制御部27は、条件に一致するパケットエントリ50が存在するかを判定する(ステップS113)。存在しない場合、検索失敗となり、処理を行うべきパケットエントリ50は存在しないため、フローはステップS117へ進む。存在した場合、検索成功となり、当該パケットエントリ50の処理を行うため、フローはステップS114へ進む。
主制御部27は、条件に一致するパケットエントリ50が存在した場合(ステップS113のYes)、当該パケットエントリ50のパケット53を整列済パケット11として上位レイヤ処理部222へ出力する(ステップS114)。上述の条件に一致するパケットエントリ50のパケット10は、直前に整列済みパケット11として上位レイヤ処理部222に出力されたパケット10の後続のパケット10であるからである。主制御部27は、パケット53が出力されたパケットエントリ50のデータを削除する(ステップS115)。そして、主制御部27は、蓄積パケット数レジスタ24から「1」を減算する(ステップS116)。その後、フローは、ステップS110へ戻る。
ステップS108の後、また、ステップS111がYESの場合、あるいは、ステップS113がNoの場合、フローはステップS117へ移行する。主制御部27は、フロー情報テーブル21にフロー情報エントリ40を登録する(ステップS117)。主制御部27は、期待シーケンス番号レジスタ23の値及び蓄積パケット数レジスタ24の値を、処理が行われたパケット10のフロー情報30と組でフロー情報テーブル21へ登録する。このとき、主制御部27は、既に処理が行われたパケット10のフロー情報30と一致するフロー情報41がフロー情報テーブル21に存在する場合、既存のデータを上書きすることにより登録を行う。このようにして、パケット整列装置1は、受信されたパケット10の処理を完了する。この後、また、パケット整列装置10が新たにパケット10を受信すると、再び、ステップS100から処理を開始する。以上が、本実施形態におけるパケット整列装置1の動作の説明である。
[パケット整列装置1の具体的動作の例]
次に、本実施形態におけるパケット整列装置1の動作を具体的な例を用いて説明する。図8は、本実施形態におけるパケット整列装置1によるパケット10の並び替えを処理の具体例を示す図である。図8を参照すると、ある「フローA」に属する4つのパケット10がパケット装置1へ入力されている。4つのパケット10に付与された「1〜4」の番号は、パケット10のシーケンス番号31を示している。パケット10は、この順番で送信装置210から送信されたこととする。パケット装置1は、4つのパケットを、「1、4、2、3」の順番で入力している。このため、何かしらの原因でパケット10の到着順序が入れ替わっていることが理解できる。また、4つのパケットは、それぞれフロー情報30として「フローA」を格納しているとする。また、図9は、本実施形態の具体例におけるフロー情報テーブル21と並び替えバッファ22とに記憶された情報を示す図である。以下、図7、図8、図9を参照して、4つのパケット10を受信した場合を例として、パケット整列装置1の動作を説明する。
はじめに、パケット整列装置1は、「フローA」に属する1つ目のパケット10を入力する(ステップS100)。フロー情報抽出部26は、パケット10からフロー情報30として「フローA」、シーケンス番号31として「1」を抽出する(ステップS101)。主制御部27は、フロー情報抽出部26により抽出された「フローA」に基づいて、フロー情報テーブル21を検索する(ステップS102)。主制御部27は、「フローA」と一致するフロー情報30が記録されたフロー情報エントリ40がフロー情報テーブル21に存在するか否かを判定する(ステップS103)。図9(初期状態)に示すように、この時点では、フロー情報テーブル21は空であるので、検索は失敗となる(ステップS103のNo)。そのため、主制御部27は、期待シーケンス番号レジスタ23と、蓄積パケット数レジスタ24とを初期化する(ステップS105)。これにより、期待シーケンス番号レジスタ23は、「1」となり、蓄積パケット数レジスタ24は、「0」となる。
続いて、主制御部27は、受信されたパケット10のシーケンス番号31と期待シーケンス番号レジスタ23との値が等しいかを判定する(ステップS106)。受信されたパケット10のシーケンス番号31と期待シーケンス番号レジスタ23との値は、共に「1」である。そのため、主制御部27は、等しいと判定する(ステップS106のYes)。主制御部27は、パケット10が期待されたシーケンス番号31を有するパケットであるため、当該パケット10(シーケンス番号31が「1」)を整列済パケット11として上位レイヤ処理部222へ出力する(ステップS109)。
主制御部27は、期待シーケンス番号レジスタ23の値を、パケット整列装置1が「フローA」において次に受信するべきシーケンス番号31の期待値へ更新する(ステップS110)。本説明では、シーケンス番号31が「1、2、3、4、・・・」と増加するため、主制御部27は、期待シーケンス番号レジスタ23の値に「1」を加算して、期待シーケンス番号レジスタ23の値を「2」とする。その後、主制御部27は、蓄積パケットレジスタ24の値が「0」であるか否かを判定する(ステップS111)。蓄積パケットレジスタ24の値は、ステップS105で初期化されて「0」である(ステップS111のYes)。つまり、並び替えバッファ22に蓄積されたパケットは存在しない。そのため、主制御部27は、フロー情報テーブル21にフロー情報エントリ40を登録する(ステップS117)。このとき、主制御部27は、フロー情報41をパケット10(シーケンス番号31が「1」)の「フローA」、期待シーケンス番号42を期待シーケンス番号レジスタ23の「2」、蓄積パケット数43を蓄積パケット数レジスタ23の「0」、としてフロー情報テーブル21に新規エントリを登録する。これによって、パケット整列装置1は、シーケンス番号31が「1」のパケット10の処理を完了する。図9を参照すると、シーケンス番号31が「1」のパケット10を処理した後のフロー情報テーブル21と並び替えバッファ22の状態を確認できる(図9のパケット#1の処理完了時)。
次に、パケット整列装置1は、「フローA」に属する2つ目のパケット10を入力する(ステップS100)。フロー情報抽出部26は、パケット10からフロー情報30として「フローA」、シーケンス番号31として「4」を抽出する(ステップS101)。主制御部27は、フロー情報抽出部26により抽出された「フローA」に基づいて、フロー情報テーブル21を検索する(ステップS102)。主制御部27は、「フローA」と一致するフロー情報41が記録されたフロー情報エントリ40がフロー情報テーブル21に存在するか否かを判定する(ステップS103)。図9(パケット#1の処理完了時)に示すように、この時点でフロー情報テーブル21には「フローA」に対応するフロー情報エントリ40が存在するので、検索は成功となる(ステップS103のYes)。そのため、主制御部27は、「フローA」に対応するフロー情報エントリ40の期待シーケンス番号42の値と蓄積パケット数43の値とを、それぞれ期待シーケンス番号レジスタ23と蓄積パケット数レジスタ24とへ代入する(ステップS104)。これにより、期待シーケンス番号レジスタ23は、「2」となり、蓄積パケット数レジスタ24は、「0」となる。
続いて、主制御部27は、受信されたパケット10のシーケンス番号31と期待シーケンス番号レジスタ23との値が等しいかを判定する(ステップS106)。受信されたパケット10のシーケンス番号31が「4」で、期待シーケンス番号レジスタ23の値が「2」である。そのため、主制御部27は、等しくないと判定する(ステップS106のNo)。主制御部27は、並び替えバッファ22にパケットエントリ50を登録する(ステップS107)。このとき、主制御部27は、フロー情報51をパケット10の「フローA」、シーケンス番号52をパケット10のシーケンス番号31である「4」、パケット53をパケット10自体、として新規エントリを登録する。そして、主制御部27は、蓄積パケット数レジスタ24に「1」を加算する(ステップS108)。これにより、蓄積パケット数レジスタ24の値は、「1」となる。
その後、主制御部27は、フロー情報テーブル21にフロー情報エントリ40を登録する(ステップS117)。フロー情報テーブル21には、「フローA」に対応するフロー情報エントリ40が既に存在する。そのため、主制御部27は、「フローA」に対応するフロー情報エントリ40を、フロー情報41をパケット10の「フローA」、期待シーケンス番号42を期待シーケンス番号レジスタ23の「2」、蓄積パケット数43を蓄積パケット数レジスタ23の「1」へそれぞれ更新する。これによって、パケット整列装置1は、シーケンス番号31が「4」のパケット10の処理を完了する。図9を参照すると、シーケンス番号31が「4」のパケット10を処理した後のフロー情報テーブル21と並び替えバッファ22の状態を確認できる(図9のパケット#4の処理完了時)。
次に、パケット整列装置1は、「フローA」に属する3つ目のパケット10を入力する(ステップS100)。フロー情報抽出部26は、パケット10からフロー情報30として「フローA」、シーケンス番号31として「2」を抽出する(ステップS101)。主制御部27は、フロー情報抽出部26により抽出された「フローA」に基づいて、フロー情報テーブル21を検索する(ステップS102)。主制御部27は、「フローA」と一致するフロー情報41が記録されたフロー情報エントリ40がフロー情報テーブル21に存在するか否かを判定する(ステップS103)。図9(パケット#4の処理完了時)に示すように、この時点でフロー情報テーブル21には、「フローA」に対応するフロー情報エントリ40が存在するので、検索は成功となる(ステップS103のYes)。そのため、主制御部27は、「フローA」に対応するフロー情報エントリ40の期待シーケンス番号42と蓄積パケット数43とを、それぞれ期待シーケンス番号レジスタ23と蓄積パケット数レジスタ24とへ代入する(ステップS104)。これにより、期待シーケンス番号レジスタ23は、「2」となり、蓄積パケット数レジスタ24は、「1」となる。
続いて、主制御部27は、受信されたパケット10のシーケンス番号31と期待シーケンス番号レジスタ23との値が等しいかを判定する(ステップS106)。受信されたパケット10のシーケンス番号31が「2」で、期待シーケンス番号レジスタ23の値も「2」である。そのため、主制御部27は、等しいと判定する(ステップS106のYes)。主制御部27は、パケット10(シーケンス番号31が「2」)を整列済パケット11として上位レイヤ処理部222へ出力する(ステップS109)。
その後、主制御部27は、期待シーケンス番号レジスタ23の値を、パケット整列装置1が「フローA」において次に受信するべきシーケンス番号31の期待値へ更新する(ステップS110)。これにより、期待シーケンス番号レジスタ23の値は、「3」となる。それから、主制御部27は、蓄積パケットレジスタ24の値が「0」であるか否かを判定する(ステップS111)。蓄積パケットレジスタ24の値は、ステップS104で値を代入されて「1」である(ステップS111のNo)。そのため、主制御部27は、受信されたパケット10のフロー情報30と一致するフロー情報51を記録し、かつ、期待シーケンス番号レジスタ23の値と一致するシーケンス番号52を記録したパケットエントリ50を並び替えバッファ22から検索する(ステップS112)。ここでは、主制御部27は、「フローA」に対応し、かつ、シーケンス番号31が「3」であるパケットエントリ50を並び替えバッファ22から検索する。図9(パケット#4の処理完了時)に示すように、この条件に該当するパケットエントリ50が存在しないため、主制御部27による検索は、検索失敗となる(ステップS113のNo)。
そして、主制御部27は、フロー情報テーブル21にフロー情報エントリ40を登録する(ステップS117)。このとき、フロー情報テーブル21には「フローA」に対応するフロー情報エントリ40が既に存在する。そのため、主制御部27は、「フローA」に対応するフロー情報エントリ40を、フロー情報41をパケット10の「フローA」、期待シーケンス番号42を期待シーケンス番号レジスタ23の「3」、蓄積パケット数43を蓄積パケット数レジスタ23の「1」へそれぞれ更新する。これによって、パケット整列装置1は、シーケンス番号31が「2」のパケット10の処理を完了する。図9を参照すると、シーケンス番号31が「2」のパケット10を処理した後のフロー情報テーブル21と並び替えバッファ22の状態を確認できる(図9のパケット#2の処理完了時)。
次に、パケット整列装置1は、「フローA」に属する4つ目のパケット10を入力する(ステップS100)。フロー情報抽出部26は、パケット10からフロー情報30として「フローA」、シーケンス番号31として「3」を抽出する(ステップS101)。主制御部27は、フロー情報抽出部26により抽出された「フローA」に基づいて、フロー情報テーブル21を検索する(ステップS102)。主制御部27は、「フローA」と一致するフロー情報30が記録されたフロー情報エントリ40がフロー情報テーブル21に存在するか否かを判定する(ステップS103)。図9(パケット#2の処理完了時)に示すように、この時点でフロー情報テーブル21には、「フローA」に対応するフロー情報エントリ40が存在するので、検索は成功となる(ステップS103のYes)。そのため、主制御部27は、「フローA」に対応するフロー情報エントリ40の期待シーケンス番号42と蓄積パケット数43とを、それぞれ期待シーケンス番号レジスタ23と蓄積パケット数レジスタ24とへ代入する(ステップS104)。これにより、期待シーケンス番号レジスタ23は、「3」となり、蓄積パケット数レジスタ24は、「1」となる。
続いて、主制御部27は、受信されたパケット10のシーケンス番号31と期待シーケンス番号レジスタ23との値が等しいかを判定する(ステップS106)。受信されたパケット10のシーケンス番号31が「3」で、期待シーケンス番号レジスタ23の値も「3」である。そのため、主制御部27は、等しいと判定する(ステップS106のYes)。主制御部27は、パケット10(シーケンス番号31が「3」)を整列済パケット11として上位レイヤ処理部222へ出力する(ステップS109)。
主制御部27は、期待シーケンス番号レジスタ23の値を、パケット整列装置1が「フローA」において次に受信するべきシーケンス番号31の期待値に更新する(ステップS110)。これにより、期待シーケンス番号レジスタ23の値は、「4」となる。その後、主制御部27は、蓄積パケットレジスタ24の値が「0」であるか否かを判定する(ステップS111)。蓄積パケットレジスタ24の値は、ステップS104で値を代入されて「1」である(ステップS111のNo)。そのため、主制御部27は、受信されたパケット10(シーケンス番号が「4」)のフロー情報30と一致するフロー情報51を記録し、かつ、期待シーケンス番号レジスタ23の値と一致するシーケンス番号52を記録したパケットエントリ50を並び替えバッファ22から検索する(ステップS112)。ここでは、主制御部27は、「フローA」に対応し、かつ、シーケンス番号31が「4」であるパケットエントリ50を検索する(ステップS113)。図9(パケット#2の処理完了時)に示すように、この条件に該当するパケットエントリ50が存在するため、主制御部27による検索は、検索成功となる(ステップS113のYes)。
そのため、主制御部27は、検索されたパケットエントリ50に格納されたパケット53(シーケンス番号31が「4」)を整列済パケット11として上位レイヤ処理部222へ出力する(ステップS114)。そして、主制御部27は、整列済パケット11としてパケット53(シーケンス番号31が「4」)が出力されたパケットエントリ50のデータを削除する(ステップS115)。主制御部27は、蓄積パケット数レジスタ24から「1」を減算する(ステップS116)。これによって、蓄積パケット数レジスタ24の値は、「0」となる。
その後、主制御部27は、期待シーケンス番号レジスタ23の値を、パケット整列装置1が「フローA」において次に受信するべきシーケンス番号31の期待値に更新する(ステップS110)。これにより、期待シーケンス番号レジスタ23の値は、「5」となる。それから、主制御部27は、蓄積パケットレジスタ24の値が「0」であるか否かを判定する(ステップS111)。蓄積パケットレジスタ24の値は、ステップS116で値を「1」減算されて「0」である(ステップS111のYes)。つまり、並び替えバッファ22にパケット10は蓄積されていない。
そのため、主制御部27は、フロー情報テーブル21にフロー情報エントリ40を登録する(ステップS117)。フロー情報テーブル21には「フローA」に対応するフロー情報エントリ40が既に存在する。そのため、主制御部27は、「フローA」に対応するフロー情報エントリ40を、フロー情報41をパケット10の「フローA」、期待シーケンス番号42を期待シーケンス番号レジスタ23の「5」、蓄積パケット数43を蓄積パケット数レジスタ23の「0」へそれぞれ更新する。これによって、パケット整列装置1は、シーケンス番号31が「3」のパケット10の処理を完了する。図9を参照すると、シーケンス番号31が「3」のパケット10を処理した後のフロー情報テーブル21と並び替えバッファ22の状態を確認できる(図9のパケット#3の処理完了時)。以上が、本実施形態におけるパケット整列装置1の動作の具体的な例を用いた説明である。
本発明のパケット整列装置1は、並び替えバッファ22をパケット整列装置1で処理する全てのフローで共有する。並び替えバッファ22は、フロー情報30と期待シーケンス番号42とにパケット10を対応させて記憶しているため、異なるフローに属する同一のシーケンス番号31を有した複数のパケット10が登録されていたとしても適切に並び替え処理を行うことができる。
このような構成により、本発明のパケット整列装置1は、フローの数だけ並び替えバッファを設ける場合と比較して、並び替えバッファに用いるメモリ量を削減することができる。そのため、小容量だが高速なメモリを並び替えバッファとして利用可能となり、パケット整列装置1の処理速度を向上させることができる。
また、パケット整列装置1は、蓄積パケット数レジスタ24の蓄積パケット数43が「0」である場合、並び替えバッファ22に対するパケット53の検索を行わない。蓄積パケット数レジスタ24の値が「0」であることは、並び替えバッファ22に当該フローに対応するパケット53が蓄積されていないことを示しているためである。このように、本実施形態におけるパケット整列装置1は、冗長な検索を排除することによって、パケット10が送信順序どおりにパケット整列装置1へ到着している間に、並び替えバッファ22へのアクセスが一切行われなくなり、平均的な処理性能が向上する。
続いて、本発明のパケット整列装置1を他の構成例を説明する。例えば、本発明のパケット整列装置1は、PC(Personal Computer)等の情報処理装置に適用可能である。図10は、本実施形態におけるパケット整列装置1を情報処理装置に適用した場合の構成を示す図である。図10を参照すると、パケット整列装置1は、データ処理装置101と記憶装置102とで構成される。
データ処理装置101は、CPUに例示される制御装置である。データ処理装置101は、フロー情報抽出部120と主制御部125とを備える。フロー情報抽出部120と主制御部125とは、前述の実施形態におけるフロー情報抽出部26と主制御部27と同様に機能、動作するので、ここでは、説明を省略する。
記憶装置102は、RAMやHDD等の記録媒体である。記憶装置102は、フロー情報テーブル21、並び替えバッファ22、期待シーケンス番号記憶領域123と、蓄積パケット数記憶領域124とを備える。期待シーケンス番号記憶領域123と蓄積パケット数記憶領域124は、それぞれ、前述の実施形態においてハードウェアであるレジスタとして設けられた期待シーケンス番号レジスタ23と蓄積パケット数レジスタに対応し、同様の値を記憶する。なお、フロー情報テーブル21、並び替えバッファ22は、前述の実施形態におけるフロー情報抽出部26と主制御部27と同様であるので説明を省略する。このように、本発明のパケット整列装置1は、PC等の情報処理装置にも適用が可能である。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2010年1月7日に出願された日本出願特願2010−001852を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1. 複数の通信フローのパケットを格納するために設けられた一つのバッファと、
    受信パケットを受信する度に前記受信パケットが順序誤りパケットであるかを判定処理により判定し、前記受信パケットが順序誤りパケットである場合は前記順序誤りパケットと前記順序誤りパケットの通信フロー識別情報と前記順序誤りパケットのシーケンス番号との組を前記バッファへ格納し、前記バッファに格納された前記順序誤りパケットの前記通信フロー識別情報及び前記順序誤りパケットの前記シーケンス番号を用いて前記バッファを検索することにより前記受信パケットを正しい順序に並べ替えて出力する制御部と
    を備え、
    前記順序誤りパケットは、送信時の順序とは異なる順序で受信された前記受信パケットであり、
    前記通信フロー識別情報は、前記複数の通信フローの各々を識別するための情報である
    パケット整列装置。
  2. 請求項1に記載のパケット整列装置であって、
    前記制御部は、前記受信パケットが送信時の順序で受信された場合は前記受信パケットを後段へ出力し、前記出力された受信パケットの信フロー識別情報に基づく抽出処理により前記バッファから後続パケットを抽出して前記後段へ出力し、
    前記後続パケットは、送信時の順序が前記出力された受信パケットの後続であった前記順序誤りパケットである
    パケット整列装置。
  3. 請求項2に記載のパケット整列装置であって、
    前記制御部は、前記出力された受信パケットの前記通信フロー識別情報に対応する前記順序誤りパケットが前記バッファに存在する場合にのみ前記抽出処理を行う
    パケット整列装置。
  4. 請求項2または請求項3のいずれかに記載のパケット整列装置であって、
    信フロー識別情報とシーケンス番号との組を記憶するフロー情報テーブルをさらに備え、
    前記フロー情報テーブルに格納された前記シーケンス番号は、次の受信パケットに格納されるべき信フロー識別情報毎のシーケンス番号の期待値であり、
    前記制御部は、第一のシーケンス番号と二のシーケンス番号とが一致するかに基づいて前記判定処理を行い、
    前記第一のシーケンス番号は、前記受信パケットに格納されたシーケンス番号あり、
    前記第二のシーケンス番号は、前記受信パケットの通信フロー識別情報と組で前記フロー情報テーブルに記憶された前記シーケンス番号である
    パケット整列装置。
  5. 請求項4に記載のパケット整列装置であって、
    前記御部は、前記受信パケットを後段へ出力する度に、前記第二のシーケンス番号を次に受信されるべきシーケンス番号の期待値へ更新し、前記抽出処理において、前記出力された受信パケットの前記通信フロー識別情報と組で前記バッファに記憶された順序誤りパケットであって、前記更新された第一のシーケンス番号と一致するシーケンス番号を格納した順序誤りパケットを前記後続パケットとして抽出する
    ケット整列装置。
  6. 請求項4または請求項5に記載のパケット整列装置であって、
    前記フロー情報テーブルは、前記通信フロー識別情報と前記シーケンス番号との組にパケット蓄積数をさらに対応させて記憶し、
    前記パケット蓄積数は、前記バッファに記憶された前記通信フロー識別情報毎の前記順序誤りパケットの数であり、
    前記制御部は、前記パケット蓄積数に基づいて、前記出力されたパケットの前記通信フロー識別情報に対応する前記順序誤りパケットが前記バッファに存在するかを判定する
    パケット整列装置。
  7. 請求項6に記載のパケット整列装置であって、
    パケットを受信する度に、前記フロー情報テーブルから読み出される前記第二のシーケンス番号を記憶する第一のレジスタをさらに備え、
    前記御部は、前記第一のレジスタに記憶された前記第二のシーケンス番号に基づいて前記判定処理及び前記抽出処理を行う
    パケット整列装置。
  8. 請求項7に記載のパケット整列装置であって、
    パケットを受信する度に、前記受信パケットの前記通信フロー識別情報と組で前記フロー情報テーブルに記憶された前記パケット蓄積数を記憶する第二のレジスタをさらに備え、
    前記御部は、前記第二レジスタに記憶された前記パケットの蓄積数に基づいて、前記出力されたパケットの前記通信フロー識別情報に対応する前記順序誤りパケットが前記バッファに存在するかを判定する
    パケット整列装置。
  9. 請求項1から請求項8までのいずれかに記載のパケット整列装置を備える受信装置。
  10. パケット整列装置におけるパケット整列方法であって、
    前記パケット整列装置は、
    複数の通信フローのパケットを格納するために設けられた一つのバッファと、
    制御部と
    を備え、
    受信パケットを受信するステップと、
    前記受信パケットを受信する度に前記受信パケットが順序誤りパケットであるかを判定処理により判定するステップと、
    前記受信パケットが順序誤りパケットである場合は前記順序誤りパケットと前記順序誤りパケットの通信フロー識別情報と前記順序誤りパケットの通信フロー識別情報と前記順序誤りパケットのシーケンス番号との組を前記バッファへ格納するステップと、
    前記バッファに格納された前記順序誤りパケットの前記通信フロー識別情報及び前記順序誤りパケットの前記シーケンス番号を用いて前記バッファを検索することにより前記受信パケットを正しい順序に並べ替えて出力するステップと
    を具備し、
    前記順序誤りパケットは、送信時の順序とは異なる順序で受信された前記受信パケットであり、
    前記通信フロー識別情報は、前記複数の通信フローの各々を識別するための情報である
    パケット整列方法。
JP2011548942A 2010-01-07 2010-12-16 パケット整列装置、受信装置、及びパケット整列方法 Expired - Fee Related JP5668938B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011548942A JP5668938B2 (ja) 2010-01-07 2010-12-16 パケット整列装置、受信装置、及びパケット整列方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010001852 2010-01-07
JP2010001852 2010-01-07
JP2011548942A JP5668938B2 (ja) 2010-01-07 2010-12-16 パケット整列装置、受信装置、及びパケット整列方法
PCT/JP2010/072673 WO2011083670A1 (ja) 2010-01-07 2010-12-16 パケット整列装置、受信装置、及びパケット整列方法

Publications (2)

Publication Number Publication Date
JPWO2011083670A1 JPWO2011083670A1 (ja) 2013-05-13
JP5668938B2 true JP5668938B2 (ja) 2015-02-12

Family

ID=44305407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011548942A Expired - Fee Related JP5668938B2 (ja) 2010-01-07 2010-12-16 パケット整列装置、受信装置、及びパケット整列方法

Country Status (3)

Country Link
US (1) US8654626B2 (ja)
JP (1) JP5668938B2 (ja)
WO (1) WO2011083670A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2765742B1 (en) * 2011-10-05 2016-07-13 NEC Corporation Load reduction system, and load reduction method
US9075736B2 (en) * 2013-01-07 2015-07-07 Qualcomm Incorporated Additional error protection for wireless transmission
US9380002B2 (en) 2013-12-17 2016-06-28 Anue Systems, Inc. Pre-sorter systems and methods for distributing GTP packets
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
US10003537B2 (en) 2015-10-01 2018-06-19 Keysight Technologies Singapore (Holding) Pte Ltd Egress port overload protection for network packet forwarding systems
US10462066B2 (en) * 2016-09-01 2019-10-29 Qualcomm Incorporated Apparatus and method for reordering data radio bearer packets
US10855694B2 (en) 2017-05-30 2020-12-01 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for monitoring encrypted packet flows within a virtual network environment
US10903985B2 (en) 2017-08-25 2021-01-26 Keysight Technologies Singapore (Sales) Pte. Ltd. Monitoring encrypted network traffic flows in a virtual environment using dynamic session key acquisition techniques
US10992652B2 (en) 2017-08-25 2021-04-27 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for monitoring encrypted network traffic flows
US10404597B2 (en) 2017-11-30 2019-09-03 Keysight Technologies, Inc. Virtual horizontally-scalable packet broker systems and methods for distribution of session-based network traffic
US10893030B2 (en) 2018-08-10 2021-01-12 Keysight Technologies, Inc. Methods, systems, and computer readable media for implementing bandwidth limitations on specific application traffic at a proxy element
US11190417B2 (en) 2020-02-04 2021-11-30 Keysight Technologies, Inc. Methods, systems, and computer readable media for processing network flow metadata at a network packet broker

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09200290A (ja) * 1996-01-11 1997-07-31 Hitachi Ltd 通信制御におけるビジー時のフロー制御方式および通信制御装置
JP2004135076A (ja) * 2002-10-10 2004-04-30 Fujitsu Ltd 断片パケットのリアセンブルおよびリオーダリング装置
JP2006074726A (ja) * 2004-08-03 2006-03-16 Fujitsu Ltd 断片パケット処理方法及びこれを用いるパケット転送装置
JP2009213065A (ja) * 2008-03-06 2009-09-17 Nec Corp Tcpバッファコピー分散並列処理装置、方法及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0957613A1 (de) * 1998-05-13 1999-11-17 Telefonaktiebolaget Lm Ericsson Verfahren und Vorrichtung zur Erhöhung eines Datendurchsatzes
US6738379B1 (en) * 2000-03-30 2004-05-18 Telefonaktiebolaget Lm Ericsson (Publ) Method of preserving data packet sequencing
JP2003333073A (ja) * 2002-05-13 2003-11-21 Canon Inc 通信ネットワーク及びそこで用いるノード装置及びそこで用いる伝送制御方法
GB2392062A (en) * 2002-05-24 2004-02-18 Zarlink Semiconductor Ltd Method of organising data packets in a buffer
EP1507352B1 (en) 2003-08-14 2007-01-31 Matsushita Electric Industrial Co., Ltd. Time monitoring of packet retransmissions during soft handover
JP4462996B2 (ja) * 2004-04-27 2010-05-12 富士通株式会社 パケット受信方法及びパケット受信装置
US7623455B2 (en) * 2005-04-02 2009-11-24 Cisco Technology, Inc. Method and apparatus for dynamic load balancing over a network link bundle
JP2007013510A (ja) 2005-06-30 2007-01-18 Oki Telecommunication Systems Co Ltd パケット通信システムおよびパケット通信装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09200290A (ja) * 1996-01-11 1997-07-31 Hitachi Ltd 通信制御におけるビジー時のフロー制御方式および通信制御装置
JP2004135076A (ja) * 2002-10-10 2004-04-30 Fujitsu Ltd 断片パケットのリアセンブルおよびリオーダリング装置
JP2006074726A (ja) * 2004-08-03 2006-03-16 Fujitsu Ltd 断片パケット処理方法及びこれを用いるパケット転送装置
JP2009213065A (ja) * 2008-03-06 2009-09-17 Nec Corp Tcpバッファコピー分散並列処理装置、方法及びプログラム

Also Published As

Publication number Publication date
US8654626B2 (en) 2014-02-18
JPWO2011083670A1 (ja) 2013-05-13
WO2011083670A1 (ja) 2011-07-14
US20110286461A1 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
JP5668938B2 (ja) パケット整列装置、受信装置、及びパケット整列方法
KR101492510B1 (ko) 다중 전달 라우트 패킷 정렬
US10484518B2 (en) Dynamic port type detection
US9590923B2 (en) Reliable link layer for control links between network controllers and switches
EP2774412B1 (en) Packet ordering based on delivery route changes
EP3320670B1 (en) Method and apparatus for pushing data in a content-centric networking (ccn) network
US9003053B2 (en) Message acceleration
TWI241098B (en) Methhod and system for efficiently sharing a common memory
US9294589B2 (en) Header compression with a code book
US8493839B2 (en) Method and system of teamed network adapters with offloaded connections
US20050129047A1 (en) Switch capable of controlling data packet transmission and related method
US20080232261A1 (en) Transmission apparatus, test method, and transmission apparatus control program
JP2013511857A (ja) 性能監視を使用するマルチパスネットワーク常用冗長性
US8611207B2 (en) Data transmitter and data transmission method
WO2001015364A1 (en) Deferrable processing option for fast path forwarding
CN113542131B (zh) 一种报文转发方法及装置
JP4321390B2 (ja) 半導体集積回路
JPH1023059A (ja) Lan間接続装置
CN116073962A (zh) 用于硬件可靠传送的早期重传
JP4669485B2 (ja) フロー計測項目の自動選択機能を有するトラヒック計測方法、トラヒック情報受信機器、トラヒック情報送信機器、およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140730

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: 20141119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141202

R150 Certificate of patent or registration of utility model

Ref document number: 5668938

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees