(57)【要約】  【課題】  ネットワーク端末が自らが宛先ではないパケットデータを受信した場合、ＣＰＵにかかる負荷を軽減できるようにする。  【解決手段】  ネットワーク端末１０１において、第１ＮＩＣ１０８と第２ＮＩＣ１０９をローカルバス１０７を介して接続し、第１ＮＩＣ１０８にパケットデータの宛先アドレスを認識してその宛先アドレスに応じてパケットデータをネットワーク端末１０１内のどのデバイスに転送するかを選択するコントロールテーブル１１０を持たせ、第２ＮＩＣ１０９にも同様のコントロールテーブル１１５を持たせる。ここでいうネットワーク端末１０１内のデバイスとは、第１，第２ＮＩＣ１０８，１０９、ＳＲＡＭ１０４等である。これにより、例えば、第１ＮＩＣ１０８が他の端末宛てのパケットデータを受信したときはそのまま第２ＮＩＣ１０９に転送してさらにそこから他の端末に転送し、また自ら処理すべきパケットデータを受信したときはＣＰＵが処理できるようＳＲＡＭ１０４に配置する。【選択図】  図１
2006074312.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して遠隔地にあるネットワーク機器との間でパケットデータを送受信する手段と、前記ネットワーク機器から受信したパケットデータをローカルバスを介して接続されている複数のデバイスに対して送信する手段と、前記ネットワーク機器から受信したパケットデータの宛先アドレスを識別し該宛先アドレスに応じて前記受信した前記パケットデータを送信すべきデバイスを選択する手段とを有することを特徴とするネットワークインターフェースデバイス。
【請求項２】
請求項１に記載のネットワークインターフェースデバイスにおいて
前記ローカルバスを介して接続されているデバイスから受信したパケットデータもしくは制御データを一時的に格納してから前記ネットワーク機器に送信する内蔵メモリを有するネットワークインターフェースデバイス。
【請求項３】
請求項１又は２に記載のネットワークインターフェースデバイスを２個以上前記ローカルバスを介して接続したことを特徴とするネットワーク端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークからパケットデータを受信した際、その宛先アドレスに応じてパケットデータの配信先デバイスを選択し、結果としてＣＰＵに負荷をかけることなく、パケットデータのルーティングシステムを構築することが可能なネットワークインターフェースデバイスおよびそのネットワークインターフェースデバイスを２個以上有するネットワーク端末に関する。なお、前記配信先デバイスはローカルバスを介してこのネットワークインターフェースデバイスと接続されているものとする。
【背景技術】
【０００２】
一般的なネットワークにおいて、パケットのルーティングはルータによってなされている。しかし、現在注目を集め始めているメッシュネットワークにおいては、ネットワーク端末自体がパケットのルーティングを行うことが求められる。つまり、特定のネットワーク端末が他の端末からパケットを受信した場合、自分宛てのパケットであればそのまま内部で処理を行えば良いが、自分以外の宛先を持つパケットについては、適切なネットワーク媒体を介して他の端末もしくはルータ等へ転送を行わなければならない。
【０００３】
特に無線と有線、もしくは無線であっても異なる周波数帯域を使用する等、複数の異なるネットワーク媒体の接点に存在するネットワーク端末については、複数のネットワークインターフェースデバイスを備え、パケットの宛先によって適切なネットワークインターフェースデバイスを送信媒体として選択しなくてはならない。このような処理は、通常ネットワーク端末内のＣＰＵ上で動作するソフトウェアによって行われる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、実質的なルーティング処理をソフトウェアによって行うとなると、ＣＰＵに対してかなりの負荷をかけることとなる。特にメッシュネットワークを構成するネットワーク端末は、高性能なＣＰＵを搭載しているものばかりであるとは限らず、比較的処理速度の遅いＣＰＵのみしか搭載していない場合では、ルーティング処理にほとんどの資源を費やし、自らが必要とする処理を十分に行えなくなるといった事態が起こり得る。
【０００５】
本発明の目的は、ネットワーク端末が自らが宛先ではないパケットデータを受信した場合、ＣＰＵにかかる負荷を劇的に軽減できるようにしたネットワークインターフェースデバイスおよびそれを２個以上有するネットワーク端末を提供することである。
【課題を解決するための手段】
【０００６】
請求項１にかかる発明のネットワークインターフェースデバイスは、ネットワークを介して遠隔地にあるネットワーク機器との間でパケットデータを送受信する手段（ＰＨＹ部およびＭＡＣ部）と、前記ネットワーク機器から受信したパケットデータをローカルバスを介して接続されている複数のデバイスに対して送信する手段（バスインターフェース）と、前記ネットワーク機器から受信したパケットデータの宛先アドレスを識別し該宛先アドレスに応じて前記受信した前記パケットデータを送信すべきデバイスを選択する手段（コントロールテーブル）とを有することを特徴とする。
【０００７】
請求項２にかかる発明は、請求項１に記載のネットワークインターフェースデバイスにおいて、前記ローカルバスを介して接続されているデバイスから受信したパケットデータもしくは制御データを一時的に格納してから前記ネットワーク機器に送信する内蔵メモリ（バッファメモリ）を有することを特徴とする。
【０００８】
請求項３にかかる発明のネットワーク端末は、請求項１又は２に記載のネットワークインターフェースデバイスを２個以上前記ローカルバスを介して接続したことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ネットワーク端末が自らが宛先ではないパケットデータを受信した場合、ソフトウェアによる処理を行うことなく、適切なネットワークインターフェースデバイスに対してパケットをルーティングすることが可能となり、結果としてＣＰＵにかかる負荷を劇的に軽減することができるという、優れた効果を得ることができる。
【発明を実施するための最良の形態】
【００１０】
本実施例では、ネットワークインターフェースデバイスに、パケットデータの宛先アドレスを認識してその宛先アドレスに応じてパケットデータをネットワーク端末内のどのデバイスに転送するかを選択させる手段（コントロールテーブル）を持たせる。ここでいうネットワーク端末内のデバイスとは、別のネットワークインターフェースデバイス、通常のメモリ等を示す。つまり、他の端末宛てのパケットデータはそのまま別のネットワークインターフェースデバイスに転送してさらにそこから他の端末に転送し、また自ら処理すべきパケットデータはＣＰＵが処理できるよう通常のメモリに配置する。これらの処理によって、ＣＰＵがパケットルーティングに費やす資源を劇的に低減させ、前述した問題点を解消する。
【実施例】
【００１１】
以下、図面を参照して、本発明の実施例を詳細に説明する。なお、前述したネットワークインターフェースデバイスは、ここではネットワークインターフェースカード（ＮＩＣ）として説明する。
【００１２】
図１は、パケットデータの宛先アドレスに応じてパケットデータの送信先デバイスを選択することが可能なネットワーク端末１０１のブロック図である。
【００１３】
ネットワーク端末１０１において、ＣＰＵ１０２はシステムバス１０５を介して、プログラムコードを格納するＲＯＭ１０３、ワークエリアとして使用されるＳＲＡＭ１０４、システムバス１０５とローカルバス（ペリフェラルバス）１０７との間の橋渡しを行うバスブリッジ１０６に接続されている。
【００１４】
ローカルバス１０７には第１ＮＩＣ（有線ネットワークインターフェースカード）１０８、及び第２ＮＩＣ（無線ネットワークインターフェースカード）１０９が接続されている。第１ＮＩＣ１０８はそのまま有線ネットワーク１２０に接続されており、また第２ＮＩＣ１０９についてはアンテナ１２１を介して無線ネットワークに接続されている。
【００１５】
第１ＮＩＣ１０８は、ローカルバス１０７を介してデータ送受信を行うためのバスインターフェース１１１、パケットデータの宛先アドレスとそのパケットデータの送信先であるデバイスのバスアドレス（ローカルバス１０７上のアドレス）を対応付けるためのテーブルを格納するコントロールテーブル１１０、パケットデータもしくは制御データを一時的に格納するためのバッファメモリ１１２、有線ネットワークのプロトコル制御を行うＭＡＣ部（プロトコル制御部）１１４、有線ネットワークの物理層を制御するＰＨＹ部（物理層制御処理部）１１３、から構成されている。なお、バスインターフェース１１１はローカルバス１０７に対してマスタとして動作することが可能で、ローカルバス１０７上のデバイスのみならず、バスブリッジ１０６を介してシステムバス１０５上のデバイスに対しても主体的にデータを送受信することが可能である。
【００１６】
第２ＮＩＣ１０９は、ローカルバス１０７を介してデータ送受信を行うためのバスインターフェース１１６、パケットデータの宛先アドレスとそのパケットデータの送信先であるデバイスのバスアドレス（ローカルバス１０７上のアドレス）を対応付けるためのテーブルを格納するコントロールテーブル１１５、パケットデータもしくは制御データを一時的に格納するためのバッファメモリ１１７、無線ネットワークのプロトコル制御を行うＭＡＣ部（プロトコル制御部）１１９、無線ネットワークの物理層を制御するＰＨＹ部（物理層制御処理部）１１８、から構成されている。バスインターフェース１１６の機能はバスインターフェース１１１の機能と同様である。
【００１７】
有線ネットワーク１２０からパケットデータを受信した場合、第１ＮＩＣ１０８内のＭＡＣ部１１４はバスインターフェース１１１を介してローカルバス１０７上にパケットデータを送出する。この際、バスインターフェース１１１は受信したパケットデータの宛先アドレスと、コントロールテーブル１１０内の「宛先アドレス−バスアドレス対応表」をつき合わせ、どのバスアドレスに対して送信すべきかを決定する。ちなみに、選択されたバスアドレスの先にはＳＲＡＭ１０４もしくは第２ＮＩＣ１０９のバッファメモリ１１７等が割り当てられていることになる。なお、コントロールテーブル１１０内の対応表は、ネットワーク端末が参加しているネットワークの状況に応じて、ＣＰＵ１０２上で動作するソフトウェアが事前に設定しておくべきものとする。
【００１８】
有線ネットワーク１２０に対してパケットデータを送信する場合、ＣＰＵ１０２上で動作するソフトウェアは、まず、ＳＲＡＭ１０４上に送信すべきパケットデータを配置する。その後、パケットデータが用意できた旨の信号を第１ＮＩＣ１０８に対して送信すると、第１ＮＩＣ１０８はバスインターフェース１１１を制御してパケットデータを取得し、そのまま有線ネットワーク１２０に対して送出する。
【００１９】
無線ネットワークに対してパケットデータを送受信する際の手順は、有線ネットワークと同様である。
【００２０】
以下、第１ＮＩＣ１０８のコントロールテーブル１１０の内容が図２に示すもの、第２ＮＩＣ１０９のコントロールテーブル１１５の内容が図３に示すものであった場合を例として、パケットデータの処理手順を具体的に説明する。
【００２１】
図２のエントリ２０１にはネットワーク端末１０１自体の宛先アドレスとそのパケットデータ送信先バスアドレスが、エントリ２０２には無線ネットワーク１２１に送出すべき宛先アドレスとそのパケットデータ送信先バスアドレスが、エントリ２０３には上記以外の宛先アドレスとその送信先バスアドレスが用意されている。エントリ２０１が示すバスアドレスはＳＲＡＭ１０４を示しており、エントリ２０２が示すバスアドレスは第２ＮＩＣ１０９のバッファメモリ１１７を示している。またエントリ２０３の示すバスアドレスはパケットの送信をせずに破棄することを意味している。
【００２２】
同様に、図３のエントリ３０１にはネットワーク端末１０１自体の宛先アドレスとそのパケットデータ送信先バスアドレスが、エントリ３０２には有線ネットワーク１２０に送出すべき宛先アドレスとそのパケットデータ送信先バスアドレスが、エントリ３０３には上記以外の宛先アドレスとその送信先バスアドレスが用意されている。エントリ３０１が示すバスアドレスはＳＲＡＭ１０４を示しており、エントリ３０２が示すバスアドレスは第１ＮＩＣ１０８のバッファメモリ１１２を示している。またエントリ３０３の示すバスアドレスはパケットの送信をせずに破棄することを意味している。
【００２３】
まず、ネットワーク端末１０１が有線ネットワーク１２０に対してパケットを送信する場合を図４に示す。この場合、コントロールテーブル１１０内のデータは参照されない。前述したように、ＣＰＵ１０２上で動作するソフトウェアはＳＲＡＭ１０４上にパケットデータを配置し、その後、第１ＮＩＣ１０８に対してパケットデータが用意できた旨を通知する。第１ＮＩＣ１０８はこの通知を受けて、ＳＲＡＭ１０４からパケットデータを取り出し、有線ネットワーク１２０ヘと送信する。
【００２４】
次に、ネットワーク端末１０１宛てのパケットデータを有線ネットワーク１２０から受信した場合を図５に示す。この場合、パケットデータの宛先アドレスがコントロールテーブル１１０の内容と照合される。この時の宛先アドレスは「１９６．１７７．１８０．１１０」であり、エントリ２０１の内容と一致する。このため、パケットデータの送信先バスアドレスは「ｆｆ００  ａｆ００ｈ」となり、パケットデータはこのアドレス上に配置されているＳＲＡＭ１０４に書き込まれることとなる。その後、パケットデータを書き込んだ旨の情報が第１ＮＩＣ１０８からＣＰＵ１０２に対して通知され、ＣＰＵ１０２はＳＲＡＭ１０４上のパケットデータの処理を行う。
【００２５】
さらに、無線ネットワーク上に存在するネットワーク端末を宛先とするパケットデータを、有線ネットワーク１２０経由でネットワーク端末１０１が受信した場合を図６に示す。この時のパケットデータの宛先アドレスを仮に「１９６．１７７．１８１．１００」とする。この宛先アドレスはエントリ２０２の宛先アドレスと一致する。このため、パケットデータの送信先バスアドレスは「ｃ０００  ｆ８００ｈ」となり、パケットデータはこのアドレス上に配置されている第２ＮＩＣ１０９のバッファメモリ１１７に書き込まれることとなる。その後、バッファメモリ１１７にパケットが書き込まれたことを検知した第２ＮＩＣ１０９はその内容を無線ネットワークに対して送信する。
【００２６】
上記の処理により、パケットデータがネットワーク端末１０１宛てではないものについては、ほぼ自動的にルーティング処理が行われることとなり、ＣＰＵ１０２にかかる負荷が劇的に軽減されることとなる。また、図６に示すように、この際のルーティングに使用されるバスはローカルバス１０７のみであり、ＣＰＵ１０２は平行して、システムバス１０５上のＲＯＭ１０３やＳＲＡＭ１０４にアクセスを行うことが可能である。つまり、ルーティング処理とソフトウェア処理の並列動作が可能となる。
【図面の簡単な説明】
【００２７】
【図１】パケットデータの宛先アドレスに応じてパケットデータの送信先デバイスを選択することが可能なネットワーク端末のブロック図である。
【図２】第１ＮＩＣ１０８のコントロールテーブル内のデータ構造の説明図である。
【図３】第２ＮＩＣ１０９のコントロールテーブル内のデータ構造の説明図である。
【図４】第１ＮＩＣ１０８を介してパケットデータを送信する様子を示した説明図である。
【図５】第１ＮＩＣ１０８を介して、このネットワーク端末宛てのパケットデータを受信する様子を示した説明図である。
【図６】第１ＮＩＣ１０８から第２ＮＩＣ１０９ヘパケットデータがルーティングされている様子を示した説明図である。
【符号の説明】
【００２８】
１０１：ネットワーク端末
１０２：ＣＰＵ
１０３：ＲＯＭ
１０４：ＳＲＡＭ
１０５：システムバス
１０６：バスブリッジ
１０７：ローカルバス
１０８：第１ＮＩＣ（有線ネットワークインターフェースカード）
１０９：第２ＮＩＣ（無線ネットワークインターフェースカード）
１１０，１１５：コントロールテーブル
１１１，１１６：バスインターフェース
１１２，１１７：バッファメモリ
１１３，１１８：ＰＨＹ部（物理層制御処理部）
１１４，１１９：ＭＡＣ部（プロトコル制御部）
１２０：有線ネットワーク
１２１：アンテナ
２０１〜２０３，３０１〜３０３：宛先アドレスとバスアドレス対応表のエントリ
【図１】
2006074312.tif 000003
【図２】
2006074312.tif 000004
【図３】
2006074312.tif 000005
【図４】
2006074312.tif 000006
【図５】
2006074312.tif 000007
【図６】
2006074312.tif 000008