JP4456556B2 - ネットワーク装置 - Google Patents

ネットワーク装置 Download PDF

Info

Publication number
JP4456556B2
JP4456556B2 JP2005333692A JP2005333692A JP4456556B2 JP 4456556 B2 JP4456556 B2 JP 4456556B2 JP 2005333692 A JP2005333692 A JP 2005333692A JP 2005333692 A JP2005333692 A JP 2005333692A JP 4456556 B2 JP4456556 B2 JP 4456556B2
Authority
JP
Japan
Prior art keywords
processing
confirmed
offset value
message
data
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
JP2005333692A
Other languages
English (en)
Other versions
JP2007140899A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005333692A priority Critical patent/JP4456556B2/ja
Publication of JP2007140899A publication Critical patent/JP2007140899A/ja
Application granted granted Critical
Publication of JP4456556B2 publication Critical patent/JP4456556B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

本発明はネットワーク装置に係り、特に家庭内の家電や住宅設備機器やセンサなどの機器や、ビル内や街に配置された様々な機器をネットワークに接続するためのネットワーク装置、及びネットワーク装置におけるメッセージの処理方法に関するものである。
電子機器間を有線や無線で相互に接続する技術として、例えばIP(Internet Protocol)などの様々な方法が規格化され、これに準拠したネットワーク装置を内蔵した電子機器が製品化されている。この種のネットワーク装置は、大型計算機やパーソナルコンピュータ、携帯型情報機器、携帯電話などだけでなく、AV(Audio Visual)家電機器、白物家電機器、センサ、設備機器などの家庭内やビル内、街に配置される様々な機器に搭載することが提唱されている。
この種の、携帯型の電子機器や小型の家電機器やセンサをネットワークに接続するためのネットワーク装置には、小型化、低消費電力であることが求められる。また、白物家電や設備系の機器に対しては、ネットワーク装置が低コストであることが重要である。
ネットワークによる通信においては、パケットとよばれる数バイトから数キロバイトのメッセージデータをネットワーク装置間でやり取りする。ネットワーク装置は、このパケットデータに対して様々な処理を施しつつ送信および受信するので、このパケットデータのサイズに応じた大量のメモリ、例えばRAM(Random Access Memory)を必要とする。大量のメモリを実装する結果、ネットワーク装置が大型化し、コストアップ及び消費電力の増大という問題が生じる。また、パケットデータの処理に時間がかかり、実用的な応答時間を得るためには大型のプロセッサが必要となる。このことも、ネットワーク装置の大型化やコストアップ、消費電力の増大を招く。
一般的に、あるネットワーク装置がネットワークに接続され、別のネットワーク装置からの要求を受けて、その要求に応じた応答を、複数のパケットに分割して送信する場合、通常、いったん送信すべきデータ列の全部または一部をRAM上の送信バッファに格納し、その内の一部分をパケットに格納し送信する処理が行われる。この際、そのパケットの送信が正しく行われたかどうかは、送信先のネットワーク装置から、そのパケットが正しく受け取れたことを示す肯定応答を受け取るまでわからない。もし、そのパケットが正しく受け取れなかったことを示す否定応答が返答された場合には、再び送信バッファからその内の一部分をパケットに格納し送信する処理が行われる。
このような処理においては、少なくとも、1パケットに格納できるデータサイズ以上の大きさの送信バッファサイズが必要であり、また実用的には、何倍もの送信バッファが必要となる。一方、送信するパケットサイズを小さくすると、送信バッファのサイズも小さくて済むが、その場合には送信回数が増大し、通信の時間がより多くかかる。
例えば、特許文献1(特開平7−250124公報)には、送信するレイヤー毎のヘッダサイズを先に計算し、各レイヤーが書き込む送信バッファの位置を求めることにより、送信バッファを有効に活用する方法が開示されている。然るに、このような方法においても、送信バッファのサイズをパケットサイズ以下にすることはできない。
特開平7−250124公報
上述のように、パケットの送信に実用的な速度を得るために、送信パケットサイズを大きくするためには、メモリが多く必要であり、消費電力や装置サイズを増大させてしまう。また、パケットを一旦送信バッファに格納してからこれを再び取り出し送信するという処理を、低消費電力でしかも低コストでネットワークを実現しようとして、より低速のプロセッサで行った場合、処理速度が多くかかるという問題が発生する。従来の方法で応答性能を確保するためには、より高速のプロセッサが必要であり、それでは消費電力の増大やコストの増大を招く。
そこで、本発明の目的は、通信メッセージの処理に必要とされる可変メモリの容量を節約することができるネットワーク装置、メッセージの処理方法、及びそれを実行するプログラムを提供することにある。
本発明に係るネットワーク装置は、好ましくは、物理的な伝送処理によりネットワークに可変のパケットデータを送信するネットワーク装置において、一定のブロックサイズ単位で、ある通信回線で送信した確認済のオフセット値である確認済みオフセット値を保持するメモリと、該確認済みオフセット値の位置でパケットデータに格納すべき所定のブロックサイズ単位のデータを生成する第1の処理、及び該パケットデータを送信する際に、パケットで必要となるブロックサイズ単位の回数に応じた分、該第1の処理を繰り返して行う第2の処理と、を実行するプロセッサと、を有し、前記メモリは、複数の通信先を識別する識別情報と、該識別情報に対応付けられて、送信されたパケットデータに対して受信したACKによって確認された前記確認済みオフセット値と、承認の成否を示す情報と、要求されたファイルの情報とを登録する通信状態管理テーブルを記憶し、前記プロセッサは、前記第1の処理において、前記パケットデータの送信前に該所定のブロックサイズの単位として応答すべきデータを1バイト単位で作成し、作成した前記データを前記通信先に送信するとともに前記データの送信確認を1バイト単位で行い、前記パケットデータの送信に対してNAKを受信した場合、該プロセッサは該確認済みオフセット値を維持した状態で、前記第1の処理と前記第2の処理を繰り返して行ない、ACKを受信した場合、該プロセッサは該受信したACK分だけ該確認済みオフセット値を更新する。
また、一例では、このネットワーク装置は、更に、家電機器又は住宅設備機器の入出力装置、メモリ装置、各種センサ、スイッチ、制御器のいずれかを含む制御対象機器と、制御対象機器を制御する制御部を有し、制御対象機器から得られたデータに関する処理データから所定のブロックサイズ単位のデータを生成する。
本発明に係るデータ送信方法は、好ましくは、物理的な伝送処理によりネットワークに可変のパケットデータを送信するネットワーク装置におけるデータ送信方法において、一定のブロックサイズ単位で、通信回線に送信した確認済のオフセット値である確認済みオフセット値をメモリに保持する第1の処理ステップと、該確認済みオフセット値の位置でパケットデータに格納すべき1ブロックサイズ単位のデータを返す第2の処理ステップと、該パケットデータを送信する際に、パケットで必要となるブロックサイズ単位の回数に応じた数だけ該第1及び該第2の処理を繰り返して行う第3の処理ステップと、該第3の処理の期間にパケットデータの送信を行う第4の処理ステップと、を有し、前記第1の処理ステップにおいて、複数の通信先を識別する識別情報と、該識別情報に対応付けられて、送信されたパケットデータに対して受信したACKによって確認された前記確認済みオフセット値と、承認の成否を示す情報と、要求されたファイルの情報とを登録する通信状態管理テーブルを記憶し、前記第2の処理ステップにおいて、前記パケットデータの送信前に該所定のブロックサイズの単位として応答すべきデータを1バイト単位で作成し、作成した前記データを前記通信先に送信するとともに前記データの送信確認を1バイト単位で行い、前記第3の処理ステップにおいて、前記パケットデータの送信に対してNAKを受信した場合、該プロセッサは該確認済みオフセット値を維持した状態で、前記第1の処理と前記第2の処理を繰り返して行ない、ACKを受信した場合、該プロセッサは該受信したACK分だけ該確認済みオフセット値を更新する
本発明は、またメッセージの処理方法として把握され得る。すなわち、ネットワークを通して他の装置から要求メッセージを受け、応答メッセージを他の装置に送信するネットワーク装置におけるメッセージの処理方法であって、ネットワークに対するプロトコルを管理し、あるプロトコルの下に、該要求メッセージ及び該応答メッセージを処理するプロトコルスタックと、該プロトコルスタックで受信された該要求メッセージに対して応答を生成し、作成された応答メッセージを該プロトコルスタックに渡すアプリケーションとを含み、複数の通信先を識別する識別情報と、他の装置へのメッセージの送信を確認した確認済みのストリームの位置を示すオフセット値であって、該識別情報に対応付けられて、送信されたメッセージに対して受信したACKによって確認された確認済みオフセット値と、承認の成否を示す情報と、要求されたファイルの情報とを登録する通信状態管理テーブルをメモリに保持し、該プロトコルスタックは、該要求メッセージを受信すると、該アプリケーションに対して、該確認済みオフセット値を渡して応答メッセージの送信前に該所定のブロックサイズの単位として前記応答メッセージを1バイト単位で生成することを要求し(要求処理)、かつ該プロトコルスタックは、該アプリケーションで生成された前記応答メッセージを前記通信先に送信するとともに前記応答メッセージの送信確認を1バイト単位で行い(送信処理)、該要求処理と該送信処理を、前記応答メッセージの送信に対してNAKを受信した場合、該プロトコルスタックは該確認済みオフセット値を維持した状態で、該送信すべきメッセージのデータサイズに至るまで繰り返して行ない、ACKを受信した場合、該プロセッサは該受信したACK分だけ該確認済みオフセット値を更新するメッセージの処理方法である。
好ましくは、この要求処理と送信処理とを並行して実行するメッセージの処理方法である
本発明はまた、上記データ送信方法又はメッセージの処理方法をプロセッサで実行するためのプログラムとしても把握され得る。
〔発明の効果〕
本発明によれば、通信メッセージの処理に必要とされる可変メモリの容量を節約することができる。また、低速なプロセッサでも高速にメッセージの応答処理を行うことができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、ネットワークシステム及びネットワーク装置の例を示す。
図において、ネットワーク101に、コントロール装置102及びネットワーク装置109が接続され、これらの装置間でデータの通信が行なわれる。なお、図1の例では、便宜上1台のコントロール装置102と1台のネットワーク装置109が示されているが、実際にはこれらの複数の装置がネットワークに接続され、それら複数の装置間でデータ通信が行なわれることは容易に想像できるであろう。
ネットワーク101は電波、光、音、電気信号など通信手段を用いて互いの装置間でメッセージやパケットを交換するものであり、ルータやケーブルなども含むものとする。コントロール装置102はネットワーク装置109に対して制御信号を与えたり、応答を受け取ったりする、例えばPC(パーソナルコンピュータ)の如き情報処理装置である。
ネットワーク装置109は、ネットワークアダプタ110と、このアダプタに接続された制御対象機器108を有し、ネットワークアダプタ110は通信部103、CPU104、ROM105、RAM106、制御部107を備える。
通信部103はネットワーク101及びCPU104と接続され、ネットワーク101を介してパケットを通信するためのユニットである。CPU(Central Processing Unit)104は中央演算装置(プロセッサ)であり、プログラムを実行して所定の処理機能を実現する。実行されるプログラムはROM105やRAM106に記憶されているか、又は予めROM105や外部の記憶装置(図示せず)からRAM106にロードされて実行される。ROM(Read Only Memory)105はデータやプログラムを記憶する。RAM(Random Access Memory)106は、プログラムやデータを一時的に記憶する。
制御部107は、CPU104からの命令に従い、制御対象機器108を適切に制御したり、操作する。制御対象機器108は、制御部107の制御対象となる、家電機器や住宅設備機器における入出力装置やメモリ装置、各種センサやスイッチ、制御器などである。
尚、図示の例では、ネットワーク装置109として制御対象機器108まで含む単一の装置構成を示しているが、他の例としては既存の制御対象機器108にネットワークアダプタ110を接続して構成するようにしてもよい。この場合、ネットワーク装置109には、制御対象機器108は含まれないことになるが、ネットワークアダプタ110と制御対象機器108との関係は上述の例と同様である。
次に、本実施例におけるプロトコルスタックの処理について説明する。この処理は、コントロール装置102からネットワーク101上に送信される何らかの要求メッセージに対して、ネットワーク装置109から応答を返す処理である。
ここで、本発明による処理の特徴を明確にするため、従来のプロトコルスタックとの対比において説明しておきたい。そこで、まず、図2を参照して、ネットワーク装置における従来のプロトコルスタックの処理の例について、説明する。
図2において、コントロール装置202とネットワーク装置214との間でメッセージに係る通信が行なわれる。図2において、201はアプリケーション、202はコントロール装置、203はプロトコルスタック、204はある要求メッセージ、205はメッセージのコピー、206は応答メッセージ、207は応答メッセージのコピー、208は応答の生成、209は送信バッファに追加、210は応答メッセージのコピー、211はNAK、212はACK、213は送信バッファからACK分を削除、214はネットワーク装置である。
コントロール装置202はコントロール装置102に対応し、ネットワーク装置214はネットワーク装置109に対応するが、いずれも従来の装置である。ネットワーク装置214の内部の処理プログラムとして、プロトコルスタック203と、アプリケーション201を有する。今、コントロール装置202からある要求メッセージ204をネットワーク装置214へ送信したとする。このメッセージはプロトコルスタック203で受け取られ、アプリケーション201にコピーされる。アプリケーション201は応答の生成処理208を行い、応答メッセージ206をプロトコルスタック203に渡す。
プロトコルスタック203はこれを送信バッファに追加処理209を行う。そして、その後送信バッファの先頭から、応答メッセージを構成し、応答メッセージのコピー207をコントロール装置202に送信する。ここで、コントロール装置202が、NAK211すなわちこのメッセージの受け取りに失敗したことを表す不可応答を返答したとすると、再び、送信バッファの先頭から、応答メッセージを構成し、応答メッセージのコピー210をコントロール装置202に送信する。ここで、コントロール装置202がACK212すなわち、このメッセージの受け取りに成功したことを表す肯定応答を返答したとすると、送信バッファからACK分を削除する処理213を行う。
通信においてACKを受け取ることができなかった場合は、ネットワークにおける障害などの理由により、パケットデータの転送が正しく行われなかったことを意味する。その場合には、元のパケットを再送する必要がある。もちろん、常にコントロール装置202が肯定応答を返すのであれば、送信バッファに格納する処理は不要である。しかしながら、コントロール装置202が肯定応答を返すか、または、否定応答を返すか、あるいは一定時間何も応答がない、すなわちタイムアウトが発生するかは不明である。
そのため、パケットPを送信後、タイムアウトやACK、NAKの受信までパケットPのデータを保持しなければならない。もし、ネットワーク装置が複数のコントロール装置からの通信を同時に行うことを可能にするためには、それぞれの通信回線毎に上記のプログラムを別のメモリエリアで実行する必要があり、ひいては送信バッファの記憶領域は、その通信回線分だけ余計に必要となる。
従来、ネットワーク装置において、RAMエリアが小さいマイコン(マイクロコントローラ)あるいはRAMエリアの小さいネットワーク装置でこのようなプログラムを実行させる場合には、1パケットに格納するバイト数nを小さくしたり、同時に通信可能な回線数を小さくすることが一般的に行われてきた。
しかし、1パケットに格納するバイト数を小さくすると、ある送信すべきデータ量に対して、送信しなければならないパケット数が増大し、その結果、データ転送に時間がかかるようになる。また同時に通信可能な回線数を少なくすると、複数のコントローラからの操作が不可能になり、ネットワークの使用者にとって不便なシステムとなってしまう。
これに対して、本発明の実施例では、他のネットワーク装置からの要求を受けて、その要求に応じた応答を生成する際、応答に必要な現在状態とオフセット値のみを記憶し、オフセット値に対する応答を小さいブロックサイズ、例えば1バイトづつ生成しながら送信することにより、送信バッファを無くし、これにより大きいパケットサイズを用いる通信を省メモリで実現できる。
つまり、プロトコルスタックは、アプリケーションに対して、確認済みのオフセット値、即ちストリームでの位置を渡し、これに対して一定サイズ(例えば1バイト)のデータを返す処理を行い、実際のデータ転送の時点で、データ転送すべき1バイトのデータが必要になった時点でアプリケーションに要求することによって、送信バッファを無くすことができる。
図3は、ネットワーク装置のプロトコルスタックの処理を示すものであり、コントロール装置からネットワークを介して送信されるあるメッセージに対して、ネットワーク装置が応答を返す処理の実施例について説明するものである。
この処理は、ROM105に記憶されたプロトコルスタックの処理プログラムがCPU104で実行されることにより行なわれる。この図において、301はコントロール装置、302はネットワーク装置、303はプロトコルスタック、304はアプリケーション、305はある要求メッセージ、306は確認済みオフセット=0、307はメッセージのコピー、308は応答メッセージ要求、309は応答の生成、310は応答メッセージ、311は応答メッセージのコピー、312はNAK、313は確認済みオフセットはそのまま、314は応答メッセージ要求、315は応答の生成、316は応答メッセージ、317は応答メッセージのコピー、318はACK、319は確認済みオフセットをACK分だけ加算である。
ここで、確認済みオフセットにおける確認とは、送信メッセージに対してネットワーク装置302がACKを受信したことを意味し、オスセットとは、データストリームの位置を指す。
コントロール装置301はコントロール装置102に対応し、ネットワーク装置302はネットワーク装置109に対応する。ネットワーク装置302の内部の処理プログラムとして、プロトコルスタック303と、アプリケーション304を有する。今、コントロール装置301からネットワーク装置302へある要求メッセージ305を送信したとする。このメッセージはプロトコルスタック303で受け取られ、確認済みオフセット=0の処理306を行い、メッセージのコピー307がアプリケーション304に渡される。
その後、プロトコルスタック303は確認済みオフセット値を元に、応答メッセージ要求308を1バイト分だけ行う。アプリケーション304は応答の生成309を行い、応答メッセージ310を1バイト返す。これを応答メッセージのコピー311として送信する。この処理をパケット長だけ繰り返し、応答メッセージの1パケットを生成する。
ここで、コントロール装置310がNAK312すなわち、このメッセージの受け取りに失敗したことを表す不可応答を返答したとすると、確認済みオフセットはそのまま313、応答メッセージ要求308と同様に、応答メッセージ要求314を1バイト分だけ行い、応答の生成315を行い、応答メッセージ316を1バイト返す。これを応答メッセージのコピー317として送信する。この処理をパケット長だけ繰り返し、応答メッセージの1パケットを生成する。
一方、コントロール装置301がACK318すなわち、このメッセージの受け取りに成功したことを表す肯定応答を返答したとすると、確認済みオフセットをACK分だけ加算する処理319を行う。
以上のように、本実施例によれば、プロトコルスタック303は送信バッファを持たず、確認済みオフセット値を管理することにより応答を生成することができる。アプリケーション304は現在の送信済みオフセット値に相当する送信すべきデータを1バイトだけ計算して返す処理を行い、これがパケット中のデータサイズ分だけ繰り返されることにより、パケット全体が構成される。一般的に、アプリケーション304が送信データをオフセット値から生成することは、順番にデータ列を生成することに比べて時間がかかる。
また、主にインターネット上のサーバ等においては、1つのサーバ等のネットワーク装置に対して、きわめて多数の要求者であるPC、すなわちコントローラが存在するため、1つの通信回線に対する処理時間をできるだけ小さくすることが求められる。しかしながら、特に小型のネットワーク、ホームネットワークや機器の制御などの目的のネットワークにおいては、多数のネットワーク装置に対して単一または少数のコントローラから構成されることが多く、そのため、ネットワーク装置のプロセッサは1通信にそのリソースを集中させてもよい。更に、ネットワークに1バイトを送信するには、そのネットワークの転送速度に反比例するある一定の時間がかかるため、その時間以内に、1バイトを生成する処理を行うことができれば、応答速度が遅くなることはない。逆に、パケットの先頭1バイトが送信される時刻、すなわち、レスポンスにおいては、従来の方法では送信バッファに少なくとも、1パケットで格納するデータ列が生成されてから、最初の1パケットの送信が開始されるのに対して、本実施例によれば、パケットの先頭文字は1バイト分の応答を生成する時間で生成される。このため、特に低速なプロセッサを用いたネットワーク装置302であっても、実用的な応答速度が得られる。
次に、図4を参照して具体的な適用例について説明する。
図示の例は、アプリケーションとしてHTTP(Hyper Text Transfer Protocol)を実装した場合の例である。ネットワーク装置109の構成は図1と同様であり、また基本的なソフトウエアによる処理動作は図3に示したものと同様である。
ネットワーク装置109が、HTTPに応答するためには、HTTPで規定されているいくつかのメッセージを生成し、そのメッセージを適当なパケットサイズに分割して要求元に送信する。
図4において、401は認証失敗メッセージ、402はファイル非存在メッセージ、403はファイル存在メッセージ、404はファイル存在メッセージヘッダー、405はファイル存在メッセージ本文である。ファイル存在メッセージ403はファイル存在メッセージヘッダー404とファイル存在メッセージ本文405から構成されている。
コントロール装置102からファイル名やユーザ名やパスワードを含むある要求を受け取った際、まずネットワーク装置109はその要求に含まれる要素を調べる。そしてそのユーザ名に対するパスワードが不正である場合は、「認証に失敗」した状態となる。またネットワーク装置109で受け付けられないファイル名が指定されていれば「ファイル不存在」の状態となる。
この後、ネットワーク装置109は、認証状態およびファイル存在状態により出力を変更する。認証に失敗した場合は認証失敗メッセージ401を返す。認証に成功しファイル非存在の場合はファイル不存在メッセージ402を、認証に成功しファイルも存在する場合は、ファイル存在メッセージ403を、そのファイルの中身に応じたファイル存在メッセージヘッダー404、ファイル存在メッセージ本文405から組み立て返す。
このような処理を行う、プロトコルスタック303(図3)のプログラムの処理動作について、図5を用いて説明する。
まず、送信データに残りありかどうか調べる(501)。その結果、もし送信データに残りが有れば、ステップ502へ進む。一方、送信データに残りが無ければ、終了する。
送信データに残りが有る場合、パケットの送信開始する(502)。以降、パケットの送信終了までに出力したデータを連結したものを1パケットとする。ステップ503ではi=0にする。次に、i<送信サイズnかどうか調べる処理である。もしi<送信サイズnであれば、ステップ505へ進み、i<送信サイズnでなければ、ステップ509へ進む。
ステップ505では、kに現在の通信における確認済みオフセット値+iを代入する。そして、オフセットデータkの文字cを得る(506)。その結果、cを出力する(507)。そして、iにi+1を代入して(508)、ステップ504からの処理を繰り返す。
尚、上記ステップ506の処理の詳細については図7を参照して後述する。
一方、ステップ509ではパケットの送信終了する。その後、ACKまたはNAKを受信するか、タイムアウトまで待つ(510)。そして、ACKを受信したかどうか調べ(511)、もしACKを受信したら、ステップ512へ進み、確認済みオフセット値をk増加させる(512)。オフセット値がk増加して変更されると、通信状態管理テーブル600のオフセット値604が更新される(513)。
このステップにおいて、ただし、ACKパケットに確認したデータ量が含まれる場合はkの替わりにその値を用いる。一方、ACKを受信していない場合は、ステップ501へ戻り、処理を続ける。
この例において、1パケットを生成する際に、ステップ504〜508の処理を繰り返すことにより、1パケットの1文字づつを構成する。勿論、パケットの先頭にヘッダが存在する場合は、ステップ502の前にそのヘッダを送信する処理を行うことが可能である。また、パケットの末尾にフッタが存在する場合は、ステップ509の前にそのフッタを送信する処理を行うことが可能である。また、ヘッダやフッタがプロトコルスタックの別のレイヤーから構成されている場合は、ステップ506が呼び出すサブルーチンをそのレイヤーによるものと置き換えることにより、いかなるレイヤー構成でも対応可能である。また、CRC(巡回走査符号)やチェックサムをヘッダーに付け加える処理は、先に、ステップ503の直後にステップ504〜ステップ508の処理を行い、ただし、ステップ507はcを出力するのではなく、CRC値やチェックサムを更新することにより、この繰り返しでCRC値やチェックサムを取得し、再び、図5の処理フローに戻ることにより実現できる。
次に、図6を参照して、確認済みオフセット値の管理について説明する。
図6は通信状態管理テーブル600の例を示す。このテーブルは、ネットワーク装置109における通信を管理するためのものであり、RAM106に保持される。
通信識別情報603は複数の通信を識別するための情報であり、通信先のIPアドレスと通信先が決定した通信ポート番号の組などである。列601は通信識別情報が「192.168.1.1:1024」であることを示し、列602は通信識別情報が「192.168.1.2:1025」であることを示す。
確認済みオフセット値604は、ネットワーク装置がこの通信において送信し、ACKによって確認されたデータサイズを記憶する。例えば、通信識別情報が「192.168.1.1:1024」、確認済みオフセット値が「123」の例において、「123」はネットワーク装置から相手の装置に123バイト送信し、それに対するACKを受け取ったことを意味する。同じく、通信識別情報が「192.168.1.2:1025」の例では、確認済みオフセット値が245バイトであることを示す。
認証状態605は認証の成否を示す情報を記憶する。例えば、通信識別情報が「192.168.1.1:1024」の認証状態は成功であり、通信識別情報が「192.168.1.2:1025」の認証状態は失敗を示している。要求ファイル606は要求されたファイルの情報が記憶される。例えば、通信識別情報が「192.168.1.1:1024」の要求ファイルは「3456」であり、この「3456」はROM105上のアドレスを意味する。また、通信識別情報が「192.168.1.2:1025」の要求ファイルの「0」は、ファイルが存在しないを意味する。
尚、通信先が増えた場合、それに応じてテーブル600内の通信識別情報の組が、更に追加されることが理解される。
図7は、図5の処理ステップ506に関するオフセットデータkの文字cを得る処理の詳細例を示す。
この処理は、ネットワークを介して長いメッセージを送るROM105に格納されているプログラムにより実行される。
例えばパスワードの照合による不一致の結果、認証に成功したかどうか調べる(701)。もし認証に成功した場合は、ステップ702へ進む。もし認証に成功していない場合は、ステップ704へ進む。
ステップ702では、k<84かどうか調べる。ここで、「84」は認証成功メッセージの長さである。この比較の結果、もしk<84であれば、ステップ703へ進み、k<84で無ければ、ステップ714へ進む。ステップ703では認証成功メッセージのk番目(0を先頭として)の文字を返す処理をする。
上記認証に失敗した場合、ステップ704ではファイルが存在しないかどうか調べる。その結果、もしファイルが存在しない場合は、ステップ705へ進み、一方ファイルが存在する場合は、ステップ707へ進む。ステップ705では、k<41かどうか調べる。このステップ705で、「41」はファイル非存在メッセージ402の長さである。この比較の結果、もしk<41であれば、ステップ706へ進み、一方k<41で無ければ、ステップ714へ進む。ステップ706ではファイル非存在メッセージ402のk番目(0を先頭として)の文字を返す処理をする。
ステップ707では、k<31かどうか調べる。このステップ707において、「31」はファイル存在メッセージヘッダー404の長さである。比較の結果、もしk<31であれば、ステップ713へ進み、もしk<31で無ければ、ステップ708へ進む。ステップ708ではmimelenにこのファイルのmimetype文字列の長さを代入する。そして、k<31+mimelenかどうか調べる(709)。その結果、もしk<31+mimelenであれば、ステップ712へ進み、一方k<31+mimelenで無ければ、ステップ710へ進む。
ステップ710では、k<31+mimelen+ファイルのサイズかどうか調べる。その結果、もしk<31+mimelen+ファイルのサイズであれば、ステップ711へ進み、一方、k<31+mimelen+ファイルのサイズで無ければ、ステップ714へ進む。ステップ711ではこのファイルのk-31-len番目(0を先頭として)の文字を返す。ステップ712では、このファイルのmimetype文字列のk-31番目(0を先頭として)の文字を返す処理を行なう。
ステップ713では、ファイル存在メッセージヘッダー404のk番目(0を先頭として)の文字を返す処理を行なう。
また、ステップ714ではデータの終了を示す特別な文字を返す処理を行なう。
以上のように、上記実施例によれば、ネットワーク装置109で記憶しなければならないメモリ容量はわずかである。なお、本実施例の説明では、処理単位を1バイトとして説明しているが、1バイト以外のサイズ、たとえば1ビット単位や任意のブロックサイズ単位であっても良い。
上記実施例においては、1パケットを生成する際に、ステップ504〜508の処理を繰り返し、そしてその処理の中で、図7に示す処理を行う。この処理の全体は、従来の、送信バッファに認証失敗メッセージ401またはファイル不存在メッセージ402またはファイル存在メッセージ403をコピーして作成するよりも時間がかかる。しかしながら、1パケット中の1バイトを送信するには時間がかかるため、その時間以内に、ステップ504〜508の処理が完結しさえすれば、通信の応答時間としては従来の方法と変わらない。
むしろ、従来の、先に一度に送信バッファを完成させてからパケットの送信を開始する方法では、最初のパケットを送信するまでに、ある程度の時間がかかる。しかし本実施例によると、最初のパケットが送信されるまでにすべき処理は、そのパケットの先頭の1バイトを生成するだけの処理であるため、本実施例の方が高速に応答できることになる。また、多数のコントローラを相手に通信する場合は、一度に短時間の処理を行うことによって他の通信のための処理を行うことになるが、特に本実施例で想定しているような、特に小型のネットワーク、ホームネットワークや機器の制御などの目的のネットワークにおいては、多数のネットワーク装置に対して単一または少数のコントローラから構成されることが多く、処理時間が短時間であることは特に要求されない。むしろ、ユーザがコントローラを介して指令を出した際にすぐに応答が返ってくることが重要であり、そのため本実施例のようにより短時間の応答を実現することが可能である。
以上のように、本実施例によれば、別のネットワーク装置からの要求を受けて、その要求に応じた応答を生成する際、応答に必要な現在状態及びオフセット値を記憶し、オフセット値に対する応答を小さいブロックサイズ、例えば1バイトづつ生成しながら送信することにより、送信バッファを不要とすることができる。これにより、大きいパケットサイズを用いる通信を省メモリで実現する。
また、上記した1バイトずつのデータの生成処理と、ネットワークへのパケットデータの送信と並行同時的に動作させることにより、低速なプロセッサにおいても高速な応答を行うことが可能であり、これにより、低消費電力かつ低コストなネットワーク装置を実現することができる。
尚、本発明は上述した実施例に限定されず、本件発明の範囲内で種々変形可能である。以下、その幾つかの変形例について述べる。
上述した実施例においては、単純な構成のネットワーク装置を例にして説明したが、例えばヘッドセットや携帯型ゲーム機などのその他の携帯型電子機器にも適用可能であることは勿論である。また、制御対象機器としては、小型の機器に限らず、据え置き型の電子機器、例えば、計算機、パーソナルコンピュータ、携帯型情報機器、携帯電話、AV(Audio Visual)家電機器、白物家電機器、センサ、設備機器などの家庭内、ビル内、街に設置される様々な機器にも適用できる。
また、ネットワーク装置には、例えば人感センサ、温度センサ、湿度センサ、ガス漏れセンサなどのセンサが直接組み込まれていてもよいし、また、LEDやブザーや液晶ディスプレイなどの出力機器が直接組み込まれていても良い。
また、他の変形例として、上記実施例では、特定のパケットフォーマットについて例示しているが、TCP/IP(Transmission Control Protocol/ Internet Protocol)、HTTPなどにおけるアドレス処理、フラグメント処理、上位プロトコル処理であっても、同様に本発明を適用することができる。
本発明の一実施例におけるネットワークシステム及びネットワーク装置の構成例を示す図。 ネットワーク装置における従来のプロトコルスタックの処理の例を示す図。 本発明の一実施例によるネットワーク装置におけるプロトコルスタックの処理の例を示す図。 一実施例におけるネットワーク装置109で扱われるHTTPのデータの例を示す図。 一実施例におけるプロトコルスタックプログラムの処理動作を示すのフローチャート図。 一実施例における通信状態管理テーブルの例を示す図。 一実施例におけるプロトコルスタックプログラムの処理(図5)のステップ506に係る、オフセットデータkの文字cを得るプログラムの処理動作の一例を示すフローチャート図。
符号の説明
101:ネットワーク 102:コントロール装置 103:通信部 104:CPU 105:ROM 106:RAM 107制御部 108:制御対象機器 109:ネットワーク装置 110:ネットワークアダプタ
301:コントロール装置 302:ネットワーク装置 303:プロトコルスタック 304:アプリケーション 600:通信状態管理テーブル。

Claims (6)

  1. 物理的な伝送処理によりネットワークに可変のパケットデータを送信するネットワーク装置において、
    一定のブロックサイズ単位で、ある通信回線で送信した確認済のオフセット値である確認済みオフセット値を保持するメモリと、
    該確認済みオフセット値の位置でパケットデータに格納すべき所定のブロックサイズ単位のデータを生成する第1の処理、及び該パケットデータを送信する際に、パケットで必要となるブロックサイズ単位の回数に応じた分、該第1の処理を繰り返して行う第2の処理と、を実行するプロセッサと、を有し、
    前記メモリは、複数の通信先を識別する識別情報と、該識別情報に対応付けられて、送信されたパケットデータに対して受信したACKによって確認された前記確認済みオフセット値と、承認の成否を示す情報と、要求されたファイルの情報とを登録する通信状態管理テーブルを記憶し、
    前記プロセッサは、前記第1の処理において、前記パケットデータの送信前に該所定のブロックサイズの単位として応答すべきデータを1バイト単位で作成し、作成した前記データを前記通信先に送信するとともに前記データの送信確認を1バイト単位で行い、前記パケットデータの送信に対してNAKを受信した場合、該プロセッサは該確認済みオフセット値を維持した状態で、前記第1の処理と前記第2の処理を繰り返して行ない、ACKを受信した場合、該プロセッサは該受信したACK分だけ該確認済みオフセット値を更新する、ことを特徴とするネットワーク装置。
  2. 該ネットワーク装置は、更に、家電機器又は住宅設備機器の入出力装置、メモリ装置、各種センサ、スイッチ、制御器のいずれかを含む制御対象機器と、該制御対象機器を制御する制御部を有し、該制御対象機器から得られたデータに関する処理データから所定のブロックサイズ単位のデータを生成することを特徴とする請求項1に記載のネットワーク装置。
  3. 物理的な伝送処理によりネットワークに可変のパケットデータを送信するネットワーク装置におけるデータ送信方法において、
    一定のブロックサイズ単位で、通信回線に送信した確認済のオフセット値である確認済みオフセット値をメモリに保持する第1の処理ステップと、
    該確認済みオフセット値の位置でパケットデータに格納すべき1ブロックサイズ単位のデータを返す第2の処理ステップと、
    該パケットデータを送信する際に、パケットで必要となるブロックサイズ単位の回数に応じた数だけ該第1及び該第2の処理を繰り返して行う第3の処理ステップと、
    該第3の処理の期間にパケットデータの送信を行う第4の処理ステップと、を有し、
    前記第1の処理ステップにおいて、複数の通信先を識別する識別情報と、該識別情報に対応付けられて、送信されたパケットデータに対して受信したACKによって確認された前記確認済みオフセット値と、承認の成否を示す情報と、要求されたファイルの情報とを登録する通信状態管理テーブルを記憶し、
    前記第2の処理ステップにおいて、前記パケットデータの送信前に該所定のブロックサイズの単位として応答すべきデータを1バイト単位で作成し、作成した前記データを前記通信先に送信するとともに前記データの送信確認を1バイト単位で行い、
    前記第3の処理ステップにおいて、前記パケットデータの送信に対してNAKを受信した場合、該プロセッサは該確認済みオフセット値を維持した状態で、前記第1の処理と前記第2の処理を繰り返して行ない、ACKを受信した場合、該プロセッサは該受信したACK分だけ該確認済みオフセット値を更新する、ことを特徴とするデータ送信方法。
  4. ネットワークを通して他の装置から要求メッセージを受け、応答メッセージを他の装置に送信するネットワーク装置におけるメッセージの処理方法であって、ネットワークに対するプロトコルを管理し、あるプロトコルの下に、該要求メッセージ及び該応答メッセージを処理するプロトコルスタックと、該プロトコルスタックで受信された該要求メッセージに対して応答を生成し、作成された応答メッセージを該プロトコルスタックに渡すアプリケーションとを含み、
    複数の通信先を識別する識別情報と、他の装置へのメッセージの送信を確認した確認済みのストリームの位置を示すオフセット値であって、該識別情報に対応付けられて、送信されたメッセージに対して受信したACKによって確認された確認済みオフセット値と、承認の成否を示す情報と、要求されたファイルの情報とを登録する通信状態管理テーブルをメモリに保持し、
    該プロトコルスタックは、該要求メッセージを受信すると、該アプリケーションに対して、該確認済みオフセット値を渡して応答メッセージの送信前に該所定のブロックサイズの単位として前記応答メッセージを1バイト単位で生成することを要求し(要求処理)、
    かつ該プロトコルスタックは、該アプリケーションで生成された前記応答メッセージを前記通信先に送信するとともに前記応答メッセージの送信確認を1バイト単位で行い(送信処理)、
    該要求処理と該送信処理を、前記応答メッセージの送信に対してNAKを受信した場合、該プロトコルスタックは該確認済みオフセット値を維持した状態で、該送信すべきメッセージのデータサイズに至るまで繰り返して行ない、ACKを受信した場合、該プロセッサは該受信したACK分だけ該確認済みオフセット値を更新する、ことを特徴とするメッセージの処理方法。
  5. 該要求処理と該送信処理とを並行して実行することを特徴とする請求項4の処理方法。
  6. ネットワークを通して他の装置から要求メッセージを受け、応答メッセージを他の装置に送信するネットワーク装置においてメッセージを処理するプログラムであって、ネットワークに対するプロトコルを管理し、あるプロトコルの下に、該要求メッセージ及び該応答メッセージを処理するプロトコルスタックと、該プロトコルスタックで受信された該要求メッセージに対して応答を生成し、作成された応答メッセージを該プロトコルスタックに渡すアプリケーションとを含み、
    該プロトコルスタックは、複数の通信先を識別する識別情報と、他の装置へのメッセージの送信を確認した確認済みのストリームの位置を示すオフセット値であって、該識別情報に対応付けられて、送信されたメッセージに対して受信したACKによって確認された確認済みオフセット値と、承認の成否を示す情報と、要求されたファイルの情報とを管理し、
    該要求メッセージを受信すると、該アプリケーションに対して、該確認済みオフセット値を渡して応答メッセージの送信前に該所定のブロックサイズの単位として前記応答メッセージを1バイト単位で生成することを要求し(要求処理)、
    かつ、該アプリケーションで生成された前記応答メッセージを前記通信先に送信するとともに前記応答メッセージの送信確認を1バイト単位で行い(送信処理)、
    該要求処理と該送信処理を、前記応答メッセージの送信に対してNAKを受信した場合、該プロトコルスタックは該確認済みオフセット値を維持した状態で、該送信すべきメッセージのデータサイズに至るまで繰り返して行ない、ACKを受信した場合、該プロセッサは該受信したACK分だけ該確認済みオフセット値を更新する、ことを特徴とするメッセージの処理のためのプログラム。
JP2005333692A 2005-11-18 2005-11-18 ネットワーク装置 Expired - Fee Related JP4456556B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005333692A JP4456556B2 (ja) 2005-11-18 2005-11-18 ネットワーク装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005333692A JP4456556B2 (ja) 2005-11-18 2005-11-18 ネットワーク装置

Publications (2)

Publication Number Publication Date
JP2007140899A JP2007140899A (ja) 2007-06-07
JP4456556B2 true JP4456556B2 (ja) 2010-04-28

Family

ID=38203676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005333692A Expired - Fee Related JP4456556B2 (ja) 2005-11-18 2005-11-18 ネットワーク装置

Country Status (1)

Country Link
JP (1) JP4456556B2 (ja)

Also Published As

Publication number Publication date
JP2007140899A (ja) 2007-06-07

Similar Documents

Publication Publication Date Title
KR100605177B1 (ko) 홈 네트워크 관리 시스템의 커넥션 핸들링 장치
EP3014852B1 (en) Methods for dynamically binding header field identifiers in a network control protocol
US7428690B2 (en) Packet communication apparatus
WO2009014875A1 (en) Data stream control for network devices
EP1564959A1 (en) System and method for trivial file transfer protocol including broadcasting function
JP4401864B2 (ja) パケット生成方法、通信方法、パケット処理方法及びデータ構造
CN108737259A (zh) 网关设备、数据传输方法及存储介质
TW200807966A (en) Scaling egress network traffic
WO2011076146A1 (zh) 下载应用数据的方法、数字电视接收终端及系统
WO2012075885A1 (zh) 一种数据传输方法及装置
CN112383612B (zh) 一种文件传输方法、装置、设备及可读存储介质
CN101605128A (zh) Linux主从设备通过以太网接口进行通信的方法
JP4456556B2 (ja) ネットワーク装置
CN111262798B (zh) 一种信息处理方法、设备及计算机存储介质
US7907556B2 (en) Apparatus and method for controlling mobile terminal in data communication system
CN110798355A (zh) 一种智能插座的配网方法、装置及智能插座和存储介质
JP4019012B2 (ja) Fpgaを具備するcpu装置とその初期化方法
CN113301535B (zh) 一种数据传输方法、装置及系统
US20210014006A1 (en) System and method for implementing a hybrid automatic repeat request process
US7269660B1 (en) Limited TCP/IP implementation using minimal resources
JP4413121B2 (ja) Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法
WO2022116015A1 (zh) 数据处理方法、装置、电子设备及存储介质
KR100366824B1 (ko) 실시간 원격제어 방법
WO2005004399A1 (en) Reservation information processing apparatus for mobile home network system
JP4456553B2 (ja) ネットワークシステム及びコマンドデータの処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091127

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

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

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

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees