(57)【要約】【課題】回路規模の増大を抑えつつ、周辺機器と通信する際にかかる処理負荷が十分に低減すること。【解決手段】第１処理部と、第２処理部とを有する通信装置であって、第１処理部は、ネットワークを介して機器から該機器の宛先情報を受信する第１受信手段と、受信した宛先情報を第２処理部に送信する送信手段と、所定数まで宛先情報を登録可能な第１記憶手段と、受信した宛先情報を第１記憶手段に記憶させる第１登録手段と、受信した宛先情報が第１記憶手段に記憶されているか否かの情報を、第２処理部に通知する通知手段と、を備え、第２処理部は、送信手段から送信された宛先情報を受信する第２受信手段と、第１記憶手段に宛先情報が記憶されていない情報が通知手段から通知された場合に、第２受信手段が受信した宛先情報を第２記憶手段に記憶させる第２登録手段と、を備える通信装置が提供される。【選択図】図２
2017022531.tif 000002
【特許請求の範囲】
【請求項１】
第１処理部と、第２処理部とを有する通信装置であって、
前記第１処理部は、
ネットワークを介して機器から該機器の宛先情報を受信する第１受信手段と、
受信した前記宛先情報を前記第２処理部に送信する送信手段と、
所定数まで宛先情報を登録可能な第１記憶手段と、
受信した前記宛先情報を前記第１記憶手段に記憶させる第１登録手段と、
受信した前記宛先情報が前記第１記憶手段に記憶されているか否かを示す情報を、前記第２処理部に通知する通知手段と、を備え、
前記第２処理部は、
前記送信手段から送信された前記宛先情報を受信する第２受信手段と、
前記第１記憶手段に前記宛先情報が記憶されていないことを示す情報が前記通知手段から通知された場合に、前記第２受信手段が受信した前記宛先情報を第２記憶手段に記憶させる第２登録手段と、を備える通信装置。
【請求項２】
前記第１処理部は、
前記第１記憶手段に記憶された宛先情報の登録数に基づいて、受信した前記宛先情報を前記第１記憶手段に記憶させるか否かの判定をする判定手段をさらに備え、
前記第１登録手段は、前記第１記憶手段に記憶させる判定がなされた場合に、受信した前記宛先情報を前記第１記憶手段に記憶させる請求項１に記載の通信装置。
【請求項３】
前記第１受信手段は、受信した前記宛先情報に識別情報を付加し、
前記送信手段は、前記識別情報が付加された宛先情報を前記第２処理部に送信し、
前記通知手段は、受信した前記宛先情報が前記第１記憶手段に記憶されているか否かを示す情報と、該宛先情報に付加された識別情報とを前記第２処理部に通知し、
前記第２処理部は、前記通知手段から通知された識別情報を用いて、前記第２受信手段が受信した宛先情報の中から、前記通知手段から通知された情報に対応する宛先情報を特定する特定手段をさらに有する請求項１又は２に記載の通信装置。
【請求項４】
前記第１処理部は、受信した前記宛先情報が前記第１記憶手段に記憶されているか否かを示す情報を、宛先情報が受信された順に、複数記憶する第３記憶手段をさらに有し、
前記通知手段は、宛先情報が受信された順に、受信した前記宛先情報が前記第１記憶手段に記憶されているか否かを示す情報を、順次、前記第２処理部に通知する請求項３に記載の通信装置。
【請求項５】
ネットワークを介して機器から該機器の宛先情報を受信する第１受信手段と、受信した前記宛先情報を第２処理部に送信する送信手段と、所定数まで宛先情報を登録可能な第１記憶手段と、受信した前記宛先情報を前記第１記憶手段に記憶させる第１登録手段と、受信した前記宛先情報が前記第１記憶手段に記憶されているか否かの情報を、前記第２処理部に通知する通知手段と、を有する通信装置に、
前記送信手段から送信された前記宛先情報を受信する受信ステップと、
前記第１記憶手段に前記宛先情報が記憶されていない情報が前記通知手段から通知された場合に、第２受信手段が受信した前記宛先情報を第２記憶手段に記憶させる登録ステップと、を実行させる通信プログラム。
【請求項６】
ネットワークを介して機器から該機器の宛先情報を受信する第１受信手段と、受信した前記宛先情報を第２処理部に送信する送信手段と、所定数まで宛先情報を登録可能な第１記憶手段と、受信した前記宛先情報を前記第１記憶手段に記憶させる第１登録手段と、受信した前記宛先情報が前記第１記憶手段に記憶されているか否かの情報を、前記第２処理部に通知する通知手段と、を有する通信装置が、
前記送信手段から送信された前記宛先情報を受信する受信ステップと、
前記第１記憶手段に前記宛先情報が記憶されていない情報が前記通知手段から通知された場合に、第２受信手段が受信した前記宛先情報を第２記憶手段に記憶させる登録ステップと、を実行する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信プログラム及び通信方法に関する。
【背景技術】
【０００２】
近隣の機器に問い合わせて取得したアドレス情報を保存しておき、近隣の機器と通信する際に当該アドレス情報を使用する通信技術がある。例えば、ＩＰｖ６（Internet Protocol Version 6）を用いる通信機器は、ＬＬ（Link Layer）アドレス及びＩＰｖ６アドレス等の近隣の機器の情報をＮＣＥ（Neighbor Cache Entry）に保存しておく。当該通信機器は、ＮＣＥを参照することで事前に近隣の機器に情報を問い合わせることなく、近隣の機器にパケットを送信する。
【０００３】
かかる通信技術は、例えば、６ＬｏＷＰＡＮ（IPv6 over Low Power Wireless Personal Area Networks）と呼ばれる規格において用いられる。６ＬｏＷＰＡＮは、低消費電力ＰＡＮ（Personal Area Network）でＩＰｖ６通信を行うための規格である。また、６ＬｏＷＰＡＮは、処理能力の低いＣＰＵ、容量の小さいメモリ等の低性能なデバイス向けに通信を最適化した規格である。
【０００４】
図１は、６ＬｏＷＰＡＮのレイヤについて説明する図である。図１には、上位レイヤから順に、Ａｐｐｌｉｃａｔｉｏｎ  Ｌａｙｅｒ、Ｕｐｐｅｒ  Ｌａｙｅｒ（ＩＣＭＰ（Internet Control Message Protocol）、ＵＤＰ（User Datagram Protocol））、ＩＰｖ６  ｗｉｔｈ  ６ＬｏＷＰＡＮ、ＰＨＹ（Physical）／ＭＡＣ（Media Access Control）が示されている。すなわち、６ＬｏＷＰＡＮは、ＩＰ（Internet Protocol）層に位置する。なお、ＭＡＣ層以下には、８０２．１５．４が存在する。
【０００５】
また、低性能なデバイス向けに通信を最適化した技術としては、例えば、通信頻度の高いネットワークコネクションを、あらかじめ通信装置のフリップフロップ又は内部ＲＡＭ（Random Access Memory）に登録しておくことで、ＣＡＭ（Content Addressable Memory）及び外部ＲＡＭへのアクセス頻度を減らして消費電力を抑える方法が知られている（例えば、特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、回路の規模の増大を抑えつつ、周辺機器と通信する際の処理負荷を十分に低減できていなかった。
【０００７】
例えば、回路によって管理されるＮＣＥに、近隣の機器に係る全てのエントリを登録した場合、回路の規模が増大する。一方、ソフトウェアが管理するＮＣＥに、近隣の機器に係る全てのエントリを登録した場合、周辺機器と通信する場合に、ＣＰＵがＮＣＥのエントリを全て検索することになり、ＣＰＵへの処理負荷が大きくなる。
【０００８】
そこで、本発明では、回路の規模の増大を抑えつつ、周辺機器と通信する際の処理負荷を低減することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態では、第１処理部と、第２処理部とを有する通信装置であって、前記第１処理部は、ネットワークを介して機器から該機器の宛先情報を受信する第１受信手段と、受信した前記宛先情報を前記第２処理部に送信する送信手段と、所定数まで宛先情報を登録可能な第１記憶手段と、受信した前記宛先情報を前記第１記憶手段に記憶させる第１登録手段と、受信した前記宛先情報が前記第１記憶手段に記憶されているか否かの情報を、前記第２処理部に通知する通知手段と、を備え、前記第２処理部は、前記送信手段から送信された前記宛先情報を受信する第２受信手段と、前記第１記憶手段に前記宛先情報が記憶されていない情報が前記通知手段から通知された場合に、前記第２受信手段が受信した前記宛先情報を第２記憶手段に記憶させる第２登録手段と、を備える通信装置が開示される。
【発明の効果】
【００１０】
回路の規模の増大を抑えつつ、周辺機器と通信する際の処理負荷を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】６ＬｏＷＰＡＮのレイヤについて説明する図である。
【図２】通信装置の第１のハードウェア構成の例を示す図である。
【図３】ＮＣＥのデータ構造の例を示す図である。
【図４】処理部の構成例を示すブロック図である。
【図５】パケット処理装置で受信したパケットに対してなされる処理のフローチャートを示す図である。
【図６】処理部でなされる処理のフローチャートを示す図である。
【図７】レジスタの動作を説明する図である。
【図８】キューとＮＤパケットの対応関係の例を示す図である。
【図９】処理部における処理の例を説明するための図である。
【図１０】通信装置の第２のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することによって重複した説明を省く。
【００１３】
［第１実施形態］
（通信装置のハードウェア構成）
図２は、通信装置１０の第１のハードウェア構成の例を示す図である。通信装置１０は、ＣＰＵ５０と、外部記憶部５１と、周辺装置５２と、パケット処理装置１００とを有する。ＣＰＵ５０、外部記憶部５１、周辺装置５２及びパケット処理装置１００は、バス５３によって接続される。
【００１４】
ＣＰＵ５０は、通信装置１０のＯＳ（Operating System）に基づいて、周辺装置５２、パケット処理装置１００等の制御を行う。また、ＣＰＵ５０は、後述する処理部６０の処理を実現する。外部記憶部５１は、受信したパケット及び通信相手の機器のＩＰアドレス等の情報を保持する、ソフトウェア側のＮＣＥ５１Ａを記憶する。
【００１５】
周辺装置５２は、例えば、画像処理装置、ディスプレイ等の機器を含む。
【００１６】
パケット処理装置１００は、パケットの送受信及び近隣の機器の情報を管理する等の処理を行う。
【００１７】
（パケット処理装置の構成）
パケット処理装置１００の構成について説明する。パケット処理装置１００は、ＭＡＣ／ＩＰ層処理部１０１と、ＴＣＰ／ＵＤＰ層処理部１０２と、ＮＤ処理部１０３と、レジスタ１０４と、パケット記憶部１１０と、近隣キャッシュ記憶部１１１と、ＥｔｈｅｒｎｅｔＩ／Ｆ１３１と、Ｗｉ−ＦｉＩ／Ｆ１３２と、８０２．１５．４Ｉ／Ｆ１３３とを有する回路である。
【００１８】
また、近隣キャッシュ記憶部１１１は、ハードウェア側のＮＣＥ１１１Ａを記憶する。
【００１９】
ＥｔｈｅｒｎｅｔＩ／Ｆ１３１は、有線のＬＡＮ（Local Area Network）を介して接続された通信機器との通信インタフェースである。Ｗｉ−ＦｉＩ／Ｆ１３２は、無線ＬＡＮを介して接続された通信機器と通信インタフェースである。８０２．１５．４Ｉ／Ｆ１３３は、ＰＡＮ又はＷＰＡＮ等の短距離無線ネットワークを介して接続された通信機器との通信インタフェースである。以下では、ＥｔｈｅｒｎｅｔＩ／Ｆ１３１、Ｗｉ−ＦｉＩ／Ｆ１３２及び８０２．１５．４Ｉ／Ｆ１３３をまとめて通信Ｉ／Ｆ１３０と呼ぶ。なお、通信Ｉ／Ｆ１３０は、ＥｔｈｅｒｎｅｔＩ／Ｆ１３１、Ｗｉ−ＦｉＩ／Ｆ１３２及び８０２．１５．４Ｉ／Ｆ１３３以外の通信Ｉ／Ｆを含んでもよい。
【００２０】
ＭＡＣ／ＩＰ層処理部１０１は、通信Ｉ／Ｆ１３０から受信したパケットがＮＤ（Neighbor Discovery）パケットであった場合、ＮＤパケットからＮＤパケット情報を抽出し、ＮＤパケット情報をＮＤ処理部１０３に送信する回路である。ＮＤパケット情報は、例えば、送信元の近隣の機器のＩＰアドレス及びＬＬアドレス等の情報を含む。また、ＭＡＣ／ＩＰ層処理部１０１は、通信Ｉ／Ｆ１３０から受信したパケットをパケット記憶部１１０に記憶し、ＭＡＣ処理とＩＰ処理等の処理を実行し、処理後のＮＤパケットをＴＣＰ／ＵＤＰ層処理部１０２に送信する。
【００２１】
ＴＣＰ／ＵＤＰ層処理部１０２は、ＮＤパケットを外部記憶部５１に転送する回路である。また、ＴＣＰ／ＵＤＰ層処理部１０２は、通信Ｉ／Ｆ１３０から受信したパケットがＮＤパケットでなかった場合、当該パケットに対してＴＣＰ／ＵＤＰ処理を行い、外部記憶部５１に転送する。
【００２２】
ＮＤ処理部１０３は、ＭＡＣ／ＩＰ層処理部１０１から受信したＮＤパケット情報に基づいて近隣の機器に係るＩＰアドレス、ＬＬアドレス等の情報をＮＣＥ１１１Ａに登録する回路である。ＮＤ処理部１０３は、ＮＤパケット情報の処理結果をＮＣＥ登録情報としてレジスタ１０４に記録する。例えば、ＮＣＥ１１１Ａの空きエントリにＩＰアドレス、ＬＬアドレス等の情報を登録した場合、ＮＣＥ登録情報は「新規登録」であり、ＮＣＥ１１１Ａの空きエントリがなく、ＩＰアドレス、ＬＬアドレス等の情報を新規に登録できなかった場合、ＮＣＥ登録情報は「エントリＦＵＬＬ」である。
【００２３】
ＮＤ処理部１０３によってレジスタ１０４にＮＣＥ登録情報が記録又は更新されたことでＣＰＵ５０に対して割り込み処理が発生した際に、ＣＰＵ５０は、レジスタ１０４をリードしてＮＣＥ登録情報を取得する。
【００２４】
ＣＰＵ５０は、処理部６０の機能を実現する。処理部６０は、外部記憶部５１に記憶されているＮＤパケットの中から、ＣＰＵ５０に対する割り込み処理の際に取得したＮＣＥ登録情報に対応するＮＤパケットを特定する。続いて、処理部６０は、特定したＮＤパケットからＮＤパケット情報を抽出し、ＮＤパケット情報を用いて、ＮＣＥ登録情報に応じた処理を行う。例えば、処理部６０は、ＮＣＥ登録情報が「エントリＦＵＬＬ」であった場合、抽出したＮＤパケット情報に基づいて、ＮＣＥ５１Ａの空きエントリに、近隣の機器に係るＩＰアドレス、ＬＬアドレス等の情報を登録する。なお、ＮＣＥ登録情報に対する処理部６０の処理の詳細に関しては後述する。
【００２５】
近隣キャッシュ記憶部１１１は、ＮＣＥ１１１Ａを記憶する。ＮＣＥ１１１Ａは、各エントリに各近隣の機器のＩＰアドレス、ＬＬアドレス等の情報を有する。
【００２６】
図３は、ＮＣＥ１１１Ａのデータ構造の例を示す図である。ＮＣＥ１１１Ａは、Ｎｏと、ＶＡＬＩＤと、ＩＰアドレスと、ＬＬアドレスと、ＩＮＦと、Ｓｔａｔｕｓと、Ｒｏｕｔｅｒと、ＡＧＥとを対応付ける。
【００２７】
「Ｎｏ」は、エントリの番号を示す。「ＶＡＬＩＤ」は、エントリの有効又は無効の別を示す。例えば、ＶＡＬＩＤが「1」の場合、エントリが登録済であることを示し、ＶＡＬＩＤが「0」の場合、エントリが未登録であることを示す。「ＩＰアドレス」は、近隣の機器のＩＰアドレスを示す。「ＬＬアドレス」は、近隣の機器のＬＬアドレスを示す。
【００２８】
「ＩＮＦ」は、パケットを送受信する通信インタフェースを示す。例えば、「＃０」が格納されている場合、近隣の機器と通信する際にＥｔｈｅｒｎｅｔＩ／Ｆ１３１を用いることを示す。また、「＃１」が格納されている場合、近隣の機器と通信する際にＷｉ−ＦｉＩ／Ｆ１３２を用いることを示す。また、「＃２」が格納されている場合、近隣の機器と通信する際に８０２．１５．４Ｉ／Ｆ１３３を用いることを示す。
【００２９】
「Ｓｔａｔｕｓ」は、近隣の機器との通信の状態を示す。例えば、「Ｓｔａｔｕｓ」に「Ｒｅａｃｈａｂｌｅ」が格納されている場合、近隣の機器との通信が有効な状態で通信可能であることを示す。「Ｓｔａｔｕｓ」に「Ｓｔａｌｅ」が格納されている場合、近隣ノードに対して到達可能かどうかが不明な状態であることを示す。例えば、「Ｒｅａｃｈａｂｌｅ」から例えば１０秒経過すると、この状態へ遷移する。また、近隣の機器と通信可能であることを確認できた場合、「Ｓｔａｔｕｓ」は、「Ｓｔａｌｅ」から「Ｒｅａｃｈａｂｌｅ」に変更される。なお、上記の「Ｒｅａｃｈａｂｌｅ」及び「Ｓｔａｌｅ」は一例であり、「Ｓｔａｔｕｓ」には、他の通信の状態が格納されてもよい。
【００３０】
「Ｒｏｕｔｅｒ」は、近隣の機器がルータであるか否かを示す。例えば、「Ｒｏｕｔｅｒ」に「1」が格納されている場合、近隣の機器がルータであることを示す。また、「Ｒｏｕｔｅｒ」に「0」が格納されている場合、近隣の機器がルータ以外の機器であることを示す。「ＡＧＥ」は、所定時間が経過する度に、初期値Ｘから１ずつデクリメントされる内部カウンタ値である。「ＡＧＥ」によってエントリの更新順序を判定することができる。例えば、ＮＯ．１のエントリに「7」が格納され、ＮＯ．２のエントリに「8」が格納されている。したがって、初期値を１０とした場合、ＮＯ．１のエントリの方がＮＯ．２のエントリよりも先に更新されたことを示す。
【００３１】
また、「ＡＧＥ」が所定値以下となった場合にエントリを削除するようにしてもよい。例えば、初期値Ｘから１ずつデクリメントされ、「ＡＧＥ」の値が「1」となった場合に、エントリを削除してもよい。エントリを削除されないようにする場合、例えば、ＮＣＥ１１１Ａの各エントリに「Permanent_Flag」というフラグを追加し、フラグの値が１の場合には「Ｓｔａｔｕｓ」を「Ｒｅａｃｈａｂｌｅ」に固定するとともに「ＡＧＥ」の値がデクリメントされないようにしてもよい。
【００３２】
なお、「ＡＧＥ」を初期値Ｘから１ずつデクリメントする方法について説明したが、これに限定されず、例えば、「ＡＧＥ」を０から１ずつインクリメントするようにしてもよい。
【００３３】
図２に戻る。外部記憶部５１は、ＭＡＣ／ＩＰ層処理部１０１から受信したＮＤパケットと、ＮＣＥ５１Ａとを記憶する。ＮＣＥ５１Ａは、各近隣の機器のＩＰアドレス、ＬＬアドレス等の情報を保持する。ＮＣＥ５１Ａは、図３に係るＮＣＥ１１１Ａと同様のデータ構造であってもよい。
【００３４】
（処理部の構成）
図４は、処理部６０の構成例を示すブロック図である。ＣＰＵ５０は、処理部６０の機能を実現する。処理部６０は、受信部６１と、特定部６２と、登録部６３とを有する。
【００３５】
受信部６１は、ＴＣＰ／ＵＤＰ層処理部１０２から転送されたＮＤパケットを受信し、外部記憶部５１に記憶する。
【００３６】
特定部６２は、レジスタ１０４の更新によってＣＰＵ５０に対して割り込み処理が発生した際に、レジスタ１０４をリードし、レジスタ１０４からＮＤ＿ＣＯＵＮＴとＮＣＥ登録情報とを取得する。特定部６２は、取得したＮＤ＿ＣＯＵＮＴを用いて、外部記憶部５１に記憶されたＮＤパケットの中から、レジスタ１０４から取得したＮＣＥ登録情報に対応するＮＤパケットを特定する。
【００３７】
登録部６３は、レジスタ１０４から取得したＮＣＥ登録情報に基づいて、特定部６２により特定されたＮＤパケットを処理する。例えば、ＮＣＥ１１１Ａに空きエントリがないことを示すＮＣＥ登録情報「エントリＦＵＬＬ」を取得した場合、登録部６３は、特定部６２により特定されたＮＤパケットからＩＰアドレス、ＬＬアドレス等の情報を抽出し、抽出したＩＰアドレス、ＬＬアドレス等の情報に一致するエントリがＮＣＥ５１Ａに含まれるか否かを判定する。登録部６３は、抽出したＩＰアドレス、ＬＬアドレス等の情報に一致するエントリがＮＣＥ５１Ａに含まれないと判定した場合、当該情報をＮＣＥ５１Ａの空きエントリに新規に登録する。なお、ＮＣＥ５１ＡにＡＧＥの項目が含まれる場合、新規に登録されたエントリのＡＧＥを初期値Ｘとする。
【００３８】
また、登録部６３は、ＮＣＥ１１１Ａのエントリを１つ削除し、削除したエントリに、特定部６２により特定されたＮＤパケットから抽出したＩＰアドレス、ＬＬアドレス等の情報を登録してもよい。例えば、登録部６３は、ＮＣＥ１１１Ａの「ＡＧＥ」の値が最も小さいエントリを削除してから、削除したエントリに新規エントリを登録する。以下では、ＮＣＥ１１１Ａ又はＮＣＥ５１Ａの空きエントリに、ＮＤパケットから抽出したＩＰアドレス、ＬＬアドレス等の情報を登録することを、「新規エントリを登録する」ということがある。なお、登録部６３に他のＮＣＥ登録情報が通知された場合に関しては後述する。
【００３９】
（パケット処理装置でなされる処理のフロー）
図５は、パケット処理装置１００で受信したパケットに対してなされる処理のフローチャートを示す図である。パケット処理装置１００は、通信Ｉ／Ｆ１３０を介してパケットを受信する（ステップＳ１）。続いて、ＭＡＣ／ＩＰ層処理部１０１は、パケット記憶部１１０に受信したパケットを記憶した上で、パケット記憶部１１０に記憶した受信したパケットに対してＭＡＣ処理（ステップＳ２）及びＩＰ処理（ステップＳ３）を行う。
【００４０】
続いて、ＭＡＣ／ＩＰ層処理部１０１は、受信したパケットがＮＤパケットであるか否かを判定する（ステップＳ４）。例えば、ＭＡＣ／ＩＰ層処理部１０１は、受信したパケットのＩＣＭＰｖ６のＴｙｐｅフィールドを参照し、メッセージタイプが１３４又は１３６等である場合、受信したパケットがＮＤパケットであると判定する。
【００４１】
ＭＡＣ／ＩＰ層処理部１０１は、受信したパケットがＮＤパケットでなかった場合（ステップＳ４Ｎｏ）、当該パケットをＴＣＰ／ＵＤＰ層処理部１０２に送信する。ＴＣＰ／ＵＤＰ層処理部１０２は、当該パケットに対してＴＣＰ／ＵＤＰ処理を行う（ステップＳ５）。続いて、ＴＣＰ／ＵＤＰ層処理部１０２は、ＣＰＵ５０によって予め設定された不図示のレジスタに従って当該パケットを転送するか否かを判定する（ステップＳ６）。ＴＣＰ／ＵＤＰ層処理部１０２は、当該パケットをＣＰＵ５０に転送しない場合（ステップＳ６Ｎｏ）、処理を終了させる。一方、ＴＣＰ／ＵＤＰ層処理部１０２は、当該パケットをＣＰＵ５０に転送する場合（ステップＳ６Ｙｅｓ）、パケット記憶部１１０を参照し、当該パケットの先頭アドレスとヘッダ長とに基づいて外部記憶部５１にＤＭＡ転送し（ステップＳ７）、ＣＰＵ５０に通知して処理を終了する。なお、パケットの転送方法はＤＭＡ転送に限定されず、他の転送方法を用いて外部記憶部５１にパケットを転送してもよい。
【００４２】
一方、ＭＡＣ／ＩＰ層処理部１０１は、受信したパケットがＮＤパケットであった場合（ステップＳ４Ｙｅｓ）、ＮＤ＿ＣＯＵＮＴ値を１つインクリメントする（ステップＳ８）。ＮＤ＿ＣＯＵＮＴ値は、ＮＤパケットを受信した回数を示し、パケット処理装置１００がＮＤパケットを受信する度に１つずつインクリメントされる。なお、ＭＡＣ／ＩＰ層処理部１０１は、ＮＤ＿ＣＯＵＮＴ値がオーバーフローした場合、再度０からインクリメントする。
【００４３】
続いて、ＭＡＣ／ＩＰ層処理部１０１は、ＮＤパケットの前後の位置にＮＤ＿ＣＯＵＮＴ値を付属させる。例えば、ＭＡＣ／ＩＰ層処理部１０１は、パケット記憶部１１０においてＮＤ＿ＣＯＵＮＴ値のアドレスを、ＮＤ＿ＣＯＵＮＴ値のデータがＮＤパケットに連続する位置に設定する。ＴＣＰ／ＵＤＰ層処理部１０２は、例えば、ＮＤ＿ＣＯＵＮＴ値のデータの先頭のアドレスと、ＮＤ＿ＣＯＵＮＴ値の先頭アドレスからＮＤパケットの末尾までのデータ長とを指定し、ＮＤパケット及びＮＤ＿ＣＯＵＮＴ値を外部記憶部５１にＤＭＡ転送する（ステップｓ６Ｙｅｓ、ステップｓ７）。すなわち、ＴＣＰ／ＵＤＰ層処理部１０２は、ＤＭＡ転送時のパケット長を「ＮＤ＿ＣＯＵＮＴ値のデータ長＋ＮＤパケット長」に設定し、ＤＭＡ転送時にＮＤ＿ＣＯＵＮＴ値及びＮＤパケットを一つのパケットとして一体として取り扱う。
【００４４】
さらに、ＭＡＣ／ＩＰ層処理部１０１は、ＮＤパケットから抽出した送信元のＩＰアドレス、送信元のＬＬアドレス及びＮＤオプション情報と、インクリメントされたＮＤ＿ＣＯＵＮＴ値とをＮＤパケット情報に付属させた上で、ＮＤパケット情報をＮＤ処理部１０３に転送する（ステップＳ９）。
【００４５】
ＮＤ処理部１０３は、ＭＡＣ／ＩＰ層処理部１０１から受信したＮＤパケット情報を用いてＮＤ処理を行う（ステップＳ１０）。すなわち、ＮＤパケットに対して規格に沿った設定がされているか否かを判定する。例えば、ＮＤパケットのヘッダ部分に破損があった場合、ＮＤ処理部１０３は、ＮＤパケットに規格に沿った設定がされていないと判定する。続いて、ＮＤ処理部１０３は、ＮＤパケット情報に基づいてＮＣＥ１１１Ａの空きエントリにＩＰアドレス及びＬＬアドレス等の情報を登録するか否かを判定する（ステップＳ１１）。例えば、ＮＤ処理部１０３は、ＮＤ処理でＮＤパケットに対して規格に沿った設定がされていないと判定した場合、ＮＣＥ１１１Ａに新規エントリを登録しないと判定する。ＮＤ処理部１０３は、ＮＣＥ１１１Ａに新規エントリを登録しないと判定した場合（ステップＳ１１Ｎｏ）、処理を終了させる。
【００４６】
一方、ＮＤ処理部１０３は、ＮＣＥ１１１Ａに新規エントリを登録すると判定した場合（ステップＳ１１Ｙｅｓ）、ＮＣＥ１１１Ａの各エントリに係るＩＰアドレスと、ＮＤパケットに含まれる送信元のＩＰアドレスとを比較するＮＣＥ検索を実行する（ステップＳ１２）。
【００４７】
ＮＤ処理部１０３は、ＮＤパケットに含まれるＩＰアドレスと一致するエントリがＮＣＥ１１１Ａに含まれるか否かを判定する（ステップＳ１３）。ＮＤ処理部１０３は、当該ＩＰアドレスと一致するエントリがＮＣＥ１１１Ａに含まれると判定した場合（ステップＳ１３Ｙｅｓ）、ＮＤパケットに対応するエントリがＮＣＥ１１１Ａに登録済であると判定し、ステップＳ１４の処理に移行する。一方、ＮＤ処理部１０３は、当該ＩＰアドレスに一致するエントリがＮＣＥ１１１Ａに含まれないと判定した場合（ステップＳ１３Ｎｏ）、ＮＤパケットに対応するエントリがＮＣＥ１１１Ａに未登録と判定し、ステップＳ１７の処理に移行する。
【００４８】
ステップＳ１４において、ＮＤ処理部１０３は、ＮＣＥ１１１ＡのＩＰアドレスが一致するエントリに格納されているＬＬアドレス（ＬＬＡ）と、ＮＤパケット情報に係るＬＬアドレスとが一致するか否かを判定する（ステップＳ１４）。ＮＤ処理部１０３は、ＬＬアドレスが一致すると判定した場合（ステップＳ１４Ｙｅｓ）、ＮＣＥ登録情報「登録済み」を生成し、レジスタ１０４にＮＣＥ登録情報「登録済み」を記録する処理を行う（ステップＳ１５）。さらに、ＮＤ処理部１０３は、ステップＳ８において１つインクリメントされたＮＤ＿ＣＯＵＮＴ値とステップＳ１２においてＩＰアドレスが一致したＮＣＥ１１１ＡのエントリのＮｏとをレジスタ１０４に記録する。
【００４９】
なお、ＣＰＵ５０は、レジスタ１０４に記憶されたＮＣＥ１１１ＡのエントリのＮｏを、割り込み発生時にリードすることで、ＮＤ処理部によって処理されたＮＣＥ１１１Ａの新規エントリ及び登録済みのエントリを特定でき、ＣＰＵ５０側でＮＣＥ１１１Ａのエントリの登録情報を管理することができる。
【００５０】
これにより、処理部６０は、ＮＣＥ５１ＡのエントリをＮＣＥ１１１Ａに登録する場合に、ＣＰＵ５０側で管理しているＮＣＥ１１１Ａのエントリの登録情報を用いることで、ＮＣＥ１１１Ａの該当エントリを見つけるまで各エントリを検索しなくてもよくなり、処理を高速化することができる。
【００５１】
一方、ＮＤ処理部１０３は、ＬＬアドレスが一致しないと判定した場合（ステップＳ１４Ｎｏ）、ＮＣＥ登録情報「LLA Miss Hit」を生成し、レジスタ１０４にＮＣＥ登録情報「LLA Miss Hit」を記録する処理を行う（ステップＳ１６）。さらに、ＮＤ処理部１０３は、ステップＳ８において１つインクリメントされたＮＤ＿ＣＯＵＮＴ値とステップＳ１２においてＩＰアドレスが一致したＮＣＥ１１１ＡのエントリのＮｏとをレジスタ１０４に記録する。
【００５２】
ステップＳ１７において、ＮＤ処理部１０３は、ＮＣＥ１１１Ａに空きエントリがあるか否かを判定する（ステップＳ１７）。
【００５３】
ＮＤ処理部１０３は、ＮＣＥ１１１Ａに空きエントリがあると判定した場合（ステップＳ１７Ｙｅｓ）、ＮＣＥ１１１Ａの空きエントリに、ＮＤパケット情報に基づいて新規エントリとしてＩＰアドレス、ＬＬアドレス等の情報を登録する（ステップＳ２３）。さらに、ＮＤ処理部１０３は、ＮＣＥ登録情報「新規登録」を生成し、レジスタ１０４にＮＣＥ登録情報「新規登録」を記録する処理を行う（ステップＳ２４）。また、ＮＤ処理部１０３は、ステップＳ８において１つインクリメントされたＮＤ＿ＣＯＵＮＴ値とＮＣＥ１１１Ａの新規登録したエントリのＮｏとをレジスタ１０４に記録する。
【００５４】
一方、ＮＤ処理部１０３は、ＮＣＥ１１１Ａに空きエントリがないと判定した場合（ステップＳ１７Ｎｏ）、一番古いエントリを削除するか否かを判定する（ステップＳ１８）。例えば、一番古いエントリを削除するか否かを判定する際に用いるレジスタを新たに設けてもよい。なお、ＮＤ処理部１０３は、図３に示されるＮＣＥ１１１Ａのフィールド（列）「ＡＧＥ」からＮＣＥ１１１Ａの一番古いエントリを特定することができる。
【００５５】
ＮＤ処理部１０３は、一番古いエントリを削除しないと判定した場合（ステップＳ１８Ｎｏ）、ＮＣＥ登録情報「エントリＦＵＬＬ」を生成し、レジスタ１０４にＮＣＥ登録情報「エントリＦＵＬＬ」を記録する処理を行う（ステップＳ２２）。さらに、ＮＤ処理部１０３は、ステップＳ８において１つインクリメントされたＮＤ＿ＣＯＵＮＴ値をレジスタ１０４に記録する。
【００５６】
一方、ＮＤ処理部１０３は、一番古いエントリを削除すると判定した場合（ステップＳ１８Ｙｅｓ）、ＮＣＥ１１１Ａから一番古いエントリを検索して削除する（ステップＳ１９）。続いて、ＮＤ処理部１０３は、ＮＤパケット情報に基づいて、削除したエントリに新規エントリとしてＩＰアドレス、ＬＬアドレス等の情報を登録する（ステップＳ２０）。続いて、ＮＤ処理部１０３は、ＮＣＥ登録情報「削除後、新規登録」を生成し、レジスタ１０４にＮＣＥ登録情報「削除後、新規登録」を記録する処理を行う（ステップＳ２１）。さらに、ＮＤ処理部１０３は、ステップＳ８において１つインクリメントされたＮＤ＿ＣＯＵＮＴ値と、ステップＳ２０において新規エントリが登録されたＮＣＥ１１１ＡのエントリのＮｏとをレジスタ１０４に記録する。
【００５７】
（処理部でなされる処理のフロー）
図６は、処理部６０でなされる処理のフローチャートを示す図である。図６に示される処理は、図５に示される処理と並行して行われる。
【００５８】
処理部６０は、レジスタ１０４が更新されることによる割り込み処理があるまで待機する（ステップＳ３１、ステップＳ３２Ｎｏ、ステップＳ４０）。なお、例えば、図５のステップＳ１５、Ｓ１６、Ｓ２１、Ｓ２２およびＳ２４においてレジスタ１０４にＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報が書き込まれた場合等にＳ３２に係る割り込み処理が発生する。また、図５のステップＳ１５、Ｓ１６、Ｓ２１、Ｓ２２およびＳ２４の処理が連続してなされた場合、各ＮＣＥ登録情報をＦＩＦＯ（First In First Out）型のキューに格納しておき、最初にキューに格納されたＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報がレジスタ１０４に書き込まれた場合においてもＳ３２に係る割り込み処理が発生する。
【００５９】
処理部６０は、割り込み処理が発生した場合（ステップＳ４０Ｎｏ、ステップＳ３２Ｙｅｓ）、ステップＳ３３に移行する。一方、処理部６０は、所定時間以内に割り込み処理が発生しなかった場合（ステップＳ４０Ｙｅｓ）、タイムアウトさせて処理を終了させる。
【００６０】
なお、処理部６０は、タイムアウトさせて処理を終了させる場合にアラームをディスプレイに表示してもよい。
【００６１】
ステップＳ３３において、処理部６０は、レジスタ１０４をリードしてＮＣＥ１１１ＡのエントリのＮｏ、ＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報を取得する（ステップＳ３３）。続いて、処理部６０は、レジスタ１０４をＰＯＰする（ステップＳ３４）。続いて、処理部６０は、レジスタ１０４のＮＤ＿ＣＯＵＮＴ値と、外部記憶部５１に記憶されているＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値とが一致するか否かを判定する（ステップＳ３５）。
【００６２】
例えば、処理部６０は、ステップＳ３４の時点でキュー内に複数のＮＣＥ登録情報が格納されている場合、ＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値がレジスタ１０４のＮＤ＿ＣＯＵＮＴ値より大きくなっているので一致しないと判定し（ステップＳ３５Ｎｏ）、ステップＳ３７の処理に移行する。一方、処理部６０は、ステップＳ３４の時点でキュー内にＮＣＥ登録情報が１つのみ格納されている場合、ＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値がレジスタ１０４のＮＤ＿ＣＯＵＮＴ値と等しくなっているので一致すると判定し（ステップ３５Ｙｅｓ）、ステップＳ３６の処理に移行する。
【００６３】
ステップＳ３７において、処理部６０は、ＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値がレジスタ１０４のＮＤ＿ＣＯＵＮＴ値よりも大きいか否かを判定する（ステップＳ３７）。処理部６０は、ＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値がレジスタ１０４のＮＤ＿ＣＯＵＮＴ値よりも大きいと判定した場合（ステップＳ３７Ｙｅｓ）、ステップＳ３８の処理に移行する。一方、処理部６０は、ＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値がレジスタ１０４のＮＤ＿ＣＯＵＮＴ値以下である場合（ステップＳ３７Ｎｏ）、エラーとして処理を終了させる。
【００６４】
ステップＳ３８において、処理部６０は、レジスタ１０４が更新されることによって割り込み処理が発生するまで待機する（ステップＳ３８Ｎｏ、ステップＳ３９）。ＮＤ処理部１０３によってＮＣＥ登録情報がレジスタ１０４に記録された場合に、ＣＰＵ５０に対して割り込み処理が発生する。処理部６０は、割り込みがあった場合（ステップ３９Ｎｏ、ステップＳ３８Ｙｅｓ）、ステップＳ３３の処理に移行する。例えば、キューに複数のＮＣＥ登録情報が格納されており、キューの１列目に格納されているＮＣＥ登録情報がＳ３４でＰＯＰされたことで、キューの２列目に格納されているＮＣＥ登録情報がキューの１列目に反映された場合に、ステップＳ３８に係る割り込みが発生する。一方、処理部６０は、所定時間以内にレジスタ１０４から割り込みがなかった場合（ステップＳ３９Ｙｅｓ）、タイムアウトさせて処理を終了させる。
【００６５】
ステップＳ３３において、処理部６０は、レジスタ１０４にＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報が記録されたことによって割り込み処理が発生した場合に、レジスタ１０４を再びリードし、ＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報を取得する（ステップＳ３３）。続いて、処理部６０は、レジスタ１０４をＰＯＰする（ステップＳ３４）。続いて、処理部６０は、レジスタ１０４のＮＤ＿ＣＯＵＮＴ値と、ＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値とが一致するか否かを判定する（ステップＳ３５）。処理部６０は、受信したＮＤパケットに対応するＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報の取得が完了した場合、ＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値がレジスタ１０４のＮＤ＿ＣＯＵＮＴ値と等しくなっているので一致すると判定し（ステップ３５Ｙｅｓ）、ステップＳ３６の処理に移行する。例えば、３つのＮＤパケットが外部記憶部５１に記憶された場合、処理部６０は、３つ目のＮＤパケットのＣＯＵＮＴ値及びＮＣＥ登録情報の取得が完了した際に、３つ目のＮＤパケットに付属するＮＤ＿ＣＯＵＮＴ値がレジスタ１０４のＮＤ＿ＣＯＵＮＴ値と等しくなっているので、ステップＳ３５において一致すると判定する。
【００６６】
ステップＳ３６において、処理部６０は、レジスタ１０４に記録されているＮＣＥ登録情報を基に処理を実施する。例えば、処理部６０は、ＮＣＥ登録情報が「新規登録」、「削除後、新規登録」又は「登録済」の場合、ＮＣＥ１１１Ａにエントリが登録済みであるものとして、ＮＤパケットを削除する。また、処理部６０は、ＮＣＥ登録情報が「LLA Miss Hit」の場合、ＮＤパケットに格納されているＬＬアドレスをＮＣＥ１１１Ａのエントリに上書きする。
【００６７】
また、処理部６０は、ＮＣＥ登録情報が「エントリＦＵＬＬ」の場合、例えば、ＮＣＥ５１ＡにＩＰアドレス、ＬＬアドレス等の情報を登録する。なお、処理部６０は、ＮＣＥ登録情報が「エントリＦＵＬＬ」の場合に、ＮＤパケットに格納されているＮＤパケット情報に基づいて、ＮＣＥ１１１Ａのいずれかのエントリの情報を削除してから、ＩＰアドレス、ＬＬアドレス等の情報を当該削除したエントリに登録してもよい。
【００６８】
（レジスタの動作）
図７は、レジスタ１０４の動作を説明する図である。図７を用いて、ＮＤ処理部１０３によってレジスタ１０４にＮＣＥ登録情報が記録された場合に発生する割り込み処理について説明する。
【００６９】
ＮＤ処理部１０３は、ＦＩＦＯの構造を有するキューをメモリ等に有する。ｑｕｅｎｅ（１）、ｑｕｅｎｅ（２）、・・・、ｑｕｅｎｅ（ｘ−１）、ｑｕｅｎｅ（ｘ）までの全てのキューが初期状態で空であるものとする。
【００７０】
ＮＤ処理部１０３は、最初にＮＣＥ登録情報を生成した場合、ｑｕｅｎｅ（１）にＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報を格納する。続いて、ＮＤ処理部１０３は、２番目にＮＣＥ登録情報を生成した場合、ｑｕｅｎｅ（２）にＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報を格納する。続いて、ＮＤ処理部１０３は、３番目にＮＣＥ登録情報を生成した場合、ｑｕｅｎｅ（３）にＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報を格納する。ＮＤ処理部１０３は、ｘ番目までのＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報をキューに格納することができる。なお、ＮＤ処理部１０３は、ＮＣＥ登録情報が「新規登録」及び「削除後、新規登録」の場合、ＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報に加え、ＮＣＥ１１１Ａの登録されたエントリのＮｏをさらに対応するキューに格納する。また、ＮＤ処理部１０３は、ＮＣＥ登録情報が「LLA Miss Hit」及び「登録済み」の場合、ＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報に加え、ステップＳ１３においてＮＣＥ１１１ＡのＩＰアドレスが一致したエントリのＮｏを、さらに対応するキューに格納する。
【００７１】
また、複数のＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報がキューに格納された場合、ｑｕｅｎｅ（１）に格納されたＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報から順にレジスタ１０４に反映される。ｑｕｅｎｅ（１）に格納されているＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報がレジスタ１０４に反映された場合、ＣＰＵ５０に割り込み処理が発生する。続いて、ＣＰＵ５０に係る処理部６０は、レジスタ１０４をリードする。レジスタ１０４のリード後、処理部６０は、レジスタ１０４をＰＯＰすると、ｑｕｅｎｅ（２）の値がｑｕｅｎｅ（１）に反映され、ｑｕｅｎｅ（３）の値がｑｕｅｎｅ（２）に反映される。すなわち、処理部６０がレジスタ１０４をＰＯＰした場合、各々のｑｕｅｎｅ（ｎ）の値が、キュー番号が１つ小さいｑｕｅｎｅ（ｎ−１）に反映される。
【００７２】
また、レジスタ１０４をＰＯＰする方法としては、レジスタ１０４に１ビットのＶＡＬＩＤフィールドを設定し、ＶＡＬＩＤフィールドによってｑｕｅｎｅ（１）に値が格納されているか否かを管理するようにしてもよい。例えば、レジスタ１０４の１ビット目にＶＡＬＩＤフィールドが設定される。レジスタ１０４の１ビット目が「0」の場合、キューにデータが格納されていないことを示し、レジスタ１０４の１ビット目が「1」の場合、キューに１以上のデータが格納されていることを示す。また、レジスタ１０４の後続の２〜３２ビット目に、例えば、ＮＣＥ登録情報の識別番号及びＮＤ＿ＣＯＵＮＴ値等の情報が記録されるようにしてもよい。処理部６０は、レジスタ１０４をＰＯＰする場合、レジスタ１０４の１ビット目に「1」をライトし、レジスタ１０４の１ビット目を「0」にする。
【００７３】
例えば、キューに１つのみＮＣＥ登録情報が格納されている場合、レジスタ１０４がＰＯＰされた際に、処理部６０は、レジスタ１０４の１ビット目に対して「1」をライトするので、レジスタ１０４の１ビット目は、「0」となる。
【００７４】
また、キューに複数のＮＣＥ登録情報が格納されている場合、レジスタ１０４がＰＯＰされた際に、処理部６０は、ｑｕｅｎｅ（２）に格納されているＮＣＥ登録情報の識別番号及びＮＤ＿ＣＯＵＮＴ値等の情報を、レジスタ１０４の２〜３２ビット目に記録する。また、処理部６０は、レジスタ１０４をＰＯＰした際に、レジスタ１０４の１ビット目に「1」をライトするが、その後、ｑｕｅｎｅ（２）のデータが反映されるので、レジスタ１０４の１ビット目は、「1」となる。
【００７５】
また、ｑｕｅｎｅ（１）に格納された新しいＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報がレジスタ１０４に反映される度に、ＣＰＵ５０に割り込み処理が発生する。
【００７６】
また、ＮＤ処理部１０３は、ｑｕｅｎｅ（ｘ）までＮＤ＿ＣＯＵＮＴ値及びＮＣＥ登録情報が格納されている場合、これ以上、キューに値を入れないようにしてもよい。
【００７７】
なお、レジスタ１０４がＰＯＰされた場合のレジスタ１０４の動作は上記に限定されない。例えば、レジスタ１０４は、ＣＰＵ５０によってＰＯＰされた場合に、キュー番号が１つ大きいキューから値を取得するようにしてもよい。例えば、ｑｕｅｎｅ（ｎ）の値が記録されているレジスタ１０４は、処理部６０によってＰＯＰされた際に、ｑｕｅｎｅ（ｎ）の先頭に位置していたポインタを、キュー番号が１つ大きいｑｕｅｎｅ（ｎ＋１）の先頭に移動させる。続いて、レジスタ１０４は、次回ＰＯＰされた場合にｑｕｅｎｅ（ｎ＋１）の先頭ポインタから値を取得する。なお、ｑｕｅｎｅ（ｘ）の先頭にポインタが位置していた場合、レジスタ１０４は、次回ＰＯＰされた際には、ｑｕｅｎｅ（１）の先頭にポインタを移動させる。
【００７８】
（ＣＰＵとレジスタの動作）
図８は、キューとＮＤパケットの対応関係の例を示す図である。図８には、レジスタ１０４と、ＮＤ処理部１０３が管理するキューと外部記憶部５１が記憶するＮＤパケットとが示される。ＮＤ処理部１０３が管理するキューには、キュー番号と、ＮＤ処理部１０３によってＮＤ＿ＣＯＵＮＴ値と、ＮＣＥ登録情報と、ＮＣＥ１１１ＡのエントリのＮｏとが格納される。また、外部記憶部５１には、ＴＣＰ／ＵＤＰ層処理部１０２によって転送されたＮＤパケットが記憶される。ＮＤ処理部１０３が管理するキューは、キュー番号１〜３までのキューを有する。また、外部記憶部５１は、パケット１〜３までのパケットを有する。
【００７９】
各々のキューは、ＮＤ＿ＣＯＵＮＴ値によって外部記憶部５１のＮＤパケットに対応付けられる。例えば、キュー番号１のキューは、同じＮＤ＿ＣＯＵＮＴ値「20」を有するパケット１に対応付けられる。また、キュー番号２のキューは、同じＮＤ＿ＣＯＵＮＴ値「21」を有するパケット２に対応付けられる。キュー番号３のキューは、同じＮＤ＿ＣＯＵＮＴ値「22」を有するパケット３に対応付けられる。
【００８０】
例えば、キュー番号１に係るＮＤ＿ＣＯＵＮＴ値「20」と、エントリＮｏ「44」と、ＮＣＥ登録情報「新規登録」とがレジスタ１０４に反映されると、ＣＰＵ５０に割り込み処理が発生する。ＣＰＵ５０に係る処理部６０は、レジスタ１０４を参照し、ＮＤ＿ＣＯＵＮＴ値「20」に対応するパケット１に係るＮＤパケット情報のＩＰアドレス、ＬＬアドレス等の情報がＮＣＥ１１１Ａに新規登録されたと判定する。処理部６０は、判定結果に基づいて、例えば、パケット１を破棄する等の処理を実行する。
【００８１】
続いて、レジスタ１０４がＰＯＰされ、キュー番号２に係るＮＤ＿ＣＯＵＮＴ値「21」と、ＮＣＥ登録情報「エントリＦＵＬＬ」とがレジスタ１０４に反映されると、ＣＰＵ５０に割り込み処理が発生する。ＣＰＵ５０に係る処理部６０は、レジスタ１０４を参照し、ＮＤ＿ＣＯＵＮＴ値「21」に対応するパケット２に係るＮＤパケット情報のＩＰアドレス、ＬＬアドレス等の情報が、ＮＣＥ１１１ＡのエントリがＦＵＬＬであったため、ＮＣＥ１１１Ａに登録されなかったと判定する。処理部６０は、判定結果に基づいて、例えば、パケット２に含まれるＩＰアドレス、ＬＬアドレス等の情報を、ＮＣＥ５１Ａのエントリに登録する処理を行う。なお、処理部６０は、ＮＣＥ１１１Ａの「ＡＧＥ」の値が最も小さいエントリを一つ削除し、削除したエントリにパケット２のＮＤパケット情報に含まれるＩＰアドレス、ＬＬアドレス等の情報を登録してもよい。
【００８２】
続いて、レジスタ１０４がＰＯＰされ、キュー番号３に係るＮＤ＿ＣＯＵＮＴ値「22」と、エントリＮｏ「32」と、ＮＣＥ登録情報「削除後に新規登録」とがレジスタ１０４に反映されると、ＣＰＵ５０に割り込み処理が発生する。ＣＰＵ５０に係る処理部６０は、レジスタ１０４を参照し、ＮＤ＿ＣＯＵＮＴ値「22」に対応するパケット３に係るＮＤパケット情報のＩＰアドレス、ＬＬアドレス等の情報が、ＮＣＥ１１１Ａのエントリが削除された後に新規登録されたと判定する。処理部６０は、判定結果に基づいて、例えば、パケット３を破棄する等の処理を実行する。
【００８３】
なお、処理部６０は、各々のパケットに対してＮＣＥ登録情報に基づいて上記以外の処理を行ってもよい。
【００８４】
（処理部における処理例）
図９は、処理部における処理の例を説明するための図である。図９には、レジスタ１０４、ＮＤ処理部１０３が管理するキュー及び外部記憶部５１が記憶するＮＤパケットが示される。キューには、ＮＤ処理部１０３によってＮＤ＿ＣＯＵＮＴ値と、ＮＣＥ登録情報と、ＮＣＥ１１１ＡのエントリのＮｏとが格納される。また、外部記憶部５１には、ＴＣＰ／ＵＤＰ層処理部１０２によって転送されたＮＤパケットが外部記憶部５１に記憶される。
【００８５】
状態（１）〜状態（４）の順番にキュー及び外部記憶部５１の状態が遷移していくものとする。状態（１）において、図５のステップ７で転送されたパケット１が外部記憶部５１に記憶される。
【００８６】
状態（２）において、ＮＤ処理部１０３は、ステップＳ２４でＮＣＥ登録情報「新規登録」を生成し、レジスタ１０４にＮＣＥ登録情報「新規登録」等を記録する処理を行う。続いて、ＣＰＵ５０に対して割り込み処理が発生する。かかる場合に、処理部６０は、図６のステップＳ３３〜Ｓ３４の処理を経て、ステップＳ３５の条件を満たすので、ステップＳ３６の処理に移行する。処理部６０は図６のステップＳ３６でＮＤ＿ＣＯＵＮＴ値「20」に対応するパケット１に係るＮＤパケット情報のＩＰアドレス、ＬＬアドレス等の情報がＮＣＥ１１１ＡのエントリＮｏ「44」のエントリに新規登録されたという情報に基づいて、例えば、パケット１を破棄する等の処理を実行する。
【００８７】
状態（３）において、図５のステップ７で転送されたパケット２が外部記憶部５１に記憶される。
【００８８】
状態（４）において、ＮＤ処理部１０３は、ステップＳ２４でＮＣＥ登録情報「エントリＦＵＬＬ」を生成し、レジスタ１０４にＮＣＥ登録情報「エントリＦＵＬＬ」等を記録する処理を行う。続いて、ＣＰＵ５０に対して割り込み処理が発生する。かかる場合に、処理部６０は、図６のステップＳ３３〜Ｓ３４の処理を経て、ステップＳ３５の条件を満たすので、ステップＳ３６の処理に移行する。処理部６０は、図６のステップＳ３６でＮＤ＿ＣＯＵＮＴ値「21」に対応するパケット２に係るＮＤパケット情報のＩＰアドレス、ＬＬアドレス等の情報がＮＣＥ１１１ＡのエントリがＦＵＬＬであったという情報に基づいて、例えば、当該情報をＮＣＥ５１Ａに登録する処理を実行する。
【００８９】
図１０は、通信装置１０の第２のハードウェア構成の例を示す図である。図１０に係るパケット処理装置１００が８０２．１５．４Ｉ／Ｆ１３３を有さない点で図２に係るパケット処理装置１００と異なる。また、８０２．１５．４Ｉ／Ｆ１３３は、パケット処理装置１００の外部のバス５３に接続される。
【００９０】
ＣＰＵ５０に係る処理部６０は、８０２．１５．４Ｉ／Ｆ１３３からパケットを受信した場合、受信したパケットを外部記憶部５１に記憶する。続いて、処理部６０は、ＭＡＣ／ＩＰ層処理部１０１に当該パケットを送信する。続いて、ＭＡＣ／ＩＰ層処理部１０１は、受信したパケットをパケット記憶部１１０に記憶する。これ以降は、図１０に係るパケット処理装置１００は、図２に係るパケット処理装置１００と同様の処理を行う。
【００９１】
なお、ＥｔｈｅｒｎｅｔＩ／Ｆ１３１及びＷｉ−ＦｉＩ／Ｆ１３２から受信したパケットに対しては、図２に係るパケット処理装置１００と同様に処理がなされる。また、ＥｔｈｅｒｎｅｔＩ／Ｆ１３１及びＷｉ−ＦｉＩ／Ｆ１３２は、８０２．１５．４Ｉ／Ｆ１３３のように、パケット処理装置１００の外部のバス５３に接続されてもよい。
【００９２】
以上、管理システムを実施形態により説明したが、本発明は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【００９３】
なお、本実施形態において、パケット処理装置１００は、第１処理部の一例であり、処理部６０（ＣＰＵ５０）は、第２処理部の一例である。また、受信部６１は、ＭＡＣ／ＩＰ層処理部１０１は、第１受信手段、送信手段及び第１登録手段の一例であり、レジスタ１０４は、通知手段の一例であり、パケット記憶部１１０は、第１記憶手段の一例である。また、受信部６１は、第２受信手段の一例であり、外部記憶部５１は、第２記憶手段の一例であり、登録部６３は、第２登録手段の一例である。また、特定部６２は、特定手段の一例である。近隣の機器のＩＰアドレス、ＬＬアドレス等の情報は、宛先情報の一例である。
【符号の説明】
【００９４】
１０    通信装置
５０    ＣＰＵ
５１    外部記憶部
５２    周辺装置
５３    バス
１００  パケット処理装置
１０１  ＭＡＣ／ＩＰ層処理部
１０２  ＴＣＰ／ＵＤＰ層処理部
１０３  ＮＤ処理部
１０４  レジスタ
１１０  パケット記憶部
１１１  近隣キャッシュ記憶部
１３０  通信Ｉ／Ｆ
１３１  ＥｔｈｅｒｎｅｔＩ／Ｆ
１３２  Ｗｉ−ＦｉＩ／Ｆ
１３３  ８０２．１５．４Ｉ／Ｆ
【先行技術文献】
【特許文献】
【００９５】
【特許文献１】特開２０１４−０８２５６１号公報
【特許文献２】特開２００９−０５３７７０号公報
【特許文献３】特開２００９−０５５１３３号公報
【特許文献４】特開２００９−０５５１３４号公報
【図１】
2017022531.tif 000003
【図２】
2017022531.tif 000004
【図３】
2017022531.tif 000005
【図４】
2017022531.tif 000006
【図５】
2017022531.tif 000007
【図６】
2017022531.tif 000008
【図７】
2017022531.tif 000009
【図８】
2017022531.tif 000010
【図９】
2017022531.tif 000011
【図１０】
2017022531.tif 000012