JP2004159038A - Communication device and communication method - Google Patents
Communication device and communication method Download PDFInfo
- Publication number
- JP2004159038A JP2004159038A JP2002322052A JP2002322052A JP2004159038A JP 2004159038 A JP2004159038 A JP 2004159038A JP 2002322052 A JP2002322052 A JP 2002322052A JP 2002322052 A JP2002322052 A JP 2002322052A JP 2004159038 A JP2004159038 A JP 2004159038A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- processing
- host
- important
- 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.)
- Pending
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、例えばローカルエリアネットワーク等のネットワーク通信に係る通信装置及び通信方法に関するものである。
【0002】
【従来の技術】
ローカルエリアネットワーク(LAN)上でホストを通信させ各々のプロトコル処理を行なう場合、従来では、ネットワークインターフェースカードとそれに対応するデバイスドライバ、並びにホストに搭載されたプロトコルスタックが関与して処理を行なうという方式がとられていた。
この方式ではネットワークインターフェースカードとデバイスドライバはLAN伝送路へのパケット送信や、LAN伝送路からのパケット受信しか行なわない。つまり送信パケットの生成や受信パケットの解析、それに伴うプロトコル処理は全てホストが行なっている。
【0003】
図7にLAN接続されたホストシステムの例を示す。
図7ににおいては、2台のホストシステム30,40の間でイーサネット(登録商標)をデータ転送媒体として、例えばMPEG方式の圧縮動画データ等の転送を行なうことを想定する。
図7におけるホスト31,41とは、CPU及びRAM等のハードウエアによる主たる情報処理部であり、CPUで起動されるアプリケーションソフトウェアや各種プロトコル処理のためのプログラムも含めたものとしている。またホストシステム30,40とは上記ホスト31,41とネットワークインターフェースカード32,42により構成されるコンピュータシステムを指す。
【0004】
ホストシステム40からホストシステム30にMPEGデータの送信を行う場合を考える。この場合、まずホストシステム40では、搭載されたソフトウェアコーデックかあるいはハードウェアコーデックでMPEGエンコードされたデータに対して、ホスト41のCPUとソフトウェアにより、リアルタイムストリーム転送のための各階層の処理を行う。例えばRTP(Real Time Transport Protocol)/UDP(User Datagram Protocol)/IP(Internet Protocol)/MAC(Media Access Control)の各プロトコルのパケッタイズ処理並びにヘッダ処理がなされる。
その後、ホスト41は処理を施したパケットをネットワークインターフェースカード42に転送し、ネットワークインターフェースカード42が伝送路100を介してホストシステム30へ送信する。
【0005】
ホストシステム30では、搭載しているネットワークインターフェースカード32からのインタラプト(受信通知としての割込要求)によりパケットを受信したことをホスト31に感知させる。するとホスト31は、ネットワークインターフェースカード32内のバッファに蓄えられた受信パケットを読み出す。なお、このホスト31に対するインタラプトは受信パケット到着毎に発生される。
ホスト31は、ネットワークインターフェースカード32から読み出したパケットのヘッダ解析を、プロトコル処理ソフトウェアとホストCPUにより行ないMACプロトコル/IP/UDP/RTPを処理した後、ソフトウェアまたはハードウェアで実現されたコーデックへ転送し、MPEG動画データの再生を行なうものとなる。
【0006】
また、このようなLAN通信に適用できる技術として、次のものが知られている。
【0007】
【特許文献1】特開平7−95260号公報
【0008】
この特許文献1では、図9(a)の構成で図9(b)の処理を行う通信制御装置101によりCPUのデータ処理負担を軽減するものである。
この場合、通信制御装置101は通信インターフェース105を介してアプリケーションプログラム107及びパケット処理ルーチン109に接続される。
送受信処理部111で受信されたデータは共有バッファ113に格納される(ステップS1)。ここで切換制御部115はパケット種別を検出し(ステップS2)、それに応じてデータをプロトコル処理部117a〜117c、又はパケット処理ルーチン109に振り分けるようにしている(ステップS3,S4,S5)。
【0009】
【発明が解決しようとする課題】
ここで、まず図7で説明したホストシステム30、40の通信を考える。この場合、ホスト31、41がプロトコル処理を受け持っている為、様々なプロトコルに容易に対応できる汎用性に優れている反面、多種プロトコルに対応しようとすればするほどホストでの処理負荷は重くなり、より高性能なホストCPUが求められ、装置のコストアップにつながるといった問題が生ずる。
【0010】
例えば上記ホストシステム30では、ネットワークインターフェースカード32からホスト31へのインタラプトは、受信パケット到着毎に発生するが、従って、ホストシステム40,あるいはLAN接続された他のホストシステムから多数のパケットが送信された場合、或いは上記のMPEGストリームをIPパケッタイズしたパケットを受信する場合などは、非常に多くのパケットを連続受信することになり、ホスト31へのインタラプト(割込処理)が短時間のうちに多発することとなる。それと同時に、実装如何ではパケット受信の割込処理毎にホスト31はネットワークインターフェースカード32へアクセスしてパケットを読み出す必要がある。
また、ホスト31はネットワークインターフェースカード32から読み出したパケットのヘッダ解析を行い、必要なプロトコル処理を行って、アプリケーションプログラムやコーデックへ受け渡す処理も行う。アプリケーションプログラムやコーデック(コーデックをホストCPUがソフトウエアにより実行する場合)についても、ホスト31はそれらの処理を行う必要がある。
【0011】
従って、リアルタイムストリームのビットレートが非常に高いデータパケットが受信される場合や、リアルタイムストリームでなくとも多数のパケットが受信された場合など、ホスト31への割込処理が多発することで、ホストCPUが他のタスクを実行できなくなるなどの問題が生ずる。
また、OSI参照モデルで言う所の第2層から第7層まで、即ちデータリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層という広い範囲のプロトコル処理をホスト30が行なう点もホストの処理負荷増大を招く。
そして、これらの問題を解決するには、高性能な高価なCPUが必要となり、装置のコストアップといった問題を引き起こす。
【0012】
また、このようなホスト30の処理負担の増大は、単に装置のコストアップだけでなくネットワーク負荷の増大ももたらす。
図7のモデルを拡張して図8のように3台のホストシステム30,40,50がLAN接続された場合を想定する。ホストシステム50は、ホストシステム30、40と同様にホスト51及びネットワークインターフェースカード52を備える。
【0013】
いま、通信DF1として示すように、ホストシステム30がホストシステム40からのパケットを比較的大量に受信中であるとする。
このときにホストシステム50からホストシステム30へファイル転送のアプリケーションが実行されたとすると、ホストシステム50はまずホストシステム30のMACアドレスを得るためにARP(Address Resolution Protocol)要求を行う(通信DF2)。ところがホストシステム30側では、ホストシステム40から既に受信したパケット分のプロトコル処理が終わるまでは、ホストシステム50からのARP要求に対して応答をすることができない。
【0014】
このためARP応答が得られないホストシステム50は、そのアプリケーションをタイムアウトしなければならない羽目に陥ることも考えられる。
これは、ホストシステム40と通信中のホストシステム30に対しては、ホストシステム50からの通信要求が拒否されたということであり、これに対しホストシステム50が再送要求を送ることでネットワーク上に冗長なパケットが発生し、ネットワーク負荷の増大を招く。
但し、イーサネットネットワーク上では再送処理は通常の処理として想定されているため、この再送処理自体が問題となるのではない。問題なのはネットワーク負荷の増大が、通信するホストシステムの台数に比例する点である。
通常のLANシステムにおいて、通信しているホストの台数は上記図8のモデルのように3台で留まるものではなく、より多数のホストシステムがLAN接続されることが一般に想定される。よって、再送処理によるネットワーク負荷もかなり増大するものと容易に想像できる。
【0015】
さらにもう一つの問題としては、上記のARPやRARP(Reverse Address Resolution Protocol)等の通信の要となるコントロールパケットの受信処理が他に受信中のパケット処理により待たされ、処理が出来ない点である。
前述した例はMPEGストリームのRTP/UDP/IP/MACプロトコル処理であるが、他にもファイル転送やリモートログインといったTCP処理を必要とする場合も、全く同様の問題が生じる。
【0016】
以上のように従来の通信方式において、特にホストの受信処理においては、ホストの処理負荷が増大することによって起こる受信処理以外のタスク及び演算処理を実行できなくなる問題、または受信処理以外の処理を遅延させてしまう問題、並びに重要パケットが優先的に処理されないことによって再送処理が発生し、ネットワーク負荷が増大するといった問題があった。またこれらを解決するためにホストCPUの高速化という手法を採れば、装置のコストアップが生ずるという問題があった。
【0017】
また、上記特許文献1に記載された技術では、CPU処理負担の低減が実現されているが、該技術ではCPUはアプリケーションプログラム107及びパケット処理ルーチン109の処理を行うものであり、プロトコル処理は通信制御装置101側で行うものを想定している。
つまり、汎用性拡大のためにホストCPUがプロトコル処理を受け持つというシステムとは異なるものであり、当然ながらホストCPUがプロトコル処理を受け持つシステムの場合における上記問題が解決されるものではない。特にいえば、パケット受信の集中時に、プロトコル処理を含むCPUの処理負担を軽減させるためのものではない。
【0018】
【課題を解決するための手段】
本発明は上記の問題に鑑みて、例えばLAN上の通信処理方式におけるホストシステムの処理負担やネットワーク負荷を低減することを目的とする。
【0019】
このため本発明の通信装置は、受信通知を受領することにより、受信されたデータパケットに対して所定のプロトコルに従ったデータ処理を実行する処理手段を有する通信装置であって、上記データパケットに含まれる情報に応じて、受信された上記データパケットが重要パケットか非重要パケットかを判別する判別手段と、上記判別手段により上記重要パケットと判別された場合は、上記処理手段に対して無条件で上記受信通知を発行し、上記判別手段により上記非重要パケットと判別された場合は、所定の条件が満たされてから上記処理手段に対して上記受信通知を発行する制御手段とを備える。
この場合、上記所定の条件は、上記非重要パケットと判断されたデータの量が設定値以上となることとする。
また上記判別手段は、上記重要パケット又は上記非重要パケットのヘッダ情報を記憶したテーブル情報を備え、受信した上記データパケットのヘッダ情報を、上記テーブル情報と照合することで、上記重要パケットと上記非重要パケットの判別を行う。
また、リアルタイムストリームパケットをデータ処理する第二の処理手段をさらに備え、上記判別手段は、さらに、受信された上記データパケットがリアルタイムストリームパケットであるか否かも判別し、上記制御手段は、受信された上記データパケットが上記リアルタイムストリームパケットと判別された場合は、上記受信通知を発行せずに、上記受信されたデータパケットを、上記第二の処理手段に転送する。
【0020】
また本発明の通信装置は、受信通知を受領することにより、受信されたデータパケットに対して第一のプロトコルに従ったデータ処理を実行する第一の処理手段と、受信されたリアルタイムストリームパケットに対して第二のプロトコルに従ったデータ処理を実行する第二の処理手段とを有する通信装置である。そして、上記データパケットに含まれる情報に応じて、受信された上記データパケットがリアルタイムストリームパケットであるか否かを判別する判別手段と、上記判別手段によりリアルタイムストリームパケットではないと判別された場合は、上記第一の処理手段に対して受信通知を発行し、上記判別手段によりリアルタイムストリームパケットと判別された場合は、上記第一の処理手段に対する受信通知を発行せずに、上記受信されたデータパケットを、上記第二の処理手段へ転送する制御手段とを備える。
【0021】
本発明の通信方法は、データパケットを受信して、受信した上記データパケットに対して所定のプロトコルに従ったデータ処理を実行する通信方法であって、上記データパケットに含まれる情報に応じて、受信された上記データパケットが重要パケットか非重要パケットかを判別する第一のステップと、上記第一のステップにおいて上記非重要パケットと判別された場合は、所定の条件が満たされてから上記非重要パケットと判別された上記データパケットのデータ処理を実行する第二のステップとを有する。
この場合、上記所定の条件は、上記非重要パケットと判断されたデータの量が設定値以上となることとする。
【0022】
即ち本発明では、例えばホストシステムにおいてネットワークインターフェースカードとホスト(処理手段)との間に、上記構成の判別手段及び制御手段を設ける。又はホスト処理に受け渡す受信処理として上記通信方法を実行する。
そして上記通信装置(又は通信方法)では、例えば受信したパケットのヘッダ解析を行って、そのパケットのプロトコルを判別し、判別した結果が重要パケット(例えばコントロールパケットやリアルタイム性が要求されるパケットなど)の場合、より優先的に受信処理するようホストへ通知する。
これにより、ホスト(処理手段)はヘッダ処理を行なう必要が無く、また、優先処理を必要とするパケットを処理優先度の低いパケットに埋もれさせること無く、受信処理を行なうことができるようにする。
またさらに、特に受信したパケットがリアルタイムストリームパケットの場合は、ホスト(処理手段/第一の処理手段)を介さないでリアルタイムストリームパケットに対応する第二の処理手段に転送するようにもする。
【0023】
【発明の実施の形態】
以下、本発明の実施の形態として、複数のホストシステムがLAN通信可能とされる場合における通信制御について第1〜第3の実施の形態を説明していく。
【0024】
<第1の実施の形態>
図1,図2,図3により第1の実施の形態を説明する。
図1ににおいては、2台のホストシステム10,20を例示しており、このホストシステム10,20の間でイーサネット(登録商標)をデータ転送媒体として各種データパケットの通信を行うものとする。
通信されるデータパケットとしては、各ホストシステム10,20におけるアプリケーションプログラムの動作によって処理される各種ファイルなどとしてのテキスト、画像、或いは制御コマンドなどや、通信プロトコル処理によるARP、RARP、ICMP(Internet Control Message Protocol)などのコントロールパケット、さらには例えばMPEG方式の圧縮動画データなどのリアルタイムストリームパケットなどが想定される。
【0025】
図1におけるホスト11,21とは、CPU及びRAM等のハードウエアによる主たる情報処理部であり、CPUで起動されるアプリケーションソフトウェアや各種プロトコル処理のためのプログラムも含めたものとしている。このホスト11,21は、LAN通信についていえば上記のようなパケットデータの送信処理部及び受信処理部として機能する。
またホストシステム10,20とは上記ホスト11,21とネットワークインターフェースカード12,22により構成されるコンピュータシステムを指す。
【0026】
ホストシステム10においては、パケットパーサー13がホスト11とネットワークインターフェースカード12の間に介在するように設けられる。このパケットパーサー13が、本発明でいう通信装置の判別手段及び制御手段に相当する。
ホストシステム20におけるパケットパーサー23も同様である。
【0027】
コーデック14は、MPEG動画データなどのリアルタイムストリームデータのパケット処理(パケットエンコード/デコード)を行う部位であり、例えばホスト11とは別モジュールとしてホストシステム10を含む装置に搭載される。但し、コーデック14をソフトウエアとしてホスト11内に搭載するような例も考えられる。
コーデック24についても同様である。
【0028】
このようなホストシステム10,20間の通信は以下のように行われる。
今、ホストシステム20からホストシステム10へ、パケット送信DFを行うとする。
ホストシステム20側では、ホスト21がパケットを生成するか、あるいはコーデック24によりMPEGリアルタイムストリームのパケットを生成する。この際、ホスト21は、例えばUDP/IP/MACなどの各プロトコルのパケッタイズ処理並びにヘッダ処理を行うことにもなる。
その後、ホスト41は処理を施したパケットを、パケットパーサー23をバイパスさせてネットワークインターフェースカード42に転送し、ネットワークインターフェースカード42が伝送路100を介してホストシステム30へパケットを送信する。つまり送信処理としては、図7で説明した従来方式と同様である。
【0029】
一方、受信側となるホストシステム10では、搭載しているネットワークインターフェースカード12によって伝送路100から受信したデータパケットは、まずパケットパーサー13に受け渡される。
パケットパーサー13の処理については後に詳しく述べるが、受信したデータパケットについてヘッダ解析、プロトコル判別を行い、その結果、重要パケットと非重要パケットを判別する。そしてパケット判別結果に基づいて、所定時点で受信したパケットについてのインタラプト(受信通知の割込要求)をホスト11に対して発行する。
ホスト11は、インタラプトに応じてパケットパーサー13からデータパケットを読み出す。
ホスト11は、パケットパーサー13から読み出したパケットについて、プロトコル処理ソフトウェアとホストCPUにより、MACプロトコル/IP/UDP/RTPを処理した後、所定のアプリケーション(パケットがリアルタイムストリームパケットであった場合はコーデック14)へ受け渡すものとなる。
【0030】
ここで、パケットパーサー13は上記のように重要パケットと非重要パケットを判別したうえで、ホスト11に対してインタラプトを異なるタイミングで通知するようにしている。これによってパケット受信が集中する場合でもホスト11のCPUの処理負担が過大にならないようにするものである。
このためのパケットパーサー13の構成例を図2に示す。
【0031】
パケットパーサー13は、図2に示すように制御部1,設定値レジスタ2,ヘッダテーブル3、ヘッダ解析部4,RAM5を備える。
制御部1及びヘッダ解析部4は、専用ハードウエアとして形成することもでき、また汎用プロセッサにおいてソフトウエアで実現することもできる。設定値レジスタ2,ヘッダテーブル3、及びRAM5は、メモリ素子やレジスタによって形成される。
【0032】
制御部1は、ホスト11に対するインタラプト発行、RAM5の管理/アクセス制御、パケットデータのホスト11への転送制御などを行う。つまりパケット受信時には、RAM5へのバッファリングのための書込制御(RAMポインタ制御)、ヘッダ解析部5からの情報や設定値レジスタ2の情報に基づくインタラプト発行処理、及びホスト11からの転送要求があった場合の、RAMA5からのパケットデータの読出及び転送制御を行う。
【0033】
設定値レジスタ2には、例えばホスト11からの処理等により、或る設定値thが記憶される。この設定値thは、後述する非重要パケットに関するインタラプト発行の条件として用いられる。
ヘッダテーブル3は、例えばホスト11からの処理等により、重要パケットとすべきパケットのヘッダ情報が記憶される。例えばARP、RARP、ICMP、VLANといった、より優先的に受信処理されるべきプロトコルを識別するためのヘッダが格納されている。
【0034】
RAM5は、受信バッファとして用いられ、即ちネットワークインターフェースカード12から転送された受信パケットデータがバッファリングされる。
この場合、RAM5は、例えば領域分割設定により、アドレス0〜Nが第1バッファ領域5a、アドレスN+1〜Mが第2バッファ領域5bと設定され、制御部1によって管理される。
そして、ネットワークインターフェースカード12から転送されたパケットデータは、第1バッファ領域5aに書き込まれるものとされる。
第2バッファ領域5bは、インタラプト発行を所定の条件が整うまで待機する非重要パケットを格納しておく領域とされる。
【0035】
ヘッダ解析部4は、受信してRAM5の第1バッファに記憶されたデータパケットについてヘッダ解析を行い、それが重要パケットか非重要パケットかを判別する。具体的には受信したデータパケットのヘッダについて、ヘッダテーブル3に格納されているARP等の重要なプロトコルのヘッダと照合して、該当するヘッダであるか否かを判別する。そして、ヘッダテーブル3に格納された重要パケットのヘッダに該当するものであった場合は、それを重要パケットとする。それ以外であれば非重要パケットとする。判別した重要パケット/非重要パケットの情報は制御部1に供給する。
【0036】
このようなパケットパーサー13によるパケット受信時の処理を図3で説明する。
伝送路100を介して送信されてきたパケットデータがネットワークインターフェースカード12により受信され、パケットパーサー13に転送されてくると、制御部1は、そのパケットデータをRAM5の第1バッファ領域5aに記憶させていく制御を行う。例えば制御部1は、第1バッファ領域5aについての書込ポインタをアドレス0〜Nの範囲で巡回させながら、書込制御を行う。これにより、第1バッファ領域5aとしてのアドレス0〜Nがリングバッファ形式で用いられて、受信パケットのデータが各アドレスにバファリングされていく。
この処理は図3には示していないが、パケット受信に応じて実行される。
【0037】
パケット受信に伴ってパケットデータがバファリングされたら、まず図3のステップF101としてヘッダ解析部4は、取り込まれたパケットデータのヘッダ解析を行い、上記のようにヘッダテーブル3の情報を参照して、そのパケットデータが重要パケットであるか否かを判別する。
この判別結果情報は制御部1に受け渡され、制御部1は判別結果情報に応じてステップF102で処理を分岐する。
即ち、重要パケットであった場合はステップF103に進み、パケット受信に伴うホスト11に対するインタラプト通知を無条件で実行する。
そしてステップF107に進む。
【0038】
一方、非重要パケットであった場合は、ステップF104に進み、当該受信したパケットデータ、つまり第1バッファ領域5aに格納したデータを、インタラプト待機のため第2バッファ領域5bに移し替える。
なお、制御部1は第2バッファ領域5bについても、書込ポインタをアドレスN+1〜Mの範囲で巡回させながら書込制御を行い、第2バッファ領域5bとしてのアドレスN+1〜Mがリングバッファ形式で用いられるようにしている。
【0039】
そして、ステップF105では、第2バッファ領域5bに蓄積されたパケットデータ量が、設定値レジスタ2に記憶された設定値thを超えたか否かを確認する。超えていなければそのままステップF107に進む。つまりこの時点でインタラプトの発行を行わない。
【0040】
なおステップF105の判断のため、制御部1は内部カウンタを設け、第2バッファ領域5bに格納されたデータ量のカウントを行っていればよい。例えばステップF104で第2バッファ領域5bにデータを移動させる際に、そのデータ量に相当する値をカウントアップしていく。
そしてステップF105では、その時点でカウントされているデータ量と、設定値thを比較する処理を行えばよい。
【0041】
ある時点で、処理がステップF105に進んだ際に、第2バッファ領域5bに蓄積されたパケットデータ量が、設定値レジスタ2に記憶された設定値thを超えたと判断した場合は、ステップF106に進んで、ホスト11に対するインタラプト通知を行う。そしてステップF107に進む。
なお、この場合は、第2バッファ領域5bに蓄積したパケットデータ、つまり上記カウント対象となっていたデータについてインタラプト通知を行ったため、上記カウンタをリセットする。
【0042】
ステップF107では、次の受信パケットの存在を確認し、存在すればステップF101に戻って同様の処理を行う。存在しなければ図3の処理を終え、次回のパケット受信を待機する。
【0043】
なお、ステップF103又はF106でインタラプト通知を行った場合は、その後の時点でホスト11からパケットデータの転送要求が送られてくる。その場合、制御部1は、要求されたパケットをRAM5から読出、ホスト11に対して転送する制御を行うことになる。
【0044】
このような図3の処理により、本例では次の動作が実現される。
例えば上記ARP、RARP、ICMP、VLANといった、通信処理に重要なコントロールパケット、及びMPEGデータなどのリアルタイムストリームパケットが、ヘッダテーブル3において重要パケットとセットされているとする。すると、コントロールパケットやリアルタイムストリームパケットが受信された場合は、パケットパーサー13は無条件でホスト11に対してインタラプト通知を行うものとなる。
一方、テキストデータファイル、ウェブアクセスデータなどの、重要とはされていないパケットデータを受信した場合は、それらは一旦第2バッファ領域5bに蓄積され、それらの総データ量が設定値thを超えるまではインタラプト通知が待機される。そして総データ量が設定値thを超えた場合に、インタラプト通知の条件が満たされたとして、ステップF106のインタラプト通知が行われるものである。
【0045】
これにより、受信パケットが到着する度にホスト11へ通知する従来方式に比べ、ホスト11に対するインタラプトの集中がなくなり、またホスト11からRAM5への受信パケット読出のアクセス回数が減り、結果としてホスト11の処理負荷が軽減される。
また、重要パケット受信の割り込み通知と非重要パケット受信の割り込み通知が分けられることにより、あるパケットの受信中に送られてきた重要パケットの処理が待たされることが無くなり、待たされることによる遅延で引き起こされていたネットワーク負荷の増大に対する改善効果も得られる。
もちろん重要なコントロールパケットやリアルタイム性が要求されるパケットが優先的に受信処理するようホストへ通知されるため、重要パケットの受信処理の確実性が高まり、通信システムとして好適である。
また、ホスト11によるヘッダ解析処理の負担が無くなることも、ホスト11の処理負担低減に貢献する。
またこれらのことから、ホスト11のCPUとしても処理能力の高い高価なものを採用する必要もなく、装置のコストダウンに有効である。
【0046】
<第2の実施の形態>
第2の実施の形態を図4,図5で説明する。
図4は第2の実施の形態の場合のシステム構成を示している。なお、基本的な構成は図1と同一であるため、各部に同一符号を付し、重複説明を避ける。
この図4の場合、ホストシステム10側においては、コーデック14はホスト11とは別モジュールで構成されることを前提とし、さらに、パケットパーサー13はホスト11を介在させないで受信データをコーデック14に転送する機能(データ転送系回路)を備えるものとしている。
【0047】
パケットパーサー13の内部構成は上記図2と基本的に同様であるため新たに図示しないが、制御部1はコーデック14に対するデータ転送制御機能を備えるものとなる。
またヘッダ解析部4は、重要パケット、非重要パケットの判別以外に、リアルタイムストリームパケットであるか否かの判別も行うようにしている。
ホストシステム20側のコーデック24及びパケットパーサー23についても同様である。
【0048】
図5にパケットパーサー13のパケット受信時の処理を示す。
なお、上記図3と同一の処理ステップには同一のステップ番号を付し、詳しい説明を省略する。
この場合、パケット受信時には、ステップF101でパケットのヘッダ解析が行われ、ステップF102で重要パケット/非重要パケットの判別結果により処理が分岐される。そして非重要パケットと判別された場合は制御部1はステップF104,F105,F106として、上記図3で説明した場合と同様の処理を行うことになる。つまり第2バッファ領域5bに蓄積されるデータ量が設定値th以上となるまではインタラプト通知を待機し、設定値th以上となった時点でまとめてインタラプト通知を行う。
【0049】
ステップF102で重要パケットと判別された場合は、制御部1はさらにステップF108で、そのデータパケットがリアルタイムストリームパケットであるか否かにより、さらに処理を分岐する。リアルタイムストリームパケットであるか否かの情報は、ヘッダ解析部4からの判別情報として制御部1に供給される。リアルタイムストリームパケットではない場合、つまり例えばARP、RARP、ICMP、VLANといったコントロールパケットであった場合は、ステップF103に進み、図3の例と同様に、制御部1は無条件でホスト11に対するインタラプト通知を行う。
【0050】
一方、受信パケットがMPEGデータなどのリアルタイムストリームパケットであった場合は、制御部1の処理はステップF109に進み、コーデック14に対して受信パケットのデータ(第1バッファ領域5aにバッファリングしたデータ)を、転送する。
【0051】
つまりこの第2の実施の形態では、リアルタイムストリームパケットが受信された場合は、ホスト11に対するインタラプト通知は行われずに、パケットパーサー13から直接(ホスト11の介在無しに)コーデック14に受信データが転送されるものとなる。
これによって、受信パケット到着毎にホスト11へインタラプトがあがることがさらに減少され、また、それに伴ったホスト11からパケットパーサー13へのアクセスも無くなる為、ホスト11の処理負荷は上記第1の実施の形態に比べてさらに軽減される。
特に、MPEG動画データストリームなどのリアルタイムストリームデータがIPパケッタイズされたパケットを受信することは、大量のパケットを連続的に受信することになり、これに対するホスト11の処理負担は大きい。従ってリアルタイムストリームをについての処理をホスト11が行うことが不要となることは、ホスト11の処理負担低減に非常に有効である。
また、逆に言えば、ホスト11において実行中の他のタスクや他のパケット受信処理などがあっても、リアルタイムストリームパケットについて確実に受信処理できることになり、通信の確実性を向上させ、またこれはネットワーク負荷の低減も促進するものとなる。
【0052】
なお、図5の処理例では、ヘッダ解析部4は、リアルタイムストリームパケットが受信された場合は、それを重要パケットであり、かつリアルタイムストリームパケットであるとする判別結果情報を制御部1に送るようにし、これによって制御部1では図5のステップF102,F108として、重要パケットとされた中でリアルタイムストリームパケットであるか否かにより処理を分岐するものとした。しかしながら、ヘッダ解析部4での判別処理としては、リアルタイムストリームパケットを重要パケットとは区別して判別しても良い。その場合、制御部1ではステップF108の処理分岐を行ってから、ステップF102の処理分岐を行うようにすればよい。
【0053】
<第3の実施の形態>
第3の実施の形態を説明する。
第3の実施の形態の場合のシステム構成は図4と同様であり、つまりコーデック14はホスト11とは別モジュールで構成されること、及びパケットパーサー13はホスト11を介在させないで受信データをコーデック14に転送する機能(データ転送系回路)を備えるものである。
【0054】
パケットパーサー13の内部構成は上記図2と基本的に同様であり、また第2の実施の形態で説明したように制御部1はコーデック14に対するデータ転送制御機能を備えるものとなる。
但しヘッダ解析部4は、重要パケット、非重要パケットの判別を行わず、単に受信パケットがリアルタイムストリームパケットであるか否かの判別を行うようにしている。
またRAM5としては、特に第1バッファ領域5a、第2バッファ領域5bに分ける必要はなく、RAM5の全域が単純にバッファ領域として用いられる。
ホストシステム20側のコーデック24及びパケットパーサー23についても同様である。
【0055】
図6にパケットパーサー13のパケット受信時の処理を示す。
なお、上記図5と同一の処理ステップには同一のステップ番号を付し、詳しい説明を省略する。
この場合、パケット受信時には、ステップF101でパケットのヘッダ解析が行われるが、このときのヘッダ解析部4による解析によっては、受信パケットがリアルタイムストリームパケットであるか否かのみが判別される。従ってヘッダテーブル3にはリアルタイムストリームパケットを判別するためのみのヘッダ情報がセットされていればよい。
【0056】
そして制御部1はステップF108で、、ヘッダ解析部4からの判別情報によりリアルタイムストリームパケットであるか否かに基づいて処理を分岐する。
リアルタイムストリームパケットではない場合は、ステップF110に進み、制御部1はホスト11に対するインタラプト通知を行う。
一方、受信パケットがMPEGデータなどのリアルタイムストリームパケットであった場合は、制御部1の処理はステップF109に進み、コーデック14に対して受信パケットのデータ(RAM5にバッファリングしたデータ)を、転送する。
【0057】
つまりこの第3の実施の形態では、リアルタイムストリームパケットが受信された場合は、ホスト11に対するインタラプト通知は行われずに、パケットパーサー13から直接(ホスト11の介在無しに)コーデック14に受信データが転送されるものとなる。
リアルタイムストリームパケットでない場合は、上述してきた重要パケット/非重要パケットを区別せずに、ホスト11に対するインタラプト通知を行う。
【0058】
従って第3の実施の形態の場合、重要パケット/非重要パケットの判別に基づいたインタラプト制御による、第1,第2の実施の形態で得られた効果は得られないが、最も処理負担の大きいリアルタイムストリームパケットについてはホスト11は処理不要となり、その点で、従来方式に比べてホスト11の処理負荷は軽減される。また、それによってネットワーク負荷の低減も促進される。
【0059】
<変形例>
以上、本発明の実施の形態を説明したが、本発明はこれに限定されるものではなく、各種の変形例が考えられ、以下、例を説明する。
【0060】
本発明は例えばワイヤードLANのみに適用されるものでなく、伝送路(通信メディア)をワイヤレスとしたワイヤレスLANにも適用できる。もちろんいわゆるLANと呼ばれている通信システムのみならず、多様な通信システムに適用できる。
また、実施の形態の説明では、2つのホストシステム10、20をモデルにしたが、実際には接続されるホストシステムがより多数になり得ることはいうまでもない。またホストシステムとしてはパーソナルコンピュータ等の形態に限らず、より大型の情報処理装置、或いはPDAその他の小型情報処理装置、或いは通信機能を備えたオーディオ・ビデオ機器、携帯型或いは据え置き型の電話機、家電機器等、各種機器が考えられる。
【0061】
また、図2の構成例においてヘッダテーブル3に格納されるヘッダ情報は、アプリケーションに応じて変更することができ、様々なアプリケーションへの適用も可能である。
即ち、重要パケットとするのは、コントロールパケットやリアルタイムストリームパケットに限らず、そのホストシステムに搭載されたアプリケーションに応じて適宜変更することが可能である。これにより、ホスト11にプロトコル処理をさせた場合の優位点である様々なプロトコルに対応可能となる汎用性といった観点から見ても、それと同等の拡張性を持たせることができる。
【0062】
また、特に第1の実施の形態の場合、リアルタイムストリームパケットについては、非重要パケットとすることも考えられる。ホストシステム(或いはアプリケーション)がリアルタイムストリームパケットのリアルタイム処理を重要視する装置である場合、リアルタイムストリームパケットを重要パケットとすることが適切であるが、特にリアルタイムストリームに関する処理を重要視しないホストシステム(或いはアプリケーション)の場合、リアルタイムストリームパケットを非重要パケットとすることで、ホスト11の処理負担軽減に好適である。
【0063】
また上記例では、ヘッダテーブル3に重要パケットのヘッダ情報をセットするとしたが、非重要パケットとすべきパケットのヘッダ情報をセットしても良い。或いは重要パケットのヘッダと非重要パケットのヘッダの両方を区別してセットしてもよい。
いずれにしても、第1,第2の実施の形態の場合では、重要パケット/非重要パケットが判別できるようにする情報がセットされ、第2,第3の実施の形態の場合は、リアルタイムストリームパケットであるか否かを判別できるようにするヘッダ情報がセットされればよい。
【0064】
第1,第2の実施の形態においては、非重要パケットに関するインタラプト通知の条件を、蓄積データ量が設定値thを超えることとしたが、この条件設定は多様に考えられる。
例えば第2バッファ領域5bに蓄積する各パケットデータについて、それぞれ受信時からの時間経過を管理し、一定の待機時間を経過するたびに、他に重要パケットの受信があるか否かを判別して、なければインタラプト通知を行い、重要パケット受信があれば更に一定時間待機するなどの例も考えられる。
また、受信からの経過時間が或る時間値を超えて長くなってしまったパケットについては、その時点でインタラプト通知を行うようにすることも考えられる。
【0065】
また設定値thを、データ量ではなく、パケット数としてもよい。即ち非重要パケットについては、設定値thとしてのパケット数が蓄積された時点でインタラプト通知を行うようにする例である。
また、パケット数、或いはデータ量としての設定値と、受信からの経過時間の両方を考慮して非重要パケットのインタラプトの発行処理を行うようにしても良い。
【0066】
第1,第2の実施の形態では、RAM5を第1バッファ領域5a/第2バッファ領域5bに分けたが、このような領域分けでなく、2つのメモリチップにより第1バッファ、第2バッファを設定しても良い。
さらに、これらのようなバッファ分割をせずに、アドレス管理などの手法で非重要パケットを管理しても良い。つまりRAM5内で重要パケットが記憶されたアドレスと、インタラプトの待機中である非重要パケットが記憶されたアドレスを制御部1で管理しておけば、RAM5内でのデータ移送を不要とできる。
【0067】
また、パケットパーサー13ではヘッダ解析を行うものであるため、その解析情報をホスト11に送信するようにして良い。例えば重要パケットのインタラプト通知の際に、受信パケットがARPであるのかRARPあるのか、さらにはICMPかVLANか等のヘッダ解析結果までもホスト11へ詳細に通知することで、更にホスト11の処理負荷を軽減することも可能である。
【0068】
【発明の効果】
以上の説明から理解されるように本発明によれば、例えばホストシステムにおいてネットワークインターフェースカードとホスト(処理手段)との間において、上記パケットパーサーとしての機能(判別手段及び制御手段、第一のステップと第二のステップ)が設けられる。そして本発明の通信装置(又は通信方法)では、受信したパケットのヘッダ解析を行って、そのパケットのプロトコルを判別し、判別した結果が重要パケットの場合、無条件で、つまり優先的に受信処理が行われるようにホスト(処理手段)へ受信通知(インタラプト)する。
そしてこれにより、受信集中時であってもホスト(処理手段)への割込処理が減少することや、ホスト(処理手段)はヘッダ処理を行なう必要が無くなり、従ってコントロールパケットやリアルタイムストリームなど優先処理を必要とするパケットを処理優先度の低いパケットに埋もれさせること無く確実に受信処理を行なうことができるという効果がある。
そしてこの効果は、ホスト(処理手段)の処理負荷の低減や、ネットワーク負荷の低減といった効果ももたらすことになる。
また従って、ホスト(処理手段)として処理速度の速い高価なCPUを用いる必要はなくなり、装置のコストアップも生じさせない。
【0069】
また、非重要パケットと判別されたパケットについては、非重要パケットとされたデータのデータ量が設定値以上となった際に、ホストに受信通知するようにすれば適切に対応できる。
また、重要パケット又は非重要パケットのヘッダ情報を記憶したテーブル情報を備え、受信したデータパケットのヘッダ情報を、上記テーブル情報に照合して、重要パケットと非重要パケットの判別を行うことで、パケット判別処理が容易であるとともに、テーブル情報の設定により、重要パケット/非重要パケットをフレキシブルに設定できる。従ってホストシステムの用途、動作環境、性能その他の事情に応じて重要パケットを設定し、最適な通信環境を構築することもできる。
【0070】
また、受信したパケットがリアルタイムストリームパケットの場合は、ホスト(処理手段/第一の処理手段)を介さないでリアルタイムストリームパケットに対応する第二の処理手段に転送するようにすることで、ホストではリアルタイムストリームパケットに関する処理は不要となり、ホストの処理負担のさらなる低減を実現できる。もちろんこれはネットワーク負荷の低減効果も促進する。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の通信システムのブロック図である。
【図2】実施の形態のパケットパーサーの構成のブロック図である。
【図3】第1の実施の形態のパケット受信処理のフローチャートである。
【図4】第2の実施の形態の通信システムのブロック図である。
【図5】第2の実施の形態のパケット受信処理のフローチャートである。
【図6】第3の実施の形態のパケット受信処理のフローチャートである。
【図7】従来の通信システムのブロック図である。
【図8】従来の通信システムにおけるネットワーク負荷増大の説明図である。
【図9】従来の通信装置の説明図である。
【符号の説明】
1 制御部、2 設定値レジスタ、3 ヘッダテーブル、4、ヘッダ解析部、5 RAM、5a 第1バッファ、5b 第2バッファ、10,20 ホストシステム、11,21 ホスト、12,22 ネットワークインターフェースカード、13,23 パケットパーサー、14,24 コーデック[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a communication device and a communication method for network communication such as a local area network.
[0002]
[Prior art]
Conventionally, when a host communicates with a local area network (LAN) to perform each protocol processing, a conventional method is performed in which a network interface card, a corresponding device driver, and a protocol stack mounted on the host are involved. Was taken.
In this system, the network interface card and the device driver only transmit a packet to the LAN transmission line or receive a packet from the LAN transmission line. In other words, the generation of the transmission packet, the analysis of the reception packet, and the associated protocol processing are all performed by the host.
[0003]
FIG. 7 shows an example of a host system connected to a LAN.
In FIG. 7, it is assumed that, for example, the transfer of, for example, MPEG-based compressed moving image data is performed between two
The
[0004]
A case where MPEG data is transmitted from the
Thereafter, the
[0005]
The
The
[0006]
The following are known technologies applicable to such LAN communication.
[0007]
[Patent Document 1] JP-A-7-95260
[0008]
In
In this case, the
The data received by the transmission /
[0009]
[Problems to be solved by the invention]
Here, the communication between the
[0010]
For example, in the
The
[0011]
Therefore, when a data packet having a very high bit rate of the real-time stream is received, or when a large number of packets are received even if the data stream is not a real-time stream, the host CPU is frequently interrupted. Causes a problem that other tasks cannot be executed.
The
In order to solve these problems, a high-performance and expensive CPU is required, which causes a problem such as an increase in the cost of the apparatus.
[0012]
Such an increase in the processing load on the
It is assumed that the model of FIG. 7 is extended and three
[0013]
Now, it is assumed that the
At this time, if a file transfer application is executed from the
[0014]
For this reason, the
This means that the communication request from the
However, since the retransmission processing is assumed to be a normal processing on the Ethernet network, the retransmission processing itself is not a problem. The problem is that the increase in network load is proportional to the number of host systems that communicate.
In a normal LAN system, the number of communicating hosts is not limited to three as in the model of FIG. 8, but it is generally assumed that a larger number of host systems are connected to the LAN. Therefore, it can be easily imagined that the network load due to the retransmission processing is considerably increased.
[0015]
Still another problem is that control packet reception processing, such as the above-mentioned ARP or RARP (Reverse Address Resolution Protocol), which is necessary for communication, is suspended by other packet processing during reception, and processing cannot be performed. .
Although the above-described example is the RTP / UDP / IP / MAC protocol processing of the MPEG stream, the same problem arises when TCP processing such as file transfer or remote login is required.
[0016]
As described above, in the conventional communication method, in particular, in the reception processing of the host, the problem that the task and the arithmetic processing other than the reception processing cannot be executed due to an increase in the processing load of the host, or the processing other than the reception processing is delayed There is a problem that the retransmission process occurs due to the important packet not being processed preferentially, and the network load increases. Further, if a method of increasing the speed of the host CPU is adopted to solve these problems, there is a problem that the cost of the apparatus is increased.
[0017]
Further, in the technology described in
In other words, this is different from a system in which the host CPU takes charge of the protocol processing in order to expand versatility, and the above problem in a system in which the host CPU takes charge of the protocol processing is not naturally solved. In particular, this is not for reducing the processing load on the CPU including the protocol processing when the packet reception is concentrated.
[0018]
[Means for Solving the Problems]
The present invention has been made in consideration of the above problems, and has as its object to reduce, for example, a processing load on a host system and a network load in a communication processing method on a LAN.
[0019]
For this reason, the communication device of the present invention is a communication device having processing means for executing data processing according to a predetermined protocol on a received data packet by receiving a reception notification. Discriminating means for discriminating whether the received data packet is an important packet or a non-significant packet according to the included information, and if the discriminating means discriminates the packet as important, the processing means is unconditionally And a control unit that issues the reception notification to the processing unit after a predetermined condition is satisfied when the determination unit determines that the packet is the insignificant packet.
In this case, the predetermined condition is that the amount of data determined as the non-important packet is equal to or larger than a set value.
Further, the discriminating means includes table information storing header information of the important packet or the non-important packet, and compares the header information of the received data packet with the table information so that the important packet and the non-important packet are compared. An important packet is determined.
The apparatus further includes a second processing unit that performs data processing on the real-time stream packet, wherein the determining unit further determines whether the received data packet is a real-time stream packet, and the control unit determines whether the received data packet is a real-time stream packet. If the data packet is determined to be the real-time stream packet, the received data packet is transferred to the second processing means without issuing the reception notification.
[0020]
Further, the communication device of the present invention, by receiving the reception notification, performs first processing means for performing data processing on the received data packet in accordance with the first protocol, and On the other hand, a communication device having second processing means for executing data processing according to a second protocol. And determining means for determining whether or not the received data packet is a real-time stream packet according to information included in the data packet; and determining that the received data packet is not a real-time stream packet. Issue a reception notification to the first processing means, and when the discrimination means determines that the packet is a real-time stream packet, without issuing a reception notification to the first processing means, Control means for transferring the packet to the second processing means.
[0021]
The communication method of the present invention is a communication method for receiving a data packet and executing data processing according to a predetermined protocol on the received data packet, and according to information included in the data packet, A first step of determining whether the received data packet is an important packet or a non-important packet; and, if the received data packet is determined to be the non-important packet in the first step, after the predetermined condition is satisfied, the A second step of executing data processing of the data packet determined to be an important packet.
In this case, the predetermined condition is that the amount of data determined as the non-important packet is equal to or larger than a set value.
[0022]
That is, in the present invention, for example, in the host system, between the network interface card and the host (processing means), the judging means and the control means having the above configuration are provided. Alternatively, the communication method is executed as reception processing to be passed to the host processing.
In the communication device (or communication method), for example, the header of a received packet is analyzed, the protocol of the packet is determined, and the determined result is an important packet (for example, a control packet or a packet requiring real-time performance). In the case of, the host is notified to perform reception processing with higher priority.
As a result, the host (processing means) does not need to perform header processing, and can perform reception processing without burying packets requiring priority processing in packets with low processing priority.
Furthermore, especially when the received packet is a real-time stream packet, the packet is transferred to the second processing means corresponding to the real-time stream packet without passing through the host (processing means / first processing means).
[0023]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, as the embodiments of the present invention, first to third embodiments of communication control when a plurality of host systems are enabled to perform LAN communication will be described.
[0024]
<First embodiment>
The first embodiment will be described with reference to FIGS.
In FIG. 1, two
The data packets to be communicated include texts, images, control commands, and the like as various files processed by the operation of the application programs in the
[0025]
The
The
[0026]
In the
The same applies to the
[0027]
The
The same applies to the
[0028]
Such communication between the
Now, assume that a packet transmission DF is performed from the
On the
Thereafter, the
[0029]
On the other hand, in the
Although the processing of the
The
The
[0030]
Here, the
FIG. 2 shows a configuration example of the
[0031]
The
The
[0032]
The
[0033]
The
The header table 3 stores, for example, header information of a packet to be regarded as an important packet by processing from the
[0034]
The RAM 5 is used as a reception buffer, that is, the reception packet data transferred from the
In this case, in the RAM 5, addresses 0 to N are set as the
Then, the packet data transferred from the
The
[0035]
The
[0036]
The process at the time of packet reception by the
When the packet data transmitted via the
Although not shown in FIG. 3, this process is executed in response to the packet reception.
[0037]
When the packet data is buffered with the reception of the packet, first, in step F101 in FIG. 3, the
This determination result information is passed to the
That is, if the packet is an important packet, the process proceeds to step F103, and an interrupt notification to the
Then, the process proceeds to step F107.
[0038]
On the other hand, if the packet is an insignificant packet, the process proceeds to step F104, where the received packet data, that is, the data stored in the
The
[0039]
Then, in step F105, it is confirmed whether or not the amount of packet data stored in the
[0040]
For the determination in step F105, the
Then, in step F105, a process of comparing the data amount counted at that time with the set value th may be performed.
[0041]
At some point, when the process proceeds to step F105, if it is determined that the amount of packet data stored in the
In this case, since the interrupt notification is performed for the packet data accumulated in the
[0042]
In step F107, the existence of the next received packet is confirmed, and if there is, the flow returns to step F101 to perform the same processing. If the packet does not exist, the processing of FIG. 3 is terminated, and the next packet reception is awaited.
[0043]
If an interrupt notification is made in step F103 or F106, a transfer request for packet data is sent from the
[0044]
The following operation is realized in this example by the processing of FIG.
For example, it is assumed that control packets important for communication processing, such as ARP, RARP, ICMP, and VLAN, and real-time stream packets such as MPEG data are set as important packets in the header table 3. Then, when a control packet or a real-time stream packet is received, the
On the other hand, when packet data that is not regarded as important, such as a text data file or web access data, is received, they are temporarily stored in the
[0045]
As a result, the concentration of interrupts on the
Also, by separating the interrupt notification of the important packet reception and the interrupt notification of the non-important packet reception, the processing of the important packet sent during the reception of a certain packet does not have to be waited, and is caused by the delay caused by the wait. Also, an improvement effect against the increase in the network load, which has been performed, can be obtained.
Of course, an important control packet or a packet requiring real-time processing is notified to the host so as to preferentially perform reception processing, so that the reliability of the reception processing of the important packet is increased, which is suitable for a communication system.
Eliminating the load of the header analysis processing by the
For these reasons, it is not necessary to employ an expensive CPU having a high processing capability as the CPU of the
[0046]
<Second embodiment>
A second embodiment will be described with reference to FIGS.
FIG. 4 shows a system configuration in the case of the second embodiment. Since the basic configuration is the same as that of FIG. 1, the same reference numerals are given to the respective portions, and the duplicate description will be avoided.
In the case of FIG. 4, on the
[0047]
The internal configuration of the
The
The same applies to the
[0048]
FIG. 5 shows a process performed by the
Note that the same processing steps as those in FIG. 3 are given the same step numbers, and detailed descriptions thereof will be omitted.
In this case, at the time of packet reception, the header analysis of the packet is performed in step F101, and the process is branched in step F102 based on the result of discriminating the important packet / insignificant packet. If it is determined that the packet is an insignificant packet, the
[0049]
If it is determined in step F102 that the packet is an important packet, the
[0050]
On the other hand, if the received packet is a real-time stream packet such as MPEG data, the process of the
[0051]
In other words, in the second embodiment, when a real-time stream packet is received, the received data is transferred from the
As a result, it is possible to further reduce an interruption to the
In particular, receiving a packet in which real-time stream data such as an MPEG moving image data stream is IP-packetized means that a large amount of packets are continuously received, and the processing load on the
Conversely, even if there is another task being executed in the
[0052]
In the processing example of FIG. 5, when a real-time stream packet is received, the
[0053]
<Third embodiment>
A third embodiment will be described.
The system configuration in the case of the third embodiment is the same as that of FIG. 4, that is, the
[0054]
The internal configuration of the
However, the
The RAM 5 does not need to be divided into the
The same applies to the
[0055]
FIG. 6 shows a process performed by the
Note that the same processing steps as those in FIG. 5 are denoted by the same step numbers, and detailed description will be omitted.
In this case, at the time of packet reception, the header of the packet is analyzed in step F101. At this time, depending on the analysis by the
[0056]
Then, in step F108, the
If the packet is not a real-time stream packet, the process proceeds to step F110, and the
On the other hand, if the received packet is a real-time stream packet such as MPEG data, the process of the
[0057]
That is, in the third embodiment, when a real-time stream packet is received, the received data is directly transferred from the
If the packet is not a real-time stream packet, an interrupt notification is sent to the
[0058]
Therefore, in the case of the third embodiment, the effect obtained in the first and second embodiments by the interrupt control based on the discrimination between the important packet and the non-important packet cannot be obtained, but the processing load is the largest. The
[0059]
<Modification>
Although the embodiment of the present invention has been described above, the present invention is not limited to this, and various modifications can be considered. Hereinafter, an example will be described.
[0060]
The present invention can be applied not only to a wired LAN, for example, but also to a wireless LAN using a wireless transmission path (communication medium). Of course, the present invention can be applied not only to a communication system called a LAN, but also to various communication systems.
In the description of the embodiment, the two
[0061]
Further, the header information stored in the header table 3 in the configuration example of FIG. 2 can be changed according to the application, and can be applied to various applications.
That is, the important packet is not limited to the control packet or the real-time stream packet, and can be appropriately changed according to the application installed in the host system. This makes it possible to provide the same expandability from the viewpoint of versatility that enables the
[0062]
In particular, in the case of the first embodiment, the real-time stream packet may be a non-important packet. When the host system (or the application) is a device that attaches importance to the real-time processing of the real-time stream packet, it is appropriate to make the real-time stream packet an important packet. In the case of (application), by making the real-time stream packet an unimportant packet, it is suitable for reducing the processing load on the
[0063]
Further, in the above example, the header information of the important packet is set in the header table 3, but the header information of the packet to be regarded as the non-important packet may be set. Alternatively, both the header of the important packet and the header of the non-important packet may be set separately.
In any case, in the first and second embodiments, information for enabling discrimination between an important packet and a non-important packet is set. In the second and third embodiments, a real-time stream is set. What is necessary is just to set the header information which enables to determine whether the packet is a packet or not.
[0064]
In the first and second embodiments, the condition of the interrupt notification regarding the unimportant packet is such that the accumulated data amount exceeds the set value th. However, the condition setting may be variously considered.
For example, for each packet data stored in the
Also, for a packet whose elapsed time from reception exceeds a certain time value, an interrupt notification may be made at that time.
[0065]
The set value th may be the number of packets instead of the data amount. In other words, in this example, an interrupt notification is issued for a non-important packet when the number of packets as the set value th is accumulated.
In addition, the process of issuing an interrupt of an insignificant packet may be performed in consideration of both the number of packets or the set value as the data amount and the elapsed time from reception.
[0066]
In the first and second embodiments, the RAM 5 is divided into the
In addition, non-important packets may be managed by a method such as address management without performing such buffer division. That is, if the address where the important packet is stored in the RAM 5 and the address where the non-important packet waiting for the interrupt is stored are managed by the
[0067]
Since the
[0068]
【The invention's effect】
As can be understood from the above description, according to the present invention, for example, the function as the packet parser (determination means and control means, first step) between the network interface card and the host (processing means) in the host system And a second step). The communication device (or communication method) of the present invention analyzes the header of the received packet, determines the protocol of the packet, and if the determined result is an important packet, unconditionally, ie, preferentially performs the reception process. (Interrupt) to the host (processing means) so that the operation is performed.
As a result, the number of interrupts to the host (processing means) is reduced even when reception is concentrated, and the host (processing means) does not need to perform header processing. Thus, there is an effect that the receiving process can be surely performed without burying a packet that requires the processing in a packet with a low processing priority.
This effect also brings about effects such as a reduction in the processing load on the host (processing means) and a reduction in the network load.
Therefore, it is not necessary to use an expensive CPU having a high processing speed as a host (processing means), and the cost of the apparatus does not increase.
[0069]
In addition, a packet determined to be an unimportant packet can be appropriately handled by notifying the host of reception when the data amount of the data regarded as the unimportant packet becomes equal to or larger than a set value.
Also, the packet information is provided with table information storing header information of an important packet or an unimportant packet, and the header information of a received data packet is checked against the table information to determine an important packet and an unimportant packet. The discrimination process is easy, and important packets / insignificant packets can be set flexibly by setting the table information. Therefore, an important communication packet can be set according to the use, operating environment, performance, and other circumstances of the host system, and an optimum communication environment can be constructed.
[0070]
If the received packet is a real-time stream packet, the packet is transferred to the second processing unit corresponding to the real-time stream packet without passing through the host (processing unit / first processing unit). The processing related to the real-time stream packet becomes unnecessary, and the processing load on the host can be further reduced. Of course, this also promotes the effect of reducing the network load.
[Brief description of the drawings]
FIG. 1 is a block diagram of a communication system according to a first embodiment of this invention.
FIG. 2 is a block diagram illustrating a configuration of a packet parser according to the embodiment;
FIG. 3 is a flowchart of a packet reception process according to the first embodiment.
FIG. 4 is a block diagram of a communication system according to a second embodiment.
FIG. 5 is a flowchart of a packet reception process according to the second embodiment.
FIG. 6 is a flowchart of a packet reception process according to the third embodiment.
FIG. 7 is a block diagram of a conventional communication system.
FIG. 8 is an explanatory diagram of an increase in network load in a conventional communication system.
FIG. 9 is an explanatory diagram of a conventional communication device.
[Explanation of symbols]
1 control unit, 2 setting value register, 3 header table, 4, header analysis unit, 5 RAM, 5a first buffer, 5b second buffer, 10, 20 host system, 11, 21 host, 12, 22 network interface card, 13,23 packet parser, 14,24 codec
Claims (7)
上記データパケットに含まれる情報に応じて、受信された上記データパケットが重要パケットか非重要パケットかを判別する判別手段と、
上記判別手段により上記重要パケットと判別された場合は、上記処理手段に対して無条件で上記受信通知を発行し、上記判別手段により上記非重要パケットと判別された場合は、所定の条件が満たされてから上記処理手段に対して上記受信通知を発行する制御手段と、
を備えたことを特徴とする通信装置。A communication device having processing means for performing data processing according to a predetermined protocol on a received data packet by receiving a reception notification,
Determining means for determining whether the received data packet is an important packet or an unimportant packet, according to information included in the data packet;
If the discrimination means determines that the packet is the important packet, it issues the reception notification unconditionally to the processing means, and if the discrimination means determines that the packet is the non-important packet, a predetermined condition is satisfied. Control means for issuing the reception notification to the processing means after being executed;
A communication device comprising:
上記判別手段は、さらに、受信された上記データパケットがリアルタイムストリームパケットであるか否かも判別し、
上記制御手段は、受信された上記データパケットが上記リアルタイムストリームパケットと判別された場合は、上記受信通知を発行せずに、上記受信されたデータパケットを、上記第二の処理手段に転送することを特徴とする請求項1に記載の通信装置。A second processing unit that performs data processing on the real-time stream packet,
The determining means further determines whether the received data packet is a real-time stream packet,
The control means, when the received data packet is determined to be the real-time stream packet, transfers the received data packet to the second processing means without issuing the reception notification. The communication device according to claim 1, wherein:
受信されたリアルタイムストリームパケットに対して第二のプロトコルに従ったデータ処理を実行する第二の処理手段とを有する通信装置であって、
上記データパケットに含まれる情報に応じて、受信された上記データパケットがリアルタイムストリームパケットであるか否かを判別する判別手段と、
上記判別手段によりリアルタイムストリームパケットではないと判別された場合は、上記第一の処理手段に対して受信通知を発行し、上記判別手段によりリアルタイムストリームパケットと判別された場合は、上記第一の処理手段に対する受信通知を発行せずに、上記受信されたデータパケットを、上記第二の処理手段へ転送する制御手段と、
を備えることを特徴とする通信装置。A first processing unit that executes data processing according to a first protocol on a received data packet by receiving the reception notification;
A communication device having second processing means for performing data processing according to a second protocol on the received real-time stream packet,
Determining means for determining whether or not the received data packet is a real-time stream packet according to information included in the data packet;
If the discrimination means determines that the packet is not a real-time stream packet, it issues a reception notification to the first processing means. If the discrimination means determines that the packet is a real-time stream packet, the first processing means Control means for transferring the received data packet to the second processing means without issuing a reception notification to the means,
A communication device comprising:
上記データパケットに含まれる情報に応じて、受信された上記データパケットが重要パケットか非重要パケットかを判別する第一のステップと、
上記第一のステップにおいて上記非重要パケットと判別された場合は、所定の条件が満たされてから上記非重要パケットと判別された上記データパケットのデータ処理を実行する第二のステップとを有することを特徴とする通信方法。A communication method for receiving a data packet and performing data processing on the received data packet according to a predetermined protocol,
A first step of determining whether the received data packet is an important packet or a non-important packet, according to information included in the data packet,
A second step of performing data processing of the data packet determined as the non-important packet after a predetermined condition is satisfied when the packet is determined to be the non-important packet in the first step. A communication method characterized by the above-mentioned.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002322052A JP2004159038A (en) | 2002-11-06 | 2002-11-06 | Communication device and communication method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002322052A JP2004159038A (en) | 2002-11-06 | 2002-11-06 | Communication device and communication method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004159038A true JP2004159038A (en) | 2004-06-03 |
Family
ID=32802349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002322052A Pending JP2004159038A (en) | 2002-11-06 | 2002-11-06 | Communication device and communication method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004159038A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006311355A (en) * | 2005-04-28 | 2006-11-09 | Matsushita Electric Ind Co Ltd | Transmitter/receiver, transmission and reception method, program, and recording medium |
-
2002
- 2002-11-06 JP JP2002322052A patent/JP2004159038A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006311355A (en) * | 2005-04-28 | 2006-11-09 | Matsushita Electric Ind Co Ltd | Transmitter/receiver, transmission and reception method, program, and recording medium |
JP4723902B2 (en) * | 2005-04-28 | 2011-07-13 | パナソニック株式会社 | Transmission / reception device, transmission / reception method, program, and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220214975A1 (en) | System and method for facilitating efficient address translation in a network interface controller (nic) | |
US8671152B2 (en) | Network processor system and network protocol processing method | |
US7817634B2 (en) | Network with a constrained usage model supporting remote direct memory access | |
US8996718B2 (en) | TCP-aware receive side coalescing | |
US7613813B2 (en) | Method and apparatus for reducing host overhead in a socket server implementation | |
US8769036B2 (en) | Direct sending and asynchronous transmission for RDMA software implementations | |
US7492710B2 (en) | Packet flow control | |
US6449656B1 (en) | Storing a frame header | |
US7987307B2 (en) | Interrupt coalescing control scheme | |
JP2002517857A (en) | Two-way process-to-process byte stream protocol | |
US7356034B2 (en) | Terminal device, method for processing communication data inside the terminal device, and program for implementing the method | |
US10440157B2 (en) | Distributed measurement arrangement for an embedded automotive acquisition device with TCP acceleration | |
US8539112B2 (en) | TCP/IP offload device | |
WO2014008793A1 (en) | Tcp data transmission method, tcp uninstallation engine, and system | |
US20070291782A1 (en) | Acknowledgement filtering | |
US7761587B2 (en) | Apparatus and method for transmitting packet IP offload | |
US8279790B2 (en) | Packet buffering based at least in part upon packet receipt time interval weighted moving average | |
US7213074B2 (en) | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet | |
JP2004159038A (en) | Communication device and communication method | |
Neeser et al. | SoftRDMA: Implementing iWARP over TCP kernel sockets | |
US8842547B2 (en) | Communication control apparatus and control method | |
Gilfeather et al. | Modeling protocol offload for message-oriented communication | |
US20050086390A1 (en) | Efficient packet desegmentation on a network adapter | |
JP5013952B2 (en) | Monitoring control method and communication apparatus | |
JP2001345861A (en) | Network repeater |