JP4401910B2 - データ通信装置及びデータ通信方法 - Google Patents

データ通信装置及びデータ通信方法 Download PDF

Info

Publication number
JP4401910B2
JP4401910B2 JP2004264642A JP2004264642A JP4401910B2 JP 4401910 B2 JP4401910 B2 JP 4401910B2 JP 2004264642 A JP2004264642 A JP 2004264642A JP 2004264642 A JP2004264642 A JP 2004264642A JP 4401910 B2 JP4401910 B2 JP 4401910B2
Authority
JP
Japan
Prior art keywords
input
frame
address information
delimiter
comparison
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
JP2004264642A
Other languages
English (en)
Other versions
JP2006081030A5 (ja
JP2006081030A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004264642A priority Critical patent/JP4401910B2/ja
Publication of JP2006081030A publication Critical patent/JP2006081030A/ja
Publication of JP2006081030A5 publication Critical patent/JP2006081030A5/ja
Application granted granted Critical
Publication of JP4401910B2 publication Critical patent/JP4401910B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、データ通信装置及びデータ通信方法に関し、特に、データ通信における受信時の制御技術に関する。
IEEE802.3規格に準拠したネットワークシステムにおいては、TCP/IP(Transmission Control Protocol/Internet Protocol)やUDP/IP(User Datagram Protocol/Internet Protocol)等の通信プロトコルが用いられている。これらのプロトコルの下位層は、LLC(Logical Link Control、IEEE802.1)やMAC(メディアアクセスコントロール)層、PHY(フィジカルレイヤ)層などから構成されている。
IEEE802.3規格におけるIP層(IP Layer)では、1フレーム(パケット)あたりのデータを65535オクテット(1オクテット〔octet〕=8ビット)まで定義できる仕様となっている。有限のネットワーク帯域をネットワークに接続されたステーション間で公平にシェアして使用するためには、ネットワークにて伝送される1フレームのサイズを制限して特定のステーションによる帯域圧迫の影響を避けることが一般的である。
そこでIP層においては、伝送可能な最大フレームサイズをMTU(Maximum Transfer Unit)として定義する。一般に、10M〜1Gbpsのイーサネット(登録商標)であればMTU=1500オクテット、電話回線によるダイアルアップ接続の場合であれば576オクテットに設定されることが多い。また、1Gbps〜10Gbpsのイーサネット(登録商標)ではMTUを大きく設定して広帯域である優位性を引き出すことがある。
IEEE802.3規格に準拠したネットワークシステムでのデータ通信について説明する。
図9は、IEEE802.3フレームのデータフォーマットを示す図である。このフレームにおいて、MTUが定義している長さとは、IPヘッダ501とUDPヘッダ502とデータグラム503との長さ(総和)である。フレームとして伝送媒体に出力される際には、これらの前にMACヘッダ504が付与され、さらにその前にキャリア検出用のプリアンブル505とSFD(フレーム開始検出用のスタートフレームデリミタ)506が付与され、最後にFCS(Frame Check Sequence)507の4オクテットが付与される。
ここで、図8に示すように、ネットワークA605に属するステーションA601と、ネットワークB606に属するステーションB604とがネットワークC607を介して接続されたデータ通信システム、より詳しくは、ネットワークA605に属するステーションA(HostA)601がルーターA(RouterA)602を介してネットワークC607に接続されるとともに、ネットワークB606に属するステーションB(HostB)604がルーターB(RouterB)603を介してネットワークC607に接続されたデータ通信システムがあるとする。
また、ネットワークA605及びネットワークB606のMTUが1500オクテット、ネットワークC607のMTUが576オクテットとする。この場合には、ステーションA601およびステーションB604は、それぞれが属するネットワークのMTUが1500オクテットであるため、1500オクテットのUDP/IPデータグラムを発行している。
図8に示したデータ通信システムにおいて、ステーションA601が、ステーションB604に対して1500オクテットのIPフレーム(UDP/IPデータグラム)を送出した場合、MTU=576オクテットのネットワークC607が経路上にあるため、ルーターA602は、図10Aに示すように、1500オクテットのIPフレーム510を断片化(フラグメント:Fragment)し、3つのIPフレーム520、530、540に分割してネットワークC607に送出する。
具体的には、最初にルーターA602からネットワークC607送出される1番目のIPフレーム520は、UDPヘッダ付のIPフレーム長576オクテットのフレームであり、MFフラグを‘1’として送出する。このMFフラグは、後続のIPフラグメントフレームが存在するか否かを示すものであり、MFフラグを‘1’とすることで、さらに後続のIPフラグメントフレームが存在することを示す。
2番目のIPフレーム530は、1番目のIPフレーム520と同じIDが付与されるとともにIPフレーム長が同じく最大の576オクテットのフレームであり、MFフラグが‘1’で、オフセット値に576という値が付与されている。このオフセット値は、単位がオクテットであり、フラグメントされたIPフレームが元のIPフレームのどこからのデータであるかを示すアドレスとなる。
3番目のIPフレーム540は、1番目及び2番目のIPフレーム520、530と同じIDが付与されIPフレーム長が348オクテットのフレームであり、MFフラグを‘0’とし、オフセット値に1152が付与されている。MFフラグを‘0’とすることで、これより後続のIPフラグメントフレームが無いことを示している。
1番目から3番目のIPフラグメントフレーム520、530、540は、全て同じIDを持っているため、元は同一のIPフレームであることが分かる。
このようにしてルーターA602により3つに断片化されたIPフレームは、ネットワークC607を介してルーターB603に伝送され、ルーターB603によりフラグメントされたままの状態でステーションB604に送られる。ステーションB604では、フラグメントされたIPフレームを受信すると、MFフラグ及びオフセット値を参照して元のIPフレームを組み立てる。
ここで、ネットワークの状態(各ネットワークの帯域や伝送路における通信頻度等)によっては、例えば図10Bに示すように最終フラグメント(MFフラグ=0)のフレーム540が先に到着したり、フレーム520’と530のようにデータグラムの領域が一部重複している場合がある。
したがって、フラグメントされたIPフレームを受信して元のIPフレームを組み立てる際には、これらのことを考慮してデータグラムを組み立てなければいけない。そのため、図11(A)に示すように一旦全ての受信フレームを受信メモリ550上に展開して、図11(B)に示すようにフレーム単位でオフセット値(オフセットアドレス)が昇順になるようにソートを実行する。なお、受信メモリ550としては、(フラグメントされる数BL)×(MTU+ヘッダ長BW)の記憶容量を有するメモリが必要である。
次に、オフセット値が0となっているデータグラムの先頭からデータグラムを順次転送してゆき、とぎれることなく最終フレームまで組み立てられれば受信完了となる。途中、フラグメントフレームでデータ領域が重複する場合には、重複領域はどちらかのフレームのデータを無視することで一つのデータグラムを作成する。
また、複数のフレームにフラグメント(断片化)されたIPフレームを受信して元のIPフレームを組み立てるIPフラグメント処理技術に関し、装置の簡略化や処理の軽減を図った方法が提案されている(例えば、特許文献1、2参照。)。
特開平5−327771号公報 特開平9−204376号公報
しかしながら、従来、フラグメントされたIPフレームを受信して元のIPフレームを組み立てる際には、図11に示したように一旦全てのフラグメントフレームを受信してから、データグラムの再構成を行うため、受信メモリの使用効率が優れないという問題があった。また、全てのフラグメントフレームを受信した後に、フラグメントフレーム単位でのソートやデータの転送を実行するため、フレームの遅延が生じてしまうという問題があった。
本発明は、上記問題点を解決するためになされたものであり、データグラムの再構成を高速かつ容易に行えるようにするとともに、受信メモリの使用効率を向上させることを目的とする。
本発明のデータ通信装置は、入力された断片化されたフレームのヘッダを基に算出したデータグラムの範囲を示すアドレス情報を入力する入力手段と、上記アドレス情報を記憶する記憶手段と、上記入力手段より入力されるアドレス情報と、上記記憶手段に記憶されているアドレス情報とを比較し、比較結果に応じて上記入力手段より入力されるアドレス情報を上記記憶手段に記憶させる第1の比較手段と、上記記憶手段より抽出したアドレス情報と、断片化されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第2の比較手段と、上記第2の比較手段による比較結果を基に、断片化されたフレームの受信完了判定を行う判定手段とを備えることを特徴とする。
本発明のデータ通信装置は、入力された断片化されたフレームのIP層に係るヘッダから抽出したオフセット及びフレーム長より算出したデータグラムのアドレス情報であるデリミタを入力する入力手段と、上記デリミタを保存する複数のシフトレジスタと、上記シフトレジスタに保存したデリミタを比較し、上記入力したデリミタを上記シフトレジスタに保存する機能を有する第1の比較手段と、断片化されたフレームで構成された元のデータグラムの内、開始アドレス及び終了アドレスをそれぞれ記録するレジスタと、上記シフトレジスタの一部より抽出したデリミタと、上記レジスタに記録されたデータグラムの開始アドレスとを比較する第2の比較手段と、上記シフトレジスタの一部より抽出したデリミタと、上記レジスタに記録されたデータグラムの終了アドレスとを比較する第3の比較手段と、上記第1の比較手段及び上記第2の比較手段の出力から断片化されたフレームの受信終了を判定する判定手段とを備え、元のフレームを構成する値に断片化されたフレームに関するデリミタが至った場合に、フレームの受信終了を通知することを特徴とする。
本発明のデータ通信方法は、入力された断片化されたフレームのヘッダを基に算出したデータグラムの範囲を示すアドレス情報を入力する入力工程と、上記入力工程にて入力されるアドレス情報と、メモリに記憶されているアドレス情報とを比較し、比較結果に応じて上記入力工程にて入力されるアドレス情報を上記メモリに記憶させる第1の比較工程と、上記メモリより抽出したアドレス情報と、断片化されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第2の比較工程と、上記第2の比較工程での比較結果を基に、断片化されたフレームの受信完了判定を行う判定工程とを有することを特徴とする。
本発明のプログラムは、入力された断片化されたフレームのヘッダを基に算出したデータグラムの範囲を示すアドレス情報を入力する入力ステップと、上記入力ステップにて入力されるアドレス情報と、メモリに記憶されているアドレス情報とを比較し、比較結果に応じて上記入力ステップにて入力されるアドレス情報を上記メモリに記憶させる第1の比較ステップと、上記メモリより抽出したアドレス情報と、断片化されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第2の比較ステップと、上記第2の比較ステップでの比較結果を基に、断片化されたフレームの受信完了判定を行う判定ステップとをコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、上記プログラムを記録したことを特徴とする。
本発明によれば、断片化されたフレームを受信する際、受信したフレームが元のフレームのどの範囲に対応するかを規定するアドレス情報を用い、受信したフレームのアドレス情報と、随時記憶更新される既に受信したフレームのアドレス情報とを比較して断片化されたフレームの受信判定を行う。これにより、断片化されたフレームの受信範囲を検知でき、フレームのデータグラムをアドレス情報に従い順次受信メモリに記憶させることができる。したがって、データグラムを格納する受信メモリの構成が簡便になり、データグラムの再構成を高速かつ容易に行うことができる。また、断片化されたフレームの受信に際し、データグラムの保存に要する記憶容量が削減できるので、受信メモリの使用効率を向上させることができる。
以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態による通信装置を適用したIPフラグメント受信検出装置の構成例を示すブロック図である。なお、以下の説明では、IPフレームを単に「フレーム」とも称す。
図1において、101はLSWデリミタ保存レジスタ群であり、降順側LSWデリミタ保存シフトレジスタ102と昇順側LSWデリミタ保存シフトレジスタ103とを有する。同様に、104はMSWデリミタ保存レジスタ群であり、降順側MSWデリミタ保存シフトレジスタ105と昇順側MSWデリミタ保存シフトレジスタ106とを有する。シフトレジスタ102、103、105、106は、それぞれが右シフト動作及び左シフト動作(順方向シフト動作及び逆方向シフト動作)が可能なシフトレジスタである。
107は、受信したフラグメントフレーム(フラグメント(断片化)処理されたIPフレーム)のIPヘッダにおけるオフセット値、フレーム長を基に算出した断片フレームの開始アドレス値と終了アドレス値とを入力するデリミタ入力用レジスタである。108はデリミタ比較部であり、シフトレジスタ102、103、105、106に格納されている値とデリミタ入力用レジスタ105に格納されているアドレス値とを比較し、比較結果に応じて当該アドレス値をシフトレジスタ102、103、105、106に選択的に転送する。
109はスタートポイントレジスタであり、データグラムの開始アドレス値が格納される。110はエンドポイントレジスタであり、データグラムの終了アドレス値が格納される。ここで、レジスタ109、110にそれぞれ格納されるデータグラムの開始アドレス値、終了アドレス値は、フラグメントされたIPフレームを組み立てて得られる元のIPフレームにおけるデータグラムの開始アドレス値、終了アドレス値である。
111はスタートポイント用比較部であり、スタートポイントレジスタ109に格納されている開始アドレス値とシフトレジスタ102に格納されている値とを比較する。112はエンドポイント用比較部であり、エンドポイントレジスタ110に格納されている終了アドレス値とシフトレジスタ105に格納されている値とを比較する。
113は、スタートポイント用比較部111及びエンドポイント用比較部112での比較結果を受けて、データグラムの受信完了を判定する受信完了判定部である。
図2は、図1に示したIPフラグメント受信検出装置を内部に有するデータ受信装置の構成例を示すブロック図である。
図2において、201は第1のIPフラグメント検出部であり、外部装置等のメディア側のMAC(不図示)からのフレームMAC_FRAMEが入力され、入力されたフレームMAC_FRAMEがフラグメントされたフレームであるか否かを検出する。202は第2のIPフラグメント検出部であり、自装置の送信側(不図示)から折り返されたフレーム、いわゆるループバックフレームLBK_FRAMEが入力され、入力されたフレームLBK_FRAMEがフラグメントされたフレームであるか否かを検出する。
203はフレーム交換部であり、IPフラグメント検出部201、202及びIPフラグメント処理装置を通過したIPフレームの3系統のフレーム入力に対して、プロトコル処理部204及び2系統のIPフラグメント処理装置への合わせて3系統のフレーム出力を有する。
プロトコル処理部204は、MAC層以上の上位層のプロトコル処理を行うものであり、各層におけるフレームのヘッダ解析を実行してソケットID及びペイロード領域を、フレームの出力Socket ID、FRAME OUTとしてそれぞれ出力する。プロトコル処理部204は、図2に示したように縦属接続されたMACヘッダ解析部205、IPヘッダ解析部206、及びUDP/TCPヘッダ解析部207により構成される。なお、MACヘッダ解析部205、IPヘッダ解析部206、及びUDP/TCPヘッダ解析部207については、公知のヘッダ解析手段と同様であるので説明は省略する。
208はIP層解析部、209はフラグメントされたフレーム等を一時蓄積するバッファ、210はフラグメント管理部、及び211はヘッダ生成出力制御部であり、これら機能部208〜211によりIPフラグメント処理装置が構成される。また、フラグメント管理部210は、図1に示したIPフラグメント受信検出装置を含み構成される。このIPフラグメント処理装置は、フレーム交換部203から供給されるフレームを蓄積するとともに、フレーム交換部203からフラグメントされたフレームが供給された場合にはフレームのデータグラムの再構成を行う。
図2に示したデータ通信装置において、IPフラグメント検出部201、202に入力されたフレームは、それぞれフラグメントされているか否か検出される。そして、フレームと共にフラグメントの有無を示すフラグメント情報がフレーム交換部203に入力される。
フラグメントされていないフレームは、フレーム交換部203によりプロトコル処理部204に順次入力され、各ヘッダ解析部205〜207にてプロトコル処理が実行される。
一方、フラグメントされたフレームは、単独では不完全なフレームであり、そのままプロトコル処理部204に入力することができない。そのため、フラグメントされたフレームは、フレーム交換部203によりIPフラグメント処理装置に入力され、IPフラグメント処理装置にて完全なフレームに再構築した後、プロトコル処理部204に入力される。
IPフラグメント処理装置の内部では、IP層解析部208において図3に示すIPヘッダ302等に係るIP層の解析が行われる。図3は、IPヘッダ302の詳細なフォーマットを示す図であり、説明の便宜上、MACヘッダ301及びデータグラム303も合わせて図示している。IPヘッダ302は、図3に示すようにVer.〜DistnationIPの各値で構成される。なお、IPヘッダの各フィールドについては、公知であるので説明は省略する。
IP層解析部208での解析を基に、IP層以下のペイロード領域はバッファ209に蓄積される。また、IP層解析部208は、フラグメントされた領域を示すIPヘッダのオフセット(Offset)、フレーム長(IP_Length)の情報を開始アドレス値、終了アドレス値に変換してフラグメント管理部210内のIPフラグメント受信検出装置に供給する。
バッファ209の内部は、図4に示したようなデータ構造になっており、受信開始アドレスをスタートポインタ(Start Pointer)、受信終了アドレスをエンドポインタ(End Pointer)としている。受信開始アドレスは‘0’であり、受信終了アドレスはTCP層又はUDP層のヘッダまで解析すればそれぞれのヘッダに記述されているLength情報から明らかであり、上位のプロトコルまで解析しないのであればIP層のヘッダに記述されているMFフラグ=0となっているIPフラグメントフレームのヘッダにおけるオフセット(Offset)及びフレーム長(IP_Length)から
受信終了アドレス(Datagram Length)=IP_Length + Offset
とすることでデータグラムの全長が判明し、そのアドレスをエンドポインタとすることができる。
このようにペイロード情報のみをバッファリングしてゆき、フラグメント管理部210内のIPフラグメント受信検出装置にて全てのIPフラグメントフレームの受信が完了する(詳細な動作は後述する)と、フラグメント管理部210はヘッダ生成出力制御部211に受信完了を通知する。
ヘッダ生成出力制御部211は、IPフラグメントしない状態でのIPヘッダを作成してペイロードとともにフレーム交換部203に出力する。フレーム交換部203は、再構成されたIPフレームをプロトコル処理部204に出力する。したがって、フラグメントされたIPフレームがデータ受信装置に入力されても、プロトコル処理部204内のMACヘッダ解析部205、IPヘッダ解析部206、UDP/TCPヘッダ解析部207によるそれぞれのヘッダ解析を処理を停止させることなく1パスのみで終了することができる。
次に、上述したようなデータ受信装置におけるIPフラグメント受信検出装置の動作の詳細を図5A〜図5Iを参照して説明する。
シフトレジスタ102、103、105、106は、初期状態において‘null’が書き込まれている(図5A参照)。
次に、受信フレームのIPヘッダより抽出したオフセット値(Offset)及びフレーム長(IP_Length)より、そのフレームのデータグラム中における開始アドレス値、終了アドレス値が判明する。これをデリミタと呼び、{a,b}(ただしa<b)で表す。この情報は一旦デリミタ入力用レジスタ107を介して、デリミタ比較部108に供給され、デリミタ比較部108にてシフトレジスタ102、103、105、106に格納されている値と比較される。
初期状態から初めて入力されたデリミタ{i,j}は、デリミタ比較部108にてシフトレジスタ102、103、105、106に格納されている値と比較される。最初は、初期状態で全てのシフトレジスタ102、103、105、106には“null”が書き込まれているため、デリミタ比較部108出力からシフトレジスタ102には{i}、シフトレジスタ105には{j}が書き込まれる(図5B参照)。
次に、第2のデリミタ{m,n}が入力されると、デリミタ比較部108にて各々のデリミタの比較が実行される。
まず、第1のデリミタと第2のデリミタにおいて重複する領域が存在しない場合、即ち、IPフラグメントフレームの各々の受信領域が離れる場合には、それぞれの領域がシフトレジスタ内に記述されることになる。
これには2つの状態が考えられる。ひとつめは、第1のデリミタの上位アドレス(j)よりも第2のデリミタの下位アドレス(m)が大きい場合には、第2のデリミタは第1のデリミタの降順方向に新たに書き込まれる。図5Cに示す例では、シフトレジスタ103、106の最上位に新たに{m,n}が書き込まれる。
また、第1のデリミタの下位アドレス(i)より第2のデリミタの上位アドレス(n)が小さい場合には、第2のデリミタは第1のデリミタの昇順方向に書き込まれる。図5Dに示す例では、第1のデリミタ{i,j}はシフトレジスタ103、106のレジスタに移動し、新たに書き込まれる第2のデリミタ{m,n}がシフトレジスタ102、105のレジスタに書き込まれる。
次に、第1のデリミタと第2のデリミタのアドレスに重複領域が存在する場合について説明する。この場合には、各々のデリミタは1つに統合される。
これには2通り考えられ、1つは第2のデリミタの下位アドレス{m}が第1のデリミタ{i,j}の間にあり、かつ第2のデリミタの上位アドレス{n}が第1のデリミタの上位アドレス{j}より上位にある場合である。この場合には、重複領域はm〜jでこの領域が削除されて{n}のみがシフトレジスタ105に書き込まれる(図5E参照)。
2つめは第2のデリミタの上位アドレス{n}が第1のデリミタの{i,j}の間にあり、かつ第2のデリミタの下位アドレス{m}が第1のデリミタの下位アドレス{i}より下位にある場合である。1つめの例と同様に、第2のデリミタの下位アドレス{m}がシフトレジスタ102に書き込まれてデリミタの結合が行われる(図5F参照)。
最後に、デリミタの結合において第2のデリミタが第1のデリミタを包含する場合、又は逆に第1のデリミタが第2のデリミタを包含している場合においては、包含するデリミタのみが残り、包含されるデリミタは消去される。図5G、図5Hに示した例がこれらに対応し、図5Gは第2のデリミタが包含する場合、図5Hは第1のデリミタが包合する場合を示している。
このようにして、順次デリミタを与えて入力してゆき、シフトレジスタ102に格納されている値とスタートポイントレジスタ109に格納されている開始ポインタの値が等しくなれば、スタートポイント用比較部111が開始アドレス値からの読み込みが完了したことを示す。また、同様に、シフトレジスタ105に格納されている値とエンドポイントレジスタ110に格納されている終了ポインタの値が等しくなれば、エンドポイント用比較部112が終了アドレス値までの読み込みが終了したことを示す。
スタートポイント用比較部111とエンドポイント用比較部112の双方が終了したことを示せば、受信完了判定部113は、フラグメントされたIPフレームの受信完了を示したと判断し受信終了の旨を出力する。
以上、説明したように第1の実施形態によれば、既に受信したフレームのデータグラムの範囲を示すシフトレジスタ102、103、105、106に格納された値と、受信したフレームのデリミタとを比較し、比較結果に基づいてシフトレジスタ102、103、105、106に格納するデリミタの登録、削除、結合等の操作を行う。そして、シフトレジスタ102、105に格納されている値と、スタートポイントレジスタ109及びエンドポイントレジスタ110に格納されている開始アドレス値及び終了アドレス値とを比較し、比較結果に基づいてフラグメントフレームの受信判定を行う。これにより、フラグメントされたフレームの受信範囲を検出し、フレームのデータグラムをデリミタどおりに順次バッファに書き込むことができ、バッファの構成が簡便になるとともに、データグラムの再構成を高速かつ容易に行うことができる。また、フレームを受信しデータグラムを再構成するのに要する記憶容量が削減できるので、バッファの使用効率を向上させることができる。
(第2の実施形態)
次に、第2の実施形態について説明する。
上述した第1の実施形態では、同一のIP識別子(Identifier)を有するフラグメントフレームにおいて解析されたオフセット、フレーム長を基に算出したデリミタからの受信状況しか解析できなかった。実際のネットワークを介したデータ通信においては、フラグメントされる状況下では様々なIP識別子のフレームが流れる。複数のIP識別子のIPフラグメントフレームを取り扱うために、複数のIPフラグメント受信検出装置を備えることも可能であるが、これらをIP識別子で管理することは困難である。以下に説明する第2の実施形態は、これらの不都合の解消を図ったものである。
図6は、本発明の第2の実施形態による通信装置を適用したIPフラグメント受信検出装置の構成例を示すブロック図である。この図6において、図1に示したブロックに対応するブロックには同一の符号を付している。
図1に示した第1の実施形態と異なる点は、デリミタ入力用レジスタ107にIP識別子(ID)入力用レジスタ405が備えられていることである。これに伴って、各シフトレジスタ102、103、105、106にもID用のレジスタ401、402、403、404が設けられるとともに、各IDにおける開始ポインタ/終了ポインタを格納するスタートポイントレジスタ109、エンドポイントレジスタ110においてもID用のレジスタ412、413がそれぞれ設けられている。
図6に示したIPフラグメント受信検出装置では、デリミタとして{ID,a,b}の3値を用いる。まず、デリミタとして{ID,a,j}が入力されるとシフトレジスタ群に格納されている値の中からIDが一致するものを検索する。合致したものがあれば、デリミタ比較部108にて比較できるようにシフトレジスタをシフトさせ、スタートポイントレジスタ109、エンドポイントレジスタ110の開始ポインタ及び終了ポインタも入力されたIDに対応するのものを登録させておく。
そして、第1の実施形態と同様にして、デリミタの登録、結合、削除等を行い、シフトレジスタ102、105に格納されている値と開始ポインタ、終了ポインタとの比較を行うことで受信判定して出力する。これにより、第1の実施形態と同様の動作で、複数のIDに対応したIPフラグメントフレームの受信判定を行うことができる。
また、第2の実施形態におけるバッファ構造を図7に示す。第2の実施形態では、複数のIDに対応可能とするためにバッファを複数のIDによって分割してそれぞれの領域を予め確保する点が異なるだけで、各IDに対応する領域内の構造は第1の実施形態と同様である。各領域は、受信開始と共にそのID用に一区画確保され、受信済みのIDから順次解放される。
以上、説明したように第2の実施形態によれば、上述した第1の実施形態により得られる効果に加え、複数のIP識別子を有するフラグメントフレームの受信においても、入力するデリミタにIP識別子(ID)を加えることで、複数のIDにわたるフラグメントフレーム受信判定についても対応することが可能となる。
なお、本発明を応用して、セグメント単位で受信されたTCPデータの再構成においてシーケンスナンバーの差分などによりデリミタを算出することで、同様な受信検知装置が考案されることは言うまでもない。
(本発明の他の実施形態)
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、上記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体は本発明を構成する。また、そのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の第1の実施形態におけるIPフラグメント受信検出装置の構成例を示すブロック図である。 図1に示すIPフラグメント受信検出装置を有するデータ受信装置の構成例を示すブロック図である。 IPヘッダのフォーマットを示す図である。 第1の実施形態におけるバッファでのデータグラムの保存形式を示す模式図である。 デリミタ保存シフトレジスタの状態(初期状態)を示す図である。 デリミタ保存シフトレジスタの状態(第1のデリミタ書き込み)を示す図である。 デリミタ保存シフトレジスタの状態(第2のデリミタ書き込み)を示す図である。 デリミタ保存シフトレジスタの状態(第2のデリミタ書き込み)を示す図である。 デリミタ保存シフトレジスタの状態(デリミタ結合)を示す図である。 デリミタ保存シフトレジスタの状態(デリミタ結合)を示す図である。 デリミタ保存シフトレジスタの状態(デリミタ結合)を示す図である。 デリミタ保存シフトレジスタの状態(デリミタ結合)を示す図である。 デリミタ保存シフトレジスタの状態(最終状態)を示す図である。 本発明の第2の実施形態におけるIPフラグメント受信検出装置の構成例を示すブロック図である。 第2の実施形態におけるバッファでのデータグラムの保存形式を示す模式図である。 IPフラグメントが生じるネットワーク構成の一例を示す図である。 IEEE802.3フレームのデータフォーマットを説明するための図である。 IPフラグメントを説明するための図である。 IPフラグメントの他の例を説明するための図である。 従来のフラグメントデータ再構成処理を説明するための図である。
符号の説明
102、103、105、106 シフトレジスタ
107 デリミタ入力用レジスタ
108 デリミタ比較部
109 スタートポイントレジスタ
110 エンドポイントレジスタ
111 スタートポイント用比較部
112 エンドポイント用比較部
113 受信完了判定部

Claims (11)

  1. 入力された断片化されたフレームのヘッダを基に算出したデータグラムの範囲を示すアドレス情報を入力する入力手段と、
    上記アドレス情報を記憶する記憶手段と、
    上記入力手段より入力されるアドレス情報と、上記記憶手段に記憶されているアドレス情報とを比較し、比較結果に応じて上記入力手段より入力されるアドレス情報を上記記憶手段に記憶させる第1の比較手段と、
    上記記憶手段より抽出したアドレス情報と、断片化されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第2の比較手段と、
    上記第2の比較手段による比較結果を基に、断片化されたフレームの受信完了判定を行う判定手段とを備えることを特徴とするデータ通信装置。
  2. 上記入力手段により入力されるアドレス情報は、上記ヘッダにおけるオフセット値及びフレーム長を基に算出されることを特徴とする請求項1記載のデータ通信装置。
  3. 上記記憶手段は、シフトレジスタであり、上記第1の比較手段より供給される複数の上記アドレス情報を記憶可能であることを特徴とする請求項1又は2記載のデータ通信装置。
  4. 上記第1の比較手段は、上記入力手段より入力されるアドレス情報と、上記記憶手段に記憶されているアドレス情報とを比較し、比較の結果に基づいて上記記憶手段に対するアドレス情報の更新、削除、及び結合の何れか1つを行うことを特徴とする請求項1〜3の何れか1項に記載のデータ通信装置。
  5. 上記判定手段は、上記第2の比較手段による比較の結果、上記記憶手段より抽出したアドレス情報と、上記開始アドレス及び終了アドレスとが一致した場合には、断片化されたフレームの受信が完了したと判定し、受信完了を通知することを特徴とする請求項1〜4の何れか1項に記載のデータ通信装置。
  6. 上記入力手段は、上記アドレス情報とともに受信したフレームに係るIP識別子を入力することを特徴とする請求項1〜5の何れか1項に記載のデータ通信装置。
  7. 入力された断片化されたフレームのIP層に係るヘッダから抽出したオフセット及びフレーム長より算出したデータグラムのアドレス情報であるデリミタを入力する入力手段と、
    上記デリミタを保存する複数のシフトレジスタと、
    上記シフトレジスタに保存したデリミタを比較し、上記入力したデリミタを上記シフトレジスタに保存する機能を有する第1の比較手段と、
    断片化されたフレームで構成された元のデータグラムの内、開始アドレス及び終了アドレスをそれぞれ記録するレジスタと、
    上記シフトレジスタの一部より抽出したデリミタと、上記レジスタに記録されたデータグラムの開始アドレスとを比較する第2の比較手段と、
    上記シフトレジスタの一部より抽出したデリミタと、上記レジスタに記録されたデータグラムの終了アドレスとを比較する第3の比較手段と、
    上記第1の比較手段及び上記第2の比較手段の出力から断片化されたフレームの受信終了を判定する判定手段とを備え、
    元のフレームを構成する値に断片化されたフレームに関するデリミタが至った場合に、フレームの受信終了を通知することを特徴とするデータ通信装置。
  8. 上記入力するデリミタにIP識別子を加え、上記シフトレジスタに保存するデリミタ及び上記レジスタに記録する開始アドレス及び終了アドレスを上記IP識別子について管理することを特徴とする請求項7記載のデータ通信装置。
  9. 入力された断片化されたフレームのヘッダを基に算出したデータグラムの範囲を示すアドレス情報を入力する入力工程と、
    上記入力工程にて入力されるアドレス情報と、メモリに記憶されているアドレス情報とを比較し、比較結果に応じて上記入力工程にて入力されるアドレス情報を上記メモリに記憶させる第1の比較工程と、
    上記メモリより抽出したアドレス情報と、断片化されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第2の比較工程と、
    上記第2の比較工程での比較結果を基に、断片化されたフレームの受信完了判定を行う判定工程とを有することを特徴とするデータ通信方法。
  10. 入力された断片化されたフレームのヘッダを基に算出したデータグラムの範囲を示すアドレス情報を入力する入力ステップと、
    上記入力ステップにて入力されるアドレス情報と、メモリに記憶されているアドレス情報とを比較し、比較結果に応じて上記入力ステップにて入力されるアドレス情報を上記メモリに記憶させる第1の比較ステップと、
    上記メモリより抽出したアドレス情報と、断片化されたフレームを再構成して得られるデータグラムの開始アドレス及び終了アドレスとを比較する第2の比較ステップと、
    上記第2の比較ステップでの比較結果を基に、断片化されたフレームの受信完了判定を行う判定ステップとをコンピュータに実行させるためのプログラム。
  11. 請求項10記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
JP2004264642A 2004-09-10 2004-09-10 データ通信装置及びデータ通信方法 Expired - Fee Related JP4401910B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004264642A JP4401910B2 (ja) 2004-09-10 2004-09-10 データ通信装置及びデータ通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004264642A JP4401910B2 (ja) 2004-09-10 2004-09-10 データ通信装置及びデータ通信方法

Publications (3)

Publication Number Publication Date
JP2006081030A JP2006081030A (ja) 2006-03-23
JP2006081030A5 JP2006081030A5 (ja) 2007-10-25
JP4401910B2 true JP4401910B2 (ja) 2010-01-20

Family

ID=36160093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004264642A Expired - Fee Related JP4401910B2 (ja) 2004-09-10 2004-09-10 データ通信装置及びデータ通信方法

Country Status (1)

Country Link
JP (1) JP4401910B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4724634B2 (ja) * 2006-09-29 2011-07-13 キヤノン株式会社 データ受信装置及びデータ受信方法
JP5643609B2 (ja) * 2009-12-24 2014-12-17 キヤノン株式会社 通信装置、その処理方法及びプログラム
KR101587421B1 (ko) * 2014-09-22 2016-01-25 한국전기연구원 온더플라이 방식의 데이터 전송 시스템, 그의 데이터 전송률을 최적화하기 위한 방법 및 슬레이브 장치
JP7403957B2 (ja) * 2019-03-06 2023-12-25 キヤノン株式会社 通信装置、通信方法及びプログラム

Also Published As

Publication number Publication date
JP2006081030A (ja) 2006-03-23

Similar Documents

Publication Publication Date Title
RU2684192C1 (ru) Способ и устройство для передачи потока службы в гибком ethernet
US7903689B2 (en) Method and system for packet reassembly based on a reassembly header
US7773599B1 (en) Packet fragment handling
US8085780B1 (en) Optimized buffer loading for packet header processing
US11271856B2 (en) Concept for segmenting an application buffer into data packets
WO2014135038A1 (zh) 基于pcie总线的报文传输方法与装置
JP5039292B2 (ja) ネットワークアダプタ、通信システムおよび通信方法
US11936759B2 (en) Systems and methods for compressing a SID list
US9961147B2 (en) Communication apparatus, information processor, communication method, and computer-readable storage medium
US20150264142A1 (en) Communication apparatus, information processor, communication method, and computer-readable storage medium
JP4649315B2 (ja) 通信装置及び通信方法
CN106789446B (zh) 一种节点对等的集群分布式测试系统和方法
JP4401910B2 (ja) データ通信装置及びデータ通信方法
JP4921142B2 (ja) 通信装置
US7245615B1 (en) Multi-link protocol reassembly assist in a parallel 1-D systolic array system
US7738471B2 (en) High speed packet processing in a wireless network
JP2006332927A (ja) Tcp/ip受信処理回路及びそれを具備する半導体集積回路
JP4040045B2 (ja) データ転送装置
US7281052B2 (en) Data tracing identifiers
EP2958287B1 (en) A method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
JP2022139706A (ja) 通信装置、プロセッサ、通信方法およびプログラム
JP5047099B2 (ja) データ通信システム、データ通信方法およびデータ通信システムを構成する情報処理装置
US20050044261A1 (en) Method of operating a network switch
US7720821B1 (en) Method of and apparatus for writing and reading time sensitive data within a storage device
JP2006081029A (ja) データ通信装置及びデータ通信方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070910

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091001

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121106

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131106

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees