JP4723672B2 - 通信装置、及び、通信方法 - Google Patents

通信装置、及び、通信方法 Download PDF

Info

Publication number
JP4723672B2
JP4723672B2 JP2009508778A JP2009508778A JP4723672B2 JP 4723672 B2 JP4723672 B2 JP 4723672B2 JP 2009508778 A JP2009508778 A JP 2009508778A JP 2009508778 A JP2009508778 A JP 2009508778A JP 4723672 B2 JP4723672 B2 JP 4723672B2
Authority
JP
Japan
Prior art keywords
packet
fragment
search
control unit
final
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
JP2009508778A
Other languages
English (en)
Other versions
JPWO2008126228A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008126228A1 publication Critical patent/JPWO2008126228A1/ja
Application granted granted Critical
Publication of JP4723672B2 publication Critical patent/JP4723672B2/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
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Description

ネットワークを介してパケットデータを送受信する通信装置であって、分割(フラグメント)して送受信されるフラグメントパケットのリアセンブル処理を行う通信装置に関する。
ネットワークの高速化に伴い、通信装置においてルート情報等の検索処理を高速で行うためのCAM(Content Addressable Memory)の使用が一般的になっている。CAMは、検索対象のデータを入力してあらかじめ登録してあるテーブル内に該当データがあれば、そのアドレス(Entry番号)を出力するものである。CAMは、一般的に外部のSRAM(Static Random Access Memory)と組み合わせてEntry番号からSRAMに登録してあるルート情報等を読み出して通知する。これにより、ハードウェアによる高速の検索処理が可能となる。特に、登録したデータから検索対象データをダイナミックに指定できるT−CAM(Ternary CAM)を使用すれば、受信パケットの種類により検索データの対象を指定した検索が可能である。
例えば、IPv4(UDP(User Datagram Protocol))パケットのルート検索を行う場合、あらかじめCAMに登録してあるDestination IP Address+Source IP Address+Protocol+Source Port+Destination Portデータで検索を行い、一致したEntry番号をもとにあらかじめEntry対応で格納してあるパケット処理情報等を読み出し通知し、その情報によりルート処理、QoS(Quality of Service)制御等を行う。
一方、フラグメント化されたパケットを高速でリアセンブルする場合、ネットワークより複数のフラグメントパケットを同時多重で受信する場合があるため、同一フラグメントパケットの識別をCAMを利用して行うことが有効である。
図16は、従来のフラグメントパケットのリアセンブル処理を行う通信装置の構成例を示す図である。
図17は、IPv4パケット(UDPパケット)のフラグメントフォーマットの例を示す図である。図17は、データを3パケットにフラグメント化する例である。
図17において、3パケットにフラグメント化する場合、IPv4ヘッダを有するデータは、長さL1のデータ1、長さL2のデータ2、長さL3のデータ3に分割される。それぞれのデータに、IPv4ヘッダが付加される。また、先頭のデータには、UDPヘッダも付加される。
図18は、IPv4ヘッダの構成例を示す図である。IPv4ヘッダは、Total Length(全長)、ID(Identification)、Dフラグ(Don't fragmentフラグ)、Mフラグ(More Fragment(継続)フラグ)、Fragment Offset(フラグメントオフセット値)、Protocol、Source IP Address、Destination IP Address等を備える。
Dフラグは、フラグメントパケットであるか否かを識別するフラグである。Dフラグが、D=0である場合はフラグメントパケットではない(通常パケットである)、D=1である場合はフラグメントパケットである、ことを意味する。
Mフラグは、継続パケットが存在するか否かを識別するフラグである。Mフラグが、M=0である場合は継続パケットが存在しない、M=1である場合は継続パケットが存在する、ことを意味する。つまり、あるパケットのIPv4ヘッダの、DフラグがD=1であり、かつ、MフラグがM=0である場合は、そのパケットは最終フラグメントパケットであることを意味する。
フラグメントオフセット値は、ペイロードデータの開始位置の先頭パケットのヘッダからの大きさを表す。フラグメントオフセット値が0である場合、先頭フラグメントパケットであることを意味する。
ID(Identification)は、データを識別する固有の情報である。同一のデータからフラグメント化されたデータには、同一のIDが付加される。
図19は、IPv4ヘッダのMフラグ及びフラグメントオフセット値と、パケットの種類との関係を示す図である。例えば、M=1かつF.O.(Fragment Offset、フラグメントオフセット値)=0である場合は、先頭フラグメントパケットである。M=0かつF.O.=0である場合は通常パケットであるが、通常パケットであるか否かは、Dフラグによって判断される。
図20は、UDPヘッダの構成例を示す図である。UDPヘッダは、Source Port、Destination Port、Length、Checksumを備える。
通信装置のパケット受信部110で受信された受信パケットに対して、フラグメント判定部120は、フラグメントパケットか否か、及びフラグメントパケットの種類の判定を行う。フラグメントパケットか否か、及びフラグメントパケットの種類の判定は次のように行うことができる。
フラグメント判定部120は、IPv4ヘッダのDフラグ(Don't fragmentフラグ)でフラグメントパケットか否かを判定する。フラグメント判定部120は、IPv4ヘッダのMフラグ(More Fragment(継続)フラグ)で最終フラグメントパケットかを判定する。また、フラグメントパケット判定部120は、IPv4ヘッダがM=1かつFragment Offset=0であるときは、そのパケットは先頭フラグメントパケットであると判定する。
複数の送信先から同時多重で受信されるフラグメントパケットの同一フラグメントパケットの識別は、IPv4ヘッダのID(Identification)とSource IP Addressを使用して行うことが可能である。
フラグメントパケット検索制御部132は、フラグメントパケット内のIDとSource IP Addressを検索データとしてCAM134を検索する。フラグメントパケット検索結果判定部134は、検索一致時、後続フラグメントパケットとしてEntry番号通知することにより、同一フラグメントパケットを識別し、パケットを蓄積する。フラグメントパケットはネットワーク内で順序逆転が発生する場合があるため、組み立て制御部138は、フラグメントオフセット値に従ってフラグメントパケットを組み立てることにより、リアセンブル処理(組み立て処理)を行う。
組み立て制御部138でフラグメントパケットをリアセンブル処理したのち、検索制御部140は、フラグメントパケット以外のパケットと同様にルート検索を行う。パケット処理部160は、検索制御部140のルート検索結果情報により、ルーティング、QoS制御等のパケット処理を行う。
特開2006−74726号公報 特開平10−285234号公報 特開平5−207041号公報
図16に示すような通信装置では、通常のルート検索とリアセンブル処理用検索を別々に行っているため、各々Entryを持つ必要があり、必要なCAMの容量が大きくなり、また検索制御部も大きくなるという欠点があった。
そこで、本発明は、簡易な構成でフラグメントパケットのリアセンブル処理を行う通信装置を提供することを課題とする。
本発明は、上記課題を解決するために、以下の手段を採用する。
即ち、本発明は、
ネットワークを介してパケットデータを送受信する通信装置であって、
パケットを受信する受信部と、
受信したパケットがフラグメントパケットであるか否かを判定し、
前記パケットがフラグメントパケットである場合、
先頭フラグメントパケットであるか中間又は最終フラグメントパケットであるかを判定するパケット判定部と、
パケットの情報検索用にあらかじめ登録された検索データと、フラグメントパケットの同一フラグメント識別に用いる検索データと、を同一検索アドレス上で使用する検索制御部と、
フラグメント識別子が同一のフラグメントパケットを1つのパケットに組み立てる組み立て処理部と、
を備え、
前記検索制御部は、
受信したパケットが先頭フラグメントパケットである場合、
前記先頭フラグメントパケットからフラグメント識別子を抽出し、前記フラグメント識別子を、パケットの情報検索用にあらかじめ登録された検索データと同一検索アドレス上に、検索データとして登録し、
受信したパケットが中間又は最終フラグメントパケットである場合、
前記中間又は最終フラグメントパケットのフラグメント識別子を抽出し、該フラグメント識別子を検索対象データとして検索を行い、前記フラグメント識別子が同一のフラグメントパケット同士を組み合わせる、
通信装置とした。
またフラグメントパケットの順序逆転により、先頭フラグメントパケットによるフラグメント識別子の登録が行われる前に、中間・最終フラグメントパケットを受信した場合、中間・最終フラグメントパケットの検索が行えないという問題に対応するため、中間・最終フラグメントパケットの検索で検索不一致となった場合、先頭フラグメントパケットが受信されるのを待って再度中間・最終フラグメントパケットの検索を行う、通信装置とした。
本発明によれば、フラグメントパケットの同一フラグメント識別用の検索処理を、パケットの他の情報検索処理と共通の検索データで行うことができる。
本発明によれば、簡易な構成でフラグメントパケットのリアセンブル処理をする通信装置を提供することができる。
図1は、実施形態のリアセンブル処理をする通信装置を示す図である。 図2は、実施形態の通信装置の処理フローの例(1)を示す図である。 図3は、実施形態の通信装置の処理フローの例(2)を示す図である。 図4は、実施形態の通信装置の処理フローの例(3)を示す図である。 図5は、実施形態の通信装置の処理フローの例(4)を示す図である。 図6は、実施形態の通信装置の処理フローの例(5)を示す図である。 図7は、実施形態の通信装置の処理フローの例(6)を示す図である。 図8は、実施形態の通信装置の処理フローの例(7)を示す図である。 図9は、先頭フラグメントパケット受信時の再検索処理のための処理フローの例を示す図である。 図10は、中間、最終フラグメントパケット受信時の再検索処理のための処理フローの例を示す図である。 図11は、再検索処理の実行時の処理フローの例を示す図である。 図12は、CAMの使用例を示す図である。 図13は、CAMの使用例を示す図である。 図14は、CAMの使用例を示す図である。 図15は、CAMの使用例を示す図である。 図16は、従来のリアセンブル処理を行う通信装置を示す図である。 図17は、IPv4パケット(UDPパケット)のフラグメントフォーマットの例を示す図である。 図18は、IPv4ヘッダの例を示す図である。 図19は、IPv4ヘッダのMフラグ及びフラグメントオフセット値と、パケットの種類との関係を示す図である。 図20は、UDPヘッダの例を示す図である。
符号の説明
100 通信装置
110 パケット受信部
120 フラグメント判定部
132 フラグメントパケット検索制御部
134 CAM(Content Addressable Memory)
136 フラグメント検索結果判定部
138 組み立て制御部
140 検索制御部
142 CAM(Content Addressable Memory)
144 SRAM(Static Random Access Memory)
150 組み立て制御部
160 パケット処理部
170 パケット送信部
以下、図面を参照して本発明の実施形態について説明する。実施形態の構成は本発明の例示であり、本発明の技術的範囲は実施形態の構成に限定されるものではない。
〔実施形態〕
〈構成〉
図1は、本実施形態の通信装置のブロック構成例を示す図である。
本実施形態の通信装置100は、パケット受信部110、フラグメント判定部120、検索制御部140、CAM(Content Addressable Memory)142、SRAM(Static Random Access Memory)144、組み立て制御部150、パケット処理部160、パケット送信部170を備える。
パケット受信部110は、他の通信装置から送信されるパケットを受信する。パケット受信部110は、受信したパケットをフラグメント判定部120へ送る。
フラグメント判定部120は、受信したパケットが、フラグメントパケットであるか否かを判定する。フラグメント判定部120は、受信したパケットのIPv4ヘッダのD(Don't Fragment)フラグを確認する。
フラグメント判定部120は、Dフラグを確認した結果、D=1である場合は当該パケットがフラグメントパケットであると判断する。また、フラグメント判定部120は、Dフラグを確認した結果、D=0である場合は当該パケットがフラグメントパケットでない(通常パケットである)と判断する。
検索制御部140は、組み立てエリア、パケット対応の制御エリア、検索制御エリアを有する。
検索制御部140は、フラグメント判定部120から、フラグメント判定結果と、受信したパケットを受信する。
検索制御部140は、受信パケットがフラグメントパケットでない(通常パケットである)場合、検索データである、Source IP address、Destination IP address、Protocol、UDP Source Port、UDP Destination Portを当該パケットから抽出し、CAM142に対して検索要求を行う。
検索制御部140は、検索結果によりHitしたEntry(エントリー)がある場合、Entry対応のパケット処理情報をSRAM144より取り出し、パケット対応の制御エリアに格納する。検索制御部140は、HiTしたEntryがない(Miss Hitである)場合、当該パケットを破棄する。
検索制御部140は、受信パケットが先頭フラグメントパケットである場合、検索データである、Source IP address、Destination IP address、Protocol、UDP Source Port、UDP Destination Portを当該パケットから抽出し、CAM142に対して検索要求を行う。
検索制御部140は、検索結果によりHitしたEntryがある場合、Entry対応のパケット処理情報をSRAM144から取り出して、パケット対応の制御エリアに格納する。検索制御部140は、HitしたEntryがない(Miss Hitである)場合、当該パケットを破棄する。また、Miss Hitの場合、当該パケットを破棄せず上位の制御部に通知する処理方法としてもよい。
検索制御部140は、HitしたEntryがある場合、HitしたEntryへの受信パケットのIPv4のID(Identification)の登録を行う。また、HitしたEntry対応にフラグメントパケット制御エリアを設定し、先頭フラグメントパケット受信フラグ、パケットペイロードサイズを格納する。
検索制御部140は、受信パケットが中間、最終フラグメントパケットである場合、受信パケットからSource IP AddressとID情報を抽出して、CAM142に対して検索要求を行う。検索制御部140は、検索結果により、HitしたEntryがある場合、Entry対応にフラグメントオフセット値に従いペイロードを組み立てエリアに格納してリアセンブル処理を行う。
検索制御部140は、検索結果によりHitしたEntryがない場合は、再検索処理を行う。検索制御部140は、パケットロス等により先頭フラグメントパケットが受信できない場合のために、再検索の回数をカウントし、カウントオーバー時に、当該パケットを破棄する。
検索制御部140は、検索結果によりHitしたパケットが中間フラグメントパケットである場合、パケットペイロードサイズを加算する。検索制御部140は、最終フラグメントパケットが受信済みであれば、格納してある最終フラグメントパケットのOffset値とパケットペイロードサイズ加算値とを比較する。検索制御部140は、比較結果が一致した場合、全フラグメントパケットが受信済みであると判断し、組み立て制御部150に処理を引き継ぐ。パケットペイロード加算値には、最終フラグメントパケット以外のパケットペイロードサイズが加算されている。
検索制御部140は、最終フラグメントパケット未受信、又は、最終フラグメントパケットのフラグメントオフセット値とパケットペイロードサイズ加算値とが一致しなければ、後続フラグメントパケットの受信待ちをする。
検索制御部140は、検索結果によりHitしたパケットが最終フラグメントパケットの場合、格納してある最終フラグメントパケット以外のパケットペイロード加算値と最終フラグメントオフセット値を比較する。検索制御部140は、検索結果が一致すれば全フラグメントパケット受信済みと判断し、組み立て制御部150へ処理を引き継ぐ。
検索制御部140は、最終フラグメントパケットのフラグメントオフセット値とパケットペイロードサイズ加算値とが一致しなければ、後続フラグメントパケットの受信待ちをする。
ここでは、UDPパケットの処理について説明しているが、他のパケットでも同様に検索制御、フラグメントパケットのリアセンブル処理が可能である。
組み立て制御部150は、検索制御部140で処理された一連のフラグメントパケット(ID及びSource IP Addressが一致するフラグメントパケット)を、組み立てエリアから読み出してリアセンブルする。組み立て制御部150は、リアセンブルしたパケットをパケット処理部160へ送る。
パケット処理部160は、通常パケットを検索制御部140から受信し、また、リアセンブルされたフラグメントパケットを組み立て制御部150から受信する。パケット処理部160は、検索制御部140からの、ルート等の検索結果情報により、ルーティング、QoS(Quality of Service)制御などのパケット処理を行う。
パケット送信部170は、パケット処理部160で処理したパケットの他の通信装置への送信を行う。
〈動作例〉
以下、本実施形態の検索制御部の処理フローを詳しく説明する。
図2、図3、図4、図5、図6、図7及び図8は、本実施形態の検索制御部の処理フローを示す図である。
フラグメント判定部120から受信パケット及びフラグメント判定結果が入力されると、検索制御部140は、受信パケットがフラグメントパケットか否かを判断する。フラグメント判定部120では、受信パケットのIPv4ヘッダのDフラグを確認して、フラグメントパケットか否かを判断している。DフラグがD=1である場合は、当該パケットがフラグメントパケットであると、DフラグがD=0である場合は、当該パケットがフラグメントパケットではない(通常パケットである)と判断される。検索制御部140は、この判定結果を用いて、受信パケットがフラグメントパケットか否かを判断する(図2:S1004)。
(通常パケット)
受信パケットがフラグメントパケットではない(通常パケットである)と判断された場合(図2:S1004;NO)、検索制御部140は、受信パケットのIPv4ヘッダからSource IP address、Destination IP address、及び、Protocolを、UDPヘッダからSource Port、及び、Destination Portを抽出する(図3:S2002)。検索制御部140は、Source IP address、Destination IP address、Protocol、Source Port、Destination Portを検索対象にして、CAM142に対して検索要求をする(図3:S2004)。
図12は、CAMの使用例を示す図である。CAM142には、あらかじめ、少なくともSource IP address、Destination IP address、Protocol、Source Port、Destination Portが登録されている。通常パケットの場合、Source IP address、Destination IP address、Protocol、Source Port及びDestination Portが、検索対象となる。
検索制御部140は、CAM142から検索結果を受信する。検索の結果、HitしたEntryがあった場合(図3:S2006;YES)、SRAM144に格納されている当該パケットのパケット処理情報を取得し、当該情報をパケット対応の制御エリアに格納する(図3:S2012)。検索制御部140は、当該パケットをパケット処理部160へ送る。当該パケットは、パケット処理部160でパケット処理される(図3:S2050)。
また、検索の結果、HitしたEntryがなかった場合(図3:S2006;NO)、当該パケットは、通信装置100にとって必要ないパケットであるとして廃棄される(図3:S2008)。なお、当該パケットを破棄せず、上位の制御部に通知する処理方法としてもよい。
(先頭フラグメントパケット)
図2に戻って、受信パケットがフラグメントパケットであると判断された場合(図2:S1004;YES)、検索制御部140は、当該パケットが先頭フラグメントパケットか否かを判断する(図2:S1006)。検索制御部140は、当該パケットのIPv4ヘッダのフラグメントオフセット値を確認する。検索制御部140は、フラグメントオフセット値が0である場合、当該パケットが先頭フラグメントパケットであると判断する。また、検索制御部140は、フラグメントオフセット値が0でない場合、当該パケットが中間または最終フラグメントパケットであると判断する。
検索制御部140は、受信パケットが先頭フラグメントパケットであると判断した場合(図2:S1006;YES)、受信パケットのIPv4ヘッダからSource IP address、Destination IP address、及び、Protocolを、UDPヘッダからSource Port、及び、Destination Portを抽出する(図4:S3002)。これは、受信パケットが通常パケットであると判断した場合と同様である。先頭フラグメントパケットは、IPv4ヘッダ及びUDPヘッダを有しているので、これらの情報を抽出することができる(図17、図18、図20)。
検索制御部140は、Source IP address、Destination IP address、Protocol、Source Port、Destination Portを検索対象にして、CAM142に対して、検索要求をする(図4:S3004)。
図13は、CAMの使用例を示す図である。先頭フラグメントパケットの場合、通常パケットの場合と同様に、Source IP address、Destination IP address、Protocol、Source Port及びDestination Portが検索対象となる。
検索制御部140は、CAM142から検索結果を受信する。検索の結果、HitしたEntryがなかった場合(図4:S3006;NO)、検索制御部140は、当該パケットは必要ないパケットであるとして廃棄する(図4:S3008)。なお、通常パケットと同様に、当該パケットを破棄せず、上位の制御部に通知する処理方法としてもよい。この場合、リアセンブル後に上位の制御部に通知される。
また、検索の結果、HitしたEntryがあった場合(図4:S3006;YES)、検索制御部140は、受信パケットのIPv4ヘッダのIDを抽出し、HitしたEntryに登録する(図4:S3010)。
検索制御部140は、SRAM144に格納されている当該パケットのパケット処理情報を取得し、当該情報をパケット対応の制御エリアに格納する(図5:S3012)。また、検索制御部140は、HitしたEntryにフラグメント制御エリアを設定する。検索制御部140は、フラグメント制御エリアに、先頭フラグメント受信フラグ、パケットペイロードサイズを格納する(図5:S3014)。
検索制御部140は、先頭フラグメントパケットのUDPヘッダ及びデータを組み立てエリアの先頭のアドレス位置に書き込む(図5:S3016)。また、検索制御部140は、先頭フラグメントパケットのIPv4ヘッダを、組み立てエリアのヘッダ格納部に格納する。
検索制御部140は、先頭フラグメントパケットの後続のフラグメントパケットの到着を待機する(図5:S3020)。
(中間、最終フラグメントパケット)
図2に戻って、受信パケットが先頭フラグメントパケットでないと判断した場合(図2:S1006;NO)、検索制御部140は、受信パケットのIPv4ヘッダからSource IP address、及び、IDを抽出する(図6:S4002)。受信パケットが先頭フラグメントパケットではない場合、当該パケットは、中間フラグメントパケット又は最終フラグメントパケットである。検索制御部140は、Source IP address、及び、IDを検索対象にして、CAM142に対して検索要求をする(図3:S4004)。
図14及び図15は、CAMの使用例を示す図である。中間、最終フラグメントパケットの場合、Source IP address、及び、IDが、検索対象となる。中間、最終フラグメントパケットに対応する先頭フラグメントパケットが未着の場合、IDが登録されていない(図14)。一方、中間、最終フラグメントパケットに対応する先頭フラグメントパケットが既着の場合は、IDが登録されている(図15)。
検索制御部140は、CAM142から検索結果を受信する。検索の結果、HitしたEntryがあった場合(図6:S4006;YES)、CAM142から、Hit Entryを通知される(図6:S4010)。この場合、受信パケット(中間、最終フラグメントパケット)に対応する先頭フラグメントパケットが既着であることを意味する。
検索制御部140は、受信パケットのIPv4ヘッダからフラグメントオフセット値を抽出し、当該フラグメントオフセット値に対応した組み立てエリアのアドレス位置に受信パケットのデータを書き込む(図6:S4012)。また、検索制御部140は、受信パケットのIPv4ヘッダを、組み立てエリアのヘッダ格納部に格納する。
検索制御部140は、受信パケットが最終フラグメントパケットか否かを判断する(図7:S4014)。検索制御部140は、当該パケットのIPv4ヘッダのMフラグを確認する。検索制御部140は、MフラグがM=0である場合、当該パケットが最終フラグメントパケットであると判断する。また、検索制御部140は、MフラグがM=1である場合、当該パケットが最終フラグメントパケットではない(中間フラグメントパケットである)と判断する。
受信パケットが最終フラグメントパケットである場合(図7:S4014;YES)、検索制御部140は、フラグメント制御エリアに、最終フラグメント受信フラグ、最終フラグメントパケットのIPv4ヘッダのフラグメントオフセット値を格納する(図7:S4016)。検索制御部140は、全フラグメントパケットを受信したか否かを判断する(図7:S4026)。
受信パケットが中間フラグメントパケットである場合(図7:S4014;NO)、検索制御部140は、フラグメント制御エリアのパケットペイロードサイズに、当該パケットのパケットペイロードサイズを加算する(図7:S4022)。フラグメント制御エリアのパケットペイロードサイズには、受信済みのフラグメントパケットのパケットペイロードサイズの合計が格納される。検索制御部140は、最終フラグメントパケットが受信済みか否かを判断する(図7:S4024)。検索制御部140は、フラグメント制御エリアの最終フラグメント受信フラグを確認して、最終フラグメントパケットが受信済みか否かを判断する。検索制御部140は、最終フラグメントパケットが受信済みでない場合(図7:S4024;NO)、後続フラグメントパケットを待つ(図7:S4020)。検索制御部140は、最終フラグメントパケットが受信済みである場合(図7:S4024;YES)、全フラグメントパケットを受信したか否かを判断する(図7:S4026)。
検索制御部140は、全フラグメントパケットを受信したか否かを判断する(図7:S4026)。検索制御部140は、フラグメント制御エリアの、最終フラグメントパケットのフラグメントオフセット値と、パケットペイロードサイズとを比較する。最終フラグメントパケットのフラグメントオフセット値は、最終フラグメントパケットを除く全フラグメントパケットのサイズと同じである。また、フラグメント制御エリアのパケットペイロードサイズは、最終フラグメントパケット以外のフラグメントパケットのパケットペイロードサイズの合計である。従って、最終フラグメントパケットのフラグメントオフセット値とパケットペイロードサイズとが一致するときは、全フラグメントパケットが受信されたと判断される。
検索制御部140は、全フラグメントパケットが未だ受信されていない場合(図7:S4028;NO)、後続フラグメントパケットを待つ(図7:4020)。検索制御部140は、全フラグメントパケットが受信された場合(図7:S4028;YES)、検索制御処理を終了し、組み立て処理へ移される(図7:S4050)。
図6に戻って、検索の結果、HitしたEntryがなかった場合(図6:S4006;NO)、受信パケットに対応する先頭フラグメントパケットが未着である。検索制御部140は、当該受信パケットを保持する。
検索制御部140は、当該受信パケットのMissHitカウントを加算する(図8:S4302)。検索制御部140は、当該受信パケットのMissHitカウントが、所定値を超えているか否かを判断する(図8:S4304)。当該所定値を超えている場合(図8:S4304;YES)、検索制御部140は、当該受信パケットに対応する先頭フラグメントパケットがパケットロス等により受信できないものとして当該受信パケットを破棄する(図8:S4308)。先頭フラグメントパケットが到着しないと、フラグメントパケットの組み立て処理が行えないからである。
検索制御部140は、MissHitカウントが、所定値を超えていない場合(図8:S4304;NO)、再検索をする(図8:S4306)。
なお、CAMに対しての検索要求は、検索キューに一旦検索要求を入力することにより検索キューの先頭から順に実行される構成とすることができる。再検索時においても、検索キューに再検索要求を入力することにより再検索が可能となる。
〈実施形態の作用効果〉
本実施形態の通信装置によると、ルート検索等の通常検索が必要な装置に対して、フラグメントパケットの同一フラグメント識別用の検索処理を、ルート検索等の処理と共通の検索制御、エントリーで行うことができる。また、フラグメントパケットの受信順序逆転が起こっても、同一フラグメントの識別、リアセンブルが可能となる。
本実施形態の通信装置によれば、高価なCAM、検索制御部の効率的使用が可能となり、簡素化、コストダウン、小型化が図れる。また、フラグメント識別用、ルート検索用の処理を同時の行うため、処理能力の向上も図れる。
〔変形例〕
〈再検索処理〉
図8のステップS4306の再検索処理についての変形例を、図面を使用して説明する。以下に説明する以外の構成については、上述した実施形態の構成と同様である。
(先頭フラグメントパケット受信時)
図9は、先頭フラグメントパケット受信時の再検索処理のための処理フローの例を示す図である。
検索制御部140は、先頭フラグメントパケットを受信(S6002)し、先頭フラグメントパケットの検索要求を検索キューに入力する。(S6004)。
検索制御部140は、先頭フラグメントパケットシーケンスNoを、カウントアップ(加算)して所定のエリアに格納(記憶)する(S6006)。
検索制御部140は、再検索キューにフラグメント検索要求があるか否かを確認する(S6008)。検索処理部140は、再検索キューにフラグメント検索要求がある場合(S6008;YES)は、その再検索キューを検索キューに繋ぐ(S6010)。これにより、先頭フラグメントパケットが受信されると、再検索キューにあるフラグメント検索要求が実行される。
検索制御部140は、他の検索処理に移行する。(S6020)
(中間、最終フラグメントパケット受信時)
図10は、中間、最終フラグメントパケット受信時の再検索処理のための処理フローの例を示す図である。
検索制御部140は、中間、最終フラグメントパケットを受信(S7002)し、中間、最終フラグメントパケットのフラグメント検索要求を検索キューに入力する。(S7004)。
検索制御部140は、先頭フラグメントパケットシーケンスNoを読み取り、検索制御エリアに格納(記憶)する(S7006)。
検索制御部140は、他の検索処理を行う(S7010)。
(再検索実行処理)
図11は、再検索処理の実行時の処理フローの例を示す図である。
検索制御部140は、中間、最終フラグメントパケットを受信(S8002)し、先頭フラグメントパケットが未受信であって、MissHitカウントアップした場合(S8004)において(図8のステップS4302及びステップS4304に相当)、先頭フラグメントパケットシーケンスNoを読み取る(S8008)。
検索制御部140は、ステップS8008で読み取った先頭フラグメントシーケンスNo(A)と検索制御エリアに格納した先頭フラグメントシーケンスNo(B)を比較する(S8010)。
検索制御部140は、上記Aと上記Bとを比較して、異なる場合(S8010;YES)、新たな先頭フラグメントパケットが受信されていると判断する。検索制御部140は、直ちに、フラグメント検索要求を検索キューに入力する。(S8030)。
検索制御部140は、上記Aと上記Bとを比較して、同じ場合(S8010;NO)、
新たな先頭フラグメントパケットが受信されていないと判断する。検索制御部140は、
再検索キューにフラグメント検索要求を入力して待機する。
〈変形例の作用効果〉
本変形例の再検索処理を有する通信装置によると、フラグメントパケットの受信順序逆転が起こっても、再検索処理により検索処理能力を極力低下させることなく、同一フラグメントの識別、リアセンブルが可能となる。
本変形例の再検索処理を有する通信装置によれば、ハードウェアの小型化を実現した上で、フラグメントパケットのリアセンブルを高速で行うことができる。

Claims (5)

  1. ネットワークを介してパケットデータを送受信する通信装置であって、
    パケットを受信する受信部と、
    受信したパケットがフラグメントパケットであるか否かを判定し、前記パケットがフラグメントパケットである場合、先頭フラグメントパケットであるか中間又は最終フラグメントパケットであるかを判定するパケット判定部と、
    パケットの情報検索用にあらかじめ登録された検索データと、フラグメントパケットの同一フラグメント識別に用いる検索データと、を同一検索アドレス上で使用する検索制御部と、
    フラグメント識別子が同一のフラグメントパケットを1つのパケットに組み立てる組み立て処理部と、を備え、
    前記検索制御部は、
    受信したパケットが先頭フラグメントパケットである場合、
    前記先頭フラグメントパケットからフラグメント識別子を抽出し、前記フラグメント識別子を、パケットの情報検索用にあらかじめ登録された検索データと同一検索アドレス上に検索データとして登録し、
    受信したパケットが中間又は最終フラグメントパケットである場合、
    前記中間又は最終フラグメントパケットのフラグメント識別子を抽出し、該フラグメント識別子を検索対象データとして検索を行い、前記フラグメント識別子が同一のフラグメントパケット同士を組み合わせる、通信装置。
  2. 前記検索制御部は、
    受信したパケットが中間又は最終フラグメントパケットである場合、
    前記中間又は最終フラグメントパケットのフラグメント識別子と同一のフラグメント識別子が検索できないとき、前記中間又は最終フラグメントパケットを保持し、再度、前記中間又は最終フラグメント識別子を検索対象データとして検索を行う、請求項1に記載の通信装置。
  3. 前記検索制御部は、
    受信したパケットが中間又は最終フラグメントパケットである場合、
    前記中間又は最終フラグメントパケットのフラグメント識別子と同一のフラグメント識別子が検索できない回数を計数し、所定回数を超えた場合、前記保持した中間又は最終フラグメントパケットを廃棄する、請求項2に記載の通信装置。
  4. 前記検索制御部は、
    受信したパケットが先頭フラグメントパケットである場合、
    シーケンス番号を加算して第1の領域に記憶し、
    受信したパケットが中間・最終フラグメントパケットである場合、
    前記シーケンス番号を第2の領域に記憶し、
    前記中間又は最終フラグメントパケットのフラグメント識別子と同一のフラグメント識別子が検索できないとき、
    前記第1の領域に記憶したシーケンス番号を読み出して、前記第2の領域に記憶したシーケンス番号と比較し、両番号が異なる場合は、前記中間又は最終フラグメントパケットのフラグメント識別子を検索対象データとして再検索を行い、前記比較したシーケンス番号が一致した場合は、新たな先頭フラグメントパケットの受信を待って再検索を行う、
    請求項2に記載の通信装置。
  5. ネットワークを介してパケットデータを送受信する通信方法であって、
    パケットを受信し、
    受信したパケットがフラグメントパケットであるか否かを判定し、前記パケットがフラグメントパケットである場合、先頭フラグメントパケットであるか中間又は最終フラグメントパケットであるかを判定し、
    パケットの情報検索用にあらかじめ登録された検索データと、フラグメントパケットの同一フラグメント識別に用いる検索データと、を同一検索アドレス上で使用し、
    フラグメント識別子が同一のフラグメントパケットを1つのパケットに組み立て、
    受信したパケットが先頭フラグメントパケットである場合、
    前記先頭フラグメントパケットからフラグメント識別子を抽出し、前記フラグメント識別子を、パケットの情報検索用にあらかじめ登録された検索データと同一検索アドレス上に検索データとして登録し、
    受信したパケットが中間又は最終フラグメントパケットである場合、
    前記中間又は最終フラグメントパケットのフラグメント識別子を抽出し、該フラグメント識別子を検索対象データとして検索を行い、前記フラグメント識別子が同一のフラグメントパケット同士を組み合わせる、通信方法。
JP2009508778A 2007-03-29 2007-03-29 通信装置、及び、通信方法 Expired - Fee Related JP4723672B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/056892 WO2008126228A1 (ja) 2007-03-29 2007-03-29 通信装置

Publications (2)

Publication Number Publication Date
JPWO2008126228A1 JPWO2008126228A1 (ja) 2010-07-22
JP4723672B2 true JP4723672B2 (ja) 2011-07-13

Family

ID=39863409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009508778A Expired - Fee Related JP4723672B2 (ja) 2007-03-29 2007-03-29 通信装置、及び、通信方法

Country Status (3)

Country Link
US (1) US8170061B2 (ja)
JP (1) JP4723672B2 (ja)
WO (1) WO2008126228A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008126228A1 (ja) * 2007-03-29 2008-10-23 Fujitsu Limited 通信装置
US8935336B2 (en) * 2008-06-18 2015-01-13 Cisco Technology, Inc. Optimizing program requests over a wide area network
US7826458B2 (en) * 2009-03-05 2010-11-02 Juniper Networks, Inc. Tracking fragmented data flows
KR20110017518A (ko) * 2009-08-14 2011-02-22 한국전자통신연구원 Udp 기반의 통신 방법 및 장치
JP5643609B2 (ja) * 2009-12-24 2014-12-17 キヤノン株式会社 通信装置、その処理方法及びプログラム
US8243618B2 (en) * 2010-04-26 2012-08-14 International Business Machines Corporation Steering fragmented IP packets using 5-tuple based rules
JP5630070B2 (ja) * 2010-05-14 2014-11-26 富士通株式会社 中継装置、プログラム及び方法
US9185073B2 (en) 2011-10-06 2015-11-10 Qualcomm Incorporated Systems and methods for data packet processing
JP5768683B2 (ja) * 2011-11-28 2015-08-26 富士通株式会社 受信データ処理方法、通信装置、及びプログラム
US9237082B2 (en) * 2012-03-26 2016-01-12 Hewlett Packard Enterprise Development Lp Packet descriptor trace indicators
EP3032783A1 (en) 2014-12-11 2016-06-15 Hewlett-Packard Development Company, L.P. Fragmented packet processing resource determination
JP7035771B2 (ja) * 2018-04-27 2022-03-15 富士通株式会社 パケット取得装置、パケット取得方法、およびパケット取得プログラム
US11303576B2 (en) * 2019-10-17 2022-04-12 Cisco Technology, Inc. Accurate analytics, quality of service and load balancing for internet protocol fragmented packets in data center fabrics

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004147164A (ja) * 2002-10-25 2004-05-20 Nippon Telegr & Teleph Corp <Ntt> パケット送信装置
WO2004107683A1 (ja) * 2003-05-29 2004-12-09 Nec Corporation パケット中継装置及びパケット中継方法並びにプログラム
WO2006085374A1 (ja) * 2005-02-10 2006-08-17 Fujitsu Limited 通信装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05207041A (ja) 1992-01-29 1993-08-13 Matsushita Electric Ind Co Ltd 通信処理装置
JP3731283B2 (ja) * 1997-04-01 2006-01-05 ソニー株式会社 信号処理回路およびその方法
JP4038223B2 (ja) * 2003-06-10 2008-01-23 富士通株式会社 パケット転送方法及び装置
JP4490331B2 (ja) * 2004-08-03 2010-06-23 富士通株式会社 断片パケット処理方法及びこれを用いるパケット転送装置
US20060029102A1 (en) * 2004-08-03 2006-02-09 Fujitsu Limited Processing method of fragmented packet
KR100881508B1 (ko) * 2004-09-21 2009-02-05 히다찌 커뮤니케이션 테크놀로지 패킷 제어 장치, 무선 통신 장치, 및 송신 제어 방법
WO2008126228A1 (ja) * 2007-03-29 2008-10-23 Fujitsu Limited 通信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004147164A (ja) * 2002-10-25 2004-05-20 Nippon Telegr & Teleph Corp <Ntt> パケット送信装置
WO2004107683A1 (ja) * 2003-05-29 2004-12-09 Nec Corporation パケット中継装置及びパケット中継方法並びにプログラム
WO2006085374A1 (ja) * 2005-02-10 2006-08-17 Fujitsu Limited 通信装置

Also Published As

Publication number Publication date
WO2008126228A1 (ja) 2008-10-23
US20100020800A1 (en) 2010-01-28
JPWO2008126228A1 (ja) 2010-07-22
US8170061B2 (en) 2012-05-01

Similar Documents

Publication Publication Date Title
JP4723672B2 (ja) 通信装置、及び、通信方法
US7146478B2 (en) Cache entry selection method and apparatus
JP4038223B2 (ja) パケット転送方法及び装置
US20060106946A1 (en) Method and apparatus for hardware packets reassembly in constrained networks
US7710962B2 (en) Packet forwarding apparatus and method for multicast packets
US8139586B2 (en) Enhanced packet classification
US20100158009A1 (en) Hierarchical packet process apparatus and method
US8559429B2 (en) Sequential frame forwarding
JP4779955B2 (ja) パケット処理装置及びパケット処理方法
US7499470B2 (en) Sequence-preserving deep-packet processing in a multiprocessor system
US7751319B2 (en) Method and processor for classifying data packet units
US20070230507A1 (en) Bundled Internet Protocol Packets
US20030195919A1 (en) Packet distributing system and method for distributing access packets to a plurality of server apparatuses
CN109510785B (zh) 一种镜像报文的方法和装置
WO2009082421A1 (en) Tcp data reassembly
US7046663B1 (en) System and method for intercepting packets in a pipeline network processor
EP1793539B1 (en) Method and equipment for Quality-of-Service (QoS) based routing
US20110314179A1 (en) Session-based sequence checking
US20110149776A1 (en) Network interface card device and method of processing traffic using the network interface card device
TW589832B (en) QoS router for effectively processing fragmented packets and method thereof
US7400581B2 (en) Load-balancing utilizing one or more threads of execution for implementing a protocol stack
JP4263718B2 (ja) 通信処理装置及び通信処理方法
US20090141712A1 (en) Router device
CN101115065A (zh) 用于处理管理和控制消息的方法和配置
TWI281804B (en) Packet forwarding method and system

Legal Events

Date Code Title Description
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: 20110308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110407

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4723672

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees