(57)【要約】【課題】  ネットワークから送られてくるパケットをホストコンピュータに伝送するシステムにおいてホストコンピュータの負荷を軽減する。【解決手段】  受信パケットから一部のデータを抜き出すデータ抽出回路１０２と、抜き出されたデータに対しハッシュ演算を行うことによりダイジェストデータを生成するハッシュ回路１０５と、このダイジェストデータとホストコンピュータ１１２から予め与えられそれぞれ処理優先度に対応する複数のパケット選択データとを比較し、ダイジェストデータと一致するパケット選択データを検出し、それに対応する処理優先度を決定する比較判定器１０７と、その処理優先度に応じて１つのメモリを選択してパケットを格納するパケット分配器１０９とを備える。ホストコンピュータ１１２は優先度の高いパケットが保管されたメモリを優先的に検索することでパケットの優先処理が可能である。【選択図】  図１
2005223673.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットから一部のデータを抜き出す工程と、
前記抜き出されたデータに対しハッシュ関数を用いた演算を行うことによりダイジェストデータを生成する工程と、
ホストコンピュータから予め与えられそれぞれ処理優先度に対応する複数のパケット選択データと前記ダイジェストデータとを比較し、前記ダイジェストデータと一致するパケット選択データを検出する比較工程と、
前記検出されたパケット選択データに対応して前記パケットの処理優先度を決定する工程と、
予め用意された複数のメモリの中から前記決定された処理優先度に応じて１つのメモリを選択して前記パケットを格納する工程と、
前記比較工程で前記ダイジェストデータと一致するパケット選択データが無い場合に前記パケットを廃棄する工程とを含む、受信パケット処理方法。
【請求項２】
前記受信したパケットから一部のデータを抜き出す指示はホストコンピュータにより行われる、請求項１に記載の受信パケット処理方法。
【請求項３】
前記受信したパケットから抜き出す一部のデータは、連続したビットのデータ群または前記パケット内の複数の位置のデータ群である、請求項１に記載の受信パケット処理方法。
【請求項４】
前記ダイジェストデータは、特定ビット数のデータである、請求項１に記載の受信パケット処理方法。
【請求項５】
前記複数の各パケット選択データと前記ダイジェストデータとは同じ特定ビット数のデータであり、前記比較工程は、前記複数のパケット選択データと前記ダイジェストデータとをビット毎に比較し、前記ダイジェストデータの全ビットと一致するパケット選択データを検出する、請求項１に記載の受信パケット処理方法。
【請求項６】
前記複数のメモリの各々は、処理優先度別に物理的に分割されたメモリである、請求項１に記載の受信パケット処理方法。
【請求項７】
前記パケットを廃棄する工程は、前記パケットを前記メモリにも格納しないでパケット処理を終了する、請求項１に記載の受信パケット処理方法。
【請求項８】
受信したパケットから一部のデータを抜き出す手段と、
前記抜き出されたデータに対しハッシュ関数を用いた演算を行うことによりダイジェストデータを生成する手段と、
ホストコンピュータから予め与えられそれぞれ処理優先度に対応する複数のパケット選択データと前記ダイジェストデータとを比較し、前記ダイジェストデータと一致するパケット選択データを検出し、前記検出されたパケット選択データに対応して前記パケットの処理優先度を決定する比較判定手段と、
予め用意された複数のメモリの中から前記決定された処理優先度に応じて１つのメモリを選択して前記パケットを格納する手段と、
前記比較判定手段で前記ダイジェストデータと一致するパケット選択データが無い場合に前記パケットを廃棄する手段とを備えた、受信パケット処理装置。
【請求項９】
請求項８記載の受信パケット処理装置に対してホストコンピュータに実行させるプログラムであって、
受信したパケットから一部のデータを抜き出すための抜き出し位置情報を決定する機能と、
前記抜き出し位置情報を前記受信パケット処理装置のデータを抜き出す手段に伝達する機能と、
パケットの処理優先度を決定するための複数のパケット選択データを演算する機能と、
パケットの処理優先度を決定する情報と前記パケット選択データを前記受信パケット処理装置の比較判定手段に伝達する機能と、
複数のメモリに処理優先度別に格納されたパケットを処理優先度に従って処理する機能とを前記ホストコンピュータに実行させる、プログラム。
【請求項１０】
請求項９記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項１１】
受信したパケットから一部のデータを抜き出す工程と、
前記抜き出されたデータに対しハッシュ関数を用いた演算を行うことによりダイジェストデータを生成する工程と、
前記パケットに前記ダイジェストデータを付加する工程と、
前記ダイジェストデータを付加したパケットをメモリへ格納する工程とを含む、受信パケット処理方法。
【請求項１２】
受信したパケットから一部のデータを抜き出す手段と、
前記抜き出されたデータに対しハッシュ関数を用いた演算を行うことによりダイジェストデータを生成する手段と、
前記パケットに前記ダイジェストデータを付加する手段と、
前記ダイジェストデータを付加したパケットをメモリへ格納する手段とを備えた、受信パケット処理装置。
【請求項１３】
請求項１２記載の受信パケット処理装置に対してホストコンピュータに実行させるプログラムであって、
受信したパケットから一部のデータを抜き出すための抜き出し位置情報を決定する機能と、
前記抜き出し位置情報を前記受信パケット処理装置のデータを抜き出す手段に伝達する機能と、
パケットの処理優先度を決定するための複数のパケット選択データを演算する機能と、
メモリに格納されているパケットに付加されたダイジェストデータと一致するパケット選択データを検出し、検出されたパケット選択データに対応した処理優先度に従って前記パケットを処理する機能とを前記ホストコンピュータに実行させる、プログラム。
【請求項１４】
請求項１３記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムにおける受信パケット処理方法および装置に関するものである。
【背景技術】
【０００２】
例えばＥｔｈｅｒネットワークから送られたパケットをホストコンピュータに伝送するシステムにおいて、Ｅｔｈｅｒネットワークから送られてくるパケットには必要なパケットと他のコンピュータ宛のパケットがあり、通常ホストコンピュータによりソフトウエアで選択され、不要なパケットは廃棄される。このように従来の受信パケット処理は、主にホストコンピュータがその処理の大部分を行っており、パケットの取捨選択にかかるホストコンピュータの負荷が、民生機器などに使われる低機能なホストコンピュータでは、パケット処理能力の低下や通信以外の処理能力の低下を招いていた。これを解決するためにディスクリプタタイプのＤＭＡコントローラ（例えば特許文献１参照）を用いたものがある。またＥｔｈｅｒネットワークでのＥｔｈｅｒパケットのマルチキャストパケットを選択する機能としてハッシュ値を用いたフィルタを構成したＥｔｈｅｒトランシーバなどがある（例えば非特許文献１参照）。
【特許文献１】特開平９−２５９０７３号公報
【非特許文献１】ＤＰ８３８２０  １０／１００／１０００  Ｍｂ／ｓ  ＰＣＩ  Ｅｔｈｅｒｎｅｔ（登録商標）Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌｌｅｒ  製品仕様書  Ｎａｔｉｏｎａｌ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術では、パケットが送られてきた都度ホストコンピュータに割り込みをかけて、ホストコンピュータの処理を分断する形でのパケット処理を回避すると伴に、ディスクリプタによりパケットの低位の通信プロトコルヘッダーの情報を基にした簡単な属性情報をホストコンピュータに通知し、ホストコンピュータが処理方針を決定していた。しかしこの方式では、パケットの優先順位を決定したり廃棄を決定したりするのはホストコンピュータがパケット内のより上位の通信プロトコルヘッダーの内容を確認して行われるため、ホストコンピュータの負荷を十分に軽減することは出来なかった。
【０００４】
またハッシュ値を基にしたマルチキャストパケットフィルタではマルチキャストパケットの選択は可能であるが、その他のパケットについては選択することが出来ない。また上位通信プロトコルヘッダー情報を基にしたパケットの優先処理を判定することが出来ないという問題点があった。
【０００５】
本発明の目的は、上記問題点を解決し、ホストコンピュータの負荷を軽減することができる受信パケット処理方法および装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明の第１の発明にかかる受信パケット処理方法は、受信したパケットから一部のデータを抜き出す工程と、抜き出されたデータに対しハッシュ関数を用いた演算を行うことによりダイジェストデータを生成する工程と、ホストコンピュータから予め与えられそれぞれ処理優先度に対応する複数のパケット選択データとダイジェストデータとを比較し、ダイジェストデータと一致するパケット選択データを検出する比較工程と、検出されたパケット選択データに対応してパケットの処理優先度を決定する工程と、予め用意された複数のメモリの中から決定された処理優先度に応じて１つのメモリを選択してパケットを格納する工程と、比較工程でダイジェストデータと一致するパケット選択データが無い場合にパケットを廃棄する工程とを含むものである。
【０００７】
第１の発明において、受信したパケットから一部のデータを抜き出す指示はホストコンピュータにより行われる。
【０００８】
第１の発明において、受信したパケットから抜き出す一部のデータは、連続したビットのデータ群またはパケット内の複数の位置のデータ群であってもよい。
【０００９】
第１の発明において、ダイジェストデータは、特定ビット数のデータである。
【００１０】
第１の発明において、複数の各パケット選択データとダイジェストデータとは同じ特定ビット数のデータであり、比較工程は、複数のパケット選択データとダイジェストデータとをビット毎に比較し、ダイジェストデータの全ビットと一致するパケット選択データを検出する。このようにすることで比較が容易であり、またそのための回路構成も簡易なものとなる。
【００１１】
第１の発明において、複数のメモリの各々は、処理優先度別に物理的に分割されたメモリである。
【００１２】
第１の発明において、パケットを廃棄する工程は、パケットをメモリにも格納しないでパケット処理を終了する。
【００１３】
本発明の第１の発明にかかる受信パケット処理装置は、受信したパケットから一部のデータを抜き出す手段と、抜き出されたデータに対しハッシュ関数を用いた演算を行うことによりダイジェストデータを生成する手段と、ホストコンピュータから予め与えられそれぞれ処理優先度に対応する複数のパケット選択データとダイジェストデータとを比較し、ダイジェストデータと一致するパケット選択データを検出し、検出されたパケット選択データに対応してパケットの処理優先度を決定する比較判定手段と、予め用意された複数のメモリの中から決定された処理優先度に応じて１つのメモリを選択してパケットを格納する手段と、比較判定手段でダイジェストデータと一致するパケット選択データが無い場合にパケットを廃棄する手段とを備えたものである。
【００１４】
本発明の第１の発明にかかるプログラムは、上記第１の発明にかかる受信パケット処理装置に対してホストコンピュータに実行させるプログラムであって、受信したパケットから一部のデータを抜き出すための抜き出し位置情報を決定する機能と、抜き出し位置情報を受信パケット処理装置のデータを抜き出す手段に伝達する機能と、パケットの処理優先度を決定するための複数のパケット選択データを演算する機能と、パケットの処理優先度を決定する情報とパケット選択データを受信パケット処理装置の比較判定手段に伝達する機能と、複数のメモリに処理優先度別に格納されたパケットを処理優先度に従って処理する機能とをホストコンピュータに実行させる、プログラムである。
【００１５】
本発明の第１の発明にかかる記憶媒体は、上記第１の発明にかかるプログラムを記録したコンピュータ読み取り可能な記憶媒体である。
【００１６】
また、本発明の第２の発明にかかる受信パケット処理方法は、受信したパケットから一部のデータを抜き出す工程と、抜き出されたデータに対しハッシュ関数を用いた演算を行うことによりダイジェストデータを生成する工程と、パケットにダイジェストデータを付加する工程と、ダイジェストデータを付加したパケットをメモリへ格納する工程とを含むものである。
【００１７】
本発明の第２の発明にかかる受信パケット処理装置は、受信したパケットから一部のデータを抜き出す手段と、抜き出されたデータに対しハッシュ関数を用いた演算を行うことによりダイジェストデータを生成する手段と、パケットにダイジェストデータを付加する手段と、ダイジェストデータを付加したパケットをメモリへ格納する手段とを備えたものである。
【００１８】
本発明の第２の発明にかかるプログラムは、上記第２の発明にかかる受信パケット処理装置に対してホストコンピュータに実行させるプログラムであって、受信したパケットから一部のデータを抜き出すための抜き出し位置情報を決定する機能と、抜き出し位置情報を受信パケット処理装置のデータを抜き出す手段に伝達する機能と、パケットの処理優先度を決定するための複数のパケット選択データを演算する機能と、メモリに格納されているパケットに付加されたダイジェストデータと一致するパケット選択データを検出し、検出されたパケット選択データに対応した処理優先度に従ってパケットを処理する機能とをホストコンピュータに実行させる、プログラムである。
【００１９】
本発明の第２の発明にかかる記憶媒体は、上記第２の発明にかかるプログラムを記録したコンピュータ読み取り可能な記憶媒体である。
【発明の効果】
【００２０】
本発明の第１の発明によれば、ホストコンピュータは優先度の高いパケットが保管されたメモリを優先的に検索することでパケットの優先処理が可能となり、ホストコンピュータには優先的に処理すべきパケットを選択するための負荷はほとんど発生しない。
【００２１】
また、本発明の第２の発明によれば、ホストコンピュータはメモリからパケットに付加されたダイジェストデータ（ハッシュ値）を読み出し、判定することでパケットの優先処理が可能となり、不要と判断した場合はそのパケットの処理を中断し、次のパケット処理を開始できる。従来は各プロトコルヘッダーを順次処理し、不要と判断されるまでパケットの処理がホストコンピュータによって行われたが、ダイジェストデータ（ハッシュ値）のみによる判定で以降のプロトコル処理が削減でき、ホストコンピュータの負荷を軽減できる。
【００２２】
以上のように、本発明の構成をネットワークインターフェイスに内蔵することにより、従来技術では成しえなかった受信パケットのランク付けによる優先処理システムが容易に構築でき、民生機器で用いられるような低機能なホストコンピュータにおいても、優先度の低いパケットの処理によって優先度の高いパケットの処理が遅れることが無いネットワークシステムを構築することが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下本発明の実施形態は、Ｅｔｈｅｒパケットおよびその上位通信プロトコルの中での汎用的に用いられるＴＣＰやＩＰ等のプロトコルによってフォーマットされた受信パケットの受信回路の形態で記述している。しかし、本発明はＥｔｈｅｒパケットおよびその上位通信プロトコルに限定されず、他の通信プロトコルでの使用においても容易に適用可能である。
【００２４】
本発明の技術は様々な技術を使用して実現されている。例えば、本明細書に記載される方法は、プログラム可能なマイクコンピュータ上で実行するソフトウエアによって動作を実現している。また特に、本明細書に記載される方法は、本発明による装置のソフトウエアや上位通信プロトコルソフトウエアを保管する記憶装置などによって実現される。しかしそのようなデバイスの詳細は周知であり、本発明の明瞭化のため説明は省略する。
【００２５】
また本発明はパケットの受信に関する発明であるため、送信に関する説明及び図面内部での記載は省略されている。これは本発明の説明を簡素化及び明瞭化するためであり、送信回路を含まないことを意味するものではない。
【００２６】
〔実施形態１〕
通常ホストコンピュータがパケットの処理方針を決定する場合に使用する情報は、Ｅｔｈｅｒパケットに含まれるプロトコルヘッダーの一部の情報である。この一部の情報をホストコンピュータの代わりに処理する機能をＥｔｈｅｒパケットがホストコンピュータに受け渡されるまでの工程に実装することで、ホストコンピュータの処理を軽減することが可能となる。しかしパケットの中の一部ではあってもパケットにより必要となるデータの部分は異なる。よって実装される機能にはホストコンピュータから指定された複数のビット位置のデータのみを抜き出す機構を複数個持たせ、それぞれの選択されたビット群の複数のデータをそれぞれハッシュ処理し、固定長のダイジェストデータとすることで比較しやすい構成とする。ホストコンピュータではあらかじめ優先度を決めるための複数のダイジェストデータを演算し、実装された機能部に通知することで、この機能部でパケットの優先度確認を行うことが出来る。優先度が確認されたパケットはあらかじめ物理的に分割されたメモリに分別して保管することで、ホストコンピュータは優先度の高いパケットが保管されたメモリを優先的に検索することでパケットの優先処理が可能である。この場合ホストコンピュータは優先的に処理すべきパケットを選択するための負荷はほとんど発生しない。この構成の一例を実施形態１として説明する。
【００２７】
図１は本発明の例示的な実施形態１におけるネットワークインターフェイスの構成を示している。ここでネットワークインターフェイスはＥｔｈｅｒネットワークとホストコンピュータ間で交換されるＥｔｈｅｒ通信パケットを処理するための回路である。
【００２８】
この図１は、複数のメモリ（１１０ａ〜１１０ｃ）を持ち、パケット優先度によって物理的にパケットの保管場所を変える方式の例であり、本例ではパケットの比較条件として３種類の条件と、優先度を３段階備える場合を示している。
【００２９】
Ｅｔｈｅｒネットワークを通じて送信されてきたＥｔｈｅｒパケットはＩＳＯ−ＯＳＩモデルでの物理層処理（１１４）を施されてメディアアクセス制御モジュール（以下ＭＡＣと記載）１１３に伝送される。ＭＡＣ１１３では、ＭＡＣアドレスの照合、プリアンブルの除去、パケット長のチェック、データ誤り検出等の処理が行われる。これらの処理については既知の技術であるため説明を省略する。本発明はこれらの処理を経たパケットについて行われるものである。
【００３０】
データ抽出指示レジスタ１０１は、ホストコンピュータ１１２によって指定されるパケットの一部のデータを抜き出すためのビット場所を、ＭＡＣヘッダーの最初のビットからのビット順とその後のサンプルビット数という形で格納するレジスタである。これは複数の設定が可能な様に構成されている。一例では、ＭＡＣ宛先アドレスを示す１ビット目から４８ビット、通常ＩＰヘッダーの送信元アドレスがある２０９ビット目から３２ビット、通常ＴＣＰヘッダーの送信元ポート番号がある２７３ビット目から１６ビット、宛先ポート番号がある２８９ビット目から１６ビットなどを指定する。ここには複数の抽出セットが登録可能である。
【００３１】
データ抽出回路１０２は、データ抽出指示レジスタ１０１に登録された指定ビット位置のデータのみをパケットから抽出する。ここではデータ抽出指示レジスタ１０１に登録された複数の抽出セットを同時に抽出することが可能である。このためデータ抽出回路１０２には、データ抽出指示レジスタ１０１に登録可能な抽出セット数と同数の抽出スタート位置検出ビットカウンタ１０３と抽出ビット数用のカウンタ１０４が内蔵されている。
【００３２】
データ抽出回路１０２で抽出されたデータはハッシュ回路１０５に伝送され、ハッシュ値の計算が行われる。ハッシュ演算はある一定のビット単位で行われるが、ハッシュ演算の最終では抽出ビットが演算ビット単位に対し不足する場合がある。このため不足ビットに対してデータ“０”を入力するゼロ入力回路１０６をハッシュ回路１０５内に内蔵する。
【００３３】
比較データレジスタ１０８はホストコンピュータ１１２によってパケットから抽出されたデータのハッシュ値と比較を行うためのデータと、そのデータと一致したパケットの処理方法（優先度）を保管するためのレジスタで、複数のレジスタセットを持つ。
【００３４】
ハッシュ回路１０５である一定長にダイジェスト化された抽出データは、比較判定器１０７において、比較データレジスタ１０８に登録された複数のデータと比較され、一致したデータに付加された処理方法（優先度）を検出し、パケット分配器１０９に伝達する。一致したデータが無い場合は、その旨（廃棄判定）をパケット分配器１０９に伝達する。
【００３５】
パケット分配器１０９では、比較判定器１０７からの情報を元にパケットの格納先を決定し、パケットを複数のメモリ１１０ａ〜１１０ｃのどれかに格納する。また廃棄判定のパケットについてはどのメモリ１１０ａ〜１１０ｃにも転送せず廃棄される。
【００３６】
パケット分配器１０９には、ハッシュ回路１０５での演算及び、比較判定器１０７での比較にかかる時間分だけパケットデータを保管するためのディレイレジスタを備えている。このディレイレジスタにより、比較判定器１０７で判定が終わるまでにパケットデータを保持することが可能となる。
【００３７】
データ抽出指示レジスタ１０１の設定レジスタセット数Ａと、データ抽出回路１０２の抽出レジスタセット数Ｂと、ハッシュ回路１０５の演算器数Ｃと、比較データレジスタ１０８のレジスタセット数Ｄとは、通常同一数（Ａ＝Ｂ＝Ｃ＝Ｄ）で構成する。
【００３８】
なお、パケットの種類によってパケットを物理的に別の場所に保管するため、分類するための条件が必要となり、図１では３種類の条件で分類する場合が示されており、データ抽出回路１０２内部には、パケット内のどの部分のデータを抜き出すかによって、この場合では３種類のデータ格納場所としてレジスタ１０２ａ〜１０２ｃがある。Ｅｔｈｅｒパケットの場合、パケットのなかにはデータ伝送のための様々なヘッダと呼ばれる情報が付加されており、パケット内でこれらの情報が格納されている位置も決まっている。よってひとつのパケットから複数の伝送のための情報を抜き出し格納するのがレジスタ１０２ａ〜１０２ｃである。そしてハッシュ回路１０５ではこれらの抜き出した情報に対しそれぞれハッシュ処理を行なうので、３種類のハッシュ値が算出されそれぞれの結果を格納しているのがその内部のレジスタ１０５ａ〜１０５ｃである。比較データレジスタ１０８内部のレジスタ１０８ａ〜１０８ｃにはレジスタ１０５ａ〜１０５ｃに格納されているハッシュ値と比較するためのデータ（３種類）が格納されている。この例では３種類の条件で分類する場合が示されているが、分類条件の個数はこれに限られるものではない。
【００３９】
次に、ホストコンピュータ１１２の動作を説明する。
【００４０】
ホストコンピュータ１１２は、パケットの処理優先を選択するため、パケット内のプロトコルヘッダーの内で選択条件として必要な情報を選択し、パケット内でのビット順番とビット数をネットワークインターフェイスのデータ抽出指示レジスタ１０１に格納する。この選択条件はデータ抽出指示レジスタ１０１のレジスタ群の個数だけ設定が可能である。
【００４１】
ホストコンピュータ１１２は、パケットの選択基準となる予想される抽出ビット群より算出したハッシュ値を、比較判定器１０７で用いる判定条件データとして比較データレジスタ１０８に格納する。またそれぞれの比較値と一致したパケットの処理方法（優先度）も対応させてこのレジスタ１０８に格納する。なおこのデータ数は比較データレジスタ１０８にあるレジスタ群の個数分設定が可能である。以上、図３（ａ）のフローチャートで示される。
【００４２】
ホストコンピュータ１１２は優先度で振り分けられたパケット群を、優先度が高いパケットが格納されたメモリ１１０ａよりパケットを取り出し処理を行うことで優先的なパケット処理を行う。
【００４３】
パケットの読み出し方針はホストコンピュータ１１２のソフトウエアによってさまざまに決定することができる。一例として図３（ｂ）にパケット処理のフローチャート例を示す。優先度の最も高いメモリ１１０ａに入っているパケットの処理を連続して行いメモリ１１０ａ内にパケットが無くなった場合、次に優先度の高いメモリ１１０ｂのパケット処理を１パケット分行い、その後優先度が１番高いメモリ１１０ａにパケットがあるか確認を行う。パケットがあればそのパケットの処理を行い、パケットが無くなれば次に優先度の高いメモリ１１０ｂのパケットの処理を１パケット分行う。同様にして優先度の最も低いメモリ１１０ｃに入っているパケットの処理も行う。このような処理を繰り返すことで常に優先度の高いパケットの処理を優先して処理することが可能となる。優先度の分類はメモリ１１０に物理的に配置するメモリ群の個数分設定が可能であり、それぞれのメモリに保管されたパケットの処理は優先度で上位のメモリ内にパケットが無くなった時点で下位メモリ内を確認する方式で順次行われる。
【００４４】
以上のように本実施形態によれば、ホストコンピュータ１１２は優先度の高いパケットが保管されたメモリを優先的に検索することでパケットの優先処理が可能であり、ホストコンピュータ１１２には優先的に処理すべきパケットを選択するための負荷はほとんど発生しない。このように、従来技術では成しえなかった受信パケットのランク付けによる優先処理システムが容易に構築でき、民生機器で用いられるような低機能なホストコンピュータにおいても、優先度の低いパケットの処理によって優先度の高いパケットの処理が遅れることが無いネットワークシステムを構築することが可能となる。
【００４５】
〔実施形態２〕
図２は本発明の実施形態２におけるネットワークインターフェイスの構成を示している。この図２は、メモリが１系統のみで、ホストコンピュータが各パケット毎に算出されるハッシュ値によってパケットの処理方法を決める方式の例であり、本例ではパケットの比較条件として３種類の条件を備える場合を示している。
【００４６】
本実施形態２では、実施形態１にあったハッシュ値の比較判定器１０７と比較データレジスタ１０８とパケット分配器１０９は無く、ハッシュ値付加器１１５を設けてあり、これによりハッシュ値がパケットの先頭位置に追加されメモリ１１０に格納される。この場合ハッシュ値はホストコンピュータ１１２より一度に読み出せるビット幅であることが望ましい。またパケットが格納されるメモリ１１０もメモリ群ではなく１個のメモリで構成される。本方式ではホストコンピュータ１１２はメモリ１１０よりパケットの先頭位置に追加されたハッシュ値を読み出し、不要と判断した場合はそのパケットの処理を中断し、次のパケット処理を開始する。従来は各プロトコルヘッダーを順次処理し、不要と判断されるまでパケットの処理がホストコンピュータによって行われたが、本方式によりハッシュ値のみによる判定で以降のプロトコル処理が削減出来る。
【００４７】
この場合、ホストコンピュータ１１２の動作は以下の様になる。
【００４８】
ホストコンピュータ１１２はパケットの処理優先を選択するため、パケット内のプロトコルヘッダーの内で選択条件として必要な情報を選択し、パケット内でのビット順番とビット数をネットワークインターフェイスのデータ抽出指示レジスタ１０１に格納する。この選択条件はデータ抽出指示レジスタ１０１のレジスタ群の個数だけ設定が可能である。また、ホストコンピュータ１１２は、パケットの選択基準となる予想される抽出ビット群より算出したハッシュ値と、それに対応したパケットの処理方法（優先度）も算出しておく。以上、図４（ａ）のフローチャートで示される。
【００４９】
パケットの読み出し方針はホストコンピュータ１１２のソフトウエアによってさまざまに決定することができる。一例として図４（ｂ）にパケット処理のフローチャート例を示す。ホストコンピュータ１１２はメモリ１１０内のパケットの先頭位置に追加されたハッシュ値を参照し、予め優先度を決定するために算出しておいたハッシュ値と比較する。その結果、不要と判定した場合はそのパケットの処理を中止し、次のパケットの処理を行う。なお、不要と判定され処理が中止されたパケットについてはホストコンピュータ１１２はこのデータを以降使用しないので破棄する。またメモリ１１０より参照したパケットの優先度が低いと判定したパケットは一時的にホストコンピュータ１１２が持つホストメモリ１１１に移動し、このパケットの処理は一時中断する。次にホストコンピュータ１１２は次のパケットのハッシュ値を参照する。このパケットの優先度が以前のパケットより高い場合はこのパケットの処理を優先し、このパケットの優先度が以前のパケットと同等またはそれ以下の場合は、ホストメモリ１１１に蓄積されている以前のパケットの処理を先に行い、その後メモリ１１０内のパケットの処理を行う。この処理を繰り返しパケットの優先処理を実現する。
【００５０】
以上のように本実施形態によれば、ホストコンピュータ１１２はメモリ１１０からパケットに付加されたダイジェストデータ（ハッシュ値）を読み出し、判定することでパケットの優先処理が可能となり、不要と判断した場合はそのパケットの処理を中断し、次のパケット処理を開始できる。従来は各プロトコルヘッダーを順次処理し、不要と判断されるまでパケットの処理がホストコンピュータによって行われたが、ダイジェストデータ（ハッシュ値）のみによる判定で以降のプロトコル処理が削減でき、ホストコンピュータの負荷を軽減できる。
【００５１】
なお、以上の本発明の実施形態１、２で説明した各回路とソフトウエアで構成された受信パケット処理システムを動作させうるソフトウエアはホストコンピュータ１１２が読み込み可能な記憶媒体に記憶される。
【産業上の利用可能性】
【００５２】
本発明は、ネットワークから送られてくるパケットをホストコンピュータに伝送するシステム等に有用であり、ホストコンピュータの負荷を軽減することが可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態１におけるネットワークインターフェイスの構成図
【図２】本発明の実施形態２におけるネットワークインターフェイスの構成図
【図３】本発明の実施形態１におけるパケット処理の一例のフローチャート
【図４】本発明の実施形態２におけるパケット処理の一例のフローチャート
【符号の説明】
【００５４】
１０１：データ抽出指示レジスタ
１０２：データ抽出回路
１０３：抽出スタート位置検出ビットカウンタ
１０４：抽出ビットカウンタ
１０５：ハッシュ回路
１０６：ゼロ入力回路
１０７：比較判定器
１０８：比較データレジスタ
１０９：パケット分配器
１１０：メモリ
１１１：ホストメモリ
１１２：ホストコンピュータ
１１５：ハッシュ値付加器
【図１】
2005223673.tif 000003
【図２】
2005223673.tif 000004
【図３】
2005223673.tif 000005
【図４】
2005223673.tif 000006