(57)【要約】【課題】ＴＣＰパケットを受信する場合のＣＰＵの処理負担を軽減することができるネットワーク装置を提供することを目的とする。【解決手段】ＴＣＰパケットの受信処理を行う制御部１と、制御部１とは別に設けられ、ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、受信したＴＣＰセグメントに含まれるヘッダを解析して、少なくともＴＣＰセグメントの順番を示す情報を含む解析結果を求めるＴＣＰセグメント処理部２と、を備え、制御部１は、ＴＣＰセグメント処理部２が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行う。【選択図】図８
2011249922.tif 000002
【特許請求の範囲】
【請求項１】
ＴＣＰパケットの受信処理を行う制御部と、
前記制御部とは別に設けられ、前記ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、受信した前記ＴＣＰセグメントに含まれるヘッダを解析して、少なくとも前記ＴＣＰセグメントの順番を示す情報を含む解析結果を求めるＴＣＰセグメント処理部と、を備え、
前記制御部は、前記ＴＣＰセグメント処理部が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行う
ことを特徴とするネットワーク装置。
【請求項２】
ＴＣＰセグメント処理部は、求めた解析結果と、ＴＣＰセグメントを格納した場所を示す格納アドレスとを含むＴＣＰセグメント情報を、記憶部に書き込み、
制御部は、前記ＴＣＰセグメント情報に基づいて、ＴＣＰセグメントを連結して連結パケットを生成する
請求項１記載のネットワーク装置。
【請求項３】
ＴＣＰセグメント処理部は、ＴＣＰセグメントの順番を示す情報に基づいて、ＴＣＰセグメント情報を記憶部に書き込む
請求項２記載のネットワーク装置。
【請求項４】
ＴＣＰセグメント処理部は、所定期間内ごとにＴＣＰセグメント情報を記憶部に書き込む
請求項２又は請求項３記載のネットワーク装置。
【請求項５】
ＴＣＰセグメント処理部は、受信したＴＣＰセグメントが連続しているか否かを判定し、
制御部は、前記ＴＣＰセグメント処理部の判定結果に基づいて、連続しているＴＣＰセグメントを連結して連結パケットを生成する
請求項１から請求項４のうちのいずれか１項に記載のネットワーク装置。
【請求項６】
ＴＣＰパケットの受信処理を行う制御部と、
前記制御部とは別に設けられ、前記ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、受信した前記ＴＣＰセグメントに含まれるヘッダを解析して、少なくとも前記ＴＣＰセグメントの順番を示す情報を含む解析結果を求めるＴＣＰセグメント処理部と、を備え、
前記制御部は、前記ＴＣＰセグメント処理部が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行う
ことを特徴とするＴＣＰパケット受信装置。
【請求項７】
ＴＣＰセグメント処理部は、求めた解析結果と、ＴＣＰセグメントを格納した場所を示す格納アドレスとを含むＴＣＰセグメント情報を、記憶部に書き込み、
制御部は、前記ＴＣＰセグメント情報に基づいて、ＴＣＰセグメントを連結して連結パケットを生成する
請求項６記載のＴＣＰパケット受信装置。
【請求項８】
ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、制御部とは別に設けられた処理部により受信した前記ＴＣＰセグメントに含まれるヘッダを解析して、少なくとも前記ＴＣＰセグメントの順番を示す情報を含む解析結果を求め、
求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行う
ことを特徴とするＴＣＰパケット受信方法。
【請求項９】
求めた解析結果と、ＴＣＰセグメントを格納した場所を示す格納アドレスとを含むＴＣＰセグメント情報を、記憶部に書き込み、
前記ＴＣＰセグメント情報に基づいて、ＴＣＰセグメントを連結して連結パケットを生成する
請求項８記載のＴＣＰパケット受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＣＰパケットを受信するネットワーク装置、ＴＣＰパケット受信装置及びＴＣＰパケット受信方法に関する。
【背景技術】
【０００２】
近年、ホームゲートウェイ機器などのネットワーク装置は、ギガｂｐｓの転送能力を有し、且つ、さまざまなアプリケーションを搭載するようになっている。
【０００３】
関連する技術として、例えば、特許文献１には、複数のプロセッサが搭載されたコンピュータ等において、複数の上位プロセスが、相互に影響し合うことなく、データの送受信をすることを可能とするＴＯＥ（ＴＣＰ  Ｏｆｆｌｏａｄ  Ｅｎｇｉｎｅ）が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６０５４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、ギガｂｐｓの転送能力を有し、且つ、さまざまなアプリケーションを搭載するネットワーク装置（例えば、ＴＣＰ終端装置）では、これらの機能を制御・処理しているＣＰＵの負荷が増大している。
【０００６】
その中でも、セグメント化されたＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）パケットの処理については、高い頻度でメモリにアクセスする必要があるなど、ＣＰＵにとって大きな負荷となる。
【０００７】
具体例について、図７を用いて説明する。図７は、一般的なＴＣＰ終端装置の構成例を示すブロック図である。図７のＴＣＰ終端装置１０は、セグメント化されたＴＣＰパケットを受信すると、受信したＴＣＰパケットをメモリ１４の受信パケット用メモリ空間１５に格納する。その後、ＣＰＵ１６は、格納したデータのＬａｙｅｒ３（ネットワーク層），Ｌａｙｅｒ４（トランスポート層）における処理を実行し、さらに上位のＬａｙｅｒに渡す。
【０００８】
ここで、セグメントで分割されたパケットについて、ＣＰＵ１６は、パケット単位で処理をしなくてはならない。そのため、頻繁にメモリ１４にアクセスしなければならず、１パケットずつ処理を行うことは、ＣＰＵ１６にとって非常に負担となっている。
【０００９】
この問題を解決するために、処理能力の高いＣＰＵに置き換えることでソフトウェアによる処理を高速に行うことが考えられる。
【００１０】
しかし、高速な処理を実行可能なＣＰＵが高価であり、また、ＣＰＵにあったソフトウェアを開発することは工数の観点でも非常に負担になることが考えられる。
【００１１】
また、特許文献１に記載された方法では、複数の上位プロセスが、相互に影響し合うことを回避することができるものの、セグメント化されたパケットごとに処理を実行することによるＣＰＵの負担を軽減することはできない。
【００１２】
そこで、本発明は、ＴＣＰパケットを受信する場合のＣＰＵの処理負担を軽減することができるネットワーク装置、ＴＣＰパケット受信装置及びＴＣＰパケット受信方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明によるネットワーク装置は、ＴＣＰパケットの受信処理を行う制御部と、制御部とは別に設けられ、ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、受信したＴＣＰセグメントに含まれるヘッダを解析して、少なくともＴＣＰセグメントの順番を示す情報を含む解析結果を求めるＴＣＰセグメント処理部と、を備え、制御部は、ＴＣＰセグメント処理部が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行うことを特徴とする。
【００１４】
本発明によるＴＣＰパケット受信装置は、ＴＣＰパケットの受信処理を行う制御部と、制御部とは別に設けられ、ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、受信したＴＣＰセグメントに含まれるヘッダを解析して、少なくともＴＣＰセグメントの順番を示す情報を含む解析結果を求めるＴＣＰセグメント処理部と、を備え、制御部は、ＴＣＰセグメント処理部が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行うことを特徴とする。
【００１５】
本発明によるＴＣＰパケット受信方法は、ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、制御部とは別に設けられた処理部により受信したＴＣＰセグメントに含まれるヘッダを解析して、少なくともＴＣＰセグメントの順番を示す情報を含む解析結果を求め、求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行うことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ＴＣＰパケットを受信する場合のＣＰＵの処理負担を軽減することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明によるＴＣＰパケット受信方法を適用したＴＣＰ終端装置の構成例を示すブロック図である。
【図２】ＴＣＰ終端装置の動作例を示す説明図である。
【図３】送信側および受信側の動作例を示すシーケンス図である。
【図４】ＴＣＰ終端装置が実行する処理例を示す流れ図である。
【図５】ディスクリプタ格納情報の一例を示す説明図である。
【図６】ディスクリプタ格納情報の一例を示す説明図である。
【図７】一般的なＴＣＰ終端装置の構成例を示すブロック図である。
【図８】ネットワーク装置の最小の構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
実施形態１．
以下、本発明の第１の実施形態について図面を参照して説明する。図１は、本発明によるＴＣＰパケット受信方法を適用したＴＣＰ終端装置の構成例を示すブロック図である。図１に示すように、ＴＣＰ終端装置２０は、ＬＡＮやＷＡＮ等の通信ネットワークに接続されている。
【００１９】
ＴＣＰ終端装置２０は、メモリ２４と、ＣＰＵ２６と、ＴＣＰセグメント処理部２７とを含む。また、メモリ２４は、受信したＴＣＰパケットを格納するための受信パケット用メモリ空間２５と、ＴＣＰパケットの結合に用いるＴＣＰセグメント用メモリ空間２８とを有する。ＴＣＰ終端装置２０は、具体的には、ホームゲートウェイ装置等のネットワーク装置によって実現される。
【００２０】
ＴＣＰセグメント処理部２７は、具体的には、ＣＰＵ２６とは別に設けられたマイクロプロセッサなどの小規模ハードウェアによって実現される。ＴＣＰセグメント処理部２７が実行する処理や備えている機能等については後述する。
【００２１】
図２は、ＴＣＰ終端装置の動作例を示す説明図である。図２に示す例は、ＬＡＮ側から連続したデータを受信した際のオフロード処理について示している。本実施形態では、オフロード処理とは、１つのＣＰＵのみを用いるのではなく、ＣＰＵとは別に設けられたプロセッサも用いて受信処理を行うことを意味する。
【００２２】
図２に示すＴＣＰ終端装置２０は、図１のＴＣＰ終端装置２０と同一の構成要素を含む。図２に示す例では、ＴＣＰ終端装置２０がＬＡＮ側から３つのＴＣＰセグメント（３１，３２，３３）に分割された状態でパケットを受信した場合について説明する。このように、ＴＣＰパケットは、複数のセグメントに分割された状態で送受信される。以下、分割された各セグメントのことをＴＣＰセグメントともいう。
【００２３】
ここで、ＴＣＰセグメントには、ヘッダと呼ばれるＲＦＣ７９３で定められたフォーマットが存在する。本実施形態では、このヘッダに含まれるシーケンス番号を用いる。シーケンス番号には、送信側のデータの順番が含まれている。また、同一セッション中においては、シーケンス番号にデータのオクテット数を追加した値が次のシーケンス番号となる。
【００２４】
また、実際には、ＴＣＰ終端装置２０がシーケンス番号の順にＴＣＰセグメントを受信するとは限らない。例えば、ＴＣＰセグメントごとに受信経路が異なり、受信される順番が前後することがある。
【００２５】
本実施形態では、ＴＣＰセグメント３１，３２，３３は、シーケンス番号が１００番，２００番，３００番と連続しているものとする。また、ＴＣＰ終端装置２０は、ＴＣＰセグメント３１，３３，３２の順に受信するものとする。
【００２６】
また、本実施形態では、受信側（ＴＣＰ終端装置２０）のウインドウサイズ（受信バッファ）が十分に（上記のＴＣＰセグメント３１等よりも）大きいと仮定する。図３にウインドウサイズが大きい場合の送信側および受信側の動作例を示す。
【００２７】
図３に示すように、ウインドウサイズが十分に大きいと、受信側（ＴＣＰ終端装置２０）は、送信側が送信したＴＣＰセグメントごとにＡＣＫ（ＡＣＫｎｏｗｌｅｄｇｅｍｅｎｔ）を返信する必要がなく、複数のＴＣＰセグメントを受信してからＡＣＫを送信側に返信することが出来る。本実施形態では、ＴＣＰセグメント３１、３２、３３を合わせたデータサイズよりウインドウサイズが十分に大きいもとのとする。
【００２８】
図２に示すメモリ２４は、ＴＣＰパケットを格納できるようにＴＣＰ終端装置２０に搭載されている。また、ＣＰＵ２６は、メモリ２４にアクセス可能である。
【００２９】
ＴＣＰセグメント処理部２７は、ＣＰＵ２６と、メモリ２４と接続されている。ＴＣＰセグメント処理部２７は、受信したＴＣＰパケットを解析し、解析情報を格納するため、メモリ２４のＴＣＰセグメント用メモリ空間２８にアクセス可能である。また、ＴＣＰセグメント処理部２７は、ＴＣＰパケットを格納するアドレス情報を取得するため、メモリ２４の受信パケット用メモリ空間２５にアクセス可能である。
【００３０】
ＴＣＰセグメント処理部２７は、タイマ機能を有し、最初に受信したＴＣＰパケットの処理の開始に合わせて（すなわち、最初のＴＣＰセグメントを受信したタイミングで）タイマを起動する。
【００３１】
次に、ＴＣＰ終端装置の動作について説明する。図４は、ＴＣＰ終端装置が実行する処理例を示す流れ図である。
【００３２】
図２に示す例のように、ＬＡＮ側からセグメント化されたＴＣＰパケットの受信を開始すると（ステップＳ１）、ＴＣＰセグメント処理部２７は、タイマを起動して最初のＴＣＰセグメントを受信してからの経過時間の計測を開始する（ステップＳ２）。
【００３３】
次いで、ＴＣＰセグメント処理部２７は、ＴＣＰセグメント３１のヘッダ情報に含まれるシーケンス番号を確認する（ステップＳ３）。
【００３４】
次いで、ＴＣＰセグメント処理部２７は、ＴＣＰセグメント３１の次のＴＣＰセグメントのシーケンス番号を算出する（ステップＳ４）。
【００３５】
具体的には、ＴＣＰセグメント処理部２７は、受信したＴＣＰパケット内のＲＦＣ７９１で規格化されているＩＰヘッダの情報に基づいて、ＴＣＰパケットのサイズを特定することができる。そのため、ＴＣＰセグメント処理部２７は、ＴＣＰのデータ長を特定でき、次のシーケンス番号を算出することが出来る。
【００３６】
本実施形態では、ＴＣＰセグメント３１のシーケンス番号が１００であることと、データ長とに基づいて、ＴＣＰセグメント処理部２７は、次のシーケンス番号を２００と算出する。
【００３７】
次いで、ＴＣＰセグメント処理部２７は、ＴＣＰセグメント３１を、受信パケット用メモリ空間２５に格納する（ステップＳ５）。本実施形態では、ＴＣＰセグメント処理部２７は、受信パケット用メモリ空間２５のアドレス１０００番地にＴＣＰセグメント３１を格納する。
【００３８】
このとき、ＴＣＰセグメント処理部２７は、ＴＣＰセグメント３１を格納したアドレス情報を特定し、ヘッダ情報で確認したシーケンス番号および算出した次のシーケンス番号とともに一時的に保持する（ステップＳ６）。例えば、ＴＣＰセグメント処理部２７は、一時記憶バッファを備えており、算出したこれらの情報を一時記憶バッファに記憶する。以下、ＴＣＰセグメント処理部２７が一時的に保持するこれらの情報をＴＣＰセグメント情報ともいう。
【００３９】
次いで、ＴＣＰセグメント処理部２７は、タイマ機能を用いて、タイマ開始時から所定期間を経過したか否かを判断する（ステップＳ７）。経過していないと判断した場合には（ステップＳ７のＮ）、ＴＣＰセグメント処理部２７は、処理をステップＳ３に移行し、次のパケットについてステップＳ３以降の処理を実行する。
【００４０】
ここでは、ステップＳ７において所定期間を経過していないと判断するものとし、ＴＣＰセグメント処理部２７は、ＴＣＰ終端装置２０がＴＣＰセグメント３１に続いて受信したＴＣＰセグメント３３について、ステップＳ３からＳ６の処理を実行する。なお、ＴＣＰセグメント処理部２７は、ＴＣＰセグメント３３を受信パケット用メモリ空間２５の２０００番に格納し、そのアドレス情報等を含むＴＣＰセグメント情報を保持しているものとする。
【００４１】
また、ＴＣＰセグメント処理部２７は、ＴＣＰ終端装置２０がＴＣＰセグメント３３に続いて受信したＴＣＰセグメント３２についても同様に、ステップＳ３からＳ６の処理を実行する。なお、ＴＣＰセグメント処理部２７は、ＴＣＰセグメント３３を受信パケット用メモリ空間２５の３０００番に格納し、そのアドレス情報等を含むＴＣＰセグメント情報を保持しているものとする。
【００４２】
ここで、タイマ開始時から所定時間が経過したと判断すると（ステップＳ７のＹ）、ＴＣＰセグメント処理部２７は、これまでに一時的に保持しているＴＣＰセグメント情報に基づいて、ＴＣＰセグメント用メモリ空間２８にディスクリプタの情報を書き込む（ステップＳ８）。このように、本実施形態では、タイマ機能を用いて、所定期間内に受信したセグメント化されたデータ毎に以降の処理を実行する。そのため、継続してデータを受信できない場合に処理が止まってしまうことを防ぐことができる。
【００４３】
ＴＣＰセグメント用メモリ空間２８に書き込む形式を図５に示す。図５は、ディスクリプタ格納情報の一例を示す説明図である。
【００４４】
最初に、ＴＣＰセグメント処理部２７は、一時的に保持しているＴＣＰセグメント情報から、パケット数（セグメント数）と、最初のシーケンス番号（すなわち、最小のシーケンス番号）とを特定する。
【００４５】
次いで、ＴＣＰセグメント処理部２７は、最初の情報として、ディスクリプタの情報として書き込むＴＣＰパケットの最初のシーケンス番号とＴＣＰパケットの数とを格納させる。本実施形態では、ＴＣＰセグメント処理部２７は、最初のシーケンス番号を１００とし、パケット数を３としたディスクリプタの情報をＴＣＰセグメント用メモリ空間２８に格納させる。
【００４６】
次いで、ＴＣＰセグメント処理部２７は、次の情報として、最初のシーケンス番号、最初のシーケンス番号と次に伝えるシーケンス番号とが連続しているか否かを示す情報およびＴＣＰセグメントを格納したメモリ空間の格納アドレスを格納させる。
【００４７】
具体的には、ＴＣＰセグメント処理部２７は、ＴＣＰセグメント情報に含まれるシーケンス番号のうち、最初のシーケンス番号の次に小さいシーケンス番号を、次に伝えるシーケンス番号として特定する。
【００４８】
また、シーケンス番号が連続しているか否かについては、例えば、ＴＣＰセグメント処理部２７は、前後のシーケンス番号と、前のパケットのデータ長とに基づいて判断する。
【００４９】
本実施形態では、ＴＣＰセグメント処理部２７は、最初のシーケンス番号が１００であり、次のシーケンス番号が２００であることと、ＴＣＰセグメント３１のデータ長とから、連続していると判断する。そして、ＴＣＰセグメント処理部２７は、連続しているか否かを示す情報として、連続を示す”１“をＴＣＰセグメント用メモリ空間２８に格納させる。
【００５０】
また、ＴＣＰセグメント処理部２７は、シーケンス番号が１００のＴＣＰパケット３１の格納アドレスを１０００としてＴＣＰセグメント用メモリ空間２８に格納させる。
【００５１】
次いで、ＴＣＰセグメント処理部２７は、シーケンス番号順にＴＣＰセグメント情報の並び替えを行い、次の情報として、シーケンス番号が２００のＴＣＰセグメント情報をＴＣＰセグメント用メモリ空間２８に格納させる。
【００５２】
ここでは、ＴＣＰセグメント処理部２７は、次のシーケンス番号が３００であることと、ＴＣＰセグメント３２のデータ長とから、連続していると判断し、連続しているか否かを示す情報として、連続を示す”１“をＴＣＰセグメント用メモリ空間２８に格納させる。また、ＴＣＰセグメント処理部２７は、シーケンス番号が２００のＴＣＰセグメント３３の格納アドレスを３０００としてＴＣＰセグメント用メモリ空間２８に格納させる。
【００５３】
なお、ＴＣＰセグメント情報の並び替えについては、パケット数（セグメント数）と、最初（最小）のシーケンス番号とを特定する際に実行してもよい。
【００５４】
最後に、ＴＣＰセグメント処理部２７は、シーケンス番号３００について、その次にはデータが続かないため連続しないと判断し、連続しているか否かを示す情報として非連続を示す”０“と、格納アドレス２０００とを合わせてＴＣＰセグメント用メモリ空間２８に格納させる。
【００５５】
以上のＴＣＰセグメント処理部２７が実行する処理によって、メモリ２４は、ＴＣＰセグメント用メモリ空間２８にディスクリプタの情報を格納する。
【００５６】
その後、ＣＰＵ２６は、ディスクリプタの情報に基づいて、ＴＣＰセグメント３１，３２，３３を結合した１パケットと判断し、１パケット分のＬａｙｅｒ３，Ｌａｙｅｒ４におけるソフトウェア処理を実行する（ステップＳ９）。
【００５７】
具体的には、ＣＰＵ２６は、ディスクリプタの情報に基づいて、受信パケット用メモリ空間２５からＴＣＰセグメントを抽出し、抽出したＴＣＰセグメントを連結して１つのパケットとする。すなわち、ＣＰＵ２６は、分割された状態のＴＣＰセグメントを連結した１つの連結パケットを生成する。
【００５８】
その後、ＣＰＵ２６は、結合した１つの連結パケット分のＬａｙｅｒ３，Ｌａｙｅｒ４におけるソフトウェア処理を実行する。すなわち、セグメントごとのソフトウェア処理を複数回実行する必要がなくなり、連結したパケットについて、１回のみソフトウェア処理を実行すればよい。
【００５９】
以上のように、本実施形態では、ＴＣＰセグメント処理部２７は、セグメント化されたＴＣＰパケットを受信した際に、ＴＣＰセグメントのヘッダを解析し、連結した情報としてＴＣＰセグメント用メモリ空間に格納する。そして、ＣＰＵ２６は、格納した情報に基づいて、Ｌａｙｅｒ３及びＬａｙｅｒ４の処理を１パケット分行う。そのため、セグメント化されたパケットごとにメモリにアクセスする必要がなくなり、ＣＰＵの負荷を軽減することが出来る。
【００６０】
また、本実施形態では、ＴＣＰセグメント処理部２７は、タイマ機能を用いて、任意の時間単位でセグメント化された情報をＣＰＵに伝える。そのため、継続してデータを受信できない場合に処理が止まってしまうことを防ぐことができる。
【００６１】
実施形態２．
本発明の第２の実施形態として、ＴＣＰセグメント処理部のタイマ機能によって定める所定期間内に連続したデータを受信していない場合の処理について説明する。
【００６２】
本実施形態におけるＴＣＰ終端装置は、図２に示す第１の実施形態のＴＣＰ終端装置２０と同一の構成要素を含む。ただし、本実施形態では、ＴＣＰセグメント３１、３２、３３のシーケンス番号が１００、２００、５００であり、ＴＣＰセグメント３３が連続していないものとする。
【００６３】
本実施形態では、ステップＳ８において、ＴＣＰセグメント処理部２７は、ＴＣＰセグメント用メモリ空間２８に、図６に示すようなディスクリプタの情報を格納する。
【００６４】
具体的には、シーケンス番号２００を含む情報において、次のシーケンス番号５００と連続でないと判断し、連続しているか否かを示す情報として、非連続を示す“０”を設定している。
【００６５】
ステップＳ９では、このディスクリプタの情報に基づいて、ＣＰＵ２６は、連続性を判断し、連続部分であるシーケンス番号１００，２００を連続として１パケット分の処理を実行し、シーケンス番号５００については別に処理を実行する。すなわち、ＣＰＵ２６は、Ｌａｙｅｒ３及びＬａｙｅｒ４におけるソフトウェア処理を別に実行する。
【００６６】
以上のように、本実施形態では、ＣＰＵ２６は、ディスクリプタの情報に基づいて連続性を判断し、連続している部分について１パケット分の処理を実行する。そのため、連続するパケットを所定期間内に受信していない場合や、パケットが欠落している場合等にも対応することができる。
【００６７】
以上のことから、本発明は、以下のような特徴を備えているといえる。
【００６８】
本発明は、ネットワークプロトコルとして多く使われているＴＣＰパケットの終端装置において、ＴＣＰセグメントの受信処理をおこなう場合に、ＣＰＵへの処理負荷を軽減することが出来る。
【００６９】
図１に一般的なＴＣＰ終端装置の構成を示し、図２に本発明によるＴＣＰ終端装置の構成を示す。図１に示す一般的なＴＣＰ終端装置１０では、メモリ１４とＣＰＵ１６とを含み、ＷＡＮ又はＬＡＮを介して受信したＴＣＰパケットを、一旦メモリ１４内の受信パケット用メモリ空間１５に保存し、ＣＰＵ１６がＬａｙｅｒ３、Ｌａｙｅｒ４の処理を行う。
【００７０】
これに対して、図２に示す本発明によるＴＣＰ終端装置２０は、図１に示すＴＣＰ終端装置１０の構成要素に加え、ＴＣＰセグメント処理部２７を含む。また、ＴＣＰ終端装置２０が搭載するメモリ２４は、ＴＣＰセグメントの結合に用いるＴＣＰセグメント用メモリ空間２８を有する。
【００７１】
ＴＣＰ終端装置２０では、受信したＴＣＰセグメントを受信パケット用メモリ空間２５に格納する際に、ＴＣＰセグメント処理部２７は、ＴＣＰセグメントに含まれる情報を解析し、ＴＣＰの順番などの情報をＴＣＰセグメント用メモリ空間２８のディスクリプタに書き込む。
【００７２】
そして、書き込んだ情報はセグメントを結合した形でＣＰＵに伝えられる。そのため、ＣＰＵのソフトウェア処理としては１パケット分のＬａｙｅｒ３、Ｌａｙｅｒ４の処理を実行するだけとなる。
【００７３】
次に、本発明によるネットワーク装置の最小構成について説明する。図８は、ネットワーク装置の最小の構成例を示すブロック図である。図８に示すように、ネットワーク装置は、最小の構成要素として、ＴＣＰパケットの受信処理を行う制御部１と、制御部１とは別に設けられたＴＣＰセグメント処理部２とを備えている。
【００７４】
図８に示す最小構成のネットワーク装置では、ＴＣＰセグメント処理部２は、ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、受信したＴＣＰセグメントに含まれるヘッダを解析して、少なくともＴＣＰセグメントの順番を示す情報を含む解析結果を求める。次いで、制御部１は、ＴＣＰセグメント処理部２が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行う。
【００７５】
従って、最小構成のネットワーク装置によれば、ＴＣＰセグメントを連結して１パケットとすることで、セグメント化されたＴＣＰパケットごとにメモリにアクセスする必要がなくなり、ＣＰＵの負荷を軽減することが出来る。
【００７６】
なお、本実施形態では、以下の（１）〜（５）に示すようなネットワーク装置の特徴的構成が示されている。
【００７７】
（１）ネットワーク装置は、ＴＣＰパケットの受信処理を行う制御部（例えば、ＣＰＵ２６によって実現される）と、制御部とは別に設けられ、ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメント（例えば、ＴＣＰセグメント３１など）を受信すると、受信したＴＣＰセグメントに含まれるヘッダを解析して、少なくともＴＣＰセグメントの順番を示す情報（例えば、シーケンス番号）を含む解析結果を求めるＴＣＰセグメント処理部（例えば、ＴＣＰセグメント処理部２によって実現される）と、を備え、制御部は、ＴＣＰセグメント処理部が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行うことを特徴とする。
【００７８】
（２）ネットワーク装置において、ＴＣＰセグメント処理部は、求めた解析結果と、ＴＣＰセグメントを格納した場所を示す格納アドレスとを含むＴＣＰセグメント情報を、記憶部（例えば、ＴＣＰセグメント用メモリ空間２８）に書き込み、制御部は、ＴＣＰセグメント情報に基づいて、ＴＣＰセグメントを連結して連結パケットを生成するように構成されていてもよい。
【００７９】
（３）ネットワーク装置において、ＴＣＰセグメント処理部は、ＴＣＰセグメントの順番を示す情報に基づいて、ＴＣＰセグメント情報を記憶部に書き込むように構成されていてもよい。
【００８０】
（４）ネットワーク装置において、ＴＣＰセグメント処理部は、所定期間内ごとにＴＣＰセグメント情報を記憶部に書き込むように構成されていてもよい。
【００８１】
（５）ネットワーク装置において、ＴＣＰセグメント処理部は、受信したＴＣＰセグメントが連続しているか否かを判定し、制御部は、前記ＴＣＰセグメント処理部の判定結果（例えば、ディスクリプタの連続性を示す情報）に基づいて、連続しているＴＣＰセグメントを連結して連結パケットを生成するように構成されていてもよい。
【００８２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００８３】
（付記１）ＴＣＰパケットの受信処理を行う制御部と、前記制御部とは別に設けられ、前記ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、受信した前記ＴＣＰセグメントに含まれるヘッダを解析して、少なくとも前記ＴＣＰセグメントの順番を示す情報を含む解析結果を求めるＴＣＰセグメント処理部と、を備え、前記制御部は、前記ＴＣＰセグメント処理部が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行うことを特徴とするネットワーク装置。
【００８４】
（付記２）ＴＣＰセグメント処理部は、求めた解析結果と、ＴＣＰセグメントを格納した場所を示す格納アドレスとを含むＴＣＰセグメント情報を、記憶部に書き込み、制御部は、前記ＴＣＰセグメント情報に基づいて、ＴＣＰセグメントを連結して連結パケットを生成する請求項１記載のネットワーク装置。
【００８５】
（付記３）ＴＣＰセグメント処理部は、ＴＣＰセグメントの順番を示す情報に基づいて、ＴＣＰセグメント情報を記憶部に書き込む請求項２記載のネットワーク装置。
【００８６】
（付記４）ＴＣＰセグメント処理部は、所定期間内ごとにＴＣＰセグメント情報を記憶部に書き込む請求項２又は請求項３記載のネットワーク装置。
【００８７】
（付記５）ＴＣＰセグメント処理部は、受信したＴＣＰセグメントが連続しているか否かを判定し、制御部は、前記ＴＣＰセグメント処理部の判定結果に基づいて、連続しているＴＣＰセグメントを連結して連結パケットを生成する請求項１から請求項４のうちのいずれか１項に記載のネットワーク装置。
【００８８】
（付記６）ＴＣＰパケットの受信処理を行う制御部と、前記制御部とは別に設けられ、前記ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、受信した前記ＴＣＰセグメントに含まれるヘッダを解析して、少なくとも前記ＴＣＰセグメントの順番を示す情報を含む解析結果を求めるＴＣＰセグメント処理部と、を備え、前記制御部は、前記ＴＣＰセグメント処理部が求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行うことを特徴とするＴＣＰパケット受信装置。
【００８９】
（付記７）ＴＣＰセグメント処理部は、求めた解析結果と、ＴＣＰセグメントを格納した場所を示す格納アドレスとを含むＴＣＰセグメント情報を、記憶部に書き込み、制御部は、前記ＴＣＰセグメント情報に基づいて、ＴＣＰセグメントを連結して連結パケットを生成する請求項６記載のＴＣＰパケット受信装置。
【００９０】
（付記８）ＴＣＰパケットが所定のセグメント単位で分割されたＴＣＰセグメントを受信すると、制御部とは別に設けられた処理部により受信した前記ＴＣＰセグメントに含まれるヘッダを解析して、少なくとも前記ＴＣＰセグメントの順番を示す情報を含む解析結果を求め、求めた解析結果に基づいて、ＴＣＰセグメントを連結した連結パケットの受信処理を行うことを特徴とするＴＣＰパケット受信方法。
【００９１】
（付記９）求めた解析結果と、ＴＣＰセグメントを格納した場所を示す格納アドレスとを含むＴＣＰセグメント情報を、記憶部に書き込み、前記ＴＣＰセグメント情報に基づいて、ＴＣＰセグメントを連結して連結パケットを生成する請求項８記載のＴＣＰパケット受信方法。
【産業上の利用可能性】
【００９２】
本発明は、ホームゲートウェイ装置などのＴＣＰパケットを終端するネットワーク装置に適用可能である。
【符号の説明】
【００９３】
１  制御部
２  ＴＣＰセグメント処理部
１０，２０  ＴＣＰ終端装置
１４，２４  メモリ
１５，２５  受信パケット用メモリ空間
１６，２６  ＣＰＵ
２７  ＴＣＰセグメント処理部
２８  ＴＣＰセグメント用メモリ空間
【図１】
2011249922.tif 000003
【図２】
2011249922.tif 000004
【図３】
2011249922.tif 000005
【図４】
2011249922.tif 000006
【図５】
2011249922.tif 000007
【図６】
2011249922.tif 000008
【図７】
2011249922.tif 000009
【図８】
2011249922.tif 000010