JP2010517152A - ネットワーク・インターフェース・カード伝送制御プロトコル・アクセラレーション・オフロード障害の検出および回復の機構 - Google Patents

ネットワーク・インターフェース・カード伝送制御プロトコル・アクセラレーション・オフロード障害の検出および回復の機構 Download PDF

Info

Publication number
JP2010517152A
JP2010517152A JP2009546733A JP2009546733A JP2010517152A JP 2010517152 A JP2010517152 A JP 2010517152A JP 2009546733 A JP2009546733 A JP 2009546733A JP 2009546733 A JP2009546733 A JP 2009546733A JP 2010517152 A JP2010517152 A JP 2010517152A
Authority
JP
Japan
Prior art keywords
transmission control
control protocol
offload function
failure
network interface
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.)
Granted
Application number
JP2009546733A
Other languages
English (en)
Other versions
JP4949483B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010517152A publication Critical patent/JP2010517152A/ja
Application granted granted Critical
Publication of JP4949483B2 publication Critical patent/JP4949483B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】ネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害の検出および回復のコンピュータ実施される方法およびデータ処理システムを提供すること。
【解決手段】ネットワーク・インターフェース・カード内の伝送制御プロトコル・オフロード機能の要求を含む伝送制御プロトコル・セグメントの肯定応答の受信の失敗に応答して、その伝送制御プロトコル・セグメントが、伝送制御プロトコル・オフロード機能の要求を伴わずに再送信される。伝送制御プロトコル・オフロード機能の要求を伴わずに再送信された伝送制御プロトコル・セグメントの肯定応答が受信されるとき、カウンタが増分され、このカウンタは、伝送制御プロトコル・オフロード機能の障害を示す。このカウンタが許容される障害の事前定義の個数を超えることに応答して、そのネットワーク・インターフェース・カードの伝送制御プロトコル・オフロード機能へのすべての要求が、停止される。
【選択図】図5

Description

本発明は、全般的には改善されたデータ処理システムに関し、具体的には、ネットワーク・インターフェース・カード(NIC)伝送制御プロトコル(TCP)アクセラレーション・オフロード障害の検出および回復のコンピュータ実施される方法およびデータ処理システムに関する。
データ通信は、機能強化された通信標準およびネットワーク可用性のゆえに、近年に指数関数的に成長してきた。伝送制御プロトコル(TCP)は、データのパケットが、送信されたのと同一の順序で送達され、受信されることを保証する標準であり、インターネット・プロトコル(IP)は、TCPと共に、情報がシステムの間でインターネットにまたがってどのように移動するのかを指定するのに使用される。ほとんどのコンピュータは、ネットワークを介して情報を送信し、受信するのにTCP/IPプロトコルを使用するネットワーク・インターフェース・カードを有する。
伝統的なネットワーク・インターフェース・カードでは、TCPスタックは、システム・プロセッサを使用して、データをネットワーク・インターフェース・カードに渡す前に、TCPセグメントをイーサネット・フレームに分解する。これは、特にネットワーク・インターフェース・カードが毎秒数万回の割込みを生成する可能性があるギガビット・ネットワークで、長い処理時間を必要とする。これらの割込みは、さらに多くのプロセッサ・サイクルを利用する。
ローカル・エリア・ネットワーク(LAN)テクノロジ、特にイーサネットは、媒体速度を3〜4年おきに10倍改善してきたが、中央処理装置(CPU)速度は、1年おきに2倍になる。その結果、CPUは、高入出力(I/O)性能システムで高速レートでのボトルネックになりつつある。プロセッサ性能のこの遅れを軽減するために、ますます多数のネイティブ・ホスト機能を、データ・スループットを加速するためにI/Oアダプタにオフロードすることができる。スループットは、特定の長さの時間に転送されるデータの量の尺度である。機能のオフロードは、ホストCPU作業負荷を減らし、I/Oアダプタ・スループットを改善するという追加の利益を有する。
1つのTCPアクセラレーション・オフロード機能が、TCPセグメンテーション・オフロード(TSO)である。「ラージ・センド・オフロード(large send offload)」(LSO)としても知られるTCPセグメンテーション・オフロードでは、ホストTCPプロトコル・スタックが、サイズにおいて64KBまでの大きいTCPセグメントを作成する。次に、この大きいセグメントが、IPプロトコル・スタックに渡され、そこで、このセグメントが、単一のIPパケットにカプセル化される。次に、カプセル化されたセグメントは、ネットワーク・インターフェース・カード・デバイス・ドライバに渡され、最後に、送信のためにネットワーク・インターフェース・カードに渡される。次に、TCPセグメンテーション・オフロードを実施するネットワーク・インターフェース・カードは、この単一の大きいTCPセグメントを通常は標準イーサネット接続について1460バイトである複数のより小さいTCPセグメントに組み立てなおし、セグメントごとに必要なイーサネット/IP/TCPヘッダ情報を挿入する。セグメンテーション・オフローディングを使用することの性能上の利益は、より大きいパケットをホストTCPスタックによって作成でき、これが、通常は減らされたホスト・プロセッサ利用度になるという事実によって得られる。追加の性能上の利益は、一般に、より大きいPCIデータ・トランザクションが、より高いPCIバス・スループットになるという事実のおかげで得られる。バッファをイーサネット・フレームにセグメント化するという作業が、ネットワーク・インターフェース・カードによって行われるので、プロセッサは、他のタスクの実行に使用可能である。
もう1つのTCPアクセラレーション・オフロード機能が、TCPチェックサム・オフロード(TCO)である。TCPチェックサム・オフロードでは、TCPチェックサム・オフロードを実施するネットワーク・インターフェース・カードが、ホストCPUの代わりにTCPチェックサムの計算を実行する。TCPチェックサム・オフロードは、TCPペイロード、TCPヘッダ、およびIPヘッダのチェックサムを実行するというタスクがネットワーク・インターフェース・カードにオフロードされるので、ホストCPU作業負荷を大幅に減らすことができる。ホスト・プロトコル・レイヤは、任意選択で、TCP擬似ヘッダ・チェックサムを計算し(ネットワーク・インターフェース・カードの特定の要件に依存する)、その値をチェックサム・フィールドに置くことができる。次に、ネットワーク・インターフェース・カードは、IPヘッダを参照する必要なしに、正しいTCPチェックサムを計算することができる。
TCPアクセラレーション・オフロード機能が期待されるとおりに動作するときに、ネットワークおよびシステム性能を大幅に高めることができる。したがって、IBM(R)Corporation社の製品であるAIX(R)(Advanced Interactive eXecutive)を含む多くのオペレーティング・システムは、これらのアクセラレーション機能を利用する。
しかし、現在のTCPアクセラレーション・オフロード機能の大きい制限は、これらのアクセラレーション・オフロード機能が正しく動作できないとき深刻な問題が発生し得ることである。たとえば、ネットワーク・インターフェース・カード内のTCPチェックサム・ジェネレータ論理は、この論理を実施するそのカードのハードウェア状態機械またはマイクロコード内の障害に起因して「不良」状態に遷移する場合がある。この状況では、アダプタによって送られるすべてのTCPチェックサム・オフロード・パケットが、無効なTCPチェックサムを有することになり、これにより、これらのパケットが宛先ホストによって破棄されることになる。したがって、アクセラレーション・オフロード機能が期待されるとおりに動作できないときに、しばしばネットワーク・アダプタが実際上使用不能に思われる点まで、深刻なネットワーク劣化が発生し得る。
例示的実施形態は、ネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害の検出および回復のコンピュータ実施される方法およびデータ処理システムを提供する。
ネットワーク・インターフェース・カード内の伝送制御プロトコル・オフロード機能の要求を含む伝送制御プロトコル・セグメントの肯定応答の受信の失敗に応答して、その伝送制御プロトコル・セグメントが、伝送制御プロトコル・オフロード機能の要求を伴わずに再送信される。伝送制御プロトコル・オフロード機能の要求を伴わずに再送信された伝送制御プロトコル・セグメントの肯定応答が受信されるとき、カウンタが増分され、このカウンタは、伝送制御プロトコル・オフロード機能の障害を示す。このカウンタが許容される障害の事前定義の個数を超えることに応答して、そのネットワーク・インターフェース・カードの伝送制御プロトコル・オフロード機能へのすべての要求が、停止される。
本発明を、例としてのみ、添付図面を参照してこれから説明する。
例示的実施形態を実施できるデータ処理システムのネットワークを示す絵図である。 例示的実施形態を実施できるデータ処理システムを示すブロック図である。 例示的実施形態によるネットワーク・インターフェース・カードを示すブロック図である。 例示的実施形態による伝送制御プロトコル/インターネット・プロトコル(TCP/IP)および類似するプロトコルを示す図である。 例示的実施形態によるネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害の検出および回復を示す流れ図である。
図面、具体的には図1〜2を参照すると、例示的実施形態を実施できるデータ処理環境の例示的な図が示されている。図1〜2が、例示にすぎず、異なる実施形態を実施できる環境に関する限定を主張しまたは暗示することは意図されていないことを理解されたい。図示の環境に対する多くの変更を行うことができる。
図1に、例示的実施形態を実施できるデータ処理システムのネットワークの絵図を示す。ネットワーク・データ処理システム100は、例示的実施形態を実施できるコンピュータのネットワークである。ネットワーク・データ処理システム100は、ネットワーク102を含み、ネットワーク102は、ネットワーク・データ処理システム100内で一緒に接続されたさまざまなデバイスおよびコンピュータの間の通信リンクを提供するのに使用される媒体である。ネットワーク102は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続を含むことができる。
図示の例では、サーバ104およびサーバ106は、ストレージ・ユニット108と共にネットワーク102に接続する。さらに、クライアント110、112、および114が、ネットワーク102に接続する。クライアント110、112、および114は、たとえば、パーソナル・コンピュータまたはネットワーク・コンピュータとすることができる。図示の例では、サーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータをクライアント110、112、および114に供給する。クライアント110、112、および114は、この例ではサーバ104に対するクライアントである。ネットワーク・データ処理システム100は、追加のサーバ、クライアント、および図示されていない他のデバイスを含むことができる。
図示の例では、ネットワーク・データ処理システム100は、インターネットであり、ネットワーク102は、互いに通信するのに伝送制御プロトコル/インターネット・プロトコル(TCP/IP)プロトコル・スイートを使用するネットワークおよびゲートウェイの全世界の集合を表す。インターネットの心臓部には、データおよびメッセージをルーティングする、数千台の商用、政府、教育、および他のコンピュータ・システムからなる、主要ノードまたはホスト・コンピュータの間の高速データ通信回線のバックボーンがある。もちろん、ネットワーク・データ処理システム100を、たとえばイントラネット、ローカル・エリア・ネットワーク(LAN)、または広域ネットワーク(WAN)など、複数の異なるタイプのネットワークとして実施することもできる。図1は、例として意図されており、異なる例示的実施形態に関するアーキテクチャ的限定として意図されたものではない。
図2を参照すると、例示的実施形態を実施できるデータ処理システムのブロック図が示されている。データ処理システム200は、図1のサーバ104またはクライアント110など、本プロセスを実施するコンピュータ使用可能プログラム・コードまたは命令を例示的実施形態のために配置できるコンピュータの例である。
図示の例では、データ処理システム200は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)202とサウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH)204とを含むハブ・アーキテクチャを使用する。処理ユニット206、メイン・メモリ208、およびグラフィックス・プロセッサ210は、ノース・ブリッジおよびメモリ・コントローラ・ハブ202に結合される。処理ユニット206は、1つまたは複数のプロセッサを含むことができ、1つまたは複数の異種プロセッサ・システムを使用して実施することすらできる。グラフィックス・プロセッサ210を、たとえばaccelerated graphics port(AGP)を介してNB/MCHに結合することができる。
図示の例では、ネットワーク・アダプタ212は、サウス・ブリッジおよびI/Oコントローラ・ハブ204に結合され、オーディオ・アダプタ216、キーボードおよびマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM)224、universal serial bus(USB)および他のポート232、ならびにPCI/PCIeデバイス234は、バス238を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合され、ハード・ディスク・ドライブ(HDD)226およびCD−ROM 230は、バス240を介してサウス・ブリッジおよびI/Oコントローラ・ハブ204に結合される。PCI/PCIeデバイスは、たとえば、イーサネット・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードを含むことができる。PCIは、カード・バス・コントローラを使用するが、PCIeは使用しない。ROM 224は、たとえば、フラッシュ基本入出力システム(BIOS)とすることができる。ハード・ディスク・ドライブ226およびCD−ROM 230は、たとえば、integrated drive electronics(IDE)またはserial advanced technology attachment(SATA)インターフェースを使用することができる。スーパーI/O(SIO)デバイス236を、サウス・ブリッジおよびI/Oコントローラ・ハブ204に結合することができる。
オペレーティング・システムが、処理ユニット206上で動作し、図2のデータ処理システム200内のさまざまなコンポーネントの制御を調整し、提供する。オペレーティング・システムは、Microsoft(R)Windows(R)XP(MicrosoftおよびWindowsは米国、他国、またはその両方でのMicrosoft Corporation社の商標である)などの市販オペレーティング・システムとすることができる。Java(商標)プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムとあいまって動作することができ、データ処理システム200上で実行されるJava(商標)プログラムまたはアプリケーションからオペレーティング・システムへの呼び出しを提供する。Java(商標)およびJava(商標)に基づく商標すべては、米国、他国、またはその両方でのSun Microsystems, Inc.社の商標である。
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションもしくはプログラムの命令は、ハード・ディスク・ドライブ226などのストレージ・デバイスに配置され、処理ユニット206による実行のためにメイン・メモリ208にロードされ得る。例示的実施形態のプロセスは、コンピュータ実施される命令を使用して処理ユニット206によって実行することができ、このコンピュータ実施される命令は、たとえばメイン・メモリ208、ROM 224、または1つもしくは複数の周辺デバイスなどのメモリに配置することができる。
図1〜2のハードウェアは、実施態様に応じて変化し得る。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブおよび類似物など、他の内部ハードウェアまたは周辺デバイスを、図1〜2に示されたハードウェアに加えてまたはその代わりに使用することができる。また、例示的実施形態のプロセスを、マルチプロセッサ・データ処理システムに適用することができる。
いくつかの例示的な例で、データ処理システム200を、携帯情報端末(PDA)とすることができ、PDAは、一般に、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納する不揮発性メモリを提供するためにフラッシュ・メモリを用いて構成される。バス・システムは、システム・バス、I/Oバス、およびPCIバスなど、1つまたは複数のバスからなるものとすることができる。もちろん、バス・システムを、ファブリックまたはアーキテクチャに接続された異なるコンポーネントまたはデバイスの間でのデータの転送を提供する任意のタイプの通信ファブリックまたはアーキテクチャを使用して実施することができる。通信ユニットは、モデムまたはネットワーク・アダプタなど、データを送信し受信するのに使用される1つまたは複数のデバイスを含むことができる。メモリは、たとえば、メイン・メモリ208、またはノース・ブリッジおよびメモリ・コントローラ・ハブ202に見られるものなどのキャッシュとすることができる。処理ユニットは、1つまたは複数のプロセッサまたはCPUを含むことができる。図1〜2に図示された例および上で説明した例は、アーキテクチャ的限定を暗示することを意図されたものではない。たとえば、データ処理システム200を、PDAの形をとることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話デバイスとすることもできる。
例示的実施形態は、ネットワーク・インターフェース・カード(NIC)伝送制御プロトコル(TCP)アクセラレーション・オフロード障害の検出および回復のコンピュータ実施される方法およびデータ処理システムを提供する。具体的に言うと、例示的実施形態は、オペレーティング・システムのTCPスタックが慢性のネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害を検出し、これから回復することを可能にするために、TCP内の既存の再送信プロトコルを活用する。TCPの既存の再送信プロトコルは、受信デバイスによって肯定応答されないデータ・セグメントを再送信する能力を含む。たとえば、TCPは、再送信タイマを利用することができ、この再送信タイマは、データ・セグメントの受信が受信デバイスによって肯定応答されるまで、または受信デバイスへの再送信の最大回数を超えたとTCPが判断するときまで、TCPに1つのデータ・セグメントを複数回再送信させる。さらに、例示的実施形態は、TCPによって作成される個々のデータ・セグメントごとにオフロード・サービスを明示的に要求するために、TCPチェックサム・オフロードまたはTCPセグメンテーション・オフロードなどのネットワーク・インターフェース・カードTCPアクセラレーション・オフロード機能をサポートするオペレーティング・システムTCPスタックの既存の能力をも使用する。したがって、これらのTCPスタックは、基礎になるネットワーク・インターフェース・カードがオフロード機能をサポートする場合であっても、TCPアクセラレーション・オフロード機能を要求しないことを選択する能力を有する。
上にリストしたTCPの現在の能力を利用して、例示的実施形態は、オペレーティング・システムのTCPスタックが、特にネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害(他のネットワーク問題またはネットワーク障害ではなく)によって引き起こされる伝送障害を検出できる機構を提供する。この機構は、TCPスタックが、障害を発生しているネットワーク・インターフェース・カードについてネットワーク・インターフェース・カードTCPアクセラレーション・オフロード機能の使用をやめることをも可能にし、したがって、ユーザ介入を必要とせずに障害からの回復を容易にする。
例示的実施形態の機構は、オペレーティング・システムTCPスタックが、セグメントのTCPチェックサム・オフロードまたはTCPセグメンテーション・オフロードを実行するようにネットワーク・インターフェース・カードに要求するTCPセグメントを作成するとき実施され得る。オペレーティング・システムTCPスタックが、事前定義のタイム・インターバル内にそのセグメントの肯定応答を受信しない場合に、オペレーティング・システムTCPスタックは、そのセグメントを再送信する。ネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害を検出し、これから回復するために、オペレーティング・システムTCPスタックが、事前定義の回数の再送信の試みの後に肯定応答を受信せず、TCPチェックサム・オフロードまたはTCPセグメンテーション・オフロードが以前にそのセグメントについて要求されたときに、オペレーティング・システムTCPスタックは、要求されたTCPチェックサム・オフロードまたはTCPセグメンテーション・オフロードを用いずにそのセグメントを再送信する。その後、オペレーティング・システムTCPスタックがそのセグメントの肯定応答を受信する場合に、オペレーティング・システムTCPスタックは、ネットワーク・インターフェース・カードのTCPアクセラレーション・オフロード機能が障害を発生している状態をオペレーティング・システムTCPスタックが疑う回数を示すプライベート・カウンタを増分する。このプライベート・カウンタが、「許容される」障害の事前定義の回数に達する場合に、オペレーティング・システムTCPスタックは、すべての既存のまたは新規のTCP接続について、また、事前定義の時間期間の間(分、時、日、またはシステムがリブートされるまで)、そのネットワーク・インターフェース・カードにTCPアクセラレーション・オフロード機能を要求するのをやめる。
図3に移ると、例示的実施形態によるネットワーク・インターフェース・カードの図が示されている。ネットワーク・インターフェース・カード300は、図2のネットワーク・アダプタ212として実施することができる。図示されているように、ネットワーク・インターフェース・カード300は、イーサネット・インターフェース302、データ・バッファ304、およびPCIバス・インターフェース306を含む。この3つのコンポーネントは、ネットワークとデータ処理システムのバスとの間の経路を提供する。イーサネット・インターフェース302は、データ処理システムに接続されたネットワークへのインターフェースを提供する。PCIバス・インターフェース306は、バスへのインターフェースを提供する。データ・バッファ304は、ネットワーク・インターフェース・カード300を介して送信され、受信されるデータを格納するのに使用される。このデータ・バッファは、追加ストレージを提供するためのSRAMインターフェースへの接続をも含む。
ネットワーク・インターフェース・カード300は、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)インターフェース308、レジスタ/構成/状況/制御ユニット310、発振器312、および制御ユニット314をも含む。EEPROMインターフェース308は、EEPROMチップへのインターフェースを提供し、このEEPROMチップは、ネットワーク・インターフェース・カード300の命令および他の構成情報を含むことができる。異なるパラメータおよびセッティングを、EEPROMインターフェース308を介してEEPROMチップに格納することができる。
レジスタ/構成/状況/制御ユニット310は、ネットワーク・インターフェース・カード300上でプロセスを構成し、実行するのに使用される情報を格納する場所を提供する。たとえば、タイマのタイマ値を、これらのレジスタ内に格納することができる。さらに、異なるプロセスの状況情報を、このユニット内に格納することもできる。発振器312は、ネットワーク・インターフェース・カード300上でプロセスを実行するためのクロック信号を供給する。
制御ユニット314は、ネットワーク・インターフェース・カード300によって実行される異なるプロセスおよび機能を制御する。制御ユニット314は、さまざまな形をとることができる。たとえば、制御ユニット314を、プロセッサまたは特定用途向け集積回路(ASIC)とすることができる。これらの例では、データのフロー制御を管理するのに使用される本発明のプロセスは、制御ユニット314によって実行される。プロセッサとして実施される場合に、これらのプロセスの命令を、EEPROMインターフェース308を介してアクセスされるチップ内に格納することができる。
データは、受信動作でイーサネット・インターフェース302を介して受信される。このデータは、PCIバス・インターフェース306を介するデータ処理システムへの転送のためにデータ・バッファ304に格納される。たとえば、このデータを、PCIローカル・バスを使用してまたは図2のサウス・ブリッジおよびI/Oコントローラ・ハブ204を介してバスに転送することができる。
図4は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)および類似するプロトコルの図であり、本発明の例示的実施形態に従って示されている。TCP/IPおよび類似するプロトコルは、通信アーキテクチャ400によって利用される。この例では、通信アーキテクチャ400は、4レイヤ・システムである。このアーキテクチャは、アプリケーション・レイヤ402、トランスポート・レイヤ404、ネットワーク・レイヤ406、およびリンク・レイヤ408を含む。各レイヤは、さまざまな通信タスクを処理する責任を負う。リンク・レイヤ408は、データ−リンク・レイヤまたはネットワーク・インターフェース・レイヤとも呼ばれ、通常は、オペレーティング・システム内のデバイス・ドライバと、コンピュータ内の対応するネットワーク・インターフェース・カードとを含む。このレイヤは、光ケーブルまたはイーサネット・ケーブルなどの使用されているネットワーク媒体との物理的インターフェースのハードウェア詳細のすべてを処理する。
ネットワーク・レイヤ406は、インターネット・レイヤと呼ばれ、ネットワークを回るデータのパケットの移動を処理する。たとえば、ネットワーク・レイヤ406は、ネットワークを介して転送されるデータのさまざまなパケットのルーティングを処理する。TCP/IPスイート内のネットワーク・レイヤ406は、インターネット・プロトコル(IP)、Internet control message protocol(ICMP)、およびInternet group management protocol(IGMP)を含む複数のプロトコルからなる。
次に、トランスポート・レイヤ404は、2つのホスト・コンピュータの間でのデータの転送を容易にする、ネットワーク・レイヤ406とアプリケーション・レイヤ402との間のインターフェースを提供する。例示的実施形態で説明する検出および回復の方法を、さまざまな転送プロトコルを使用して実施することができる。トランスポート・レイヤ404は、たとえば、アプリケーションからそれに渡されたデータの、下のネットワーク・レイヤ用の適当なサイズのチャンクへの分割、受信されたパケットの肯定応答、および送信される他端肯定応答パケットを確認するタイムアウトのセッティングなどを世話する。TCP/IPプロトコル・スイートでは、2つの明確に異なるトランスポート・プロトコルすなわちTCPおよびユーザ・データグラム・プロトコル(UDP)が存在する。TCPは、ドロップアウト検出サービスおよび再送信サービスを含む、データが2つのホストの間で正しく伝送されることを保証する信頼性サービスを提供する。
TCPセグメンテーションおよびTCPチェックサムは、本発明の実施形態の例示的実施態様として使用され、決して、セグメンテーション・オフロードおよびチェックサム・オフロードをTCPプロトコル・スイートに限定するものではない。他の実施形態では、セグメンテーション・オフロードおよびチェックサム・オフロードを任意のトランスポート・プロトコル、たとえばユーザ・データグラム・プロトコルおよびTCPプロトコルの他のバージョンと共に使用することができる。
逆に、ユーザ・データグラム・プロトコルは、データが正しく転送されることを保証する機構を全く提供せずに、データグラムと呼ばれるデータのパケットをあるホストから他のホストに単に送信することによって、アプリケーション・レイヤにはるかに単純なサービスを提供する。UDPを使用するときは、アプリケーション・レイヤが信頼性機能性を実行しなければならない。
アプリケーション・レイヤ402は、特定のアプリケーションの詳細を処理する。リモートログイン用のTelnet、ファイル転送プロトコル(FTP)、電子メール用のシンプル・メール転送プロトコル(SMTP)、および簡易ネットワーク管理プロトコル(SNMP)を含む、多くの一般的なTCP/IPアプリケーションが、ほとんどすべての実施態様について存在する。
図5は、例示的実施形態によるネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害の検出および回復のプロセスを示す流れ図である。TCPは、データ転送にしばしば使用されるプロトコルであり、その理由から、例示的プロトコルでの1つの例示的実施形態の実施態様の例示的な例を提供する。TCPスタックは、デバイスのオペレーティング・システム内で実施され、プロセッサによって実行される。TCPスタックは、成功のセグメント化を保証するために、ネットワーク・インターフェース・カード・ドライバから情報を送信し、受信する。TCPスタックおよび対応するオペレーティング・システムの命令を、図2に示されたデータ処理システム200のハード・ディスク・ドライブ226またはメイン・メモリ208内に格納し、処理ユニット206またはネットワーク・アダプタ212によって実行するなど、データ処理システム内で格納し、ロードし、実行することができる。
このプロセスは、オペレーティング・システムTCPスタックがTCPセグメントを作成する(ステップ502)とき開始される。オペレーティング・システムTCPスタックは、このセグメントについてTCPチェックサム・オフロードまたはTCPセグメンテーション・オフロードを実行するようにネットワーク・インターフェース・カードに示すためにメッセージ・バッファ・ヘッダ内の1つまたは複数の制御フラグをセットする(ステップ504)。オペレーティング・システムTCPスタックは、ホスト・メモリ内のTCPスタックのセッションごとの内部制御ブロック内のテーブルをも維持する。このテーブルは、TCPオフロード要求に関連した送信されたセグメントごとに1エントリを含む。ステップ504内で、オペレーティング・システムTCPスタックは、TCPオフロード要求に関連した、送信されるセグメントごとに、これらのエントリを作成し、これらをこのテーブル内に配置する。次に、オペレーティング・システムTCPスタックは、送信のためにメッセージ・バッファをIPに渡す(ステップ506)。
オペレーティング・システムTCPスタックは、そのセグメントの肯定応答が事前定義のタイム・インターバル内に受信されたかどうかを判定する(ステップ508)。肯定応答が受信済みである(ステップ508の「yes」出力)場合には、このプロセスはその後に終了する。肯定応答が受信済みではない(ステップ508の「no」出力)場合には、オペレーティング・システムTCPスタックは、セグメントを再送信する(ステップ510)。再送信が実行されるたびに、再送信バックオフ・アルゴリズムが、事前定義のタイム・インターバルを増加させることができる。
この点の前のステップが、現在機能しているTCPプロトコルを記述することに留意されたい。これ以降のステップは、例示的実施形態でネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害の検出および回復を可能にするTCP機能を記述する。
次に、オペレーティング・システムTCPスタックは、再送信されたセグメントの肯定応答が事前定義のタイム・インターバル内に受信されたかどうかを判定する(ステップ512)。肯定応答が受信済みである(ステップ512の「yes」出力)場合には、このプロセスはその後に終了する。肯定応答が受信済みではない(ステップ512の「no」出力)場合には、オペレーティング・システムTCPスタックは、事前定義の回数の再送信の試みが行われたかどうかを判定する(ステップ514)。言い換えると、オペレーティング・システムTCPスタックは、再送信の回数が事前定義の値と等しいかどうかを判定する。オペレーティング・システムTCPスタックは、TCPプロトコルの再送信能力を実施するために、アクティブTCPセッションごとに再送信カウンタを維持する。オペレーティング・システムTCPスタックは、所与のセッションのパケット再送信を実行するとき、そのセッションの再送信カウンタをも増分する。再送信カウンタは、オペレーティング・システムTCPスタックによって、ホスト・メモリ内のセッションごとの内部制御ブロック内に格納することができる。
再送信の試みの所定の回数が満足されていない(ステップ514の「no」出力)場合には、このプロセスは、ステップ510にループ・バックする。再送信の試みの所定の回数が満足されている(ステップ514の「yes」出力)場合には、オペレーティング・システムTCPスタックは、TCPチェックサム・オフロードまたはTCPセグメンテーション・オフロードがそのセグメントについて以前に要求されたかどうかを判定する(ステップ516)。この判定は、このセグメントがTCPチェックサム・オフロードまたはTCPセグメンテーション・オフロードなどのTCPアクセラレーション・オフロード要求と共に送信されたかどうかを判定するために、ステップ540で維持されたテーブルにアクセスすることによって行うことができる。
TCPチェックサムまたはセグメンテーション・オフロードがセグメントについて以前に要求されなかった(ステップ516の「no」出力)場合には、TCP再送信アルゴリズムは、ステップ510に戻り、現在実施されているとおりに(すなわち、産業界での現在のTCPスタック実施態様と一貫する形で)機能し続ける。
TCPチェックサムまたはセグメンテーション・オフロードがセグメントについて以前に要求された(ステップ516の「yes」出力)場合には、オペレーティング・システムTCPスタックは、TCPチェックサム・オフロードまたはTCPセグメンテーション・オフロードを要求せずにセグメントを再送信する(ステップ518)。
次に、オペレーティング・システムTCPスタックは、要求されるオフロード機能なしで再送信されたセグメントの肯定応答が受信されたかどうかを判定する(ステップ520)。再送信されたセグメントの肯定応答が受信される(ステップ520の「yes」出力)場合には、オペレーティング・システムTCPスタックは、ネットワーク・インターフェース・カードのTCPアクセラレーション・オフロード機能が障害を発生している状態をオペレーティング・システムTCPスタックが疑う回数を示すプライベート・カウンタを増分する(ステップ522)。このプライベート・カウンタは、ホストTCPスタックによって維持されるセッションごとの内部制御ブロック内に含めることができ、ホスト・メモリ内に格納される。再送信されたセグメント肯定応答が受信されない(ステップ520の「no」出力)場合には、オペレーティング・システムTCPスタックは、送信障害がネットワーク・インターフェース・カードTCPアクセラレーション・オフロード障害に起因しないと仮定することができ、したがって、プライベート・カウンタは増分されず、このプロセスは、ステップ510に戻って、現在実施されているとおりに機能する(すなわち、ホストTCPスタックは、産業界によって現在定義されているTCP再送信アルゴリズムを実行し続ける)。
ステップ522に戻って、オペレーティング・システムTCPスタックは、プライベート・カウンタが「許容される」障害の所定の回数(たとえば、4回の障害)に達したかどうかを判定する(ステップ524)。「許容される」障害の所定の回数に達していない(ステップ524の「no」出力)場合には、このプロセスは、その後に終了する。「許容される」障害の所定の回数に達している(ステップ524の「yes」出力)場合には、オペレーティング・システムTCPスタックは、そのネットワーク・インターフェース・カードにTCPアクセラレーション・オフロード機能を要求するのを停止する(ステップ526)。オペレーティング・システムTCPスタックは、すべての既存のまたは新規のTCP接続について、ならびに事前定義の時間の期間の間に(たとえば、分、時、日、システムがリブートされるまでなど)、ネットワーク・インターフェース・カードにオフロード機能を要求するのを停止することができる。「許容される」障害の回数は、同様に、望まれる場合に事前定義の時間期間によって上限を定めることができる。たとえば、オペレーティング・システムTCPスタックは、60分のタイム・インターバル内に4回を超える障害を許容しないものとすることができる。
成功の送信がネットワーク・インターフェース・カードTCPスタック・アクセラレーティング・オフロード機能のディスエーブルと偶然に一致するので、ネットワーク・インターフェース・カードTCPアクセラレーション・オフロード機能が障害を発生しているとオペレーティング・システムTCPスタックが誤って結論することがある「偽陽性」状態に対して例示的実施形態が保護することに留意されたい。プライベート・カウンタおよび「許容される」障害の事前定義の回数を使用することによって、完全に機能しているネットワーク・インターフェース・カードをディスエーブルする可能性が、大幅に減らされる。
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態の形をとることができる。好ましい実施形態では、本発明は、ソフトウェアで実施され、ソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定はされない。
さらに、本発明は、コンピュータもしくは任意の命令実行システムによってまたはこれと共に使用されるプログラム・コードを提供するコンピュータ使用可能媒体もしくはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形をとることができる。この説明において、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、もしくは命令実行デバイスによってまたはこれと共に使用されるプログラムを含み、格納し、通信し、伝搬し、または搬送することができるすべての有形の装置とすることができる。
媒体は、電子システム、磁気システム、光学システム、電磁システム、赤外線システム、もしくは半導体システム(または装置もしくはデバイス)または伝搬媒体とすることができる。コンピュータ可読媒体の例は、半導体メモリまたはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、リジッド磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、書き換え可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
プログラム・コードを格納し、または実行し、あるいはその両方を行うのに適するデータ処理システムは、メモリ要素に直接にまたはシステム・バスを介して間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、バルク・ストレージ、および実行中にコードをバルク・ストレージから取り出さなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的ストレージを提供するキャッシュ・メモリを含むことができる。
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれに限定はされない)を、直接にまたは介在するI/Oコントローラを介してのいずれかでシステムに結合することができる。
ネットワーク・アダプタをこのシステムに結合して、介在するプライベート・ネットワークまたはパブリック・ネットワークを介してデータ処理システムを他のデータ処理システム、リモート・プリンタ、またはリモート・ストレージ・デバイスに結合することを可能にすることもできる。モデム、ケーブル・モデム、およびイーサネット・カードが、現在使用可能なタイプのネットワーク・アダプタのうちのごく小数である。
本発明の説明は、例示および説明のために提示されたものであって、網羅的であることまたは本発明を開示された形態に限定することは意図されていない。多数の修正形態および変形形態が、当業者に明白であろう。実施形態は、本発明の原理およびその実際的な応用例を最もよく説明し、当業者が企図される特定の用途に適するようにさまざまな変更を加えたさまざまな実施形態について本発明を理解することを可能にするために選択され、説明された。

Claims (20)

  1. ネットワーク・インターフェース・カード伝送制御プロトコル・アクセラレーション・オフロード障害を検出し、回復する、データ処理システム内の方法であって、
    ネットワーク・インターフェース・カード内の伝送制御プロトコル・オフロード機能の要求を含む伝送制御プロトコル・セグメントの肯定応答の受信の失敗に応答して、伝送制御プロトコル・オフロード機能の前記要求を伴わずに前記伝送制御プロトコル・セグメントを再送信することと、
    伝送制御プロトコル・オフロード機能の要求を伴わない前記再送信された伝送制御プロトコル・セグメントの肯定応答の受信に応答して、前記伝送制御プロトコル・オフロード機能の障害を示すカウンタを増分することと、
    前記カウンタが許容される障害の事前定義の個数を超えたことの判定に応答して、前記ネットワーク・インターフェース・カードの前記伝送制御プロトコル・オフロード機能へのすべての要求を停止することと
    を含む方法。
  2. 肯定応答の受信の前記失敗が、前記伝送制御プロトコル・セグメントの送信の事前定義の回数の試みの後に発生する、請求項1に記載の方法。
  3. 前記カウンタが、前記伝送制御プロトコル・オフロード機能が失敗した回数を示すプライベート・カウンタである、請求項1に記載の方法。
  4. 伝送制御プロトコル・オフロード機能の前記要求を伴わない前記再送信された伝送制御プロトコル・セグメントの肯定応答の受信の失敗に応答して、前記伝送制御プロトコル・オフロード機能が前記失敗の原因ではないと判定すること
    をさらに含む、請求項1に記載の方法。
  5. 前記伝送制御プロトコル・オフロード機能が、伝送制御プロトコル・チェックサム・オフロード機能または伝送制御プロトコル・セグメンテーション・オフロード機能のうちの1つを含む、請求項1に記載の方法。
  6. 前記伝送制御プロトコル・セグメントが、前記伝送制御プロトコル・セグメントの肯定応答を受信する複数の失敗した試みに応答して伝送制御プロトコル・オフロード機能に関する要求を伴わずに再送信される、請求項1に記載の方法。
  7. 前記ネットワーク・インターフェース・カードに関する前記伝送制御プロトコル・オフロード機能に対する前記要求が、すべての既存のまたは新規の伝送制御プロトコル接続について停止される、請求項1に記載の方法。
  8. 前記ネットワーク・インターフェース・カードに関する前記伝送制御プロトコル・オフロード機能に対する前記要求が、事前定義の時間の期間について停止される、請求項1に記載の方法。
  9. 前記事前定義の時間の期間が、分、時、日、または前記データ処理システムがリブートされるまでのうちの1つを含む、請求項1に記載の方法。
  10. 障害が事前定義の時間の期間内に発生する場合に、前記障害が許容される障害と判定される、請求項1に記載の方法。
  11. ネットワーク・インターフェース・カード伝送制御プロトコル・アクセラレーション・オフロード障害を検出し、回復するデータ処理システムであって、
    バスと、
    前記バスに接続されたストレージ・デバイスであって、コンピュータ使用可能コードを含む、ストレージ・デバイスと、
    前記バスに接続された少なくとも1つの管理されるデバイスと、
    前記バスに接続された通信ユニットと、
    前記バスに接続された処理ユニットであって、前記処理ユニットが、ネットワーク・インターフェース・カード内の伝送制御プロトコル・オフロード機能の要求を含む伝送制御プロトコル・セグメントの肯定応答の受信の失敗に応答して、伝送制御プロトコル・オフロード機能の前記要求を伴わずに前記伝送制御プロトコル・セグメントを再送信することと、伝送制御プロトコル・オフロード機能の前記要求を伴わない前記再送信された伝送制御プロトコル・セグメントの肯定応答の受信に応答して、前記伝送制御プロトコル・オフロード機能の障害を示すカウンタを増分することと、前記カウンタが許容される障害の事前定義の個数を超えたことの判定に応答して、前記ネットワーク・インターフェース・カードの前記伝送制御プロトコル・オフロード機能へのすべての要求を停止することとを行うために前記コンピュータ使用可能コードを実行する、処理ユニットと
    を含むデータ処理システム。
  12. 肯定応答の受信の前記失敗が、前記伝送制御プロトコル・セグメントの送信の事前定義の回数の試みの後に発生する、請求項11にデータ処理システム。
  13. 前記カウンタが、前記伝送制御プロトコル・オフロード機能が失敗した回数を示すプライベート・カウンタである、請求項11に記載のデータ処理システム。
  14. 前記処理ユニットが、伝送制御プロトコル・オフロード機能の前記要求を伴わない前記再送信された伝送制御プロトコル・セグメントの肯定応答の受信の失敗に応答して、前記伝送制御プロトコル・オフロード機能が前記障害の原因ではないと判定するために前記コンピュータ使用可能コードをさらに実行する、請求項11に記載のデータ処理システム。
  15. 前記伝送制御プロトコル・オフロード機能が、伝送制御プロトコル・チェックサム・オフロード機能または伝送制御プロトコル・セグメンテーション・オフロード機能のうちの1つを含む、請求項11に記載のデータ処理システム。
  16. 前記伝送制御プロトコル・セグメントが、前記伝送制御プロトコル・セグメントの肯定応答を受信する複数の失敗した試みに応答して伝送制御プロトコル・オフロード機能に関する前記要求なしで再送信される、請求項11に記載のデータ処理システム。
  17. 前記ネットワーク・インターフェース・カードに関する前記伝送制御プロトコル・オフロード機能に対する前記要求が、すべての既存のまたは新規の伝送制御プロトコル接続について停止される、請求項11に記載のデータ処理システム。
  18. 前記ネットワーク・インターフェース・カードに関する前記伝送制御プロトコル・オフロード機能に対する前記要求が、事前定義の時間の期間について停止される、請求項11に記載のデータ処理システム。
  19. 前記事前定義の時間の期間が、分、時、日、または前記データ処理システムがリブートされるまでのうちの1つを含む、請求項11に記載のデータ処理システム。
  20. 障害が事前定義の時間の期間内に発生する場合に、前記障害が許容される障害と判定される、請求項11に記載のデータ処理システム。
JP2009546733A 2007-01-30 2008-01-21 ネットワーク・インターフェース・カード伝送制御プロトコル・アクセラレーション・オフロード障害の検出および回復の機構 Active JP4949483B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/668,901 US7715321B2 (en) 2007-01-30 2007-01-30 Network interface card transmission control protocol acceleration offload failure detection and recovery mechanism
US11/668,901 2007-01-30
PCT/EP2008/050637 WO2008092765A1 (en) 2007-01-30 2008-01-21 Network interface card transmission control protocol acceleration offload failure detection and recovery mechanism

Publications (2)

Publication Number Publication Date
JP2010517152A true JP2010517152A (ja) 2010-05-20
JP4949483B2 JP4949483B2 (ja) 2012-06-06

Family

ID=39278255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009546733A Active JP4949483B2 (ja) 2007-01-30 2008-01-21 ネットワーク・インターフェース・カード伝送制御プロトコル・アクセラレーション・オフロード障害の検出および回復の機構

Country Status (8)

Country Link
US (1) US7715321B2 (ja)
EP (1) EP2119174B1 (ja)
JP (1) JP4949483B2 (ja)
KR (1) KR101091354B1 (ja)
CN (1) CN101601256B (ja)
AT (1) ATE546940T1 (ja)
TW (1) TWI397284B (ja)
WO (1) WO2008092765A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018011331A (ja) * 2011-03-30 2018-01-18 アマゾン テクノロジーズ インコーポレイテッド オフロードデバイスベースのパケット処理のためのフレームワークおよびインターフェース
KR20190030915A (ko) * 2017-09-15 2019-03-25 단국대학교 산학협력단 네트워크 인터페이스를 위한 어플리케이션 오프로딩 장치 및 방법
US10565002B2 (en) 2011-03-30 2020-02-18 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917614B2 (en) * 2008-06-10 2011-03-29 International Business Machines Corporation Fault tolerance in a client side pre-boot execution
CN102075525B (zh) * 2010-12-17 2014-07-23 曙光信息产业(北京)有限公司 一种通过软件向硬件发送连接无效请求实现删除硬件中tcp连接的方法
CN102111403B (zh) * 2010-12-17 2014-05-21 曙光信息产业(北京)有限公司 一种用于高速获取tcp连接数据的方法和设备
FR2969777B1 (fr) * 2010-12-22 2013-01-04 Eads Defence & Security Sys Procede d'activation d'un mecanisme, et dispositif mettant en oeuvre un tel procede.
CN102891772A (zh) * 2011-07-18 2013-01-23 鸿富锦精密工业(深圳)有限公司 网卡性能测试方法及系统
US8972678B2 (en) * 2011-12-21 2015-03-03 Emc Corporation Efficient backup replication
US8914498B2 (en) 2012-02-09 2014-12-16 International Business Machines Corporation Calculating a checksum with inactive networking components in a computing system
US10194337B2 (en) 2012-07-12 2019-01-29 Qualcomm Incorporated Methods and apparatus for offloading checksum processing
CN103490934B (zh) * 2013-09-29 2017-05-10 贵州省广播电视信息网络股份有限公司 一种用于广电业务系统异常的处理方法
KR102160252B1 (ko) * 2013-12-18 2020-09-25 삼성전자주식회사 가상 스위칭 방법 및 장치
US9354818B2 (en) * 2014-02-25 2016-05-31 Kabushiki Kaisha Toshiba Memory device and data storing method
KR102151987B1 (ko) * 2018-11-23 2020-09-04 한국과학기술원 프록시 서버에서 프록시 서버 기능을 호스트에서 네트워크 어댑터로 동적으로 이양하는 방법 및 이를 수행하는 프록시 서버
US11159655B1 (en) * 2020-04-27 2021-10-26 Nvidia Corporation Techniques for enhancing the UDP network protocol to efficiently transmit large data units

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5898713A (en) * 1997-08-29 1999-04-27 Cisco Technology, Inc. IP checksum offload
US20040199808A1 (en) * 2003-04-02 2004-10-07 International Business Machines Corporation State recovery and failover of intelligent network adapters
JP2005085284A (ja) * 2003-09-10 2005-03-31 Microsoft Corp フェイルオーバーイベントをサポートするネットワーク状態オブジェクトの多重オフロード
US20050147126A1 (en) * 2004-01-06 2005-07-07 Jack Qiu Method and system for transmission control packet (TCP) segmentation offload
JP2005538588A (ja) * 2002-09-05 2005-12-15 インターナショナル・ビジネス・マシーンズ・コーポレーション リモート・ダイレクト・メモリ・アクセス対応ネットワーク・インタフェース・コントローラのスイッチオーバーとスイッチバックのサポート
US20060133419A1 (en) * 2004-12-22 2006-06-22 John Ronciak Indication of an error in receive offload packets
EP1396977B1 (en) * 2002-09-04 2007-05-02 Broadcom Corporation System and method for fault tolerant TCP offload

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208616B1 (en) * 1997-05-13 2001-03-27 3Com Corporation System for detecting errors in a network
US7324540B2 (en) * 2002-12-31 2008-01-29 Intel Corporation Network protocol off-load engines
US7826457B2 (en) * 2004-05-11 2010-11-02 Broadcom Corp. Method and system for handling out-of-order segments in a wireless system via direct data placement
US20060221827A1 (en) * 2005-04-04 2006-10-05 International Business Machines Corporation Tcp implementation with message-count interface
JP5089896B2 (ja) * 2006-03-17 2012-12-05 株式会社日立製作所 マイクロプロセッサの負荷分散機能を備えたストレージシステム
US8031617B2 (en) * 2006-07-28 2011-10-04 Hewlett-Packard Development Company, L.P. Fast detection of path failure for TCP

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5898713A (en) * 1997-08-29 1999-04-27 Cisco Technology, Inc. IP checksum offload
EP1396977B1 (en) * 2002-09-04 2007-05-02 Broadcom Corporation System and method for fault tolerant TCP offload
JP2005538588A (ja) * 2002-09-05 2005-12-15 インターナショナル・ビジネス・マシーンズ・コーポレーション リモート・ダイレクト・メモリ・アクセス対応ネットワーク・インタフェース・コントローラのスイッチオーバーとスイッチバックのサポート
US20040199808A1 (en) * 2003-04-02 2004-10-07 International Business Machines Corporation State recovery and failover of intelligent network adapters
JP2005085284A (ja) * 2003-09-10 2005-03-31 Microsoft Corp フェイルオーバーイベントをサポートするネットワーク状態オブジェクトの多重オフロード
US20050147126A1 (en) * 2004-01-06 2005-07-07 Jack Qiu Method and system for transmission control packet (TCP) segmentation offload
US20060133419A1 (en) * 2004-12-22 2006-06-22 John Ronciak Indication of an error in receive offload packets

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018011331A (ja) * 2011-03-30 2018-01-18 アマゾン テクノロジーズ インコーポレイテッド オフロードデバイスベースのパケット処理のためのフレームワークおよびインターフェース
US10565002B2 (en) 2011-03-30 2020-02-18 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
US11099885B2 (en) 2011-03-30 2021-08-24 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
US11656900B2 (en) 2011-03-30 2023-05-23 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
US11941427B2 (en) 2011-03-30 2024-03-26 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
KR20190030915A (ko) * 2017-09-15 2019-03-25 단국대학교 산학협력단 네트워크 인터페이스를 위한 어플리케이션 오프로딩 장치 및 방법
KR101977850B1 (ko) 2017-09-15 2019-05-13 단국대학교 산학협력단 네트워크 인터페이스를 위한 어플리케이션 오프로딩 장치 및 방법

Also Published As

Publication number Publication date
TWI397284B (zh) 2013-05-21
ATE546940T1 (de) 2012-03-15
KR20090111807A (ko) 2009-10-27
US20080183901A1 (en) 2008-07-31
CN101601256A (zh) 2009-12-09
EP2119174B1 (en) 2012-02-22
WO2008092765A1 (en) 2008-08-07
CN101601256B (zh) 2012-07-11
EP2119174A1 (en) 2009-11-18
US7715321B2 (en) 2010-05-11
TW200840266A (en) 2008-10-01
JP4949483B2 (ja) 2012-06-06
KR101091354B1 (ko) 2011-12-07

Similar Documents

Publication Publication Date Title
JP4949483B2 (ja) ネットワーク・インターフェース・カード伝送制御プロトコル・アクセラレーション・オフロード障害の検出および回復の機構
US7512072B2 (en) TCP/IP method FPR determining the expected size of conjestion windows
US9749407B2 (en) Methods and devices for processing incomplete data packets
US7430220B2 (en) System load based dynamic segmentation for network interface cards
US10833996B2 (en) Identifying a local congestion control algorithm of a virtual machine
US20030002508A1 (en) Method and apparatus for an improved bulk read socket call
US7978731B2 (en) Method and system for consolidating TCP ports
WO2005067258A1 (en) Method, system, and program for overrun identification
US10425338B2 (en) Virtual switch-based congestion control for datacenter networks
US10230640B2 (en) Normalized flow value-based congestion control
US10237186B2 (en) Enforcing datacenter-level congestion control
US7526706B2 (en) Method and apparatus for preventing network outages
US20080056147A1 (en) Method and apparatus for determining minimum round trip times for a network socket
US20070055788A1 (en) Method for forwarding network file system requests and responses between network segments
US20080056146A1 (en) Method and apparatus for determining maximum round trip times for a network socket
Zats et al. FastLane: Agile drop notification for datacenter networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100819

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110922

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111227

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

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

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

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4949483

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150