JP4802131B2 - パケット通信装置およびパケット通信方法 - Google Patents

パケット通信装置およびパケット通信方法 Download PDF

Info

Publication number
JP4802131B2
JP4802131B2 JP2007072194A JP2007072194A JP4802131B2 JP 4802131 B2 JP4802131 B2 JP 4802131B2 JP 2007072194 A JP2007072194 A JP 2007072194A JP 2007072194 A JP2007072194 A JP 2007072194A JP 4802131 B2 JP4802131 B2 JP 4802131B2
Authority
JP
Japan
Prior art keywords
segment
packet
sequence number
segments
monitoring section
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
JP2007072194A
Other languages
English (en)
Other versions
JP2008236304A (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
Priority to JP2007072194A priority Critical patent/JP4802131B2/ja
Publication of JP2008236304A publication Critical patent/JP2008236304A/ja
Application granted granted Critical
Publication of JP4802131B2 publication Critical patent/JP4802131B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、入力されたパケットを所望の宛先へ送信するパケット通信装置およびパケット通信方法に関し、特に、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができるパケット通信装置およびパケット通信方法に関する。
一般に、例えばネットワーク上のパケットを中継するスイッチなどのパケット通信装置においては、パケットに含まれるデータの通信品質を確保するためにQoS(Quality of Service)制御が行われる。具体的には、通信品質ごとのバッファをパケット通信装置に備えておき、受信されたパケットをこのパケットに要求される通信品質のバッファに格納し、各バッファからパケットを送信する頻度を異ならせることにより、QoS制御が行われる。これにより、例えばリアルタイム性が要求されるデータのパケットは、パケット通信装置への到着順序に拘わらず優先して送信され、データのリアルタイム性が損なわれることがない。
このようなパケット通信装置においては、例えば特許文献1に記載されたように、パケットが分割され、得られたセグメント単位で宛先へのスイッチングが行われることがある。スイッチング後のセグメントは、再びパケットに組み立てられ、パケット通信装置から送信される。図12は、このようなパケット通信装置の一例であるパケットスイッチの構成例を示すブロック図である。同図に示すパケットスイッチは、入力インタフェース部(以下「入力IF部」と略記する)10−1〜10−n(nは2以上の整数)、回線間スケジューラ20、スイッチ部30、および出力インタフェース部(以下「出力IF部」と略記する)40−1〜40−nを有している。
入力IF部10−1〜10−nは、それぞれ異なるパケットの送信元または転送元に対応しており、外部から入力されたパケットを固定長のセグメントに分割する。そして、入力IF部10−1〜10−nは、パケットの分割により得られたセグメントを通信品質ごとに複数設けられたバッファに格納する。
回線間スケジューラ20は、通信品質ごとの出力順序を決定し、決定された出力順序でそれぞれの通信品質について複数設けられた入力IF部10−1〜10−nのバッファからセグメントを出力させる。
スイッチ部30は、回線間スケジューラ20から出力されるセグメントに対するスイッチングを行って、セグメントの宛先に対応する出力IF部40−1〜40−nへセグメントを出力する。
出力IF部40−1〜40−nは、それぞれ異なるパケットの宛先または転送先に対応しており、スイッチ部30から出力されたセグメントからパケットを組み立て、組み立てられたパケットを宛先または転送先へ送信する。
このようなパケットスイッチでは、パケットがセグメントに分割されるものの、同一パケット由来のセグメントはスイッチ部30のスイッチングにより、同一の出力IF部40−1〜40−nへ出力され、再びパケットとして組み立てられて宛先へ送信される。また、スイッチ部30に複数のn×nスイッチを設け、それぞれのn×nスイッチが独立にセグメントのスイッチングを行うことにより、スイッチ部30の処理負荷を複数のn×nスイッチに分散することができる。
特開2001−339427号公報
ところで、上述したパケットスイッチにおいて、スイッチ部30に複数のn×nスイッチが独立にセグメントに対するスイッチングを行う場合、同一パケット由来のセグメントが出力IF部40−1〜40−nに到着する順序が本来のセグメントの順序と異なってしまうことがある。すなわち、例えばあるパケットの1番目のセグメントと2番目のセグメントとがスイッチ部30の異なるn×nスイッチにおいてスイッチングされた場合、2番目のセグメントに対するスイッチングが早ければ、2番目のセグメントが先に出力IF部40−1〜40−nに到着する。
このような場合、出力IF部40−1〜40−nにおいては、セグメントを本来の順序に並べ替えてパケットを組み立てる必要がある。このため、入力IF部10−1〜10−nにおいてパケットが分割される際、各セグメントに連続したシーケンス番号が付与され、出力IF部40−1〜40−nにおいては、パケットの組み立てに先行して、シーケンス番号が連続するようにセグメントの順序が並び替えられる。入力IF部10−1〜10−nにおいてセグメントに付与されるシーケンス番号は、パケットを区別せずに通し番号となっているため、出力IF部40−1〜40−nは、パケットスイッチに入力された順に正しくパケットを組み立てて出力することが可能となる。
しかしながら、パケットスイッチに入力されるパケットが例えば複数の宛先へ送信されるマルチキャストパケットである場合、出力IF部40−1〜40−nに到着するセグメントのシーケンス番号が連続しないことがあり、出力IF部40−1〜40−nでは、シーケンス番号の非連続がパケットの宛先の違いによるものなのか、スイッチ部30におけるスイッチングの処理時間の差やセグメントの消失などの障害によるものなのか判断できないという問題がある。
具体的には、例えば図13に示すように、マルチキャストパケットであるパケット#1〜#3が入力IF部10−1に入力された場合、パケット#1はセグメント1〜3に分割され、パケット#2はセグメント4〜99に分割され、パケット#3はセグメント100となる(すなわち、パケット#3は1セグメントで1パケット)。これらのパケット#1〜#3のうち、パケット#1、#3は、出力IF部40−1、40−m(mは2以上の整数)に対応する宛先へ送信されるものとし、パケット#2は、出力IF部40−1に対応する宛先のみへ送信されるものとすると、スイッチ部30のスイッチングにより、セグメント1〜100が出力IF部40−1へ出力され、セグメント1〜3、100が出力IF部40−mへ出力される。
このとき、出力IF部40−1においては、セグメント1〜100が到着し、セグメントのシーケンス番号順にパケットが組み立てられ、パケットの入力順と同様の順序でパケット#1〜#3が出力される。一方、出力IF部40−mにおいては、パケット#2由来のセグメント4〜99が到着せずにセグメント1〜3の後にセグメント100が到着することになる。したがって、出力IF部40−mは、セグメント1〜3からパケット#1を組み立てて出力した後セグメント100が到着しても、タイムアウトが発生するまではセグメント4〜99の到着を待機する。
このように、出力IF部40−mは、パケット#2由来のセグメント4〜99が到着するか否かを判断することができないため、パケット#2の宛先に対応していないにも拘わらずセグメント4〜99の到着をタイムアウト発生まで待機し、結果としてパケット#3の出力が遅延してしまうことになる。また、出力IF部40−mにセグメント100が到着した時点でパケット#3を組み立てて出力してしまうことも考えられるが、単にスイッチ部30におけるスイッチングの処理時間の差によりセグメント4〜99の到着が遅れている場合には、データの順序が守られず、QoS制御が機能しないことになってしまう。
本発明はかかる点に鑑みてなされたものであり、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができるパケット通信装置およびパケット通信方法を提供することを目的とする。
上記課題を解決するために、本願が開示するパケット通信装置は、入力されたパケットを所望の宛先へ送信するパケット通信装置であって、入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割手段と、前記分割手段によって生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ手段と、前記スイッチ手段から出力されたセグメントを宛先ごとに一時的に記憶する記憶手段と、前記記憶手段に到着済みのセグメントと前記記憶手段への到着順序が入れ替わり得るセグメントのシーケンス番号を示す監視区間を設定する設定手段と、前記設定手段によって設定された監視区間外のシーケンス番号が付与されたセグメントについては前記記憶手段への到着を待機することなく、前記記憶手段に到着済みの他のセグメントをシーケンス番号順に結合してパケットを組み立てる組立手段とを有する構成を採る。
本発明によれば、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
本発明の骨子は、スイッチングが完了した最新のセグメントのシーケンス番号からスイッチングの遅延によって順序が入れ替わり得るシーケンス番号までを監視区間とし、監視区間以前のシーケンス番号のセグメントについては、スイッチングの完了の待機を不要とすることである。以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
図1は、本発明の一実施の形態に係るパケット通信装置の概略構成を示すブロック図である。同図に示すパケット通信装置は、入力インタフェースカード(以下「入力IFカード」と略記する)100−1〜100−n(nは2以上の整数)、スイッチカード200、および出力インタフェースカード(以下「出力IFカード」と略記する)300−1〜300−nを有している。
入力IFカード100−1〜100−nは、それぞれ異なるパケットの送信元に対応しており、外部から入力されたパケットをセグメントに分割する。具体的には、入力IFカード100−1〜100−nは、MAC(Media Access Control)処理部110および入力トラフィック制御部120を有している。
MAC処理部110は、外部からパケットを受信し、受信パケットに対して所定のMAC処理(誤り検出など)を施す。
入力トラフィック制御部120は、MAC処理後の受信パケットをセグメントに分割し、各セグメントに連続したシーケンス番号を付与する。そして、入力トラフィック制御部120は、各セグメントをスイッチカード200のスイッチ210−1〜210−m(mは2以上の整数)へ分散して出力する。このとき、入力トラフィック制御部120は、セグメントそれぞれにヘッダを付加し、セグメントの宛先、入力IFカード100−1〜100−nの識別子、入力IFカード100−1〜100−nそれぞれにおける通しのシーケンス番号、ならびにパケットの先頭、中間、末尾、および先頭かつ末尾のどのセグメントに該当するかを示すセグメントタイプをヘッダに格納する。なお、セグメントタイプが先頭かつ末尾のセグメントは、1セグメントで1つのパケットを構成していることになる。
スイッチカード200は、入力トラフィック制御部120から出力されるセグメントのヘッダを参照し、セグメントの宛先に応じた出力IFカード300−1〜300−nへセグメントを出力する(スイッチング)。具体的には、スイッチカード200は、スイッチ210−1〜210−mを有している。
スイッチ210−1〜210−mは、n個の入力IFカード100−1〜100−nから入力されるセグメントをn個の出力IFカード300−1〜300−nのいずれかへ出力するn×nスイッチであり、それぞれ独立してヘッダを参照してセグメントの宛先に対応する出力IFカード300−1〜300−nへセグメントを出力する。なお、スイッチ210−1〜210−mは、セグメントがマルチキャストパケット由来のものである場合には、セグメントを複製した上で複数の出力IFカード300−1〜300−nへ出力する。また、本実施の形態においては、1つのスイッチカード200がスイッチ210−1〜210−mを備えるものとしたが、複数のスイッチカードにスイッチ210−1〜210−mを分散して構成しても良い。
出力IFカード300−1〜300−nは、それぞれ異なるパケットの宛先に対応しており、セグメントからパケットを組み立ててパケットを出力する。具体的には、出力IFカード300−1〜300−nは、出力トラフィック制御部310およびMAC処理部320を有している。
出力トラフィック制御部310は、スイッチ210−1〜210−mから出力されるセグメントをシーケンス番号順に並べ替えた後、セグメントからパケットを組み立て、スケジューリングにより決定された順序でパケットをMAC処理部320へ出力する。なお、出力トラフィック制御部310の構成および動作については、後に詳述する。
MAC処理部320は、出力トラフィック制御部310から出力されたパケットに対して所定のMAC処理(送信タイミングの決定など)を施し、パケットを送信する。
図2は、本実施の形態に係る出力トラフィック制御部310の内部構成を示すブロック図である。同図に示す出力トラフィック制御部310は、ヘッダ抽出部311、バッファ312、バッファ制御部313、リオーダ処理部314、リオーダビットマップ315、監視区間設定部316、パケット組立部317、およびスケジューラ318を有している。
ヘッダ抽出部311は、スイッチ210−1〜210−mから出力されるセグメントのヘッダを抽出し、ヘッダが除去されたセグメントをバッファ312へ格納する一方、ヘッダに含まれる、入力IFカード100−1〜100−nの識別子、シーケンス番号、およびセグメントタイプ(以下これらをまとめて「ヘッダ情報」という)をリオーダ処理部314へ通知する。
バッファ312は、ヘッダが除去されたセグメントを一時的に保持し、バッファ制御部313の制御に従ってセグメントを結合し、得られたパケットを出力する。
バッファ制御部313は、バッファ312にセグメントが格納されると、このセグメントが格納されたアドレスを示すポインタをリオーダ処理部314へ通知する。また、バッファ制御部313は、パケット組立部317から1パケットに対応するセグメントのポインタの指示を受け、指示されたポインタのセグメントを結合するようにバッファ312を制御する。
リオーダ処理部314は、ヘッダ抽出部311から通知されたシーケンス番号のセグメントのスイッチングが完了したことをリオーダビットマップ315に記録することにより、セグメントをシーケンス番号順に並べ替えるリオーダ処理を実行する。また、リオーダ処理部314は、セグメントのヘッダ情報とバッファ制御部313から通知されるポインタとを関連付けてパケット組立部317へ出力する。
リオーダビットマップ315は、すべてのシーケンス番号のセグメントについてスイッチングが完了したか否かを記憶するとともに、セグメントからパケットが組み立てられたか否かを記憶する。
具体的には、リオーダビットマップ315は、例えば図3に示すように、すべてのシーケンス番号に対応するビットを備えており、スイッチングが完了してセグメントが出力トラフィック制御部310に到着すると、リオーダ処理部314によって、このセグメントのシーケンス番号に対応するビットが「1」とされる。また、「1」とされたビットのセグメントがパケット組立部317によって確認され、このセグメントのポインタがパケット組立部317によって記憶されると「1」とされたビットが「0」に戻される。
なお、入力トラフィック制御部120にパケットが入力された順にセグメントに分割されてシーケンス番号が付与されるため、リオーダビットマップ315においては、シーケンス番号が大きいほど新しいパケット由来のセグメントを示していることになる。
監視区間設定部316は、スイッチングの遅延を考慮して出力トラフィック制御部310への到着を待機する必要があるセグメントのシーケンス番号をリオーダビットマップ315における監視区間として設定する。すなわち、監視区間設定部316は、リオーダビットマップ315においてビットが「1」とされた最大のシーケンス番号に対応するセグメントとスイッチングの処理時間の差により出力トラフィック制御部310への到着順序が入れ替わり得るセグメントのシーケンス番号を監視区間とする。
具体的には、例えば図3に示すリオーダビットマップ315において、シーケンス番号100のビットが「1」となると、監視区間設定部316は、セグメント100とスイッチングの処理時間の差により出力トラフィック制御部310への到着順序が入れ替わり得る例えばセグメント96〜99のシーケンス番号を監視区間とする。換言すれば、監視区間以前のセグメント0〜95については、スイッチングの処理がどんなに遅延してもセグメント100の到着後に出力トラフィック制御部310に到着することはない。セグメント100が出力トラフィック制御部310に到着した時点で、これらのセグメント0〜95が出力トラフィック制御部310に未到着の場合は、出力トラフィック制御部310が元々セグメント0〜95の宛先に対応するものではなかったか、セグメント0〜95が障害などにより消失したと考えられる。
パケット組立部317は、リオーダビットマップ315、セグメントのヘッダ情報、およびセグメントのポインタを参照して、セグメントからパケットを組み立てるリアセンブル処理を実行する。具体的には、パケット組立部317は、リオーダビットマップ315のビットをシーケンス番号が小さい順に対象ビットとし、対象ビットが「1」であるか否かを判定する。そして、パケット組立部317は、対象ビットが「1」である場合には、このビットに対応するセグメントが出力トラフィック制御部310に到着していることから、このセグメントはパケットの組み立てに利用可能であると判断し、セグメントのポインタを記憶すると同時に、対象ビットを「0」に戻す。
また、パケット組立部317は、対象ビットが「0」である場合には、対象ビットが監視区間設定部316によって設定された監視区間内であるか否かを判断し、対象ビットが監視区間内であれば対象ビットを変更せず、対象ビットが監視区間外であれば直ちに対象ビットのシーケンス番号を1インクリメントする。
さらに、パケット組立部317は、ポインタを記憶したセグメントのセグメントタイプから1つのパケットの組み立てが可能であるか否かを判定し、組み立て可能である場合は、1パケットを構成するセグメントのポインタをシーケンス番号順にまとめてバッファ制御部313へ通知する。
スケジューラ318は、パケット組立部317において組み立て可能と判定されたパケットの出力順序をスケジューリングにより決定し、パケット組立部317へ通知する。
次いで、上記のように構成された出力トラフィック制御部310におけるリオーダビットマップ315の監視区間設定の動作について、図4に示すフロー図を参照しながら説明する。
まず、監視区間設定部316における監視区間はリオーダビットマップ315のシーケンス番号0を含む位置に初期化されている(ステップS101)。監視区間の長さは、スイッチ210−1〜210−mにおけるスイッチングの処理時間の差に応じて固定されており、処理時間の差によって出力トラフィック制御部310への到着順序の入れ替えが発生し得るセグメントの数に対応している。
この状態でスイッチ210−1〜210−mによってスイッチングされたセグメントがヘッダ抽出部311によって受信されると(ステップS102)、ヘッダ抽出部311によってセグメントのヘッダが抽出され、ヘッダが除去されたセグメントがバッファ312に格納される(ステップS103)。このとき、セグメントが格納されたバッファ312のアドレスを示すポインタは、バッファ制御部313からリオーダ処理部314へ出力される。
同時に、ヘッダに含まれるヘッダ情報(入力IFカード100−1〜100−nの識別子、シーケンス番号、およびセグメントタイプ)がヘッダ抽出部311からリオーダ処理部314へ出力され、リオーダ処理部314によって、ヘッダ情報とセグメントのポインタとが関連付けられるとともに、リオーダビットマップ315において、セグメントのシーケンス番号に対応するビットが「1」に変更される(ステップS104)。
リオーダビットマップ315が更新されると、監視区間設定部316によって、「1」に変更されたビットが現在の監視区間(ここでは、初期化された監視区間)以前のシーケンス番号に対応するビットであるか否かが判定される(ステップS105)。すなわち、リオーダビットマップ315によって新たに「1」となったビットが監視区間内に含まれるビットまたは監視区間よりも小さいシーケンス番号のビットであるか否かが監視区間設定部316によって判定される。
ここで、新たに「1」となったビットが監視区間以前のシーケンス番号に対応するビットである場合には(ステップS105Yes)、スイッチングの処理が遅延したセグメントが出力トラフィック制御部310に到着したと考えられるため、監視区間を変更することなく、引き続き出力トラフィック制御部310へのセグメントの受信が待機される。
一方、新たに「1」となったビットが監視区間より大きいシーケンス番号に対応するビットである場合には(ステップS105No)、このシーケンス番号のセグメントが出力トラフィック制御部310に到着したことにより、以後は、このシーケンス番号から監視区間の長さを超えて小さいシーケンス番号のセグメントは、スイッチ210−1〜210−mによるスイッチングの処理時間が最大に遅延しても出力トラフィック制御部310に到着することがない。したがって、監視区間設定部316によって、新たに「1」となったビットのシーケンス番号を監視区間の最大のシーケンス番号とする位置に監視区間が移動される(ステップS106)。
このように、出力トラフィック制御部310に到着したセグメントの最大のシーケンス番号以下の所定数のシーケンス番号を監視区間とすることにより、スイッチ210−1〜210−mの処理時間の差によって到着順序が入れ替わり得るセグメントのシーケンス番号を監視区間に含めることができるとともに、スイッチ210−1〜210−mの処理時間がどんなに遅延しても到着順序が入れ替わり得ないセグメントのシーケンス番号を監視区間から除外することができる。こうして設定された監視区間は、監視区間設定部316からパケット組立部317へ通知される。
次に、上記のように監視区間が設定された際のリアセンブル処理について、図5に示すフロー図を参照しながら説明する。
パケット組立部317には初期状態で0とされる対象ビット番号が保持されており、リオーダビットマップ315の対象ビット番号のビット(以下「対象ビット」という)が「1」であるか否かが判定される(ステップS201)。この結果、対象ビットが「1」であれば(ステップS201Yes)、パケット組立部317によって、対象ビットに対応するセグメントのポインタが記憶されるとともに(ステップS202)、対象ビットが「0」に戻される(ステップS203)。こうしてパケット組立部317にポインタが記憶されるセグメントは、既にバッファ312に保持されており、パケットの組み立てに利用可能なセグメントである。
そして、パケット組立部317によって、ポインタが記憶されたセグメントのセグメントタイプが参照され、1パケットを組み立てるのに必要なすべてのセグメントのポインタが記憶されているか否かが判断される(ステップS204)。ここで、1パケットを組み立てるのに必要なすべてのセグメントのポインタが記憶されていると判断されるのは、セグメントタイプが先頭のセグメントからセグメントタイプが末尾のセグメントまでのシーケンス番号が連続したすべてのセグメントのポインタが記憶されている場合と、セグメントタイプが先頭かつ末尾のセグメントのポインタが記憶されている場合である。
この判断の結果、1パケット分のセグメントが揃っている場合には(ステップS204Yes)、これらのセグメントからパケットを組み立てることが決定され、スケジューラ318へスケジューリングが依頼される。この依頼を受け、スケジューラ318では、パケット組立部317によって組み立てられるパケットの出力タイミングが決定され、出力タイミングがパケット組立部317へ通知される(ステップS205)。そして、1パケット分のセグメントのポインタがシーケンス番号順にパケット組立部317からバッファ制御部313へ指示され、バッファ制御部313の制御によって、バッファ312に格納されたセグメントがパケット組立部317からの指示された順に結合され、得られたパケットが出力される(ステップS206)。
一方、パケット組立部317に1パケット分のセグメントのポインタが記憶されていない場合には(ステップS204No)、パケット組立部317における対象ビット番号が1インクリメントされ(ステップS207)、再び対象ビットが「1」であるか否かが判定される(ステップS201)。
この判定の結果、対象ビットが「1」であれば、上記と同様の処理が行われるが、対象ビットが「0」であれば(ステップS201No)、対象ビットに対応するセグメントについてタイムアウトが発生しているか否かがパケット組立部317によって判定される(ステップS208)。すなわち、対象ビット番号が現在の番号になってから所定時間が経過したか否かが判定され、所定時間が経過していれば、対象ビットに対応するセグメントの出力トラフィック制御部310への到着についてはタイムアウトが発生したものとされる(ステップS208Yes)。この場合には、対象ビット番号が1インクリメントされ(ステップS207)、再び対象ビットが「1」であるか否かが判定され(ステップS201)、上記と同様の処理が行われる。
また、対象ビット番号が現在の番号になってから所定時間が経過しておらず、タイムアウトが発生していないと判定された場合は(ステップS208No)、対象ビット番号が監視区間設定部316によって設定された監視区間内であるか否かがパケット組立部317によって判定される(ステップS209)。この結果、対象ビット番号が監視区間内でなければ(ステップS209No)、この対象ビット番号は、スイッチ210−1〜210−mにおける処理時間がどんなに遅延しても既に出力トラフィック制御部310に到着しているはずのセグメントのシーケンス番号であることから、タイムアウトの発生を待機せずに対象ビット番号が1インクリメントされる(ステップS207)。
すなわち、出力トラフィック制御部310が対象ビット番号のセグメントの宛先に対応しているならば、このセグメントは、既に出力トラフィック制御部310に到着して対象ビットが「1」になっているはずである。ところが、対象ビットが「1」となっていないため、パケット組立部317によって、対象ビット番号のセグメントについて、タイムアウトの発生を待機する必要がないと判断される。そして、タイムアウトの発生が待機されることなく、パケット組立部317によって対象ビット番号が1インクリメントされるため、パケット組み立て時の処理時間が短縮されることになる。
一方、対象ビット番号が監視区間内であれば(ステップS209Yes)、この対象ビット番号は、スイッチ210−1〜210−mにおける処理時間の遅延により、まだ出力トラフィック制御部310に到着していない可能性があるセグメントのシーケンス番号であることから、パケット組立部317によって対象ビット番号が1インクリメントされることなく、引き続き同じ対象ビットが「1」であるか否かが判定される(ステップS201)。
このように、本実施の形態においては、リオーダビットマップ315の「1」となっていない対象ビットが監視区間外である場合には、対象ビットに対応するセグメントに関するタイムアウト発生前であっても対象ビット番号をインクリメントする。このため、スイッチ210−1〜210−mのスイッチングによって出力トラフィック制御部310への到着が遅延している可能性がほとんどないセグメントに対するタイムアウトの発生を待機することがなくなる。結果として、不要な待機時間を短縮することができ、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
次に、本実施の形態に係るリアセンブル処理の具体例について、図6〜11を参照して説明する。以下では、監視区間の長さを5とし、リオーダビットマップ315には0から4095までの4096個のシーケンス番号に対応するビットが設けられているものとする。
初期状態では、図6に示すように、リオーダビットマップ315のシーケンス番号0〜4までが監視区間となっており、パケット組立部317における対象ビット番号は0となっている。このときには、パケット組立部317によって、対象ビット番号0の対象ビットが「1」であるか否かが判定される。図6においては、対象ビットが「0」であるとともに監視区間内に含まれるため、対象ビット番号0のセグメントについてタイムアウトの発生が待機される。
そして、対象ビット番号0のセグメントについてタイムアウトが発生すると、対象ビット番号が1インクリメントされ、図7に示すように、対象ビット番号が1となる。対象ビット番号が1となったことにより、パケット組立部317によって、対象ビット番号1の対象ビットが「1」であるか否かが判定される。図7においては、対象ビットが「1」であるため、パケット組立部317によって、対象ビット番号1のセグメントのポインタが記憶されると同時に、対象ビットが「0」に戻される。また、シーケンス番号1のセグメントから1パケットが組み立て可能であるか否かがセグメントタイプから判断され、1パケットが組み立て可能であればパケットが組み立てられてバッファ312から出力される。ここでは、シーケンス番号1のセグメントから1パケットが組み立て可能でなく、対象ビット番号が1インクリメントされるものとする。
対象ビット番号が1インクリメントされると、図8に示すように、対象ビット番号が2となるとともに、シーケンス番号1のビットは「0」に戻されている。対象ビット番号が2となったことにより、パケット組立部317によって、対象ビット番号2の対象ビットが「1」であるか否かが判定される。図8においては、対象ビットが「1」であるため、パケット組立部317によって、対象ビット番号2のセグメントのポインタが記憶されると同時に、対象ビットが「0」に戻される。また、シーケンス番号1、2のセグメントから1パケットが組み立て可能であるか否かがセグメントタイプから判断され、1パケットが組み立て可能であればパケットが組み立てられてバッファ312から出力される。ここでは、シーケンス番号1、2のセグメントから1パケットが組み立て可能でなく、対象ビット番号が1インクリメントされるものとする。
以下同様に、対象ビット番号3の対象ビットが「1」であるか否かがパケット組立部317によって判定されるが、このとき、図9に示すように、シーケンス番号100のセグメントが出力トラフィック制御部310に到着し、シーケンス番号100のビットが「1」となったものとする。これまでの監視区間はシーケンス番号0〜4であったが、より大きいシーケンス番号のビットが「1」となったことから、監視区間設定部316によって、シーケンス番号100を監視区間の最大のシーケンス番号とする位置に監視区間が移動される。すなわち、監視区間は、シーケンス番号96〜100に設定される。
また、対象ビット番号が3となったことにより、パケット組立部317によって、対象ビット番号3のセグメントのポインタが記憶され、対象ビットが「0」に戻される。そして、シーケンス番号1〜3のセグメントから1パケットが組み立て可能であるか否かがセグメントタイプから判断される。ここでは、シーケンス番号1のセグメントのセグメントタイプが先頭であり、シーケンス番号3のセグメントのセグメントタイプが末尾であるものとし、シーケンス番号1〜3のセグメントから1パケットが組み立て可能であるものとする。この場合、パケット組立部317の依頼によってスケジューラ318においてスケジューリングが行われ、決定された出力タイミングでバッファ312からパケットが出力される。すなわち、パケット組立部317からシーケンス番号1〜3のセグメントのポインタがシーケンス番号順にバッファ制御部313へ通知され、バッファ制御部313の制御によって、バッファ312に格納されたシーケンス番号1〜3のセグメントが結合されて出力される。
このようにしてパケットが出力されるときにも、パケット組立部317における対象ビット番号は1インクリメントされ、図10に示すように、対象ビット番号は4となる。対象ビット番号が4となったことにより、パケット組立部317によって、対象ビット番号4の対象ビットが「1」であるか否かが判定される。図10においては、対象ビットが「0」であるため、パケット組立部317によって、対象ビット番号4のセグメントについてタイムアウトが発生しているか否かが判定される。この結果、タイムアウトが発生していれば、対象ビット番号が1インクリメントされるが、ここでは、タイムアウトが発生していないものとする。
対象ビット番号4のセグメントについてタイムアウトが発生していない場合、対象ビット番号4が監視区間に含まれていれば、スイッチ210−1〜210−mのスイッチングが遅延してセグメントが未到着である可能性があるため、引き続き対象ビット番号は4のままとされるが、ここでは、監視区間がシーケンス番号96〜100となっている。したがって、対象ビット番号4は監視区間に含まれておらず、直ちに対象ビット番号が1インクリメントされる。つまり、対象ビット番号4のセグメントについてのタイムアウトの発生が待機されることがなく、対象ビットが「0」であると判明した時点で対象ビット番号が1インクリメントされる。
以下、対象ビット番号が5以上となった際にも、対象ビットが「1」であればセグメントのポインタがパケット組立部317に記憶された後に対象ビット番号が1インクリメントされ、対象ビットが「0」であれば直ちに対象ビット番号が1インクリメントされる。そして、図11に示すように、対象ビット番号が96となって監視区間に含まれるようになるまでは、リオーダビットマップ315においてビットが「0」であるセグメントに関するタイムアウトの発生が待機されることがない。換言すれば、シーケンス番号4〜95のセグメントの出力トラフィック制御部310への到着が不要に待機されることなく、到着の可能性があるセグメントのみが待機される。結果として、シーケンス番号が大きいセグメントからのパケット組み立てが迅速に行われ、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
以上のように、本実施の形態によれば、セグメントに付与されるシーケンス番号に対応するビットを有するリオーダビットマップおいて、スイッチング後に出力トラフィック制御部に到着した最新のセグメントのシーケンス番号以前の所定数のシーケンス番号までを監視区間に設定し、監視区間外のシーケンス番号のセグメントについては、セグメントが出力トラフィック制御部に到着しなくてもタイムアウトの発生を待機せず、シーケンス番号順にリアセンブル処理を行っていく。このため、パケット組み立て時の不要な待機時間が短縮され、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減することができる。
(付記1)入力されたパケットを所望の宛先へ送信するパケット通信装置であって、
入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割手段と、
前記分割手段によって生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ手段と、
前記スイッチ手段によるスイッチングが完了したか否かを監視する対象のシーケンス番号を示す監視区間を設定する設定手段と、
前記設定手段によって設定された監視区間外のシーケンス番号が付与されたセグメントについては前記スイッチング手段によるスイッチングの完了を待機することなく、スイッチングが完了したセグメントをシーケンス番号順に結合してパケットを組み立てる組立手段と
を有することを特徴とするパケット通信装置。
(付記2)前記設定手段は、
前記スイッチング手段によるスイッチングが完了した最新のセグメントに付与されたシーケンス番号を含む監視区間を設定することを特徴とする付記1記載のパケット通信装置。
(付記3)前記設定手段は、
前記スイッチング手段によるスイッチングが完了した最新のセグメントに付与されたシーケンス番号を監視区間内の最大のシーケンス番号とし、前記スイッチング手段におけるスイッチングの処理時間の差により順序が入れ替わり得るセグメント数分のシーケンス番号を監視区間に設定することを特徴とする付記2記載のパケット通信装置。
(付記4)前記設定手段は、
セグメントに付与されるすべてのシーケンス番号に対応するビットを備えたビットマップと、
前記スイッチ手段によるセグメントのスイッチングが完了すると、スイッチングが完了した旨を当該セグメントのシーケンス番号に対応する前記ビットマップのビットに記録する記録手段とを含み、
前記ビットマップ上において、前記記録手段によってスイッチングが完了した旨が記録されたビットに基づいた監視区間を設定することを特徴とする付記1記載のパケット通信装置。
(付記5)前記組立手段は、
シーケンス番号が小さい順にセグメントのスイッチングが完了したか否かを判断し、スイッチング完了しておらず、かつ、対象のシーケンス番号が監視区間内である場合は、タイムアウト発生まで前記スイッチング手段によるスイッチングの完了を待機することを特徴とする付記1記載のパケット通信装置。
(付記6)前記組立手段は、
シーケンス番号が小さい順にセグメントのスイッチングが完了したか否かを判断し、スイッチング完了しておらず、かつ、対象のシーケンス番号が監視区間外である場合は、直ちに対象のシーケンス番号を1増加させることを特徴とする付記1記載のパケット通信装置。
(付記7)入力されたパケットを所望の宛先へ送信するパケット通信方法であって、
入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割工程と、
前記分割工程にて生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ工程と、
前記スイッチ工程におけるスイッチングが完了したか否かを監視する対象のシーケンス番号を示す監視区間を設定する設定工程と、
前記設定工程にて設定された監視区間外のシーケンス番号が付与されたセグメントについては前記スイッチング工程におけるスイッチングの完了を待機することなく、スイッチングが完了したセグメントをシーケンス番号順に結合してパケットを組み立てる組立工程と
を有することを特徴とするパケット通信方法。
本発明は、パケットを分割して得られるセグメントに対して個別にスイッチングを行う際、セグメントから組み立てられるパケットの出力の遅延を軽減する場合に適用することができる。
一実施の形態に係るパケット通信装置の概略構成を示すブロック図である。 一実施の形態に係る出力トラフィック制御部の内部構成を示すブロック図である。 一実施の形態に係るリオーダビットマップの具体例を示す図である。 一実施の形態に係る監視区間設定の動作を示すフロー図である。 一実施の形態に係るリアセンブル処理を示すフロー図である。 一実施の形態に係るリアセンブル処理の具体例を示す図である。 図6に続く図である。 図7に続く図である。 図8に続く図である。 図9に続く図である。 図10に続く図である。 パケットスイッチの構成例を示すブロック図である。 マルチキャストパケットのスイッチングの例を示す図である。
符号の説明
100−1〜100−n 入力IFカード
110 MAC処理部
120 入力トラフィック制御部
200 スイッチカード
210−1〜210−m スイッチ
300−1〜300−n 出力IFカード
310 出力トラフィック制御部
311 ヘッダ抽出部
312 バッファ
313 バッファ制御部
314 リオーダ処理部
315 リオーダビットマップ
316 監視区間設定部
317 パケット組立部
318 スケジューラ
320 MAC処理部

Claims (6)

  1. 入力されたパケットを所望の宛先へ送信するパケット通信装置であって、
    入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割手段と、
    前記分割手段によって生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ手段と、
    前記スイッチ手段から出力されたセグメントを宛先ごとに一時的に記憶する記憶手段と、
    前記記憶手段に到着済みのセグメントと前記記憶手段への到着順序が入れ替わり得るセグメントのシーケンス番号を示す監視区間を設定する設定手段と、
    前記設定手段によって設定された監視区間外のシーケンス番号が付与されたセグメントについては前記記憶手段への到着を待機することなく、前記記憶手段に到着済みの他のセグメントをシーケンス番号順に結合してパケットを組み立てる組立手段と
    を有することを特徴とするパケット通信装置。
  2. 前記設定手段は、
    前記記憶手段に到着済みの最新のセグメントに付与されたシーケンス番号を含む監視区間を設定することを特徴とする請求項1記載のパケット通信装置。
  3. 前記設定手段は、
    前記記憶手段に到着済みの最新のセグメントに付与されたシーケンス番号を監視区間内の最大のシーケンス番号とし、前記スイッチ手段におけるスイッチングの処理時間の差により前記記憶手段への到着順序が入れ替わり得るセグメント数分のシーケンス番号を監視区間に設定することを特徴とする請求項2記載のパケット通信装置。
  4. 前記設定手段は、
    セグメントに付与されるすべてのシーケンス番号に対応するビットを備えたビットマップと、
    前記記憶手段にセグメントが到着すると、セグメントが到着した旨を当該セグメントのシーケンス番号に対応する前記ビットマップのビットに記録する記録手段とを含み、
    前記ビットマップ上において、前記記録手段によってセグメントが到着した旨が記録されたビットに基づいた監視区間を設定することを特徴とする請求項1記載のパケット通信装置。
  5. 前記組立手段は、
    シーケンス番号が小さい順にセグメントが前記記憶手段に到着済みか否かを判断し、判断対象のセグメントが前記記憶手段に到着しておらず、かつ、判断対象のセグメントのシーケンス番号が監視区間外である場合は、直ちに判断対象のシーケンス番号を1増加させることを特徴とする請求項1記載のパケット通信装置。
  6. 入力されたパケットを所望の宛先へ送信するパケット通信方法であって、
    入力パケットを分割してシーケンス番号が付与されたセグメントを生成する分割工程と、
    前記分割工程にて生成されたセグメントそれぞれに対して独立に元のパケットの宛先に応じたスイッチングを行うスイッチ工程と、
    前記スイッチ工程を経たセグメントを宛先ごとのバッファに一時的に記憶する記憶工程と、
    前記バッファに到着済みのセグメントと前記バッファへの到着順序が入れ替わり得るセグメントのシーケンス番号を示す監視区間を設定する設定工程と、
    前記設定工程にて設定された監視区間外のシーケンス番号が付与されたセグメントについては前記バッファへの到着を待機することなく、前記バッファに到着済みの他のセグメントをシーケンス番号順に結合してパケットを組み立てる組立工程と
    を有することを特徴とするパケット通信方法。
JP2007072194A 2007-03-20 2007-03-20 パケット通信装置およびパケット通信方法 Expired - Fee Related JP4802131B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007072194A JP4802131B2 (ja) 2007-03-20 2007-03-20 パケット通信装置およびパケット通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007072194A JP4802131B2 (ja) 2007-03-20 2007-03-20 パケット通信装置およびパケット通信方法

Publications (2)

Publication Number Publication Date
JP2008236304A JP2008236304A (ja) 2008-10-02
JP4802131B2 true JP4802131B2 (ja) 2011-10-26

Family

ID=39908558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007072194A Expired - Fee Related JP4802131B2 (ja) 2007-03-20 2007-03-20 パケット通信装置およびパケット通信方法

Country Status (1)

Country Link
JP (1) JP4802131B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5625290B2 (ja) * 2009-09-09 2014-11-19 富士通株式会社 信号処理回路、インタフェースユニット、フレーム伝送装置及びセグメントデータの読み出し方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03195147A (ja) * 1989-12-25 1991-08-26 Toshiba Corp セル再生制御方式
JP3165229B2 (ja) * 1992-05-15 2001-05-14 株式会社日立製作所 Atmスイッチの同期化方法およびatmスイッチ
JP3736338B2 (ja) * 2000-11-13 2006-01-18 株式会社日立製作所 パケットスイッチ
KR101000699B1 (ko) * 2004-04-19 2010-12-10 엘지전자 주식회사 무선링크 제어계층에서의 데이터 처리방법

Also Published As

Publication number Publication date
JP2008236304A (ja) 2008-10-02

Similar Documents

Publication Publication Date Title
JP3732989B2 (ja) パケットスイッチ装置及びスケジューリング制御方法
JP4489308B2 (ja) パケットスイッチ
EP1089498B1 (en) Control architecture in optical burst-switched networks
US7965708B2 (en) Method and apparatus for using meta-packets in a packet processing system
US7400629B2 (en) CAM based system and method for re-sequencing data packets
US7602809B2 (en) Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability
JP2005522147A (ja) ファイバーチャンネルフレーム配送のための方法及び装置
US20020131419A1 (en) Packet switch apparatus and multicasting method
JP4342585B2 (ja) パケット中継装置及びパケット中継方法
JP4786522B2 (ja) パケット中継方法及び装置
JP4484990B2 (ja) 隙間充填を有する光ファイバ遅延線バッファ
US20120127877A1 (en) Packet transfer device and packet transfer method
US7420988B1 (en) Network relay protocol having timed packet aggregation
JP4588259B2 (ja) 通信システム
US6643294B1 (en) Distributed control merged buffer ATM switch
JP4802131B2 (ja) パケット通信装置およびパケット通信方法
US7092393B1 (en) Method and apparatus for distributed reassembly of subdivided packets using multiple reassembly components
JP2005323355A (ja) フレーム−セル間トラフィックのスケジューリング
KR100556603B1 (ko) 비동기 전송 모드 스위치
JP2009224946A (ja) パケット伝送装置
WO1999033231A1 (en) Asynchronous transfer mode switch
US7394822B2 (en) Using reassembly queue sets for packet reassembly
JP2009171157A (ja) リングバッファの使用方法およびスイッチング装置
US7792029B2 (en) Network data transmission based on predefined receive times
JP2009218778A (ja) パケット伝送システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110706

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110808

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4802131

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