JP3490000B2 - サーバ・システムおよびクライアント・サーバ間の通信方法 - Google Patents
サーバ・システムおよびクライアント・サーバ間の通信方法Info
- Publication number
- JP3490000B2 JP3490000B2 JP27281998A JP27281998A JP3490000B2 JP 3490000 B2 JP3490000 B2 JP 3490000B2 JP 27281998 A JP27281998 A JP 27281998A JP 27281998 A JP27281998 A JP 27281998A JP 3490000 B2 JP3490000 B2 JP 3490000B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- server
- client
- bus
- size
- 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
Links
Landscapes
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
ーバ間をネットワークで接続したクライアント・サーバ
・システムに関し、特に、クライアント・サーバ間の通
信技術に関する。
て、クライアント・サーバ間を繋ぐネットワークとし
て、イーサネットが広く普及している。イーサネットを
用いてデータ転送を行う場合、送信側では、送信データ
をイーサネットの送信規格である64Byte以上、
1.5KByte以下にフラグメント化して送信し、受
信側では、フラグメント化されたデータをリアセンブル
して、元データを取得する。
コル・スタックは、送信を行うアプリケーションからの
システムコールにより、送信データをフラグメント化し
てパケットを作成するとともに、通信経路のルーティン
グなどを行い、作成したパケットを送信バッファにコピ
ーしてシステムコールを終了する。
パケット送信が終了するとパケット送信通知割り込みを
発行する。上述したように、プロトコル・スタックは、
送信データを64Byte以上、1.5KByte以下
にフラグメント化して送信する。したがって、送信デー
タが1.5KByteより大きかった場合、およそ、送
信データの長さを1.5KByteで割った数のパケッ
トを作成していることになる。この場合、プロトコル・
スタックは、通常、パケット送信通知割り込みが発生す
る度にプロセスが中断され、該割り込み処理終了後、残
りのパケットを送信する。
のプロセスから他のプロセスへと処理を移行するため
に、コンテキスト・スイッチにより、レジスタの待避や
ロード、各種テーブルやリストなどの更新などが行われ
る。1回のシステムコールでは、アプリケーションのプ
ロセスからプロトコル・スタックのプロセスへ、および
プロトコル・スタックのプロセスからアプリケーション
のプロセスへと、2回のコンテキスト・スイッチが行わ
れる。さらに、パケット送信後の送信通知割り込みによ
り、実行中のプロセスから割り込み処理へ移行し、その
後、元のプロセスへ処理を戻すために、2回のコンテキ
スト・スイッチが行われる。なお、割り込み処理中にパ
ケット送信処理を行う場合は、割り込み処理中にプロト
コル・スタックの処理が加わるため、3回のコンテキス
ト・スイッチが行われることになる。
トデバイスは、受信バッファにパケットが到着する度
に、パケット到着通知割り込みを発行する。これによ
り、実行中のプロセスが中断され、割り込み処理が実行
される。また、プロトコル・スタックは、この割り込み
処理を契機として、到着したパケットをシステムメモリ
にコピーし、リアセンブルするといった受信処理を行
う。受信処理が終了すると、割り込み発生前の処理に戻
る。
ロセスから割り込み処理へ、割り込み処理からプロトコ
ル・スタックのプロセスへ、およびプロトコル・スタッ
クのプロセスから割り込み処理前に実行していたプロセ
スへと、3回のコンテキスト・スイッチが行われる。
トワーク・スループットの向上により、ネットワーク上
の単位時間あたりのデータ転送量が増加している。一
方、イーサネットでは、規格により、パケットサイズの
最大値が1.5KByte以下に設定されている。この
ため、サーバにおいて、パケット到着の時間間隔が縮小
して単位時間あたりの割り込み発生回数が増加し、これ
により、プロセッサの処理能力が不足するといった問題
が生じてきている。
えば、インテル社製のペンティアムプロセッサ)を搭載
したコンピュータにおいて、コンテキスト・スイッチの
実行には約500〜1,500マシンサイクルを要す
る。この時間は、200MHzの動作周波数を持つプロ
セッサを搭載したコンピュータでは、約2.5μsec
〜7.5μsecとなる。したがって、上述したよう
に、1回のパケット到着通知割り込みに対して、3回の
コンテキスト・スイッチが行われるので、パケットが到
着する度に、コンテキスト・スイッチのために約7.5
μsec〜22.5μsecの時間が費やされることに
なる。一方、100Mbpsのイーサネットでサイズ6
4Byte(512bit)のパケットが最大スループ
ットで到着した場合、パケット到着の時間間隔は約5μ
secとなる。この場合、パケット到着による割り込み
処理時間よりもパケット到着の時間間隔が短くなるた
め、プロセッサは、パケット到着通知割り込み発行に追
従して処理を行うことができなくなる。
テムコール発行毎、あるいはパケット送信通知割り込み
発行毎に、コンテキスト・スイッチが数回発生するた
め、プロセッサは、システムコール発行あるいはパケッ
ト送信通知割り込み発行に追従して処理を行うことがで
きなくなる。
やルーティング処理、あるいは、受信処理でのリアセン
ブル処理などによっても、プロセッサの負荷が増加して
おり、高スループットネットワークへ対応したクライア
ント・サーバ・システムの構築が一層困難となってい
る。
のであり、本発明の目的は、高スループットネットワー
クへ対応したクライアント・サーバ・システムを実現す
ることにある。特に、既存のネットワークやソフトウエ
ア資産を活用しつつ、サーバにおいて、ネットワーク通
信処理にかかるオーバヘッドを低減することにある。
に、本発明は、クライアントからの要求にしたがい処理
を実行するサーバ・システムであって、ネットワークを
介して少なくとも1つのクライアントに接続された第1
のサーバと、前記ネットワークで送信可能な最大パケッ
トサイズよりも大きなサイズのパケットを送信可能なバ
スを介して前記第1のサーバに接続された、前記第1の
サーバを介して受け取った前記クライアントからの要求
にしたがい処理を実行する第2のサーバと、を有し、前
記第1のサーバは、前記ネットワークを介して前記クラ
イアントより受信したパケットについて、当該パケット
がフラグメント化されている場合はリアセンブルしてか
ら前記バス上に送出し、フラグメント化されていない場
合はそのまま前記バス上に送出するとともに、前記バス
を介して前記第2のサーバより受信したパケットについ
て、前記ネットワークにて送信可能なサイズのパケット
にフラグメント化して、前記ネットワーク上に送出する
パケットサイズ変換手段を備え、前記第2のサーバは、
前記バスを介して前記第1のサーバより受信したパケッ
トを処理して前記クライアントの要求を復元するととも
に、送信すべきデータを前記バスにて送信可能なサイズ
のパケットにパケット化し、前記バス上に送出するパケ
ット化手段を備えることを特徴とする。
ライアントから送られてきたパケットについて、フラグ
メント化されているものは、第1のサーバにおいてリア
センブルされた後、第2のサーバに送信される。したが
って、第2のサーバが受信するパケットの数を、クライ
アントが送信したパケット数より減らすことができるの
で、パケット到着による割り込み発生回数が減少し、ク
ライアントの要求に応じた処理を行う第2のサーバのプ
ロセッサにかかる負荷を低減することができる。
は、第1のサーバにおいて、ネットワークで使用するサ
イズのパケット(バスにて送信可能なパケットのサイズ
よりも小さいサイズのパケット)にフラグメント化され
た後、ネットワーク上に送出される。したがって、第2
のサーバが直接ネットワーク上にパケットを送信する場
合に比べて、パケットの送信回数を減らすことができる
ので、パケット送信による割り込み発生回数が減少し、
クライアントの要求に応じた処理を行う第2のサーバの
プロセッサにかかる負荷を低減することができる。
での通信処理の負担を低減することができ、これによ
り、高スループットネットワークへ対応したクライアン
ト・サーバ・システムを実現することができる。
用するアプリケーション(クライアント・プログラム)
や第2のサーバで使用するアプリケーション(サーバ・
プログラム)、あるいは、ネットワークなどについて、
従来のものに対して修正を加える必要がない。このた
め、既存のソフトウエア資産や既に構築されてあるネッ
トワークを活用しつつ実現することが可能である。
ズ変換手段は、前記ネットワークを介して前記クライア
ントより受信した1以上のパケットを、当該パケットが
フラグメント化されている場合はリアセンブルしてか
ら、フラグメント化されていない場合はそのまま、前記
バスで送信可能な最大パケットサイズの範囲内で1つの
パケットにカプセル化し、前記バス上に送出するもので
もよい。この場合、前記パケット化手段は、前記バスを
介して受け取った前記カプセル化されたパケットから前
記クライアントよりのパケットおよび/または前記クラ
イアントよりのパケットをリアセンブルすることで得ら
れたパケット各々を取り出し、取り出したパケット各々
について処理することで前記クライアントの要求を復元
するようにする。
してクライアントから送られてきたパケット、あるいは
当該パケットをリアセンブルすることで得られたパケッ
トは、第1のサーバにおいて、複数まとめて1つのパケ
ットとして前記バス上に送出される。たとえば、ネット
ワークにてイーサネットが用いられている場合、第1の
サーバは、ネットワークを介してクライアントから送ら
れてきたパケットあるいは当該パケットをリアセンブル
することで得られたパケットを、複数まとめて、イーサ
ネットの送信規格で規定されたパケットの最大サイズで
ある1.5KByteよりも大きなサイズの1つのパケ
ットとして、第2のサーバに送信する。
ットの数を、クライアントが送信したパケット数より更
に減らすことができるので、パケット到着による割り込
み発生回数が減少し、クライアントの要求に応じた処理
を行う第2のサーバのプロセッサにかかる負荷を更に低
減することができる。
いて説明する。
クライアント・サーバ・システムの概略図である。
ーサネットなどのネットワーク40を介して、通信サー
バ20に接続されている。また、通信サーバ20は、高
速バス50を介して、アプリケーションサーバ30と接
続されている。ここで、クライアント10、通信サーバ
20およびアプリケーションサーバ30は、4つの階層
(ftp、HTTPなどのアプリケーション層、TC
P、UDPなどのトランスポート層、IPのインターネ
ット層、イーサネット、トークンリングなどのネットワ
ークインターフェース層)に階層化されたプロトコルの
集まりであるTCP/IP(Transmission Control Prot
ocol/Internet Protocol)にしたがい通信を行う。た
だし、ネットワークインターフェース層については、ネ
ットワーク40で用いるプロトコルで規定されたパケッ
トの最大サイズよりも大きなサイズのパケットを扱うこ
とができ、かつ複数のIPパケットを内部データに含め
ることが可能なプロトコルが、高速バス50にて用いら
れている。本実施形態では、ネットワーク40にイーサ
ネットを用いているので、高速バス50では、イーサネ
ットの送信規格で規定されたパケットの最大サイズであ
る1.5KByteよりも大きなパケットを扱うことが
できるプロトコル(たとえば、(株)日立製作所のハイ
パークロスバーネットワーク、Fibre Chann
el、MyriNet、Tandem社のServer
Netなど)が用いられる。
と1つの通信サーバ20と1つのアプリケーションサー
バ30を示しているが、当然のことながら、これらは複
数あってもよい。
接続するためのイーサネットデバイス101を備えたコ
ンピュータにより実現される。すなわち、イーサネット
デバイス101を制御するためのイーサネットデバイス
ドライバ102や、イーサネットデバイス101を介し
て送受するパケットをTCP/IPにしたがって処理す
るプロトコル・スタック103や、アプリケーションサ
ーバ30に対して処理を要求するクライアントプログラ
ム(たとえば、Webブラウザプログラムなどのアプリ
ケーションプログラム)104が、ハードディスクドラ
イブなどの記憶装置、あるいは、読取り装置を介してC
D−ROM、FDなどの可搬性のある記憶媒体から、メ
モリ上にロードされ、プロセッサにより実行されること
で実現される。
続するためのイーサネットデバイス201および高速バ
ス50と接続するための高速バスデバイス202を備え
たコンピュータにより実現される。すなわち、イーサネ
ットデバイス201を制御するためのイーサネットデバ
イスドライバ203や、高速バスデバイス202を制御
するための高速バスデバイスドライバ204や、ネット
ワーク40で扱うことができるパケットおよび高速バス
50で扱うことができるパケット間の変換処理を行うプ
ロトコル・スタック205が、ハードディスクドライブ
などの記憶装置、あるいは、読取り装置を介してCD−
ROM、FDなどの可搬性のある記憶媒体から、メモリ
上にロードされ、プロセッサにより実行されることで実
現される。
50と接続するための高速バスデバイス301を備えた
コンピュータにより実現される。すなわち、高速バスデ
バイス301を制御するための高速バスデバイスドライ
バ302や、高速バスデバイス301を介して送受する
パケットをTCP/IPにしたがって処理するプロトコ
ル・スタック303や、クライアント10の要求を処理
するサーバプログラム(たとえば、WWWサーバプログ
ラムなどのアプリケーションプログラム)304が、ハ
ードディスクドライブなどの記憶装置、あるいは、読取
り装置を介してCD−ROM、FDなどの可搬性のある
記憶媒体から、メモリ上にロードされ、プロセッサによ
り実行されることで実現される。
システムにおいて、クライアント10およびアプリケー
ションサーバ30間の通信は、以下のようにして行われ
る。
ョンサーバ30へデータを送信する場合について説明す
る。
ョンサーバ30へデータを送信する場合のパケットの流
れを示した図である。
て、プロトコル・スタック103は、クライアントプロ
グラム104からのシステムコールにより、クライアン
トプログラム104が作成した送信データ110をTC
P/IPにしたがって処理し、イーサネットの送信規格
に適合したサイズのIPパケットを作成する。そして、
作成したIPパケットをイーサネットデバイス101の
送信バッファ(図示せず)にコピーしてシステムコール
を終了する。イーサネットデバイス101は、送信バッ
ファにコピーされたIPパケットを、イーサネットに対
応したパケット111としてネットワーク40上に送出
する。
ットデバイス201は、ネットワーク40を介してパケ
ット111を受け取ると、当該パケット111からIP
パケットを取り出し、プロトコル・スタック205に渡
す。プロトコル・スタック205は、イーサネットデバ
イス201から受け取ったIPパケットに付されたIP
ヘッダの情報に基づいて、当該IPパケットがフラグメ
ント化されているか否かを調べる。フラグメント化され
ている場合はリアセンブルしてからバッファリングし、
フラグメント化されていない場合はそのままバッファリ
ングする。上記のバッファリング処理を、バッファリン
グされたデータサイズが、高速バス50で扱うことがで
きるサイズであって、少なくともイーサネットの送信規
格で規定されたパケットの最大サイズである1.5KB
yteよりも大きくなサイズになるまで続け、それか
ら、バッファリングしたデータを、高速バスデバイス2
02の送信バッファ(図示せず)にコピーする。高速バ
スデバイス202は、送信バッファにコピーされたデー
タをカプセル化し、高速バスパケット210として、高
速バス50上に送出する。
て、高速バスデバイス301は、高速バス50を介して
高速バスパケット210を受け取ると、当該パケット2
10に含まれる各IPパケット(ネットワーク40を介
して通信サーバ20が受け取ったIPパケット、あるい
は、当該IPパケットをリアセンブルすることで得られ
たIPパケット)を取り出し、プロトコル・スタック3
02に渡す。プロトコル・スタック303は、IPパケ
ットをTCP/IPにしたがって処理し、クライアント
10のクライアントプログラム104が作成したデータ
110を復元する。サーバプログラム304は、復元し
たデータ110にしたがいクライアント10の要求に応
じた処理を行う。
ションサーバ30へデータを送信する場合における通信
サーバ20の動作をより詳細に説明する。
ョンサーバ30へデータを送信する場合における通信サ
ーバ20の動作を説明するためのフロー図である。
ットワーク40を介してパケットを受信し、イーサネッ
トデバイス201の受信バッファ(図示せず)に格納す
るとともに、パケット到着通知割り込みを発行する(ス
テップ1001)。これにより、実行中のプロセスが中
断され、割り込み処理が実行される。
ーサネットデバイス201の受信バッファからIPパケ
ットを通信サーバ20が備えるシステムメモリ(図示せ
ず)にコピーする(ステップ1002)。それから、プ
ロトコル・スタック205は、システムメモリにコピー
されているIPパケットのIPヘッダを調べ、当該パケ
ットがフラグメント化されているか否かを判断する(ス
テップ1003)。そして、フラグメント化されている
場合は、フラグメント化された全てのIPパケットが揃
っているか否かを調べ(ステップ1003a)、揃って
いない場合はステップ1001に戻り、揃っている場合
は、フラグメント化されたIPパケットをリアセンブル
(ステップ1004)してからシステムメモリにバッフ
ァリングする(ステップ1005)。一方、ステップ1
003において、フラグメント化されていない場合は、
当該IPパケットをそのままシステムメモリにバッファ
リングする(ステップ1005)。
ステムメモリにバッファリングされているデータが、高
速バス50で扱うことができるパケットのサイズであっ
て、少なくともイーサネットの送信規格で規定されたパ
ケットの最大サイズである1.5KByteよりも大き
なサイズに達しているか否かを判断し(ステップ100
6)、達している場合はステップ1007に移行し、達
していない場合は、ステップ1001に戻って、イーサ
ネットデバイス201に次のIPパケットが到着するの
を待つ。
ステムメモリにバッファリングされているデータが、前
記パケットのサイズに達している場合、当該データを高
速バスデバイス202の送信バッファにコピーする(ス
テップ1007)。これを受けて、高速バスデバイス2
02は、送信バッファにコピーされたデータをカプセル
化し、高速バスパケットとして、高速バス50上に送出
する(ステップ1008)。
データは、イーサネットの規格に適合したサイズのパケ
ットでネットワーク40上を伝送され、通信サーバ20
において、イーサネットの規格サイズよりも大きなサイ
ズに変換されて、高速バス50を経てアプリケーション
サーバ30に伝送される。
ライアント10へデータを送信する場合について説明す
る。
ライアント10へデータを送信する場合のパケットの流
れを示した図である。
30において、プロトコル・スタック303は、サーバ
プログラム304からのシステムコールにより、サーバ
プログラム304が作成した送信データ310をTCP
/IPにしたがって処理し、高速バス50で扱うことが
できるサイズのIPパケットを作成する。そして、作成
したIPパケットを高速バスデバイス301の送信バッ
ファ(図示せず)にコピーしてシステムコールを終了す
る。高速バスデバイス301は、送信バッファにコピー
されたIPパケットをカプセル化し、高速バスパケット
311として、高速バス50上に送出する。
デバイス202は、高速バス50を介して高速バスパケ
ット311を受け取ると、当該パケット311からIP
パケットを取り出し、プロトコル・スタック205に渡
す。プロトコル・スタック205は、受け取ったIPパ
ケットを、ネットワーク40で扱うことができるサイズ
(ネットワーク40で用いるイーサネットの送信規格で
規定されたパケットの最大サイズである1.5KByt
eよりも小さなサイズ)にフラグメント化し、IPパケ
ットを作成する。そして、作成したIPパケットをイー
サネットデバイス201の送信バッファ(図示せず)に
コピーする。イーサネットデバイス201は、送信バッ
ファにコピーされたパケットを、イーサネットに対応し
たパケット211にして、順次、ネットワーク40上に
送出する。
ネットデバイス101は、ネットワーク40を介して受
け取ったパケット211からIPパケットを取り出し、
プロトコル・スタック103に渡す。プロトコル・スタ
ック103は、IPパケットをTCP/IPにしたがっ
て処理し、アプリケーションサーバ30のサーバプログ
ラム304が作成したデータ310を復元する。クライ
アントプログラム104は、復元したデータ310にし
たがい処理を行う。
クライアント10へデータを送信する場合における通信
サーバ20の動作をより詳細に説明する。
ライアント10へデータを送信する場合における通信サ
ーバ20の動作を説明するためのフロー図である。
ス50を介して高速バスパケットを受信し、高速バスデ
バイス301の受信バッファ(図示せず)に格納すると
ともに、パケット到着通知割り込みを発行する(ステッ
プ2001)。これにより、実行中のプロセスが中断さ
れ、割り込み処理が実行される。
速バスデバイス301の受信バッファからIPパケット
を通信サーバ20が備えるシステムメモリ(図示せず)
にコピーする(ステップ2002)。次に、プロトコル
・スタック205は、システムメモリにコピーされてい
るIPパケットを、ネットワーク40で扱うことができ
るパケットサイズ(イーサネットの送信規格で規定され
たパケットの最大サイズである1.5KByteよりも
小さなサイズ)にフラグメント化し、IPパケットを作
成する(ステップ2003)。次に、プロトコル・スタ
ック205は、作成したIPパケットをイーサネットデ
バイス201の送信バッファにコピーする。イーサネッ
トデバイス201は、送信バッファにコピーされたIP
パケットを、イーサネットに対応したパケットにしてネ
ットワーク40上に送出する(ステップ2004)。こ
こで、イーサネットデバイス40は、パケットを1つ送
出する毎に送信通知割り込み通知を発行する(ステップ
2005)。
ットデバイス201から送信通知割り込み通知を受け取
ると、送信バッファに未送信のIPパケットが残ってい
るか否かを調べ(ステップ2006)、残っている場合
は、ステップ2004に戻って残りのパケットをネット
ワーク40上に送出する。
が送信したデータは、高速バス50の規格に適合したサ
イズのパケットにフラグメント化されて高速バス50上
を伝送され、通信サーバ20において、イーサネットの
規格サイズよりも小さなサイズに変換されて、ネットワ
ーク40を経てクライアント10に伝送される。
た。
介してクライアント10から送られてきたパケットは、
通信サーバ20において、前記パケットよりも大きなサ
イズのパケットに変換されて、アプリケーションサーバ
30に送信される。したがって、アプリケーションサー
バ30が受信するパケットの数を、クライアント10が
送信したパケット数より減らすことができるので、パケ
ット到着による割り込み発生回数が減少し、アプリケー
ションサーバ30のプロセッサにかかる負荷を低減する
ことができる。
したパケットは、通信サーバ20において、ネットワー
ク40で使用する、前記パケットよりも小さなサイズの
パケットに変換されて、ネットワーク40上に送出され
る。したがって、アプリケーションサーバ30が直接ネ
ットワーク40上にパケットを送信する場合に比べて、
パケットの送信回数を減らすことができるので、パケッ
ト送信による割り込み発生回数が減少し、アプリケーシ
ョンサーバ30のプロセッサにかかる負荷を低減するこ
とができる。
の通信処理の負担を低減することができ、これにより、
高スループットネットワークへ対応したクライアント・
サーバ・システムを実現することができる。
で使用するクライアントプログラム104やアプリケー
ションサーバ30で使用するサーバプログラム304、
クライアント10およびアプリケーションサーバ30で
使用するプロトコル・スタック103、303、あるい
は、ネットワーク40などについて、従来のものに対し
て修正を加える必要がない。このため、既存のソフトウ
エア資産や既に構築されてあるネットワークを活用しつ
つ実現することが可能である。
るものではなく、その要旨の範囲内で数々の変形が可能
である。
バ20において、ネットワーク40を介して受け取った
IPパケット、あるいは当該IPパケットをリアセンブ
ルしたIPパケットをシステムメモリにバッファリング
し、バッファリングしたデータが高速バス50で扱うこ
とができるサイズ(イーサネットの送信規格で規定され
たパケットの最大サイズである1.5KByteよりも
大きなサイズ)に達したときに、当該バッファリングし
たデータをカプセル化し、高速バスパケットとして、高
速バス40上に送出するようにしている。
ものではない。たとえば、通信サーバ20に、所定時間
毎に信号を発生するタイマを設け、IPパケットをタイ
マより信号が出力されるまでシステムメモリにバッファ
リングし、タイマより信号が出力されたときに、バッフ
ァリングしたデータを、高速バス50で扱うことができ
るパケットサイズでカプセル化し、高速バスパケットと
して、高速バス40上に送出するようにしてもよい。な
お、タイマが信号を発生する時間間隔は、使用するネッ
トワーク40のスループットや、アプリケーションサー
バや、クレーム10上のアプリケーションの要求スルー
プットなどに基づいて求めることができる。たとえば、
システムメモリにバッファリングしたデータが高速バス
50で扱うことができるパケットサイズに達するのに要
する時間よりも長くなるように設定する。この時間は、
使用するネットワーク40のスループットに基づいて求
めることができる。
実施形態における、クライアント10からアプリケーシ
ョンサーバ30へデータを送信する場合における通信サ
ーバ20の動作を説明するためのフロー図である。
ットワーク40を介してパケットを受信し、イーサネッ
トデバイス201の受信バッファに格納するとともに、
パケット到着通知割り込みを発行する(ステップ300
1)。これにより、実行中のプロセスが中断され、割り
込み処理が実行される。
ーサネットデバイス201の受信バッファからIPパケ
ットを通信サーバ20が備えるシステムメモリ(図示せ
ず)にコピーする(ステップ3002)。それから、プ
ロトコル・スタック205は、システムメモリにコピー
されているIPパケットのIPヘッダを調べ、当該パケ
ットがフラグメント化されているか否かを判断する(ス
テップ3003)。そして、フラグメント化されている
場合は、フラグメント化された全てのIPパケットが揃
っているか否かを調べ(ステップ3003a)、揃って
いない場合はステップ3001に戻り、揃っている場合
は、フラグメント化されたIPパケットをリアセンブル
(ステップ3004)してからシステムメモリにバッフ
ァリングする(ステップ3005)。一方、ステップ3
003において、フラグメント化されていない場合は、
当該IPパケットをそのままシステムメモリにバッファ
リングする(ステップ3005)。
信サーバに設けられたタイマ(図示せず)より信号が出
力されたか否かを判断し(ステップ3006)、出力さ
れた場合はステップ3007に移行し、出力されていな
い場合はステップ3001に戻って、イーサネットデバ
イス201に次のパケットが到着するのを待つ。
イマより信号が出力された場合、バッファリングされて
いるデータのうち、高速バス50で扱うことができるサ
イズであって、少なくとも、イーサネットの送信規格で
規定されたパケットの最大サイズである1.5KByt
eよりも大きなサイズ分のデータを高速バスデバイス2
02の送信バッファにコピーする(ステップ300
7)。これを受けて、高速バスデバイス202は、送信
バッファにコピーされたデータをカプセル化し、高速バ
スパケットとして、高速バス50上に送出する(ステッ
プ3008)。ここで、高速バスデバイス202は、高
速バスパケットを1つ送出する毎に送信通知割り込み通
知を発行する(ステップ3009)。
デバイス202から送信通知割り込み通知を受け取る
と、システムメモリに未送信のデータが残っているか否
かを調べ(ステップ3010)、残っている場合は、ス
テップ3007に戻って残りのデータを高速バスパケッ
トとしてネットワーク40上に送出する。
データは、イーサネットの規格に適合したサイズにパケ
ット化されてネットワーク40上を伝送され、通信サー
バ20において、高速バス50の規格に適合した、イー
サネットの規格サイズよりも大きなサイズのパケットに
変換されて、高速バス50を経てアプリケーションサー
バ30に伝送される。
20に、所定時間毎に信号を発生するタイマと、ネット
ワーク40上を伝送するパケットのイーサネットデバイ
ス201への到着時間間隔を計測するパケット到着間隔
計測部を設け、パケット到着間隔計測部で監視した時間
間隔が所定値以下の場合は、上記説明した図6に示すフ
ローにしたがい、タイマより信号が出力されたときにシ
ステムメモリにバッファリングされたデータをパケット
化して高速バス40上に送出し、所定値を越えている場
合は、図7に示すフローにしたがい、イーサネットデバ
イス201からパケット到着通知割り込みが発行される
毎に、システムメモリにバッファリングされたデータを
パケット化して高速バス40上に送出するようにしても
よい。
ネットデバイス201から通知されるパケット到着割り
込みの通知間隔を計測することで実現できる。また、前
記所定値は、システムメモリに割り当てられた、データ
をバッファリングするバッファのサイズ、ネットワーク
40上を伝送するパケットのイーサネットデバイス20
1への到着時間間隔とバッファリングされるデータのサ
イズの変化との関係などを考慮して、設定すればよい。
る。
ットワーク40を介してパケットを受信し、イーサネッ
トデバイス201の受信バッファに格納するとともに、
パケット到着通知割り込みを発行する(ステップ500
1)。これにより、実行中のプロセスが中断され、割り
込み処理が実行される。
ーサネットデバイス201の受信バッファからIPパケ
ットを通信サーバ20が備えるシステムメモリにコピー
する(ステップ5002)。それから、プロトコル・ス
タック205は、システムメモリにコピーされているI
PパケットのIPヘッダを調べ、当該パケットがフラグ
メント化されているか否かを判断する(ステップ500
3)。そして、フラグメント化されている場合は、フラ
グメント化された全てのIPパケットが揃っているか否
かを調べ(ステップ5003a)、揃っていない場合は
ステップ1001に戻り、揃っている場合は、フラグメ
ント化されたIPパケットをリアセンブル(ステップ5
004)してから高速バスデバイス202の送信バッフ
ァにコピーする(ステップ5005)。一方、ステップ
5003において、フラグメント化されていない場合
は、当該IPパケットをそのまま高速バスデバイス20
2の送信バッファにコピーする(ステップ5005)。
これを受けて、高速バスデバイス202は、送信バッフ
ァにコピーされたデータをカプセル化し、高速バスパケ
ットとして、高速バス50上に送出する(ステップ50
06)。
データは、イーサネットの規格に適合したサイズのパケ
ットでネットワーク40上を伝送され、通信サーバ20
において、フラグメント化されているIPパケットにつ
いてはリアセンブルされてから、高速バス50を経てア
プリケーションサーバ30に伝送される。
40に接続されている通信サーバ20が1つの場合につ
いて説明したが、当然のことながら、複数の通信サーバ
20がネットワーク40に接続されるように構成しても
よい。
0に接続されているアプリケーションサーバ30が1つ
の場合について説明したが、当然のことながら、複数の
アプリケーションサーバ30が高速バス50に接続され
るように構成してもよい。また、各アプリケーションサ
ーバ30で稼働するサーバプログラム304は複数のポ
ートを使用するものであってもよい。
サネットデバイス201を介して受け取ったIPパケッ
ト、あるいは当該IPパケットをリアセンブルすること
で得られたIPパケットをシステムメモリにバッファリ
ングするに際し、前記IPパケットをIPヘッダの情報
により特定される送信先(アプリケーションサーバ30
単位、あるいはサーバプログラム304のポート単位)
毎にバッファリングするようにしてもよい。そして、送
信先毎にバッファリングされたデータのサイズをモニタ
し、当該サイズが高速バス50で扱えるパケットサイズ
に達したものをカプセル化し、高速バスパケットとし
て、高速バス50に送出するようにしてもよい。
実施形態における、クライアント10からアプリケーシ
ョンサーバ30へデータを送信する場合における通信サ
ーバ20の動作を説明するためのフロー図である。
ットワーク40を介してパケットを受信し、イーサネッ
トデバイスの受信バッファに格納するとともに、パケッ
ト到着通知割り込みを発行する(ステップ4001)。
これにより、実行中のプロセスが中断され、割り込み処
理が実行される。
ーサネットデバイス201の受信バッファからIPパケ
ットを通信サーバ20が備えるシステムメモリ(図示せ
ず)にコピーする(ステップ4002)。それから、プ
ロトコル・スタック205は、システムメモリにコピー
されているIPパケットのIPヘッダを調べ、当該パケ
ットがフラグメント化されているか否かを判断する(ス
テップ4003)。そして、フラグメント化されている
場合は、フラグメント化された全てのIPパケットが揃
っているか否かを調べ(ステップ4003a)、揃って
いない場合はステップ4001に戻り、揃っている場合
は、フラグメント化されたIPパケットをリアセンブル
(ステップ4004)してからステップ4005に移行
する。一方、ステップ4003において、フラグメント
化されていない場合は、直ちにステップ4005に移行
する。
スタック205は、ネットワーク40を介して受け取っ
たIPパケット、あるいは、当該IPパケットをリアセ
ンブルすることで得られたIPパケットのIPヘッダを
調べ、送信先のサーバプログラム304のポートを取得
する(ステップ4005)。そして、IPパケットを、
システムメモリに、前記取得した送信先のサーバプログ
ラム304のポート毎にバッファリングする(ステップ
4006)。
ーバプログラム304のポート毎にバッファリングされ
たデータのうち、データサイズが高速バス50で扱うこ
とができるパケットのサイズに達しているものがあるか
否かを判断する(ステップ4007)。達しているもの
がある場合はステップ4008に移行し、達しているも
のがない場合はステップ4001に戻って、イーサネッ
トデバイス201に次のパケットが到着するのを待つ。
ログラム304のポート毎にバッファリングされたデー
タのうち、データサイズが高速バス50で扱うことがで
きるパケットサイズであって、少なくともイーサネット
の送信規格で規定されたパケットの最大サイズである
1.5KByteよりも大きなサイズに達しているもの
がある場合、当該データを高速バスデバイス202の送
信バッファにコピーする(ステップ4008)。これを
受けて、高速バスデバイス202は、送信バッファにコ
ピーされたデータをカプセル化し、高速バスパケットと
して、高速バス50上に送出する(ステップ400
9)。ここで、高速バスデバイス202は、高速バスパ
ケットを送出すると送信通知割り込み通知を発行する。
デバイス202から送信通知割り込み通知を受け取る
と、システムメモリにバッファリング・データが残って
いるか否かを調べ(ステップ4008)、残っている場
合は、ステップ4001に戻って、イーサネットデバイ
ス201に次のパケットが到着するのを待つ。
を介してクライアント10から受け取ったIPパケット
は、IPヘッダの情報により特定される送信先単位でま
とめられて、アプリケーションサーバ30へ送信され
る。
トデバイス201を介して受け取ったIPパケット、あ
るいは、当該IPパケットをリアセンブルすることで得
られたIPパケットをシステムメモリにバッファリング
するに際し、IPヘッダの情報により特定される送信先
毎にバッファリングするものについて説明しているが、
IPヘッダの情報により特定される送信元(クライアン
ト10単位、あるいはクライアントプログラム104の
ポート単位)毎にバッファリングするように修正するこ
とも可能である。
デバイス201を介して受け取ったIPパケットを一旦
システムメモリにコピーし、それから、IPパケット
を、フラグメント化されているものはリアセンブルして
から、フラグメント化されていないものはそのまま、シ
ステムメモリにバッファリングし、バッファリングされ
たIPパケットのデータサイズが所定のサイズに達した
ときに、あるいはタイマから信号が出力されたときに、
前記バッファリングされたIPパケットを1つのパケッ
トにカプセル化して高速バスパケットとし、高速バス5
0上に送出するものについて説明した。しかしながら、
本発明はこれに限定されるものではない。
介して受け取ったIPパケットをシステムメモリにコピ
ーし、コピーしたIPパケットのデータサイズが所定の
サイズに達したときに、あるいはタイマから信号が出力
されたときに、前記コピーしたIPパケットを、フラグ
メント化されているものはリアセンブルしてから、フラ
グメント化されていないものはそのまま、1つのパケッ
トにカプセル化して高速バスパケットとし、高速バス5
0上に送出するようにしてもよい。
らパケット到着通知割り込みが発行される毎に、イーサ
ネットデバイス201を介して受け取ったIPパケット
を、フラグメント化されているものはリアセンブルして
から、フラグメント化されていないものはそのまま、カ
プセル化して高速バスパケットとし、高速バス50上に
送出するようにしてもよい。この場合でも、ネットワー
ク40上でフラグメント化されているIPパケットがリ
アセンブルされて高速バス50上に送出されることにな
るので、アプリケーションサーバ30が受信するパケッ
ト数を減らすことができる。
ターフェース層として、ネットワーク40にイーサネッ
トを用いた場合について説明したが、その他のプロトコ
ル、たとえばトークリングを用いた場合でも、高速バス
で用いるパケットのサイズをトークリングで規定するパ
ケットサイズよりも大きくすることで、本発明は同様に
実現できる。
通信処理にかかるサーバの負担を分散させることがで
き、これにより、高スループットネットワークへ対応し
たクライアント・サーバ・システムを実現することがで
きる。
・サーバ・システムの概略図である。
30へデータを送信する場合のパケットの流れを示した
図である。
30へデータを送信する場合における通信サーバ20の
動作を説明するためのフロー図である。
10へデータを送信する場合のパケットの流れを示した
図である。
10へデータを送信する場合における通信サーバ20の
動作を説明するためのフロー図である。
アント10からアプリケーションサーバ30へデータを
送信する場合における通信サーバ20の動作を説明する
ためのフロー図である。
アント10からアプリケーションサーバ30へデータを
送信する場合における通信サーバ20の動作を説明する
ためのフロー図である。
アント10からアプリケーションサーバ30へデータを
送信する場合における通信サーバ20の動作を説明する
ためのフロー図である。
Claims (3)
- 【請求項1】クライアントからの要求にしたがい処理を
実行するサーバ・システムであって、 ネットワークを介して少なくとも1つのクライアントに
接続された第1のサーバと、前記ネットワークで送信可
能な最大パケットサイズよりも大きなサイズのパケット
を送信可能なバスを介して前記第1のサーバに接続され
た、前記第1のサーバを介して受け取った前記クライア
ントからの要求にしたがい処理を実行する第2のサーバ
と、を有し、 前記第1のサーバは、前記ネットワークを介して前記ク
ライアントより受信したパケットを、当該パケットがフ
ラグメント化されている場合はリアセンブルしてから前
記バス上に送出するとともに、前記バスを介して前記第
2のサーバより受信したパケットを、前記ネットワーク
にて送信可能なサイズのパケットにフラグメント化し
て、前記ネットワーク上に送出するパケットサイズ変換
手段を備え、 前記第2のサーバは、送信すべきデータを前記バスにて
送信可能なサイズのパケットにパケット化し、前記バス
上に送出するパケット化手段を備え、前記パケットサイズ変換手段は、所定時間毎に信号を発
生するタイマを備え、前記タイマより信号が出力された
ときに、それまでに前記ネットワークを介して前記クラ
イアントより受信した1つ以上のパケットを、当該パケ
ットがフラグメント化されている場合はリアセンブルし
てから、フラグメント化されていない場合はそのまま、
前記バスで送信可能な最大パケットサイズの範囲内で1
つのパケットにカプセル化し、前記バス上に送出し、 前記パケット化手段は、前記バスを介して受け取った前
記カプセル化されたパケットから、前記第1のサーバが
クライアントより受信したパケットがフラグメント化さ
れている場合は前記リアセンブルにより得られたパケッ
トを、または、前記第1のサーバがクライアントより受
信したパケットがフラグメント化されていない場合は当
該パケットを、各々取り出し、取り出したパケット各々
について処理することを特徴とするサーバ・システム。 - 【請求項2】クライアントからの要求にしたがい処理を
実行するサーバ・システムであって、ネットワークを介
して少なくとも1つのクライアントに接続された第1の
サーバと、前記ネットワークで送信可能な最大パケット
サイズよりも大きなサイズのパケットを送信可能なバス
を介して前記第1のサーバに接続された、前記第1のサ
ーバを介して受け取った前記クライアントからの要求に
したがい処理を実行する第2のサーバと、を有し、 前記第1のサーバは、前記ネットワークを介して前記ク
ライアントより受信したパケットを、当該パケットがフ
ラグメント化されている場合はリアセンブルしてから前
記バス上に送出するとともに、前記バスを介して前記第
2のサーバより受信したパケットを、前記ネットワーク
にて送信可能なサイズのパケットにフラグメント化し
て、前記ネットワーク上に送出するパケットサイズ変換
手段を備え、 前記第2のサーバは、送信すべきデータを前記バスにて
送信可能なサイズのパケットにパケット化し、前記バス
上に送出するパケット化手段を備え、 前記パケットサイズ変換手段は、所定時間毎に信号を発
生するタイマと、前記ネットワークを介して受信したパ
ケットの受信間隔を監視する監視手段とを備え、 前記監視手段で監視した受信間隔が所定値を越えていな
い場合は、前記タイマより信号が出力されたときに、そ
れまでに前記ネットワークを介して前記クライアントよ
り受信した1つ以上のパケットを、当該パケットがフラ
グメント化されている場合はリアセンブルしてから、フ
ラグメント化されていない場合はそのまま、前記バスで
送信可能な最大パケットサイズの範囲内で1つのパケッ
トにカプセル化し、前記バス上に送出するとともに、 前記監視手段で監視した受信間隔が前記所定値を越えて
いる場合は、前記ネットワークを介して前記クライアン
トよりパケットを受信する毎に、当該パケットがフラグ
メント化されている場合はリアセンブルしてから、フラ
グメント化されていない場合はそのまま、前記バスで送
信可能な最大パケットサイズの範囲内で1つのパケット
にカプセル化し、前記バス上に送出し、 前記パケット化手段は、前記バスを介して受け取った前
記カプセル化されたパケットから、前記第1のサーバが
クライアントより受信したパケットがフラグメント化さ
れている場合は前記リアセンブルにより得られたパケッ
トを、または、前記第1のサーバがクライアントより受
信したパケットがフラグメント化されていない場合は当
該パケットを、各々取り出し、取り出したパケット各々
について処理することを特徴とするサーバ・システム。 - 【請求項3】クライアントからの要求にしたがい処理を
実行するサーバ・システムであって、ネットワークを介
して少なくとも1つのクライアントに接続された第1の
サーバと、前記ネットワークで送信可能な最大パケット
サイズよりも大きなサイズのパケットを送信可能なバス
を介して前記第1のサーバに接続された、前記第1のサ
ーバを介して受け取った前記クライアントからの要求に
したがい処理を実行する第2のサーバと、を有し、 前記第1のサーバは、前記ネットワークを介して前記ク
ライアントより受信したパケットを、当該パケットがフ
ラグメント化されている場合はリアセンブルしてから前
記バス上に送出するとともに、前記バスを介して前記第
2のサーバより受信したパケットを、前記ネットワーク
にて送信可能なサイズのパケットにフラグメント化し
て、前記ネットワーク上に送出するパケットサイズ変換
手段を備え、 前記第2のサーバは、送信すべきデータを前記バスにて
送信可能なサイズのパケットにパケット化し、前記バス
上に送出するパケット化手段を備え、 前記パケットサイズ変換手段は、前記ネットワークを介
して前記クライアントより受信した1つ以上のパケット
を、パケットの送信先あるいは送信元毎に管理し、デー
タサイズが所定のサイズに達したものから順に、当該パ
ケットがフラグメント化されている場合はリアセンブル
してから、フラグメント化されていない場合はそのま
ま、前記バスで送信可能な最大パケットサイズの範囲内
で1つのパケットにカプセル化し、前記バス上に送出
し、 前記パケット化手段は、前記バスを介して受け取った前
記カプセル化されたパケットから、前記第1のサーバが
クライアントより受信したパケットがフラグメント化さ
れている場合は前記リアセンブルにより得られたパケッ
トを、または、前記第1のサーバがクライアントより受
信したパケットがフラグメント化されていない場合は当
該パケットを、各々取り出し、取り出したパケット各々
について処理することを特徴とするサーバ・システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27281998A JP3490000B2 (ja) | 1998-09-28 | 1998-09-28 | サーバ・システムおよびクライアント・サーバ間の通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27281998A JP3490000B2 (ja) | 1998-09-28 | 1998-09-28 | サーバ・システムおよびクライアント・サーバ間の通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000101613A JP2000101613A (ja) | 2000-04-07 |
JP3490000B2 true JP3490000B2 (ja) | 2004-01-26 |
Family
ID=17519207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27281998A Expired - Fee Related JP3490000B2 (ja) | 1998-09-28 | 1998-09-28 | サーバ・システムおよびクライアント・サーバ間の通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3490000B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3557998B2 (ja) | 2000-04-28 | 2004-08-25 | 日本電気株式会社 | フラグメンテーション処理デバイスおよびこれを用いたフラグメンテーション処理装置 |
JP4156568B2 (ja) | 2004-06-21 | 2008-09-24 | 富士通株式会社 | 通信システムの制御方法、通信制御装置、プログラム |
JP4490331B2 (ja) * | 2004-08-03 | 2010-06-23 | 富士通株式会社 | 断片パケット処理方法及びこれを用いるパケット転送装置 |
JP4526458B2 (ja) * | 2005-07-29 | 2010-08-18 | 富士通株式会社 | パケット処理装置及びパケット処理プログラム |
JP2008009482A (ja) * | 2006-06-27 | 2008-01-17 | Fujitsu Ltd | リード/ライト監視制御方法及びシステム |
US8811411B2 (en) * | 2008-12-24 | 2014-08-19 | Entropic Communications, Inc. | Packet aggregation and fragmentation at layer-2 over a managed network |
-
1998
- 1998-09-28 JP JP27281998A patent/JP3490000B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000101613A (ja) | 2000-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200328973A1 (en) | Packet coalescing | |
US8649395B2 (en) | Protocol stack using shared memory | |
US7355971B2 (en) | Determining packet size in networking | |
US7526577B2 (en) | Multiple offload of network state objects with support for failover events | |
US7027450B2 (en) | Frame batching and compression for IP transmission | |
US7639700B1 (en) | Architecture for efficient utilization and optimum performance of a network | |
US6321269B1 (en) | Optimized performance for transaction-oriented communications using stream-based network protocols | |
JP2003333076A (ja) | ネットワークスタックをオフロードする方法 | |
JP2000332817A (ja) | パケット処理装置 | |
WO2005101767A1 (en) | Message context based tcp transmission | |
JP4658546B2 (ja) | フェイルオーバーイベントをサポートするネットワーク状態オブジェクトの多重オフロード | |
JP3490000B2 (ja) | サーバ・システムおよびクライアント・サーバ間の通信方法 | |
JP3711156B2 (ja) | ファイル転送方法 | |
JP2009503997A5 (ja) | ||
US20050198007A1 (en) | Method, system and algorithm for dynamically managing a connection context database | |
US8811429B2 (en) | Batching and compression for IP transmission | |
Chu et al. | Modeling and analysis of the Unix communication subsystems | |
KR19980034183A (ko) | 이더넷을 통한 통신시스템의 데이터그램 처리방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071107 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081107 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081107 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101107 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101107 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111107 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111107 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121107 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121107 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131107 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |