JP2007266759A - ネットワーク処理装置、マルチプロセッサシステムおよびネットワークプロトコル処理方法 - Google Patents

ネットワーク処理装置、マルチプロセッサシステムおよびネットワークプロトコル処理方法 Download PDF

Info

Publication number
JP2007266759A
JP2007266759A JP2006086294A JP2006086294A JP2007266759A JP 2007266759 A JP2007266759 A JP 2007266759A JP 2006086294 A JP2006086294 A JP 2006086294A JP 2006086294 A JP2006086294 A JP 2006086294A JP 2007266759 A JP2007266759 A JP 2007266759A
Authority
JP
Japan
Prior art keywords
header
network
payload
packets
packet
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
JP2006086294A
Other languages
English (en)
Other versions
JP4942375B2 (ja
Inventor
Kazumine Tachibana
一峰 立花
Taku Tanaka
卓 田中
Kazuyoshi Horie
和由 堀江
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2006086294A priority Critical patent/JP4942375B2/ja
Priority to US11/685,994 priority patent/US8175116B2/en
Publication of JP2007266759A publication Critical patent/JP2007266759A/ja
Application granted granted Critical
Publication of JP4942375B2 publication Critical patent/JP4942375B2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ネットワークにおいて規定される最大転送単位を超えるパケットを効率的に転送することは難しい。
【解決手段】送信バッファ20には、プロトコルスタックから受け取った、ネットワークにおいて規定される最大転送単位を超えるデータ長のロングパケットが蓄積される。ペイロード分割部34は、ロングパケットのペイロードを分割し、ヘッダ複製部32は、ロングパケットのヘッダを複製して、分割されたペイロードに対するヘッダを生成する。ショートパケット生成部36は、複製により生成されたヘッダを分割されたペイロードに付加することにより、ネットワークに送信すべき最大転送単位以下のデータ長のショートパケットを生成する。送信部40は、物理層インタフェース90を介して、ショートパケットをネットワークに送出する。
【選択図】図5

Description

この発明は、ネットワークに対してデータを送受信するためのネットワーク処理装置およびマルチプロセッサシステムに関する。
ネットワーク通信においては、物理層やデータリンク層の仕様や規定により、転送可能なパケットのデータ長は制限される。転送可能な最大データ長は、最大転送単位(MTU;Maximum Transfer Unit)と呼ばれ、たとえば、イーサネット(登録商標)やPPP(Point to Point Protocol)では、MTUは1500バイト、FDDIでは、MTUは4352バイトである。コンピュータ上で動作するアプリケーションが送信するパケットのデータ長がMTUを超える場合、ソケット、トランスポート層、ネットワーク層のいずれかの階層においてMTU以下のパケットに分割されてから転送される。コンピュータのプロセッサは、分割されたパケットをプロトコル処理するために、プロトコルスタックなどのネットワーキングソフトウェアに多大なリソースを割り当てる必要があり、処理効率が低下する。
イーサネットのデータ転送速度は当初は10Mbpsであったが、その後、100Mbpsが普及し、さらに、最近では光ファイバを利用したギガビット・イーサネットも利用されるようになっている。このようにネットワークのデータ転送速度が速くなると、大量のデータを送受信するようになるため、データ転送量に比べてパケットサイズが小さいことがパケットの転送処理性能に影響を与え、通信速度を低下させる要因となっている。
ネットワークインタフェースカード(NIC)の中には、サポート可能なパケット長を通常のMTUを超える値に設定可能なものがある。MTUを超えるデータ長をもつパケットは、一般的に「ジャンボパケット」と呼ばれている。ジャンボパケット機能を有効にすると、一度に転送するデータサイズが大きくなり、パケットの転送回数が少なくなるため、大量のデータを転送する際の負荷を軽減し、スループットを向上させることができる。
しかしながら、ジャンボパケットを利用するには、送信側と受信側の双方の通信装置、通信経路上にあってパケットを中継するハブなど、通信に関わるすべての機器がジャンボパケットに対応している必要があり、いずれかの通信機器がジャンボパケットに対応していなければ、ジャンボパケットを正しく転送することができない。また、ジャンボパケットがインターネットを経由して転送される場合、既存のルータはジャンボパケットに対応していないことが多く、ジャンボパケットはルータによってMTU以下のサイズに分割されて転送されてしまう。そのため、ジャンボパケット技術は、ルータを経由しないローカルエリアネットワークにおいてのみ有効であるのが現状である。また、ジャンボパケットのサポートは機器依存であるため、ジャンボパケット使用時に、ユーザまたはネットワーク管理者が、すべての対象通信機器のジャンボパケット機能を有効にするために設定を行う必要があり、管理が煩雑となる。
本発明はこうした課題に鑑みてなされたものであり、その目的は、ネットワークの規定の最大データ長を超えるパケットの転送を効率良く行うことのできる通信技術を提供することにある。
上記課題を解決するために、本発明のある態様のネットワーク処理装置は、ネットワークにおいて規定される最大転送単位を超えるデータ長のロングパケットをプロトコルスタックから受け取り、蓄積する送信バッファと、前記ロングパケットのペイロードを分割するペイロード分割部と、前記ロングパケットのヘッダを複製して、前記ペイロード分割部により分割されたペイロードに対するヘッダを生成するヘッダ複製部と、前記ヘッダ複製部により生成されたヘッダを前記分割されたペイロードに付加することにより、ネットワークに送信すべき前記最大転送単位以下のデータ長のパケットを生成するパケット生成部とを含む。
本発明の別の態様もまた、ネットワーク処理装置である。この装置は、ネットワークにおいて規定される最大転送単位以下のデータ長の複数のパケットをネットワークから受信し、蓄積する受信バッファと、コネクション単位で前記複数のパケットのペイロードを連結するペイロード連結部と、前記複数のパケットのヘッダを前記コネクション単位で集約して、前記ペイロード連結部により連結されたペイロードに対するヘッダを生成するヘッダ集約部と、前記ヘッダ集約部により集約されたヘッダを前記連結されたペイロードに付加することにより、プロトコルスタックに渡すべき前記最大転送単位を超えるデータ長のロングパケットを生成するパケット生成部とを含む。
ここで、複数のパケットのヘッダを集約してヘッダを生成することには、複数のパケットのヘッダの内容に共通する部分がある場合に、共通する部分については重複しないように1つにすることにより、複数のヘッダをまとめることが含まれる。このようなヘッダの集約は、一般的にデータ集約(データアグリゲーション(data aggregation))と呼ばれていることの一例であると言うこともできる。もっとも、ヘッダの集約というとき、複数のヘッダの内容に重複があっても、重複をもたせたまま複数のヘッダを集めて1つのヘッダにすることを除外する趣旨ではなく、重複を完全になくしてまとめる場合、重複をある程度許容してまとめる場合、重複を全くなくさないでまとめる場合のいずれをも含む趣旨である。
本発明のさらに別の態様もまた、ネットワーク処理装置である。この装置は、ネットワークにおいて規定される最大転送単位以下のデータ長の複数のパケットをネットワークから受信し、受信したパケットをヘッダとペイロードに分離してそれぞれを蓄積するヘッダバッファとペイロードバッファを含む受信バッファと、コネクション単位で前記複数のパケットのペイロードを連結するペイロード連結部と、前記複数のパケットのヘッダを前記コネクション単位で集約して、前記ペイロード連結部により連結されたペイロードに対するヘッダを生成するヘッダ集約部と、前記ヘッダ集約部により集約されたヘッダを前記ヘッダバッファから、前記連結されたペイロードを前記ペイロードバッファから、それぞれ独立に上位層に転送する入出力インタフェースとを含む。
本発明のさらに別の態様は、マルチプロセッサシステムである。このマルチプロセッサシステムは、それぞれがローカルメモリを有する複数のプロセッサと、前記複数のプロセッサにより共有されるメインメモリとを含む。前記複数のプロセッサの内、1つのプロセッサが、残りのプロセッサに代わってネットワークを介して通信されるデータのプロトコル処理を行うプロトコルスタックの機能を有する。ネットワークに対して送受信されるべきパケットからヘッダとペイロードが分離され、前記ペイロードは、前記残りのプロセッサから参照される前記メインメモリ内の領域に転送され、前記ヘッダは、前記1つのプロセッサ内の前記ローカルメモリに転送される。前記1つのプロセッサは、当該プロセッサ内の前記ローカルメモリに転送されたヘッダにもとづいてパケットのプロトコル処理を行う。
本発明のさらに別の態様も、マルチプロセッサシステムである。このマルチプロセッサシステムは、それぞれがローカルメモリを有する複数のプロセッサと、前記複数のプロセッサにより共有されるメインメモリとを含む。前記複数のプロセッサの内、1つのプロセッサが、残りのプロセッサに代わってネットワークを介して通信されるデータのプロトコル処理を行うプロトコルスタックの機能を有する。ネットワークにおいて規定される最大転送単位以下のデータ長の複数のパケットがネットワークから受信された場合に、コネクション単位で前記複数のパケットのペイロードを連結したデータは、前記残りのプロセッサから参照される前記メインメモリ内の領域に転送され、前記複数のパケットの各々の個別のヘッダは、前記コネクション単位でまとめられて前記1つのプロセッサ内の前記ローカルメモリに転送される。前記1つのプロセッサは、当該プロセッサ内の前記ローカルメモリに転送された個別のヘッダにもとづいて前記複数のパケットのプロトコル処理を行う。前記残りのプロセッサは、前記1つのプロセッサのプロトコル処理の結果を受けて、前記メインメモリから前記連結されたデータを読み取る。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、ネットワークにおいて規定される最大転送単位を超えるパケットの転送を効率良く行うことのできる。
実施の形態1
本発明の実施の形態1に係る情報処理システムは、上位層のアプリケーションがネットワークを介してデータを送受信する際に、オペレーティングシステム内に実装されるプロトコルスタックおよびネットワークドライバにおいては、ネットワークにおいて規定される最大転送単位を超えるロングパケットを扱い、ネットワークインタフェースカード等のネットワークデバイスにおいて最大転送単位以下のパケットに分割して転送する。
図1は、実施の形態に係る情報処理システムの機能構成の階層を説明する図である。情報処理システムの上位層のユーザレベルには、アプリケーション300があり、これはOSI(Open Systems Interconnection)参照モデルのアプリケーション層に対応する。下位層のカーネルレベルには、プロトコルスタック310とネットワークドライバ320がある。
プロトコルスタック310は、ネットワーク機能を実現するために必要なプロトコルを階層状に積み上げたネットワーキングソフトウェアであり、セッション層に対応するソケット、トランスポート層に対応するTCP(Transmission Control Protocol)やUDP(User Datagram Protocol)、およびネットワーク層に対応するIP(Internet Protocol)の各階層を含む。同図では、ICMP(Internet Control Message Protocol)を、TCPやUDPと並べて図示したが、ICMPは、データ転送に直接関係せず、IP層のエラーメッセージや制御メッセージを転送するプロトコルであるため、IPと同じネットワーク層に属するものとして扱うこともある。
プロトコルスタック310は、アプリケーション300から渡されるデータをプロトコル処理し、送信パケットとしてネットワークドライバ320に渡す。また、プロトコルスタック310は、ネットワークドライバ320から渡される受信パケットをプロトコル処理し、受信されたデータをアプリケーション300に渡す。
ネットワークドライバ320は、物理層のネットワークを動作させるための基本ソフトウエアであり、データリンク層に位置する。物理層は、ネットワークプロセッサ330およびネットワークデバイス340を含む。一例として、ネットワークデバイス340は、ネットワークインタフェースカード(NIC)であり、ネットワークプロセッサ330は、NIC上のプロセッサである。
図2は、ネットワークで送受信されるパケットフォーマット400の一例を示す図である。ここでは、物理層およびデータリンク層でイーサネットを使用し、ネットワーク層にIP、トランスポート層にUDPをそれぞれ使用した場合のパケットフォーマット400を示す。パケットフォーマット400は、イーサネットヘッダ、IPヘッダ、UDPヘッダ、およびデータを含む。なお、イーサネットでは一般にパケットをフレームと呼ぶこともあるが、以下では、パケットと称する。
イーサネットヘッダは、宛先MAC(Media Access Control)アドレス、送信元MACアドレス、タイプを含む。
IPヘッダは、バージョン番号、ヘッダ長を示すIHL(Internet Head Length)、優先順位を示すTOS(Type Of Service)、ヘッダとペイロードの合計を示す総データ長(Total Length)、IPデータグラムを送信する度に1つインクリメントされる識別番号(Identification)、フラグ、フラグメントオフセット、TTL(Time To Live)、プロトコル番号、ヘッダチェックサム、送信元IPアドレス、宛先IPアドレスを含む。
UDPヘッダは、送信元ポート、宛先ポート、データ長、チェックサムを含む。
データは、パケットから上記の各種のヘッダを除いた残りの部分であり、ペイロードとも呼ばれる。トランスポート層にTCPを使用して通信を行う場合は、UDPヘッダの代わりにTCPヘッダが設けられる。
図3は、TCPヘッダフォーマット420を示す図である。TCPヘッダフォーマット420は、TCPヘッダとデータを含む。TCPヘッダは、送信元ポート、宛先ポート、シーケンス番号、応答確認番号(Acknowledgment Number)、オフセット、予約済み(Reserved)、フラグ、ウインドウサイズ、チェックサム、緊急ポインタ、オプション、パディングを含む。
大きなサイズのデータをネットワークで転送する場合、ネットワークで規定されるMTUに合わせて複数のパケットに分割されて転送されるが、これらの複数のパケットのヘッダのフィールドの値は一部を除いて同一になる。図2のパケットフォーマット400において、イーサネットヘッダ402の宛先MACアドレス、送信元MACアドレス、タイプは同一の値であり、IPヘッダ404においても、総データ長、識別番号、ヘッダチェックサムを除くすべてのフィールドの値は同一である。また、UDPヘッダ406では、送信元ポートおよび宛先ポートの値は同一である。もし各パケットのデータサイズが同じであれば、IPヘッダ404の総データ長、UDPヘッダ406のデータ長も同一となる。また、図3のTCPヘッダフォーマット420では、TCPヘッダ422の送信元ポートおよび宛先ポートの値は同一である。
大きなサイズのデータは、図1のプロトコルスタック310のソケット、TCPもしくはUDP、IPのいずれかのレイヤにおいて複数の小さなサイズのパケットに分割されることになり、パケットが分割されたレイヤよりも下位のレイヤでは、分割された複数のパケットのヘッダをもとにプロトコル処理をすることになる。上述のように、分割されたパケットのヘッダの相当数のフィールドは同一の値をもつ。複数個に分割されたパケットをプロトコル処理する際、このような非常に似たヘッダを繰り返し参照し、その内容を解析することになるため、CPUやメモリなどのシステムリソースを消費し、プロトコル処理のオーバーヘッドが大きくなり、通信性能が低下する。
そこで、本実施の形態の情報処理システムでは、プロトコルスタックではMTUを超えるロングパケットを扱い、ネットワークに送信する段階でMTU以下のショートパケットに分割するようにし、分割後のショートパケットのヘッダはロングパケットのヘッダから複製して生成する。また、ネットワークから受信されるショートパケットをコネクション単位で連結し、ヘッダは1つの集約させることにより、MTUを超えるロングパケットを生成し、ロングパケットの形でプロトコルスタックに与える。これにより、プロトコルスタックにおいてサイズの小さいパケットのヘッダのプロトコル処理を繰り返す必要がなくなり、処理負荷が軽減され、通信性能が向上する。
図4は、実施の形態1に係る情報処理システム100の構成図である。情報処理システム100は、メインシステム110とネットワークサブシステム150を含み、これらはバスなどで相互に接続されている。
メインシステム110は、メインプロセッサ120とメインメモリ130を有する。メインプロセッサ120は、メインメモリ130を利用して、図1のアプリケーション300、プロトコルスタック310およびネットワークドライバ320の各機能を実行し、ネットワークに送信すべきパケットをネットワークサブシステム150に与え、また、ネットワークから受信されたパケットをネットワークサブシステム150から受け取る。
メインシステム110に実装されるプロトコルスタックは、アプリケーションが送受信を要求するデータのサイズがMTUを超える場合でも、一つのパケットとして扱ってプロトコル処理する。プロトコル処理はヘッダの内容を解析することにより行われるため、データ長がMTUを超えてもプロトコル処理自体には変更を加える必要はなく、既存のプロトコルスタックを利用することができる。
ネットワークサブシステム150は、図1のネットワークプロセッサ330およびネットワークデバイス340に相当し、ネットワークプロセッサ160およびバッファ170を含む。ネットワークプロセッサ160は、ネットワークに送信するパケットおよびネットワークから受信されるパケットをバッファ170に蓄積し、パケットの転送処理を行う。
ネットワークサブシステム150は、メインシステム110から渡されるMTUを超えるデータサイズのロングパケットをMTU以下のデータサイズのショートパケットに分割してネットワークに送信する処理、ネットワークから受信されるショートパケットをコネクション単位で連結してMTUを超えるデータサイズのロングパケットを生成し、メインシステム110に供給する処理を行う。
メインシステム110のメインメモリ130からネットワークサブシステム150のバッファ170に送信パケットを転送し、ネットワークサブシステム150のバッファ170からメインシステム110のメインメモリ130に受信パケットを転送する方式の一つに、DMA(Direct Memory Access)転送方式がある。DMA転送方式は、メインシステム110のメインプロセッサ120を介さずに、ネットワークサブシステム150とメインシステム110のメインメモリ130の間で直接データを転送する方法であり、高速なデータ転送が可能である。
図5は、ネットワークサブシステム150の機能構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
入出力インタフェース10は、メインシステム110との間でデータのやりとりをするインタフェースであり、一例としてDMAコントローラの機能を有する。
送信バッファ20は、メインシステム110から渡される、MTUを超えるデータ長のロングパケットを蓄積する。
パケット分割処理部30は、送信バッファ20からロングパケットを読み取り、ヘッダを含めたデータ長がMTU以下となるように所定のサイズの複数のパケットに分割する処理を行う。パケット分割処理部30は、ヘッダ複製部32、ペイロード分割部34、およびショートパケット生成部36を有する。
ペイロード分割部34は、送信バッファ20からロングパケットのペイロードを取得し、MTUより小さい所定のデータ長のペイロードに分割する。ヘッダ複製部32は、ロングパケットのヘッダを複製して、ペイロード分割部34により分割されたペイロードに対するヘッダを生成する。
ヘッダ複製部32は、ロングパケットのヘッダを複製した後、分割されたパケット毎に異なる値を設定すべきフィールドの値を変更する。たとえば、IPヘッダの総データ長、識別番号およびヘッダチェックサム、UDPパケットであれば、UDPヘッダのデータ長とチェックサム、TCPパケットであれば、TCPヘッダのシーケンス番号やチェックサムは、分割されたパケット毎に新たに計算して各フィールドに設定する。
ショートパケット生成部36は、ペイロード分割部34により分割されたペイロードに、ヘッダ複製部32により生成されたヘッダを付加して、ショートパケットを生成する。ショートパケット生成部36により生成されたショートパケットは、送信部40に与えられ、送信部40は、物理層インタフェース90を介して、ネットワークに送出される。ロングパケットを分割して生成される複数のショートパケットは、ロングパケット全体の分割処理が終わるまでバッファリングせずに、生成された順に逐次物理層に転送することが望ましい。なぜなら、これにより、必要なバッファ容量を抑えることができるからである。
受信部50は、ネットワークから物理層インタフェース90を介して、パケットを受信し、受信バッファ60に蓄積する。大きなデータが受信される場合は、同一コネクションの多数の受信パケットが受信バッファ60に蓄積される。また、同一コネクションにおいて、データサイズの小さい多数のパケットが連続して受信されることもある。
パケット連結処理部70は、受信されたMTU以下のデータ長の複数のパケットを受信バッファ60から読み取り、それらのパケットのヘッダを取り除いて連結し、1つのヘッダを付加してMTUを超えるデータ長のロングパケットを生成する処理を行う。パケット連結処理部70は、コネクション識別部72、ヘッダ集約部74、およびペイロード連結部76を有する。
パケットは非同期に到着するため、受信バッファ60にある程度の数のパケット数が蓄積されるのを待つために、所定の待機時間を設ける。コネクション識別部72は、受信バッファ60に待機時間の間に蓄積されたパケットのヘッダを調べてコネクションを識別し、同一コネクションのパケットをヘッダ集約部74とペイロード連結部76に通知する。同一コネクションかどうかは、ヘッダに含まれるIPアドレスとポート番号の組み合わせによって識別することができる。
ペイロード連結部76は、同一コネクションのパケットのペイロードを連結する。ヘッダ集約部74は、同一コネクションのパケットのヘッダをまとめて1つのヘッダを生成する。ヘッダ集約部74により集約されたヘッダは、ペイロード連結部76によって連結されたペイロードに付加すべきヘッダである。送信元および宛先アドレスや、送信元および宛先ポートなど、共通するフィールドは集約され、シーケンス番号やチェックサムのようにパケット毎に異なるフィールドは、連結後のパケットに対応するように調整される。
ロングパケット生成部78は、ペイロード連結部76により連結されてペイロードにヘッダ集約部74により集約されたヘッダを付加してロングパケットを生成し、入出力インタフェース10を介してメインシステム110に渡す。
連結すべきパケットの到着を待つための待機時間は、所定の値に固定されてもよいが、より好適には、最初は小さい値に設定しておき、同一コネクションから到着するパケットの数が増えるにつれて、徐々に大きな値に変更していく、いわゆる「スロースタート」のアルゴリズムを用いてもよい。パケットが連続して到着しないにもかかわらず最初から待機時間を大きくすると、遅延が発生する。待機時間をスロースタートさせ、学習により待機時間を調整することで、遅延の発生を回避しつつ、多数のパケットが到着する場合には、できるだけ連結対象のパケット数を増やし、大きなサイズのロングパケットを生成することができ、プロトコルスタックの負担を軽減することができる。
以上説明したパケット分割処理部30、送信部40、受信部50、パケット連結処理部70の各機能は、図4のネットワークプロセッサ160により実行される。これらの機能は、一例として組み込みオペレーティングシステム(OS)として実装することもできる。また、送信バッファ20および受信バッファ60は、図4のバッファ170内に設けられる。
図6は、パケット分割処理部30によりロングパケットが複数のショートパケットに分割される様子を示す図である。ロングパケット430は、イーサネットヘッダ、IPヘッダおよびUDPヘッダ(これらをまとめて「オリジナルヘッダ」(符号432)という)と、ペイロード434とを含む。ロングパケット430のペイロード434は、同図の例では、3つのペイロード444a〜cに分割され、各ペイロード444a〜cには、ロングパケット430のオリジナルヘッダ432を複製したヘッダ442a〜cが付加される。これにより、MTU以下のデータ長に分割されたショートパケット440a〜cが生成される。
ショートパケット440a〜cの各ヘッダ442a〜cは、基本的にはロングパケット430のオリジナルヘッダ432の複製であるが、ショートパケット440a〜c毎に異なる値をもつべきフィールドの値は適宜更新される。
図7は、パケット連結処理部70によりショートパケットが連結されてロングパケットが生成される様子を示す図である。
同図では、MTU以下の3つのショートパケット450a〜cが連結されて1つのロングパケット460が生成される例が示されている。各ショートパケット450a〜cのペイロード454a〜cはIPヘッダの識別番号の順に連結されて1つのペイロード464が形成される。ショートパケット450a〜cの各ヘッダ452a〜cは、共通するフィールドの値をまとめることで1つのヘッダ462に集約されて、連結されたペイロード464のヘッダとして付加される。
ショートパケット440a〜cの各ヘッダ442a〜cのフィールドは、基本的には共通する値をもつため、連結されたペイロード464のヘッダ462に集約することが可能であるが、ショートパケット440a〜c毎に異なる値をもつフィールドについては、連結後のペイロード464に対応する値に更新される。ただし、各ショートパケット440a〜cのヘッダのチェックサムは、受信時にチェックされているため、ロングパケット460に改めてチェックサムをつける必要はない。
以上述べたように、実施の形態1に係る情報処理システム100によれば、ネットワークプロセッサが、ホストシステムのプロトコルスタックから渡されるロングパケットをMTU以下のデータ長のショートパケットに分割して送信し、受信したショートパケットを連結してロングパケットにしてプロトコルスタックに渡すため、ホストシステムのプロトコルスタックは、仮想的にMTUを超えるデータ長のロングパケットを扱うことができる。これにより、大きいサイズのデータを送受信する際にも1つのパケットとしてプロトコル処理することができ、TCP/IPに代表されるプロトコルスタックなどのネットワーキングソフトウエアの処理負荷を軽減することができる。
また、ネットワークプロセッサ側でもホストシステムのプロトコルスタックから渡されたロングパケットをショートパケットに分割して送信する際、ロングパケットのヘッダを複製した上で、ショートパケット毎に異なる値を設定すべきフィールドの値を適宜変更するだけでよいため、ヘッダの生成処理には大きな負荷がかからない。このように、ロングパケットの送信の際、ホストシステムにかかる処理負荷だけでなくネットワークプロセッサにかかる処理負荷も軽減することができるという利点がある。
また、小さいサイズのパケットが一定期間に連続的に受信される場合でも、ネットワークプロセッサがこれらの受信パケットをまとめて一つのロングパケットに変換するため、多数の受信パケットをプロトコル処理する場合に比べて処理負荷を大幅に減らすことができる。
実施の形態2
実施の形態1では、受信された複数のショートパケットを連結してロングパケットを生成する際に、各ショートパケットのヘッダを1つのヘッダに集約させてロングパケットのヘッダとし、各ショートパケットのヘッダは不要となるので破棄していた。しかし、プロトコルによっては、データの整合性や秘匿性を確保したり、確実な転送を保証するために各パケットに付加されるヘッダに各種の制御情報をもたせることがあり、パケットの連結後にヘッダを破棄すると、制御情報が失われてしまう。そこで、実施の形態2に係る情報処理システム100のネットワークサブシステム150では、各ショートパケットのヘッダを破棄することなく、メインシステム110に転送する。
図8は、実施の形態2に係る情報処理システム100の構成図である。ネットワークサブシステム150のバッファ170には、受信されたショートパケットのヘッダとペイロードをそれぞれ別に保持するヘッダバッファ172とペイロードバッファ174が設けられる。本実施の形態では、ヘッダとペイロードを別系統バッファに保持して独立に制御する。データ転送には、DMAが用いられ、ヘッダとペイロードを分離して独立にメインシステム110のメインメモリ130に転送することができる。
ネットワークサブシステム150は、実施の形態1で説明した図5の各機能構成を含むが、ヘッダとペイロードを分離してメインシステム110に転送するため、連結されたペイロードにヘッダを付加するためのロングパケット生成部78の構成は設けず、ヘッダ集約部74とペイロード連結部76がそれぞれ独立にヘッダと連結されたペイロードを入出力インタフェース10を介してメインシステム110にDMA転送する構成を取る。また、実施の形態2のヘッダ集約部74は、同一コネクションの複数のショートパケットの個別のヘッダを集約したヘッダだけでなく、各ショートパケットの個別のヘッダも合わせてメインシステム110に転送する。
ヘッダバッファ172には、ネットワークから受信されたN個のショートパケットの個別のヘッダ1〜N(符号176)が蓄積される。ヘッダ集約部74は、これらのヘッダ1〜Nを1つのヘッダ175に集約して、ヘッダバッファ172に蓄積する。ヘッダバッファ172に蓄積された個別のヘッダ176は集約されたヘッダ175とともにメインシステム110のメインメモリ130にDMA転送される。
ペイロードバッファ174には、N個のショートパケットの各ペイロード1〜N(符号178)が蓄積され、ペイロード連結部76によりこれらのペイロード1〜Nは連結される。連結されたペイロードは、メインシステム110のメインメモリ130にDMA転送される。連結後のペイロードはデータ長が大きくなる可能性があり、連結されたペイロードのメインメモリ130への転送は、個別のヘッダ1〜Nおよび集約されたヘッダの転送よりも時間を要する。個別のヘッダ1〜Nおよび集約されたヘッダは、メインメモリ130に先に転送されるため、メインプロセッサ120は個別のヘッダ1〜Nの解析を先に進め、プロトコル処理を行うことができ、その間、連結されたペイロードはバックグラウンドでメインメモリ130に転送される。メインプロセッサ120は、ヘッダの解析が終わると、バックグラウンドでメインメモリ130に転送された連結されたペイロードの処理を進める。
ヘッダとペイロードを分離することで、ヘッダはプロトコルスタックに渡し、ペイロードは、プロトコル処理には関係しないため、アプリケーションにより参照されるメモリ領域に直接渡すことができる。ペイロードをアプリケーションのメモリ領域に渡す際、いわゆるゼロ・コピー技術を利用してプロトコルスタックからアプリケーションへデータをコピーする処理を省略し、コピーによるオーバーヘッドをなくすことができる。
アプリケーションで利用されるデータは、プロトコル処理が完了した時点で、アプリケーションに渡せばよいため、ペイロード用のDMAコントローラは、プロトコルスタックがヘッダのプロトコル処理をしている間に、連結されたペイロードをアプリケーションのメモリ領域にバックグラウンドで転送することができる。
実施の形態2に係る情報処理システム100によれば、たとえば、IPsec(Security Architecture for Internet Protocol)のようにIPパケットがヘッダ情報も含めて暗号化される場合や、トランスポート層のプロトコルとしてTCPを用いるため、シーケンス番号など再送制御にヘッダ情報が必要となる場合に、連結前の各ショートパケットの個別のヘッダもプロトコルスタックに渡されるため、プロトコルスタックはIPパケットの復号やTCPの再送制御を行うことができる。また、ヘッダとペイロードの転送系統を分離したため、連結されたペイロードがバックグランドでメモリに転送される間に、ショートパケットの個別のヘッダをプロトコル処理することができ、処理効率を上げることができる。
なお、上記の説明では、同一コネクションの複数のパケットの個別のヘッダを集約されたヘッダとともにメモリに転送したが、ヘッダの集約は行わないで、複数のパケットの個別のヘッダだけをメモリに転送するように構成してもよい。
実施の形態3
実施の形態3では、実施の形態2のメインシステム110が、複数のプロセッサを含むマルチプロセッサシステムにより実現される構成である。
図9は、実施の形態3に係るマルチプロセッサシステム200の構成図である。マルチプロセッサシステム200は、複数(同図では4個)のサブプロセッサユニット201〜204、これらのサブプロセッサユニット201を制御するメインプロセッサユニット209、メインプロセッサユニット209および複数のサブプロセッサユニット201〜204により共有されるメインメモリ230を有し、外部インタフェース240を介してネットワークサブシステム150と接続されている。
ネットワークサブシステム150は、実施の形態2で説明したネットワークサブシステム150であり、ネットワークプロセッサ160と、ヘッダバッファ172とペイロードバッファ174を含むバッファ170とを有する。
各サブプロセッサユニット201〜204は、プロセッサ211〜214およびローカルメモリ221〜224を含む。ローカルメモリ221〜224は、プロセッサ211〜214が高速にアクセスすることのできる専用メモリである。メインプロセッサユニット209は、プロセッサ219およびキャッシュ229を含む。
メインプロセッサユニット209、サブプロセッサユニット201〜204、メインメモリ230、および外部インタフェース240が1つのパッケージに集積され、マルチコアプロセッサを形成してもよい。
複数のサブプロセッサユニットの内、1つのサブプロセッサユニット、同図の例では第4のサブプロセッサユニット204は、プロトコルスタックなどのネットワーキング機能をもち、それ以外の残りのサブプロセッサユニット、同図の例では第1から第3のサブプロセッサユニット201〜203は、ネットワークを利用するアプリケーションを実行する。ネットワーク処理専用のサブプロセッサユニット204を設けることで、アプリケーションを実行するサブプロセッサユニット201〜203からネットワーク処理をオフロードすることができる。なお、メインプロセッサユニット209にネットワーキング機能をもたせる構成であってもよい。
ネットワークサブシステム150は、ヘッダバッファ172に蓄積された複数の連結されるべきショートパケットの個別のヘッダおよび集約されたヘッダの少なくとも一方を、第4のサブプロセッサユニット204のローカルメモリ224にDMA転送し、ペイロードバッファ174に蓄積された連結後のペイロードをメインメモリ230にDMA転送する。
第4のサブプロセッサユニット204のプロセッサ214は、専用のローカルメモリ224に転送されたショートパケットの個別のヘッダおよび集約ヘッダの少なくとも一方を参照してプロトコル処理を行う。第4のサブプロセッサユニット204によりプロトコル処理が終わった後、第1〜第3のサブプロセッサユニット201〜203は、メインメモリ230に転送された連結後のペイロードを自分宛に送信されたデータとして参照する。
上記の説明では、ネットワークサブシステム150により受信された複数のパケットが連結される場合に、連結されたペイロードと、各パケットの個別ヘッダおよび集約ヘッダの少なくとも一方とを分離して、連結されたペイロードをメインメモリ230に、各パケットの個別ヘッダおよび集約ヘッダの少なくとも一方をネットワーク処理専用のサブプロセッサユニット204のローカルメモリ224に転送した。変形例として、パケットを連結せずにショートパケットのまま送受信する場合でも、ヘッダとペイロードを分離して、ヘッダをネットワーク処理専用のサブプロセッサユニット204のローカルメモリ224にバッファリングし、ペイロードをメインメモリ230にバッファリングするようにしてもよい。
実施の形態3のマルチプロセッサシステム200によれば、ネットワークから受信されるパケットのヘッダとペイロードを分離し、ヘッダはネットワーク処理専用のサブプロセッサユニットの専用のローカルメモリに格納し、ペイロードは複数のサブプロセッサユニットが共有するメインメモリに格納する。これにより、ネットワーク処理専用のサブプロセッサユニットは、ローカルメモリに格納されたヘッダを参照してプロトコル処理を高速に行うことができる。また、ヘッダとペイロードを分離して転送制御するため、プロトコル処理と並行して、サブプロセッサユニット上で動作するアプリケーションが、データをメインメモリに対して読み書きすることができるため、システム全体の処理効率が上がる。特に、受信された複数のパケットを連結する場合、連結後のペイロードのデータ長が長くなるため、ヘッダとペイロードを分離して転送制御することによる処理効率の改善効果が一層顕著になる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
ネットワークサブシステム150のパケット連結処理部70やパケット分割処理部30の機能などは、メインシステム110の機能として、たとえば、ネットワークドライバ320にもたせてもよい。
上記の説明では、ネットワークサブシステム150の実装例としてネットワークインタフェースカードを一例として挙げたが、ネットワークサブシステム150は、スイッチングハブなどのネットワーク機器として実装されてもよい。
上記の説明では、データリンク層および物理層としてイーサネットを想定したが、ネットワークはイーサネットに限られず、無線LANやFDDIなどであってもよく、各実施の形態は、いずれのネットワークであっても有効である。
実施の形態1に係る情報処理システムの機能構成の階層を説明する図である。 ネットワークで送受信されるパケットフォーマットの一例を示す図である。 TCPヘッダフォーマットを示す図である。 実施の形態1に係る情報処理システムの構成図である。 図4のネットワークサブシステムの機能構成図である。 図5のパケット分割処理部によりロングパケットが複数のショートパケットに分割される様子を示す図である。 図5のパケット連結処理部によりショートパケットが連結されてロングパケットが生成される様子を示す図である。 実施の形態2に係る情報処理システムの構成図である。 実施の形態3に係るマルチプロセッサシステムの構成図である。
符号の説明
10 入出力インタフェース、 20 送信バッファ、 30 パケット分割処理部、 32 ヘッダ複製部、 34 ペイロード分割部、 36 ショートパケット生成部、 40 送信部、 50 受信部、 60 受信バッファ、 70 パケット連結処理部、 72 コネクション識別部、 74 ヘッダ集約部、 76 ペイロード連結部、 78 ロングパケット生成部、 100 情報処理システム、 110 メインシステム、 120 メインプロセッサ、 130 メインメモリ、 150 ネットワークサブシステム、 160 ネットワークプロセッサ、 170 バッファ、 200 マルチプロセッサシステム。

Claims (12)

  1. ネットワークにおいて規定される最大転送単位を超えるデータ長のロングパケットをプロトコルスタックから受け取り、蓄積する送信バッファと、
    前記ロングパケットのペイロードを分割するペイロード分割部と、
    前記ロングパケットのヘッダを複製して、前記ペイロード分割部により分割されたペイロードに対するヘッダを生成するヘッダ複製部と、
    前記ヘッダ複製部により生成されたヘッダを前記分割されたペイロードに付加することにより、ネットワークに送信すべき前記最大転送単位以下のデータ長のパケットを生成するパケット生成部とを含むことを特徴とするネットワーク処理装置。
  2. ネットワークにおいて規定される最大転送単位以下のデータ長の複数のパケットをネットワークから受信し、蓄積する受信バッファと、
    コネクション単位で前記複数のパケットのペイロードを連結するペイロード連結部と、
    前記複数のパケットのヘッダを前記コネクション単位で集約して、前記ペイロード連結部により連結されたペイロードに対するヘッダを生成するヘッダ集約部と、
    前記ヘッダ集約部により集約されたヘッダを前記連結されたペイロードに付加することにより、プロトコルスタックに渡すべき前記最大転送単位を超えるデータ長のロングパケットを生成するパケット生成部とを含むことを特徴とするネットワーク処理装置。
  3. ネットワークにおいて規定される最大転送単位以下のデータ長の複数のパケットをネットワークから受信し、受信したパケットをヘッダとペイロードに分離してそれぞれを蓄積するヘッダバッファとペイロードバッファを含む受信バッファと、
    コネクション単位で前記複数のパケットのペイロードを連結するペイロード連結部と、
    前記複数のパケットのヘッダを前記コネクション単位で集約して、前記ペイロード連結部により連結されたペイロードに対するヘッダを生成するヘッダ集約部と、
    前記ヘッダ集約部により集約されたヘッダを前記ヘッダバッファから、前記連結されたペイロードを前記ペイロードバッファから、それぞれ独立に上位層に転送する入出力インタフェースとを含むことを特徴とするネットワーク処理装置。
  4. 前記入出力インタフェースは、前記コネクション単位でまとめられる複数のパケットの各々の個別のヘッダを、前記集約されたヘッダとともに、あるいは前記集約されたヘッダに代えて、前記ヘッダバッファから上位層に転送することを特徴とする請求項3に記載のネットワーク処理装置。
  5. 前記入出力インタフェースは、前記個別のヘッダおよび前記集約されたヘッダをプロトコルスタックに、前記連結されたペイロードを直接アプリケーション層に転送することを特徴とする請求項4に記載のネットワーク処理装置。
  6. 当該ネットワーク処理装置は、それぞれがローカルメモリを有する複数のプロセッサと前記複数のプロセッサにより共有されるメインメモリとを含むマルチプロセッサシステムと接続されており、
    前記複数のプロセッサの内、1つのプロセッサが、残りのプロセッサに代わってネットワークを介して通信されるデータのプロトコル処理を行うプロトコルスタックの機能を有し、
    前記入出力インタフェースは、前記個別のヘッダおよび前記集約されたヘッダを前記1つのプロセッサ内の前記ローカルメモリに転送し、前記連結されたペイロードを前記残りのプロセッサから参照される前記メインメモリ内の領域に転送することを特徴とする請求項4に記載のネットワーク処理装置。
  7. それぞれがローカルメモリを有する複数のプロセッサと、
    前記複数のプロセッサにより共有されるメインメモリとを含み、
    前記複数のプロセッサの内、1つのプロセッサが、残りのプロセッサに代わってネットワークを介して通信されるデータのプロトコル処理を行うプロトコルスタックの機能を有し、
    ネットワークに対して送受信されるべきパケットからヘッダとペイロードが分離され、前記ペイロードは、前記残りのプロセッサから参照される前記メインメモリ内の領域に転送され、前記ヘッダは、前記1つのプロセッサ内の前記ローカルメモリに転送され、
    前記1つのプロセッサは、当該プロセッサ内の前記ローカルメモリに転送されたヘッダにもとづいて前記パケットのプロトコル処理を行うことを特徴とするマルチプロセッサシステム。
  8. それぞれがローカルメモリを有する複数のプロセッサと、
    前記複数のプロセッサにより共有されるメインメモリとを含み、
    前記複数のプロセッサの内、1つのプロセッサが、残りのプロセッサに代わってネットワークを介して通信されるデータのプロトコル処理を行うプロトコルスタックの機能を有し、
    ネットワークにおいて規定される最大転送単位以下のデータ長の複数のパケットがネットワークから受信された場合に、コネクション単位で前記複数のパケットのペイロードを連結したデータは、前記残りのプロセッサから参照される前記メインメモリ内の領域に転送され、前記コネクション単位の前記複数のパケットの各々の個別のヘッダは、前記1つのプロセッサ内の前記ローカルメモリに転送され、
    前記1つのプロセッサは、当該プロセッサ内の前記ローカルメモリに転送された個別のヘッダにもとづいて前記複数のパケットのプロトコル処理を行い、
    前記残りのプロセッサは、前記1つのプロセッサのプロトコル処理の結果を受けて、前記メインメモリから前記連結されたデータを読み取ることを特徴とするマルチプロセッサシステム。
  9. ネットワークにおいて規定される最大転送単位を超えるデータ長のロングパケットをプロトコルスタックから受け取り、前記ロングパケットのペイロードを分割するステップと、
    前記ロングパケットのヘッダを複製して、分割されたペイロードに対するヘッダを生成するステップと、
    生成されたヘッダを前記分割されたペイロードに付加することにより、ネットワークに送信すべき前記最大転送単位以下のデータ長のパケットを生成するステップとをネットワークプロセッサに実行させることを特徴とするプログラム。
  10. ネットワークにおいて規定される最大転送単位以下のデータ長の複数のパケットをネットワークから受信し、コネクション単位で前記複数のパケットのペイロードを連結するステップと、
    前記複数のパケットのヘッダを前記コネクション単位で集約して、連結されたペイロードに対するヘッダを生成するステップと、
    集約されたヘッダを前記連結されたペイロードに付加することにより、プロトコルスタックに渡すべき前記最大転送単位を超えるデータ長のロングパケットを生成するステップとをネットワークプロセッサに実行させることを特徴とするプログラム。
  11. ネットワークにおいて規定される最大転送単位を超えるデータ長のロングパケットをプロトコルスタックから受け取り、送信バッファに蓄積するステップと、
    前記ロングパケットのペイロードを分割するステップと、
    前記ロングパケットのヘッダを複製して、分割されたペイロードに対するヘッダを生成するステップと、
    生成されたヘッダを前記分割されたペイロードに付加することにより、ネットワークに送信すべき前記最大転送単位以下のデータ長のパケットを生成するステップとを含むことを特徴とするネットワークプロトコル処理方法。
  12. ネットワークにおいて規定される最大転送単位以下のデータ長の複数のパケットをネットワークから受信し、受信バッファに蓄積するステップと、
    コネクション単位で前記複数のパケットのペイロードを連結するステップと、
    前記複数のパケットのヘッダを前記コネクション単位で集約して、連結されたペイロードに対するヘッダを生成するステップと、
    集約されたヘッダを前記連結されたペイロードに付加することにより、プロトコルスタックに渡すべき前記最大転送単位を超えるデータ長のロングパケットを生成するステップとを含むことを特徴とするネットワークプロトコル処理方法。
JP2006086294A 2006-03-27 2006-03-27 ネットワーク処理装置 Active JP4942375B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006086294A JP4942375B2 (ja) 2006-03-27 2006-03-27 ネットワーク処理装置
US11/685,994 US8175116B2 (en) 2006-03-27 2007-03-14 Multiprocessor system for aggregation or concatenation of packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006086294A JP4942375B2 (ja) 2006-03-27 2006-03-27 ネットワーク処理装置

Publications (2)

Publication Number Publication Date
JP2007266759A true JP2007266759A (ja) 2007-10-11
JP4942375B2 JP4942375B2 (ja) 2012-05-30

Family

ID=38533313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006086294A Active JP4942375B2 (ja) 2006-03-27 2006-03-27 ネットワーク処理装置

Country Status (2)

Country Link
US (1) US8175116B2 (ja)
JP (1) JP4942375B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014073050A1 (ja) * 2012-11-07 2014-05-15 富士通株式会社 情報処理装置及び情報処理方法
JP2015515795A (ja) * 2012-03-23 2015-05-28 アイトロン インコーポレイテッド 通信パケット変換
JP2019047326A (ja) * 2017-09-01 2019-03-22 富士通株式会社 データ伝送装置、演算処理装置及びデータ伝送装置の制御方法
JP2019057781A (ja) * 2017-09-20 2019-04-11 キヤノン株式会社 通信装置および通信装置の制御方法
JP2019153214A (ja) * 2018-03-06 2019-09-12 キヤノン株式会社 通信装置およびその制御方法
JP2020136883A (ja) * 2019-02-19 2020-08-31 キヤノン株式会社 通信装置、通信装置の制御方法およびプログラム

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3891145B2 (ja) * 2003-05-16 2007-03-14 ソニー株式会社 無線通信装置、無線通信方法及びプログラム
JP4412369B2 (ja) * 2007-09-04 2010-02-10 日本電気株式会社 分散型処理システム、分散型処理方法、端末、及び、プログラム
KR20090099734A (ko) * 2008-03-18 2009-09-23 삼성전자주식회사 스트림 기반의 인터페이스 시스템 및 그 제어 방법
US8051222B2 (en) * 2008-06-25 2011-11-01 Redpine Signals, Inc. Concatenating secure digital input output (SDIO) interface
RU2477930C2 (ru) * 2008-08-04 2013-03-20 ЗетТиИ Корпорейшн Способ и система для передачи потоковых мультимедийных данных с нулевым копированием
KR20110003209A (ko) * 2009-07-03 2011-01-11 주식회사 케이티 지그비 게이트웨이, 이와 ip 네트워크를 통해 연동하는 ip 서비스 서버
US8553693B2 (en) * 2010-03-10 2013-10-08 Intel Corporation Network controller circuitry to issue at least one portion of packet payload to device in manner that by-passes communication protocol stack involvement
US8804752B2 (en) 2011-05-31 2014-08-12 Oracle International Corporation Method and system for temporary data unit storage on infiniband host channel adaptor
US8484392B2 (en) 2011-05-31 2013-07-09 Oracle International Corporation Method and system for infiniband host channel adaptor quality of service
US8589610B2 (en) 2011-05-31 2013-11-19 Oracle International Corporation Method and system for receiving commands using a scoreboard on an infiniband host channel adaptor
US9021123B2 (en) * 2011-08-23 2015-04-28 Oracle International Corporation Method and system for responder side cut through of received data
US8879579B2 (en) 2011-08-23 2014-11-04 Oracle International Corporation Method and system for requester virtual cut through
US8832216B2 (en) 2011-08-31 2014-09-09 Oracle International Corporation Method and system for conditional remote direct memory access write
US8902901B2 (en) 2012-03-23 2014-12-02 Itron, Inc. Communication packet conversion
US9973335B2 (en) * 2012-03-28 2018-05-15 Intel Corporation Shared buffers for processing elements on a network device
US9686190B2 (en) * 2012-03-29 2017-06-20 Intel Corporation Techniques for forwarding or receiving data segments associated with a large data packet
US9191452B2 (en) 2012-12-20 2015-11-17 Oracle International Corporation Method and system for an on-chip completion cache for optimized completion building
US9384072B2 (en) 2012-12-20 2016-07-05 Oracle International Corporation Distributed queue pair state on a host channel adapter
US9148352B2 (en) 2012-12-20 2015-09-29 Oracle International Corporation Method and system for dynamic repurposing of payload storage as a trace buffer
US9069485B2 (en) 2012-12-20 2015-06-30 Oracle International Corporation Doorbell backpressure avoidance mechanism on a host channel adapter
US9069633B2 (en) 2012-12-20 2015-06-30 Oracle America, Inc. Proxy queue pair for offloading
US9256555B2 (en) 2012-12-20 2016-02-09 Oracle International Corporation Method and system for queue descriptor cache management for a host channel adapter
US8937949B2 (en) 2012-12-20 2015-01-20 Oracle International Corporation Method and system for Infiniband host channel adapter multicast packet replication mechanism
JP6191022B2 (ja) * 2013-02-20 2017-09-06 パナソニックIpマネジメント株式会社 アクセス装置、情報記録装置およびアクセスシステム
US9300578B2 (en) * 2013-02-21 2016-03-29 Applied Micro Circuits Corporation Large receive offload functionality for a system on chip
US9069705B2 (en) 2013-02-26 2015-06-30 Oracle International Corporation CAM bit error recovery
US9336158B2 (en) 2013-02-26 2016-05-10 Oracle International Corporation Method and system for simplified address translation support for static infiniband host channel adaptor structures
US8850085B2 (en) 2013-02-26 2014-09-30 Oracle International Corporation Bandwidth aware request throttling
US9614891B1 (en) * 2013-09-23 2017-04-04 Amazon Technologies, Inc. Assembling communications based on captured packets
US9578141B2 (en) * 2013-11-03 2017-02-21 Ixia Packet flow modification
CN103905420B (zh) * 2013-12-06 2017-10-10 北京太一星晨信息技术有限公司 一种协议栈和应用程序间传输数据的方法及装置
DE102014207413A1 (de) * 2014-04-17 2015-10-22 Robert Bosch Gmbh Netzwerkschnittstelleneinheit und Verfahren zum Betreiben einer Netzwerkschnittstelleneinheit
TWI531908B (zh) * 2014-04-24 2016-05-01 A method of supporting virtual machine migration with Software Defined Network (SDN)
WO2015176247A1 (zh) * 2014-05-21 2015-11-26 华为技术有限公司 一种网络协议栈的数据处理方法及装置
US9894008B2 (en) 2014-08-20 2018-02-13 Citrix Systems, Inc. Systems and methods for implementation of jumbo frame over existing network stack
WO2016168651A1 (en) * 2015-04-16 2016-10-20 Andrew Wireless Systems Gmbh Uplink signal combiners for mobile radio signal distribution systems using ethernet data networks
US10826841B2 (en) * 2016-12-06 2020-11-03 Microsoft Technology Licensing, Llc Modification of queue affinity to cores based on utilization
US10715424B2 (en) 2016-12-06 2020-07-14 Microsoft Technology Licensing, Llc Network traffic management with queues affinitized to one or more cores
US10554554B2 (en) 2016-12-06 2020-02-04 Microsoft Technology Licensing, Llc Hybrid network processing load distribution in computing systems
KR102382700B1 (ko) * 2017-09-29 2022-04-06 한국전자통신연구원 통신 장치 및 이의 패킷 전송 방법
US11108751B2 (en) * 2017-10-27 2021-08-31 Nicira, Inc. Segmentation of encrypted segments in networks
US20220021629A1 (en) * 2020-07-19 2022-01-20 Mellanox Technologies, Ltd. Coalescing packets based on hints generated by network adapter
TWI745034B (zh) * 2020-08-18 2021-11-01 國立陽明交通大學 封包聚合及解聚合方法
US11934658B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Enhanced storage protocol emulation in a peripheral device
US11934333B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Storage protocol emulation in a peripheral device
US11726666B2 (en) * 2021-07-11 2023-08-15 Mellanox Technologies, Ltd. Network adapter with efficient storage-protocol emulation
US11997533B2 (en) * 2021-09-29 2024-05-28 Qualcomm Incorporated Uplink segmentation offload to modem

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63275239A (ja) * 1987-05-07 1988-11-11 Iwatsu Electric Co Ltd ロ−カルエリアネツトワ−クシステム
JPH11317762A (ja) * 1998-05-07 1999-11-16 Nec Corp インタフェース装置
JP2006081033A (ja) * 2004-09-10 2006-03-23 Canon Inc 通信制御装置及び方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3544390B2 (ja) * 1994-06-29 2004-07-21 富士通株式会社 並列計算機で用いられるメッセージ通信方法
US6678746B1 (en) * 2000-08-01 2004-01-13 Hewlett-Packard Development Company, L.P. Processing network packets
US20020174316A1 (en) * 2001-05-18 2002-11-21 Telgen Corporation Dynamic resource management and allocation in a distributed processing device
JP3988475B2 (ja) * 2002-02-05 2007-10-10 ソニー株式会社 送信装置、受信装置およびそれらの方法
JP2005012381A (ja) * 2003-06-18 2005-01-13 Nec Corp データ転送装置及びその方法並びにそれを用いたデータ通信システム及びプログラム
US7561573B2 (en) * 2005-03-23 2009-07-14 Fujitsu Limited Network adaptor, communication system and communication method
US7441112B2 (en) * 2005-06-30 2008-10-21 Intel Corporation Offloading the processing of a network protocol stack

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63275239A (ja) * 1987-05-07 1988-11-11 Iwatsu Electric Co Ltd ロ−カルエリアネツトワ−クシステム
JPH11317762A (ja) * 1998-05-07 1999-11-16 Nec Corp インタフェース装置
JP2006081033A (ja) * 2004-09-10 2006-03-23 Canon Inc 通信制御装置及び方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015515795A (ja) * 2012-03-23 2015-05-28 アイトロン インコーポレイテッド 通信パケット変換
WO2014073050A1 (ja) * 2012-11-07 2014-05-15 富士通株式会社 情報処理装置及び情報処理方法
JP2019047326A (ja) * 2017-09-01 2019-03-22 富士通株式会社 データ伝送装置、演算処理装置及びデータ伝送装置の制御方法
JP7037035B2 (ja) 2017-09-01 2022-03-16 富士通株式会社 データ伝送装置、演算処理装置及びデータ伝送装置の制御方法
JP2019057781A (ja) * 2017-09-20 2019-04-11 キヤノン株式会社 通信装置および通信装置の制御方法
JP2019153214A (ja) * 2018-03-06 2019-09-12 キヤノン株式会社 通信装置およびその制御方法
JP7049140B2 (ja) 2018-03-06 2022-04-06 キヤノン株式会社 通信装置およびその制御方法
JP2020136883A (ja) * 2019-02-19 2020-08-31 キヤノン株式会社 通信装置、通信装置の制御方法およびプログラム

Also Published As

Publication number Publication date
US20070223472A1 (en) 2007-09-27
JP4942375B2 (ja) 2012-05-30
US8175116B2 (en) 2012-05-08

Similar Documents

Publication Publication Date Title
JP4942375B2 (ja) ネットワーク処理装置
US7535907B2 (en) TCP engine
JP4577853B2 (ja) ネットワーク・プロトコル処理のオフロードにおいて接続確立をサポートする装置および方法
US7930349B2 (en) Method and apparatus for reducing host overhead in a socket server implementation
CA2573156C (en) Apparatus and method for supporting memory management in an offload of network protocol processing
EP2208331B1 (en) Parallelizing the tcp behavior of a network connection
US9813283B2 (en) Efficient data transfer between servers and remote peripherals
US8903935B2 (en) Remote direct memory access over datagrams
EP3603001A1 (en) Hardware-accelerated payload filtering in secure communication
US20080002578A1 (en) Network with a constrained usage model supporting remote direct memory access
US11750699B2 (en) Small message aggregation
US11314417B2 (en) Methods and systems for NVMe target load balancing based on real time metrics
US9961147B2 (en) Communication apparatus, information processor, communication method, and computer-readable storage medium
US10990326B2 (en) High-speed replay of captured data packets
US20070291782A1 (en) Acknowledgement filtering
JP5094482B2 (ja) 処理装置及びその処理方法
US20230156102A1 (en) Packet processing method, network device, and related device
US10326696B2 (en) Transmission of messages by acceleration components configured to accelerate a service
US11740920B2 (en) Methods and systems for migrating virtual functions in association with virtual machines
US8743907B1 (en) Apparatus for reassembling a fragmented data unit and transmitting the reassembled data unit
US7245615B1 (en) Multi-link protocol reassembly assist in a parallel 1-D systolic array system
US20200220952A1 (en) System and method for accelerating iscsi command processing
WO2023109891A1 (zh) 组播传输方法、装置和系统
Bilic et al. Deferred segmentation for wire-speed transmission of large TCP frames over standard GbE networks
JP2019220791A (ja) 通信装置、通信装置の制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090306

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110121

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120210

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4942375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250