(57)【要約】【課題】バッファメモリのオーバーフローを防止することができる半導体装置を提供する。【解決手段】バッファメモリ３２と、バッファメモリ３２に格納されたメッセージを送信する送信回路３４と、メッセージがユニキャストメッセージである場合、又はメッセージがブロードキャストメッセージであり且つブロードキャストメッセージを書き込む旨の指示を受けている場合に、メッセージをバッファメモリ３２に書き込む受信回路３３と、ブロードキャストメッセージを書き込まない旨を受信回路３３に指示し、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージを書き込み、ＤＨＣＰｏｆｆｅｒメッセージを読み出し、ＤＨＣＰｒｅｑｕｅｓｔメッセージを書き込み、ＤＨＣＰａｃｋメッセージを読み出し、ブロードキャストメッセージをバッファメモリに書き込む旨を受信回路３３に指示するＣＰＵ３１とを具備する。【選択図】  図３
2004282548.tif 000002
【特許請求の範囲】
【請求項１】
サーバからＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスの付与を受け、付与されたＩＰアドレスを用いて外部装置との間の通信を行うための半導体装置であって、
送信メッセージ又は受信メッセージを格納するためのメモリと、
前記メモリに格納された送信メッセージを読み出してネットワークに送信する第１の回路と、
ネットワークから受信した受信メッセージがユニキャストメッセージである場合、又は受信メッセージがブロードキャストメッセージであり且つブロードキャストメッセージを前記メモリに書き込む旨の指示を受けている場合に、受信メッセージを前記メモリに書き込む第２の回路と、
受信メッセージがブロードキャストメッセージである場合に受信メッセージを前記メモリに書き込まない旨を前記第２の回路に指示し、前記サーバへのメッセージの送信又は前記サーバからのユニキャストメッセージの受信により、前記サーバからＩＰアドレスの付与を受け、受信メッセージがブロードキャストメッセージである場合に受信メッセージを前記メモリに書き込む旨を前記第２の回路に指示し、前記サーバから付与されたＩＰアドレスを用いて前記外部装置との間の通信を行う第３の回路と、
を具備する半導体装置。
【請求項２】
前記第３の回路が、受信メッセージがブロードキャストメッセージである場合に受信メッセージを前記メモリに書き込まない旨を前記第２の回路に指示し、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージを前記メモリに書き込み、前記ＤＨＣＰｄｉｓｃｏｖｅｒメッセージへの応答としてのＤＨＣＰｏｆｆｅｒメッセージを前記メモリから読み出して所定の処理を行い、前記ＤＨＣＰｏｆｆｅｒメッセージへの応答としてのＤＨＣＰｒｅｑｕｅｓｔメッセージを前記メモリに書き込み、前記ＤＨＣＰｏｆｆｅｒメッセージへの応答としてのＤＨＣＰａｃｋメッセージを前記メモリから読み出し、受信メッセージがブロードキャストメッセージである場合に受信メッセージを前記メモリに書き込む旨を前記第２の回路に指示し、前記ＤＨＣＰａｃｋメッセージによって付与されたＩＰアドレスを用いて前記外部装置との間の通信を行う、請求項１記載の半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバからＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスの付与を受け、付与されたＩＰアドレスを用いて通信を行うための半導体装置に関する。
【０００２】
【従来の技術】
従来より、パーソナルコンピュータ等のクライアント端末にＩＰアドレスを動的に付与することが行われており、そのためのプロトコルとして、一般に、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）が用いられている。ＤＨＣＰは、ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）２１３１等で規定されているプロトコルである。
【０００３】
ＤＨＣＰに基づくＩＰアドレスの付与は、一般に、（１）クライアント端末が、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージをブロードキャスト送信し、（２）ＤＨＣＰサーバが、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージへの応答としてのＤＨＣＰｏｆｆｅｒメッセージをユニキャスト送信し、（３）クライアント端末が、ＤＨＣＰｏｆｆｅｒメッセージへの応答としてのＤＨＣＰｒｅｑｕｅｓｔメッセージをブロードキャスト送信し、（４）ＤＨＣＰサーバが、ＤＨＣＰｒｅｑｕｅｓｔメッセージへの応答としてのＤＨＣＰａｃｋメッセージをユニキャスト送信することにより、行われる。
【０００４】
しかしながら、ネットワークに複数のクライアント端末が接続されており、これらのクライアント端末が相前後してＩＰアドレスの付与をサーバに要求した場合（例えば、複数のクライアント端末が相前後して起動された場合等）には、複数のＤＨＣＰｄｉｓｃｏｖｅｒメッセージ又はＤＨＣＰｒｅｑｕｅｓｔメッセージがブロードキャスト送信され、クライアント端末内の通信コントローラが受信メッセージを格納するために具備しているバッファメモリがオーバーフローしてしまうことがあった。
【０００５】
ところで、ＬＡＮにおける通信プロトコル（ＴＣＰ／ＩＰ：ＴｒａｎｓｍｉｓｓｉｏｎＣｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークに接続された複数のクライアントに、動的ホスト設定プロトコル（ＤＨＣＰ：Ｄｙｎａｍｉｃ  Ｈｏｓｔ  ＣｏｎｆｉｇｕｒａｔｉｏｎＰｒｏｔｏｃｏｌ）を用いてＩＰアドレスの割り当てを行うＤＨＣＰサーバ装置において、管理対象となるＤＨＣＰクライアントのホスト名を登録したホスト管理データベースを有し、クライアントからリース情報の要求がある時、該要求を送信したクライアントのホスト名の登録の有無を、該ホスト管理データベースで照合し、ホスト名の一致が取れる時に、仮割り当てのＩＰアドレスをブロードキャスト（同報通信）し、不一致の時、該クライアントからのＩＰアドレス付与の要求を廃棄することを特徴とするＤＨＣＰサーバ装置が知られている（例えば、特許文献１参照）。
【０００６】
しかしながら、特許文献１に掲載されたサーバ装置は、同一ネットワーク内に複数のＤＨＣＰサーバが接続されている場合に、クライアントに応じたＤＨＣＰサーバのみがＤＨＣＰＯＦＦＥＲメッセージを送信することによりトラヒックを軽減するものであるが、バッファオーバーフローを防止することができるクライアントに関するものではない。
【０００７】
【特許文献１】
特開２０００−５９３８７号公報（第１頁、図１）
【０００８】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、サーバからＩＰアドレスの付与を受け、付与されたＩＰアドレスを用いて外部装置との間の通信を行うための半導体装置であって、複数のクライアント端末が相前後してＩＰアドレスの付与をサーバに要求した場合であっても、メモリのオーバーフローを防止することができる半導体装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係る半導体装置は、サーバからＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスの付与を受け、付与されたＩＰアドレスを用いて外部装置との間の通信を行うための半導体装置であって、送信メッセージ又は受信メッセージを格納するためのメモリと、メモリに格納された送信メッセージを読み出してネットワークに送信する第１の回路と、ネットワークから受信した受信メッセージがユニキャストメッセージである場合、又は受信メッセージがブロードキャストメッセージであり且つブロードキャストメッセージをメモリに書き込む旨の指示を受けている場合に、受信メッセージをメモリに書き込む第２の回路と、受信メッセージがブロードキャストメッセージである場合に受信メッセージをメモリに書き込まない旨を第２の回路に指示し、サーバへのメッセージの送信又はサーバからのユニキャストメッセージの受信により、サーバからＩＰアドレスの付与を受け、受信メッセージがブロードキャストメッセージである場合に受信メッセージをメモリに書き込む旨を第２の回路に指示し、サーバから付与されたＩＰアドレスを用いて外部装置との間の通信を行う第３の回路とを具備する。
【００１０】
ここで、第３の回路が、受信メッセージがブロードキャストメッセージである場合に受信メッセージをメモリに書き込まない旨を第２の回路に指示し、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージをメモリに書き込み、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージへの応答としてのＤＨＣＰｏｆｆｅｒメッセージをメモリから読み出して所定の処理を行い、ＤＨＣＰｏｆｆｅｒメッセージへの応答としてのＤＨＣＰｒｅｑｕｅｓｔメッセージをメモリに書き込み、ＤＨＣＰｏｆｆｅｒメッセージへの応答としてのＤＨＣＰａｃｋメッセージをメモリから読み出し、受信メッセージがブロードキャストメッセージである場合に受信メッセージをメモリに書き込む旨を第２の回路に指示し、ＤＨＣＰａｃｋメッセージによって付与されたＩＰアドレスを用いて外部装置との間の通信を行うこととしても良い。
【００１１】
以上の構成によれば、複数のクライアント端末が相前後してＩＰアドレスの付与をサーバに要求した場合であっても、メモリのオーバーフローを防止することができる。
【００１２】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。
図１は、本発明の一実施形態としての通信コントローラを用いた２つの端末を含むシステムを示す図である。図１に示すように、システム１は、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）サーバ２と、端末１１、１２とを含んでいる。
【００１３】
ＤＨＣＰサーバ２は、ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）２１３１等で規定されているＤＨＣＰに基づいて、端末１１、１２にＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを付与する。端末１１、１２は、ＤＨＣＰサーバ２からＩＰアドレスの付与を受けると、付与されたＩＰアドレスを用いて、相互に通信を行うことが可能となる。
【００１４】
図２は、端末１１、１２の内部構成を示す図である。図２に示すように、端末１１、１２は、ＣＰＵ２１と、ＲＡＭ２２と、ＲＯＭ２３と、表示部２４と、入力部２５と、通信コントローラ２６とを具備する。ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、表示部２４、入力部２５、及び、通信コントローラ２６は、バスＢ１を介して相互に接続されている。
表示部２４は、文字、画像等を表示するＬＣＤ等であり、入力部２５は、ユーザがデータ等を入力するためのタッチパネル等である。
【００１５】
ＣＰＵ２１は、ＲＡＭ２２を作業用領域として使用しながら、ＲＯＭ２３に格納されたＯＳ（オペレーティングシステム）を実行し、さらに、ユーザからの要求に応じて、ＲＯＭ２３に格納された各種のアプリケーションプログラムを実行する。
ＣＰＵ２１は、アプリケーションプログラムの実行において、他の端末との間でＴＣＰ／ＩＰによる通信を行う場合には、他の端末との間の通信を通信コントローラ２６に要求する。
【００１６】
通信コントローラ２６は、ＤＨＣＰに基づいて、端末１１、１２の起動時、又は所定の時（例えば、再起動時等）において、ＤＨＣＰサーバ２（図１参照）にＩＰアドレスの付与を要求する。通信コントローラ２６は、ＩＰアドレスの付与を受けると、他の端末と通信を行うことが可能となる。
【００１７】
図３は、通信コントローラ２６の内部構成を示す図である。図３に示すように、通信コントローラ２６は、ＣＰＵ３１と、バッファメモリ３２と、受信回路３３と、送信回路３４とを具備する。ＣＰＵ３１、バッファメモリ３２、受信回路３３、及び、送信回路３４は、バスＢ２を介して相互に接続されている。また、バスＢ２は、バスＢ１（図２）に接続されている。
バッファメモリ３２は、送信メッセージ又は受信メッセージを格納するためのメモリである。
【００１８】
ＣＰＵ３１は、ＤＨＣＰサーバ２又は他の端末に送信するための送信メッセージを作成してバッファメモリ３２に書き込む。また、ＣＰＵ３１は、受信回路３３を制御し、受信回路３３によって受信されバッファメモリ３２に書き込まれた受信メッセージを読み出し、所定の処理を行う。ＣＰＵ３１は、送信メッセージのバッファメモリ３２への書き込み及び受信メッセージのバッファメモリ３２からの読み出しによって、ＤＨＣＰサーバ２又は他の端末との通信を行うことができる。
送信回路３４は、ＣＰＵ３１によってバッファメモリ３２に書き込まれた送信メッセージを読み出し、ネットワークに送信する。
【００１９】
図４は、受信回路３３の内部構成を示す図である。図４に示すように、受信回路３３は、メッセージ分別回路４１と、スイッチ回路４２とを具備する。
メッセージ分別回路４１は、ブロードキャストメッセージ及びユニキャストメッセージをネットワークから受信する。そして、メッセージ分別回路４１は、ユニキャストメッセージを受信した場合には、バッファメモリ３２に書き込み、ブロードキャストメッセージを受信した場合には、スイッチ回路４２に出力する。
【００２０】
スイッチ回路４２は、ブロードキャストメッセージをバッファメモリ３２に書き込まない旨の指示又はブロードキャストメッセージをバッファメモリ３２に書き込む旨の指示をＣＰＵ３１から受けている。そして、スイッチ回路４２は、ブロードキャストメッセージをバッファメモリ３２に書き込まない旨の指示をＣＰＵ３１から受けている間にブロードキャストメッセージをメッセージ分別回路４１から受け取った場合には、受け取ったブロードキャストメッセージのバッファメモリ３２への書き込みを行わない。一方、スイッチ回路４２は、ブロードキャストメッセージをバッファメモリ３２に書き込む旨の指示をＣＰＵ３１から受けている間にブロードキャストメッセージをメッセージ分別回路４１から受け取った場合には、受け取ったブロードキャストメッセージのバッファメモリ３２への書き込みを行う。
なお、ＣＰＵ３１からスイッチ回路４２へのブロードキャストメッセージをバッファメモリ３２に書き込まない旨の指示又はブロードキャストメッセージをバッファメモリ３２に書き込む旨の指示は、制御信号によって行うものとしても良いし、コマンドによって行うものとしても良い。
【００２１】
次に、システム１の動作について説明する。図５は、端末１１が起動した後に端末１２が起動し、ＤＨＣＰサーバ２からＩＰアドレスの付与を順次受ける場合における端末１１、端末１２、及び、ＤＨＣＰサーバ２の動作を示すフローチャートである。
【００２２】
端末１１が起動すると、端末１１の通信コントローラ２６内のＣＰＵ３１は、ブロードキャストメッセージを端末１１の通信コントローラ２６内のバッファメモリ３２に書き込まない旨を端末１１の通信コントローラ２６内のスイッチ回路４２に指示する。
同様に、端末１２が起動すると、端末１２の通信コントローラ２６内のＣＰＵ３１は、ブロードキャストメッセージを端末１２の通信コントローラ２６内のバッファメモリ３２に書き込まない旨を端末１２の通信コントローラ２６内のスイッチ回路４２に指示する。
【００２３】
端末１１の通信コントローラ２６内のＣＰＵ３１は、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージを端末１１の通信コントローラ２６内のバッファメモリ３２に書き込み、端末１１の通信コントローラ２６内の送信回路３４は、端末１１の通信コントローラ２６内のバッファメモリ３２に書き込まれたＤＨＣＰｄｉｓｃｏｖｅｒメッセージをネットワークにブロードキャスト送信する（ステップＳ２１）。なお、ブロードキャスト送信は、宛先のＩＰアドレスのホスト部を全て「１」とすることにより又はＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスの４８ビットを全て「１」とすることにより、可能である。
ＤＨＣＰサーバ２は、端末１１がブロードキャスト送信したＤＨＣＰｄｉｓｃｏｖｅｒメッセージを受信するが、端末１２の通信コントローラ２６内の受信回路３３は、端末１２の通信コントローラ２６内のＣＰＵ３１の指示に応じて、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージの端末１２の通信コントローラ２６内のバッファメモリ３２への書き込みを行わない。
【００２４】
ＤＨＣＰサーバ２は、端末１１がブロードキャスト送信したＤＨＣＰｄｉｓｃｏｖｅｒメッセージへの応答としてのＤＨＣＰｏｆｆｅｒメッセージを端末１１にユニキャスト送信する（ステップＳ１１）。なお、ユニキャスト送信は、端末１１の通信コントローラ２６のＭＡＣアドレスを宛先とすることにより可能である。
端末１１は、ＤＨＣＰサーバ２がユニキャスト送信したＤＨＣＰｏｆｆｅｒメッセージを受信する。
【００２５】
一方、端末１２の通信コントローラ２６内のＣＰＵ３１は、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージを端末１２の通信コントローラ２６内のバッファメモリ３２に書き込み、端末１２の通信コントローラ２６内の送信回路３４は、端末１２の通信コントローラ２６内のバッファメモリ３２に書き込まれたＤＨＣＰｄｉｓｃｏｖｅｒメッセージをネットワークにブロードキャスト送信する（ステップＳ３１）。
ＤＨＣＰサーバ２は、端末１２がブロードキャスト送信したＤＨＣＰｄｉｓｃｏｖｅｒメッセージを受信するが、端末１１の通信コントローラ２６内の受信回路３３は、端末１１の通信コントローラ２６内のＣＰＵ３１の指示に応じて、ＤＨＣＰｄｉｓｃｏｖｅｒメッセージの端末１１の通信コントローラ２６内のバッファメモリ３２への書き込みを行わない。
【００２６】
ＤＨＣＰサーバ２は、端末１２がブロードキャスト送信したＤＨＣＰｄｉｓｃｏｖｅｒメッセージへの応答としてのＤＨＣＰｏｆｆｅｒメッセージを端末１２にユニキャスト送信する（ステップＳ１２）。
端末１２は、ＤＨＣＰサーバ２がユニキャスト送信したＤＨＣＰｏｆｆｅｒメッセージを受信する。
【００２７】
端末１１の通信コントローラ２６内のＣＰＵ３１は、ＤＨＣＰｏｆｆｅｒメッセージへの応答としてのＤＨＣＰｒｅｑｕｅｓｔメッセージを端末１１の通信コントローラ２６内のバッファメモリ３２に書き込み、端末１１の通信コントローラ２６内の送信回路３４は、端末１１の通信コントローラ２６内のバッファメモリ３２に書き込まれたＤＨＣＰｒｅｑｕｅｓｔメッセージをネットワークにブロードキャスト送信する（ステップＳ２２）。
ＤＨＣＰサーバ２は、端末１１がブロードキャスト送信したＤＨＣＰｒｅｑｕｅｓｔメッセージを受信するが、端末１２の通信コントローラ２６内の受信回路３３は、端末１２の通信コントローラ２６内のＣＰＵ３１の指示に応じて、ＤＨＣＰｒｅｑｕｅｓｔメッセージの端末１２の通信コントローラ２６内のバッファメモリ３２への書き込みを行わない。
【００２８】
ＤＨＣＰサーバ２は、端末１１がブロードキャスト送信したＤＨＣＰｒｅｑｕｅｓｔメッセージへの応答としてのＤＨＣＰａｃｋメッセージを端末１１にユニキャスト送信する（ステップＳ１３）。
端末１１は、ＤＨＣＰサーバ２がユニキャスト送信したＤＨＣＰａｃｋメッセージを受信する。
【００２９】
一方、端末１２の通信コントローラ２６内のＣＰＵ３１は、ＤＨＣＰｏｆｆｅｒメッセージへの応答としてのＤＨＣＰｒｅｑｕｅｓｔメッセージを端末１２の通信コントローラ２６内のバッファメモリ３２に書き込み、端末１２の通信コントローラ２６内の送信回路３４は、端末１２の通信コントローラ２６内のバッファメモリ３２に書き込まれたＤＨＣＰｒｅｑｕｅｓｔメッセージをネットワークにブロードキャスト送信する（ステップＳ３２）。
ＤＨＣＰサーバ２は、端末１２がブロードキャスト送信したＤＨＣＰｒｅｑｕｅｓｔメッセージを受信するが、端末１１の通信コントローラ２６内の受信回路３３は、端末１１の通信コントローラ２６内のＣＰＵ３１の指示に応じて、ＤＨＣＰｒｅｑｕｅｓｔメッセージの端末１１の通信コントローラ２６内のバッファメモリ３２への書き込みを行わない。
【００３０】
ＤＨＣＰサーバ２は、端末１２がブロードキャスト送信したＤＨＣＰｒｅｑｕｅｓｔメッセージへの応答としてのＤＨＣＰａｃｋメッセージを端末１２にユニキャスト送信する（ステップＳ１４）。
端末１２は、ＤＨＣＰサーバ２がユニキャスト送信したＤＨＣＰａｃｋメッセージを受信する。
以上により、端末１１、１２には、ＩＰアドレスがそれぞれ付与され、端末１１、１２は、相互に通信を行うことが可能となる。
【００３１】
このように、通信コントローラ２６によれば、ＩＰアドレスの付与を受けるためにＤＨＣＰサーバ２とメッセージを送受信している間に、他の端末がブロードキャスト送信したメッセージのバッファメモリ３２への書き込みを行わないので、バッファメモリ３２がオーバーフローすることを防止することができる。
【図面の簡単な説明】
【図１】本実施形態に係る通信コントローラを用いたシステムを示す図。
【図２】図１の端末１１、１２の内部構成を示す図。
【図３】図２の通信コントローラ２６の内部構成を示す図。
【図４】図３の受信回路３３の内部構成を示す図。
【図５】図１のシステム１の動作を示すフローチャート。
【符号の説明】
１  システム、２  ＤＨＣＰサーバ、１１、１２  端末、２１、３１  ＣＰＵ、２２  ＲＡＭ、２３  ＲＯＭ、２４  表示部、２５  入力部、２６  通信コントローラ、３２  バッファメモリ、３３  受信回路、３４  送信回路、４１  メッセージ分別回路、４２  スイッチ回路
【図１】
2004282548.tif 000003
【図２】
2004282548.tif 000004
【図３】
2004282548.tif 000005
【図４】
2004282548.tif 000006
【図５】
2004282548.tif 000007