[go: up one dir, main page]

JP4156568B2 - 通信システムの制御方法、通信制御装置、プログラム - Google Patents

通信システムの制御方法、通信制御装置、プログラム Download PDF

Info

Publication number
JP4156568B2
JP4156568B2 JP2004182944A JP2004182944A JP4156568B2 JP 4156568 B2 JP4156568 B2 JP 4156568B2 JP 2004182944 A JP2004182944 A JP 2004182944A JP 2004182944 A JP2004182944 A JP 2004182944A JP 4156568 B2 JP4156568 B2 JP 4156568B2
Authority
JP
Japan
Prior art keywords
packet
header
communication control
fragment
merge
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.)
Expired - Fee Related
Application number
JP2004182944A
Other languages
English (en)
Other versions
JP2006005878A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004182944A priority Critical patent/JP4156568B2/ja
Priority to US11/104,513 priority patent/US7903689B2/en
Publication of JP2006005878A publication Critical patent/JP2006005878A/ja
Application granted granted Critical
Publication of JP4156568B2 publication Critical patent/JP4156568B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal

Landscapes

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

Description

本発明は、通信システムの制御方法、通信制御装置、情報処理システムの制御方法、通信システム、プログラムに関し、特に、TCP(Transmission Control Protocol)/IP(Internet Protocol)等の通信プロトコルを用いてパケット通信を行うコンピュータネットワーク技術等に適用して有効な技術に関する。
コンピュータネットワークの分野では、年々高速なネットワークの物理媒体が開発され普及してきている。現在はパーソナルコンピュータがギガビットイーサネット(登録商標)のポートを備えることも珍しくは無く、最近では10ギガビットのイーサネット(登録商標)を使うためのネットワークアダプタ(情報処理装置に接続しネットワークにデータを送れるようにするためのハードウェア)も登場している。
物理媒体が高速化している一方で、コンピュータネットワークで主に使われているTCP/IPプロトコルの処理速度は物理媒体の通信速度に追いついていない。10Gbitイーサネット(登録商標)のような超高速ネットワークでは非常に高速なCPUをもつ情報処理装置でも実際の通信速度が物理媒体の速度に到達せず、ネットワークの通信能力を十分に活用できないという課題がある。このようなプロトコル処理の課題を解決し通信を高速化するための技術が盛んに検討されている。
現在普及しているプロトコル処理の高速化技術は、TCPフラグメントオフロードと呼ばれる技術である。この技術では、情報処理装置からネットワークアダプタにパケットを転送する際に、パケットのサイズをネットワークに転送できる最大サイズ(MTU)よりも大きな単位で転送し、ネットワークアダプタ内で大きなサイズのパケットをネットワークに転送できるだけの大きさのパケットに分割する。このようにすると送信側の情報処理装置は、大きなデータサイズの単位でパケットのヘッダを生成することができ、パケットヘッダを生成するプロトコル処理等の頻度を下げることができる。従って低い能力のCPUでも大量のデータを高速に転送することが可能になる。
この考え方は受信側にも適用できる。すなわち、小さなサイズのパケットをまとめあげて大きなサイズのパケットにしてから情報処理装置に送ることで、情報処理装置のプロトコル処理の負荷を軽減することができる(たとえば、特許文献1)。
しかしながら、この併合処理では通信のスループット(単位時間あたりの転送データ量)を向上させることはできるものの、逆に、ネットワークアダプタが併合処理を行う間、情報処理装置はプロトコル処理を開始できないために、通信の遅延時間は長くなる、という課題がある。
TCPセグメンテーションオフロードは、TCPのレベルでセグメントを分割する方式であるが、これ以外にも、IPレベルでパケットを分割しホストの負荷を軽減する考え方もある。たとえば、特許文献2では、ネットワークカードではなく、サーバ間を接続する高速バスと、外部のイーサネット(登録商標)との間に介在する通信サーバ内で、高速バス上のデータと、イーサネット(登録商標)上でのIPパケットとの間におけるリアセンブル(併合)/フラグメント化を行うことで、送信元、送信先の情報処理装置の負荷を下げている。
上述のように、ネットワークカードで受信したパケットを蓄積し、一つの大きなパケットに併合して情報処理装置に送ることで、情報処理装置上のプロトコル処理の負荷を軽減することができる。しかしながら、受信時においてパケットを蓄積することは、蓄積するための時間だけ受信側の情報処理装置へのパケットの到達が遅れ、遅延時間の増大につながってしまうという問題がある。すなわち、受信側におけるパケット併合処理による受信側の情報処理装置の負荷軽減の効果を維持しつつ、パケットの伝送遅延時間の増大を抑制することが課題となっている。
特開平6−85822号公報 特開平2000−101613号公報
本発明の目的は、送受信パケットの分割および併合によるホストコンピュータの負荷の軽減と、送受信パケットの伝送遅延時間の短縮とを両立させることが可能な技術を提供することにある。
本発明の他の目的は、送受信パケットの分割および併合による情報ネットワークの伝送速度の有効利用と、送受信パケットの伝送遅延時間の短縮とを両立させることが可能な技術を提供することにある。
本発明の第1の観点は、送信側の情報処理装置から出力される第1パケットを送信側の通信制御装置で複数の第2パケットに分割してネットワークに送信し、受信側の通信制御装置では複数の前記第2パケットを併合し前記第1パケットに復元して受信側の情報処理装置に送る通信システムの制御方法であって、
受信側の前記通信制御装置は、前記第2パケットの併合処理が終了する前に前記第1パケットを処理するための併合ヘッダを受信側の前記情報処理装置に送り、前記情報処理装置が併合ヘッダを解析して行うプロトコル処理と前記通信制御装置での前記第2パケットの併合処理とを並行して行う通信システムの制御方法を提供する。
本発明の第2の観点は、情報処理装置とネットワークとの間に介在して情報の送受信を制御する通信制御装置であって、
送信側で第1パケットを断片化して生成された複数の第2パケットを受信して併合して受信側の前記情報処理装置に受け渡す機能と、
前記第2パケットから併合後の前記第1パケットを処理するための併合ヘッダを生成して、前記第2パケットの併合完了前に、受信側の前記情報処理装置に送るヘッダ解析機能と、
を含む通信制御装置を提供する。
本発明の第3の観点は、情報処理装置とネットワークとの間に介在し、前記情報処理装置から受け取った第1パケットを断片化し複数の第2パケットを生成して前記ネットワークに送出する機能を備えた通信制御装置であって、
前記第2パケットのうち、併合後の前記第1パケットを処理するための併合ヘッダの生成に必要な情報を含む前記第2パケットを優先して前記ネットワークに送出する機能を含む通信制御装置を提供する。
本発明の第4の観点は、情報処理装置とネットワークとの間に介在し、前記情報処理装置から受け取った第1パケットを断片化し複数の第2パケットを生成して前記ネットワークに送出する機能を備えた通信制御装置であって、
前記第2パケットのうち、併合後の前記第1パケットを処理するための併合ヘッダの生成に必要な情報を含む第3パケットを前記第2パケットとは別に前記ネットワークに送出する機能を含む通信制御装置を提供する。
本発明の第5の観点は、情報処理装置と、前記情報処理装置とネットワークとの間に介在する通信制御装置とを含む情報処理システムの制御方法であって、
送信側において断片化されて前記ネットワークに送出された複数のパケットを前記通信制御装置において併合して一つのパケットにして前記情報処理装置に受け渡す際に、前記通信制御装置内での前記パケットの併合処理が終了する以前に併合後の前記パケットを処理するための併合ヘッダを前記情報処理装置に送り、前記情報処理装置が前記併合ヘッダを解析して行うプロトコル処理と通信制御装置における前記パケットの併合処理とを並行して行う情報処理システムの制御方法を提供する。
すなわち、本発明では、遅延時間の増大を抑えるため、受信側でパケットの併合を行う前に、最初のパケットがネットワークカード等の通信制御装置に到達した時点で、併合状態でのヘッダを通信制御装置内で作り、上位の情報処理装置に送ってプロトコル処理を開始させる。
併合状態でのヘッダの作成や、後続するネットワークからのパケットについて併合するべきか判断を行うために、通信制御装置内に簡単なヘッダ解析機構を設けることでこれを実現することもできる。
これによって、情報処理装置のプロトコル処理と、通信制御装置における併合するべき後続のパケットの受信を並行動作させることができる。情報処理装置のプロトコル処理は、ヘッダが送られてきた時点で開始でき、併合するべき全てのパケットデータが情報処理装置に転送された時点で完了できる。決められた一定時間内に併合するべきデータが到達しない場合には、送られてきたデータだけで処理をやり直すか、データを廃棄する。
本発明によれば、送受信パケットの分割および併合によるホストコンピュータの負荷の軽減と、送受信パケットの伝送遅延時間の短縮とを両立させることが可能となる。
また、送受信パケットの分割および併合による情報ネットワークの伝送速度の有効利用と、送受信パケットの伝送遅延時間の短縮とを両立させることが可能となる。
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
図1は、本発明の一実施の形態である通信システムの構成の一例を示す概念図であり、図2は、本実施の形態の通信システムを構成する通信制御装置および情報処理装置の構成の一例を示す概念図である。
本実施の形態の通信システムは、送信側通信制御装置20Aを備えた送信側ホスト10Aと、受信側通信制御装置20Bを備えた受信側ホスト10Bと、送信側通信制御装置20Aと受信側通信制御装置20Bの間に介在する情報ネットワーク30、を含んでいる。
送信側ホスト10Aおよび受信側ホスト10Bは、たとえば、図2に例示されるような情報処理装置10で構成され、送信側通信制御装置20Aおよび受信側通信制御装置20Bは、同じく図2に例示されるネットワークカード20で構成されている。
なお、以下の説明では、便宜上、送信側および受信側においてネットワークカード20の機能を区別して説明するが、通常、情報通信は、送受信が一体で行われるため、送信側通信制御装置20A、および受信側通信制御装置20Bは、共通のネットワークカード20を用いて構成することができる。
情報処理装置10は、全体を制御するCPU11と、このCPU11にて実行されるプログラムや、データ等が格納される主記憶12と、両者を接続するメモリバス13を備えている。
主記憶12には、基本ソフトウェアであるカーネル12aと、このカーネル12aの上で稼働するユーザプロセス12b、等のプログラムが実装されており、これらのプログラムがCPU11にて実行されることで、情報ネットワーク30を介した情報通信が行われる。
ネットワークカード20は、ネットワークコントローラ21、バッファメモリ22、エンコーダ/デコーダ23、トランシーバ24、バスコントローラ25等を含んでいる。
ネットワークコントローラ21は、情報処理装置10から受けた送信パケットを分割して情報ネットワーク30の側に送出したり、情報ネットワーク30を経由して到来する分割されたパケットを併合して情報処理装置10に渡す、等の情報の送受信制御を行う。このネットワークコントローラ21は、たとえばマイクロコンピュータ、あるいは論理回路で構成され、内蔵する図示しないROMに記憶されたプログラムで動作することにより、後述のような多様な機能を実現する。
バッファメモリ22は、パケットの分割や併合処理のために、当該パケットを一時的に保持したり、管理情報を格納するために用いられる。
エンコーダ/デコーダ23は、送信パケットのデータを通信用のデータに符号化する動作、送信側から符号化されて到来する受信パケットのデータを復号する動作、等を行う。
トランシーバ24は、エンコーダ/デコーダ23で符号化された送受信データを情報ネットワーク30を構成する物理的な通信媒体に応じた信号形態に変換して送受信したり、情報ネットワーク30の規格に応じた送受信動作の制御を行う。
バスコントローラ25は、バッファメモリ22と情報処理装置10の主記憶12との間におけるメモリバス13を介したデータ転送の制御を行う。また、ネットワークコントローラ21による、情報処理装置10の主記憶12へのアクセスの仲介を行う。
この実施の形態では、送信側ホスト10Aで最大64KBのIPパケットを送信側通信制御装置20AでIPフラグメントパケットに分割し、受信側通信制御装置20BにはこのIPフラグメントパケットが送られてくるものとする。フラグメント分割前のIPパケットのペイロード部にはTCPのパケットが含まれているものとする。
図3に、本実施の形態におけるパケットのフラグメント化の一例を示す。分割前のIPパケット50(第1パケット)には、IPヘッダ51と、TCPヘッダ52およびデータ部53が含まれている。このIPパケット50は、送信側ホスト10Aで生成され、送信側通信制御装置20Aに渡される。
送信側通信制御装置20Aでは、このIPパケット50をフラグメント化することにより、複数のIPフラグメントパケット60(第2パケット)を構成する。個々のIPフラグメントパケット60には、IPフラグメントヘッダ61が付加されている。個々のIPフラグメントパケット60のサイズは、情報ネットワーク30において転送可能な最大サイズに設定される。これにより、送信側ホスト10Aでは、IPパケット50の長さを、情報ネットワーク30における最大サイズを超えるサイズにすることで、データ部53の先頭部に、IPヘッダ51およびTCPヘッダ52を生成して付加する等の送信プロトコル処理の頻度、すなわち負荷を軽減することができる。
図4に例示されるように、本実施の形態の場合、受信側通信制御装置20Bであるネットワークカード20のネットワークコントローラ21には、ヘッダ解析機構21aが設けられ、複数に分割されて到来するIPフラグメントパケット60を併合して受信側ホスト10Bに渡す際に、個々のIPフラグメントパケット60のIPフラグメントヘッダ61を解析することにより、併合後の併合ヘッダ51−1を構築し、先行して受信側ホスト10Bに渡し、ネットワークカード20におけるIPフラグメントパケット60の併合処理と、受信側ホスト10Bの側におけるプロトコル処理とを並行して行うことを可能にする。
併合ヘッダ51−1は、後述のように、併合後のIPパケット50におけるIPヘッダ51のうち、受信側ホスト10Bにおける受信側のプロトコル処理の開始に必要な情報を含むように、ネットワークコントローラ21の一部に設けられたヘッダ解析機構21aにて生成される。
まず、IPフラグメントパケット60から、併合ヘッダ51−1を再構成する方法を説明する。
図5に例示されるように、分割前のIPパケット50のIPヘッダ51は、バージョン51a、ヘッダ長51b、サービスタイプ51c、パケット長51d(Total Length)、識別子51e(Identification)、フラグ51f(Frags)、フラグメントオフセット51g(Fragment Offset)、生存時間51h、プロトコル51i、ヘッダチェックサム51j、送信元IPアドレス51k、宛先IPアドレス51m、の情報で構成されている。
一方、分割後のIPフラグメントパケット60のIPフラグメントヘッダ61は、最後尾以外では、図6に例示されるように、バージョン61a、ヘッダ長61b、サービスタイプ61c、パケット長61d、識別子61e。フラグ61f、フラグメントオフセット61g、生存時間61h、プロトコル61i、ヘッダチェックサム61j、送信元IPアドレス61k、宛先IPアドレス61m、の情報で構成されている。そして、フラグ61fは、“xx1”(xは任意のビット)となっている。
最後尾のIPフラグメントパケット60のIPフラグメントヘッダ61は、図7に例示されるように、フラグ61fが“xx0”となっている点が、最後尾以外のIPフラグメントヘッダ61(図6)と異なっているのみで、他は同じである。
そして、このような形式のIPフラグメントヘッダ61は、識別子61e(Identification)、フラグ61f(Frags)、フラグメントオフセット61g(Fragment Offset)、パケット長61d(Total Length)を用いてIPフラグメントパケット60の再構成を行うことができる。
フラグ61f(Frags)中の1ビットは後続フラグメントがあるかどうかを示し、フラグメントオフセット61g(Fragment Offset)はもとのIPデータグラムからのフラグメントのオフセットを0から始まる8バイト(Byte)単位で指定している。パケット長61d(Total Length)は、そのIPフラグメントパケット60(ヘッダとデータを含む)のバイト(Byte)単位の長さである。再構成されるべきIPフラグメントパケット60は同じ識別子61e(Identification)の値をもつ。
IPフラグメントパケット60の場合、併合処理後のIPヘッダ(フラグメント再構成後のパケットヘッダ)はフラグメントの最後尾のIPフラグメントヘッダ61から得られる。なお併合処理後のパケットのTCPヘッダ部は最初のフラグメントにあるため、受信側ホスト10Bに渡す併合ヘッダ51−1としてはIPフラグメントパケット60の先頭のフラグメントと末尾のフラグメントの両方が必要である。
受信側のネットワークカード20は、IPフラグメントパケット60を、ネットワークコントローラ21に設けられた、後述の図10に例示される併合パケットヘッダ生成装置41にかける。併合パケットヘッダ生成装置41は、最後のフラグメントを認識すると、そのフラグメントで併合処理後のIPヘッダ(併合ヘッダ51−1)を生成することができる。
具体的には、図7に示した再構成されるIPフラグメントヘッダ61のパケット長61d(Total Length)を、図8に例示されるように、最後尾のIPフラグメントパケット60のパケット長61d(Total Length) + 最後尾のIPフラグメントパケット60のフラグメントオフセット61g(Fragment Offset) × 8 で置き換え、ヘッダチェックサム61jの値を再計算すればよい。併合パケットヘッダ生成装置41は、この計算動作を行う。
こうして得られたヘッダと、最初のIPフラグメントパケット60に含まれるTCPヘッダ52の部分をあわせることで、併合ヘッダ51−1を生成することができる。
IPフラグメントの場合、本実施の形態の併合ヘッダ51−1を作成するための情報は最後のフラグメント(IPフラグメントパケット60)にある。本発明を有効に機能させるためには、最後のフラグメントを時間的に先に送ることが必要である。このため、送信側通信制御装置20Aには、後述の図13で説明する併合パケットヘッダ先行送信装置42が設けられている。通常、送信側通信制御装置20Aのバッファメモリ22に格納されたIPパケット50の内容のうち、IPフラグメントパケット60にフラグメント化する際の最後の部分を先に転送することは普通無いが、もともと送信データとしてのIPパケット50の全体がバッファメモリ22内にあることを考えれば最後の部分を先に転送することは可能である。
受信側通信制御装置20Bは、併合ヘッダ51−1を生成すると、受信側ホスト10Bに送り、当該受信側ホスト10Bに対して併合ヘッダ51−1を送ったことを通知する。この通知手段としては、本実施の形態では、受信側ホスト10Bの主記憶12の一部に通知領域12cを設け、この通知領域12cに、バスコントローラ25を介してアクセスして、フラグ等の通知情報を書き込むことで実現する。
あるいは、受信側ホスト10Bへの割り込みを用いたり、逆に受信側ホスト10Bから受信側通信制御装置20Bの側をポーリングするなどの方法やこれらを併用する方法も考えられる。
併合ヘッダ51−1が到来したことを受信側ホスト10Bが認識すると、受信側ホスト10Bは、その併合ヘッダ51−1を見て、受信側としてのプロトコル処理を行う。このプロトコル処理では、TCPのようにコネクションに対応した状態を書き換えるプロトコルについては、書き換える値の作成作業だけを行い、まだ結果の反映はさせない(後述の図18参照)。
この間、情報ネットワーク30からは送信側(送信側通信制御装置20A)で生成したIPフラグメントパケット60が順に到着する。受信側ホスト10Bの併合ヘッダ51−1を用いたプロトコル処理と、情報ネットワーク30からのデータ(IPフラグメントパケット60)の到着は並行して行われる。
受信側通信制御装置20Bに到着したデータは、受信側ホスト10Bでのプロトコル処理が終わるまで当該受信側通信制御装置20Bのバッファメモリ22等に格納する方法、併合処理が終わった時点で受信側ホスト10Bに転送する方法、受信側通信制御装置20Bには格納せずに、順次、受信側ホスト10B側に転送してしまう方法、のいずれの方法で処理してもよい。
本実施の形態では、受信側ホスト10Bでのプロトコル処理が終わるまで受信側通信制御装置20Bのバッファメモリ22に格納する場合を示す。受信側通信制御装置20B内で複数のIPフラグメントパケット60の併合が完了すると、完了を受信側ホスト10Bに通知し、受信側ホスト10Bはこの完了を認識した時点で、併合後のデータを当該受信側ホスト10Bに転送させると同時に、プロトコル処理によって書き換える状態を反映する。
送信側ホスト10Aと受信側ホスト10Bとの間における情報通信での、上述の一連の処理を図9のフローチャートにまとめて示す。
すなわち、送信側ホスト10Aにおけるユーザプロセス12bで生成された通信データは、カーネル12aに渡され(ステップ101)、TCP/IPのプロトコル処理により(ステップ102)、IPパケット50に構成され、送信側通信制御装置20Aに渡される(ステップ103)。
送信側通信制御装置20Aでは、IPパケット50をバッファメモリ22上でフラグメント化する過程で、まず最後尾のIPフラグメントパケット60を生成して(ステップ104)、受信側通信制御装置20Bの側に送信し(ステップ105)、以降、IPパケット50の複数のIPフラグメントパケット60への分割処理を行うとともに(ステップ106)、先頭のIPフラグメントパケット60を受信側通信制御装置20Bに送る(ステップ107)。
受信側通信制御装置20Bでは、ステップ105で受け取った最後尾のIPフラグメントパケット60と、TCPヘッダ52を含む先頭のIPフラグメントパケット60から、併合ヘッダ51−1を生成し(ステップ108)、この併合ヘッダ51−1を受信側ホスト10Bに送る(ステップ109)。
この併合ヘッダ51−1を受け取った受信側ホスト10Bは、当該併合ヘッダ51−1に含まれる情報に基づいて、受信側のTCP/IPのプロトコル処理を開始する(ステップ113)。
この時、受信側通信制御装置20Bでは、情報ネットワーク30を介して送信側通信制御装置20Aから順次到来するIPフラグメントパケット60を受信して(ステップ110)、元のIPパケット50に併合する併合処理を、受信側ホスト10B側のプロトコル処理と並行して遂行し(ステップ111)、併合中にIPフラグメントパケット60にエラーが検出された場合には、後述の図16、図17に例示される方法にて必要に応じてエラー通知を受信側ホスト10Bに対して行い、併合後のIPパケット50を受信側ホスト10Bに渡す(ステップ112)。
受信側ホスト10Bは、ステップ112にて受け取ったデータを、プロトコル処理結果に基づいて自装置内のユーザプロセス12bに渡す(ステップ114)。
また、プロトコル処理中に受信側通信制御装置20Bからエラーが通知された場合には、必要に応じてプロトコル処理結果をキャンセルする。
このような本実施の形態の場合の時間的な処理の流れを、従来の方法と比べると図10のようになる。
すなわち、図10(b)の従来の方法では、受信側通信制御装置20BにおけるIPフラグメントパケット60の併合処理と、受信側通信制御装置20Bから受信側ホスト10Bへの併合後のIPパケット50のデータ転送処理と、受信側ホスト10Bにおけるプロトコル処理とが、逐次、時系列的に行われるので、IPパケット50のIPフラグメントパケット60への分割および受信側通信制御装置20B側でのIPパケット50への復元に伴う伝送遅延時間が大きくなる。
これに対して、図10(a)のように、本実施の形態の場合には、従来の方法に比べると、受信側ホスト10Bにおけるプロトコル処理と、受信側通信制御装置20Bにおける併合処理の並行動作が可能なため、IPフラグメントパケット60のIPパケット50への併合処理に伴う遅延時間の短縮が可能となる。この本実施の形態の並行処理のメリットは、受信側ホスト10Bにおけるプロトコル処理が重い(複雑で所要時間が長い)場合に特に顕著なものとなる。
このような、本実施の形態の効果を、図11にてより具体的に示す。この図11では具体例として、10Gbps(1.25GB/s)のネットワークを用いて、送信側の送信側通信制御装置20Aが4KBのIPパケットを(登録商標)の一般的なMTU(Maximum Transfer Unit)でIPフラグメント分割して送り、これらのパケットを受信側通信制御装置20Bが受信する場合を考える。この場合1.5KBのパケット2つと約500Bのパケットに分割されて転送が行われることになる。
まず、図11(b)のように、従来方式の場合で考える。受信側では全てのパケットがネットワークカードに受信されるまでに4KB/1.25GB/s=3.2μsの時間がかかる。このネットワークからネットワークカード内へのデータ転送の間に併合処理が同時に行われ、併合処理が完了するには結局3.2μsかかる。
次にネットワークカードとホスト計算機間の速度も10Gbpsと仮定すると、ネットワークカードからホスト計算機への転送も3.2μsかかる。TCP/IPのプロトコル処理は、2.4GHzのCPUを用いたとしても、1パケットあたり5μs〜10μsかかる。更にプロトコル処理のうち、ホスト計算機のカーネルからユーザにデータコピーする部分が別途かかり、4KBのデータでコピー速度が10Gbpsとすると3.2μsかかる。従って図11(b)の従来方式で、ネットワークカードに先頭パケットが到着してからホスト計算機でプロトコル処理が終了するまでの時間を合計すると、プロトコル処理(ヘッダ部だけで可能なもの)を5μsとして14.6μsの時間がかかる。
次に、図11(a)に例示される本実施の形態のように併合ヘッダを先行転送する場合を考える。この場合は、受信側ホスト10Bが併合ヘッダ51−1を受け取ってすぐにプロトコル処理を開始できる。併合ヘッダ作成時間+状態反映の時間は、プロトコル処理の時間に比べて非常に小さくできるので、併合ヘッダ作成時間+状態反映+プロトコル処理の時間は6.4μs以下にできる。従って、合計の処理時間は受信側通信制御装置20B上の併合処理+受信側ホスト10Bへのデータ転送時間+カーネル−ユーザ間コピーの合計9.6μsとなる。したがってこの図11(a)の本実施の形態の場合、従来方式に比べ35%遅延時間を改善できる。このような短縮効果は、科学技術計算のように情報ネットワーク30の遅延時間が性能に影響するようなアプリケーションプログラム(ユーザプロセス12b)に有効である。
上記の例からもわかるように本実施の形態の方式の効果は受信側ホスト10BのCPU11の能力と、分割前のIPパケット50のパケットサイズに依存する。さまざまなシステムでこの方式の効果を最大にするために、受信側ホスト10Bの能力に応じて分割前のIPパケット50のパケットサイズを選択するようにしてもよい。
本実施の形態の併合ヘッダ先行転送方式では、受信側ホスト10BにおけるTCP/IPプロトコル処理として、データ部なしの、ヘッダ情報のみで処理を行う必要がある。ヘッダ情報のみの場合でも、基本的にTCPのデータチェックサム以外の処理は可能である。例えば、(処理1)TCPやIPのヘッダサイズのチェック、(処理2)ヘッダチェックサムの検証、(処理3)TCPのソース、デスティネーションポートペアの判定によるコネクションの識別、(処理4)受信パケットのシーケンス番号とデータサイズから受信したデータが受信Windowの範囲にあるかどうかの判定、(処理5)受信パケットのAckフィールドを読み、逆方向のストリームについての転送がどこまで終わったかを認識し、転送が終了したデータのバッファを解放して再利用に備える、等の各処理である。更に、一般的にはパケット単位の処理ではないが、割り込みの処理も併合ヘッダ51−1が受信側ホスト10Bに到着した時点で先行して行うことができる。
TCPのデータチェックサムに関しては従来方式でもネットワークカード内で生成できるものが既にあり、チェックサムオフロードとして利用されている。上記の例においても、チェックサム計算はネットワークからパケットをネットワークカードが受け取る時点で行うことを想定している。従って上記の例で受信側ホスト10Bのプロトコル処理にチェックサムの処理は含んでいない。従来方式の場合、チェックサム結果はネットワークからのパケットの転送時にホストに渡している。
本実施の形態の併合ヘッダ先行転送方式においても、パケットデータを受信側ホスト10Bに転送する時点で、チェックサム結果を当該受信側ホスト10B側に通知することを想定している。もしくは、チェックサムエラーを検出したらデータ転送さえせずにエラー通知するような方法も考えられる。
図12に、ネットワークカード20における併合パケットヘッダ生成装置41の実現例を示す。この併合パケットヘッダ生成装置41はヘッダチェックサム判定機構41a、フラグメントオフセット判定機構41b、フラグ判定機構41c、Total_Length演算反映機構41d、チェックサム演算反映機構41e、上位層ヘッダ抽出機構41f、併合ヘッダ構成用メモリ領域41g、論理積回路41i、論理積回路41jからなっている。
最終フラグメントのIPフラグメントパケット60がこの装置に入力されると、まずヘッダチェックサムを判定したあと、フラグメントオフセット判定機構41bはフラグメントオフセット61gが0でないことを判定し、フラグ判定機構41cは後続フラグメントが無いことを判定する。
すなわち、フラグメントオフセット判定機構41bは、判定結果41b−1として、フラグメントオフセットが0の場合は0を、フラグメントオフセットが非0の場合は1を出力する。
また、フラグ判定機構41cは、判定結果41c−1として、後続フラグメントありの場合は1を、なしの場合は0を出力する。
そして、先頭フラグメントパケット判定を行う論理積回路41jには、判定結果41b−1を論理反転したものと、判定結果41c−1を論理反転したものが入力され、これらの論理積が1の時に先頭フラグメントパケットと判定され、判定結果が上位層ヘッダ抽出機構41fに入力される。
また、最終フラグメントパケット判定を行う論理積回路41iには、判定結果41b−1と、判定結果41c−1を論理反転したものが入力され、これらの論理積が1のときに、最終フラグメントパケットと判定され、判定結果がTotal_Length演算反映機構41dに入力される。
論理積回路41iで最終フラグメントパケットの判定が成立するとTotal_Length演算反映機構41dを起動し、フラグメントオフセット61gとパケット長61d(Total Length)から新たなTotal Lengthを計算する。結果はパケットのヘッダ部に反映され、このパケットのヘッダ部についてチェックサム演算反映機構41eがチェックサムを計算し反映させる。この結果できあがった併合後のIPヘッダ51を、バッファメモリ22における併合ヘッダ構成用メモリ領域41gに入れる。
先頭フラグメントのパケットがこの装置に入力されると、チェックサムを判定したあと、フラグ判定機構41c、フラグメントオフセット判定機構41b、論理積回路41jによって上位層ヘッダ抽出機構41fが動作し、先頭フラグメントパケットから上位層ヘッダ部(この場合、TCPヘッダ52)を含む部分が抽出され、併合ヘッダ構成用メモリ領域41gに送られる。この部分は正確に上位層ヘッダ部だけでなくともよく、上位層ヘッダを含んでいればよい。併合ヘッダ構成用メモリ領域41gにある両方のヘッダは組み合わされて、併合ヘッダ51−1として出力される。
次に、図13を参照して、ネットワークカード20における併合パケットヘッダ先行送信装置42の構成例について説明する。この併合パケットヘッダ先行送信装置42は、たとえば、送信側通信制御装置20Aとしてのネットワークカード20におけるネットワークコントローラ21に備えられる。
この装置は、送信側ホスト10AからうけとったIPパケット50を格納するメモリ装置42a、分割後のIPフラグメントヘッダ61を生成する分割ヘッダ生成装置42b、生成したヘッダとデータを組み合わせて、IPフラグメントパケット60を構成し、情報ネットワーク30へ送り出すパケット送信装置42cからなる。メモリ装置42aとしては、バッファメモリ22の一部を使用することができる。
最後の分割パケット(受信側通信制御装置20Bで併合ヘッダ51−1を生成可能なパケット)を他の分割パケットに対して先行して送るために、分割ヘッダ生成装置42bはパケットを受信するとヘッダ部からまず分割後の最後のヘッダを生成する。分割ヘッダ生成装置42bはそのヘッダと、ヘッダに対応するデータ部分のアドレスをパケット送信装置42cに送る。パケット送信装置42cはメモリ装置42aに対して、そのアドレスを用いてデータを要求し、ヘッダと組み合わせてパケットを作成し、送信する。
次に、図14を参照して、送信側通信制御装置20Aとしてのネットワークカード20における併合パケットヘッダ重複送信装置43の実現例について説明する。この併合パケットヘッダ重複送信装置43は、送信側ホスト10Aから到来するIPパケット50を一時的に保持するメモリ装置43aと、分割ヘッダ生成装置43bと、パケット送信装置43cを含んでいる。この併合パケットヘッダ重複送信装置43は、たとえば、ネットワークコントローラ21の一部に実装される。
上述の併合パケットヘッダ先行送信装置42では分割前のIPパケット50の全体が、送信側ホスト10Aから送信側通信制御装置20Aに届いてからでなければ分割パケット(IPフラグメントパケット60)の送出を開始できなかった。それに対して、この併合パケットヘッダ重複送信装置43においては、分割ヘッダ生成装置43bは、分割前のIPパケット50のヘッダが送信側通信制御装置20Aのバッファメモリ22(メモリ装置43a)に届いた段階で、受信側通信制御装置20Bで併合ヘッダ51−1を生成可能な、最後尾のIPフラグメントパケット60に相当する冗長パケット70(第3パケット)を作り、パケット送信装置43cを経由して情報ネットワーク30に送信する。
この冗長パケット70の送信後、本来のデータを含む分割パケットを送信する。受信側通信制御装置20Bではこの冗長パケット70が到着した時点で併合ヘッダ51−1を生成する。先行して送信する冗長パケット70のパケットヘッダ71は見かけ上分割パケットの最後尾のIPフラグメントパケット60のIPフラグメントヘッダ61のように見せかけて作る。具体的にはパケットヘッダ71を本来の最後の分割パケットと同じにする。冗長パケット70のデータ72はすべて0にする。図14はこの冗長パケット70を送信する時点の動作を示している。
受信側通信制御装置20Bでは、この先行送信する冗長パケット70と、本来の最後の分割パケット(IPフラグメントパケット60)のどちらが本来の分割パケットかは区別できない。このため受信側通信制御装置20Bでは、受けたパケットのデータ部として、両方のパケットのデータ部(IPフラグメントパケット60のデータ部53と、冗長パケット70のデータ72)を論理和した値を使う。この論理和演算をなるべく軽減するために、最後の分割パケットがなるべく小さいサイズになるように、送信側通信制御装置20Aで分割のしかたを調整することができる。具体的には最後の分割の一つ前の分割パケットのサイズを調整し、最後の分割パケットのサイズが最小になるようにする。
図15にて、受信側通信制御装置20Bとしてのネットワークカード20に備えられるパケット併合完了通知装置44の一例を説明する。パケット併合完了通知装置44は、ネットワークコントローラ21の一部として実装することができる。
このパケット併合完了通知装置44は、受信側通信制御装置20Bでパケットの併合処理完了を受信側ホスト10Bに伝え、受信側ホスト10Bがプロトコル処理の終了後、受信側通信制御装置20Bでの併合処理完了をチェックし、認識するための機構を提供する。受信側ホスト10Bは併合ヘッダ51−1に対するプロトコル処理を終えてから、受信側通信制御装置20Bの併合処理完了をチェックし、完了を認識するとデータをアプリケーション(ユーザプロセス12b)に転送することができる。
このパケット併合完了通知装置44は、受信側通信制御装置20Bにおける併合処理の完了を判定する併合完了機構44a、判定結果を、受信側ホスト10Bの主記憶12の特定の通知領域12cに書き込むフラグ書込機構44bから成る。主記憶12の通知領域12cは、ネットワークカード20内のバッファメモリ22における併合処理用バッファアドレス(各併合パケット毎にある)に対応するエントリをもつ。受信側ホスト10Bは併合ヘッダ51−1と一緒に受信側ホスト10Bに転送した併合処理用バッファアドレスから対応する通知領域12cのエントリを算出することで、その併合ヘッダ51−1に対するIPパケット50の併合処理が完了したか否かを判定することができる。
図16にて、受信側通信制御装置20Bとしてのネットワークカード20に備えられるデータエラー検出・通知装置45の一例を説明する。このデータエラー検出・通知装置45は、ネットワークコントローラ21の一部に実装することができる。データエラー検出・通知装置45は、パケットエラー判定機構45aと、フラグ書込機構45bと、併合処理用バッファ45cからなる。
このデータエラー検出・通知装置45は、パケットエラー判定機構45aにて、情報ネットワーク30から受信側通信制御装置20Bに到来するパケットのチェックサム(IPヘッダチェックサム、TCPヘッダチェックサム)を判定し、そのパケットが分割パケット(IPフラグメントパケット60)でエラーがある場合は、フラグ書込機構45bが、分割パケットが格納される併合処理用バッファ45cに対応する、受信側ホスト10Bの主記憶12の通知領域12cにエラーを記録することで、併合処理が失敗したことを受信側ホスト10Bに通知する。
このデータエラー検出・通知装置45の機構は、上述のパケット併合完了通知装置44と組み合わせて実現でき、例えば通知領域12cの、併合後の個々のIPパケット50に対応するビットを1bitから2bitにして実現することができる。
パケットエラー判定機構45aは入力パケットのIPヘッダチェックサムを判定すると同時に、そのパケットのデータ部に対するチェックサムを計算し、併合処理を行うパケットの群ごとに用意するチェックサム蓄積領域にチェックサムを蓄積(前の値に加算)していく。併合処理が終わった時点でこのチェックサムからTCPチェックサムを計算するための擬似ヘッダのチェックサムを加算することで、併合処理終了後にデータ全体にエラーがあるかを判定する。エラーの通知はIPヘッダチェックサムエラー、TCPチェックサムエラーの両方の場合に通知領域12cに設定される。
図17にて、受信側通信制御装置20Bとしてのネットワークカード20に備えられるデータタイムアウト検出・通知装置46の一例について説明する。このデータタイムアウト検出・通知装置46は、ネットワークコントローラ21の一部に実装することができる。
このデータタイムアウト検出・通知装置46は併合処理の開始時にタイマを起動して併合処理のタイムアウトが起きたら受信側ホスト10Bの通知領域12cにエラーを記録することで併合処理の失敗を通知する。図17はその実現例であり、タイムアウト検出機構46a、フラグ書込機構46b、タイマ用カウンタ46c等で構成されている。
このデータタイムアウト検出・通知装置46は上述のデータエラー検出・通知装置45と組み合わせることができ、通知領域12cを共通化することも可能である。
タイムアウトの検出は、同時並行的に行っている複数の併合処理に対してそれぞれ行う必要がある。このために、タイムアウト検出機構46aはその内部に併合処理ごとのタイマ用カウンタ46cをもつ。併合処理ごとにある複数のタイマ用カウンタ46cは、一つのタイマ用カウンタの出力によってカウントアップされる。併合処理開始時には併合処理ごとのタイマ用カウンタ46cの0bitをクリアしておき、この値がある値になったらタイムアウトのトリガを発生させる。例えば併合処理ごとのタイマ用カウンタ46cは2bitのカウンタにしておき、それらのタイマ用カウンタ46cは、もとになる1つのカウンタ(例えば10bit)が全て1になったらカウントアップするようにすることで、併合処理ごとのタイマ用カウンタ46cのビット数を減らすことができる。
図18を参照して、受信側ホスト10Bとしての情報処理装置10に備えられるデータ無効化機構47の一例について説明する。このデータ無効化機構47は、情報処理装置10におけるカーネル12aの一部として実装することができる。
データ無効化機構47は、プロトコル処理プログラム47a、プロトコル処理結果一時格納領域47b、プロトコル処理状態設定領域47c、からなる。
このデータ無効化機構47は、上述のデータエラー検出・通知装置45やデータタイムアウト検出・通知装置46によるエラーやタイムアウトした場合、受信側ホスト10Bにおいて、先行して行っていたプロトコル処理を無効にする機構である。
受信側ホスト10Bのプロトコル処理プログラム47aは、併合ヘッダ51−1に対するプロトコル処理を行う際、受信側通信制御装置20Bで併合処理が完了するまではプロトコル処理結果を、プロトコル処理結果一時格納領域47bに記憶し、受信側ホスト10Bがもつプロトコル処理の状態(プロトコル処理状態設定領域47c)に反映させない。
そして、プロトコル処理の終了段階で通知領域12cにエラーやタイムアウトが出ていないかチェックし、エラーやタイムアウトの場合にはその併合ヘッダ51−1に対するプロトコル処理にて行った処理結果を状態に反映させずに廃棄する。エラーがない場合には、プロトコル処理状態設定領域47cに反映させる。
以上説明したように、本発明の実施の形態によれば、送信側通信制御装置20AでIPパケット50をIPフラグメントパケット60に分割し、受信側通信制御装置20Bでは、IPフラグメントパケット60を併合してIPパケット50を復元する受信側併合処理による、送信側ホスト10Aおよび受信側ホスト10Bでのプロトコル処理の負荷軽減効果を損なわずに、受信側ホスト10Bおよび受信側通信制御装置20Bの側における併合処理による伝送遅延時間の増大を防止でき、スループットの向上と、伝送遅延時間の削減の両方で、高速な情報ネットワーク30の転送性能を有効に活用することができる。
換言すれば、情報ネットワーク30の情報伝送速度を有効に活用した送信側ホスト10Aおよび受信側ホスト10Bによる高速なコンピュータネットワークを実現できる。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
(付記1)
送信側の情報処理装置から出力される第1パケットを送信側の通信制御装置で複数の第2パケットに分割してネットワークに送信し、受信側の通信制御装置では複数の前記第2パケットを併合し前記第1パケットに復元して受信側の情報処理装置に送る通信システムの制御方法であって、
受信側の前記通信制御装置は、前記第2パケットの併合処理が終了する前に前記第1パケットを処理するための併合ヘッダを受信側の前記情報処理装置に送り、前記情報処理装置が併合ヘッダを解析して行うプロトコル処理と前記通信制御装置での前記第2パケットの併合処理とを並行して行うことを特徴とする通信システムの制御方法。
(付記2)
付記1記載の通信システムの制御方法において、送信側の前記通信制御装置では、前記第1パケットから生成した前記第2パケットのうち、前記併合ヘッダの生成に必要な情報を含む前記第2パケットを優先して前記ネットワークに送出することを特徴とする通信システムの制御方法。
(付記3)
付記1記載の通信システムの制御方法において、前記第1パケットはIPパケットであり、前記第2パケットは、前記IPパケットを断片化したIPフラグメントであることを特徴とする通信システムの制御方法。
(付記4)
情報処理装置とネットワークとの間に介在して情報の送受信を制御する通信制御装置であって、
送信側で第1パケットを断片化して生成された複数の第2パケットを受信して併合して受信側の前記情報処理装置に受け渡す機能と、
前記第2パケットから併合後の前記第1パケットを処理するための併合ヘッダを生成して、前記第2パケットの併合完了前に、受信側の前記情報処理装置に送るヘッダ解析機能と、
を含むことを特徴とする通信制御装置。
(付記5)
情報処理装置とネットワークとの間に介在し、前記情報処理装置から受け取った第1パケットを断片化し複数の第2パケットを生成して前記ネットワークに送出する機能を備えた通信制御装置であって、
前記第2パケットのうち、併合後の前記第1パケットを処理するための併合ヘッダの生成に必要な情報を含む前記第2パケットを優先して前記ネットワークに送出する機能を含むことを特徴とする通信制御装置。
(付記6)
情報処理装置とネットワークとの間に介在し、前記情報処理装置から受け取った第1パケットを断片化し複数の第2パケットを生成して前記ネットワークに送出する機能を備えた通信制御装置であって、
前記第2パケットのうち、併合後の前記第1パケットを処理するための併合ヘッダの生成に必要な情報を含む第3パケットを前記第2パケットとは別に前記ネットワークに送出する機能を含むことを特徴とする通信制御装置。
(付記7)
情報処理装置とネットワークとの間に介在して情報の送受信を制御するネットワークコントローラのプログラムであって、
送信側で第1パケットを断片化して生成された複数の第2パケットを受信して併合して受信側の前記情報処理装置に受け渡す機能と、
前記第2パケットから併合後の前記第1パケットを処理するための併合ヘッダを生成して、前記第2パケットの併合完了前に、受信側の前記情報処理装置に送るヘッダ解析機能と、
を前記ネットワークコントローラに実現させるプログラム。
(付記8)
情報処理装置と、前記情報処理装置とネットワークとの間に介在する通信制御装置とを含む情報処理システムの制御方法であって、
送信側において断片化されて前記ネットワークに送出された複数のパケットを前記通信制御装置において併合して一つのパケットにして前記情報処理装置に受け渡す際に、前記通信制御装置内での前記パケットの併合処理が終了する以前に併合後の前記パケットを処理するための併合ヘッダを前記情報処理装置に送り、前記情報処理装置が前記併合ヘッダを解析して行うプロトコル処理と通信制御装置における前記パケットの併合処理とを並行して行うことを特徴とする情報処理システムの制御方法。
(付記9)
付記11記載の情報処理システムの制御方法において、前記通信制御装置から前記情報処理装置に前記併合処理の完了を前記情報処理装置内のメモリに設けられた通知フィールドを介して伝達する機能を備え、前記情報処理装置は、前記併合ヘッダに基づくプロトコル処理を完了したあと、前記パケットのデータをアプリケーションに転送する前に該当する前記パケットの併合処理が完了したかどうかを前記通知フィールドを参照して判断し、完了していればデータ転送を開始することを特徴とする情報処理システムの制御方法。
(付記10)
付記11記載の情報処理システムの制御方法において、前記通信制御装置内に受信した前記パケットのエラー検出をするエラー検出装置を備え、併合するべきパケット内にエラーパケットが含まれる場合は併合失敗の通知を受信側情報処理装置に伝えることを特徴とする情報処理システムの制御方法。
(付記11)
付記11記載の情報処理システムの制御方法において、受信側の前記通信制御装置内にタイマを備え、一定時間後に併合するべきパケットが全て到着しなかった場合は併合失敗の通知を受信側の前記情報処理装置に伝えることを特徴とする情報処理システムの制御方法。
(付記12)
付記11記載の情報処理システムの制御方法において、受信側の前記情報処理装置が受信側の通信制御装置から前記パケットの併合失敗の通知を受け取った場合、既に受け取った前記併合ヘッダを廃棄し、前記通信制御装置との間のデータ転送の開始をやめ、必要があれば送達確認の送付をやめ、前記通信制御装置の側では併合するべきパケットデータを廃棄することで既にプロトコル処理と併合処理がスタートしている場合でも処理を中止することを特徴とする情報処理システムの制御方法。
(付記13)
送信側の情報処理装置のパケットを通信制御装置で分割してネットワークに送信し、受信側の通信制御装置でこれらを併合して一つのパケットにしてから受信側の情報処理装置に送る通信システムにおいて、前記通信制御装置内でのパケット併合処理が終了する以前に併合ヘッダを前記情報処理装置に送り、前記情報処理装置が併合ヘッダを解析して行うプロトコル処理と前記通信制御装置の内部での併合処理を並行して行うことを特徴とする通信システム。
本発明の一実施の形態である通信システムの構成の一例を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置および情報処理装置の構成の一例を示す概念図である。 本発明の一実施の形態である通信システムにおけるパケットのフラグメント化の一例を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置の内部構成の一例を示す概念図である。 本発明の一実施の形態である通信システムで取り扱う分割前のIPパケットの構成を示す概念図である。 本発明の一実施の形態である通信システムで取り扱う分割後の最後尾以外のIPパケットの構成を示す概念図である。 本発明の一実施の形態である通信システムで取り扱う分割後の最後尾のIPパケットの構成を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置における併合ヘッダの生成方法を示す概念図である。 本発明の一実施の形態である通信システムにおける送受信処理を示すフローチャートである。 (a)および(b)は、本発明の通信システムの制御方法と従来の方法の効果を比較対照して示す概念図である。 (a)および(b)は、本発明の通信システムの制御方法と従来の方法の効果を具体的な数値で比較対照して示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置に備えられる併合パケットヘッダ装置の構成の一例を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置に備えられる併合パケットヘッダ先行送信装置の構成の一例を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置に備えられる併合パケットヘッダ重複送信装置の構成の一例を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置に備えられるパケット併合完了通知装置の構成の一例を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置に備えられるデータエラー検出・通知装置の構成の一例を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置に備えられるデータタイムアウト検出・通知装置の構成の一例を示す概念図である。 本発明の一実施の形態である通信システムを構成する通信制御装置に備えられるデータ無効化機構の構成の一例を示す概念図である。
符号の説明
10 情報処理装置
10A 送信側ホスト
10B 受信側ホスト
11 CPU
12 主記憶
12a カーネル
12b ユーザプロセス
12c 通知領域
13 メモリバス
20 ネットワークカード
20A 送信側通信制御装置
20B 受信側通信制御装置
21 ネットワークコントローラ
21a ヘッダ解析機構
22 バッファメモリ
23 エンコーダ/デコーダ
24 トランシーバ
25 バスコントローラ
30 情報ネットワーク
41 併合パケットヘッダ生成装置
41a ヘッダチェックサム判定機構
41b フラグメントオフセット判定機構
41c フラグ判定機構
41d Total_Length演算反映機構
41e チェックサム演算反映機構
41f 上位層ヘッダ抽出機構
41g 併合ヘッダ構成用メモリ領域
42 併合パケットヘッダ先行送信装置
42a メモリ装置
42b 分割ヘッダ生成装置
42c パケット送信装置
43 併合パケットヘッダ重複送信装置
43a メモリ装置
43b 分割ヘッダ生成装置
43c パケット送信装置
44 パケット併合完了通知装置
44a 併合完了機構
44b フラグ書込機構
45 データエラー検出・通知装置
45a パケットエラー判定機構
45b フラグ書込機構
45c 併合処理用バッファ
46 データタイムアウト検出・通知装置
46a タイムアウト検出機構
46b フラグ書込機構
46c タイマ用カウンタ
47 データ無効化機構
47a プロトコル処理プログラム
47b プロトコル処理結果一時格納領域
47c プロトコル処理状態設定領域
50 IPパケット
51 IPヘッダ
51−1 併合ヘッダ
51a バージョン
51b ヘッダ長
51c サービスタイプ
51d パケット長
51e 識別子
51f フラグ
51g フラグメントオフセット
51h 生存時間
51i プロトコル
51j ヘッダチェックサム
51k 送信元IPアドレス
51m 宛先IPアドレス
52 TCPヘッダ
53 データ部
60 IPフラグメントパケット
61 IPフラグメントヘッダ
61a バージョン
61b ヘッダ長
61c サービスタイプ
61d パケット長
61e 識別子
61f フラグ
61g フラグメントオフセット
61h 生存時間
61i プロトコル
61j ヘッダチェックサム
61k 送信元IPアドレス
61m 宛先IPアドレス
70 冗長パケット
71 パケットヘッダ
72 データ

Claims (1)

  1. パケットが、最後尾パケット及び先頭パケット及び、該最後尾パケットと該先頭パケット以外のパケット(以下、残りのパケットという)に、分割されたパケットを受信する情報処理装置であって、
    最初に前記最後尾パケットを受信し、次に前記先頭パケットを受信し、受信した最後尾パケットと先頭パケットとから併合ヘッダを生成する併合ヘッダ生成手段と、
    生成された併合ヘッダに含まれる情報からプロトコル処理を行うプロトコル処理手段と、
    前記残りのパケットを受信し、受信した先頭パケットと残りのパケットと最後尾パケットとを併合する併合手段とを有し、
    前記プロトコル処理手段が行うプロトコル処理と、前記併合手段が行うパケットの併合処理とが、並行して行われる、
    ことを特徴とする情報処理装置。
JP2004182944A 2004-06-21 2004-06-21 通信システムの制御方法、通信制御装置、プログラム Expired - Fee Related JP4156568B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004182944A JP4156568B2 (ja) 2004-06-21 2004-06-21 通信システムの制御方法、通信制御装置、プログラム
US11/104,513 US7903689B2 (en) 2004-06-21 2005-04-13 Method and system for packet reassembly based on a reassembly header

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004182944A JP4156568B2 (ja) 2004-06-21 2004-06-21 通信システムの制御方法、通信制御装置、プログラム

Publications (2)

Publication Number Publication Date
JP2006005878A JP2006005878A (ja) 2006-01-05
JP4156568B2 true JP4156568B2 (ja) 2008-09-24

Family

ID=35480512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004182944A Expired - Fee Related JP4156568B2 (ja) 2004-06-21 2004-06-21 通信システムの制御方法、通信制御装置、プログラム

Country Status (2)

Country Link
US (1) US7903689B2 (ja)
JP (1) JP4156568B2 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080304481A1 (en) * 2005-07-12 2008-12-11 Paul Thomas Gurney System and Method of Offloading Protocol Functions
KR101221443B1 (ko) * 2006-03-28 2013-01-11 삼성전자주식회사 이동 통신 시스템에서 연결 상태에 있는 단말이 불연속적수신 동작을 수행하는 방법 및 장치
EP1841249B1 (en) 2006-03-28 2009-05-13 Samsung Electronics Co., Ltd. Method and apparatus for discontinuous reception of connected terminal in a mobile communication system
DE102006023084B4 (de) * 2006-05-16 2019-07-18 Leonhard Kurz Stiftung & Co. Kg Wertdokument mit Sicherheitselement
JP4724634B2 (ja) * 2006-09-29 2011-07-13 キヤノン株式会社 データ受信装置及びデータ受信方法
GB0621774D0 (en) * 2006-11-01 2006-12-13 Level 5 Networks Inc Driver level segmentation
US8145903B2 (en) * 2007-05-25 2012-03-27 Red Hat, Inc. Method and system for a kernel lock validator
JP5094482B2 (ja) * 2008-03-07 2012-12-12 キヤノン株式会社 処理装置及びその処理方法
US8351426B2 (en) * 2008-03-20 2013-01-08 International Business Machines Corporation Ethernet virtualization using assisted frame correction
JP4335954B1 (ja) * 2008-05-02 2009-09-30 株式会社エヌ・ティ・ティ・ドコモ 位置登録処理方法及び移動局
JP4922279B2 (ja) * 2008-10-30 2012-04-25 株式会社東芝 データ受信装置、データ受信方法、及びデータ受信プログラム
JP2009273139A (ja) * 2009-06-24 2009-11-19 Ntt Docomo Inc 位置登録処理方法及び移動局
KR101702562B1 (ko) * 2010-06-18 2017-02-03 삼성전자 주식회사 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치
US8571032B2 (en) * 2010-11-17 2013-10-29 Ixia Testing packet fragmentation
US9191313B2 (en) * 2012-10-15 2015-11-17 International Business Machines Corporation Communications over multiple protocol interfaces in a computing environment
US9300578B2 (en) 2013-02-21 2016-03-29 Applied Micro Circuits Corporation Large receive offload functionality for a system on chip
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US9473601B2 (en) 2014-06-19 2016-10-18 Cavium, Inc. Method of representing a generic format header using continuous bytes and an apparatus thereof
US9742694B2 (en) 2014-06-19 2017-08-22 Cavium, Inc. Method of dynamically renumbering ports and an apparatus thereof
US9635146B2 (en) 2014-06-19 2017-04-25 Cavium, Inc. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
US9531848B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of using generic modification instructions to enable flexible modifications of packets and an apparatus thereof
US9438703B2 (en) 2014-06-19 2016-09-06 Cavium, Inc. Method of forming a hash input from packet contents and an apparatus thereof
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US9961167B2 (en) 2014-06-19 2018-05-01 Cavium, Inc. Method of modifying packets to a generic format for enabling programmable modifications and an apparatus thereof
US9531849B2 (en) * 2014-06-19 2016-12-27 Cavium, Inc. Method of splitting a packet into individual layers for modification and intelligently stitching layers back together after modification and an apparatus thereof
US9628385B2 (en) 2014-06-19 2017-04-18 Cavium, Inc. Method of identifying internal destinations of networks packets and an apparatus thereof
US9516145B2 (en) 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
US9497294B2 (en) 2014-06-19 2016-11-15 Cavium, Inc. Method of using a unique packet identifier to identify structure of a packet and an apparatus thereof
US9606781B2 (en) 2014-11-14 2017-03-28 Cavium, Inc. Parser engine programming tool for programmable network devices
US9773354B2 (en) 2014-12-11 2017-09-26 Hyundai Motor Company Terminal mounted in vehicle, control method thereof, data center and control method thereof
JP6342351B2 (ja) * 2015-03-02 2018-06-13 東芝メモリ株式会社 ストレージシステム
US10404838B2 (en) * 2016-10-21 2019-09-03 ShieldX Networks, Inc. Systems and methods for selecting microservices to process protocol data streams
JP2018196024A (ja) * 2017-05-18 2018-12-06 キヤノン株式会社 通信装置及びその制御方法、並びに、情報処理装置
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
US20200106828A1 (en) * 2018-10-02 2020-04-02 Mellanox Technologies, Ltd. Parallel Computation Network Device
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
JP7387335B2 (ja) * 2019-08-28 2023-11-28 キヤノン株式会社 通信装置、制御方法およびプログラム
JP7423223B2 (ja) * 2019-08-30 2024-01-29 キヤノン株式会社 通信装置
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
US20220382556A1 (en) * 2021-05-26 2022-12-01 Rockwell Collins, Inc. Method and apparatus for a logic-based filter engine
US11997533B2 (en) * 2021-09-29 2024-05-28 Qualcomm Incorporated Uplink segmentation offload to modem
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03150943A (ja) 1989-11-08 1991-06-27 Oki Electric Ind Co Ltd 通信装置
US5260942A (en) 1992-03-06 1993-11-09 International Business Machines Corporation Method and apparatus for batching the receipt of data packets
JPH0998189A (ja) 1995-09-29 1997-04-08 Toshiba Corp ネットワーク中継装置
JPH10257070A (ja) 1997-03-06 1998-09-25 Nippon Telegr & Teleph Corp <Ntt> セル化パケットの中継方法および装置
US6341129B1 (en) * 1998-04-03 2002-01-22 Alteon Networks, Inc. TCP resegmentation
JP3490000B2 (ja) 1998-09-28 2004-01-26 株式会社日立製作所 サーバ・システムおよびクライアント・サーバ間の通信方法
JP2000341333A (ja) 1999-05-31 2000-12-08 Hitachi Ltd ネットワークパケット送受信方法およびネットワークアダプタ
US7050437B2 (en) * 2000-03-24 2006-05-23 International Business Machines Corporation Wire speed reassembly of data frames
US6891855B2 (en) * 2000-07-27 2005-05-10 Corrigent Systems, Ltd. Dynamic packet fragmentation
CN1338834A (zh) * 2000-08-19 2002-03-06 华为技术有限公司 基于网络协议的低速语音编码方法
US6963561B1 (en) * 2000-12-15 2005-11-08 Atrica Israel Ltd. Facility for transporting TDM streams over an asynchronous ethernet network using internet protocol
KR100663586B1 (ko) * 2002-08-28 2007-01-02 삼성전자주식회사 헤더 압축에 의한 패킷 데이터의 송신 방법 및 장치
US20050129020A1 (en) * 2003-12-11 2005-06-16 Stephen Doyle Method and system for providing data communications over a multi-link channel

Also Published As

Publication number Publication date
JP2006005878A (ja) 2006-01-05
US20050281287A1 (en) 2005-12-22
US7903689B2 (en) 2011-03-08

Similar Documents

Publication Publication Date Title
JP4156568B2 (ja) 通信システムの制御方法、通信制御装置、プログラム
US20240106736A1 (en) System and method for facilitating efficient packet forwarding using a message state table in a network interface controller (nic)
US11063884B2 (en) Ethernet enhancements
US8244890B2 (en) System and method for handling transport protocol segments
US7295555B2 (en) System and method for identifying upper layer protocol message boundaries
US9843525B2 (en) Apparatus and method
JP5661868B2 (ja) 少なくとも1つのtcpデータセグメントストリームをインラインコンテンツ解析にサブミットするための方法及びデバイス、その方法を実施するための1つ又は複数の命令シーケンスを保持するコンピュータ可読媒体、並びにコンピュータプログラム製品
CN102118434A (zh) 数据包传输方法和设备
US20180159659A1 (en) Minimum latency link layer metaframing and error correction
US10673581B2 (en) Low latency packet recovery
US7773620B2 (en) Method, system, and program for overrun identification
JP2004171206A (ja) ストレージシステム
JP5854044B2 (ja) 通信装置、パケット再送制御方法、パケット再送制御プログラム
US8185795B1 (en) Side channel for forward error correction used with long-haul IP links
US9559857B2 (en) Preprocessing unit for network data
US20240250822A1 (en) Secure connection initiation to prevent replay attacks in an encrypted network
WO2014029958A1 (en) Acknowledgement system and method
US9036656B1 (en) Lightweight reliability protocol over fibre-channel to provide for load-balancing and resiliency
EP1460818A1 (en) System and method for handling transport protocol segments
WO2024022243A1 (zh) 数据传输方法、网络设备、计算机设备及存储介质
US10178440B2 (en) Communication system, transmission apparatus, reception apparatus, communication apparatus, communication method, and program
JP5170847B2 (ja) 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム
CN118381620A (zh) 用于防止加密网络中的重放攻击的安全连接启动
Dunn 395T Project Proposal-TCP Formalization in ACL2
Akzeybek et al. Concurrent multi-path data transfer using modified SCTP

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080409

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

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

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees