【手続補正書】
【提出日】平成17年11月21日(2005.11.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  ハードウエアとプロセッサとプロトコル処理層のスタックとを有するホストコンピュータによりネットワーク通信を行うための方法であって、
ネットワークから前記ホストコンピュータによって、複数のヘッダと、前記ヘッダのプロトコル処理に従って前記ホストコンピュータの行先に配置するためのデータとを含むメッセージパケットを受信する過程と、
前記ハードウエアにより、前記ヘッダの要約を作成することを含めて、前記複数のヘッダをグループとして処理する過程と、
前記データを前記ホストコンピュータの行先に格納するために、前記要約に基づいて、前記プロトコル層によって前記パケットを処理するか、又は前記プロトコル層による処理を回避するかを選択する過程とを有することを特徴とする方法。
【請求項２】  前記プロトコル層により前記ヘッダを処理することなく、前記要約に従って前記行先に前記ヘッダなしで前記データを転送する過程を更に含むことを特徴とする請求項１に記載の方法。
【請求項３】  前記パケットに対応する伝送制御プロトコル（ＴＣＰ）コネクションのための通信制御ブロックを作成する過程と、前記データを前記行先に送出するために、前記要約と前記通信制御ブロックとを整合させる過程とをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】  前記パケットに対応する伝送制御プロトコル（ＴＣＰ）コネクションのための通信制御ブロックを作成する過程をさらに含み、前記データを前記行先に送出する過程は、前記通信制御ブロックによって前記データを誘導する過程を含むことを特徴とする請求項１に記載の方法。
【請求項５】  前記通信制御ブロックを参照することにより、前記ホストコンピュータから前記ネットワークに第２のメッセージを伝送する過程をさらに含むことを特徴とする請求項８に記載の方法。
【請求項６】  通信プロセッサを備える装置によりネットワークに接続され、プロトコル処理スタックを有するホストにより通信を処理するための方法であって、
前記ホストによって前記ネットワークから前記プロトコル処理スタックに対応する一連のヘッダとデータとを含むメッセージフレームを受信する過程と、
前記フレームについて発信元及び行先のインターネットプロトコル（ＩＰ）アドレスと発信元及び行先の伝送制御プロトコル（ＴＣＰ）ポートとを決定することを含めて、前記装置によって前記一連のヘッダをバイトのストリームとして解析する過程と、
前記プロトコル処理スタックによって前記ヘッダを処理することなく、前記ＩＰアドレス及びＴＣＰポートに基づいて、前記データを前記ヘッダなしでホストのメモリ内の行先に送出する過程とを有することを特徴とする方法。
【請求項７】  ホストのメモリ内の行先に前記ヘッダなしで前記データを送出する前記過程が、前記ホストによって、前記フレームを含むメッセージのための通信制御ブロックを作成する過程と、
前記装置に前記通信制御ブロックを格納する過程と、
前記ＩＰアドレス及びＴＣＰポートを前記通信制御ブロックと整合させる過程とをさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】  前記データを前記行先に送出する前に、前記ＩＰアドレス及びＴＣＰポートのハッシュを前記通信制御ブロックを識別するハッシュテーブルと比較する過程をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】  前記装置を経由して、前記ホストから前記ネットワークに送信データを伝送する過程をさらに含み、前記伝送する過程は、リモートホストへのネットワーク転送のために、前記送信データの前にいくつかのプロトコルプロトコルヘッダを同時に付加する過程を含むことを特徴とする請求項６に記載の方法。
【請求項１０】  プロセッサとプロトコル層の順次式スタックとを有し、ネットワークインタフェースによりネットワークに接続されたホストコンピュータにより通信を行うための方法であって、該方法は、
前記ネットワークから前記ネットワークインタフェースによって、それぞれにデータ部分と、前記プロトコル層の順次式スタックにより処理した場合には、前記データのための前記ホストコンピュータ内の上位層の行先に前記データ部分を格納させる、関連するヘッダのシーケンスとを含む多数のパケットを有するメッセージを受信する過程と、
前記ネットワークインタフェースによって、前記関連するヘッダを用いることなく、かつ任意のホストＣＰＵへの割り込みを発生することなく、複数の前記データ部分を前記行先に送出する過程とを有することを特徴とする方法。
【請求項１１】  前記データ部分を前記行先に送出する過程の前に、前記プロトコル層のスタックによって前記パケットを処理するか否かを選択する過程をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】  前記ヘッダを用いることなく前記データ部分を前記行先に送出する前に、前記ネットワークインタフェースで前記ヘッダを処理する過程をさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１３】  前記ネットワークインタフェースを介して前記ホストから前記ネットワークにデータファイルを伝送する過程をさらに含み、前記伝送する過程は、前記データファイルを一連のデータユニットに分割する過程と、前記データユニットの前に前記ヘッダを付加し、それにより一連のネットワークフレームを作成する過程と、任意のホストＣＰＵに割り込みを発生することなく、前記ネットワークフレームを前記ネットワークに配置する過程とを含むことを特徴とする請求項１０に記載の方法。
【請求項１４】  ＣＰＵと、メモリと、プロトコル層の順次式スタックとを備え、ネットワークインタフェース装置によりネットワークに接続されたホストコンピュータによって通信を行うための方法であって、
前記装置によって前記ネットワークから第１のパケットを受信する過程と、
前記第１のパケットに対する伝送制御プロトコル（ＴＣＰ）状態を含む通信制御ブロックを作成する過程を含めて、前記第１のメッセージを処理する過程と、
前記通信制御ブロックを前記装置に転送する過程と、
前記装置によって前記ネットワークから、データとヘッダとを含み、かつ前記通信制御ブロックに対応する第２のパケットを受信する過程と、
前記装置によって前記ヘッダを処理する過程と、
前記装置によって前記データを前記プロトコル層の上位層に、該上位層に適した形で送出し、前記通信制御ブロックを用いて前記送出を誘導する過程とを有することを特徴とする方法。
【請求項１５】  前記通信制御ブロックに対応する第３のパケットを前記装置によって受信する過程と、前記装置から前記メモリに前記通信制御ブロックの制御を渡す過程と、前記ＣＰＵにより前記第３のパケットを処理する過程とをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】  前記データを前記上位層に送出する前に、前記第２のパケットのＩＰアドレスとＴＣＰポートとを前記通信制御ブロックに整合させる過程をさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１７】  前記ホストから前記ネットワークに第３のパケットを伝送する過程をさらに含み、該過程は、前記通信制御ブロックを参照し、かつ複数のプロトコル層ヘッダを含む送信ヘッダをホストソースから取得されるデータに付加することにより、前記装置を経由して前記第３のパケットを送出する過程を含むことを特徴とする請求項１４に記載の方法。
【請求項１８】  プロトコル処理装置によりネットワークに接続され、プロトコル処理スタックを有するローカルホストによりネットワーク通信を行うための方法であって、
前記プロトコル処理スタックにより、前記ローカルホストと前記リモートホストとの間の伝送制御プロトコル（ＴＣＰ）コネクションを定義する通信制御ブロックを作成する過程と、
前記通信制御ブロックを前記装置に渡し、それにより前記コネクションに関連しかつ前記ネットワークと前記ローカルホストとの間で転送されるメッセージパケットのＴＣＰ処理の制御を渡し、それにより、前記パケットを前記プロトコル処理スタックではなく、前記装置によって処理する過程とを有することを特徴とする方法。
【請求項１９】  前記ネットワークと前記ローカルホストとの間で転送されかつ前記コネクションに関連する第２のメッセージパケットが全般に前記プロトコル処理スタックによって処理されるように、前記通信制御ブロックの制御を前記ローカルホストに渡す過程をさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２０】  前記装置によって、前記ネットワークからメッセージフレームを受信する過程と、
前記装置によって、前記メッセージフレームのヘッダを解析し、それにより前記メッセージフレームのＴＣＰ発信元ポート及び行先ポートを決定する過程と、
前記ＴＣＰ発信元ポート及び行先ポートを前記通信制御ブロックと比較する過程とをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２１】  前記装置によって、前記ネットワークにメッセージフレームを伝送する過程をさらに含み、前記伝送する過程は、前記通信制御ブロックに基づいてヘッダを形成する過程と、前記メッセージフレームの前に前記ヘッダを付加する過程とを含むことを特徴とする請求項１８に記載の方法。
【請求項２２】  ネットワークを経由してリモートホストに接続することができるローカルホストで用いるための装置であって、前記ローカルホストは、前記ローカルホストのアプリケーションと前記リモートホストのアプリケーションとの間のＴＣＰコネクションを設定するプロトコル処理層のスタックを動作させるＣＰＵを含み、該装置は、
前記ＣＰＵと、前記ネットワークとに接続され、前記コネクションを参照することにより、前記プロトコル処理層によってネットワークメッセージを処理するか、前記プロトコル処理層を回避し、前記ネットワークと前記ローカルホストアプリケーションとの間の前記メッセージに含まれるデータを転送するために前記コネクションを用いるかを選択するために構成されるプロセッサを含む通信処理機構を備えることを特徴とする装置。
【請求項２３】  前記プロセッサは、前記コネクションをその前記メッセージの処理に基づいて更新するように構成されることを特徴とする請求項２２に記載の装置。
【請求項２４】  前記通信処理機構は、前記プロセッサに接続され、前記ネットワークから受信されるメッセージパケットの要約を生成するために構成される受信シーケンサを備え、前記メッセージパケットは、前記プロトコル層のスタックに対応する制御情報を含み、前記プロセッサは前記要約を前記コネクションと比較するように構成されていることを特徴とする請求項２２に記載の装置。
【請求項２５】  前記プロセッサは、前記コネクションに対応するヘッダを作成し、前記プロトコル処理層のいくつかに対応する制御情報を含み、前記ホストから前記リモートヘッダに前記メッセージを伝送するために前記データの前に前記ヘッダを付加し、前記コネクションを更新するように構成されることを特徴とする請求項２２に記載の装置。
【請求項２６】  前記通信処理機構は、前記コネクションに基づいて、前記データに付随する全ゆるヘッダを用いることなく、前記通信処理機構から前記ホストアプリケーションに前記データを送出するためのダイレクトメモリアクセスユニットを備えることを特徴とする請求項２２に記載の装置。
【請求項２７】  前記プロセッサは複数のマイクロプロセッサを備え、前記マイクロプロセッサのうちの少なくとも１つは主に、前記ネットワークから前記ホストによって受信されるメッセージを処理するように構成され、前記マイクロプロセッサのうちの第２のマイクロプロセッサは前記ホストから前記ネットワークに伝送されるメッセージを処理するように構成されることを特徴とする請求項２３に記載の装置。
【請求項２８】  前記マイクロプロセッサは、フェーズをローテーションする際に共有されるハードウエア機能を利用することを特徴とする請求項２７に記載の装置。
【請求項２９】  前記通信処理機構は、複数のキュー記憶ユニットにおいて情報をキューに入れるために構成されるキューマネージャを備え、前記キュー記憶ユニットのうちの少なくとも１つはＳＲＡＭおよびＤＲＡＭを含むことを特徴とする請求項２２に記載の装置。
【請求項３０】  ＣＰＵを有するローカルホストとリモートホストとの間で通信を行うための装置であって、前記ローカルホストと前記リモートホストとはネットワークによって接続され、該装置は、
前記ネットワークと前記ローカルホストとに接続される通信処理機構であって、前記通信処理機構はデータパケットを処理し、前記パケットの状態を生成するために前記ＣＰＵによって動作させることができるハードウエアロジックを含む、該通信処理機構と、
前記ローカルホスト内に配置され、通信制御ブロックを作成し、前記通信制御ブロックを前記通信処理機構に渡すためにＣＰＵによって動作させることができるプロトコル処理スタックであって、前記通信制御ブロックは、前記ローカルホストと前記リモートホストとの間のコネクションを定義する、該プロトコル処理スタックとを備え、
前記通信処理機構と前記プロトコル処理スタックとは、前記通信処理機構が前記通信制御ブロックを保持しているときに、前記コネクションに対応し、前記ネットワークと前記ローカルホストとの間で転送されるメッセージが、前記ＣＰＵの代わりに前記通信処理機構によって処理されるように構成されることを特徴とする装置。
【請求項３１】  前記通信処理機構と前記プロトコル処理スタックとは、前記通信処理機構が前記通信制御ブロックを保持しているときに、前記コネクションに対応し、前記ネットワークと前記ローカルホストとの間で転送される第２のメッセージが、前記通信処理機構の代わりに前記ＣＰＵによって処理されるように構成されることを特徴とする請求項３０に記載の装置。
【請求項３２】  ネットワークと、プロトコル層のスタックを有するホストとの間に結合された装置であって、該装置は、
前記ネットワークから受信されるデータと伝送制御プロトコルコネクションに対応するヘッダとを含むメッセージパケットを検査しかつ分類するための複数の論理ユニットと、
前記ホストと前記装置との間で前記ＴＣＰコネクションを転送するための手段と、
前記ＴＣＰコネクションを維持するためのマイクロプロセッサとを備えることを特徴とする装置。
【請求項３３】  前記マイクロプロセッサは複数のパイプライン処理されるプロセッサを含み、前記プロセッサのうちの１つは、ネットワークメッセージを伝送するために構成され、前記プロセッサのうちの別のプロセッサはネットワークメッセージを受信するために構成されることを特徴とする請求項３２に記載の装置。
【請求項３４】  前記分類処理に基づいて、前記パケットヘッダを前記ＴＣＰコネクションと比較するための機構をさらに備えることを特徴とする請求項３２に記載の装置。
【請求項３５】  ネットワークとホストコンピュータとの間でメッセージを転送するための装置であって、前記メッセージは、プロトコル層のシーケンスに対応する一連のヘッダを含み、前記装置は、ビットのストリームとして前記一連のヘッダを処理し、前記メッセージの状態を生成するために配列される一連のシーケンサを含み、前記シーケンサのうちの少なくとも１つは、前記プロトコル層の上位層に対応するヘッダを分類するためのロジックを含んでいることを特徴とする装置。
【請求項３６】  前記シーケンサに接続され、かつ前記状態に基づいて伝送制御プロトコル（ＴＣＰ）コネクションを更新するように適合させた通信プロセッサをさらに備えることを特徴とする請求項３５に記載の装置。
【請求項３７】  ネットワークとホストとの間でメッセージを伝送するための装置であって、該装置は、
複数のキューを定義する可変長のＦＩＦＯ回路のアレイと、
前記ネットワークから受信された前記メッセージのフレームの状態を生成し、前記キューの少なくとも１つに前記状態を格納するために構成される受信シーケンサと、
フェーズを変更する際に一組の論理ユニットを動作させる複数のパイプライン処理されるマイクロプロセッサであって、前記マイクロプロセッサのうちの第１のマイクロプロセッサは前記ネットワークから受信される前記メッセージを処理するように構成され、前記マイクロプロセッサのうちの第２のマイクロプロセッサは前記ネットワークに伝送される前記メッセージを処理するように構成され、前記プロセッサは、前記メッセージの転送を加速するために、前記シーケンサとともに通信制御ブロックを用いる、該マイクロプロセッサとを備えることを特徴とする装置。
【請求項３８】  前記キューの少なくとも１つは、ＤＲＡＭおよびＳＲＡＭ記憶ユニットを含むことを特徴とする請求項３７に記載の装置。
【請求項３９】  ネットワークと、プロセッサとプロトコル層の順次式スタックとを有するホストコンピュータとの間で通信を行うための装置であって、該装置は、
前記ネットワークから前記ホストコンピュータによって、データと、前記プロトコル層のスタックに対応する複数のヘッダとを含むメッセージパケットを受信するための手段であって、前記データは、前記ヘッダのプロトコル処理に従って前記ホストコンピュータの行先に配置するために用いられる、該受信するための手段と、
前記ヘッダのグループの要約を作成し、前記複数のヘッダを処理するための手段と、
前記ヘッダのグループの前記要約に従って前記行先に前記データを送出するため手段とを備え、それにより前記プロトコル層のスタックによる前記パケットの順次式処理が回避されるようになることを特徴とする装置。
【請求項４０】  ネットワークインタフェースによってネットワークに接続可能なホストコンピュータによる通信のための方法であって、
前記ホストの中央処理装置（ＣＰＵ）により伝送制御プロトコル（ＴＣＰ）コネクションを確立する過程と、
前記ＴＣＰコネクションに対応するメディアアクセス制御（ＭＡＣ）アドレス、インターネットプロトコル（ＩＰ）アドレス及びＴＣＰポートと共に、前記ＴＣＰ接続を前記ネットワークインタフェースに転送する過程とを有する方法。
【請求項４１】  前記確立過程及び転送過程が、前記ＣＰＵ上で実行するプロトコル処理スタックにより実行されることを特徴とする請求項４０に記載の方法。
【請求項４２】  前記ネットワークインタフェースが、専用のネットワークインタフェースカードと、該専用ネットワークインタフェースカードに前記ＴＣＰコネクションを渡すデバイスドライバとを有することを特徴とする請求項５３に記載の方法。
【請求項４３】  前記ネットワークインタフェースから前記ＣＰＵに前記ＴＣＰコネクションの制御を転送する過程を更に有することを特徴とする請求項５３に記載の方法。
【請求項４４】  前記ＣＰＵによって、前記ネットワークインタフェースから前記ＣＰＵへの前記ＴＣＰコネクションの制御の転送を開始する過程を更に有することを特徴とする請求項４０に記載の方法。
【請求項４５】  前記ネットワークインタフェースによって、前記ＴＣＰコネクションに対応するパケットでのＴＣＰ処理を実行する過程を更に含むことを特徴とする請求項４０に記載の方法。
【請求項４６】  前記ネットワークインタフェースによって、データと前記ＴＣＰコネクションに対応するＴＣＰヘッダとを含むパケットを処理する過程と、
前記ネットワークインタフェースによって、前記ホストの前記ＴＣＰポートに関連する前記ホスト内の行先に前記ＴＣＰヘッダなしで前記データを格納する過程とからなることを特徴とする請求項４０に記載の方法。
【請求項４７】  ホストコンピュータの中央処理装置（ＣＰＵ）について使用するためのネットワークインタフェース装置であって、前記ネットワークインタフェース装置が、
ネットワークパケットを受信し、前記パケットの伝送制御プロトコル（ＴＣＰ）チェックサムを検査し、かつ前記パケットのメディアアクセス制御（ＭＡＣ）、インターネットプロトコル（ＩＰ）及びＴＣＰヘッダを解析して、前記パケットの発信元及び行先のＭＡＣアドレス、ＩＰアドレス及びＴＣＰポートを決定するプロトコル処理ハードウエアと、
前記ホストのＩＰアドレス及びＴＣＰポートとリモートホストのＩＰアドレス及びＴＣＰポートとによって少なくとも部分的に識別されるＴＣＰコネクションを前記ホストから受信し、前記ＴＣＰコネクションの状態、前記ホストの前記ＩＰアドレス並びにＴＣＰポート、前記リモートホストの前記ＩＰアドレス並びにＴＣＰポート、及び前記ネットワークインタフェース装置のための発信元並びに行先ＭＡＣアドレスを格納するインタフェースメモリにアクセスし、検査した前記パケットの前記ＩＰアドレス及び前記ＴＣＰポートが前記ＴＣＰコネクションの前記ＩＰアドレス及びＴＣＰポートに整合するとき、前記ＴＣＰコネクションの状態を更新するように適合されたプロセッサとを備えることを特徴とするネットワークインタフェース装置。
【請求項４８】  前記プロセッサが、前記ホストコンピュータに接続されたネットワークインタフェースカード内に含まれることを特徴とする請求項４７に記載のネットワークインタフェース装置。
【請求項４９】  前記プロセッサが前記ホストコンピュータに統合されていることを特徴とする請求項４７に記載のネットワークインタフェース装置。
【請求項５０】  前記ＴＣＰコネクションの制御を前記ホストＣＰＵに転送する機構を更に備えることを特徴とする請求項４７に記載のネットワークインタフェース装置。
【請求項５１】  前記メモリ内に格納され、かつ前記ＴＣＰコネクションの前記ＩＰアドレス及び前記ＴＣＰポートのハッシュ値を含むハッシュテーブルを更に備えることを特徴とする請求項４７に記載のネットワークインタフェース装置。
【請求項５２】  前記ＴＣＰコネクションに対応する第２のネットワークパケットを、該第２のネットワークパケットを前記リモートホストに転送するために作成する機構を更に備えることを特徴とする請求項４７に記載のネットワークインタフェース装置。