JP2008301210A - パケット送信装置およびパケット送信方法 - Google Patents

パケット送信装置およびパケット送信方法 Download PDF

Info

Publication number
JP2008301210A
JP2008301210A JP2007145432A JP2007145432A JP2008301210A JP 2008301210 A JP2008301210 A JP 2008301210A JP 2007145432 A JP2007145432 A JP 2007145432A JP 2007145432 A JP2007145432 A JP 2007145432A JP 2008301210 A JP2008301210 A JP 2008301210A
Authority
JP
Japan
Prior art keywords
checksum
data
packet
storage area
fragment
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.)
Pending
Application number
JP2007145432A
Other languages
English (en)
Inventor
Hiroshi Isono
浩志 磯野
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2007145432A priority Critical patent/JP2008301210A/ja
Priority to US12/153,974 priority patent/US20080301537A1/en
Publication of JP2008301210A publication Critical patent/JP2008301210A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】送信動作完了までの処理時間を短縮する。
【解決手段】メモリ11は、送信対象のパケットのデータを記憶する。チェックサム算出部12は、チェックサム格納領域を含むフラグメントを除いた他の複数のフラグメントにおけるそれぞれのデータをメモリ11から読み出して順次累積的に加算してチェックサム値を算出し、さらにチェックサム格納領域を含むフラグメントのデータをメモリ11から読み出してチェックサム値に加算して得られた最終チェックサム値を算出する。送信部13は、チェックサム算出部12によってチェックサム値が算出された、メモリ11から読み出されてなるフラグメントを順次送信し、最後に最終チェックサム値をチェックサム格納領域に格納して得られるチェックサム格納領域を含む、メモリ11から読み出されてなるフラグメントの送信を行う。
【選択図】図1

Description

本発明は、パケット送信装置およびパケット送信方法に係り、特に、ヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割して送信する技術に係る。
従来、ネットワーク・データを送受信する際には、データ誤りが発生したことを検出するために、誤り検出符号をデータに付加している。この代表的なプロトコルとして、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)といったプロトコルがIETF(The Internet Engineering Task Force、http://www.ietf.org/)において、RFC793、RFC768として規格化されている。これらのパケット形式は、チェックサム・フィールドを持っており、送信側が付与したチェックサムを受信側において確認することで誤り検出を行う。
図6は、TCPにおけるパケットフォーマットを表す図であり、図7は、UDPにおけるパケットフォーマットを表す図である。図6、図7で示すように、両プロトコルのフォーマットは、通信で必要とされる各種の制御情報をヘッダ内に格納し、ヘッダに後続してデータが存在する書式となっている。ヘッダ内に格納される制御情報のひとつに16ビットのチェックサム・フィールドがある。このチェックサム・フィールドは、初期値として0が格納され、送信時に疑似ヘッダと呼ばれるデータを含めてパケットの全てに渡り加算によって求める値である。計算上に生じる桁上げ値は、最下位へ回され、巡回させて必ず16ビットとなるように計算して求める。
以上のようなプロトコルが規格化された時代的背景としては、ミニコンでのソフトウェアによって処理することを前提として設計されており、誤り検出符号の一種であるチェックサム計算もソフトウェアによって処理していた。プロトコルが考案された当時は、ネットワークの通信速度が遅く、ソフトウェア処理でも充分であったと考えられる。
しかし、近年、光通信技術等の進展によってネットワークの高速化が進み、ソフトウェアによる処理だけでは、処理が間に合わなくなり、ハードウェアでの処理が必要となってきた。これらのプロトコルで用いられるチェックサム計算は、パケット内の全てのデータを計算対象とするために高速通信処理において大きな計算負荷となっている。そこでチェックサムの計算もハードウェアによって処理する必要性が生じてきた。
ところで、IETFでは、幾つかインターネットでのチェックサム計算について述べている。唯一ハードウェアでの計算に関し、非特許文献1において開示され、具体的なチェックサム回路がPLDを用いて紹介されている。ここではチェックサム計算をハードウェアで高速計算するため、DMA(Direct Memory Access)内に組み込むハードウェアとしてパイプライン並列処理で高速に計算している。
しかし、非特許文献1は、TCP、UDPパケットに対する適用を前提としてはいるものの、ヘッダの格納領域への書き込みや送信動作までを含む具体的な構成までは示していない。実際の動作では、パケット内のヘッダ部にチェックサムの格納領域をもつため、一般にDMA転送と送信動作の兼用はうまく行かない。そこで、一旦全てのデータをDMA転送によってメモリから読み出してチェックサム計算を行い、ヘッダ領域にあるチェックサム格納領域に格納した上で、送信のために再度メモリに格納しているパケット・データを読み出すことになる。
次に、従来のパケット送信装置の構成について述べる。図8は、従来のパケット送信装置におけるメモリアクセス動作を模式的に示す図である。パケット送信装置は、パケットを格納するメモリ101と、パケット・データを読み出す位置を示すポインタ105と、メモリ101から読み出されたデータのチェックサムを計算するチェックサム算出部102から構成される。また、チェックサム算出部102は、チェックサム計算回路106と、計算結果保持回路107から構成される。図8では、1つのパケットを3つのフラグメントに分割する例を示している。先頭のフラグメントは、パケット・ヘッダのデータ101bと先頭のデータ(先頭フラグメント・パケット・データ)101cから構成される。2番目のフラグメントは、先頭データの続きとなるデータ101dから構成される。3番目のフラグメントは、最終フラグメント101eで構成される。さらに、メモリ101上において、パケット・ヘッダのデータ101bの前には、擬似ヘッダのデータ101aが記録される。
次に、パケット送信の動作について説明する。図8の左側にメモリ101を指すポインタ105の移動順序を示す。ポインタ105は、データ101a、データ101b、データ101c、データ101d、データ101e、データ101b、データ101c、データ101d、データ101eの順にそれぞれのデータの先頭から末尾に移動するように制御される。ただし、データ101eとデータ101bとのアクセス間には、データ101bにおけるチェックサム格納領域(チェックサム・フィールド)への書き込みのためのアクセスが存在する。
図9は、従来のパケット送信装置の動作を示すフローチャートである。なお、図8に示す丸で囲まれた1〜8と、図9のフローチャートに付した丸で囲まれた1〜8とは、同一の符号が対応するものとする。
図9のステップS100において、パケットの送信を開始する。
ステップS101において、疑似ヘッダのデータ101aの生成とメモリ101からの読み出しを行い、読み出された疑似ヘッダのデータ101aは、チェックサム計算するためチェックサム計算回路106へ送られる。なお、疑似ヘッダのデータ101aは、チェックサム計算回路106で使用するのみであり、送信データとしては扱わない。
次に、送信すべきヘッダを含むパケットのデータ101b、101c、101d、101eを順次読み出していき、読み出したデータは、チェックサム計算回路106へ送られてチェックサム計算に用いられる。さらに、チェックサム最終結果を計算結果保持回路107に保持する。
ステップS103において、チェックサム結果を格納するヘッダ位置(チェックサム・フィールド)へポインタ105を移動させて、チェックサム計算結果を格納する。
ステップS104において、チェックサム計算結果が格納されたヘッダ領域を含むフラグメントを送信するため、ポインタ105をパケットの先頭位置(データ101bの先頭位置)まで移動する。
ステップS105において、ポインタ105をインクリメントしながらデータ101b、101c、101d、101eを順次メモリ101から読み出して送信する。
最終フラグメントを読み出して送信し終えるまで、ステップS106、S107を繰り返す。
ステップS108において、送信が完了した際に、次に送信パケットが控えている場合は、次のパケット格納領域へポインタ105を移動させる。次にパケット送信がなければ、一連の処理を終了する。
パケット送信装置は、以上のように動作してヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割して送信する。
なお、関連する技術として、特許文献1には、データ配送の都度、パケット転送単位が相違し得るような場合にもパケット生成時のチェックサムの計算の高速化およびパケット生成の高速化の技術が記載されている。
J.Touch, B.Parham,"Implementing the Internet Checksum in Hardware",IETF,rfc1936,April 1996 特開2000-253054号公報
図6、図7に示すように、TCP、UDPパケットのヘッダ部にチェックサムの格納領域があるため、送信順序と同じようにパケットの先頭から末尾データまでを扱う場合、先頭データから最終データまでのチェックサム計算を完了させる。その後、パケットの先頭にあるヘッダ領域まで一旦ポインタを戻して、計算したチェックサムを書き込んでいた。したがって、全てのデータに対してチェックサムで1回と、送信で1回の計2回のメモリアクセスを要することとなり、処理に時間が掛かっていた。また、処理が完了するまで、1つのパケットに対応するデータを保持し続けなければならないため、メモリ使用効率も悪く、多くのメモリ空き空間を確保する必要がある。
本発明の1つのアスペクトに係るパケット送信装置は、ヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割して送信するパケット送信装置であって、パケットのデータを記憶する記憶部と、チェックサム格納領域を含むフラグメントを除いた他の複数のフラグメントにおけるそれぞれのデータを記憶部から読み出して順次累積的に加算してチェックサム値を算出し、さらにチェックサム格納領域を含むフラグメントのデータを記憶部から読み出してチェックサム値に加算して得られた最終チェックサム値を算出するチェックサム算出部と、チェックサム算出部によってチェックサム値が算出された、記憶部から読み出されてなるフラグメントを順次送信し、最後に最終チェックサム値をチェックサム格納領域に格納して得られるチェックサム格納領域を含む、記憶部から読み出されてなるフラグメントの送信を行う送信部と、パケットのデータを記憶部から読み出してチェックサム算出部および送信部に与えるように制御する制御部と、を備える。
本発明の他のアスペクトに係るパケット送信方法は、ヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割して送信するパケット送信方法であって、チェックサム格納領域を含むフラグメントを除いた他の複数のフラグメントにおけるそれぞれのデータを順次累積的に加算してチェックサム値を算出すると共にチェックサム値が算出されたフラグメントを順次送信するステップと、最後にチェックサム格納領域を含むフラグメントのデータをチェックサム値に加算して得られた最終チェックサム値をチェックサム格納領域に格納して、チェックサム格納領域を含むフラグメントの送信を行うステップと、を含む。
本発明のさらに他のアスペクトに係るパケットの送信方法は、パケットのヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割しパケットの送受信を行うネットワークプロトコルによるパケットの送信方法であって、チェックサム格納領域を含むフラグメントを除いた他の複数のフラグメント各々のデータを順次累積的に加算してチェックサム値を算出し、チェックサムが算出されたフラグメントを順次送信し、最後にチェックサム格納領域を含むフラグメントのデータをチェックサム値に加算して得られた最終チェックサム値をチェックサム格納領域に格納して、チェックサム格納領域を含むフラグメントの送信を行う。
本発明によれば、パケットを複数のフラグメントに分割して送信する際に、2番目のフラグメントから最終のフラグメントに対して、メモリからの1度のデータ読出しでチェックサム計算を行いながら送信する。したがって、送信動作完了までの処理時間を短縮することができる。また、メモリの空き空間をより早く作ることができるため、システムとして、多くのメモリ空き空間を確保することができる。
図1は、本発明の実施形態に係るパケット送信装置の構成を示すブロック図である。図1において、パケット送信装置10は、ヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割し、ネットワーク30を介して受信装置20に送信する。パケット送信装置10は、メモリ11、チェックサム算出部12、送信部13、制御部14、接続線18を備える。
ここで、接続線18は、メモリ11、チェックサム算出部12、送信部13、制御部14をそれぞれ接続し、それぞれの間でデータや制御信号のやり取りを行う。また、接続線18は、バスのような構成としてもよい。このようなデータや制御信号のやり取りによって以下で説明するような処理を実行する。
なお、チェックサム算出部12や制御部14は、ステートマシン、シーケンサなどから構成される専用制御回路で構成してもよい。あるいは、プロセッサ等を利用し、プロセッサがプログラム(ソフトウェア)を実行することで、メモリ11とのデータの読み書き、チェックサムの算出、ポインタの制御などを実現するようにしてもよい。
メモリ11は、予め送信の対象となるパケットのデータを記憶しておく。
チェックサム算出部12は、チェックサム格納領域を含むフラグメントを除いた他の複数のフラグメントにおけるそれぞれのデータをメモリ11から読み出して順次累積的に加算してチェックサム値を算出する。さらに、チェックサム格納領域を含むフラグメントのデータをメモリ11から読み出してチェックサム値に加算して得られた最終チェックサム値を算出する。
送信部13は、チェックサム算出部12によってチェックサム値が算出された、メモリ11から読み出されてなるフラグメントを順次送信する。そして、最後に最終チェックサム値をチェックサム格納領域に格納して得られるチェックサム格納領域を含む、メモリ11から読み出されてなるフラグメントの送信を行う。
制御部14は、メモリ11におけるアクセス位置(アドレス)を表すポインタ15を備え、このポインタ15の内容を更新することでチェックサム算出部12を制御する。すなわち、ポインタ15によって、パケットのデータをメモリ11から読み出してチェックサム算出部12および送信部13に与えるように制御する。この場合、制御部14は、送信部13がフラグメントを順次送信した後に、擬似ヘッダを生成してメモリ11に書き込み、擬似ヘッダをチェックサム値の累積的加算の対象とするようにチェックサム算出部12を制御するようにしてもよい。また、制御部14は、予め擬似ヘッダを生成してメモリ11に書き込んでおき、擬似ヘッダをチェックサム値の累積的加算の初期値とするようにチェックサム算出部12を制御するようにしてもよい。
ここで、チェックサム算出部12におけるチェックサム計算は、単純な加算計算であるため、パケット内のどこから計算しても、最終的に全ての値を加算すれば同じ値が求められる。パケット送信装置10は、大きなデータ量のパケットについては、複数のフラグメントに分割してパケットを送信する。その際に、チェックサム算出部12によって2番目のフラグメント・パケットからチェックサムの計算を行い、送信部13は、計算が終了したフラグメントから順次送信し、最後に先頭フラグメントのチェックサムを計算して送信処理するように制御して、パケット・データを格納したメモリから1回の読み出しで、チェックサム計算処理と送信処理とを実行する。このような処理によって処理時間を短縮すると共に、使用したメモリ空間を開放して他のパケット処理のためにメモリ使用を可能としメモリ使用効率を向上させることができる。
なお、フラグメント化されたパケットは、途中経路がパケット単位で判断され転送されるため、受信装置20に到達するときに、必ずしも順序が保証されるわけではない。しかし、受信装置20でフラグメント化されたパケットを組み立てなおすことは、通常の動作として行っているため、順序を変えて(先頭フラグメントのパケットを最後に)送信しても問題とはならない。受信装置20のフラグメント到着順序は、本来ネットワーク30で複数経路からの到着することを想定しているため、受信装置20が正しい順序へ組み立てる機能を持っていることを利用している。以下、実施例に即し、詳しく説明する。
図2は、本発明の第1の実施例に係るパケット送信装置におけるメモリアクセス動作を模式的に示す図である。チェックサム算出部12は、メモリ11から読み出されたデータのチェックサムを計算するチェックサム計算回路16と、チェックサム計算の結果を保持する計算結果保持回路17から構成される。
図2では、1つのパケットが3つのフラグメントに分割している例を示している。先頭のフラグメントは、ヘッダのデータ11bとこれに続く先頭のデータ11cから構成されている。2番目もフラグメントは、先頭のデータ11cに続くデータ11dから構成されている。3番目のフラグメントは、最終フラグメントのデータ11eで構成されている。ここでは3つのフラグメントに分割されている例を示すが、もちろんパケット長に応じて分割数は異なっていてもよい。
次に、パケット送信装置の動作について説明する。図2の左側にメモリ11を指すポインタ15の移動順序を示す。ポインタ15は、データ11d、データ11e、擬似ヘッダのデータ11a、データ11b、データ11c、データ11b、データ11cの順にそれぞれのデータの先頭から末尾に移動するように制御される。ただし、データ11cとデータ11bとのアクセス間には、データ11bにおけるチェックサム格納領域(チェックサム・フィールド)への書き込みのためのアクセスが存在する。
図3は、本発明の第1の実施例に係るパケット送信装置の動作を示すフローチャートである。なお、図2に示す丸で囲まれた1〜11と図3のフローチャート中の丸で囲まれた1〜11とは、同一の符号が対応する。
ステップS10において、パケットの送信を開始する。
ステップS11において、送信対象となるパケットがフラグメント・パケットであるか否か、すなわちフラグメントとして分割されるパケットか否かを判断する。もし、フラグメントとして分割されないパケットであるならば、ステップS15へ進む。フラグメント・パケットとして分割される場合は、ステップS12へ進む。
ステップS12において、ポインタ15を2番目のフラグメント・パケット・データ位置(データ11dの位置)へ移動して、2番目のフラグメント・パケット・データを読み出す。そして、読み出したデータをチェックサム計算回路16へ渡し、チェックサム計算を行う。また、チェックサム計算と同時に読み出したデータを、送信データとして送信する。
ステップS13において、最終フラグメント・パケットか否かを判断する。もし、最終フラグメントでなければ、ステップS14において、次のフラグメント・パケット・データを読み出す。そして、読み出したデータをチェックサム計算回路16へ渡すことで、チェックサム計算を行う。また、チェックサム計算と同時に読み出したデータを、送信データとして送信する。最終フラグメントの処理が終わるまで、ステップS13とステップS14を繰り返す。
最終フラグメントの処理を終えると、ステップS15において、ポインタ15をメモリ11の疑似ヘッダ位置(データ11aの位置)へ移動する。
ステップS16において、メモリ11から読み出しを行い、読み出された疑似ヘッダのデータ11aは、チェックサム計算するためチェックサム計算回路16へ送られる。なお、疑似ヘッダのデータ11aは、チェックサム計算回路16で使用するのみであって、送信データとしては扱わない。
ステップS17において、送信すべきヘッダを含む先頭フラグメント・パケットのデータ11b、11cを読み出し、読み出したデータをチェックサム計算回路16へ送り、チェックサム計算に用いる。チェックサム最終結果を計算結果保持回路17へ保持する。
ステップS18において、チェックサム結果を格納するヘッダ位置(チェックサム・フィールド)へポインタ15を移動して、チェックサム計算結果をヘッダ領域へ格納する。
ステップS19において、チェックサム計算結果が格納されたヘッダ領域を含むフラグメントを送信するため、ポインタ15をパケットの先頭位置まで移動する。
ステップS20において、ポインタ15をインクリメントしながらパケット・データ(データ11b、11c)を順次メモリ11から読み出して送信する。送信し終えたら、ステップS21において、次に送信パケットが控えている場合は、次のパケット格納領域へポインタ15を移動する。次にパケット送信がなければ、一連の処理を終了する。
以上のように動作するパケット送信装置は、パケット・データのチェックサム計算を2番目のフラグメントから行う。この時、2番目から最終までのフラグメントのデータをメモリ11から1度読出すことでチェックサム計算と送信とを行って、2回のメモリアクセスを回避する。また、チェックサム計算後のデータを速やかに送信することができるため、データを保持するメモリ11を送信と共に空けることができる。したがって、メモリ11からのデータ読出し回数を減らし、時間と記憶領域の効率化を図ることができる。
図4は、本発明の第2の実施例に係るパケット送信装置におけるメモリアクセス動作を模式的に示す図である。パケット送信装置の構成は、図1と同じであって、その説明を省略する。また、図4において、メモリ11内のデータの配置は、図2と同じであり、その説明を省略する。第2の実施例に係るパケット送信装置では、メモリ11に対するアクセス順序、具体的には疑似ヘッダのデータ11aへのアクセス順序が第1の実施例の場合と異なる。
図4の左側にメモリ11を指すポインタ15の移動順序を示す。ポインタ15は、擬似ヘッダのデータ11a、データ11d、データ11e、データ11b、データ11c、データ11b、データ11cの順にそれぞれのデータの先頭から末尾に移動するように制御される。すなわち、一連のパケット・データへのアクセスに先立って擬似ヘッダのデータ11aがアクセスされる。ただし、データ11cとデータ11bとのアクセス間には、データ11bにおけるチェックサム格納領域(チェックサム・フィールド)への書き込みのためのアクセスが存在する。
次に、パケット送信装置の動作について説明する。図5は、本発明の第2の実施例に係るパケット送信装置の動作を示すフローチャートを示す。なお、図4に示す丸で囲まれた1〜12と図5のフローチャートに付した丸で囲まれた1〜12とは、同一の符号が対応する。
ステップS30において、パケットの送信を開始する。
ステップS31において、ポインタ15をメモリ11の疑似ヘッダ位置へ移動させる。擬似ヘッダを生成し読み出して、チェックサム計算回路16へデータを渡す。メモリ11から読み出された疑似ヘッダのデータ11aは、チェックサムを計算するためにチェックサム計算回路16へ送られる。疑似ヘッダ・データは、チェックサム計算回路16で使用するのみであり、送信データとしては扱わない。
ステップS32において、送信対象となるパケットがフラグメント・パケットであるか否か、すなわちフラグメントとして分割されるパケットか否かを判断する。もし、フラグメントとして分割されないパケットであるならば、ステップS37へ進む。フラグメント・パケットとして分割される場合は、ステップS33へ進む。
ステップS33において、ポインタ15を2番目のフラグメント・パケット・データ位置へ移動する。
ステップS34において、2番目のフラグメント・パケット・データを読み出す。そして、読み出したデータをチェックサム計算回路16へ渡すことで、チェックサム計算を行う。また、チェックサム計算と同時に読み出したデータを、送信データとして送信する。
ステップS35において、最終フラグメント・パケットか否かを判断する。もし、最終フラグメントでなければ、ステップS36において、次のフラグメント・パケット・データを読み出す。そして、読み出したデータをチェックサム計算回路16へ渡すことで、チェックサム計算を行う。また、チェックサム計算と同時に読み出したデータを送信データとして送信する。最終フラグメントの処理が終わるまで、ステップS35とステップS36を繰り返す。
最終フラグメントの処理を終えると、ステップS37において、ポインタ15を先頭フラグメント・パケットの位置へ移動する。
ステップS38において、送信すべきヘッダを含む先頭フラグメント・パケットのデータ11b、11cを読み出し、読み出したデータをチェックサム計算回路16へ送りチェックサム計算に用いる。チェックサム最終結果を計算結果保持回路17へ保持する。
ステップS39において、チェックサム結果を格納するヘッダ位置へポインタ15を移動して、チェックサム計算結果をヘッダ領域のチェックサム格納領域(チェックサム・フィールド)へ格納する。
ステップS40において、チェックサム計算結果が格納されたヘッダ領域を含むフラグメントを送信するため、ポインタ15をパケットの先頭位置まで移動する。
ステップS41において、ポインタ15をインクリメントしながらパケット・データ(データ11b、11c)を順次メモリ11から読み出して送信する。送信し終えたら、ステップS42において、次に送信パケットが控えている場合は、次のパケット格納領域へポインタ15を移動する。次にパケット送信がなければ、一連の処理を終了する。
以上のように動作するパケット送信装置は、2番目のフラグメント・パケットのチェックサム計算を行う前に、疑似ヘッダの生成と読み出しを行う。このように、2番目のフラグメント・パケットからチェックサム計算を求めることは変えずに、パケット・データの計算より前に疑似ヘッダの計算を行っても構わない。
以上本発明を上記実施例に即して説明したが、本発明は、上記実施例にのみ限定されるものではなく、本願特許請求の範囲の各請求項の発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
本発明の実施形態に係るパケット送信装置の構成を示すブロック図である。 本発明の第1の実施例に係るパケット送信装置におけるメモリアクセス動作を模式的に示す図である。 本発明の第1の実施例に係るパケット送信装置の動作を示すフローチャートである。 本発明の第2の実施例に係るパケット送信装置におけるメモリアクセス動作を模式的に示す図である。 本発明の第2の実施例に係るパケット送信装置の動作を示すフローチャートである。 TCPパケットのフォーマットを示す図である。 UDPパケットのフォーマットを示す図である。 従来のパケット送信装置におけるメモリアクセス動作を模式的に示す図である。 従来のパケット送信装置の動作を示すフローチャートである。
符号の説明
10 パケット送信装置
11 メモリ
11a、11b、11c、11d、11e データ
12 チェックサム算出部
13 送信部
14 制御部
15 ポインタ
16 チェックサム計算回路
17 計算結果保持回路
18 接続線
20 受信装置
30 ネットワーク

Claims (8)

  1. ヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割して送信するパケット送信装置であって、
    前記パケットのデータを記憶する記憶部と、
    前記チェックサム格納領域を含むフラグメントを除いた他の複数のフラグメントにおけるそれぞれのデータを前記記憶部から読み出して順次累積的に加算してチェックサム値を算出し、さらに前記チェックサム格納領域を含むフラグメントのデータを前記記憶部から読み出して前記チェックサム値に加算して得られた最終チェックサム値を算出するチェックサム算出部と、
    前記チェックサム算出部によってチェックサム値が算出された、前記記憶部から読み出されてなるフラグメントを順次送信し、最後に前記最終チェックサム値を前記チェックサム格納領域に格納して得られる前記チェックサム格納領域を含む、前記記憶部から読み出されてなるフラグメントの送信を行う送信部と、
    前記パケットのデータを前記記憶部から読み出して前記チェックサム算出部および前記送信部に与えるように制御する制御部と、
    を備えることを特徴とするパケット送信装置。
  2. 前記制御部は、前記送信部がフラグメントを順次送信した後に、擬似ヘッダを生成して前記記憶部に書き込み、前記擬似ヘッダを前記チェックサム値の累積加算の対象とするように前記チェックサム算出部を制御することを特徴とする請求項1記載のパケット送信装置。
  3. 前記制御部は、予め擬似ヘッダを生成して前記記憶部に書き込んでおき、前記擬似ヘッダを前記チェックサム値の累積加算の初期値とするように前記チェックサム算出部を制御することを特徴とする請求項1記載のパケット送信装置。
  4. 前記制御部は、前記記憶部におけるアクセス位置を表すポインタを備え、該ポインタを更新して前記チェックサム算出部の演算対象となるデータおよび前記送信部の送信対象となるデータへのアクセスを制御することを特徴とする請求項2または3記載のパケット送信装置。
  5. ヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割して送信するパケット送信方法であって、
    前記チェックサム格納領域を含むフラグメントを除いた他の複数のフラグメントにおけるそれぞれのデータを順次累積的に加算してチェックサム値を算出すると共に前記チェックサム値が算出されたフラグメントを順次送信するステップと、
    最後に前記チェックサム格納領域を含むフラグメントのデータを前記チェックサム値に加算して得られた最終チェックサム値を前記チェックサム格納領域に格納して、前記チェックサム格納領域を含むフラグメントの送信を行うステップと、
    を含むことを特徴とするパケット送信方法。
  6. 前記フラグメントを順次送信するステップと前記チェックサム格納領域を含むフラグメントの送信を行うステップとの間に、擬似ヘッダを生成するステップをさらに含み、
    前記擬似ヘッダを前記チェックサム値の累積加算の対象とすることを特徴とする請求項5記載のパケット送信方法。
  7. 前記他の複数のフラグメントにおけるそれぞれのデータを順次累積的に加算する前に、予め擬似ヘッダを生成するステップをさらに含み、
    前記擬似ヘッダを前記チェックサム値の累積加算の初期値とすることを特徴とする請求項5記載のパケット送信方法。
  8. パケットのヘッダにチェックサム格納領域を有するパケットを複数のフラグメントに分割し前記パケットの送受信を行うネットワークプロトコルによるパケットの送信方法であって、
    前記チェックサム格納領域を含むフラグメントを除いた他の前記複数のフラグメント各々のデータを順次累積的に加算してチェックサム値を算出し、チェックサムが算出された前記フラグメントを順次送信し、
    最後にチェックサム格納領域を含む前記フラグメントのデータを前記チェックサム値に加算して得られた最終チェックサム値を前記チェックサム格納領域に格納して、前記チェックサム格納領域を含むフラグメントの送信を行うことを特徴とするパケットの送信方法。
JP2007145432A 2007-05-31 2007-05-31 パケット送信装置およびパケット送信方法 Pending JP2008301210A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007145432A JP2008301210A (ja) 2007-05-31 2007-05-31 パケット送信装置およびパケット送信方法
US12/153,974 US20080301537A1 (en) 2007-05-31 2008-05-28 Packet transmission device and packet transmission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007145432A JP2008301210A (ja) 2007-05-31 2007-05-31 パケット送信装置およびパケット送信方法

Publications (1)

Publication Number Publication Date
JP2008301210A true JP2008301210A (ja) 2008-12-11

Family

ID=40089663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007145432A Pending JP2008301210A (ja) 2007-05-31 2007-05-31 パケット送信装置およびパケット送信方法

Country Status (2)

Country Link
US (1) US20080301537A1 (ja)
JP (1) JP2008301210A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865494A (zh) * 2020-06-23 2020-10-30 郑州信大捷安信息技术股份有限公司 一种基于校验和的数据自检装置及方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8887022B2 (en) * 2011-03-04 2014-11-11 Infineon Technologies Austria Ag Reliable data transmission with reduced bit error rate
US9577955B2 (en) * 2013-03-12 2017-02-21 Forrest Lawrence Pierson Indefinitely expandable high-capacity data switch
KR102115914B1 (ko) * 2013-09-17 2020-05-27 삼성전자주식회사 익명 메시지 전송 방법 및 이를 적용한 메시지 전송 시스템
US10171430B2 (en) 2015-07-27 2019-01-01 Forrest L. Pierson Making a secure connection over insecure lines more secure
US11675587B2 (en) 2015-12-03 2023-06-13 Forrest L. Pierson Enhanced protection of processors from a buffer overflow attack
US10564969B2 (en) 2015-12-03 2020-02-18 Forrest L. Pierson Enhanced protection of processors from a buffer overflow attack

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006081033A (ja) * 2004-09-10 2006-03-23 Canon Inc 通信制御装置及び方法
JP2006279188A (ja) * 2005-03-28 2006-10-12 Nec Corp 優先制御を行う送信制御装置、通信制御装置、通信システム、通信ネットワーク、及び送信方法
JP2007129452A (ja) * 2005-11-02 2007-05-24 Canon Inc 通信装置及び通信方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412092B1 (en) * 1999-04-14 2002-06-25 Hewlett-Packard Company Method and apparatus to reduce the cost of preparing the checksum for out bound data in network communication protocols by caching
US6988235B2 (en) * 2000-03-02 2006-01-17 Agere Systems Inc. Checksum engine and a method of operation thereof
US7236501B1 (en) * 2002-03-22 2007-06-26 Juniper Networks, Inc. Systems and methods for handling packet fragmentation
US7283528B1 (en) * 2002-03-22 2007-10-16 Raymond Marcelino Manese Lim On the fly header checksum processing using dedicated logic
US7080308B2 (en) * 2002-03-22 2006-07-18 Intel Corporation Method and apparatus to perform error control
US7415652B1 (en) * 2002-08-19 2008-08-19 Marvell International Ltd. Out of order checksum calculation for fragmented packets
US7594159B2 (en) * 2004-10-26 2009-09-22 Spirent Communications Inc. Signature field in a latency measurement frame

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006081033A (ja) * 2004-09-10 2006-03-23 Canon Inc 通信制御装置及び方法
JP2006279188A (ja) * 2005-03-28 2006-10-12 Nec Corp 優先制御を行う送信制御装置、通信制御装置、通信システム、通信ネットワーク、及び送信方法
JP2007129452A (ja) * 2005-11-02 2007-05-24 Canon Inc 通信装置及び通信方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865494A (zh) * 2020-06-23 2020-10-30 郑州信大捷安信息技术股份有限公司 一种基于校验和的数据自检装置及方法
CN111865494B (zh) * 2020-06-23 2022-02-18 郑州信大捷安信息技术股份有限公司 一种基于校验和的数据自检装置及方法

Also Published As

Publication number Publication date
US20080301537A1 (en) 2008-12-04

Similar Documents

Publication Publication Date Title
JP2008301210A (ja) パケット送信装置およびパケット送信方法
CN108462642B (zh) 基于fpga的udp/ip硬件协议栈及实现方法
US8161364B1 (en) Out of order checksum calculation for fragmented packets
EP3542276B1 (en) Flow control in remote direct memory access data communications with mirroring of ring buffers
EP4220415A2 (en) Method and apparatus for compressing addresses
US11966345B2 (en) Network credit return mechanisms
JP2015207223A (ja) 情報処理装置、情報処理方法
US20070022225A1 (en) Memory DMA interface with checksum
CN104317716B (zh) 分布式节点间的数据传输方法及分布式节点设备
CN116250224A (zh) 包长度字段的大小减小的编码
CN114385240A (zh) 组织可编程原子单元指令存储器的方法
CN113783800A (zh) 数据包处理方法、装置、计算机设备及可读存储介质
EP1826678B1 (en) Storage control apparatus, storage control method, computer product, and information processing apparatus
JP2007259274A (ja) 再送制御回路、送信装置、再送制御方法及び再送制御プログラム
KR20080106203A (ko) 데이터 패킷 전송 방법 및 디바이스
CN108073546A (zh) 一种基于fpga实现网络数据接收及读取控制方法
US7134070B2 (en) Checksum determination
WO2015177917A1 (ja) 演算回路、符号化回路及び復号回路
JP2000349816A (ja) パケットデータ処理装置及びそれを用いたパケット中継装置
CN114385246A (zh) 桶式多线程处理器中的可变流水线长度
CN116529721A (zh) 按需可编程原子内核加载
JP2005252712A (ja) 転送データの正当性を判定する装置および方法
JP4611826B2 (ja) 送信装置
JP5093986B2 (ja) プロセッサ間通信方法及びプロセッサ間通信装置
JP2008071231A (ja) プログラマブルロジックコントローラデータの収集方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110927