JP2000253054A - データ配送システム及びデータ配送方法 - Google Patents

データ配送システム及びデータ配送方法

Info

Publication number
JP2000253054A
JP2000253054A JP4798299A JP4798299A JP2000253054A JP 2000253054 A JP2000253054 A JP 2000253054A JP 4798299 A JP4798299 A JP 4798299A JP 4798299 A JP4798299 A JP 4798299A JP 2000253054 A JP2000253054 A JP 2000253054A
Authority
JP
Japan
Prior art keywords
data
packet
check code
checksum
calculated
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
JP4798299A
Other languages
English (en)
Inventor
Akira Yamaya
陽 山家
Shinichi Sugano
伸一 菅野
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP4798299A priority Critical patent/JP2000253054A/ja
Publication of JP2000253054A publication Critical patent/JP2000253054A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 データ配送の都度、パケット転送単位が相違
し得るような場合にもパケット生成時のチェックサムの
計算の高速化およびパケット生成の高速化を可能とする
データ配送システムを提供すること。 【解決手段】 データをパケット化して配送する際に各
パケットに検査符号を書き込むデータ配送システムのデ
ータ配送方法であって、クライアントからデータ配送要
求を受けた際、該データに対して該クライアントに応じ
て定まるパケット転送単位ごとに計算された検査符号が
一時記憶部に記憶されているか否かを調べ、記憶されて
いない場合、データに対するパケット転送単位ごとの検
査符号を計算しこれを一時記憶部に記憶し、該データを
分割してパケットを生成するとともに計算済みの該デー
タに対するパケット転送単位ごとの検査符号を利用して
各パケットに書き込むべき検査符号を計算する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子情報を配送す
るデータ配送システム及びデータ配送方法に関する。
【0002】
【従来の技術】近年、インターネットの爆発的な拡大と
普及に伴い、オープンな環境とその上に構築されるツー
ル群は、企業内の情報システムなどを構築する上で注目
を集めている。近年では、企業内の情報システムなどに
インターネットで培われた手法を適用することをイント
ラネットと呼ぶようになった。イントラネットでは、W
ebを中心とした情報共有システムを構築し、さらにデ
ータベースシステムや既存の基幹系システムに統合しよ
うとする試みが行われている。
【0003】さらに、現在注目されている動向として
は、PCを中心としたシステムにかかる管理の複雑さお
よび管理コストの高さの反省として、管理を集中してユ
ーザの端末との役割分担を見直すというネットワークコ
ンピューティングが提案されている。
【0004】このような状況の中で、イントラネットの
サーバの役割はますます重要度を帯びてきた。現在のサ
ーバは、その高速なCPUパワーに比してサーバとして
の性能は非力で、将来的な要求に対処できないと思われ
る。そこで、大量のデータを高速に送受信し、様々な要
求に対して迅速に応答する能力を持つ高速なWWWサー
バが期待されている。
【0005】以下、図面を参照しながらWWWサーバを
含む従来のデータ配送システムについて説明する。
【0006】データ配送システムにおけるデータ配送で
は、クライアントからのデータ配送要求を受けると、該
クライアントとの間にコネクションを確立し、そして要
求されたデータをパケットとしてネットワークへ配送す
る。ネットワークへ配送されるパケットは、「パケット
ヘッダ」と「パケットデータ」で構成される。パケット
データは、要求されたデータ(コンテンツ)であり、そ
の内容はコネクションに依存しない。一方、パケットヘ
ッダの内容は、コネクション毎に異なる。なお、要求さ
れたデータのサイズが、そのネットワークに送り出すこ
とができる最大セグメントサイズ(以下、MSSと略記
する)よりも大きな場合には、データをMSSで分割し
て、複数のパケットとしてネットワークに配送する。
【0007】図12に、パケットの一例としてイーサネ
ットに配送されるパケットを示す。(a)は配送するデ
ータであり、(b)は(a)のデータをMSSで分割し
て搭載したパケットである。各パケットは、イーサネッ
ト(Ethernet)ヘッダ、IPヘッダ、TCPヘ
ッダ、データをMSSで分割したブロックの1つ(もと
のデータの長さとMSSの値との関係で最後のブロック
がMSSに満たない場合もある)、CRCから構成され
る。なお、図12は、一例としてデータリンク層がイー
サネットである場合を例示しているが、データリンク層
がイーサネット以外である場合、該当する部分が変わる
だけである。
【0008】ここで、パケット通信のためのプロトコル
には、そのパケットヘッダ内に、そのパケットに対する
検査符号を書き込むことになっているものがある。例え
ば、TCPプロトコルを用いた場合、TCPヘッダに
は、TCPパケットに対する検査符号が含まれる。図1
2(b)の場合、図12(a)のデータのうち最初のデ
ータ(1)の部分を含むパケットでは、TCPヘッダ
(検査符号自体を記述する領域を除く部分)およびデー
タ(1)の部分を対象とする検査符号が計算され、その
値が当該TCPヘッダの検査符号の領域に記述される。
【0009】このような検査符号はチェックサムと呼ば
れる。チェックサムは例えばTCPヘッダとそのデータ
の部分について16ビット毎に“1の補数和”をとった
ものである(この場合、チェックサムは16ビットとな
る)。
【0010】なお、上記についてより詳しく説明する
と、チェックサムの計算では、上記の検査符号自体を記
述する領域(チェックサム領域)に“0”を埋めて計算
を行う。厳密に言えば、チェックサムを計算するには、
疑似ヘッダというものを加える。TCPは疑似ヘッダを
TCPパケットの前に付け加え、もし、全体の長さが1
6ビットの倍数ではないならば、全体の長さが16ビッ
トの倍数になるようにパケットをパディングするために
0だけからなるバイトをその終わりに付けたし、それ全
体のチェックサムを計算する。ただし、パディングに使
われるバイトと、疑似ヘッダはTCPパケットとともに
は送信されない。これらは、チェックサムを計算するた
めだけに使用される。チェックサムを計算するために
は、まず、チェックサム・フィールド(上記の検査符号
自体を記述する領域)の中に“0”を埋め、疑似ヘッ
ダ、TCPヘッダ、データを含む全体の16ビットの1
の補数和を計算する。
【0011】図13に従来のデータ配送システムの構成
例を示す。
【0012】送信すべきデータは、データ記憶装置10
1に格納されている。データ送信装置102は、データ
記憶装置101から読み出したデータをパケットにして
パケット交換網103上に送信する。
【0013】すなわち、データ記憶装置101に格納さ
れているデータは、送信バッファ125の容量分だけ、
いったん送信バッファ125にコピーされる。プロトコ
ル処理部123は、クライアントとコネクションを確立
し、送信バッファ125から一度に送信可能な長さだけ
のデータを切り出す。さらに、TCPヘッダを作成し、
このTCPヘッダを先ほど切り出したデータの先頭に付
加し、TCPパケットを構成する。また、TCPパケッ
ト全体に対するチェックサムを計算し、TCPヘッダの
チェックサムの領域に書き込む。さらに、IPヘッダを
作成し、IPパケットを構成する。パケット送信部12
4は、以上のようにして構成されたパケットをパケット
交換網103へ送出する。
【0014】しかし、このような従来のデータ配送シス
テムでは、クライアントから要求を受けて該当するデー
タをデータ記憶装置から取り出した後に、チェックサム
を計算しパケットを構成することになるので、処理に時
間がかかる問題があった。
【0015】この点、特開平6−69957号公報で
は、パケットの生成処理、特に、チェックサムの計算を
高速化するために以下の手法を用いている。まず、送信
するデータをMSSで複数のパケットに分割し、各分割
したデータに対するチェックサムを計算し、分割したデ
ータおよびそのデータに対するチェックサムを、ネット
ワークに送り出すパケットの形でデータ記憶装置に記憶
しておく。その際、データはデータ領域へ書き込まれ、
チェックサムは仮のチェックサムとしてヘッダのチェッ
クサム領域へ書き込まれる。図14に、データ記憶装置
(201)に格納されているパケットの様子を示す。図
14において、P1〜P3はパケット、H1〜H3はパ
ケットのヘッダ領域、D1〜D3はパケットのデータ領
域であり、上記のようにヘッダ(例えばH1)のチェッ
クサム領域にデータ(例えばD1)に対するチェックサ
ムが仮に書き込まれている。クライアントからデータ配
送要求を受信したときに、要求されたデータに対応する
パケットをデータ記憶装置から取り出し、パケットヘッ
ダを作成し、仮のチェックサムを用いてパケット全体に
対するチェックサムを求め、パケットのチェックサム領
域に上書きし、パケットをネットワークへ配送する。
【0016】
【発明が解決しようとする課題】しかし、特開平6−6
9957号公報のような従来のデータ配送システムで
は、データを予めMSSで分割しネットワークに配送す
るパケットを構成してデータ記憶装置に記憶しておくた
め、以下のような問題点があった。
【0017】(1)予めMSSの値を固定しているた
め、異なるMSSでパケットを配送するような場合に対
応できない。例えば、データ配送システムが複数のネッ
トワークインタフェースを持ち、かつ、各ネットワーク
のMSSが異なるような場合に対応できない(もとより
単に全てのコンテンツについて全MSSに対応して全パ
ケットを生成し用意しておくことはメモリを徒に浪費す
るだけで実用性に乏しい)。また、例えば、データ配送
システムとクライアントとの間のパス上に、当該データ
配送システムがネットワークインタフェースで直接接続
されたネットワークのMSSより小さいMSS’のネッ
トワークが存在するような場合には、予め固定されたM
SSで分割したパケット単位で転送を行うと、経路の途
中でのデータ分割や最終的なホスト上でのデータの再構
築が行われデータ転送の効率が悪くなるが、このような
場合にも対応できない。
【0018】(2)予めパケットヘッダの領域を固定し
ているため、パケットヘッダサイズが異なるパケットを
配送すること、例えば、IPv4に準拠したパケットと
IPv6に準拠したパケットの両方を配送するような場
合にも対応できない。
【0019】(3)内容が不変のデータを配送する場合
を想定しているため、例えばHTTPヘッダとHTTP
ボディからなるHTTPデータをTCPパケットに載せ
る場合のように、内容がその都度変化する部分(例えば
HTTPヘッダ)を含むデータを扱うような場合にも対
応できない。
【0020】本発明は、上記事情を考慮してなされたも
ので、データ配送の都度、MSSが相違し得るような場
合にもパケット生成時の検査符号の計算の高速化および
パケット生成の高速化を可能とするデータ配送システム
及びデータ配送方法を提供することを目的とする。
【0021】また、本発明は、データ配送の都度、パケ
ットヘッダ形式が相違し得るような場合にもパケット生
成時の検査符号の計算の高速化およびパケット生成の高
速化を可能とするデータ配送システム及びデータ配送方
法を提供することを目的とする。
【0022】また、本発明は、データ配送毎に内容の変
化する部分を含むようなデータを配送する場合にもパケ
ット生成時の検査符号の計算の高速化およびパケット生
成の高速化を可能とするデータ配送システム及びデータ
配送方法を提供することを目的とする。
【0023】
【課題を解決するための手段】本発明(請求項1)は、
データをパケット化して配送する際に各パケットにその
パケットに対する検査符号を書き込むデータ配送システ
ムであって、複数個のデータと、あるデータに対してあ
るパケット転送単位ごとに計算された検査符号とを記憶
するための記憶手段と、前記記憶手段に記憶されている
配送対象となったデータを分割してパケットを生成する
とともに、前記記憶手段に該データに対して該当するパ
ケット転送単位による検査符号が記憶されている場合に
は、その記憶されている検査符号を利用して各パケット
に書き込むべき検査符号を計算する処理手段とを備えた
ことを特徴とする。
【0024】本発明では、ネットワークに配送するパケ
ットの形でデータを記憶せず、データを配送するときに
パケットを生成する。すなわち、予めデータを分割せ
ず、データを配送するときにデータの分割を行う。一
方、あるデータに対してあるパケット転送単位ごとに計
算された検査符号が得られている場合(必要に応じて計
算された場合と、クライアントからの要求に備えて計算
しておいた場合とが考えられる)には、これを少なくと
も一時的に記憶しておく。そして、パケット生成の際
に、該データに対する該当パケット転送単位による検査
符号が記憶されている場合には、その記憶されている計
算済みの検査符号を利用して各パケットに書き込むべき
検査符号を計算する。
【0025】本発明によれば、データ配送の都度、パケ
ット転送単位が相違し得るような場合、例えば、MSS
が異なる複数のネットワークインタフェースを持ち、該
当するネットワークのMSSをパケット転送単位とする
ような場合でも、配送するデータのそれぞれのパケット
転送単位(MSS)ごとの検査符号を予め計算して記憶
することで、パケット生成時の検査符号の計算、そして
そのパケット生成を高速化することができる。また、接
続したネットワークのMSSよりも、コネクションが確
立されたクライアントとのパス上のMSSの方が小さい
ときは、最小のMSSをパケット転送単位とするような
場合でも、一度、バス上のMSSごとの検査符号を計算
して記憶しておくことで、パケット生成時の検査符号の
計算、そしてそのパケット生成を高速化することができ
る。また、データをヘッダとは独立して扱うため、ヘッ
ダサイズが異なるパケットを配送する場合でも、パケッ
ト生成時の検査符号の計算、そしてそのパケット生成を
高速化することができる。
【0026】好ましくは、前記記憶手段に前記配送対象
となったデータに対して該当するパケット転送単位によ
る検査符号が記憶されていない場合に、該データに対す
る該当するパケット転送単位ごとの検査符号を計算する
手段を更に備えるようにしてもよい。これによって得ら
れた検査符号は、これを記憶しておくことで、後のデー
タ配送の際に再利用することができる。
【0027】好ましくは、前記処理手段は、前記データ
を前記パケット転送単位で分割した各ブロックにそれぞ
れパケットヘッダを付加してパケットを生成するととも
に、各パケットについて、それに含まれるブロックに対
して計算された検査符号とそのパケットヘッダとから該
パケットに対する検査符号を計算し、これを該パケット
ヘッダの所定の領域に書き込むようにしてもよい。例え
ば、前記パケットはTCPパケットであり、前記検査符
号はTCPパケットヘッダとTCPパケットデータであ
る該当ブロックについて計算され、TCPパケットヘッ
ダの所定の領域に記述される。その際、TCPパケット
データである該当ブロックの部分に対する検査符号が計
算済みであれば、その検査符号とTCPパケットヘッダ
の部分とから検査符号を計算すればよく、パケットに対
する検査符号の計算が高速化できる。
【0028】好ましくは、前記記憶手段は、より高速に
アクセス可能な第1の記憶手段とより大容量の第2の記
憶手段とを含み、前記第1の記憶手段は、少なくとも、
配送を行ったデータと、該データに対するその配送の際
のパケット転送単位ごとの検査符号とを、一定の記憶容
量を上限として一時記憶するためのものであり、前記第
2の記憶手段は、少なくとも、配送対象となるデータを
蓄積するためのものであるようにしてもよい。好ましく
は、前記第1および第2の記憶手段に前記配送対象とな
ったデータに対して該当するパケット転送単位による検
査符号が記憶されておらず、かつ、該データに対する該
当するパケット転送単位ごとの検査符号を計算した際
に、該計算した検査符号を前記第1の記憶手段に記憶す
るようにしてもよい。好ましくは、前記第1の記憶手段
の所定の記憶領域に上書きをする際に、該上書きのため
に該第1の記憶手段から削除されることになるデータに
対する検査符号を、前記第2の記憶手段に書き戻すよう
にしてもよい。上記のように、データやデータに対する
検査符号をより高速なメモリにキャッシュしておくこと
により、より高速にパケットに対する検査符号を計算す
ることができる。また、データに対する検査符号をより
大容量のメモリに保存しておくことによっても、データ
に対する検査符号の計算を省くことができる。
【0029】好ましくは、前記検査符号はそれが書き込
まれるパケットの内容の完全性を検査するためのもので
あるようにしてもよい。好ましくは、前記検査符号は逐
次的に計算可能なものであるようにしてもよい。例え
ば、検査符号はTCPプロトコルにおいてTCPパケッ
トに記述するチェックサムである。
【0030】好ましくは、前記パケット転送単位を、自
システムが直接接続されたネットワークのうち、データ
の配送を要求したクライアントに通じるネットワークに
送り出すことができる最大セグメントサイズに等しい値
とするようにしてもよい。好ましくは、前記パケット転
送単位を、自システムとクライアントとの間に存在する
各ネットワークに送り出すことができる最大セグメント
サイズのうち最も小さいものに等しい値とするようにし
てもよい。
【0031】好ましくは、内容が変化し得る第1のデー
タ部分と内容が不変の第2のデータ部分とからなるデー
タを配送対象とする場合、該第1のデータ部分と該第2
のデータ部分とが異なるパケットに搭載されるようにパ
ケットを生成するとともに、データに対する検査符号に
関する処理は該第2のデータ部分についてのみ行うよう
にしてもよい。好ましくは、配送対象となるデータが、
検査符号が計算されていない第1のデータ部分と、検査
符号が前記記憶手段に記憶されている第2のデータ部分
とから構成される場合、該第1のデータ部分と該第2の
データ部分とが異なるパケットに搭載されるようにパケ
ットを生成するとともに、該第2のデータ部分を含むパ
ケットに対する検査符号は該記憶されている検査符号を
利用して計算するようにしもよい。好ましくは、前記第
1のデータ部分はHTTPヘッダであり、前記第2のデ
ータ部分はHTTPボディであるようにしてもよい。上
記によれば、予め検査符号の計算をしていないあるいは
内容が変化し得るデータ(例えばHTTPヘッダ)と予
め検査符号の計算を行っているあるいは内容が不変のデ
ータ(例えばHTTPボディ)とをそれらが異なるパケ
ットに含まれるように独立的に扱うことにより、予め検
査符号の計算をしていないデータと予めデータの検査符
号の計算を行っているデータを続けて配送する場合に、
予め計算したデータに対する検査符号を利用でき、検査
符号の計算、さらにパケットの生成を高速化することが
できる。これは、HTTPデータを送信するWebサー
バの高速化に大きな期待ができる。
【0032】本発明(請求項14)は、データをパケッ
ト化して配送する際に各パケットにそのパケットに対す
る検査符号を書き込むデータ配送システムのデータ配送
方法であって、クライアントからデータの配送を要求さ
れた際に、該データに対して該クライアントに応じて定
まるパケット転送単位ごとに計算された検査符号が自シ
ステム内に記憶されているか否かを調べ、記憶されてい
ない場合には、前記データに対する前記パケット転送単
位ごとの検査符号を計算するとともに、該計算した検査
符号を自システム内に少なくとも一時的に記憶し、前記
配送対象となったデータを分割してパケットを生成する
とともに、記憶されている該データに対する前記パケッ
ト転送単位ごとの検査符号を利用して各パケットに書き
込むべき検査符号を計算することを特徴とする。
【0033】なお、装置に係る本発明は方法に係る発明
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。
【0034】また、装置または方法に係る本発明は、コ
ンピュータに当該発明に相当する手順を実行させるため
の(あるいはコンピュータを当該発明に相当する手段と
して機能させるための、あるいはコンピュータに当該発
明に相当する機能を実現させるための)プログラムを記
録したコンピュータ読取り可能な記録媒体としても成立
する。
【0035】
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
【0036】なお、前述のように、あるネットワークに
送り出すことができる最大セグメントサイズをMSSと
略記する。
【0037】(第1の実施形態)図1に、本発明の第1
の実施形態に係るデータ配送システムの構成例を示す。
【0038】本データ配送システムは、要求されたデー
タをクライアントに送信するデータ送信装置2と配送す
べきデータを記憶するデータ記憶装置1から構成され、
その基本的な機能は、クライアントから指定データ(コ
ンテンツ)の配送要求を受けたデータ送信装置2が、デ
ータ記憶装置1に格納されている該当データ(そのデー
タのコピーがデータ記憶装置1内に一時記憶されている
場合には当該一時記憶されているもの)をパケット化し
てパケット交換網3上に送信するものである。
【0039】データ記憶装置1は、例えばハードディス
ク装置等を利用して構成される。
【0040】データ送信装置2は、例えば計算機と必要
なネットワークインタフェース等を利用して構成され
る。
【0041】なお、本データ配送システムでは、(1)
当該データ配送システムが複数のネットワークに直接接
続され(複数のネットワークインタフェースを持ち)、
各ネットワークのMSSをMSS1〜MSSNとしたと
きに、MSS1〜MSSNのうちに相異なるものが存在
するケース(ただし、データ配送要求が送られてきたネ
ットワークインタフェースのMSSを使用するもので、
当該直接接続されたネットワーク以外のネットワークの
MSSは考慮不要もしくは考慮しないとするケース)、
(2)当該データ配送システムは1つのネットワークも
しくはMSSが同一の複数のネットワークに直接接続さ
れているが(MSS1=…=MSSN=MSScとす
る)、当該データ配送システムとクライアントとの間に
1以上の他のネットワーク(当該データ配送システムが
間接的に接続されたネットワーク)が存在することがあ
り、当該他のネットワークのうちにMSScより小さい
MSS’を持つものが存在し得るケース(そのMSS’
がクライアントによって変わりうるケースを含む)であ
って、データ配送システムとクライアントとの間に複数
のネットワークが存在する場合には当該複数のネットワ
ークのMSSのうちの最小のMSSを考慮してパケット
生成を行うようにするケース、(3)上記の(1)と
(2)を組み合わせたようなケース、すなわち、上記の
(1)のように、当該データ配送システムが複数のネッ
トワークに直接接続され、各ネットワークのMSSをM
SS1〜MSSNとしたときに、MSS1〜MSSNの
うちに相異なるものが存在するとともに、さらに、上記
の(2)のように、データ配送システムとクライアント
との間に複数のネットワークが存在する場合には当該複
数のネットワークのMSSのうちの最小のMSSを考慮
してパケット生成を行うようにするケースなど、処理に
使用すべきMSSが唯一ではなく、クライアントに応じ
て処理に使用すべきMSSが相違し得るものとする。
【0042】また、以下では、「パス上のMSS」と
は、コネクションが確立されたクライアントと(当該デ
ータ配送システムと)の間に、1つのネットワークのみ
存在する場合には当該1つのネットワークのMSSであ
り、複数のネットワークが存在しそれらのMSSが全て
同一である場合には当該同一のMSSであり、複数のネ
ットワークが存在しそれらのMSSのうちに相異なるも
のがある場合にはそれら複数種類のMSSのうち最小の
値を持つMSSであるものとする。
【0043】さて、図1に示されるように、本データ送
信装置2は、チェックサム計算部21、一時記憶部2
2、プロトコル処理部23、パケット送信部24を備え
ている。
【0044】チェックサム計算部21は、要求されたデ
ータをパス上のMSSごとのブロックとみなし、ブロッ
ク毎のチェックサムの計算を行う。データのサイズが該
MSSで割り切れない場合、データに対して計算される
最後のチェックサムは、該MSS未満のサイズのブロッ
クに対するものになる。チェックサム計算部21により
計算されたチェックサムは該当データに対応付けられて
一時記憶部22に記憶される。
【0045】一時記憶部22は、データ記憶装置1に格
納されているデータのうちクライアントから要求のあっ
たデータ(のコピー)およびそのデータに対して計算さ
れた1または複数種類のMSSについてのチェックサム
を一時的に記憶するためのものである。なお、一時記憶
部22は通常、記憶容量に限りがあるため、新たに書き
込む領域がない場合には、所定の規則に従って上書きが
なされる。所定の規則には、例えば、最も古く記憶され
たデータおよびそのチェックサムを上書き対象にする方
法、最後に利用されてから最も長時間経過しているデー
タおよびそのチェックサムを上書き対象にする方法、な
ど種々の方法がある。
【0046】プロトコル処理部23は、クライアントと
の間のコネクションを確立し、パケットを生成する。パ
ケットは、TCPパケット、IPパケットの順で生成す
る。TCPパケットを生成する際には、データをパス上
のMSSで分割したブロックごとにパケット化するとと
もに、各TCPパケットについて、チェックサム計算部
21にて計算済みの該ブロックに対するチェックサムを
利用して該ブロックおよびそのTCPヘッダ(チェック
サム領域を除く部分)に対するチェックサムを計算す
る。
【0047】なお、上記についてより詳しく説明する
と、チェックサムの計算では、上記の検査符号自体を記
述する領域(チェックサム領域)に“0”を埋めて計算
を行う。厳密に言えば、チェックサムを計算するには、
疑似ヘッダというものを加える。TCPは疑似ヘッダを
TCPパケットの前に付け加え、もし、全体の長さが1
6ビットの倍数ではないならば、全体の長さが16ビッ
トの倍数になるようにパケットをパディングするために
0だけからなるバイトをその終わりに付けたし、それ全
体のチェックサムを計算する。ただし、パディングに使
われるバイトと、疑似ヘッダはTCPパケットとともに
は送信されない。これらは、チェックサムを計算するた
めだけに使用される。チェックサムを計算するために
は、まず、チェックサム・フィールド(上記の検査符号
自体を記述する領域)の中に“0”を埋め、疑似ヘッ
ダ、TCPヘッダ、データを含む全体の16ビットの1
の補数和を計算する。
【0048】パケット送信部24は、以上のようにして
構成されたパケットをパケット交換網3へ送出する。
【0049】なお、あるクライアントに対するパス上の
MSSは、例えばプロトコル処理部23において、クラ
イアントとの間のコネクションを確立する手続きの中で
知ることができる。
【0050】ここで、図2を参照しながらデータ部分に
対するチェックサムの計算、その一時保存、パケット全
体(ヘッダ部分およびデータ部分)に対するチェックサ
ムの計算について具体例を用いて説明する。
【0051】図2では、あるクライアントから要求され
たデータの長さが10,000バイトで、そのクライア
ントに対するパス上のMSSが1,460バイトであ
り、また、同一データを要求する別のクライアントに対
するパス上のMSSが4,960バイトであった場合の
例を示している。
【0052】あるクライアントに対するパス上のMSS
が1,460バイトであった場合、チェックサム計算部
21において、チェックサムは順次、データの1,46
0バイト毎に計算され、最後のチェックサムは残りの
1,240バイトに対して計算される。該ブロックに対
するチェックサムは例えば該ブロックを16ビット毎に
分割し各16ビット部分について順次“1の補数和”を
とっていくことにより計算される。
【0053】この場合、当該データ(のコピー)と使用
したMSSの値1,460と得られた7個のチェックサ
ムの値が対応付けられて一時記憶部22に一時記憶され
る。
【0054】また、この場合、データはブロック(最後
のブロック以外は1,460バイト/最後のブロックの
み1,240バイト)ごとにパケットに載せられること
になるが、各ブロックに対応するチェックサムはすでに
計算済みであるので、プロトコル処理部23は、そのパ
ケットに載せるブロックに対応する計算済みのチェック
サムとそのTCPヘッダの内容とからパケット全体に対
するチェックサムを高速に計算することができる。パケ
ット全体に対するチェックサムは例えば上記の16ビッ
トの計算済みチェックサムとTCPヘッダの各16ビッ
トについて順次“1の補数和”をとっていくことにより
計算される。
【0055】一方、別のクライアントに対するパス上の
MSSが4,960バイトであった場合、同様にして、
チェックサムは順次、データの4,960バイト毎に計
算され、最後のチェックサムは残りの80バイトに対し
て計算される。この場合、当該データ(のコピー)と使
用したMSSの値4,960と得られた3個のチェック
サムの値が対応付けられて一時記憶部22に一時記憶さ
れる。
【0056】また、このように長さが10,000バイ
トであるデータについて、MSS=1,460バイトに
対するチェックサムと、MSS=4,960バイトに対
するチェックサムが計算された場合、一時記憶部22に
は、当該データと、MSSの値1,460とそのときの
7個のチェックサムと、MSSの値4,960とそのと
きの3個のチェックサムとが記憶された状態になる。以
降(それらが一時記憶部22内に存在する間)は、MS
S=1,460またはMSS=4,960とするクライ
アントから当該データに対する要求があった場合には、
一時記憶部22が利用可能になり、当該データに対する
チェックサムの計算が不要になる。もちろん、当該デー
タをデータ記憶装置1から取り出すことも不要になる。
【0057】図3に、一時記憶部22に保管されるデー
タおよびチェックサムの形式の一例を示す。この例は、
各データとそのチェックサムをリンク形式で保持するも
のである。図3において、MS11〜MS13,MSn
1〜MSn2は、後続するチェックサム11〜13,n
1〜n2がどれだけのブロックサイズ(すなわちMS
S)ごとのチェックサムかを示す。なお、ここでは、デ
ータに対するチェックサム領域を動的に確保する例を示
したが、予め適当な数/量のMSS/チェックサムのフ
ィールドを割り当てるなどしてチェックサム領域を静的
に確保する例も考えられる。
【0058】次に、本実施形態のデータ配送システムの
動作について説明する。
【0059】図4に、本実施形態のデータ配送システム
の動作手順の一例を示す。
【0060】まず、パケット交換網3を通してデータ送
信装置2にクライアントからのデータ配送要求(クライ
アントの指定するデータを特定可能な情報が含まれる)
が送られてくる。データ送信装置2では、最初に、要求
されたデータが一時記憶部22に存在するかどうか検索
する(ステップS11)。
【0061】要求されたデータが一時記憶部22に存在
しない場合、データ記憶装置1にデータ要求を送る(ス
テップS12a)。チェックサム計算部21は、データ
記憶装置1から取りだされたデータを、データ配送要求
があったネットワークのパス上のMSS単位のブロック
列とみなし、各ブロック毎のチェックサムを計算する
(ステップS13)。要求されたデータおよびその計算
されたチェックサムは一時記憶部22に記憶しておく
(ステップS14)。
【0062】一方、要求されたデータが一時記憶部22
に存在し、かつ、要求されたデータの、対応するパス上
のMSSのチェックサムが一時記憶部22に存在する場
合(ステップS12b)、一時記憶部22から、要求さ
れたデータおよび該MSSに対応するチェックサムを取
り出す(ステップS15a)。
【0063】また、要求されたデータは一時記憶部22
に存在するが、要求されたデータの、対応するパス上の
MSSのチェックサムが一時記憶部22に存在しない場
合(ステップS12b)、一時記憶部22から要求され
たデータを取り出し、チェックサム計算部21により対
応するパス上のMSSのチェックサムを計算するととも
に、計算されたチェックサムを一時記憶部22に保存し
ておく(ステップS15b)。
【0064】プロトコル処理部23は、データを該MS
Sで分割する。さらに、TCPパケットを生成する。そ
して、TCPパケットヘッダを作成し、TCPパケット
ヘッダと上記の計算済みのチェックサムとを利用してパ
ケット全体に対するチェックサムを計算し、TCPパケ
ットを生成する(ステップS16)。さらに、IPヘッ
ダを作成し、IPパケットを生成する(ステップS1
7)。
【0065】パケット送信部24は、作成されたIPパ
ケットをパケット交換網3へ送信する(ステップS1
8)。
【0066】なお、上記では、データ配送要求があった
際に必要なMSSによるチェックサムを計算するととも
に、一時記憶部22にデータおよび計算されたチェック
サムを格納するものとしたが、これに加えて、予め本デ
ータ配送システムが直接接続されている全てまたは一部
のネットワークインタフェースのMSS(さらには予想
されるパス上のMSS)ごとのチェックサムを全てまた
は一部のデータに対して計算して、データおよび計算さ
れたチェックサムをデータ記憶装置1に格納しておき、
データ配送要求があった際に、データ記憶装置1に該当
するMSSによるチェックサムが格納されている場合に
は、このチェックサムを用いてパケット全体に対するチ
ェックサムを計算し、パケットを生成するとともに、一
時記憶部22に該データおよびそのチェックサムを格納
するようにしてもよい。この場合、データ記憶装置1に
保管されるデータおよびチェックサムの形式は例えば図
3と同様である。あるいは、チェックサム領域を静的に
確保するようにしてもよい。また、データ記憶装置1の
データ/チェックサム保管形式と一時記憶部22のデー
タ/チェックサム保管形式とは、同一の形式にしてもよ
いし、相違する形式にしてもよい。
【0067】また、上記の他にも、本実施形態について
種々のバリエーションが考えられる。
【0068】(第2の実施形態)図5に、本発明の第2
の実施形態に係るデータ配送システムの構成例を示す。
【0069】本実施形態が第1の実施形態と相違する点
は、データ記憶装置1内に、配送すべきデータに併せ
て、そのデータに対して過去にクライアントからデータ
配送要求があった際に計算された(パス上の)MSSに
対するチェックサムも併せて保存する点である。
【0070】データ記憶装置1に保管されるデータおよ
びチェックサムの形式は例えば図3と同様である。ある
いは、チェックサム領域を静的に確保するようにしても
よい。
【0071】データ記憶装置1のデータ/チェックサム
保管形式と一時記憶部22のデータ/チェックサム保管
形式とは、同一の形式にしてもよいし、相違する形式に
してもよい。
【0072】チェックサム計算部21と一時記憶部22
の基本的な機能は第1の実施形態と同様である。
【0073】なお、チェックサム計算部21により計算
されたチェックサムは、第1の実施形態と同様、一時記
憶部22に記憶されるが、本実施形態では、さらに所定
のタイミングでデータ記憶装置1に保存される。この所
定のタイミングとしては、一時記憶部22から(上書き
されることなどにより)削除された時点、チェックサム
計算部21により計算された時点などが考えられる。本
実施形態では、一時記憶部22から上書きされることに
より削除された時点として説明する。
【0074】また、本実施形態では、データ記憶装置1
に該当するチェックサムが保存されている場合には、チ
ェックサム計算部21による計算は行われず、データ記
憶装置1に保存されているチェックサムがパケット生成
に使用されるとともに、これが一時記憶部22に記憶さ
れる。
【0075】プロトコル処理部23とパケット送信部2
4の基本的な機能は第1の実施形態と同様である。な
お、上記のように、プロトコル処理部23のTCPパケ
ット生成処理においてデータ記憶装置1に保存されてい
るチェックサムが用いられる場合がある。
【0076】次に、本実施形態のデータ配送システムの
動作について説明する。
【0077】図6に、本実施形態のデータ配送システム
の動作手順の一例を示す。
【0078】本動作手順が、第1の実施形態で説明した
手順と相違する主な点は、一時記憶部22のデータを上
書きするときに、上書きされるデータに対するチェック
サムをデータ記憶装置に書き戻す点である(従って、必
要なチェックサムが一時記憶部22には存在しないが、
データ記憶部1には存在することがある点が相違するこ
とにもなる)。
【0079】まず、パケット交換網3を通してデータ送
信装置2にクライアントからのデータ配送要求(クライ
アントの指定するデータを特定可能な情報が含まれる)
が送られてくる。データ送信装置2では、最初に、要求
されたデータが一時記憶部22に存在するかどうか検索
する(ステップS21)。
【0080】要求されたデータが一時記憶部22に存在
しない場合、データ記憶装置1に、要求されたデータお
よびそのチェックサムの要求(データ/チェックサム要
求)を送る。そして、一時記憶部22に要求されたデー
タおよびそのチェックサムを書き込む領域が存在するか
どうか調べる(ステップS22)。
【0081】一時記憶部22に要求されたデータおよび
そのチェックサムを書き込む領域がない場合、一時記憶
部22内の既存のデータおよびそのチェックサムが上書
きされることになるので、当該上書きされるデータに対
する全てのチェックサムをデータ記憶装置1に書き戻す
(ステップS23)。なお、この書き戻しの際に、デー
タ記憶装置1に未保存のMSSに対するチェックサムの
み書き戻すようにしてもよいし、データ記憶装置1に保
存されている該データの全チェックサムを破棄し(デー
タ記憶装置1に該データのチェックサムが1つも保存さ
れていない場合もある)、一時記憶部22に記憶されて
いる該データの全チェックサムを書き戻すようにしても
よい。
【0082】続いて、要求されたデータおよび要求され
たデータに対する全てのチェックサムを一時記憶部22
に持ってきて上書きする(ステップS24)。
【0083】一方、一時記憶部22に要求されたデータ
および要求されたデータに対するチェックサムを書き込
む領域がある場合には、上記の書き戻しは不要であり、
要求されたデータおよび要求されたデータに対する全て
のチェックサムを一時記憶部22に持ってくる(ステッ
プS24)。
【0084】なお、データ記憶装置1には未だ要求され
たデータに対するチェックサムが1つも保存されていな
い場合がある。この場合には、要求されたデータを一時
記憶部22に持ってくる。
【0085】また、データ記憶装置1には要求されたデ
ータに対するチェックサムがいくつか保存されてはいる
が、今回の処理で必要なMSSに対応するチェックサム
は保存されていないこともある。本実施形態では、この
場合にも、要求されたデータおよび要求されたデータに
対する全てのチェックサムを一時記憶部22に持ってく
るものとしている。
【0086】なお、ステップS21において、要求され
たデータが一時記憶部22に存在する場合には、以上の
処理は不要である。
【0087】さて、以上で、一時記憶部22に少なくと
も要求されたデータが存在する状態になる。
【0088】次に、要求されたデータの、対応するパス
上のMSSのチェックサムが一時記憶部22に存在する
かどうか検索する(ステップS25)。
【0089】要求されたデータの、対応するパス上のM
SSのチェックサムが一時記憶部22に存在する場合、
一時記憶部22から要求されたデータおよびそのチェッ
クサムを取り出す(ステップS26a)。
【0090】一方、要求されたデータの、対応するパス
上のMSSのチェックサムが一時記憶部22に存在しな
いとき、一時記憶部22から要求されたデータを取り出
し、対応するパス上のMSSのチェックサムを計算し、
計算したチェックサムを一時記憶部22に保存する(ス
テップS26b)。
【0091】続いて、プロトコル処理部23は、データ
を該MSSで分割する。さらに、プロトコル処理部23
はTCPパケットヘッダを作成し、TCPパケットヘッ
ダと上記の計算済みのチェックサムを利用してパケット
全体に対するチェックサムを計算し、TCPパケットを
生成する(ステップS27)。さらに、IPヘッダを作
成し、IPパケットを生成する(ステップS28)。
【0092】パケット送信部24は、パケットをパケッ
ト交換網3へ送信する(ステップS29)。
【0093】なお、上記では、チェックサムがデータ記
憶装置1に格納されるのは、例えば少なくとも一度クラ
イアントから要求されたデータに対して計算され一時記
憶部21に格納されたチェックサムをデータ記憶装置1
に書き戻す場合であったが、これに加えて、例えばある
データをデータ記憶装置1に格納する際に、本データ配
送システムが直接接続されている全てまたは一部のネッ
トワークインタフェースのMSS(さらには予想される
パス上のMSS)ごとのチェックサムを該データに対し
て計算して、該データおよび計算されたチェックサムを
データ記憶装置1に格納しておくようにしてもよい(一
部のデータについてのみチェックサムを計算して格納し
ておくようにしてもよい)。
【0094】また、一時記憶部21を備えない構成も可
能である。この場合、チェックサムが計算された時点で
データ記憶装置1に書き戻すようにすればよい。
【0095】また、上記の他にも、本実施形態について
種々のバリエーションが考えられる。
【0096】(第3の実施形態)本実施形態は、内容が
変化し得るデータ部分と内容が不変のデータ部分とから
なるデータを配送対象とする場合に、内容が変化し得る
データ部分と、内容が不変のデータ部分とを、異なるパ
ケットに搭載するようにしたものである。これによっ
て、内容が不変のデータ部分については、予めチェック
サムを計算しておくことができるようになる。
【0097】すなわち、チェックサムが計算済みでない
データ部分とチェックサムが計算済みのデータ部分とか
らなるデータからパケットを生成する際に、チェックサ
ムが計算済みでないデータ部分とチェックサムが計算済
みのデータ部分とを異なるパケットに搭載し、後者につ
いては計算済みのチェックサムを利用してパケット全体
に対するチェックサムを計算することによって、チェッ
クサム計算/パケット生成を高速化することができる。
【0098】この構成は、独立して実施可能であり、従
って、これまでの実施形態や従来の構成と組み合わせて
実施することが可能である。
【0099】以下ではこの構成を第1の実施形態に組み
合わせた場合を例に取って説明する。
【0100】図7に、本実施形態に係るデータ配送シス
テムの構成例を示す。
【0101】図7のデータ配送システムが第1の実施形
態に係るデータ配送システムと相違する主な点は、HT
TPデータ(HTTPヘッダおよびHTTPボディ)を
作成しこれをプロトコル処理部23に渡すHTTP処理
部25をデータ送信装置2が更に備える点、そして、チ
ェックサム計算部21が、HTTPヘッダとHTTPボ
ディとを別扱いにしてチェックサムの計算を行う点、プ
ロトコル処理部23が、HTTPヘッダとHTTPボデ
ィとを別々のTCPパケットに搭載する点である。
【0102】さて、このデータ配送システムは、Web
サーバとして機能するものである。Webサーバは、W
ebクライアントとHTTP(Hypertext T
ransfer Protocol)を使って互いに通
信を行う。Webサーバとクライアントとの間で通信さ
れるHTTPデータは、HTTPヘッダおよびHTTP
ボディからなる。HTTPヘッダは、データ(コンテン
ツ)の種類、要求があった日時、要求されたデータ(コ
ンテンツ)の変更状況などを含み、データ配送時に決定
される。
【0103】HTTPヘッダは、TCPパケットにはT
CPヘッダではなくTCPデータの一部として載せられ
るが、上記のようにHTTPヘッダの内容がデータ配送
時に決定されるので、HTTPヘッダについては予めチ
ェックサムの計算を行うことができない(あるいは、他
の転送の際に計算されたチェックサムを流用することが
できない)。一方、HTTPボディは、要求されたデー
タ(コンテンツ)で構成されるので、HTTPボディを
構成するデータに対するチェックサムは不変であり、予
め計算しておくことができる(MSSが同じであれば、
他の転送の際に計算されたチェックサムを流用すること
ができる)。そこで、本実施形態では、HTTPヘッダ
とHTTPボディとを別々のTCPパケットに載せるよ
うにし、これによってHTTPボディ側についてはその
計算済みのチェックサムを利用可能としている。
【0104】以下、図7に例示したデータ配送システム
の動作について説明する。
【0105】図8に、このデータ配送システムの動作手
順の一例を示す。
【0106】まず、パケット交換網3を通してデータ送
信装置2にクライアントからのデータ配送要求(クライ
アントの指定するデータを特定可能な情報が含まれる)
が送られてくる。データ送信装置2では、最初に、要求
されたデータが一時記憶部22に存在するかどうか検索
する(ステップS31)。
【0107】要求されたデータが一時記憶部22に存在
しない場合、データ記憶装置1にデータ要求を送る(ス
テップS32a)。チェックサム計算部21は、データ
記憶装置1から取りだしたデータを、データ配送要求が
あったネットワークのパス上のMSS単位のブロック列
とみなし、各ブロック毎のチェックサムを計算する(ス
テップS33)。要求されたデータおよびその計算され
たチェックサムは一時記憶部22に記憶する(ステップ
S34)。
【0108】一方、要求されたデータが一時記憶部22
に存在し、かつ、要求されたデータの、対応するパス上
のMSSのチェックサムが一時記憶部22に存在する場
合(ステップS32b)、一時記憶部22から要求され
たデータおよびそのチェックサムを取り出す(ステップ
S35a)。
【0109】また、要求されたデータが一時記憶部22
に存在するが、要求されたデータの、対応するパス上の
MSSのチェックサムが一時記憶部22に存在しない場
合(ステップS32b)、一時記憶部22から要求され
たデータを取り出し、チェックサム計算部21により対
応するパス上のMSSのチェックサムを計算するととも
に、計算されチェックサムを一時記憶部22に保存して
おく(ステップS35b)。
【0110】続いて、HTTP処理部25は、HTTP
ヘッダを作成し、データをHTTPボディとし、HTT
PヘッダおよびHTTPボディをプロトコル処理部23
に渡す(ステップS36)。
【0111】プロトコル処理部23は、まず、TCPパ
ケットを生成する(ステップS37)。ここで、重要な
ことは、HTTPヘッダとHTTPボディとが異なるT
CPパケットに含まれるように、TCPパケットを生成
することである。すなわち、HTTPヘッダとHTTP
ボディを連結しそれを先頭から該MSSで分割するので
はなく、HTTPヘッダは別扱いにして、HTTPボデ
ィを該MSSで分割するようにする。
【0112】そして、HTTPヘッダについては、HT
TPヘッダだけをTCPパケットデータとしたTCPヘ
ッダを作成し、TCPパケットを作成する。この場合、
TCPパケットデータとTCPパケットヘッダからチェ
ックサムの計算を行うことになる。
【0113】一方、HTTPボディについては、HTT
Pボディを該MSSで分割した各ブロックをTCPパケ
ットデータとしたTCPパケットをそれぞれ生成する。
この場合、HTTPボディとなるデータの各ブロックに
対するチェックサムは予め計算されているので、各々の
ブロックについて、TCPパケットヘッダを作成し、T
CPパケットヘッダと予め計算されたチェックサムを利
用してパケット全体に対するチェックサムを計算し、T
CPパケットを生成する。
【0114】図9に、HTTPヘッダを含むパケットに
対するチェックサム計算と、HTTPボディを含むパケ
ットに対するチェックサム計算の処理を示す。(a)に
示すように、HTTPボディの各ブロック(各HTTP
データ)に対するチェックサムは、予め計算されてい
る。そして、(b)に示すように、HTTPヘッダを含
むパケットに対するチェックサム計算は、TCPヘッダ
およびTCPデータ(すなわちHTTPヘッダ)から計
算されるが、HTTPボディを含むパケットに対するチ
ェックサム計算は、HTTPデータに対する計算済みの
チェックサムとそのTCPヘッダとから計算することが
できる。なお、図9(b)において、200は、チェッ
クサム計算のための演算器(例えば16ビットのビット
毎の1の補数和の演算器)を示し、201は、演算器2
00の演算結果(例えば16ビット)を示す。
【0115】また、図10に、一例として、HTTPヘ
ッダが200バイト、HTTPボディが10,000バ
イト、MSSが1,460バイトの場合の各TCPパケ
ットの構成を示す。図10において、TCPパケット1
のTCPパケットデータは、HTTPヘッダから構成さ
れる。TCPパケット2〜6のTCPパケットデータ
は、1,460バイトのHTTPデータから構成され
る。TCPパケット7のTCPパケットデータは、1,
240バイトのHTTPデータから構成される。
【0116】さて、プロトコル処理部23は、続いて、
IPヘッダを作成し、IPパケットを生成する(ステッ
プS38)。
【0117】パケット送信部24は、IPパケットをパ
ケット交換網3へ送信する(ステップS39)。
【0118】なお、前述したように、内容が変化し得る
データ部分と内容が不変のデータ部分とからなるデータ
を配送対象とする場合に前者のデータ部分と後者のデー
タ部分とを異なるパケットに搭載するような構成は、第
2の実施形態やその他の変形例や従来例などに組み合わ
せて実施することもできる。
【0119】図11に、このような構成を第2の実施形
態と組み合わせた場合のデータ配送システムの動作手順
の一例を示す。なお、この場合の各セクションの動作や
処理の流れについては、これまでの説明から自明である
ので、ここでの詳細な説明は省略する。
【0120】なお、上記では、データは分割されていな
い状態で一時記憶部22に保存されるが、その代わり
に、データをMSSで分割して、各分割されたブロック
のチェックサムを計算し、ネットワークに送り出すパケ
ットの形で一時記憶部22に保存しておくなどの例も考
えられる。また、第1や第2の実施形態と同様に、予め
データ記憶装置1に、チェックサムおよびデータを記憶
しておくなどの例も考えられる。いずれの場合も、プロ
トコル処理部23でTCPパケットを生成するときに
は、予めチェックサムの計算をしていないデータ(例え
ばHTTPヘッダ)と予めチェックサムの計算をしたデ
ータ(例えばHTTPボディ)が異なるTCPパケット
を構成するようにする。また、本実施形態では、HTT
Pデータを例としたが、HTTPデータに限らず、予め
チェックサムを計算していないデータに続いて、予めチ
ェックサムを計算したデータを送るあらゆる例が考えら
れる。
【0121】ところで、以上の各実施形態においては、
データ配送システムとクライアントとの間に複数のネッ
トワークが存在する場合には当該複数のネットワークの
MSSのうちの最小のMSS(すなわちパス上のMS
S)を用いてパケット生成を行うものとしたが、MSS
の大小にかかわらず当該複数のネットワークのうち当該
データ配送システムが直接接続されているネットワーク
のMSSを用いるようにすることも可能である。
【0122】また、以上においては、要求されたデータ
をブロックに分割する「パケット転送単位」としてパス
上のMSSもしくは当該データ配送システムが直接接続
されているネットワークのMSSを使うものとしたが、
パケット転送単位として該MSSよりも小さい値を用い
ることも可能である。
【0123】なお、以上の各機能は、ソフトウェアとし
ても実現可能である。
【0124】また、本実施形態は、コンピュータに所定
の手段を実行させるための(あるいはコンピュータを所
定の手段として機能させるための、あるいはコンピュー
タに所定の機能を実現させるための)プログラムを記録
したコンピュータ読取り可能な記録媒体としても実施す
ることもできる。
【0125】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
【0126】
【発明の効果】本発明によれば、データ配送の都度、パ
ケット転送単位が相違し得るような場合にもパケット生
成時の検査符号の計算の高速化およびパケット生成の高
速化を図ることができる。
【0127】また、本発明によれば、データ配送の都
度、パケットヘッダ形式が相違し得るような場合にもパ
ケット生成時の検査符号の計算の高速化およびパケット
生成の高速化を図ることができる。
【0128】また、本発明によれば、データ配送毎に内
容の変化する部分を含むようなデータを配送する場合に
もパケット生成時の検査符号の計算の高速化およびパケ
ット生成の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るデータ配送シス
テムの構成例を示す図
【図2】データに対するチェックサムの計算/保存から
パケット全体に対するチェックサムの計算/パケット生
成までについて説明するための図
【図3】データおよびチェックサムの保存形式の一例を
示す図
【図4】同実施形態に係るデータ配送システムの動作手
順の一例を示すフローチャート
【図5】本発明の第2の実施形態に係るデータ配送シス
テムの構成例を示す図
【図6】同実施形態に係るデータ配送システムの動作手
順の一例を示すフローチャート
【図7】本発明の第3の実施形態に係るデータ配送シス
テムの構成例を示す図
【図8】同実施形態に係るデータ配送システムの動作手
順の一例を示すフローチャート
【図9】同実施形態におけるチェックサム計算処理を説
明するための図
【図10】同実施形態におけるTCPパケットの構成例
を示す図
【図11】同実施形態に係るデータ配送システムの動作
手順の他の例を示すフローチャート
【図12】パケットの生成について説明するための図
【図13】従来のデータ配送システムの構成を示す図
【図14】従来のデータ配送システムのデータ記憶装置
に記憶されるデータ構造を示す図
【符号の説明】
1…データ記憶装置 2…データ送信装置 3…パケット交換網 21…チェックサム計算部 22…一時記憶部 23…プロトコル処理部 24…パケット送信部 25…HTTP処理部

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】データをパケット化して配送する際に各パ
    ケットにそのパケットに対する検査符号を書き込むデー
    タ配送システムであって、 複数個のデータと、あるデータに対してあるパケット転
    送単位ごとに計算された検査符号とを記憶するための記
    憶手段と、 前記記憶手段に記憶されている配送対象となったデータ
    を分割してパケットを生成するとともに、前記記憶手段
    に該データに対して該当するパケット転送単位による検
    査符号が記憶されている場合には、その記憶されている
    検査符号を利用して各パケットに書き込むべき検査符号
    を計算する処理手段とを備えたことを特徴とするデータ
    配送システム。
  2. 【請求項2】前記記憶手段に前記配送対象となったデー
    タに対して該当するパケット転送単位による検査符号が
    記憶されていない場合に、該データに対する該当するパ
    ケット転送単位ごとの検査符号を計算する手段を更に備
    えたことを特徴とする請求項1に記載のデータ配送シス
    テム。
  3. 【請求項3】前記処理手段は、前記データを前記パケッ
    ト転送単位で分割した各ブロックにそれぞれパケットヘ
    ッダを付加してパケットを生成するとともに、各パケッ
    トについて、それに含まれるブロックに対して計算され
    た検査符号とそのパケットヘッダとから該パケットに対
    する検査符号を計算し、これを該パケットヘッダの所定
    の領域に書き込むことを特徴とする請求項1または2に
    記載のデータ配送システム。
  4. 【請求項4】前記記憶手段は、より高速にアクセス可能
    な第1の記憶手段とより大容量の第2の記憶手段とを含
    み、 前記第1の記憶手段は、少なくとも、配送を行ったデー
    タと、該データに対するその配送の際のパケット転送単
    位ごとの検査符号とを、一定の記憶容量を上限として一
    時記憶するためのものであり、 前記第2の記憶手段は、少なくとも、配送対象となるデ
    ータを蓄積するためのものであることを特徴とする請求
    項1ないし3のいずれか1項に記載のデータ配送システ
    ム。
  5. 【請求項5】前記第1および第2の記憶手段に前記配送
    対象となったデータに対して該当するパケット転送単位
    による検査符号が記憶されておらず、かつ、該データに
    対する該当するパケット転送単位ごとの検査符号を計算
    した際に、該計算した検査符号を前記第1の記憶手段に
    記憶することを特徴とする請求項4に記載のデータ配送
    システム。
  6. 【請求項6】前記第1の記憶手段の所定の記憶領域に上
    書きをする際に、該上書きのために該第1の記憶手段か
    ら削除されることになるデータに対する検査符号を、前
    記第2の記憶手段に書き戻すことを特徴とする請求項4
    または5に記載のデータ配送システム。
  7. 【請求項7】前記検査符号はそれが書き込まれるパケッ
    トの内容の完全性を検査するためのものであることを特
    徴とする請求項1ないし6のいずれか1項に記載のデー
    タ配送システム。
  8. 【請求項8】前記検査符号は逐次的に計算可能なもので
    あることを特徴とする請求項1ないし7のいずれか1項
    に記載のデータ配送システム。
  9. 【請求項9】前記パケット転送単位を、自システムが直
    接接続されたネットワークのうち、データの配送を要求
    したクライアントに通じるネットワークに送り出すこと
    ができる最大セグメントサイズに等しい値とすることを
    特徴とする請求項1ないし8のいずれか1項に記載のデ
    ータ配送システム。
  10. 【請求項10】前記パケット転送単位を、自システムと
    クライアントとの間に存在する各ネットワークに送り出
    すことができる最大セグメントサイズのうち最も小さい
    ものに等しい値とすることを特徴とする請求項1ないし
    9のいずれか1項に記載のデータ配送システム。
  11. 【請求項11】内容が変化し得る第1のデータ部分と内
    容が不変の第2のデータ部分とからなるデータを配送対
    象とする場合、該第1のデータ部分と該第2のデータ部
    分とが異なるパケットに搭載されるようにパケットを生
    成するとともに、データに対する検査符号に関する処理
    は該第2のデータ部分についてのみ行うことを特徴とす
    る請求項1ないし10のいずれか1項に記載のデータ配
    送システム。
  12. 【請求項12】配送対象となるデータが、検査符号が計
    算されていない第1のデータ部分と、検査符号が前記記
    憶手段に記憶されている第2のデータ部分とから構成さ
    れる場合、該第1のデータ部分と該第2のデータ部分と
    が異なるパケットに搭載されるようにパケットを生成す
    るとともに、該第2のデータ部分を含むパケットに対す
    る検査符号は該記憶されている検査符号を利用して計算
    することを特徴とする請求項1ないし11のいずれか1
    項に記載のデータ配送システム。
  13. 【請求項13】前記第1のデータ部分はHTTPヘッダ
    であり、前記第2のデータ部分はHTTPボディである
    ことを特徴とする請求項11または12に記載のデータ
    配送システム。
  14. 【請求項14】データをパケット化して配送する際に各
    パケットにそのパケットに対する検査符号を書き込むデ
    ータ配送システムのデータ配送方法であって、 クライアントからデータの配送を要求された際に、該デ
    ータに対して該クライアントに応じて定まるパケット転
    送単位ごとに計算された検査符号が自システム内に記憶
    されているか否かを調べ、 記憶されていない場合には、前記データに対する前記パ
    ケット転送単位ごとの検査符号を計算するとともに、該
    計算した検査符号を自システム内に少なくとも一時的に
    記憶し、 前記配送対象となったデータを分割してパケットを生成
    するとともに、記憶されている該データに対する前記パ
    ケット転送単位ごとの検査符号を利用して各パケットに
    書き込むべき検査符号を計算することを特徴とするデー
    タ配送方法。
JP4798299A 1999-02-25 1999-02-25 データ配送システム及びデータ配送方法 Pending JP2000253054A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4798299A JP2000253054A (ja) 1999-02-25 1999-02-25 データ配送システム及びデータ配送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4798299A JP2000253054A (ja) 1999-02-25 1999-02-25 データ配送システム及びデータ配送方法

Publications (1)

Publication Number Publication Date
JP2000253054A true JP2000253054A (ja) 2000-09-14

Family

ID=12790532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4798299A Pending JP2000253054A (ja) 1999-02-25 1999-02-25 データ配送システム及びデータ配送方法

Country Status (1)

Country Link
JP (1) JP2000253054A (ja)

Cited By (4)

* 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 通信制御装置及び方法
JP2006081032A (ja) * 2004-09-10 2006-03-23 Canon Inc 通信制御装置及び方法
JP2014045462A (ja) * 2012-08-29 2014-03-13 Nec Access Technica Ltd パケット転送システム、パケット転送方法、及びそのためのプログラム
WO2017090078A1 (ja) * 2015-11-24 2017-06-01 三菱電機株式会社 組込み装置、通信方法及び通信プログラム

Cited By (7)

* 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 通信制御装置及び方法
JP2006081032A (ja) * 2004-09-10 2006-03-23 Canon Inc 通信制御装置及び方法
JP4612821B2 (ja) * 2004-09-10 2011-01-12 キヤノン株式会社 通信制御装置及び方法
JP4612820B2 (ja) * 2004-09-10 2011-01-12 キヤノン株式会社 通信制御装置及び方法
JP2014045462A (ja) * 2012-08-29 2014-03-13 Nec Access Technica Ltd パケット転送システム、パケット転送方法、及びそのためのプログラム
WO2017090078A1 (ja) * 2015-11-24 2017-06-01 三菱電機株式会社 組込み装置、通信方法及び通信プログラム
JPWO2017090078A1 (ja) * 2015-11-24 2018-03-15 三菱電機株式会社 組込み装置、通信方法及び通信プログラム

Similar Documents

Publication Publication Date Title
US6412092B1 (en) Method and apparatus to reduce the cost of preparing the checksum for out bound data in network communication protocols by caching
USRE45070E1 (en) Receive processing with network protocol bypass
JP3962369B2 (ja) ウェブ・ブラウザ・アプリケーションのパフォーマンスを向上する方法及び装置
Housel et al. WebExpress: A client/intercept based system for optimizing Web browsing in a wireless environment
JP3491011B2 (ja) 差分化通信システム
CA2218153C (en) Reduced overhead tcp communication system
US6279041B1 (en) Methods, systems and computer program products for differencing data communications using a message queue
US9355103B2 (en) System and method for bandwidth optimization in a network storage environment
EP1732285B1 (en) Apparatus and methods for a high performance hardware network protocol processing engine
US6954801B1 (en) Method and system for reducing data volume transferred over a wireless communications network
US7813339B2 (en) Direct assembly of a data payload in an application memory
US20030208600A1 (en) System and method for managing persistent connections in HTTP
JP2004342069A (ja) データ・キャッシュ方法およびデータ・キャッシュ装置
CN101409675A (zh) 网络分组净荷压缩
EP1228438A1 (en) System and method for managing connections between clients and a server with independent connection and data buffers
JP2012216230A (ja) ネットワーク・サーバ用の事前パケット化キャッシングの方法及び装置
US20070291782A1 (en) Acknowledgement filtering
US20020083193A1 (en) Parallel network data transmission
WO2003089944A1 (en) Flexible streaming hardware
US7539204B2 (en) Data and context memory sharing
JP2000253054A (ja) データ配送システム及びデータ配送方法
Mallet et al. Operating system support for protocol boosters
US6976149B1 (en) Mapping technique for computing addresses in a memory of an intermediate network node
US7010548B2 (en) Sparse and non-sparse data management method and system
JP2007529039A (ja) 接続管理の方法、システム、およびプログラム製品