JP2000341328A - Data repeater - Google Patents

Data repeater

Info

Publication number
JP2000341328A
JP2000341328A JP14786899A JP14786899A JP2000341328A JP 2000341328 A JP2000341328 A JP 2000341328A JP 14786899 A JP14786899 A JP 14786899A JP 14786899 A JP14786899 A JP 14786899A JP 2000341328 A JP2000341328 A JP 2000341328A
Authority
JP
Japan
Prior art keywords
data
application
packet
difference information
buffer
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.)
Withdrawn
Application number
JP14786899A
Other languages
Japanese (ja)
Inventor
Makoto Kubota
真 久保田
Naoki Oguchi
直樹 小口
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 JP14786899A priority Critical patent/JP2000341328A/en
Publication of JP2000341328A publication Critical patent/JP2000341328A/en
Withdrawn legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To shorten the processing time by excluding redundancy of copy processing. SOLUTION: A cache memory 200a of a low-order layer stores received data in the unit of packets (1), a table generating means CCTC generates a cache management table CCT denoting cross reference between data copied to a buffer 300a of an application layer from the low-order layer with a packet on the cache memory 200a and stores it to a buffer 300 (2), after data processing, a difference information generating means DIFC uses the cross reference stored in the table CCT to generate information specifying a packet needing revision and different information DIF having a revised position and revised contents in the packet (3), an update section UPD of the low-order layer uses the difference information to update the packet stored in the cache memory 200a and the result of update is used for transmission data (4).

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は端末間通信を中継す
る装置(中継装置)に係わり、特に、外部より下位レイ
ヤ(ハードウェアレイヤ、プロトコルレイヤ)を介して
受信したデータに対して上位レイヤであるアプリケーシ
ョンレイヤで所定のデータ処理を施し、処理結果に応じ
たデータを下位レイヤを介して外部へ送信する中継装置
に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus for relaying communication between terminals (relay apparatus). The present invention relates to a relay device that performs predetermined data processing in a certain application layer and transmits data according to a processing result to the outside via a lower layer.

【0002】[0002]

【従来の技術】(a)従来のネットワーク環境 近年のネットワーク環境では、図30に示すようにイン
ターネットとイントラネットの境界部分などにルータな
どの中継装置RTを設置し、中継装置RTで受信データに所
定の処理を施して送信データを作成し、該送信データを
下流方向に送信する形態が多く取られている。たとえ
ば、中継装置RTのアプリケーションは、端末T1からコネ
クションCN1を介して到来するデータに対してセキュリ
ティチェックを実行し、チェック処理により更新したあ
るいは新規に作成した送信データを通信経路上の次に位
置する端末T2にコネクションCN2を介して送信する。こ
のような通信形態において快適な通信実現のために中継
装置に対してより高速な処理性能が要求されている。
2. Description of the Related Art (a) Conventional network environment In a recent network environment, a relay device RT such as a router is installed at a boundary portion between the Internet and an intranet as shown in FIG. In many cases, transmission data is created by performing the processing described above, and the transmission data is transmitted downstream. For example, the application of the relay device RT performs a security check on the data arriving from the terminal T1 via the connection CN1, and locates the transmission data updated or newly created by the check processing at the next position on the communication path. It transmits to terminal T2 via connection CN2. In such a communication mode, the relay device is required to have higher processing performance in order to realize comfortable communication.

【0003】尚、図30のソフトウェア機能を有する中
継装置RTは、ハードウェアHW及びソフトウェアから成
り、ソフトウェアは更に、主にプロトコル処理等の基
本制御を行うOS(以下カーネルKNLという)、カーネ
ルKNL上で動作するアプリケーションAPLとにより構成さ
れている。かかる構成において、アプリケーションAPL
は通常、カーネルKNLやハードウェアHW上のメモリに対
して直接アクセスすることができない。このため、上記
中継装置RTにおいてアプリケーションAPLがセキュリテ
ィチェックなどのソフトウェア処理を行うには、図30
の(i)〜(ii)で示すように下位レイヤ(カーネルKN
L及びハードウェアHW)のメモリ領域からアプリケーシ
ョンAPLがアクセス可能なメモリ領域へ受信データをコ
ピーし、データ処理後に(iii)〜(iv)で示すように下
位レイヤのメモリ領域にコピーするといった冗長な動作
を行うのが一般的である。しかし、かかる方法ではコピ
ー動作が何回も必要になり、中継処理に時間がかかる。
このため、中継処理の高速化が要望されている。
The relay device RT having a software function shown in FIG. 30 is composed of hardware HW and software, and the software further includes an OS (hereinafter referred to as a kernel KNL) for mainly performing basic control such as protocol processing, and a kernel KNL. And an application APL that runs on In such a configuration, the application APL
Usually cannot directly access the memory on the kernel KNL or hardware HW. For this reason, in order for the application APL to perform software processing such as security check in the relay device RT, it is necessary to execute the process shown in FIG.
As shown in (i) to (ii) of FIG.
L and hardware HW) to copy the received data from the memory area to the memory area accessible by the application APL, and after processing the data, to the lower layer memory area as shown in (iii) to (iv). It is common to perform an operation. However, in such a method, the copying operation is required many times, and the relay process takes time.
Therefore, there is a demand for speeding up of the relay process.

【0004】図30は中継装置RTがデータ送受信処理と
セキュリティチェック処理の両方を行う構成であるが、
チェック処理を別の装置(アプリケーションサーバ)に行
わせるような構成にすることもある。図31は中継装置
RTと別にアプリケーションサーバASVを設けた場合の構
成図であり、図30と同一部分には同一符号を付してい
る。異なる点は、アプリケーションサーバASVが設けら
れ、コネクションCN10を介して中継装置RTとアプリケー
ションサーバASV間でデータ送受を行う点である。中継
装置RTのアプリケーションは単にデータ送受信処理を行
うもので、受信データを図示するルートでコネクション
CN10を介してアプリケーションサーバASVに送信し、ア
プリケーションサーバASVでチェック処理を行い、チェ
ック処理により更新あるいは新規に作成した送信データ
を中継装置RTに送信し、中継装置RTが該データを中継し
て通信経路上の次に位置する端末T2にコネクションCN2
を介して送信する。図31の構成では、ノード内におい
て図30と同様のコピー動作が必要になる他、(i)〜(i
i)で示すノード間コピーが必要になり、ますます、デー
タが中継系に滞留している時間が長くなり、このため中
継処理の高速化が要望されている。
FIG. 30 shows a configuration in which the relay device RT performs both data transmission / reception processing and security check processing.
The check processing may be configured to be performed by another device (application server). FIG. 31 shows a relay device
FIG. 31 is a configuration diagram in a case where an application server ASV is provided separately from the RT, and the same components as those in FIG. 30 are denoted by the same reference numerals. The difference is that an application server ASV is provided, and data is transmitted and received between the relay device RT and the application server ASV via the connection CN10. The application of the relay device RT simply performs data transmission / reception processing, and connects the received data through the route shown in the figure.
Sends to the application server ASV via CN10, performs a check process in the application server ASV, sends the updated or newly created transmission data by the check process to the relay device RT, and the relay device RT relays the data and communicates Connection CN2 to terminal T2 located next on the route
To send over. In the configuration of FIG. 31, the same copy operation as in FIG. 30 is required in the node, and (i) to (i)
Copying between nodes as shown in i) is required, and the time during which data stays in the relay system becomes longer, so that a higher speed of the relay processing is demanded.

【0005】(b)インターネットプロトコル階層構成 インターネットのプロトコルは図32に示すように、下
位から、リンク層、インターネット層、トランス
ポート層、アプリケーション層の4階層モデルで構成
される。図30、図31における中継装置RTやサーバア
プリケーションASVのハードウェアHWはリンク層に対応
する部分であり、カーネルKNLはIP/TCP処理を行うイン
ターネット層/トランスポート層に対応する部分、アプ
リケーションAPLはアプリケーション層に対応する部分
である。
(B) Internet Protocol Hierarchical Structure As shown in FIG. 32, the Internet protocol is composed of a four-layer model of a link layer, an Internet layer, a transport layer, and an application layer from the lower layer. The hardware HW of the relay device RT and the server application ASV in FIGS. 30 and 31 is a portion corresponding to the link layer, the kernel KNL is a portion corresponding to the Internet layer / transport layer performing IP / TCP processing, and the application APL is This is the part corresponding to the application layer.

【0006】リンク階層は隣接するノード間で信頼性の
高いデータ転送を行うのに責任をもつ階層で、ローカル
網で使用する伝送媒体のアクセス技術毎に異なる。例え
ば、LAN(Local Area Network)ではEthernet. Token rin
g、FDDIなどのアクセスプロトコル処理を行う階層、広
域網ではX.25、ATMなどのプロトコル処理を行う階層で
ある。リンク層で扱われるメッセージの単位はフレーム
あるいはパケットと呼ばれ、図33に示すようにフレー
ム先頭にリンクヘッダが、末尾にトレーラが配置され
る。
[0006] The link layer is a layer responsible for performing highly reliable data transfer between adjacent nodes, and differs for each access technology of a transmission medium used in a local network. For example, in LAN (Local Area Network), Ethernet.Token rin
g, a layer that performs access protocol processing such as FDDI, and a layer that performs protocol processing such as X.25 and ATM in a wide area network. The unit of the message handled in the link layer is called a frame or a packet. As shown in FIG. 33, a link header is arranged at the head of the frame and a trailer is arranged at the end.

【0007】インターネット階層は、発信端末から宛先
端末へルータなどの中継装置と連携しながらメッセージ
を送り届けるサービスを提供する階層である。この階層
のプロトコルとしてインターネットプロトコル(IP:Inte
rnet Protocol)が標準化されている。インターネット層
で扱われるメッセージの単位はデータグラムと呼ばれ、
図33に示すように先頭にIPヘッダが配置される。トラ
ンスポート階層は、発信アプリケーションプロセスから
受信アプリケーションプロセスにメッセージを送り届け
るサービスを提供する階層である。トランスポートプロ
トコルとしては、通信の高度な信頼性を保証するTCPプ
ロトコル(TCP:transmission control protocol)等が標
準化されている。トランスポート層で扱われるメッセー
ジの単位はセグメントと呼ばれ、図33に示すようにセ
グメント先頭にTCPヘッダが配置される。
The Internet layer is a layer that provides a service for transmitting a message from a transmitting terminal to a destination terminal in cooperation with a relay device such as a router. Internet Protocol (IP: Inte
rnet Protocol) has been standardized. The unit of message handled at the Internet layer is called a datagram,
As shown in FIG. 33, an IP header is arranged at the head. The transport layer is a layer that provides a service for sending a message from a sending application process to a receiving application process. As a transport protocol, a TCP protocol (TCP: transmission control protocol) that guarantees high reliability of communication is standardized. The unit of the message handled in the transport layer is called a segment, and a TCP header is arranged at the head of the segment as shown in FIG.

【0008】アプリケーション階層は、ユーザアプリケ
ーション毎にサービスを提供する階層である。例えば、
ファイル転送、リモートログイン、電子メール転送など
を行うための機能が定義され、それぞれに応じたプロト
コルが標準化されている。端末や中継装置などのノード
は、アプリケーション層から渡されたデータにトランス
ポート層でヘッダを付加してセグメントにし、インター
ネット層でセグメントにヘッダを付加してデータグラム
にし、リンク層でデータグラムにヘッダとトレーラを付
加してフレームにして物理媒体に送出する。
[0008] The application layer is a layer that provides services for each user application. For example,
Functions for performing file transfer, remote login, e-mail transfer, etc. are defined, and protocols according to each are standardized. Nodes such as terminals and relay devices add a header to the data passed from the application layer into segments by the transport layer, add a header to the segments into datagrams in the Internet layer, and add a header to the datagram in the link layer. And a trailer are added to form a frame and transmitted to a physical medium.

【0009】(c)中継装置の制御 中継装置でセキュリティチェックなどのデータ処理を行
うと共に、通信経路上の次の端末に対するデータ中継を
行うアプリケーションとして、一般にプロキシアプリケ
ーション(Proxy aplication)と呼ばれるものが存在す
る。これは、図34で示すように、ネットワークNT1,NT
2の境界に存在する中継装置(端末T3)を通過するデータ
のチェックを行い、更に中継処理を行うアプリケーショ
ンである。なお、図34において、コネクションCN1,CN
2はそれぞれ、端末T1と端末T3との間、端末T3と端末T2
との間に張ったコネクションである。
[0009] (c) Control of relay device [0010] There is an application generally called a proxy application, which performs data processing such as security check in the relay device and relays data to the next terminal on the communication path. I do. This is, as shown in FIG.
This is an application that checks data passing through the relay device (terminal T3) existing at the boundary of No. 2 and further performs relay processing. In FIG. 34, connection CN1, CN
2 is between terminal T1 and terminal T3, terminal T3 and terminal T2, respectively.
It is a connection established between

【0010】以下において、従来のプロキシアプリケー
ションの動作を説明し、その問題点を明示する。なお、
アプリケーションALP、カーネルKNL、ハードウェアHWが
それぞれ直接アクセス可能なバッファを「アプリケーシ
ョンバッファあるいはバッファA」「カーネルバッファ
あるいはバッファK」「ハードウェアバッファあるいは
バッファH」と記述する。又、アプリケーションAPLが
扱う「データ」とキャッシュメモリ上に保存する「受信
データ」とを区別するために、前者を「データ」、後者
を「パケット」と記す。更に、IPヘッダ及びTCPヘッダ
は図35(a),(b)に示す周知の構成を有している
ものとする。TCPヘッダにおける6ビットのcontrol flag
s(CF)はセグメントの種類を表すフィールドであり、種
々のフラグが定義され、SYNフラグはコネクション開設
時の最初のセグメントであることを示す。
In the following, the operation of a conventional proxy application will be described and its problems will be clarified. In addition,
Buffers that can be directly accessed by the application ALP, the kernel KNL, and the hardware HW are respectively described as “application buffer or buffer A”, “kernel buffer or buffer K”, and “hardware buffer or buffer H”. In order to distinguish between “data” handled by the application APL and “received data” stored in the cache memory, the former is referred to as “data” and the latter as “packet”. Further, it is assumed that the IP header and the TCP header have a well-known configuration shown in FIGS. 6-bit control flag in TCP header
s (CF) is a field indicating the type of segment, in which various flags are defined, and the SYN flag indicates that this is the first segment when a connection is opened.

【0011】(c-1) パケットの受信 まず、ハードウェアHWがパケットを受信してからプロキ
シアプリケーションAPLが該データを受信するまでの間
に図34の端末T3が行う手続を図36のパケット受信フ
ローに従って説明する。 (1) ハードウェアHWによるパケットの受信 端末T3上のハードウェアHWは、パケットのリンクヘッダ
で示される宛先ハードウェア固有アドレス(MACアドレ
ス)が自分のMACアドレスと一致すれば、該パケットを取
り込んで、バッファH上のアドレス1に保存する。
(C-1) Packet Reception First, the procedure performed by the terminal T3 in FIG. 34 from the reception of the packet by the hardware HW to the reception of the data by the proxy application APL is described in FIG. The description will be made according to the flow. (1) Receiving a packet by the hardware HW The hardware HW on the terminal T3 fetches the packet if the destination hardware unique address (MAC address) indicated by the link header of the packet matches its own MAC address. , At address 1 on the buffer H.

【0012】(2) カーネルKNLによるパケットの受信 ハードウェア層にアクセスするためのカーネルKNL上の
処理部(ドライバの記す)は、アドレス1上のパケット
をバッファK上のアドレス2にコピーし、アドレス1上
のパケットを削除する。 (3) カーネルKNLによるコネクションの開設手続き カーネルKNLは、受信パケットのIPヘッダから宛先IPア
ドレスが端末T3のものであり、かつ上位プロトコルがTC
Pプロトコルであることを認識すると、TCPプロトコルヘ
ッダのSYNフラグを参照し、コネクションCN1が開設済み
であるかチェックする。
(2) Receiving a packet by the kernel KNL A processing unit (described by a driver) on the kernel KNL for accessing the hardware layer copies a packet on the address 1 to an address 2 on the buffer K, and 1 is deleted. (3) Connection establishment procedure by kernel KNL The kernel KNL has the destination IP address of terminal T3 from the IP header of the received packet, and the upper layer protocol is TC
When recognizing that the protocol is the P protocol, it refers to the SYN flag of the TCP protocol header and checks whether the connection CN1 has been established.

【0013】SYNフラグが立っていれば、カーネルKNL
は、受信パケットのIP/TCPプロトコルヘッダ中の 送信元IPアドレスal、 宛先IPアドレスp1、 送信元PORT番号a2、 宛先PORT番号p2 の組み合わせ(al、pl、a2、p2)を新しいコネクションの
開設要求パケットであると認識する。以下では、この組
み合わせを持つコネクションをコネクションCN1と記
し、上記4つのエントリの組み合わせ(al、pl、a2、p2)
をソケット・ペアと記す。ついで、カーネルKNLはTCPに
おけるコネクション確立手続により、端末T1との間にコ
ネクションCN1を完成するとともに、プロキシアプリケ
ーションに対してメッセージを送付してコネクションの
完了を通知する。しかる後、カーネルKNLはコネクショ
ンCN1に関して、カーネルKNLとアプリケーションAPL間
のインタフェース部(ソケット1という)及び、該ソケ
ット1に従属するバッファとして、受信ソケットバッフ
ァRSB1、送信ソケットバッファSSB1、更新待バッファR
NB1を新たに作成する。
If the SYN flag is set, the kernel KNL
Is a request to open a new connection by combining the source IP address al, destination IP address p1, source PORT number a2, and destination PORT number p2 (al, pl, a2, p2) in the IP / TCP protocol header of the received packet. Recognize as a packet. Hereinafter, a connection having this combination is referred to as a connection CN1, and a combination of the above four entries (al, pl, a2, p2)
Is referred to as a socket pair. Next, the kernel KNL completes the connection CN1 with the terminal T1 by a connection establishment procedure in TCP and sends a message to the proxy application to notify the completion of the connection. Thereafter, the kernel KNL relates to the interface CN1 (referred to as socket 1) between the kernel KNL and the application APL with respect to the connection CN1, and receives a reception socket buffer RSB1, a transmission socket buffer SSB1, and an update waiting buffer R as buffers dependent on the socket 1.
NB1 is newly created.

【0014】各ソケットバッファはキュー構造を取って
おり、受信ソケットバッファRSB1はキューの先頭から順
に、バッファK上の受信パケットのアドレスを複数個保
存できるもので、送信ソケットバッファSSB1は、バッフ
ァK上の送信パケットのアドレスを複数個保存するもの
である。以上の手続きにより、ソケット・ペア(al、pl、
a2、p2)に対応したTCPコネクションが未開設な場合にお
けるコネクションCN1の開設手続が終了する。以上で
は、端末T1からコネクション開設要求を受けた場合の処
理であったが、端末T3から端末T1にコネクションを開設
する際は、ソケット・ペアが(p1,a1,p2,a2)となり、
新しいコネクションの開設要求パケットを端末T3から端
末1に対して送信し、以後は上記のTCPにおけるコネク
ション確立手続により、端末T1との間にコネクションCN
1を完成する。
Each socket buffer has a queue structure. The receiving socket buffer RSB1 can store a plurality of addresses of received packets on the buffer K in order from the head of the queue. Are stored in a plurality of transmission packet addresses. By the above procedure, socket pair (al, pl,
The procedure for establishing the connection CN1 when the TCP connection corresponding to a2, p2) has not been established is completed. In the above, the processing is performed when a connection opening request is received from the terminal T1, but when opening a connection from the terminal T3 to the terminal T1, the socket pair becomes (p1, a1, p2, a2)
A request to open a new connection is transmitted from the terminal T3 to the terminal 1, and thereafter, the connection CN is established between the terminal T1 and the terminal T1 by the connection establishment procedure in the TCP.
Complete 1

【0015】(4) 受信パケットアドレスの受信ソケット
バッファへの保存 以後、端末T3は受信したパケットのソケット・ペア(a
l、pl、a2、p2)を参照し、該ソケット・ペアに応じた受信
ソケットバッファRSB1のキュー(行列)に、該受信パ
ケットを保存したバッファKのアドレス2をキューイン
グする。尚、「バッファキューにパケットを保存する」
とは、パケットを保存したバッファKの先頭アドレスを
受信ソケットバッファのキュー(行列)に接続して保存
することを意味する。
(4) Storing the Received Packet Address in the Receive Socket Buffer Thereafter, the terminal T3 sets the socket pair (a
With reference to (l, pl, a2, p2), the address 2 of the buffer K storing the received packet is queued in the queue (matrix) of the receiving socket buffer RSB1 corresponding to the socket pair. "Save packet in buffer queue"
This means that the head address of the buffer K storing the packet is connected to a queue (matrix) of the receiving socket buffer and stored.

【0016】(5) 受信パケット存在メッセージA 受信ソケットバッファRSB1に保存したパケット長の総和
がある上限値を越えると、カーネルKNLは、プロキシア
プリケーションAPLに受信パケットの存在を通知するメ
ッセージである「メッセージA」を前記ソケット1を介
して送信する。 (6) データ読み込みメッセージD メッセージAを受信すると、プロキシアプリケーション
APLは、ソケット1に対し、「読み込み先アドレス」と
してバッファAのアドレス4を、「データ長」としてそ
のデータ長を、それぞれ引数とする「データ読み込みメ
ッセージD」を送信する。
(5) Received Packet Existence Message A When the sum of the packet lengths stored in the receive socket buffer RSB1 exceeds a certain upper limit, the kernel KNL notifies the proxy application APL of the existence of the received packet by a message “message”. "A" is transmitted via the socket 1. (6) Data read message D When message A is received, the proxy application
The APL transmits a “data read message D” to the socket 1 with the address 4 of the buffer A as the “read destination address” and the data length as the “data length” with arguments as arguments.

【0017】(7) カーネルKNLによるアプリケーション
バッファAへの書き込み 「データ読み込みメッセージD」を受信したカーネルKN
Lは、受信ソケットバッファRSB1のキュー先頭に保存さ
れたアドレス2が示す記憶域(バッファK)よりデータ
を読出し、プロトコルヘッダを除きメッセージDで指定
されたバッファAのアドレス4に1つのデータとして書
き込む(データのコピー)。書き込むパケットが複数存
在すれば、カーネルKNLは受信ソケットバッファRSB1か
ら次のアドレスが示す記憶域(バッファK)よりデータ
を読出し、プロトコルヘッダを除きバッファAに連続し
て書き込む。しかる後、カーネルKNLは受信ソケットバ
ッファRSB1から読み込み済みとなったアドレスを削除
し、カーネルバッファKのアドレス2に記憶されている
パケットを削除する。以上の仕組みを持って、アプリケ
ーションは、コネクション1からデータを受信すること
ができる。
(7) Writing to the application buffer A by the kernel KNL The kernel KN receiving the “data read message D”
L reads data from the storage area (buffer K) indicated by address 2 stored at the head of the queue of the reception socket buffer RSB1 and writes it as one piece of data at address 4 of buffer A specified by message D excluding the protocol header. (Copy of data). If there are a plurality of packets to be written, the kernel KNL reads data from the storage area (buffer K) indicated by the next address from the reception socket buffer RSB1, and writes the data continuously to the buffer A except for the protocol header. Thereafter, the kernel KNL deletes the read address from the reception socket buffer RSB1 and deletes the packet stored at address 2 of the kernel buffer K. With the above mechanism, the application can receive data from the connection 1.

【0018】(c-2) 送信データの作成及び送信 データの受信を完了したプロキシアプリケーションAPL
は、セキュリティ・チェックなどのデータ処理の過程で
受信データに対する変更箇所があれば、データを作成し
直し、その作成データをプロキシアプリケーションAPL
からの送信データとする。また、必要があれば、プロキ
シアプリケーションAPLは新たに送信データを作成す
る。以下に、プロキシアプリケーションAPLが送信デー
タを作成してから、ハードウェアHWがコネクションCN2
を介して該送信データを端末TN2に送信するまでの端末T
3が行う手続きを示す。図37はパケット送信フロー、
図38は送信データの作成及び送信説明図である。 (8) 送信データの作成 プロキシアプリケーションAPLは、送信データ作成手段
により送信データをバッファA内のアドレス10に作成
する。
(C-2) Proxy application APL that has completed creation of transmission data and reception of transmission data
If there is a change to the received data during the data processing such as security check, re-create the data and transfer the created data to the proxy application APL.
And the transmission data from If necessary, the proxy application APL creates new transmission data. Below, after the proxy application APL creates transmission data, the hardware HW
Until the transmission data is transmitted to the terminal TN2 via the terminal T.
3 shows the procedure to be performed. FIG. 37 shows a packet transmission flow,
FIG. 38 is an explanatory diagram of creation and transmission of transmission data. (8) Creation of transmission data The proxy application APL creates transmission data at the address 10 in the buffer A by the transmission data creation means.

【0019】(9) データ書き込みメッセージP プロキシアプリケーションAPLは、端末T2に対して転送
するデータが存在する場合、端末T3から端末T2へのコネ
クションCN2がまだ確立してなければ、送信データにつ
いて、上記の(3)に従ってコネクションCN2を確立する。
しかる後、アプリケーションAPLは、コネクションCN2の
送受信専用インタフェース(以下ソケット2と記す)に
対し、「先頭アドレス」としてバッファAのアドレス1
0を、又、「データ長」としてアドレス10上の「送信
データ長」を、それぞれ引数とした「データ書き込みメ
ッセージP」をカーネルKNLに送出する。 (10) 送信データのカーネルへのコピー カーネルKNLは「データ書き込みメッセージP」を受信
すれば、アドレス10の送信データをバッファK内のア
ドレス20にコピーする。。 (11) ついで、カーネルKNLは送信ソケットバッファSSB2
のキューにバッファKのアドレス20をキューイングす
る。送信ソケットバッファキューは、送信データの先頭
アドレスを保存するキューであり、このキューの先頭か
ら順に送信データに関するプロトコル処理を行う。
(9) Data write message P If there is data to be transferred to the terminal T2, the proxy application APL determines that the connection data from the terminal T3 to the terminal T2 has not been established yet, The connection CN2 is established in accordance with (3).
Thereafter, the application APL sends the address 1 of the buffer A to the interface dedicated to transmission / reception of the connection CN2 (hereinafter referred to as socket 2) as the “head address”.
A "data write message P" is sent to the kernel KNL with "0" and "transmission data length" on the address 10 as "data length" as arguments. (10) Copying Transmission Data to Kernel Upon receiving the “data write message P”, the kernel KNL copies the transmission data at the address 10 to the address 20 in the buffer K. . (11) Next, the kernel KNL sends the send socket buffer SSB2
Queue the address 20 of the buffer K in the queue. The transmission socket buffer queue is a queue for storing a head address of transmission data, and performs protocol processing on transmission data sequentially from the head of the queue.

【0020】(12) 残りのプロトコル処理 TCP/IPプロトコルヘッダの作成に際して、送信ソケット
2はTCPヘッダの識別番号をパケット毎に一意に決定
し、また、TCPヘッダのSEQ番号を、着目パケットがコネ
クションCN2から送信するデータのうち何バイト目であ
るかに基づいて決定し、更に、TCPヘッダチェックサム
及びIPヘッダチェックサムをTCP/IPプロトコルが定める
演算式により演算する。作成したTCP/IPプロトコルヘッ
ダをアドレス20のパケットに追加する。もし、端末T3
がハードウェア層に、チェックサムの計算部などのプロ
トコル処理ユニットを持つ場合は、そのプロトコル処理
ユニットを使った演算の結果でTCPヘッダチェックサム
及びIPヘッダチェックサムの置換を行う。或いは、これ
らのフィールドについては変更しないままハードウェア
層にパケットを転送し、以後はチェックサムの演算を行
うプロトコル処理ユニットにより最終的に送信するパケ
ットを作成することもできる。
(12) Remaining Protocol Processing When creating the TCP / IP protocol header, the transmission socket 2 uniquely determines the identification number of the TCP header for each packet, and sets the SEQ number of the TCP header to the It is determined based on the byte number of the data transmitted from CN2, and further, the TCP header checksum and the IP header checksum are calculated by a calculation formula defined by the TCP / IP protocol. The created TCP / IP protocol header is added to the packet of the address 20. If the terminal T3
If the hardware layer has a protocol processing unit such as a checksum calculation unit in the hardware layer, the TCP header checksum and the IP header checksum are replaced with the result of the operation using the protocol processing unit. Alternatively, it is also possible to transfer the packet to the hardware layer without changing these fields, and then create a packet to be finally transmitted by a protocol processing unit that calculates a checksum thereafter.

【0021】(13) 送信ソケットのプロトコル処理 プロトコル処理を完了した後、カーネルKNLは、送信ソ
ケットバッファSSB2の中身を再送ソケットバッファSSB
2′にコピーする。ここで、再送ソケットバッファSSB
2′とは、TCPプロトコルが標準で有する機能である再送
機構を実現するための仕組みである。再送については後
述する。 (14) MACアドレスの決定及び送信 TCP/IPプロトコルヘッダの作成がすべて終了した後、
カーネルKNLは経路選択テーブル(ルーチングテーブル)
に基づいて宛先MACアドレスを決定すると共に、端末T3
のMACアドレスを送信元MACアドレスとする(14-1)。そし
て、これらMACアドレスを含むリンクヘッダ(MACヘッダ)
をデータグラムに追加してパケットをハードウェアバッ
ファHのアドレス13に保存し(14-2)、パケット全体を保
存しているバッファHの先頭アドレス13をドライバキュ
ーに保存し、順次コネクションCN2を介して端末TN2に送
出する(14-3)。
(13) Protocol Processing of Transmission Socket After completing the protocol processing, the kernel KNL retransmits the contents of the transmission socket buffer SSB2 to the retransmission socket buffer SSB.
Copy to 2 '. Where retransmit socket buffer SSB
2 'is a mechanism for realizing a retransmission mechanism, which is a standard function of the TCP protocol. Retransmission will be described later. (14) MAC address determination and transmission After all TCP / IP protocol headers have been created,
Kernel KNL is a routing table (routing table)
Determines the destination MAC address based on the
Is set as the source MAC address (14-1). And a link header (MAC header) containing these MAC addresses
Is added to the datagram, and the packet is stored in the address 13 of the hardware buffer H (14-2). To the terminal TN2 (14-3).

【0022】(c-3) TCP/IPにおけるソケットの動作 従来のTCP/IPにおけるソケットを使った動作例は以下
の通りである。 端末T3からのデータ送信時に、アプリケーションバッ
ファAのアドレス10に新たに作成したデータをカーネ
ルバッファK内のアドレス20にコピーするとともに、
アドレス20を送信ソケットバッファSSB2に保存する。 カーネルKNLは送信ソケットバッファSSB2に保存した
アドレス20のデータに対してTCP/IPプロトコル処理
を施す。 TCP/IPプロトコルヘッダの作成を完了すると、カー
ネルKNLはアドレス20を再送ソケットバッファSSB2′
に保存するとともに、前記のステップ(14)によりアドレ
ス20に保存されているパケットの送出を行い、送信ソ
ケットバッファSSB2からアドレス20を削除する、
(C-3) Operation of Socket in TCP / IP An operation example using a socket in conventional TCP / IP is as follows. At the time of data transmission from the terminal T3, the newly created data at the address 10 of the application buffer A is copied to the address 20 in the kernel buffer K,
The address 20 is stored in the transmission socket buffer SSB2. The kernel KNL performs TCP / IP protocol processing on the data at the address 20 stored in the transmission socket buffer SSB2. When the creation of the TCP / IP protocol header is completed, the kernel KNL sends the address 20 to the retransmit socket buffer SSB2 '.
While transmitting the packet stored in the address 20 in the step (14), and deleting the address 20 from the transmission socket buffer SSB2.

【0023】以後、再送ソケットバッファSSB2′に保
存したアドレス20のパケットSのSEQ番号よりも大き
いSEQ番号を有するパケットAを所定時間内に端末T2か
ら受信すれば、パケットSは端末T2によって受信された
と認識して再送ソケットバッファSSB2′から削除する。
しかし、ある待ち時間後までにパケットAを受信しなけ
れば、再送ソケットバッファSSB2′に記憶されているア
ドレス20からパケットを取り出しこのパケットを再送
する。 以上の(c-1)〜(c-2)の仕組みを以って、従来のプロキシ
アプリケーションは、端末間で通信されるデータのセキ
ュリティ・チェックを行うとともに、その通信の中継を
実現している。
Thereafter, if a packet A having a SEQ number greater than the SEQ number of the packet S at address 20 stored in the retransmission socket buffer SSB2 'is received from the terminal T2 within a predetermined time, the packet S is received by the terminal T2. And deletes it from the retransmitted socket buffer SSB2 '.
However, if the packet A is not received by a certain waiting time, the packet is taken out from the address 20 stored in the retransmission socket buffer SSB2 'and this packet is retransmitted. With the above mechanisms (c-1) to (c-2), the conventional proxy application checks the security of data transmitted between terminals and implements the relay of the communication. .

【0024】[0024]

【発明が解決しようとする課題】以上のように、従来、
ネットワークの境界に位置する中継装置のアプリケーシ
ョンが受信データに対してセキュリティ・チェックなど
の処理を行い、更新あるいは新規に作成した送信データ
を通信経路上の次の端末に対して送信するには、(1) カ
ーネルKNL及びハードウェアHWのメモリ領域からアプリ
ケーションAPLのアクセス可能メモリ領域へ受信データ
をコピーし、(2) データ処理後に送信データをカーネル
KNL及びハードウェアHWのメモリ領域に順次コピーして
送信するといった冗長な動作を行う必要がある。又、図
31の構成ではノード内コピーに加えてノード間コピー
が必要になる。以上より、従来は、コピー動作が何回も
必要になり、中継に時間がかかり、高速のデータ送信を
阻害している。
As described above, conventionally,
In order for the application of the relay device located at the boundary of the network to perform processing such as security check on the received data and transmit the updated or newly created transmission data to the next terminal on the communication path, 1) Copy the received data from the memory area of the kernel KNL and hardware HW to the accessible memory area of the application APL.
It is necessary to perform redundant operations such as sequentially copying and transmitting to the memory area of the KNL and the hardware HW. Also, in the configuration of FIG. 31, inter-node copy is required in addition to intra-node copy. As described above, conventionally, the copying operation is required many times, it takes a long time to relay, and hinders high-speed data transmission.

【0025】従って、本発明の第1の目的はネットワー
クの境界に位置し、受信するデータに対するセキュリテ
ィ・チェックなどのアプリケーション処理を行い、かつ
そのデータを通信経路上の次の端末に対して送信するこ
とでデータの中継を行う中継装置において、コピー処理
の冗長性をできるだけ排して高速通信を行えるようにす
ることである。本発明の第2の目的は、セキュリティチ
ェック等のデータ処理を行うアプリケーションが中継ノ
ードとは別のアプリケーションノードに設けら得ている
中継装置において、ノード間のコピー処理の冗長性を大
幅に減らして高速通信を行えるようにすることである。
Accordingly, a first object of the present invention is to be located at the boundary of a network, perform application processing such as security check on received data, and transmit the data to the next terminal on a communication path. Thus, in a relay apparatus that relays data, high-speed communication can be performed while eliminating redundancy of copy processing as much as possible. A second object of the present invention is to significantly reduce the redundancy of copy processing between nodes in a relay apparatus in which an application for performing data processing such as security check is provided in an application node different from the relay node. This is to enable high-speed communication.

【0026】[0026]

【課題を解決するための手段】中継装置より外部に送信
するデータは処理前の受信データと比べて変更箇所が特
定のごく一部のフィールドのみである場合や、変更は行
わずに中継の可否の選択のみである場合が多く、変更が
必要な箇所は受信データ全体のごくわずかであるのが普
通である。本発明は、この点に着目してなされたもので
ある。
Means for Solving the Problems Data to be transmitted from the relay device to the outside may be compared with received data before processing when only a specific portion of the field is changed, or may or may not be relayed without being changed. In most cases, only the selection is necessary, and the portion that needs to be changed is usually very small in the entire received data. The present invention has been made focusing on this point.

【0027】本発明の第1の中継装置によれば、下位
レイヤのキャッシュメモリは、パケット単位で受信デー
タを保存し、テーブル作成手段は、下位レイヤからア
プリケーションレイヤのバッファにコピーされたデータ
とキャッシュメモリ上のパケットとの対応を示すキャッ
シュ管理テーブルを作成して該バッファに記憶し、デ
ータ処理後、差分情報作成手段は、前記テーブルに保持
されている対応関係を用いて、変更を要するパケットを
特定する情報とパケット内の変更箇所と変更内容をそれ
ぞれ有する差分情報を作成し、下位レイヤの更新部は
該差分情報を用いてキャッシュメモリに保存されている
パケットを更新し、更新結果を送信データとする。以上
のようにすれば、上位レイヤから下位レイヤに対して差
分情報をコピーするだけで良いためコピー処理の冗長性
を排して処理時間を短縮できる。
According to the first relay apparatus of the present invention, the cache memory of the lower layer stores the received data in packet units, and the table creating means stores the data copied from the lower layer to the buffer of the application layer with the cache. A cache management table indicating the correspondence with the packet on the memory is created and stored in the buffer, and after the data processing, the difference information creating unit uses the correspondence held in the table to identify the packet that needs to be changed. The difference information having the information to be specified, the changed portion in the packet, and the changed content is created, and the update unit of the lower layer updates the packet stored in the cache memory using the difference information, and transmits the update result to the transmission data. And In this way, it is only necessary to copy the difference information from the upper layer to the lower layer, so that the processing time can be reduced by eliminating the redundancy of the copy processing.

【0028】又、本発明の第2の中継装置によれば、
下位レイヤのキャッシュメモリは、パケット単位で受信
データを保存し、テーブル作成手段は、アプリケーシ
ョンレイヤのバッファにコピーされたデータとキャッシ
ュメモリ上のパケットとの対応を示すキャッシュ管理テ
ーブルを作成して下位レイヤの記憶部に保存し、アプ
リケーションによるデータ処理後、差分情報作成手段
は、アプリケーションバッファにコピーされたデータの
うち変更を要するデータを特定する情報とデータの変更
箇所と変更内容をそれぞれ含む差分情報を作成し、下
位レイヤの更新部は、差分情報とキャッシュ管理テーブ
ルに保持されている対応関係とを用いて変更を要するパ
ケットを特定し、該パケットを更新して送信データとす
る。以上のようにすれば、上位レイヤから下位レイヤに
対して差分情報をコピーするだけで良いためコピー処理
の冗長性を排して処理時間を短縮できる。
According to the second relay device of the present invention,
The lower layer cache memory stores the received data in packet units, and the table creating means creates a cache management table indicating the correspondence between the data copied to the application layer buffer and the packets in the cache memory, and creates a lower layer cache management table. After the data processing by the application, the difference information creating means stores the information specifying the data that needs to be changed among the data copied to the application buffer, and the difference information including the changed portion and the changed content of the data. The update unit of the lower layer specifies a packet that needs to be changed using the difference information and the correspondence held in the cache management table, and updates the packet to be transmission data. In this way, it is only necessary to copy the difference information from the upper layer to the lower layer, so that the processing time can be reduced by eliminating the redundancy of the copy processing.

【0029】以上の第1、第2の中継装置において、差
分情報作成手段はキャッシュメモリ上のデータを外部に
送信しないと決定したときは、差分情報に削除指示を含
ませ、更新手段は該削除指示によりキャッシュメモリ上
のデータを削除する。このようにすれば、上位レイヤよ
り下位レイヤに削除指示するだけで良く処理時間を短縮
できる。また、差分情報作成手段は、キャッシュメモリ
上のデータに変更を加えないときは差分情報に無変更指
示を含ませ、更新部は該無変更指示によりキャッシュメ
モリ上のデータをそのまま送信データとする。このよう
にすれば、上位レイヤより下位レイヤに無変更指示する
だけで良く処理時間を短縮できる。また、差分情報作成
手段は、新しく送信データを作成するときは差分情報に
新規指示を含ませ、更新手段は該新規指示により該差分
情報に含まれるデータを新規送信データとする。このよ
うにすれば、データ変更、削除、無変更、新規作成のい
ずれの場合も、同一フォーマットの差分情報で下位レイ
ヤに指示できる。また、同一パケットに対する変更箇所
の数が設定数より多いとき、あるいは、同一パケットに
対する変更データ長の総和が設定長より長いとき、アプ
リケーションは新規の送信データを作成する。このよう
にすれば、差分情報量を少なくでき、処理時間を短縮で
きる。
In the above first and second relay devices, when the difference information creating means determines not to transmit the data in the cache memory to the outside, the difference information includes a deletion instruction, and the updating means performs the deletion. The data in the cache memory is deleted according to the instruction. In this way, the processing time can be shortened simply by instructing the lower layer to delete from the upper layer. Further, when no change is made to the data in the cache memory, the difference information creating means includes a no-change instruction in the difference information, and the updating unit uses the data in the cache memory as the transmission data as it is in accordance with the no-change instruction. In this way, the processing time can be shortened simply by instructing the lower layer to perform no change from the upper layer. Further, the difference information creating means causes a new instruction to be included in the difference information when newly creating transmission data, and the updating means sets the data included in the difference information according to the new instruction as new transmission data. In this way, in any case of data change, deletion, no change, and new creation, the lower layer can be instructed by the difference information of the same format. When the number of changed portions for the same packet is larger than the set number, or when the total sum of the changed data lengths for the same packet is longer than the set length, the application creates new transmission data. In this way, the amount of difference information can be reduced, and the processing time can be reduced.

【0030】又、本発明の第3の中継装置によれば、
第1ノードにおいて、キャッシュメモリはパケット単位
で受信データを保存し、テーブル作成手段は、第1ノ
ードのアプリケーションバッファ上のコピー先データと
キャッシュメモリ上のパケットの対応関係を示すキャッ
シュ管理テーブルを作成し、通信手段は受信データと
キャッシュ管理テーブルを第2ノードのアプリケーショ
ンに送信し、第2ノードにおいて、テーブル修正手段
は、キャッシュ管理テーブルの対応関係を、第2ノード
におけるアプリケーションバッファ上のコピー先データ
とキャッシュメモリ上のパケットとの対応関係に修正
し、データ処理後、差分情報作成部は修正されたキャ
ッシュ管理テーブルに保持されている対応関係を用い
て、変更を要するキャッシュメモリ内のパケットを特定
する情報とパケット内の変更箇所と変更内容をそれぞれ
有する差分情報を作成し、通信手段は該差分情報を第
1ノードに送信し、第1ノードの更新部は該差分情報
を用いてキャッシュメモリに保存されているパケットを
更新し、更新結果を送信データとする。以上のようにす
れば、第2ノードから第1ノードへ差分情報をコピーす
るだけで良いためコピー処理の冗長性を排して処理時間
を短縮できる。
According to the third relay device of the present invention,
In the first node, the cache memory stores the received data in packet units, and the table creating unit creates a cache management table indicating the correspondence between the copy destination data in the application buffer of the first node and the packet in the cache memory. , The communication unit transmits the received data and the cache management table to the application of the second node, and in the second node, the table correction unit compares the correspondence of the cache management table with the copy destination data on the application buffer in the second node. After correcting the correspondence to the packet in the cache memory, and after performing the data processing, the difference information creating unit specifies the packet in the cache memory that needs to be changed using the correspondence held in the corrected cache management table. Changes in information and packets The communication means transmits the difference information to the first node, and the updating unit of the first node updates the packet stored in the cache memory using the difference information. The update result is used as transmission data. In this way, it is only necessary to copy the difference information from the second node to the first node, so that the processing time can be reduced by eliminating the redundancy of the copy processing.

【0031】又、本発明の第4の中継装置によれば、
第1ノードにおいて、キャッシュメモリはパケット単位
で受信データを保存し、テーブル作成手段は、第1ノ
ードのアプリケーションバッファ上のコピー先データと
キャッシュメモリ上のパケットの対応関係を示すキャッ
シュ管理テーブルを作成し、通信手段は所定のコネク
ションを介して受信データを第2ノードのアプリケーシ
ョンに送信し、変換テーブル作成手段は、アプリケー
ションバッファにコピーされたデータの先頭アドレスと
コネクションの識別子との対応関係を示す変換テーブル
を作成し、第2ノードにおいて、差分情報作成部はデ
ータ処理後、変更を要する第2アプリケーションバッフ
ァ内のデータを特定する情報とデータ内の変更箇所と変
更内容をそれぞれ有する差分情報を作成し、通信手段
は差分情報を第1ノードに送信し、第1ノードの差分
情報修正手段は差分情報に含まれる第2アプリケーショ
ンバッファのデータ先頭アドレス、変換テーブルから得
られる第1アプリケーションバッファのデータ先頭アド
レスを用いて、差分情報を修正し、更新部は修正され
た差分情報とキャッシュ管理テーブルに保持されている
対応関係とを用いて変更を要するパケットを特定し、該
パケットを更新して送信データとする。以上のようにす
れば、第1ノードから第2ノードへデータのみを転送
し、第2ノードから第1ノードへ差分情報のみを転送す
るだけで良いためコピー処理の冗長性を排して処理時間
を短縮できる。
According to the fourth relay device of the present invention,
In the first node, the cache memory stores the received data in packet units, and the table creating unit creates a cache management table indicating the correspondence between the copy destination data in the application buffer of the first node and the packet in the cache memory. , The communication means transmits the received data to the application of the second node via a predetermined connection, and the conversion table creating means generates the conversion table indicating the correspondence between the head address of the data copied to the application buffer and the connection identifier. In the second node, after the data processing, the difference information creating unit creates information specifying data in the second application buffer that needs to be changed, and difference information having a changed portion and changed content in the data, The communication means sends the difference information to the first node. The difference information correcting means of the first node corrects the difference information using the data head address of the second application buffer included in the difference information and the data head address of the first application buffer obtained from the conversion table, and updates the difference information. Specifies a packet that needs to be changed using the corrected difference information and the correspondence held in the cache management table, and updates the packet to be transmission data. According to the above, only the data is transferred from the first node to the second node, and only the difference information is transferred from the second node to the first node. Can be shortened.

【0032】又、本発明の第5の中継装置によれば、
第1ノードにおいて、キャッシュメモリはパケット単位
で受信データを保存し、テーブル作成手段は、第1ノ
ードのアプリケーションバッファ上のコピー先データと
キャッシュメモリ上のパケットの対応関係を示すキャッ
シュ管理テーブルを作成し、通信手段は所定のコネク
ションを介して受信データを第2ノードのアプリケーシ
ョンに送信し、識別テーブル作成手段は、アプリケー
ションバッファにコピーされたデータの先頭アドレスと
該データの識別子との対応関係を示す識別テーブルを作
成し、第2ノードにおいて、差分情報作成部は、変更
を要する第2アプリケーションバッファ内のデータを特
定する情報とデータ内の変更箇所と変更内容をそれぞれ
有する差分情報を作成し、通信手段は差分情報を第1
ノードに送信し、第1ノードの差分情報修正手段は差
分情報に含まれる第2アプリケーションバッファのデー
タ先頭アドレス、識別テーブルから得られる第1アプリ
ケーションバッファのデータ先頭アドレスを用いて差分
情報を修正し、更新部は修正された差分情報とキャッ
シュ管理テーブルに保持されている対応関係とを用いて
変更を要するパケットを特定し、該パケットを更新して
送信データとする。以上のようにすれば、第1ノードか
ら第2ノードへデータのみを転送し、第2ノードから第
1ノードへ差分情報のみを転送するだけで良いためコピ
ー処理の冗長性を排して処理時間を短縮できる。
According to the fifth relay device of the present invention,
In the first node, the cache memory stores the received data in packet units, and the table creating unit creates a cache management table indicating the correspondence between the copy destination data in the application buffer of the first node and the packet in the cache memory. The communication means transmits the received data to the application of the second node via a predetermined connection, and the identification table creating means determines the identification indicating the correspondence between the head address of the data copied to the application buffer and the identifier of the data. A table is created, and in the second node, the difference information creating unit creates information specifying data in the second application buffer that needs to be changed, and difference information having a changed location and changed content in the data, and a communication unit. Is the difference information
Transmitted to the node, the difference information correcting means of the first node corrects the difference information using the data head address of the second application buffer included in the difference information and the data head address of the first application buffer obtained from the identification table, The updating unit specifies a packet that needs to be changed using the corrected difference information and the correspondence held in the cache management table, and updates the packet as transmission data. According to the above, only the data is transferred from the first node to the second node, and only the difference information is transferred from the second node to the first node. Can be shortened.

【0033】[0033]

【発明の実施の形態】(A)本発明の概略 (1)本発明の第1のアプリケーション処理 図1は本発明の第1のアプリケーション処理の概略説明
図であり、(a)は中継装置のアプリケーション処理の
流れ説明図、(b)はキャッシュ管理テーブルの説明図
である。中継装置は図示しないがハードウェアHW、カー
ネルKNL、アプリケーションAPLで構成されている。
DESCRIPTION OF THE PREFERRED EMBODIMENTS (A) Outline of the Present Invention (1) First Application Processing of the Present Invention FIG. 1 is a schematic explanatory diagram of a first application processing of the present invention, and FIG. FIG. 4B is an explanatory diagram of the flow of application processing, and FIG. 4B is an explanatory diagram of a cache management table. Although not shown, the relay device includes a hardware HW, a kernel KNL, and an application APL.

【0034】(1-1) 構成 カーネルKNLに設けられたキャッシュ手段CSHは、ハード
ウェアHWより受信したパケットをアプリケーションバッ
ファ300aにコピーすると共に、該受信パケット(コピー
元データ)をカーネルバッファ200内のキャッシュメモリ
200aに保存(キャッシュ)する。キャッシュ手段CSH1内
に設けられたキャッシュ管理テーブル作成手段CCTCは、
アプリケーションバッファ300a上のコピー先データと
キャッシュメモリ200a上のコピー元データ(パケット)と
を対応づけるためのテーブル(キャッシュ管理テーブル
CCT)を作成し、アプリケーションバッファ300内に記憶
する。キャッシュ管理テーブルCCTは、1データに複数
のパケットPT1〜PTnが存在するときは、パケット毎にデ
ータとパケットの対応関係を(b)に示すように管理す
る。後に差分データを作成するとき、このキャッシュ管
理テーブルCCTを参照することにより変更を施す受信パ
ケットを特定することができる。
(1-1) Configuration The cache means CSH provided in the kernel KNL copies a packet received from the hardware HW to the application buffer 300a and copies the received packet (copy source data) in the kernel buffer 200. Cache memory
Store (cache) in 200a. The cache management table creation means CCTC provided in the cache means CSH1,
A table (cache management table) for associating the copy destination data on the application buffer 300a with the copy source data (packet) on the cache memory 200a.
CCT) is created and stored in the application buffer 300. Cache management table CCT, when there are multiple packets PT 1 ~PT n 1 data, manages to indicate the correspondence between the data and the packet (b) for each packet. When the difference data is created later, the received packet to be changed can be specified by referring to the cache management table CCT.

【0035】アプリケーションAPLの差分情報作成手段D
IFCは、キャッシュ管理テーブルCCTを参照することによ
りデータ中の変更箇所を含むパケットを特定し、該パケ
ット特定情報、パケットの変更箇所及びその変更内容を
含む差分情報DIFを作成する。カーネルKNLに設けられた
更新手段UPDは、差分情報作成手段DIFCが作成した差分
情報DIFが指定するキャッシュメモリ200a上のパケット
に対して、同情報が指定する変更箇所をその変更内容で
置換することにより送信データを作成する。
Means D for creating difference information of application APL
The IFC specifies a packet including a changed portion in the data by referring to the cache management table CCT, and creates difference information DIF including the packet specifying information, the changed portion of the packet, and the changed content. The updating means UPD provided in the kernel KNL replaces, in the packet on the cache memory 200a specified by the difference information DIF created by the difference information creating means DIFC, the changed portion specified by the information with the changed contents. Creates transmission data.

【0036】(1-2) 作用 中継装置のハードウェアHWが外部から受信したパケット
PTiを、カーネルKNLはアプリケーションバッファ300aに
コピーする。その際、キャッシュ手段CSHは、カーネル
バッファ内のキャッシュメモリ200aに受信パケットPTi
を保存する。また、キャッシュ管理テーブル作成手段CC
TCは、保存した受信パケットPTi(i=1〜n)とアプリケー
ションバッファ300a上にコピーしたデータとの対応を記
憶するキャッシュ管理テーブルCCTをアプリケーション
バッファ300内に作成する。ついで、アプリケーションA
PLは受信したデータ(PT1〜PTn)にセキュリティチェック
などの処理を施し、差分情報作成手段DIFCはチェック結
果に基づいて変更が必要なデータ部分に応じたキャッシ
ュメモリ200aのパケットPTiをキャッシュ管理テーブルC
CTを参照して特定する。しかる後、差分情報作成手段DI
FC1は、変更対象のパケットPTiを特定する情報と、
そのパケットに関する変更箇所、及びその変更内容を
記した差分情報DIFをメモリ300bに作成し、該差分情報D
IFを更新手段UPDがアクセス可能なメモリ200bにコピー
する。
(1-2) Operation Packet received externally by the hardware HW of the relay device
The PTi is copied by the kernel KNL to the application buffer 300a. At that time, the cache means CSH stores the received packet PTi in the cache memory 200a in the kernel buffer.
Save. Also, the cache management table creation means CC
The TC creates a cache management table CCT in the application buffer 300 that stores a correspondence between the stored received packet PTi (i = 1 to n) and the data copied on the application buffer 300a. Then, application A
The PL performs processing such as security check on the received data (PT1 to PTn), and the difference information creating means DIFC stores the packet PTi of the cache memory 200a according to the data portion that needs to be changed based on the check result in the cache management table C.
Identify by referring to CT. Then, the difference information creation means DI
FC1 includes information for identifying the packet PTi to be changed,
A difference information DIF describing a changed portion of the packet and the contents of the change is created in the memory 300b, and the difference information DIF is created.
The IF is copied to the memory 200b accessible by the updating means UPD.

【0037】更新手段UPDはアプリケーションAPLから差
分情報DIFを受信すれば、該差分情報DIFにより変更対象
であるキャッシュメモリ200a上のパケットPTiを特定
し、ついで、該パケットPTi内の変更箇所を特定し、該
変更箇所のデータを変更内容で置換し、これを以って送
信データとする。最後にハードウェアHWが外部に対して
このパケットを送信することで、端末間通信の中継を行
うことが可能となる。
When receiving the difference information DIF from the application APL, the updating means UPD specifies the packet PTi in the cache memory 200a to be changed by the difference information DIF, and then specifies the changed portion in the packet PTi. Then, the data of the changed portion is replaced with the changed contents, and this is used as transmission data. Finally, the hardware HW transmits this packet to the outside, so that communication between terminals can be relayed.

【0038】(2)本発明の第2のアプリケーション処
理 図2は本発明の第2のアプリケーション処理の概略説明
図であり、(a)は中継装置のアプリケーション処理の
流れ説明図、(b)はキャッシュ管理テーブルの説明図
である。第2のアプリケーション処理が図1のアプリケ
ーション処理と異なる点は、キャッシュ管理テーブルCC
Tを更新手段UPDがアクセス可能なカーネルバッファ200
内に作成した点である。中継装置のハードウェアHWが外
部から受信したパケットをPTi、カーネルKNLはアプリケ
ーションバッファ300aにコピーする。その際、キャッシ
ュ手段CSHは、カーネルバッファ内のキャッシュメモリ2
00aに受信パケットPTiを保存する。また、キャッシュ管
理テーブル作成手段CCTCは、保存した受信パケットPTi
(i=1〜n)と、アプリケーションバッファ300上にコピー
したデータとの対応を記憶するキャッシュ管理テーブル
CCTを更新手段UPDがアクセス可能なカーネルバッファ20
0内に作成する。
(2) Second Application Process of the Present Invention FIG. 2 is a schematic explanatory diagram of a second application process of the present invention, wherein FIG. FIG. 4 is an explanatory diagram of a cache management table. The second application processing differs from the application processing of FIG.
T means to update kernel buffer 200 accessible by UPD
It is a point created within. The hardware HW of the relay apparatus copies the packet received from the outside to the PTi, and the kernel KNL copies the packet to the application buffer 300a. At that time, the cache means CSH is the cache memory 2 in the kernel buffer.
The received packet PTi is stored in 00a. The cache management table creating means CCTC also stores the received packet
(i = 1 to n) and a cache management table for storing the correspondence between the data copied on the application buffer 300
CCT update means Kernel buffer 20 accessible by UPD
Create within 0.

【0039】アプリケーションAPLは上記受信したデー
タ(PT1〜PTn)に関してセキュリティチェックなどを行
う。ついで、差分情報作成手段DIFCはチェック結果に基
づいて、データ特定情報、該データに関する変更箇
所、変更内容を記した差分情報DIFを作成してメモリ3
00bに記憶し、該差分情報DIFを更新手段UPDがアクセス
可能なメモリ200bにコピーする。アプリケーションAPL
から差分情報DIFを受信すれば、更新手段UPDは差分情報
DIFが変更対象とするデータの変更箇所に相当する部分
を含むパケットをキャッシュ管理テーブルCCTを参照し
て特定し、該パケット内の変更箇所の情報を差分情報DI
Fの変更内容により置換し、これを以って送信データと
する。最後にハードウェアHWが外部に対してこのパケッ
トを送信することで、端末間通信の中継を行うことが可
能となる。
The application APL performs a security check and the like on the received data (PT1 to PTn). Then, based on the check result, the difference information creating means DIFC creates difference information DIF describing the data specifying information, the changed portion related to the data, and the changed content, and stores the difference information DIF in the memory 3.
00b, and copies the difference information DIF to the memory 200b accessible by the updating means UPD. Application APL
UPD receives the difference information DIF from the
The packet including the portion corresponding to the changed portion of the data to be changed by the DIF is identified with reference to the cache management table CCT, and the information of the changed portion in the packet is identified by the difference information DI.
Replace with the changed contents of F, and use this as the transmission data. Finally, the hardware HW transmits this packet to the outside, so that communication between terminals can be relayed.

【0040】(3)本発明の第3のアプリケーション処
理 図3は本発明の第3のアプリケーション処理の概略説明
図であり、中継装置のアプリケーション処理の流れを示
している。第3のアプリケーション処理が図1の第1の
アプリケーション処理と異なる点は、カーネルKNLがハ
ードウェアHW上のメモリ100に直接アクセス可能となる
ようにした点であり、便宜上カーネルバッファ200中に
ハードウェアバッファ100が含まれるように示してい
る。キャッシュ手段CSHは、ハードウェアHWが受信した
パケットPTiをアプリケーションバッファ300aにコピー
すると共に、該受信パケットPTi(コピー元データ)をハ
ードウェアバッファ内のキャッシュメモリ100a内に保存
(キャッシュ)する。
(3) Third Application Processing of the Present Invention FIG. 3 is a schematic explanatory diagram of the third application processing of the present invention, and shows a flow of application processing of the relay device. The third application process is different from the first application process in FIG. 1 in that the kernel KNL can directly access the memory 100 on the hardware HW. 100 is shown to be included. The cache unit CSH copies the packet PTi received by the hardware HW to the application buffer 300a, and stores (caches) the received packet PTi (copy source data) in the cache memory 100a in the hardware buffer.

【0041】・作用 中継装置のハードウェアHWが外部から受信したパケット
PTiを、カーネルKNLはアプリケーションバッファ300に
コピーする。その際、キャッシュ手段CSHは、ハードウ
ェアバッファ100内のキャッシュメモリ100aに受信パケ
ットPTiを保存する。また、キャッシュ管理テーブル作
成手段CCTCは、保存した受信パケットPTi(i=1〜n)と、
アプリケーションバッファ300上にコピーしたデータと
の対応関係を示すキャッシュ管理テーブルCCTを作成
し、アプリケーションバッファ300内に記憶する。アプ
リケーションAPLは上記受信したデータ(PT1〜PTn)に関
して、セキュリティチェックなどを行い、差分情報作成
手段DIFCはチェック結果に基づいてデータ内で変更を施
す箇所を含むパケットPTiをキャッシュ管理テーブルCCT
を用いて特定する。しかる後、差分情報作成手段DIFC1
は、変更対象のパケットPTiを特定する情報と、そ
のパケットに関する変更箇所、及びその変更内容を記
した差分情報DIFをメモリ300bに作成し、該差分情報DIF
を更新手段UPD1がアクセス可能なメモリ200bにコピーす
る。
Operation Packets received externally by the hardware HW of the relay device
The PTi is copied to the application buffer 300 by the kernel KNL. At that time, the cache unit CSH stores the received packet PTi in the cache memory 100a in the hardware buffer 100. Also, the cache management table creation means CCTC includes the stored received packet PTi (i = 1 to n),
A cache management table CCT indicating the correspondence with the data copied on the application buffer 300 is created and stored in the application buffer 300. The application APL performs a security check and the like on the received data (PT1 to PTn), and the difference information creating unit DIFC stores a packet PTi including a portion to be changed in the data based on the check result in the cache management table CCT.
Specify using. Then, the difference information creation means DIFC1
Creates, in the memory 300b, information for specifying the packet PTi to be changed, and a difference information DIF describing the changed portion of the packet and the details of the change, and the difference information DIF
To the memory 200b accessible by the updating means UPD1.

【0042】更新手段UPD1はアプリケーションAPLから
差分情報DIFを受信すれば、該差分情報DIFにより変更対
象であるキャッシュメモリ100a上のパケットPTiを特定
し、ついで、該パケットPTi内の変更箇所を特定し、該
変更箇所のデータを変更内容で置換し、これを以って送
信データとする。最後にハードウェアHWが外部に対して
このパケットを送信することで、端末間通信の中継を行
うことが可能となる。なお、更新手段UPDはハードウェ
アHW内に設けることもできる。
When receiving the difference information DIF from the application APL, the updating means UPD1 specifies the packet PTi in the cache memory 100a to be changed by the difference information DIF, and then specifies the changed portion in the packet PTi. Then, the data of the changed part is replaced with the changed contents, and this is used as transmission data. Finally, the hardware HW transmits this packet to the outside, so that communication between terminals can be relayed. The updating means UPD may be provided in the hardware HW.

【0043】(4)本発明の第4のアプリケーション処
理 図4は本発明の第4のアプリケーション処理の概略説明
図であり、中継装置のアプリケーション処理の流れを示
している。第4のアプリケーション処理が図3の第3の
アプリケーション処理と異なる点は、キャッシュ管理テ
ーブルCCTを更新手段UPDがアクセス可能なハードウェア
バッファ100内に作成した点である。中継装置のハード
ウェアHWが外部から受信したパケットPTiを、カーネルK
NLはアプリケーションバッファ300にコピーする。その
際、キャッシュ手段CSHは、ハードウェアバッファ100内
のキャッシュメモリ100aに受信パケットPTiを保存する
する。また、キャッシュ管理テーブル作成手段CCTCは、
保存した受信パケットPTi(i=1〜n)と、アプリケーショ
ンバッファ300上にコピーしたデータとの対応関係を示
すキャッシュ管理テーブルCCTを作成し、ハードウェア
バッファ100内に記憶する。
(4) Fourth Application Processing of the Present Invention FIG. 4 is a schematic explanatory diagram of the fourth application processing of the present invention, and shows a flow of application processing of the relay device. The fourth application processing differs from the third application processing in FIG. 3 in that the cache management table CCT is created in the hardware buffer 100 accessible by the updating means UPD. The packet HTi received from the outside by the hardware HW of the relay device is
NL copies to application buffer 300. At that time, the cache unit CSH stores the received packet PTi in the cache memory 100a in the hardware buffer 100. Also, the cache management table creation means CCTC,
A cache management table CCT indicating the correspondence between the stored received packet PTi (i = 1 to n) and the data copied on the application buffer 300 is created and stored in the hardware buffer 100.

【0044】アプリケーションAPLは上記受信したデー
タ(PT1〜PTn)に関してセキュリティチェックなどを行
う。ついで、差分情報作成手段DIFCはチェック結果に基
づいて、データ特定情報、該データに関する変更箇
所、変更内容を記した差分情報DIFを作成してメモリ3
00bに記憶し、該差分情報DIFを更新手段UPDがアクセス
可能なメモリ200bにコピーする。アプリケーションAPL
から差分情報DIFを受信すれば、更新手段UPDは差分情報
DIFが変更対象とするデータの変更箇所に相当する部分
を含むパケットをキャッシュ管理テーブルCCTを参照し
て特定し、該パケット内の変更箇所の情報を差分情報DI
Fの変更内容により置換し、これを以って送信データと
する。最後にハードウェアHWが外部に対してこのパケッ
トを送信することで、端末間通信の中継を行うことが可
能となる。
The application APL performs a security check and the like on the received data (PT1 to PTn). Then, based on the check result, the difference information creating means DIFC creates difference information DIF describing the data specifying information, the changed portion related to the data, and the changed content, and stores the difference information DIF in the memory 3.
00b, and copies the difference information DIF to the memory 200b accessible by the updating means UPD. Application APL
UPD receives the difference information DIF from the
The packet including the portion corresponding to the changed portion of the data to be changed by the DIF is identified with reference to the cache management table CCT, and the information of the changed portion in the packet is identified by the difference information DI.
Replace with the changed contents of F, and use this as the transmission data. Finally, the hardware HW transmits this packet to the outside, so that communication between terminals can be relayed.

【0045】(5)本発明の第5のアプリケーション処
理 図5は本発明の第5のアプリケーション処理の概略説明
図であり、受信パケットを一部変更して送信する場
合、不要な受信パケットを特定し、該パケットの送信
をしない場合、受信パケットを変更することなく送信
する場合、新規パケットを作成して送信する場合のア
プリケーション処理/更新処理を説明するものである。
(5-1) 構成 アプリケーションAPLはセキュリティチェック処理後、
チェック結果に基づいて、一部変更を要する受信パケ
ットがあるか、削除すべき不要な受信パケットがある
か、変更を加えずそのまま送信する受信パケットがあ
るか、新規パケットがあるか判断する。差分情報作成
手段DIFCは、一部変更すべきパケットが存在すれば、該
パケット、パケット内の変更箇所、変更内容を特定する
差分情報DIFを作成し、カーネルバッファ内のメモリ200
bにコピーする。
(5) Fifth Application Processing of the Present Invention FIG. 5 is a schematic explanatory diagram of the fifth application processing of the present invention. When a received packet is partially changed and transmitted, unnecessary received packets are specified. The following describes application processing / update processing when the packet is not transmitted, when the received packet is transmitted without being changed, and when a new packet is created and transmitted.
(5-1) Configuration After security check processing,
Based on the check result, it is determined whether there is a received packet that needs to be partially changed, there is an unnecessary received packet that needs to be deleted, there is a received packet that is transmitted without any change, and there is a new packet. If there is a packet to be partially changed, the difference information creating means DIFC creates difference information DIF for specifying the packet, the changed portion in the packet, and the changed content, and stores the packet in the memory 200 in the kernel buffer.
Copy to b.

【0046】削除通知手段DLTNは、不要パケットが存在
すれば該不要パケットを特定する削除情報DLTを作成し
てカーネルバッファ内のメモリ200bにコピーする。無変
更通知手段NCGNは、変更を要しないパケットが存在すれ
ば該無変更パケットを特定する無変更情報NCGを作成し
てカーネルバッファ内のメモリ200bにコピーする。新規
データ通知手段NDTNは、アプリケーションAPLにより新
規作成された新規パケットが存在すれば該新規パケット
NPKをカーネルバッファ内のメモリ200bにコピーする。
差分情報DIFに基づく送信データの更新及び送信処理は
既に図1〜図4に従って説明済みであるから、以下で
は、パケット削除処理、無変更パケット送信処理、新規
パケット送信処理について説明する。ただし、図1で説
明した手続きに従って、複数の受信パケットPT1〜PTnよ
りなる受信データはアプリケーションバッファ300aにコ
ピーされ、かつ、キャッシュメモリ200aに保存されてい
るものとする。
If there is an unnecessary packet, the deletion notifying means DLTN creates deletion information DLT for specifying the unnecessary packet and copies it to the memory 200b in the kernel buffer. If there is a packet that does not need to be changed, the non-change notifying means NCGN creates non-change information NCG specifying the unchanged packet and copies it to the memory 200b in the kernel buffer. If there is a new packet newly created by the application APL, the new data notification means NDTN
Copy the NPK to memory 200b in the kernel buffer.
The update and transmission processing of the transmission data based on the difference information DIF has already been described with reference to FIGS. However, it is assumed that the received data including the plurality of received packets PT1 to PTn is copied to the application buffer 300a and stored in the cache memory 200a according to the procedure described in FIG.

【0047】(5-2) データ削除 アプリケーションAPLはセキュリティチェック処理後、
チェック結果に基づいて、一部変更を要する受信パケ
ットがあるか、削除すべき不要な受信パケットがある
か、変更を加えずそのまま送信する受信パケットがあ
るか、新規パケットがあるか判断する。アプリケーシ
ョンAPLは、受信データに不要なパケットが存在すれ
ば、キャッシュ管理テーブルCCT(図1)を参照してキ
ャッシュメモリ200a上の該不要パケットを特定する。そ
の後、削除通知手段DLTNは、該不要パケットを削除する
ための削除情報DLTを作成してカーネルバッファ内のメ
モリ200bにコピーする。アプリケーションAPLから上記
削除情報を受信すれば、更新手段UPDは削除情報DLTが指
示するキャッシュメモリ200a上のパケットを削除する。
この結果、削除されたパケットは送信されない。以上で
は、一部パケットが削除された場合であるが、受信デー
タを構成する全パケットを削除することもあり、かかる
場合には、送信すべきデータがなく、直ちに中継処理は
終了する。
(5-2) Data deletion After the application APL performs security check processing,
Based on the check result, it is determined whether there is a received packet that needs to be partially changed, there is an unnecessary received packet that needs to be deleted, there is a received packet that is transmitted without any change, and there is a new packet. If an unnecessary packet exists in the received data, the application APL refers to the cache management table CCT (FIG. 1) to specify the unnecessary packet on the cache memory 200a. After that, the deletion notifying means DLTN creates deletion information DLT for deleting the unnecessary packet and copies it to the memory 200b in the kernel buffer. Upon receiving the deletion information from the application APL, the updating means UPD deletes the packet on the cache memory 200a specified by the deletion information DLT.
As a result, the deleted packet is not transmitted. The above is a case where some packets have been deleted. However, all the packets constituting the received data may be deleted. In such a case, there is no data to be transmitted, and the relay process ends immediately.

【0048】(5-3) 無変更パケットの送信 アプリケーションAPLはセキュリティチェック処理後、
チェック結果に基づいて、一部変更を要する受信パケ
ットがあるか、削除すべき不要な受信パケットがある
か、変更を加えずそのまま送信する受信パケットがあ
るか、新規パケットがあるか判断する。アプリケーシ
ョンAPLは、変更を加えずそのまま送信するパケットが
存在すれば、キャッシュ管理テーブルCCT(図1)を参
照してキャッシュメモリ200a上の該無変更パケットを特
定する。その後、無変更通知手段NCGNは、無変更パケッ
トを通知するための無変更情報NCGを作成してカーネル
バッファ内のメモリ200bにコピーする。アプリケーショ
ンAPLから無変更情報NCGを受信すれば、更新手段UPDは
無変更情報NCGが指示するキャッシュメモリ200a上のパ
ケットに変更を加えない。この結果、該パケットは受信
されたままの状態でに送信される。
(5-3) Transmission of Unchanged Packet After the application APL performs security check processing,
Based on the check result, it is determined whether there is a received packet that needs to be partially changed, there is an unnecessary received packet that needs to be deleted, there is a received packet that is transmitted without any change, and there is a new packet. If there is a packet to be transmitted without any change, the application APL refers to the cache management table CCT (FIG. 1) to specify the unchanged packet on the cache memory 200a. After that, the non-change notifying means NCGN creates non-change information NCG for notifying an unchanged packet and copies it to the memory 200b in the kernel buffer. Upon receiving the non-change information NCG from the application APL, the updating means UPD does not change the packet on the cache memory 200a indicated by the no-change information NCG. As a result, the packet is transmitted as received.

【0049】以上では、一部のパケットが無変更の場合
であるが、受信データを構成する全パケットが無変更の
場合もある。かかる場合には、チェック処理後、受信デ
ータはそのまま直ちに送信される。すなわち、アプリケ
ーションAPLは、チェック処理後、受信データに変更を
施さないことを決定すれば、そのデータに対応するキャ
ッシュメモリ200a上の全パケットをキャッシュ管理テー
ブルCCTを参照して特定する。その後、無変更通知手段N
CGNは、特定のパケットを無変更で送信するための無変
更情報NCGを作成するとともに、カーネルバッファ上の
メモリ200bにコピーする。アプリケーションAPLから上
記情報を受信した更新手段UPDは、その無変更情報NCGの
対象であるパケットを特定し、これを以って送信データ
とする。最後にハードウェアHWは外部に対してこの無変
更パケットを送信することで、端末間通信の中継を行う
ことが可能となる。
In the above description, some of the packets are unchanged. However, there are cases where all the packets constituting the received data are unchanged. In such a case, after the check processing, the received data is immediately transmitted as it is. That is, if the application APL determines that the received data is not changed after the check processing, the application APL specifies all the packets in the cache memory 200a corresponding to the data by referring to the cache management table CCT. After that, no change notification means N
The CGN creates unchanged information NCG for transmitting a specific packet without change, and copies it to the memory 200b on the kernel buffer. The updating means UPD receiving the information from the application APL specifies a packet which is the target of the unchanged information NCG, and uses it as transmission data. Finally, the hardware HW can relay the communication between the terminals by transmitting the unchanged packet to the outside.

【0050】(5-4) 新規データの送信 アプリケーションAPLはセキュリティチェック処理後、
チェック結果に基づいて、一部変更を要する受信パケ
ットがあるか、削除すべき不要な受信パケットがある
か、変更を加えずそのまま送信する受信パケットがあ
るか、新規パケットがあるか判断する。アプリケーシ
ョンAPLは、新規パケットを作成すべきであると判定す
れば、新規パケットNPKを作成する。その後、新規デー
タ通知手段NDTNは、新規パケットNPKをカーネルバッフ
ァ内のメモリ200bにコピーする。アプリケーションAPL
から新規パケットNPKを受信すれば、更新手段UPDは新規
パケットをその他の送信すべきパケットに追加して送信
データとする。以後、ハードウェアHWは外部に対してこ
の送信データを送信することで、端末間通信の中継を行
うことが可能となる。
(5-4) Transmission of New Data After the security check processing, the application APL
Based on the check result, it is determined whether there is a received packet that needs to be partially changed, there is an unnecessary received packet that needs to be deleted, there is a received packet that is transmitted without any change, and there is a new packet. If the application APL determines that a new packet should be created, it creates a new packet NPK. After that, the new data notification means NDTN copies the new packet NPK to the memory 200b in the kernel buffer. Application APL
, The updating means UPD adds the new packet to other packets to be transmitted and sets it as transmission data. After that, the hardware HW can transmit the transmission data to the outside, thereby relaying the communication between the terminals.

【0051】以上では、送信データの一部を新規パケッ
トとして追加した場合であるが、送信データの全てを新
規パケットとして送信することもある。かかる場合、チ
ェック処理後、アプリケーションAPLは新規の送信デー
タを作成する。新規データ通知手段NDTNは、該新規の送
信データをカーネルバッファ内のメモリ200bにコピーす
る。アプリケーションから新規の送信データを受信すれ
ば、更新手段UPDは新規作成データであることを認識
し、これを以って送信データとする。以後、ハードウェ
アHWは外部に対してこの新規データを送信することで、
端末間通信の中継を行うことが可能となる。
In the above description, a part of the transmission data is added as a new packet. However, the entire transmission data may be transmitted as a new packet. In such a case, after the check processing, the application APL creates new transmission data. The new data notification means NDTN copies the new transmission data to the memory 200b in the kernel buffer. When new transmission data is received from the application, the updating means UPD recognizes that the data is newly created data, and uses this as transmission data. After that, the hardware HW sends this new data to the outside,
It becomes possible to relay communication between terminals.

【0052】(6)本発明の第6のアプリケーション処
理 図6は本発明の第6のアプリケーション処理の概略説明
図である。第6のアプリケーション処理が図1の第1の
アプリケーション処理と異なる点は、アプリケーション
APLに新規データを作成すべきか否かを判定するための
新規データ作成判定手段NDCDを設けた点である。アプリ
ケーションバッファ300a内に保存されている受信データ
に対するアプリケーション処理の結果に基づいて、新規
データ作成判定手段NDCDは受信データまたは受信パケッ
トの変更箇所数を把握し、変更箇所数と設定数Xを比較
する。そして、変更箇所数が設定数Xより小さけれ
ば、差分情報作成手段DIFCに差分情報の作成を指示し、
変更箇所数が設定数Xより大きければ、新規データ作
成部NDTGに差分情報の代わりに新規に送信データを作成
することを指示する。図7(a)は変更箇所数と設定数
Xとの大小により差分情報、新規送信データのいずれを
作成するか判定する例であり、図7(b)は変更箇所の
総データ長と設定長の大小により差分情報、新規送信デ
ータのいずれを作成するか判定する例である。
(6) Sixth Application Process of the Present Invention FIG. 6 is a schematic explanatory diagram of the sixth application process of the present invention. The sixth application processing differs from the first application processing of FIG.
A different point is that the APL is provided with new data creation determining means NDCD for determining whether to create new data. Based on the result of the application processing on the received data stored in the application buffer 300a, the new data creation determining means NDCD grasps the number of changed portions of the received data or the received packet, and compares the number of changed portions with the set number X. . If the number of changed portions is smaller than the set number X, the difference information creation means DIFC is instructed to create difference information, and
If the number of changed parts is larger than the set number X, the new data creation unit NDTG is instructed to create new transmission data instead of the difference information. FIG. 7A shows an example of determining whether to create difference information or new transmission data based on the size of the changed portion and the set number X. FIG. 7B shows the total data length and the set length of the changed portion. This is an example in which it is determined which of differential information and new transmission data is to be created according to the size of the data.

【0053】中継装置のハードウェアHWが外部から受信
したパケットPTを、カーネルKNLはアプリケーションバ
ッファ300aにコピーする。その際、キャッシュ手段CSH
は、カーネルバッファ内のキャッシュメモリ200aに受信
パケットPTiを保存する。また、キャッシュ管理テーブ
ル作成手段CCTCは、保存した受信パケットPTi(i=1〜n)
とアプリケーションバッファ300a上にコピーしたデー
タとの対応を記憶するキャッシュ管理テーブルCCTをア
プリケーションバッファ300内に作成する。アプリケー
ションAPLは上記受信したデータ(PT1〜PTn)に対してセ
キュリティチェックなどの処理を施し、新規データ作成
手段NDCはチェック結果に基づいて、受信データ(あるい
は受信パケット)の変更箇所数を求める、変更箇所数
が設定数Xより小さければ差分情報の作成を指示し、
変更箇所の数が設定数Xより大きければ、差分情報の代
わりに新規に送信データを作成することを指示する。
The kernel KNL copies the packet PT received from outside by the hardware HW of the relay device into the application buffer 300a. At that time, the cache means CSH
Saves the received packet PTi in the cache memory 200a in the kernel buffer. Also, the cache management table creation means CCTC stores the received packet PTi (i = 1 to n)
A cache management table CCT is created in the application buffer 300 to store the correspondence between the data and the data copied on the application buffer 300a. The application APL performs a process such as a security check on the received data (PT1 to PTn), and the new data creation unit NDC calculates the number of changed portions of the received data (or received packet) based on the check result. If the number of locations is smaller than the set number X, an instruction to create difference information is issued,
If the number of changed parts is larger than the set number X, it instructs to newly create transmission data instead of the difference information.

【0054】変更箇所数が設定数Xより小さければ、差
分情報作成手段DIFCは図1で説明し方法で差分情報DIF
を作成し、該差分情報DIFをメモリ200bにコピーする。
更新手段UPD1はアプリケーションAPLから差分情報DIFを
受信すれば、該差分情報DIFにより変更対象であるキャ
ッシュメモリ200a上のパケットPTiを特定し、ついで、
該パケットPTi内の変更箇所を特定し、該変更箇所のデ
ータを変更内容で置換し、これを以って送信データとす
る。最後にハードウェアHWが外部に対してこのパケット
を送信することで、端末間通信の中継を行うことが可能
となる。一方、変更箇所の数が設定数Xより大きけれ
ば、新規データ作成部NDTGは新規データを作成し、該新
規データをカーネルバッファ内のメモリ200cにコピーす
る。アプリケーションから新規の送信データを受信すれ
ば、更新手段UPDは新規作成データであることを認識
し、これを以って送信データとする。以後、ハードウェ
アHWは外部に対してこの新規データを送信する
If the number of changed portions is smaller than the set number X, the difference information creating means DIFC uses the method described in FIG.
Is created, and the difference information DIF is copied to the memory 200b.
Upon receiving the difference information DIF from the application APL, the updating means UPD1 specifies the packet PTi on the cache memory 200a to be changed by the difference information DIF, and then
The changed portion in the packet PTi is specified, the data of the changed portion is replaced with the changed content, and the data is used as transmission data. Finally, the hardware HW transmits this packet to the outside, so that communication between terminals can be relayed. On the other hand, if the number of changed portions is larger than the set number X, the new data creation unit NDTG creates new data and copies the new data to the memory 200c in the kernel buffer. When new transmission data is received from the application, the updating means UPD recognizes that the data is newly created data, and uses this as transmission data. After that, the hardware HW sends this new data to the outside

【0055】以上では、変更箇所数と設定数Xとの大小
により差分情報、新規送信データのいずれを作成するか
判定したが、図7(b)に示すように変更箇所の総デー
タ長と設定長Yの大小により差分情報、新規送信データ
のいずれを作成するか判定するようにもできる。例え
ば、図7(B)の場合、変更ビット長の総和A+B+C
と設定長Yとの大小により差分情報、新規送信データの
いずれを作成するか判定する。以上は中継装置のアプリ
ケーションがセキュリティチェック等の処理を行って外
部にデータを送信する場合であり、図30に示す構成に
適用できる例である。ところで、図31に示すように、
中継装置とは異なるノード(アプリケーションサーバ)
上のアプリケーションがセキュリティチェック等の処理
を行い、中継装置を介して外部に送信する構成がある。
以下は、図31のような構成に適用できる例である。
In the above, it is determined whether to create difference information or new transmission data based on the magnitude of the number of changed portions and the set number X. However, as shown in FIG. It is also possible to determine whether to create difference information or new transmission data based on the length Y. For example, in the case of FIG. 7B, the sum of the changed bit lengths A + B + C
It is determined which of the difference information and the new transmission data is to be created, based on the magnitude of the setting length Y. The above is the case where the application of the relay apparatus performs processing such as security check and transmits data to the outside, and is an example applicable to the configuration shown in FIG. By the way, as shown in FIG.
Node different from the relay device (application server)
There is a configuration in which the above application performs a process such as a security check and transmits it to the outside via a relay device.
The following is an example applicable to the configuration as shown in FIG.

【0056】(7)本発明の第7のアプリケーション処
理 図8は本発明の第7のアプリケーション処理の概略説明
図である。第7のアプリケーション処理が図1の第1の
アプリケーション処理と異なる点は、中継ノード1とデ
ータ処理用アプリケーションを含むノード2を別個に設
け、両ノード上のアプリケーションが相互に必要な情報
の転送を行い、ノード1が外部より受信したデータにノ
ード2のアプリケーションが所定の処理を施す点であ
る。テーブル付き通信手段CMTBは、ノード1上のアプリ
ケーションからノード2上のアプリケーションへ、受信
データ及びキャッシュ管理テーブルCCTのコピーを行う
ものである。通信手段CMは、ノード1上のアプリケーシ
ョン対し、ノード2のアプリケーションがデータ転送を
行うものである。通信手段CM,CMTBは例えばコネクショ
ンを使った既存の異ノード間転送プロトコルなどにより
実現できる。
(7) Seventh Application Process of the Present Invention FIG. 8 is a schematic explanatory diagram of the seventh application process of the present invention. The seventh application processing is different from the first application processing in FIG. 1 in that a relay node 1 and a node 2 including a data processing application are separately provided, and the applications on both nodes transfer mutually necessary information. That is, the application of the node 2 performs predetermined processing on the data received from the outside by the node 1. The communication unit with table CMTB copies the received data and the cache management table CCT from the application on the node 1 to the application on the node 2. The communication means CM transfers data between the application on the node 1 and the application on the node 2. The communication means CM and CMTB can be realized by, for example, an existing transfer protocol between different nodes using a connection.

【0057】テーブル修正手段TBCRは、キャッシュ管理
テーブルに修正を施すものである。テーブル付き通信手
段CMTBを介してノード1から転送されてくるキャッシュ
管理テーブルCCT′は、最初、ノード1上のアプリケー
ションバッファ300aのデータとノード1のキャッシュメ
モリ200a上の受信パケットとの対応を示している。この
ため、テーブル修正手段TBCRはノード2上のアプリケー
ションバッファ300a′のデータとノード1のキャッシュ
メモリ200a上の受信パケットとの対応を示すようにテー
ブルCCT′に修正を施す。以下、アプリケーションの処
理の流れを説明する。中継ノード1のカーネルKNLはハ
ードウェアHWが外部から受信したパケットPTiをアプリ
ケーションバッファ300aにコピーする。その際、キャッ
シュ手段CSHは、カーネルバッファ内のキャッシュメモ
リ200aに受信パケットPTiを保存する。また、キャッシ
ュ管理テーブル作成手段CCTCは、保存した受信パケット
PTi(i=1〜n)とアプリケーションバッファ300a上にコピ
ーしたデータとの対応関係を示すキャッシュ管理テーブ
ルCCTをアプリケーションバッファ300内に作成する。
The table correction means TBCR corrects the cache management table. The cache management table CCT 'transferred from the node 1 via the table-attached communication means CMTB first shows the correspondence between the data of the application buffer 300a on the node 1 and the received packet on the cache memory 200a of the node 1. I have. Therefore, the table modifying means TBCR modifies the table CCT 'so as to indicate the correspondence between the data in the application buffer 300a' on the node 2 and the received packet on the cache memory 200a of the node 1. Hereinafter, the processing flow of the application will be described. The kernel KNL of the relay node 1 copies the packet PTi received from outside by the hardware HW to the application buffer 300a. At that time, the cache means CSH stores the received packet PTi in the cache memory 200a in the kernel buffer. Also, the cache management table creation means CCTC uses the stored received packet
A cache management table CCT indicating the correspondence between the PTi (i = 1 to n) and the data copied on the application buffer 300a is created in the application buffer 300.

【0058】ついで、ノード1のアプリケーションはテ
ーブル付き通信手段11を介してノード2のアプリケー
ションに受信データをコピーする。又、ノード1のアプ
リケーションはデータと共に作成済みのキャッシュ管理
テーブルCCT(図中の途中テーブル)をノード2のアプ
リケーションにコピーし、コピー後、該途中テーブルCC
Tを削除する。ついで、ノード2のアプリケーションは
テーブル修正手段TBCRによりキャッシュ管理テーブルCC
Tを修正し、修正したキャッシュ管理テーブルCCT′がノ
ード2上のアプリケーションバッファ300a′のデータと
ノード1のキャッシュメモリ200a上の受信パケットの対
応を示すようにする。又、ノード2のアプリケーション
はセキュリティチェックなどの処理を受信データに施
す。
Next, the application of the node 1 copies the received data to the application of the node 2 via the communication means 11 with a table. Further, the application of the node 1 copies the created cache management table CCT (intermediate table in the figure) together with the data to the application of the node 2 and, after copying, copies the intermediate table CC
Delete T. Next, the application of the node 2 uses the table modifying means TBCR to execute the cache management table CC.
T is corrected so that the corrected cache management table CCT 'indicates the correspondence between the data of the application buffer 300a' on the node 2 and the received packet on the cache memory 200a of the node 1. Further, the application of the node 2 performs a process such as a security check on the received data.

【0059】チェック処理後、アプリケーションの差分
情報作成手段DIFCはチェック結果に基づいて変更が必要
なデータ部分に応じたキャッシュメモリ200aのパケット
PTiをキャッシュ管理テーブルCCT′を参照して特定す
る。ついで、該変更が必要なパケットを特定する情
報、該パケットに関する変更箇所、変更内容を記し
た差分情報DIFをメモリ300b′に作成し、通信手段CMを
介してノード1上のアプリケーションバッファ300bに該
差分情報DIFをコピーする。差分情報DIFを受信したノー
ド1上のアプリケーションは、更新手段UPDがアクセス
可能なメモリ200bに差分情報DIFコピーする。更新手段U
PDはアプリケーションから差分情報DIFを受信すれば、
該差分情報DIFにより変更対象であるキャッシュメモリ2
00a上のパケットPTiを特定し、ついで、該パケットPTi
内の変更箇所を特定し、該変更箇所のデータを変更内容
で置換し、これを以って送信データとする。最後にハー
ドウェアHWが外部に対してこのパケットを送信すること
で、端末間通信の中継を行うことが可能となる。
After the check processing, the difference information creating means DIFC of the application sends a packet in the cache memory 200a corresponding to the data portion that needs to be changed based on the check result.
The PTi is specified with reference to the cache management table CCT '. Next, information specifying the packet that needs to be changed, a difference portion DIF describing the changed portion of the packet, and the contents of the change are created in the memory 300b ′, and the difference information DIF is stored in the application buffer 300b on the node 1 through the communication means CM. Copy the difference information DIF. The application on the node 1 that has received the difference information DIF copies the difference information DIF to the memory 200b accessible by the updating means UPD. Update means U
PD receives difference information DIF from application,
The cache memory 2 to be changed by the difference information DIF
00a to identify the packet PTi, and then
Is changed, the data of the changed part is replaced with the changed contents, and this is used as transmission data. Finally, the hardware HW transmits this packet to the outside, so that communication between terminals can be relayed.

【0060】(8)本発明の第8のアプリケーション処
理の概略 図9は本発明の第8アプリケーション処理の概略図、図
10はアドレス変換説明図である。第8のアプリケーシ
ョン処理が第7のアプリケーション処理(図8)と異な
る点は、 キャッシュメモリ200aに保存した受信パケットPTi(i=
1〜n)とアプリケーションバッファ300a上にコピーした
データとの対応関係を特定するキャッシュ管理テーブル
CCTをノード2のアプリケーションに転送せず、ノード
1のカーネルバッファ200内に保持する点、 ノード1のアプリケーションバッファ300に変換テー
ブルCVTBを設け、該変換テーブルCVTBに、通信手段(コ
ネクションXとする)とアプリケーションバッファ300a
のデータ先頭アドレスPの対応X,Pを記憶する点、 差分情報作成手段DIFCは、アプリケーションのチェッ
ク結果に基づいて、受信データのうち変更を要する箇所
をアドレスバッファ300a′のアドレスを用いて特定し、
該変更箇所、変更内容等を有する差分情報DIFを作成す
る点、
(8) Outline of Eighth Application Process of the Present Invention FIG. 9 is a schematic diagram of the eighth application process of the present invention, and FIG. 10 is an explanatory diagram of address conversion. The difference between the eighth application process and the seventh application process (FIG. 8) is that the received packet PTi (i =
1 to n) and a cache management table for specifying the correspondence between the data copied on the application buffer 300a
A point that the CCT is not transferred to the application of the node 2 but is held in the kernel buffer 200 of the node 1. A conversion table CVTB is provided in the application buffer 300 of the node 1, and the conversion table CVTB includes communication means (referred to as connection X). And application buffer 300a
The difference information creation means DIFC specifies the portion of the received data that needs to be changed, using the address of the address buffer 300a ', based on the check result of the application. ,
Creating the difference information DIF having the changed portion, the changed content, etc.,

【0061】差分情報修正手段DICRをノード1のアプ
リケーションに設け、変換テーブルCVTBに記憶されてい
るアプリケーションバッファ300aのデータ先頭アドレス
Pとアプリケーションバッファ300a′のデータ先頭アド
レスQとを用いて、差分情報DIFに含まれる変更箇所を
示すアドレスをアプリケーションバッファ300aのアドレ
スに変換する点、 ノード1の更新手段UPDは差分情報DIFに含まれる変更
箇所に相当する部分を含む受信パケットをキャッシュ管
理テーブルCCTを参照して特定し、該パケット内の変更
箇所の情報を差分情報DIFの変更内容により置換し、こ
れを以って送信データとする点、である。
The difference information correcting means DICR is provided in the application of the node 1, and the difference information DIF is calculated using the data head address P of the application buffer 300a and the data head address Q of the application buffer 300a 'stored in the conversion table CVTB. The updating means UPD of the node 1 refers to the cache management table CCT for the received packet including the portion corresponding to the changed portion included in the difference information DIF in that the address indicating the changed portion included in the difference information DIF is converted into the address of the application buffer 300a. Then, the information of the changed portion in the packet is replaced with the changed content of the difference information DIF, and this is used as transmission data.

【0062】図9において、通信手段CMN1は、ノード2
のアプリケーションに対し、ノード1のアプリケーショ
ンがデータ転送するための手段である。この通信手段CM
N1はコネクションXを使った既存の異ノード間転送プロ
トコルにより実現できる。また、上記転送で用いたコネ
クションXと転送したデータの記憶位置(アプリケーシ
ョンバッファ300aのデータ先頭アドレスP)とを対応づ
ける変換テーブルCBTBを作成する。通信手段CMN2は、ノ
ード2のアプリケーションが差分情報DIFをノード1の
アプリケーションに転送するための手段であり、この通
信手段CMN2はコネクションXを使った異ノード間転送プ
ロトコルにより実現できる。
In FIG. 9, the communication means CMN 1
This is a means for the application of the node 1 to transfer data to the application of (1). This communication means CM
N1 can be realized by the existing transfer protocol between different nodes using the connection X. Further, a conversion table CBTB is created that associates the connection X used in the transfer with the storage position of the transferred data (the data start address P of the application buffer 300a). The communication means CMN2 is means for the application of the node 2 to transfer the difference information DIF to the application of the node 1, and the communication means CMN2 can be realized by a different node transfer protocol using the connection X.

【0063】以下、アプリケーションの処理の流れを説
明する。ノード1のハードウェアHWが外部からパケット
を受信すれば、カーネルKNLは受信パケットをアプリケ
ーションバッファ300aにコピーする。その際、キャッシ
ュ手段CSHは、カーネルバッファ内のキャッシュメモリ2
00aに受信パケットPTiを保存する。また、キャッシュ管
理テーブル作成手段CCTCは、保存した受信パケットPTi
(i=1〜n)とアプリケーションバッファ300a上にコピーし
たデータとの対応を記憶するキャッシュ管理テーブルCC
Tを更新手段UPDがアクセス可能なカーネルバッファ200
内に作成する。ついで、ノード1のアプリケーションは
通信手段CMN1により、ノード2のアプリケーションバッ
ファ300a′にデータ(受信データ)をコピーする。又、該
アプリケーションは、ノード1上のデータ(アプリケー
ションバッファ300aの先頭アドレスP)と通信手段CMN1
が用いたコネクションXとの対応関係を特定する変換テ
ーブルCVTBをノード1のアプリケーションがアクセス可
能なメモリ300内に作成する。
Hereinafter, the flow of the processing of the application will be described. When the hardware HW of the node 1 receives a packet from outside, the kernel KNL copies the received packet to the application buffer 300a. At that time, the cache means CSH is the cache memory 2 in the kernel buffer.
The received packet PTi is stored in 00a. The cache management table creating means CCTC also stores the received packet
(i = 1 to n) and a cache management table CC for storing the correspondence between the data copied on the application buffer 300a
T means to update kernel buffer 200 accessible by UPD
Create within. Next, the application of the node 1 copies data (received data) to the application buffer 300a 'of the node 2 by the communication means CMN1. Further, the application communicates the data on the node 1 (the head address P of the application buffer 300a) with the communication means CMN1.
Creates a conversion table CVTB that specifies the correspondence relationship with the connection X used in the memory 300 accessible by the application of the node 1.

【0064】ノード2のアプリケーションは受信したデ
ータに対してセキュリティチェックなどの処理を施す。
ついで、差分情報作成手段DIFCはチェック結果に基づい
て、 データ特定情報、該データに関する変更箇所(変更
箇所はアドレスバッファ300a′のアドレスを用いて特定
する)、変更内容を記した差分情報DIFを作成してメ
モリ300b′に記憶し、コネクションX(通信手段CMN2)
を介して該差分情報DIFをノード1のアプリケーション
バッファ300b′に格納する。ノード1のアプリケーショ
ンに設けた差分情報修正手段DICRは、変換テーブルCVTB
に保持されているバッファ300aのデータ先頭アドレスP
とバッファ300a′のデータ先頭アドレスQとを用いて、
差分情報DIFに含まれる変更箇所を示すアドレスをバッ
ファ300aのアドレスに変換し、変換後の差分情報を更新
手段UPDがアクセス可能なメモリ200bにコピーする。
The application of the node 2 performs processing such as security check on the received data.
Then, based on the check result, the difference information creating means DIFC creates difference information DIF describing the data specifying information, the changed portion of the data (the changed portion is specified using the address of the address buffer 300a '), and the changed content. And stored in the memory 300b ', and the connection X (communication means CMN2)
And stores the difference information DIF in the application buffer 300b 'of the node 1. The difference information correction means DICR provided in the application of the node 1 is based on the conversion table CVTB.
Start address P of buffer 300a held in
And the data head address Q of the buffer 300a ′,
The address indicating the changed part included in the difference information DIF is converted into the address of the buffer 300a, and the converted difference information is copied to the memory 200b accessible by the updating means UPD.

【0065】ノード1の更新手段UPDは差分情報DIFに含
まれる変更箇所に相当する部分を含む受信パケットをキ
ャッシュ管理テーブルCCTを参照して特定し、該パケッ
ト内の変更箇所の情報を差分情報DIFの変更内容により
置換し、これを以って送信データとする。最後にハード
ウェアHWが外部に対してこのパケットを送信すること
で、端末間通信の中継を行うことが可能となる。
The updating means UPD of the node 1 specifies the received packet including the portion corresponding to the changed portion included in the difference information DIF by referring to the cache management table CCT, and determines the information of the changed portion in the packet by the difference information DIF. Is replaced with the changed contents, and this is used as transmission data. Finally, the hardware HW transmits this packet to the outside, so that communication between terminals can be relayed.

【0066】図10は変換テーブルCVTBの動作説明図で
ある。ノード1のアプリケーションからノード2のアプ
リケーションへ、コネクションX経由でデータ転送を行
っている。このデータ転送時において、転送元(ノード
1)のアプリケーションバッファ300aにおけるデータ先
頭アドレスはPであり、転送先(ノード2)におけるア
プリケーションバッファ300a′のデータ先頭アドレスは
Qである。この場合、ノード2上の差分情報作成手段DI
FCが対象とするデータの先頭メモリアドレスはQとな
り、このままでは更新手段UPDは正しくデータの更新が
できない。すなわち、先頭メモリアドレスQを基準にし
たデータを先頭メモリアドレスPを基準にしたデータに
変換しなければならない。そこで、通信手段CMN1である
コネクションXとアプリケーションバッファ300aのデー
タ先頭アドレスPを関連付けた変換テーブルCVTBを、ノ
ード1からノード2へのデータ転送時に作成しておく。
FIG. 10 is a diagram for explaining the operation of the conversion table CVTB. Data is transferred from the application of the node 1 to the application of the node 2 via the connection X. At the time of this data transfer, the data start address in the application buffer 300a of the transfer source (node 1) is P, and the data start address of the application buffer 300a 'in the transfer destination (node 2) is Q. In this case, the difference information creating means DI on the node 2
The head memory address of the data targeted by the FC is Q, and the updating means UPD cannot correctly update the data without any change. That is, data based on the head memory address Q must be converted into data based on the head memory address P. Therefore, a conversion table CVTB that associates the connection X, which is the communication means CMN1, with the data head address P of the application buffer 300a is created when data is transferred from the node 1 to the node 2.

【0067】そして、ノード2からノード1への差分情
報転送時に、差分情報DIFを「コネクションX」より受
信すれば、差分情報修正手段DICRは変換テーブルCVTBよ
り先頭アドレスPを読出し、差分情報の対象であるデー
タの先頭メモリアドレスを、QからPに付けかえる。こ
れにより、差分情報DIFは先頭メモリアドレスPを基準
にしたデータになる。従って、更新手段UPDは以後ノー
ド1のアプリケーション層で差分情報を作成したときと
同様に、以後のパケット更新処理を行うことができる。
Then, when the difference information DIF is received from the “connection X” at the time of transferring the difference information from the node 2 to the node 1, the difference information correcting means DICR reads the head address P from the conversion table CVTB, and Is changed from Q to P. As a result, the difference information DIF becomes data based on the head memory address P. Therefore, the updating means UPD can perform the subsequent packet update processing in the same manner as when the difference information is created in the application layer of the node 1 thereafter.

【0068】(9)本発明の第9のアプリケーション処
理の概略 図11(a)は本発明の第9のアプリケーション処理の
概略図である。この第9のアプリケーション処理が図9
の第8のアプリケーション処理と異なる点は、変換テー
ブルCVTBに代えて識別テーブルRGTBを設けた点である。
識別テーブルRGTBは図9の変換テーブルCVTBと目的は同
じである。ノード1のアプリケーションからノード2の
アプリケーションへ、コネクションX経由でデータ転送
を行っているものとする。また、このデータ転送時にお
いて、転送元(ノード1)のアプリケーションバッファ30
0aにおけるデータ先頭アドレスはPであり、転送先(ノ
ード2)におけるアプリケーションバッファ300a′のデ
ータ先頭アドレスはQであるとする。
(9) Outline of Ninth Application Process of the Present Invention FIG. 11A is a schematic diagram of a ninth application process of the present invention. This ninth application process is shown in FIG.
The difference from the eighth application process is that an identification table RGTB is provided instead of the conversion table CVTB.
The purpose of the identification table RGTB is the same as that of the conversion table CVTB of FIG. It is assumed that data is transferred from the application of the node 1 to the application of the node 2 via the connection X. At the time of this data transfer, the application buffer 30 of the transfer source (node 1)
It is assumed that the data head address at 0a is P and the data head address of the application buffer 300a 'at the transfer destination (node 2) is Q.

【0069】かかる場合、ノード2上の差分情報作成手
段DIFCが対象とするデータの先頭メモリアドレスはQと
なり、このままでは更新手段UPDは正しくデータの更新
ができない。すなわち、先頭メモリアドレスQを基準に
したデータを先頭メモリアドレスPを基準にしたデータ
に変換しなければならない。そこで、転送元データ毎に
一意の識別番号Xを付与し、該データの先頭アドレスP
を識別番号Xを関連付けた識別テーブルRGTB(図11
(b))を、ノード1からノード2へのデータ転送時に
作成しておき、又、通信手段CMN1はデータと共に該識別
番号Xも送信する。差分情報作成手段DIFCは、識別番号
Xを含む差分情報DIFを作成する。すなわち、差分情報
作成手段DIFCは、データ特定情報、該データに関す
る変更箇所(変更箇所はアドレスバッファ300a′の先頭
アドレスQを基準にして特定する)、変更内容、識
別番号Xを有する差分情報DIFを作成する。
In such a case, the head memory address of the data targeted by the difference information creating means DIFC on the node 2 is Q, and the updating means UPD cannot correctly update the data as it is. That is, data based on the head memory address Q must be converted into data based on the head memory address P. Therefore, a unique identification number X is assigned to each transfer source data, and the start address P of the data is assigned.
Is associated with the identification number X (see FIG. 11).
(B)) is created at the time of data transfer from the node 1 to the node 2, and the communication means CMN1 transmits the identification number X together with the data. The difference information creation means DIFC creates difference information DIF including the identification number X. In other words, the difference information creating means DIFC generates the difference information DIF having the data specifying information, the changed portion relating to the data (the changed portion is specified based on the start address Q of the address buffer 300a '), the changed contents, and the identification number X. create.

【0070】ノード2からノード1へ差分情報が転送さ
れると、差分情報修正手段DICRは差分情報DIFに含まれ
る識別番号Xを参照して識別テーブルRGTBより先頭アド
レスPを読み出す。そして、差分情報の対象であるデー
タの先頭メモリアドレスを、QからPに付け替え、か
つ、差分情報から「識別番号」を削除する。これによ
り、差分情報DIFは先頭メモリアドレスPを基準にした
データになる。従って、更新手段UPDは以後ノード1の
アプリケーション層で差分情報を作成したときと同様
に、以後のデータ更新処理を行うことができる。
When the difference information is transferred from the node 2 to the node 1, the difference information correcting means DICR reads the head address P from the identification table RGTB by referring to the identification number X included in the difference information DIF. Then, the head memory address of the data targeted for the difference information is changed from Q to P, and the “identification number” is deleted from the difference information. As a result, the difference information DIF becomes data based on the head memory address P. Therefore, the updating means UPD can perform the subsequent data update processing in the same manner as when the difference information is created in the application layer of the node 1 thereafter.

【0071】(B)第1実施例 図12は本発明の中継概念図であり、TCP/IPプロトコル
を用いて通信を行う端末T1、端末T2を結ぶ経路の途中に
設置した本発明対応の端末(中継装置)T3の中継動作を説
明するネットワーク構成図である。端末T3は、コネクシ
ョンCN1より端末T3宛てのデータを受信し、該データを
コネクションCN2を介して端末T2に中継し、その逆の経
路についても中継することで、端末T1と端末T2の間の通
信を実現しており、中継を行うアプリケーションが、端
末T3上で稼働している。以下では、端末T3が行う動作
(パケット受信、差分データ構造体の作成、パケット送
信)の詳細を示す。なお、第1実施例は図1、図5〜図
7で説明した処理を実現する実施例である。
(B) First Embodiment FIG. 12 is a conceptual diagram of a relay according to the present invention, and is a terminal corresponding to the present invention installed in the middle of a route connecting terminals T1 and T2 that perform communication using the TCP / IP protocol. FIG. 9 is a network configuration diagram illustrating a relay operation of (relay device) T3. The terminal T3 receives the data addressed to the terminal T3 from the connection CN1, relays the data to the terminal T2 via the connection CN2, and also relays the reverse route, thereby enabling communication between the terminal T1 and the terminal T2. And the application to relay is running on terminal T3. In the following, the operation performed by the terminal T3
Details of (packet reception, creation of differential data structure, packet transmission) will be described. The first embodiment is an embodiment that implements the processing described with reference to FIGS. 1 and 5 to 7.

【0072】(a)パケットの受信 図13はパケット受信のフロー図であり、端末T3のハー
ドウェアHWがコネクションCN1よりパケットPTiを受信し
てからプロキシアプリケーションAPLが複数の受信パケ
ットで構成されるデータを受信するまでの端末3が行う
手続を示すものである。 (1) ハードウェアによるパケットの受信 端末T3上のハードウェアHWは、パケットのリンクヘッダ
で示されるMACアドレスが自分のMACアドレスと一致すれ
ば、該パケットを取り込んで、ハードウェアバッファ10
0上のアドレス1(図ではアドレス1-1、1-2)に保存す
る。 (2) カーネルKNLによるパケットの受信 ハードウェア層にアクセスするためのカーネルKNL上の
処理部(ドライバ)は、アドレス1上のパケットをバッ
ファK上のアドレス2(図ではアドレス2-1、2-2)にコピ
ーし、アドレス1上のパケットを削除する。
(A) Reception of Packet FIG. 13 is a flow chart of packet reception. The proxy application APL is composed of a plurality of received packets after the hardware HW of the terminal T3 receives the packet PTi from the connection CN1. Shows the procedure performed by the terminal 3 until the terminal 3 receives the. (1) Receiving a packet by hardware The hardware HW on the terminal T3 fetches the packet if the MAC address indicated by the link header of the packet matches its own MAC address,
It is stored at address 1 (addresses 1-1 and 1-2 in the figure) on 0. (2) Packet reception by kernel KNL The processing unit (driver) on the kernel KNL for accessing the hardware layer transfers the packet on the address 1 to the address 2 on the buffer K (addresses 2-1 and 2- in the figure). Copy to 2) and delete the packet on address 1.

【0073】(3) カーネルKNLによるコネクションの開
設手続き カーネルKNLは、受信パケットについて、IPプロトコル
ヘッダから宛先IPアドレスが端末T3のものであり、かつ
上位プロトコルがTCPプロトコルであることを認識する
と、TCPヘッダのSYNフラグを参照し、コネクションCN1
が開設済みであるかチェックする。SYNフラグが立って
いれば、カーネルKNLは受信パケットのIP/TCPヘッダ中
の 送信元IPアドレスal、 宛先IPアドレスp1、 送信元PORT番号a2、 宛先PORT番号p2 の組み合わせ(al、pl、a2、p2)を新しいコネクションの
開設要求パケットであると認識する。以下では、この組
み合わせを持つコネクションをコネクションCN1と記
し、上記4エントリの組み合わせ(al、pl、a2、p2)をソ
ケット・ペアと記す。以後、カ-ネルKNLはTCPにおける
コネクション確立手続により、端末T1との間にコネクシ
ョンCN1を完成するとともに、プロキシアプリケーショ
ンAPLに対してメッセージを送付してコネクションの完
了を通知する。ついで、カ-ネルKNLはコネクションCN1
に関して、カーネルKNLとアプリケーションAPL間のイン
タフェース部(ソケット1という)及び、該ソケット1に
従属するバッファとして、受信ソケットバッファRSB
1、送信ソケットバッファSSB1、更新待バッファRNB1
を新たに作成する。
(3) Procedure for Opening Connection by Kernel KNL When the kernel KNL recognizes from the IP protocol header that the destination IP address is that of the terminal T3 and that the upper-level protocol is the TCP protocol, Refer to the SYN flag of the header, and connect CN1
Check if has been established. If the SYN flag is set, the kernel KNL uses a combination of the source IP address al, destination IP address p1, source PORT number a2, and destination PORT number p2 (al, pl, a2, p2) is recognized as a new connection establishment request packet. Hereinafter, a connection having this combination is referred to as a connection CN1, and a combination (al, pl, a2, p2) of the above four entries is referred to as a socket pair. Thereafter, the kernel KNL completes the connection CN1 with the terminal T1 by a connection establishment procedure in TCP and sends a message to the proxy application APL to notify the completion of the connection. Next, the kernel KNL is connected to CN1
As for the interface between the kernel KNL and the application APL (referred to as socket 1), and as a buffer subordinate to the socket 1, the reception socket buffer RSB
1, send socket buffer SSB1, update wait buffer RNB1
Is newly created.

【0074】上記で作成した各バッファはキュー構造を
取っており、受信ソケットバッファRSB1はキューの先頭
から順に、バッファK上の受信パケットのアドレス2-1,
2-2...を複数個保存できるものであり、送信ソケットバ
ッファSSB1は、バッファK上の送信パケットのアドレス
を複数個保存するものである。以後、上述の各バッファ
について、バッファキューなる記述を併用する。以上の
手続きにより、ソケット・ペア(al、pl、a2、p2)に対応
したTCPコネクションが未開設な場合におけるコネクシ
ョンCN1の開設手続が終了する。以上では、端末T1から
コネクション開設要求を受けた場合の処理であったが、
端末T3から端末T1にコネクションを開設する際は、ソケ
ット・ペアが(p1,a1,p2,a2)となり、新しいコネクシ
ョンの開設要求パケットを端末T3から端末1に対して送
信し、以後は上記のTCPにおけるコネクション確立手続
により、端末T1との間にコネクションCN1を完成する。
Each of the buffers created above has a queue structure, and the receiving socket buffer RSB1 sequentially receives the addresses 2-1 and 2-1 of the received packet on the buffer K from the head of the queue.
2-2... Can be stored, and the transmission socket buffer SSB1 stores a plurality of addresses of transmission packets on the buffer K. Hereinafter, a description of a buffer queue is used for each of the above buffers. Through the above procedure, the procedure for establishing the connection CN1 when the TCP connection corresponding to the socket pair (al, pl, a2, p2) has not been established is completed. In the above, processing was performed when a connection establishment request was received from the terminal T1,
When a connection is established from the terminal T3 to the terminal T1, the socket pair becomes (p1, a1, p2, a2), and a request for opening a new connection is transmitted from the terminal T3 to the terminal 1. The connection CN1 is completed with the terminal T1 by a connection establishment procedure in TCP.

【0075】(4) 受信パケットアドレスの受信ソケット
バッファキューへの保存 以後、端末T3は受信したパケットのソケット・ペア(a
l、pl、a2、p2)を参照し、該ソケット・ペアに応じた受信
ソケットバッファRSB1のキュー(行列)に、該受信パ
ケットを保存したカーネルバッファ200のアドレス2-1,2
-2,...をキューイングする。 (5) 受信パケット存在メッセージA 受信ソケットバッファRSB1に保存したパケット長の総和
がある上限値を越えると、カーネルKNLは、プロキシア
プリケーションAPLに受信パケットの存在を通知するメ
ッセージである「メッセージA」を前記ソケット1に対
して送信する。
(4) Storing the Received Packet Address in the Receive Socket Buffer Queue Thereafter, the terminal T3 sets the socket pair (a
l, pl, a2, p2), the addresses 2-1-2, 2 of the kernel buffer 200 storing the received packet in the queue (matrix) of the receive socket buffer RSB1 corresponding to the socket pair.
Queue the -2, ... (5) Received packet existence message A When the sum of the packet lengths stored in the receive socket buffer RSB1 exceeds a certain upper limit, the kernel KNL sends a “message A”, which is a message notifying the proxy application APL of the existence of the received packet. Send to the socket 1.

【0076】(6) パケット数要求メッセージB 予めソケット1に関連付けしたプロキシアプリケーショ
ンAPLは、ソケット1からメッセージAを受信すると、
アプリケーションバッファ300内のアドレス4にデータ
を読み込むメモリ領域を用意し、このデータ長を引数と
して今から読み込みを行うパケット数を尋ねる「パケッ
ト数要求メッセージB」を、ソケット1に対して送信す
る。 (7) パケット数応答メッセージC カーネルKNLは、「パケット数要求メッセージB」に対
し、対応するパケット数としてNを応答する「パケット
数応答メッセージC」を送出する。
(6) Packet number request message B When the proxy application APL previously associated with the socket 1 receives the message A from the socket 1,
A memory area for reading data is prepared at address 4 in the application buffer 300, and a “packet number request message B” for asking the number of packets to be read now is transmitted to the socket 1 using the data length as an argument. (7) Packet Number Response Message C The kernel KNL sends a “packet number response message C” that responds to the “packet number request message B” with N as the number of corresponding packets.

【0077】(8)プロキシアプリケーションAPLは、この
メッセージCを受けて、データとパケット群の対応を記
述するキャッシュ管理テーブルCCTの作成に必要なメモ
リ領域をアプリケーションバッファ300内のアドレス5
に確保する。前記のキャッシュ管理テーブルCCTは、ア
プリケーションバッファ300に記憶したデータと受信パ
ケット群PTi(i=1〜N)の対応を記述するテーブルであ
り、1つの受信データに対して1つ作成する。例とし
て、アプリケーションバッファ300内の受信データ1つ
とカーネルバッファ200内のパケット2つが、図14に
示すように対応づけられていれば、この対応づけを表わ
すキャッシュ管理テーブルCCTは図15に示すようにな
る。
(8) In response to the message C, the proxy application APL allocates a memory area necessary for creating a cache management table CCT describing the correspondence between data and a packet group at the address 5 in the application buffer 300.
To secure. The cache management table CCT is a table describing the correspondence between the data stored in the application buffer 300 and the received packet group PTi (i = 1 to N), and one is created for one piece of received data. As an example, if one received data in the application buffer 300 and two packets in the kernel buffer 200 are associated with each other as shown in FIG. 14, the cache management table CCT representing this association is as shown in FIG. Become.

【0078】一般的にキャッシュ管理テーブルCCTは、 N個のパケットPTi(i=1〜N)のそれぞれに対応して作
成され、各パケットを保存したカーネルバッファ200の
内の記憶域の「先頭アドレス」、その「データ長」、次
のパケット用テーブルの先頭メモリアドレスを示す「次
テーブルポインタ」を持つテーブル群(以下、順にテー
ブルCCT-1、テーブルCCT-2、・・・テーブルCCT-Nと記
す)と、 データの読み込み先となるアプリケーションバッファ
300内の記憶域の「先頭アドレス」、「データ長」、読
み込む「パケット数」、及びテーブルCCT-1のメモリの
先頭アドレスを示す「次テーブルポインタ」を持つテー
ブル(以下、テーブルCCT-hと記す)と、から構成され
る。図14の例ではキャッシュ管理テーブルCCTは、テ
ーブルCCT-h、テーブルCCT-1、テーブルCCT-2から構成
される。
Generally, the cache management table CCT is created for each of the N packets PTi (i = 1 to N), and stores the “head address” of the storage area in the kernel buffer 200 storing each packet. ”, Its“ data length ”, and a table group having a“ next table pointer ”indicating the head memory address of the next packet table (hereinafter, table CCT-1, table CCT-2,..., Table CCT-N Notation), and the application buffer to read data from
A table having a “start address”, a “data length”, a “number of packets” to be read, and a “next table pointer” indicating the start address of the memory of the table CCT-1 (hereinafter, table CCT-h and To be described). In the example of FIG. 14, the cache management table CCT includes a table CCT-h, a table CCT-1, and a table CCT-2.

【0079】(8) キャッシュ管理テーブルCCTのサイズ キャッシュ管理テーブルCCTのサイズは、受信データを
構成するパケット数に依存するため、プロキシアプリケ
ーションAPLは、「パケット数応答メッセージC」でパ
ケット数Nを認識した上でメモリを確保し、キャッシュ
管理テーブルCCT(各フィールドの内容は一部を除き空
欄)を作成する。例えば、予め図15のように各フィー
ルド長を全て4バイトと定めた環境で、「パケット数応
答メッセージC」の結果がN=2であれば、キャッシュ
管理テーブルCCTはテーブルCCT-h、テーブルCCT-1、テ
ーブルCCT-2から構成され、その全体長は40バイトと
なり、プロキシアプリケーションAPLは、アプリケーシ
ョンバッファ300内のアドレス5に、40バイトのメモ
リ領域を確保し、キャッシュ管理テーブルCCTの一部フ
ィールドに値(テーブルCCT-hにおける先頭アドレスな
ど)をエントリーする。
(8) Size of Cache Management Table CCT Since the size of the cache management table CCT depends on the number of packets constituting received data, the proxy application APL recognizes the number of packets N in the “packet number response message C”. Then, secure the memory and create the cache management table CCT (the contents of each field are blank except some). For example, in an environment in which each field length is set to 4 bytes in advance as shown in FIG. 15, if the result of the “packet number response message C” is N = 2, the cache management table CCT is the table CCT-h and the table CCT. -1, the table CCT-2, the total length of which is 40 bytes, the proxy application APL secures a 40-byte memory area at the address 5 in the application buffer 300, and stores a partial field of the cache management table CCT. (Such as the start address in table CCT-h).

【0080】(9) データ読み込みメッセージD しかる後、プロキシアプリケーションAPLは、ソケット
1に対し、読み込み先アドレス(=アドレス4)、デー
タ長、テーブルCCTの読み込み先アドレス(=アドレス
5)、読み込みパケット数(=2)を、それぞれ引数と
する「データ読み込みメッセージD」を送信する。
(9) Data Read Message D Thereafter, the proxy application APL sends the socket 1 a read destination address (= address 4), a data length, a table CCT read destination address (= address 5), and the number of read packets. (= 2) is transmitted as a data read message D, respectively.

【0081】(10) カーネルKNLによるアプリケーション
バッファへの書き込み 「データ読み込みメッセージD」を受信したカーネルKN
Lは、受信ソケットバッファRSB1の先頭にキューイング
されているアドレス2-1に記憶されているデータ(パケッ
ト)よりプロトコルヘッダを除き、アドレス4に一つの
データとして書き込み、同時に、テーブルCCT-1の「先
頭アドレス」フィールド、「データ長」フィールドに、
それぞれ、アドレス2-1、読み込みを行うパケットのデ
ータ長(=1024)を書き込む。書き込むパケットが複数存
在する場合は(図14の例ではN=2)、i個目のパケット
を書き込む毎に、テーブルCCT-iの各フィールドに所定
の値を書き込み、かつ、テーブルCCT-hの「パケット
数」フィールドにiを書き込み、全データ書き込み終了
後、テーブルCCT-Nの「次テーブルポインタ」にNULLを
書き込んでキャッシュ管理テーブルCCTの作成を完了す
る。
(10) Writing to Application Buffer by Kernel KNL Kernel KN that Received “Data Read Message D”
L is written as one piece of data at address 4 excluding the protocol header from the data (packet) stored at address 2-1 queued at the head of the receive socket buffer RSB1, and at the same time, In the “Start address” field and the “Data length” field,
Write the address 2-1 and the data length (= 1024) of the packet to be read, respectively. When there are a plurality of packets to be written (N = 2 in the example of FIG. 14), every time the i-th packet is written, a predetermined value is written to each field of the table CCT-i, and After writing i in the “number of packets” field and writing all data, NULL is written in the “next table pointer” of the table CCT-N to complete the creation of the cache management table CCT.

【0082】この後、カーネルKNLは、受信ソケットバ
ッファRSB1から読み込み済みとなったアドレスを削除す
るが、カーネルバッファ200のアドレス2上のデータ自
体は削除しない。但し、カーネルバッファ200の枯渇な
どの理由により、アドレス4へデータコピーした後にア
ドレス2上のデータ(パケット)を削除したい場合があ
る。かかる場合には、カーネルKNLが削除するか否かの
判断を行い、削除すると判断すれば、テーブルCCT-iの
「先頭アドレス」フィールドにNULLを書き込み、アプリ
ケーションAPLに対してカーネルバッファ200にパケット
PTiを保存しないことを通知する。これにより、アプリ
ケーションAPLはテーブルCCT-iの先頭アドレスを参照す
ることで、カーネルバッファ200内にパケットPTiが保存
されているか否かを認識できる。
Thereafter, the kernel KNL deletes the read address from the reception socket buffer RSB1, but does not delete the data on the address 2 of the kernel buffer 200 itself. However, there is a case where the data (packet) on the address 2 is to be deleted after the data is copied to the address 4 due to the exhaustion of the kernel buffer 200 or the like. In such a case, the kernel KNL determines whether or not to delete the data.
Notify that PTi will not be saved. Thus, the application APL can recognize whether or not the packet PTi is stored in the kernel buffer 200 by referring to the start address of the table CCT-i.

【0083】以上の仕組みを持ってキャッシュ手段、す
なわち、 アプリケーションバッファ300へコピーしたパケット
をカーネルバッファのアドレス2(キャッシュメモリ)に
保存し、かつ、 キャッシュメモリ上のパケットとアプリケーション上
のデータとの対応を管理するキャッシ管理テーブルCCT
を作成する、キャッシュ手段を実現できる。なお、下位
レイヤ(カーネル層)にキャッシュ管理テーブルCCTを保
存することもできるが、これについては実施例2で述べ
る。
With the above mechanism, the cache means, that is, the packet copied to the application buffer 300 is stored in the address 2 (cache memory) of the kernel buffer, and the correspondence between the packet in the cache memory and the data in the application is stored. Management table CCT that manages
And a cache means can be realized. The cache management table CCT can be stored in a lower layer (kernel layer), which will be described in a second embodiment.

【0084】(b)差分データ構造体の作成 図16はアプリケーションの差分データ構造体作成処理
説明図である。データの受信を完了したプロキシアプリ
ケーションAPLは、セキュリティ・チェックなどの処理
を行い、処理の過程で受信データに変更が発生すれば、
差分情報DIF(変更箇所、変更内容等)を作成してカーネ
ルKNLに入力し、カーネルKNLが該差分情報DIFとキャッ
シュメモリに保存してある受信パケットPTi(i=1〜N)を
用いて送信データを作成し、ハードウェアHWより外部に
送出する。また、アプリケーションAPLは必要があれば
新規データを作成する。以下では、カーネルバッファ20
0内のキャッシュメモリ(アドレス2-1,2-2)に受信パケッ
トPTi(i=1〜2)が保存されている環境下でのプロキシア
プリケーションAPLの処理を説明する。
(B) Creation of a difference data structure FIG. 16 is an explanatory diagram of a difference data structure creation process of an application. The proxy application APL that has completed the data reception performs processing such as security check, and if the received data changes in the process,
Create the difference information DIF (change location, contents of change, etc.) and input it to the kernel KNL. Creates data and sends it out from the hardware HW. The application APL creates new data if necessary. Below, kernel buffer 20
The processing of the proxy application APL in an environment where the received packets PTi (i = 1 to 2) are stored in the cache memory (addresses 2-1 and 2-2) in 0 will be described.

【0085】(11) プロキシアプリケーションによる差
分データの作成 プロキシアプリケーションAPLはデータの受信を完了
し、かつ、キャッシュ管理テーブルCCTの記憶を完了す
れば、該データに基づいてセキュリティチェック等のデ
ータ処理を行う。このデータ処理の過程で、データに変
更箇所が発生すれば、アプリケーションの差分情報作成
手段DIFCはキャッシュ管理テーブルCCTを参照し、変更
箇所に対応するパケットの変更位置、変更後のデータ内
容等を有する差分情報DIFを作成する。そして、(変更を
要するパケット、該パケット内の変更位置等差分データ
構造体DCB)をアプリケーションバッファ300内のアドレ
ス10に記憶し、変更内容(書き替え後データ)RRDをア
ドレス11に記憶する。
(11) Creation of Difference Data by Proxy Application When the proxy application APL completes data reception and completes storage of the cache management table CCT, it performs data processing such as security check based on the data. . In the course of this data processing, if a changed portion occurs in the data, the application difference information creating means DIFC refers to the cache management table CCT and has the changed position of the packet corresponding to the changed portion, the data content after the change, and the like. Create difference information DIF. Then, (the packet that needs to be changed, the difference data structure DCB such as the change position in the packet) is stored at the address 10 in the application buffer 300, and the changed content (data after rewriting) RRD is stored at the address 11.

【0086】又、新規データ作成判定部NDCDは、テーブ
ルCCT-i(i=1,2,..)の「先頭アドレス」がNULLであれ
ば、カーネル内に受信パケットが保存されていないとみ
なし、新規データ作成手段NDTGに新規データ作成を指示
する。また、新規データ作成判定部NDCDは、受信データ
の変更箇所が多い場合、あるいは、変更ビット数が長い
場合にも、新規データ作成手段NDTGに新規データ作成を
指示する。なお、新規データ作成判定部NDCDは、新規デ
ータを作成しないと決定した場合には差分情報作成手段
DIFCに差分情報作成を指示する
If the “head address” of the table CCT-i (i = 1, 2,...) Is NULL, the new data creation determining unit NDCD regards that the received packet is not stored in the kernel. Then, it instructs the new data creation means NDTG to create new data. Further, the new data creation determining unit NDCD instructs the new data creation means NDTG to create new data even when the number of changed portions of the received data is large or the number of changed bits is long. Note that the new data creation determination unit NDCD determines the difference information creation means when it determines not to create new data.
Instruct DIFC to create difference information

【0087】(12) 差分データ構造体フォーマット 差分データ構造体のフォーマットは、図17に示すよう
に、 変更を要するパケットキャッシュメモリ内のメモリア
ドレスD1、 新規データフラグD2、 削除データフラグD3、 更新領域情報(変更箇所)D4、 更新前のデータバイト位置D5及びデータビット位置D
6、 更新前のデータバイト長D7及びデータビット長D8、 更新後のデータバイト長D9及びデータビット長D10、 同一パケットに関する追加変更の有無情報D11、 更新後のデータ内容を記憶する位置を示すポインタD1
2 をメンバとして有している。データ位置は、「バイト位
置D5」+「ビット位置D6」の形でビット単位で指定す
る。上記メンバのうち「ビット位置D6」、「ビット長D
8,D10」「追加変更の有無情報D11」、「新規データフラ
グD2」、「削除データフラグD3」の長さは1バイト、残
りのメンバの長さは全て4バイトである。各構造体メン
バの詳細は、後述する(13)「差分情報作成手段」及び(14)
「新規データ作成手段」の中で説明する。
(12) Difference Data Structure Format As shown in FIG. 17, the format of the difference data structure is a memory address D1, a new data flag D2, a deleted data flag D3, and an update area in the packet cache memory that need to be changed. Information (changed part) D4, data byte position D5 and data bit position D before update
6.Data byte length D7 and data bit length D8 before update, data byte length D9 and data bit length D10 after update, additional / unchanged information D11 on the same packet, pointer indicating the location to store the updated data contents D1
2 as a member. The data position is specified in bit units in the form of “byte position D5” + “bit position D6”. Of the above members, "Bit position D6", "Bit length D
8, D10, "additional change presence / absence information D11,""new data flag D2," and "deletion data flag D3" have a length of 1 byte, and the remaining members have a length of 4 bytes. Details of each structure member will be described later (13) “Difference information creation means” and (14)
This will be described in "New data creation means".

【0088】(13) 差分情報作成手段 図14に示すように、プロキシアプリケーションAPLが
カーネルKNLから受信した2048バイトのデータがアプリ
ケーションバッファ300のアドレス4に記憶され、か
つ、それに対応する2個の受信パケットPT1,PT2(N=2)
がカーネルバッファ200(キャッシュメモリ)内のアドレ
ス2-1,2-2に保存されており、更に、その対応を記した
キャッシュ管理テーブルCCTが図15に示すようにアプ
リケーションバッファ300のアドレス5に保存されてい
るものとする。 ・プロトコルヘッダにのみ変更を加える場合 ソケット・ペア(a1,p1,a2,p2)のコネクションCN1から受
信し、カーネルKNLを介してアプリケーションバッファ3
00のアドレス4にコピーされたデータの内容に変更を加
えずにソケット・ペア(b1,q1,b2,q2)のコネクションCN2
へデータを送信する場合、差分情報作成手段DIFCはキャ
ッシュメモリ上の受信パケットPT1,PT2のTCP/IPプロト
コルヘッダのみ変更するように差分情報を作成する。
(13) Difference Information Creation Means As shown in FIG. 14, the 2048-byte data received by the proxy application APL from the kernel KNL is stored in the address 4 of the application buffer 300, and two corresponding receptions are performed. Packet PT1, PT2 (N = 2)
Are stored at addresses 2-1 and 2-2 in the kernel buffer 200 (cache memory), and a cache management table CCT describing the correspondence is stored at address 5 of the application buffer 300 as shown in FIG. It is assumed that -When making changes only to the protocol header Receive from the connection CN1 of the socket pair (a1, p1, a2, p2) and send the application buffer 3 via the kernel KNL.
Connection CN2 of socket pair (b1, q1, b2, q2) without changing the contents of the data copied to address 4 of 00
When transmitting data to the cache, the difference information creating means DIFC creates difference information so as to change only the TCP / IP protocol header of the received packets PT1 and PT2 in the cache memory.

【0089】すなわち、差分情報作成手段DIFCは、デー
タ内容を変更する必要がなければ、以下に説明する処理
により、キャッシュメモリ上の受信パケットPT1,PT2のT
CP/IPプロトコルヘッダのソケット・ペアを変更するた
めの差分情報DIF(差分データ構造体DCB及び書き替え後
データRRD)を作成する。すなわち、パケットPT1につい
て下記の〜の処理を行い、処理終了後、アドレス2-
2のパケットPT2について同様の処理を行う。
That is, if there is no need to change the data content, the difference information creating means DIFC performs the processing described below to obtain the T
Create difference information DIF (difference data structure DCB and rewritten data RRD) for changing the socket pair of the CP / IP protocol header. That is, the following processes 1 to 3 are performed on the packet PT1.
The same processing is performed for the second packet PT2.

【0090】まず、差分情報作成手段DIFCは、図15
のキャッシュ管理テーブルCCTを参照し、変更対象であ
るアドレス4のデータに対応するパケットPT1,PT2がキ
ャッシュメモリ(アドレス2-1,2-2)に存在することを認
識し、「パケットのメモリアドレスD1」としてアドレス
2-1を設定する(D1=アドレス2-1)。 ついで、差分情報作成手段DIFCは、図15のキャッシ
ュ管理テーブルCCTを基に差分データ構造体DCBを作成す
るためのメモリ領域として30バイトを確保し、IPヘッ
ダを指定するように「更新領域情報D4」を設定する。
「更新領域情報D4」とは、予めパケットを幾つかの領域
に区分けしておき、そのうちのどの領域を変更するかを
指定する情報である。例えば、IPヘッダを領域1、TCPヘ
ッダを領域2、・・・、アプリケーションが使用するデ
ータ部を領域50とすれば、更新領域情報D4=1とすること
により変更領域がIPヘッダであることを指示できる。変
更領域がなければD4=NULLとする。
First, the difference information creating means DIFC
The cache management table CCT of FIG. 2 recognizes that the packets PT1 and PT2 corresponding to the data of the address 4 to be changed exist in the cache memory (addresses 2-1 and 2-2), Address as "D1"
Set 2-1 (D1 = address 2-1). Next, the difference information creating means DIFC secures 30 bytes as a memory area for creating the difference data structure DCB based on the cache management table CCT in FIG. Is set.
The “update area information D4” is information that preliminarily divides a packet into several areas and specifies which of the areas is to be changed. For example, if the IP header is Area 1, the TCP header is Area 2,..., And the data part used by the application is Area 50, the update area information D4 = 1 indicates that the changed area is the IP header. I can tell you. If there is no change area, D4 = NULL.

【0091】次に、更新前のデータのバイト位置D5及
びビット位置D6を、それぞれIPヘッダ中における送信元
IPアドレスa1の位置より特定し、又、更新前のデータの
バイト長D7及びビット長D8を、それぞれ送信元IPアドレ
スa1の長さにより特定する。IPプロトコルヘッダは図3
5(a)に示す構成を有しており、送信元IPアドレス
は、先頭から12バイト+0ビット目に始まる32ビット(=4
バイト+0ビット)である。このため、D5=12バイト、D6=0
ビット、D7=4バイト、D8=0ビットとする。また、更新後
のデータのバイト長D9及びビット長D10は、それぞれ更
新前と変更なく32ビット(4バイト+0ビット)であるた
め、順にD9=4バイト、D10=0ビットとする。
Next, the byte position D5 and the bit position D6 of the data before update are respectively indicated by the transmission source in the IP header.
The byte length D7 and the bit length D8 of the data before updating are specified from the position of the IP address a1, and the byte length D7 and the bit length D8 of the data before the update are each specified by the length of the source IP address a1. Figure 3 shows the IP protocol header
5 has a structure shown in (a), source IP address, from the head 12 bytes + 0-th bit to the beginning 32-bit (= 4
Byte + 0 bit). Therefore, D5 = 12 bytes, D6 = 0
Bit, D7 = 4 bytes, D8 = 0 bit. Since the byte length D9 and the bit length D10 of the updated data are 32 bits ( 4 bytes + 0 bits) before and after the update, respectively, D9 = 4 bytes and D10 = 0 bits in order.

【0092】ついで、差分情報作成手段DIFCは、変更
内容(書き換え後データRRD)を保存するためのメモリ領
域をアプリケーションバッファ300内のアドレス11に
新たに確保し、ここに「書き換え後データRRD」を保存
する。この例では、更新後の送信元IPアドレスである
“b1”を書き込む。また、差分データ構造体DCBのポイ
ンタD12をアドレス11とする。 この例では同一受信パケットに関してソケット・ペア
全ての変更を行うため、送信元IPアドレス以外にもデー
タの変更点があることを宣言するために、「同一パケッ
トに関する追加変更の有無情報D11」を1に設定する。
もしも、これ以上の変更点がなければ、D1=0とする。 「新規データフラグD2」は、ポインタD12が示す変更
内容(書き換え後データRRD)が、新規データ作成手段ND
TGで作成した新規データであるか否かを特定するもの
で、新規データであればD2=1、新規データでなければD
2=0である。ここでは、新規データでないからD2=0であ
る。
Next, the difference information creating means DIFC newly secures a memory area for storing the changed contents (the rewritten data RRD) at the address 11 in the application buffer 300, and stores the “rewritten data RRD” here. save. In this example, the updated source IP address "b1" is written. Further, the pointer D12 of the difference data structure DCB is set to address 11. In this example, since all socket pairs are changed with respect to the same received packet, "additional change presence / absence information D11 regarding the same packet" is set to 1 in order to declare that there is a change in data other than the source IP address. Set to.
If there are no further changes, D1 = 0. The “new data flag D2” indicates that the changed content (the rewritten data RRD) indicated by the pointer D12 is the new data creation means ND.
Specifies whether the data is new data created by the TG. If it is new data, D2 = 1; if not, D2
2 = 0. Here, D2 = 0 because it is not new data.

【0093】「削除データフラグD3」は、プロキシア
プリケーションAPLが受信パケットを廃棄することを決
定した場合に、D3=1とし、他の場合D3=0とする。ここ
ではデータを廃棄するものではないから、D3=0とする。 以下、残りのソケット・ペア(q1,q2,q3)についても
同様に差分データ構造体DCBを作成するが、最後の送信
先PORT番号q2の変更に関する差分データ構造体DCBを作
成したときは、上記における「追加変更の有無情報D1
1」を0にする。以上により、IP/TCPヘッダの変更を指示
する差分情報DIF、すなわち、差分データ構造体DCBと書
き替え後データRRD(=b1,q1,b2,q2)の作成が完了する。
但し、本実施例では採用しないが、送出時にコネクショ
ンCN2に中継することを認識したカーネルKNLがプロトコ
ルヘッダの変更を行うように構成することもできる。
The “deletion data flag D3” sets D3 = 1 when the proxy application APL decides to discard the received packet, and sets D3 = 0 in other cases. Here, D3 = 0 is set because data is not discarded. Hereinafter, a difference data structure DCB is similarly created for the remaining socket pairs (q1, q2, q3). "Information D1 of additional changes
Set "1" to 0. As described above, the creation of the difference information DIF instructing the change of the IP / TCP header, that is, the creation of the difference data structure DCB and the rewritten data RRD (= b1, q1, b2, q2) is completed.
However, although not adopted in the present embodiment, a configuration may be adopted in which the kernel KNL that recognizes that the packet is relayed to the connection CN2 at the time of transmission changes the protocol header.

【0094】・データ内容に変更を加える場合 アプリケーションバッファ300のアドレス4に保存した
データの一部、例えばデータの2024バイト目から24バイ
トを削除する場合、以下のように差分データ構造体DCB
を作成する。但し、ソケット・ペアの変更は上記と同様
に行うものとする。 プロキシアプリケーションの差分情報作成手段DIFC
は、変更対象であるアドレス4のデータに対応するパケ
ットが、キャッシュメモリ(アドレス2-1〜2-2)に存在
することを認識し、更に2024バイト目はパケットPT2で
あることを認識し、「パケットのメモリアドレスD1」と
してアドレス2-2を設定する。 更新領域情報D4として領域50を設定し(D5=50)、デー
タ部の変更を宣言する。
When a change is made to the data contents When a part of the data stored at the address 4 of the application buffer 300, for example, 24 bytes from the 2024th byte of the data is deleted, the difference data structure DCB is as follows.
Create However, the socket pair is changed in the same manner as described above. Proxy application difference information creation means DIFC
Recognizes that the packet corresponding to the data at the address 4 to be changed exists in the cache memory (addresses 2-1 to 2-2), and further recognizes that the 2024th byte is the packet PT2. Address 2-2 is set as “packet memory address D1”. The area 50 is set as the update area information D4 (D5 = 50), and the change of the data part is declared.

【0095】更新前のデータのバイト位置D5及びビッ
ト位置D6をパケットPT2における変更位置である1000バ
イト目(1000バイト+0ビット)に、更新前のデータのバイ
ト長D7及びビット長D8を(24バイト+0ビット)に、更新後
のデータのバイト長D9及びビット長D10を(0バイト+0ビ
ット)に、それぞれ指定する。すなわち、D5=1000バイ
ト、D6=0ビット、D7=24バイト、D8=0ビット、D9=0バ
イト、D10=0ビットとする。 この例では、指定領域の削除を行うため、「書き換え
後データRRD」は作成せず、差分データ構造体DCBのポイ
ンタD12をNULLとする。 又、この例では、他に同一受信パケットに関してソケ
ット・ペア全ての変更を行うため、「同一パケットに関
する追加変更の有無情報D11」を1に設定する。 「新規データフラグ」についてはD2=0とする。 「削除データフラグ」についてはD3=0とする。 以上により、データ内容の一部を削除する場合における
差分データ構造体DCBの作成を完了する。
The byte position D5 and the bit position D6 of the data before update are set to the byte position D5 and the bit position D6 of the data before update at the 1000th byte (1000 bytes + 0 bits) which is the change position in the packet PT2. The byte length D9 and the bit length D10 of the updated data are specified in (byte + 0 bit), respectively (0 byte + 0 bit). That is, D5 = 1000 bytes, D6 = 0 bits, D7 = 24 bytes, D8 = 0 bits, D9 = 0 bytes, and D10 = 0 bits. In this example, to delete the specified area, the “data RRD after rewriting” is not created, and the pointer D12 of the difference data structure DCB is set to NULL. In this example, in order to change all the socket pairs with respect to the same received packet, the “additional change presence / absence information D11 regarding the same packet” is set to 1. D2 = 0 for the "new data flag". For the “deletion data flag”, D3 = 0. As described above, the creation of the difference data structure DCB when a part of the data content is deleted is completed.

【0096】・データを変更しない場合 アプリケーションバッファ300のアドレス4に保存した
データを無変更のまま送出する場合、以下のような差分
データ構造体DCBを作成する。ここで言う「無変更」と
は、ソケット・ペア自体も全く変更を加えない場合であ
る。なお、パケットPT1について下記の〜の差分デ
ータ構造体の作成処理を行い、処理終了後、アドレス2-
2のパケットPT2について同様の処理を行う。 プロキシアプリケーションの差分情報作成手段DIFC
は、無変更のまま送出を行う対象であるアドレス4のデ
ータに対応するパケットPT1,PT2が、キャッシュメモリ
(アドレス2-1,2-2)に存在することを認識し、「パケッ
トのメモリアドレスD1」としてアドレス2-1を設定す
る。 「更新領域情報D4」を0に設定し、変更領域がないこ
とを宣言する。 更新前のデータのバイト位置D5及びビット位置D6、更
新前のデータのバイト長D7及びビット長D8、更新後のデ
ータのバイト長D9及びビット長D10をすべてNULLに設定
する。
When the data is not changed When the data stored in the address 4 of the application buffer 300 is transmitted without being changed, the following difference data structure DCB is created. Here, "unchanged" means that the socket pair itself is not changed at all. The packet PT1 is subjected to the following differential data structure creation processing (1), and after the processing is completed, the address 2-
The same processing is performed for the second packet PT2. Proxy application difference information creation means DIFC
Indicates that the packets PT1 and PT2 corresponding to the data at the address 4 to be transmitted unchanged are stored in the cache memory.
Recognizing that it exists at (addresses 2-1 and 2-2), address 2-1 is set as "packet memory address D1". "Update area information D4" is set to 0, and it is declared that there is no change area. The byte position D5 and bit position D6 of the data before update, the byte length D7 and bit length D8 of the data before update, and the byte length D9 and bit length D10 of the data after update are all set to NULL.

【0097】この例では、受信パケットPT1は無変更
であるため、「書き換え後データRRD」を作成しない。
従って、書き換え後データ位置を示すポインタD12にNUL
Lを設定する。 又、この例では、他の変更を行わないため、「同一パ
ケットに関する追加変更の有無情報D11」を0に設定す
る。 「新規データフラグ」はD2=0にする。 「削除データフラグ」はD3=0にする。 以上のように差分データ構造体DCBを作成すれば、アド
レス2-1上のパケットPT1を無変更のままで送信すること
をカーネルKNLに通知できる。同様にアドレス2-2上のパ
ケットPT2について差分データ構造体を作成する。
In this example, since the received packet PT1 is unchanged, the “rewritten data RRD” is not created.
Therefore, the pointer D12 indicating the data position after rewriting is NULL
Set L. In this example, since no other change is made, “additional change presence / absence information D11 on the same packet” is set to 0. "New data flag" is set to D2 = 0. The “deletion data flag” is set to D3 = 0. By creating the difference data structure DCB as described above, it is possible to notify the kernel KNL that the packet PT1 on the address 2-1 is transmitted without being changed. Similarly, a difference data structure is created for the packet PT2 on the address 2-2.

【0098】・データを廃棄する場合 アプリケーションバッファ300のアドレス4に記憶した
データの全体を削除する場合、以下のように差分データ
構造体DCBを作成する。なお、パケットPT1について下記
の〜の差分データ構造体の作成処理を行い、処理終
了後、アドレス2-2のパケットPT2について同様の処理を
行う。 プロキシアプリケーションの差分情報作成手段DIFC
は、廃棄対象であるアドレス4のデータに対応するパケ
ットPT1,PT2が、キャッシュメモリ(アドレス2-1,2-2)に
存在することを認識し、「パケットのメモリアドレスD
1」としてアドレス2-1を設定する。 「更新領域情報D4」を0に設定し、変更領域がないこ
とを宣言する。 更新前のデータのバイト位置D5及びビット位置D6、更
新前のデータのバイト長D7及びビット長D8、更新後のデ
ータのバイト長D9及びビット長D10をすべてNULLに設定
する。
When Discarding Data When deleting the entire data stored at the address 4 of the application buffer 300, a difference data structure DCB is created as follows. Note that the following differential data structure creation processing is performed for the packet PT1, and after the processing is completed, the same processing is performed for the packet PT2 of the address 2-2. Proxy application difference information creation means DIFC
Recognizes that the packets PT1 and PT2 corresponding to the data at the address 4 to be discarded exist in the cache memory (addresses 2-1 and 2-2), and recognizes that the packet memory address D
Address 2-1 is set as "1". "Update area information D4" is set to 0, and it is declared that there is no change area. The byte position D5 and bit position D6 of the data before update, the byte length D7 and bit length D8 of the data before update, and the byte length D9 and bit length D10 of the data after update are all set to NULL.

【0099】この例では受信パケットの削除のみを行
うため、、「書き換え後データRRD」を作成しない。従
って、書き換え後データ位置を示すポインタD12にNULL
を設定する。 又、この例では、他の変更を行わないため、「同一パ
ケットに関する追加変更の有無情報D11」を0に設定す
る。 「新規データフラグ」はD2=0にする。 「削除データフラグ」はパケットを廃棄するためD3=
1にする。 以上のように差分データ構造体DCBを作成すれば、アド
レス2-1上のパケットPT1を廃棄して送信しないことをカ
ーネルKNLに通知できる。同様にアドレス2-2上のパケッ
トPT2について差分データ構造体を作成する。
In this example, since only the received packet is deleted, the “rewritten data RRD” is not created. Therefore, the pointer D12 indicating the data position after rewriting is NULL.
Set. In this example, since no other change is made, “additional change presence / absence information D11 on the same packet” is set to 0. "New data flag" is set to D2 = 0. "Delete data flag" is D3 = to discard the packet.
Set to 1. By creating the differential data structure DCB as described above, it is possible to notify the kernel KNL that the packet PT1 on the address 2-1 is discarded and not transmitted. Similarly, a difference data structure is created for the packet PT2 on the address 2-2.

【0100】(14) 新規データ作成手段 新規データ作成手段NDTGは、差分情報を作成するために
用いる受信パケットが存在しなければ、送信データとし
て新規データを作成する。差分情報を作成するために用
いる受信パケットが存在しない場合とは、次のの場
合である。すなわち、 キャッシュ管理テーブルCCT(図15参照)におけるテ
ーブルCCT-1の「先頭アドレス」フィールドにNULLが記
入されており、カーネルバッファ200(キャッシュメモ
リ)内に受信パケットが保存されていない場合、 プロキシアプリケーションAPLが全く新規に送信デー
タを作成しなければならず、受信パケットを利用できな
い場合、のいずれかである。
(14) New Data Creation Unit The new data creation unit NDTG creates new data as transmission data if there is no received packet used to create difference information. The case where there is no received packet used to create the difference information is as follows. That is, if NULL is entered in the “head address” field of the table CCT-1 in the cache management table CCT (see FIG. 15) and the received packet is not stored in the kernel buffer 200 (cache memory), the proxy application Either the APL has to create the transmission data completely new and the received packet is not available.

【0101】・差分情報を作成するために用いる受信パ
ケットがない場合 新規データ作成手段NDTGは、差分情報を作成するために
用いる受信パケットがなければ、以下のように差分デー
タ構造体DCBと新規データNDTを作成する。 プロキシアプリケーションの新規データ作成手段NDTG
は、差分データ構造体の「パケットのメモリアドレスD
1」をNULLにする。 又、新規データを作成するものであるため、「更新領
域情報D4」をNULLにする。 更新前のデータのバイト位置D5及びビット位置D6、更
新前のデータのバイト長D7及びビット長D8、更新後のデ
ータのバイト長D9及びビット長D10をすべてNULLに設定
する。
When there is no received packet used to create the difference information If there is no received packet used to create the difference information, the new data creation means NDTG uses the difference data structure DCB and the new data Create NDT. New data creation method for proxy application NDTG
Is the packet's memory address D in the difference data structure.
Set 1 to NULL. Also, since the new data is to be created, the "update area information D4" is set to NULL. The byte position D5 and bit position D6 of the data before update, the byte length D7 and bit length D8 of the data before update, and the byte length D9 and bit length D10 of the data after update are all set to NULL.

【0102】アプリケーションバッファ300に新規デ
ータを格納するアドレス11を確保し、ここに「書き換
え後データRRD」として新規データを保存する。又、ポ
インタD12にアドレス11を設定する(D12=アドレス1
1)。 データ部を新規作成すると共に、パケットのIP/TCPヘ
ッダも新規に作成する必要があるため、「同一パケット
に関する追加変更の有無情報D11」に1を設定する。 「新規データフラグD2」を1にする。 「削除データフラグD3」を0にする。 以後、ヘッダ部分の差分情報を作成する。
The address 11 for storing the new data is secured in the application buffer 300, and the new data is stored here as “data RRD after rewriting”. Address 11 is set to pointer D12 (D12 = address 1).
1). Since it is necessary to newly create the data portion and also newly create the IP / TCP header of the packet, "1" is set to "additional change presence / absence information D11 regarding the same packet". "New data flag D2" is set to 1. The “deletion data flag D3” is set to “0”. Thereafter, the difference information of the header part is created.

【0103】・差分情報を作成するために用いる受信パ
ケットは存在するが、新規データを作成する場合 受信データの変更箇所が多い場合、あるいは、変更ビッ
ト数が多い場合、新規データ作成判定部NDCDは受信パケ
ットが存在しても新規データの作成を指示する。これに
より、新規データ作成手段NDTGは、上記の「差分情報を
作成するために用いる受信パケットが存在しない場合」
の処理に従って、差分データ構造体DCBと新規データNDT
を作成する。この場合、新規データ作成手段NDTGは、カ
ーネルバッファKNL内の受信パケットを削除するために
差分データ構造体DCBの削除フラグD3を1に設定する。
以下は、差分情報を作成するために用いる受信パケット
は存在するが、新規データを作成する場合の差分データ
構造体DCBと新規データを作成する処理である。 まず、DCBの「パケットのメモリアドレスD1」をアド
レス2-1とし、削除するパケットPT1を特定する。 「更新領域情報D4」をNULLにする。 更新前のデータのバイト位置D5及びビット位置D6、更
新前のデータのバイト長D7及びビット長D8、更新後のデ
ータのバイト長D9及びビット長D10をすべてNULLに設定
する。
When there is a received packet used to create the difference information, but when creating new data. When the number of changed bits of the received data is large or when the number of changed bits is large, the new data creation determining unit NDCD Instructs creation of new data even if a received packet exists. As a result, the new data creation means NDTG sets the above-mentioned "when there is no received packet used for creating difference information".
According to the processing of the difference data structure DCB and new data NDT
Create In this case, the new data creation means NDTG sets the deletion flag D3 of the difference data structure DCB to 1 in order to delete the received packet in the kernel buffer KNL.
The following is a process of creating a difference data structure DCB and new data when creating new data although there is a received packet used to create difference information. First, the “memory address D1 of the packet” of the DCB is set as the address 2-1 and the packet PT1 to be deleted is specified. "Update area information D4" is set to NULL. The byte position D5 and bit position D6 of the data before update, the byte length D7 and bit length D8 of the data before update, and the byte length D9 and bit length D10 of the data after update are all set to NULL.

【0104】アプリケーションバッファ300に新規デ
ータを格納するアドレス11を確保し、ここに「書き換
え後データRRD」として新規データを保存すると共に、
ポインタD12としてアドレス11を設定する(D12=アドレ
ス11)。 データ部を新規作成すると共に、パケットのIP/TCPヘ
ッダも新規に作成する必要があるため、「同一パケット
に関する追加変更の有無情報D11」に1を設定する。 「新規データフラグD2」は1にする。 キャッシュメモリ(アドレス2-1)に記憶されいる受信
パケットを廃棄するために「削除データフラグD3」を1
にする。ついで、パケットPT2について同様に差分デー
タ構造体DCBを作成する。
The address 11 for storing the new data is secured in the application buffer 300, and the new data is stored here as “data RRD after rewriting”.
Address 11 is set as pointer D12 (D12 = address 11). Since it is necessary to newly create the data portion and also newly create the IP / TCP header of the packet, "1" is set to "additional change presence / absence information D11 regarding the same packet". The “new data flag D2” is set to “1”. "Delete data flag D3" is set to 1 to discard the received packet stored in the cache memory (address 2-1).
To Next, a differential data structure DCB is similarly created for the packet PT2.

【0105】(15) 新規データ作成判定手段 新規データ作成判定手段はNDCD、 1つのデータ(パケット)に対して作成する差分データ
構造体の数、すなわち更新する領域数が、設定数よりも
多い場合(図7(a)参照)、 1つのデータに対して更新するデータのデータ長が設
定長よりも長い場合(図7(b)参照)、新規データを
作成すると決定する。これにより、差分情報作成手段DI
FCの処理の負荷が大きくなるのを防ぐ効果がある。以上
の(11)〜(15)の仕組みを以って、「差分情報作成手段」
を実現することができる。
(15) New data creation judging means The new data creation judging means is NDCD. When the number of difference data structures created for one data (packet), that is, the number of areas to be updated is larger than the set number (See FIG. 7A) If the data length of the data to be updated for one piece of data is longer than the set length (see FIG. 7B), it is determined to create new data. Thereby, the difference information creating means DI
This has the effect of preventing the load of FC processing from increasing. According to the mechanism of (11) to (15) above, "difference information creation means"
Can be realized.

【0106】(c)パケットの送信 前述のように、プロキシアプリケーションAPLは受信デ
ータに対して所定の処理を施した後、差分情報DIF(差
分データ構造体DCB、書き替え後データRRD)を作成す
る。以下では、この差分情報DIFを作成してからハード
ウェアHWがパケットを送信するまでの端末T3の手続を説
明する。図18はパケットの送信処理フロー、図19は
送信データの作成説明図である。 (16) 送信データの作成 プロキシアプリケーションAPLは、差分データ作成手段D
IFC(図16)或るいは新規データ作成手段NDTGにより
作成した差分データ構造体DCBをアプリケーションバッ
ファ300内のアドレス10(図19)に記憶し、変更内容
(書き換え後データRRD)をアドレス11に記憶する。
(C) Packet Transmission As described above, the proxy application APL performs predetermined processing on the received data, and then creates difference information DIF (difference data structure DCB, rewritten data RRD). . Hereinafter, a procedure of the terminal T3 from the creation of the difference information DIF to the transmission of the packet by the hardware HW will be described. FIG. 18 is a flow chart of a packet transmission process, and FIG. 19 is an explanatory diagram of creating transmission data. (16) Creation of transmission data The proxy application APL uses difference data creation means D
The IFC (FIG. 16) or the difference data structure DCB created by the new data creation means NDTG is stored at the address 10 (FIG. 19) in the application buffer 300, and the changed contents
(Rewritten data RRD) is stored at address 11.

【0107】(17) データ書き込みメッセージP プロキシアプリケーションAPLは、端末T2に対して転送
するデータが存在する場合、端末T3から端末T2へのコネ
クションCN2がまだ確立してなければ、送信データにつ
いて、コネクションCN2を確立する(パケットの受信フロ
ーにおける(3)の説明参照)。しかる後、アプリケーショ
ンAPLは、コネクションCN2の送受信専用インタフェース
(以下ソケット2と記す)に対し、「先頭アドレス」と
してアプリケーションバッファ300のアドレス10を、
又、「データ長」としてアドレス11上の書き換え後デ
ータRRDの「データ長」を、それぞれ引数とした「デー
タ書き込みメッセージP」を送出する。
(17) Data write message P If there is data to be transferred to the terminal T2, the proxy application APL determines whether a connection CN2 from the terminal T3 to the terminal T2 has not been established yet, Establish CN2 (see the description of (3) in the packet reception flow). Thereafter, the application APL sends the address 10 of the application buffer 300 as the “head address” to the transmission / reception-only interface of the connection CN2 (hereinafter referred to as socket 2).
Further, it sends out a "data write message P" with the "data length" of the rewritten data RRD on the address 11 as the "data length" as arguments.

【0108】(18) 差分情報のカーネルへのコピー カーネルKNLは「データ書き込みメッセージP」を受信
すれば、アドレス10の差分データ構造体DCBを、カ
ーネルバッファ200内のアドレス20にコピーするとと
もに、差分データ構造体DCBに含まれるポインタD12が
示すアドレスを参照して、アドレス11の書き換え後デ
ータRRDをアドレス21にコピーする。 (19) 更新待ちキューの生成 ついで、カーネルKNLは更新待ちバッファRNB2のキュー
(更新待ちキュー)にアドレス20をキューイングする。
更新待ちキューとは、差分データ構造体DCBの先頭アド
レスを保存するキューであり、後述の更新部UPDは、こ
のキューの先頭から順に更新処理を行う。
(18) Copying of Difference Information to Kernel Upon receiving the “data write message P”, the kernel KNL copies the difference data structure DCB at address 10 to the address 20 in the kernel buffer 200 and With reference to the address indicated by the pointer D12 included in the data structure DCB, the rewritten data RRD of the address 11 is copied to the address 21. (19) Generation of update wait queue Next, the kernel KNL queues the update wait buffer RNB2.
Queue the address 20 in the (update queue).
The update wait queue is a queue for storing the head address of the differential data structure DCB, and an update unit UPD described later performs update processing sequentially from the head of this queue.

【0109】(20) 更新待ちキューにおける削除データ
フラグの扱い カーネルKNLは、差分データ構造体DCBの「削除データフ
ラグD3」が1であるかチェックし(20-1)、1(削除)で
あれば、以後の処理においてアドレス2上の受信パケッ
トにアクセスしない。このため、差分データ構造体DCB
の「パケットのメモリアドレスD1」が示すアドレス2-1
のデータを削除する(20-2)。 (21) 更新待ちキューにおける新規データフラグの扱い ついで、カーネルKNLは、差分データ構造体DCBの「新規
データフラグD2」が1であるかチェックする(21-1)。
「新規データフラグD2」が0であれば、すなわち、「新
規データフラグD2」が0であり、「削除データフラグD3」
が1であれば、この差分データ構造体DCBは「データを廃
棄する場合」に作成したものである。このため、更新待
ちキューRNB2からアドレス20を削除し、アドレス20
上の差分データ構造体も削除してパケットの送信処理を
終了する(21-2)
(20) Handling of Deleted Data Flag in Update Waiting Queue The kernel KNL checks whether the “deleted data flag D3” of the differential data structure DCB is 1 (20-1), and if it is 1 (deleted). For example, in the subsequent processing, the received packet on the address 2 is not accessed. Therefore, the difference data structure DCB
2-1 indicated by the "packet memory address D1"
Delete the data of (20-2). (21) Handling of New Data Flag in Update Waiting Queue Next, the kernel KNL checks whether “new data flag D2” of the differential data structure DCB is 1 (21-1).
If "new data flag D2" is 0, that is, "new data flag D2" is 0, and "deletion data flag D3"
Is 1, the difference data structure DCB is created in “when data is discarded”. Therefore, the address 20 is deleted from the update wait queue RNB2, and the address 20 is deleted.
The above difference data structure is also deleted and the packet transmission process ends (21-2)

【0110】一方、(20-1)において、「削除データフラ
グD3」が0であれば、カーネルKNLは、差分データ構造
体DCBの「新規データフラグD2」が1であるかチェック
する(21-3)。(21-1),(21-3)のチェックにおいて、新規
データフラグD2=1であれば、カーネルKNLは、着目して
いる差分データ構造体DCBのポインタD12が示すアドレス
21を送信ソケットバッファSSB2に保存し、しかる後、
20上の差分データ構造体DCB及び更新待ちバッファRNB
2上のアドレス20を削除する。以後、カーネルKNLは送
信ソケットバッファキューSSB2保存したアドレス順にプ
ロトコル処理を行って新規データの送信を行う(21-4)。
On the other hand, if the “deletion data flag D3” is 0 in (20-1), the kernel KNL checks whether the “new data flag D2” of the difference data structure DCB is 1 (21-21). 3). In the check of (21-1) and (21-3), if the new data flag D2 = 1, the kernel KNL sends the address 21 indicated by the pointer D12 of the focused difference data structure DCB to the transmission socket buffer SSB2. And then
Data structure DCB on 20 and buffer RNB waiting for update
Delete the address 20 on 2. Thereafter, the kernel KNL performs protocol processing in the order of the addresses stored in the transmission socket buffer queue SSB2 and transmits new data (21-4).

【0111】(22) 更新部UPDの動作 (21-3)において、新規データフラグD2が0であれば、す
なわち、削除データフラグD3=0、新規データフラグD2=0
であれば、差分情報DIF及びキャッシュメモリに記憶さ
れている受信パケットPT1,PT2を用いた更新処理を行っ
て、送信データを作成する。更新部UPDは、アドレス2
0に保存した差分データ構造体DCBを基に、以下のよう
にキャッシュメモリ(アドレス2-1,2-2)上のデータ(パケ
ットPT1,PT2)を変更し、必要なプロトコル処理を行う。
(22) Operation of Updating Unit UPD In (21-3), if the new data flag D2 is 0, that is, the deleted data flag D3 = 0 and the new data flag D2 = 0
If so, transmission data is created by performing an update process using the difference information DIF and the received packets PT1 and PT2 stored in the cache memory. The update unit UPD has the address 2
Based on the differential data structure DCB stored in 0, data (packets PT1 and PT2) in the cache memory (addresses 2-1 and 2-2) are changed as follows, and necessary protocol processing is performed.

【0112】(23) 差分データ構造体に基づく変更の実
行 更新部UDCは、最初差分データ構造体DCBの「パケットの
メモリアドレスD1」を参照して更新対象のがパケットPT
1であると認識し、「更新領域情報D4」が指示するパケ
ットPT1中の領域先頭位置にデータ参照ポインタを移動
する。例えば「更新領域情報D4」がTCPヘッダ領域を指
示していれば、更新部UPPはIPヘッダ(図35(a))内
のIPヘッダ長を参照し、パケット開始位置にIPヘッダ長
を加算したビット位置がTCPヘッダの開始位置であると
認識する。次に、更新部 UPDは、「更新前のデータバイ
ト位置D5」に8を乗じ、更に「同ビット位置D6」を加算
した結果のビット数だけ、データ参照ポインタをパケッ
トPTiの後方に移動する。また、「更新前のデータバイ
ト長D7と同ビット長D8」が、「更新後のデータバイト長
D9と同ビット長D10」と同一であれば、変更前と変更後
のデータ長が等しい。このため、更新部UPDは、パケッ
トPT1の更新前のビット位置以降の指定データ長部分の
データを「書き換え後データRRD」で置換した後、(25)
の残りのプロトコル処理を実行する。データ長が等しく
ない場合については、(24)の「データ長変更を伴う更新
処理」を実行する。
(23) Execution of Change Based on Differential Data Structure The updating unit UDC first refers to the “memory address D1 of the packet” of the differential data structure DCB and determines that the packet to be updated is the packet PT.
Recognizing that it is 1, the data reference pointer is moved to the area start position in the packet PT1 indicated by the “update area information D4”. For example, if the “update area information D4” indicates the TCP header area, the update unit UPP refers to the IP header length in the IP header (FIG. 35A) and adds the IP header length to the packet start position. It recognizes that the bit position is the start position of the TCP header. Next, the updating unit UPD moves the data reference pointer to the rear of the packet PTi by the number of bits obtained by multiplying the “data byte position D5 before update” by 8 and further adding the “same bit position D6”. In addition, "Data byte length D7 before update and same bit length D8" are replaced with "Data byte length after update.
D9 and the same bit length D10 ", the data length before and after the change is equal. Therefore, the updating unit UPD replaces the data of the designated data length portion after the bit position before the update of the packet PT1 with the “data RRD after rewriting”, and then (25)
Execute the remaining protocol processing of. If the data lengths are not equal, (24) “update processing involving data length change” is executed.

【0113】(24) データ長変更を伴う更新処理 図20、図21はパケット長が変更する場合の更新処理
説明図であり、図20はパケット長が減少する場合、図
21はパケット増加する場合である。1000バイト単位で
区分された領域の一単位を、メモリブロックという。キ
ャッシュメモリは、アプリケーションが用いるデータ
(パケット)を保存するデータ部2aと、それに関する情
報を保存するヘッダ部2bに大きく分かれ、データ部2
aは1000バイト単位(1メモリブロック単位)で区分さ
れ、各メモリブロックMB1〜MB3に対応してヘッダ部HD1
〜HD3が設けられている。パケットの保存はメモリブロ
ック単位で行われる。
(24) Update Process with Data Length Change FIGS. 20 and 21 are explanatory diagrams of the update process when the packet length is changed. FIG. 20 shows the case where the packet length decreases and FIG. 21 shows the case where the packet increases. It is. One unit of the area divided in units of 1000 bytes is called a memory block. Cache memory is data used by applications
(Packet), and a header section 2b for storing information relating to the data section.
a is divided in units of 1000 bytes (in units of one memory block), and a header portion HD1 corresponding to each of the memory blocks MB1 to MB3.
~ HD3 is provided. Packets are stored in memory block units.

【0114】各ヘッダ部HD1〜HD3は、 データ順を示すポインタ、 対応するメモリブロック内のデータ長、 パケット全体のデータ長、 TCP/IPヘッダ、 対応するメモリブロックへのポインタ情報、が書き込
まれるようになっている。
The headers HD1 to HD3 are written with a pointer indicating the data order, a data length in the corresponding memory block, a data length of the entire packet, a TCP / IP header, and pointer information to the corresponding memory block. It has become.

【0115】・パケット長が減少する場合の処理 全体のデータ長が2500バイトであり、パケットPT1がパ
ケット部分PT1-1からPT1-3のように3つのメモリブロッ
クMB1〜MB3に分かれて保存されている場合において、更
新後のデータ長が更新前のデータ長より短いとき、更新
部UPDは以下の更新処理を行う。ただし、パケットPT1の
データ部分の1200バイト目から500バイト分のデータを
削除するものとする。更新部UPDは、「更新後のデータ
バイト長D9+同ビット長D10」が「更新前のデータバイト
長D7+同ビット長D8」より小さいか確認する。小さけれ
ば、図20(b)に示すように、データの書き換えを行
うメモリブロックMB2の変更箇所を新しい「書き換え後
データRRD(削除のためNULL)」で置換し、空き部分(NULL
部分)を詰める。ついで、ヘッダ部HD2のデータ長を変更
する(1000→500)。また、ヘッダ部HD1のパケット全体の
データ長を変更後のデータ長に変更する(2500→2000)。
Processing when the packet length is reduced The entire data length is 2500 bytes, and the packet PT1 is divided into three memory blocks MB1 to MB3 like the packet parts PT1-1 to PT1-3 and stored. In such a case, when the data length after the update is shorter than the data length before the update, the update unit UPD performs the following update processing. However, it is assumed that 500 bytes of data are deleted from the 1200th byte of the data portion of the packet PT1. The update unit UPD checks whether “the data byte length D9 after the update + the same bit length D10” is smaller than “the data byte length D7 before the update + the same bit length D8”. If it is smaller, as shown in FIG. 20 (b), the changed part of the memory block MB2 where the data is to be rewritten is replaced with the new “data RRD after rewriting (NULL for deletion)” and the empty part (NULL
Part). Next, the data length of the header part HD2 is changed (1000 → 500). Further, the data length of the entire packet of the header part HD1 is changed to the changed data length (2500 → 2000).

【0116】・パケット長が増加する場合の処理 全体のデータ長が2500バイトであり、パケットPT1がパ
ケット部分PT1-1からPT1-3のように3つのメモリブロッ
クMB1〜MB3に分かれて保存されている場合において、更
新後のデータ長が更新前のデータ長より大きいとき、更
新部UPDは以下の更新処理を行う。ただし、パケットPT1
のデータ部分の1200バイト目から500バイト分のデータ
を1000バイトのデータで置き換えるものとする。更新部
UPDは、「更新後のデータバイト長D9+同ビット長D10」
が「更新前のデータバイト長D7+同ビット長D8」より大
きいか確認する。大きければ、データ書き換えに新しい
メモリブロックを用意する必要があるか判断し、用意す
る必要があれば図21(b)に示すように、新たなメモ
リブロックMB2′及びヘッダ部HD2′を用意する。つい
で、メモリブロックMB2のデータ部分の箇所を「書き換
え後データ」で変更し、変更後のデータ部分をメモリブ
ロックMB2、MB2′に書き込み、これらメモリブロックの
データ長をヘッダ部HD2、HD2′に書き込む。ついで、ヘ
ッダ部HD1の「パケット全体のデータ長」を、変更後の
データ長に変更する(2500→3000)。又、データ順序がメ
モリブロックMB1→MB2→MB2′→MB3となるようにヘッダ
部HD2,HD2′のポインタ値を変更する。
Processing when the packet length increases The entire data length is 2500 bytes, and the packet PT1 is divided into three memory blocks MB1 to MB3 like the packet parts PT1-1 to PT1-3 and stored. In such a case, when the data length after the update is larger than the data length before the update, the update unit UPD performs the following update processing. However, the packet PT1
It is assumed that 500 bytes of data from the 1200th byte of the data portion is replaced with 1000 bytes of data. Update section
UPD is “Data byte length D9 after update + Same bit length D10”
Is larger than “data byte length D7 before update + same bit length D8”. If it is larger, it is determined whether a new memory block needs to be prepared for data rewriting. If it is necessary, a new memory block MB2 'and a header section HD2' are prepared as shown in FIG. Next, the data portion of the memory block MB2 is changed by "rewritten data", the changed data portion is written to the memory blocks MB2 and MB2 ', and the data lengths of these memory blocks are written to the header portions HD2 and HD2'. . Next, the “data length of the entire packet” in the header HD1 is changed to the changed data length (2500 → 3000). Also, the pointer values of the header sections HD2 and HD2 'are changed so that the data order is from memory block MB1 to MB2 to MB2' to MB3.

【0117】(25) 残りのプロトコル処理 データ部の更新処理終了後、送信ソケット2がTCPヘッ
ダの識別番号をパケット毎に一意に決定し、また、TCP
ヘッダのSEQ番号を決定し、更に、TCPヘッダのチェック
サム及びIPヘッダのチェックサムを、TCP/IPプロトコル
が定める演算式により演算し、それぞれヘッダ部に書き
込む。また、図35で示す残りのプロトコル・フィール
ドについても所定の値を書き込む(25-1)。全てのTCP/IP
プロトコル処理が完了したところで、送信ソケットバッ
ファSSB2にアドレス2(キャッシュメモリのアドレス)
を保存する(25-2)。もし、端末T3がハードウェア層に、
チェックサムの計算部などのプロトコル処理ユニットを
持つ場合は、そのプロトコル処理ユニットを使った演算
結果をTCPヘッダのチェックサムやIPヘッダのチェック
サムとして用いることができる。
(25) Remaining Protocol Processing After the update processing of the data portion is completed, the transmission socket 2 uniquely determines the identification number of the TCP header for each packet.
The SEQ number of the header is determined, and the checksum of the TCP header and the checksum of the IP header are calculated by the arithmetic expression defined by the TCP / IP protocol, and are written into the header part. Also, a predetermined value is written in the remaining protocol fields shown in FIG. 35 (25-1). All TCP / IP
When the protocol processing is completed, address 2 (cache memory address) is added to the transmission socket buffer SSB2.
Is saved (25-2). If terminal T3 is in the hardware layer,
When a protocol processing unit such as a checksum calculation unit is provided, an operation result using the protocol processing unit can be used as a checksum of a TCP header or a checksum of an IP header.

【0118】(26) ヘッダ作成完了の判定 上記の(21-4)または(25-2)の処理に従って送信ソケット
バッファSSB2にアドレス21またはアドレス2がキュー
イングされる。これらアドレスが示す記憶域に作成され
ているパケットのTCP/IPヘッダを参照してTCP/IPプロト
コル処理が終了したかどうかを判断する。
(26) Judgment of Completion of Header Creation The address 21 or the address 2 is queued in the transmission socket buffer SSB2 according to the processing of the above (21-4) or (25-2). It is determined whether or not the TCP / IP protocol processing has been completed with reference to the TCP / IP header of the packet created in the storage area indicated by these addresses.

【0119】(27) 送信ソケットのプロトコル処理 カーネルは、送信ソケットバッファSSB2を参照し、既に
ヘッダ処理が完了したパケットであると判定した場合
は、ソケット上のパケットに対して、これ以上のプロト
コル処理は行わない。しかし、ヘッダ処理が完了いてい
ないパケットであると判定した場合は、TCP/IPヘッダに
関して、ソケット・ペアの変更を行うと共に、(25-1)の
処理を行い、プロトコル処理を完了する。プロトコル処
理を完了した後、カーネルKNLは、送信ソケットバッフ
ァSSB2の中身を再送ソケットバッファSSB2′にコピーす
る。再送ソケットバッファとは、TCPプロトコルが標準
で有する再送機構を実現するための仕組みである。
(27) Protocol processing of transmission socket The kernel refers to the transmission socket buffer SSB2, and if it is determined that the packet has already been subjected to the header processing, further processing of the packet on the socket is performed. Is not performed. However, when it is determined that the packet has not been subjected to the header processing, the socket pair is changed for the TCP / IP header, and the processing of (25-1) is performed to complete the protocol processing. After completing the protocol processing, the kernel KNL copies the contents of the transmission socket buffer SSB2 to the retransmission socket buffer SSB2 '. The retransmission socket buffer is a mechanism for realizing a retransmission mechanism that the TCP protocol has as a standard.

【0120】(28) MACアドレスの決定 TCP/IPプロトコルヘッダの作成がすべて終了した後で、
カーネルKNLは経路選択テーブルにより宛先MACヘッダを
決定するとともに、端末T3のMACアドレスを送信元MA
CアドレスとしたMACヘッダを作成してパケットに追加
する(28-1)。ついで、MACヘッダを追加されたパケット
全体を保存しているメモリの先頭アドレス2をドライバ
キューに保存する。以後、ドライバ固有の動作により、
最終的に、前述のMACアドレスを宛先としたパケットを
ハードウェアバッファ100にコピーし(28-2)、ハードウ
ェア層においてパケットの送出処理を行う(28-3)。以上
の(16)〜(27)のにより「更新手段UPD」を実現すること
ができる。
(28) Determination of MAC address After all the TCP / IP protocol headers have been created,
The kernel KNL determines the destination MAC header from the route selection table, and sets the MAC address of the terminal T3 to the source MA.
A MAC header having a C address is created and added to the packet (28-1). Next, the head address 2 of the memory storing the entire packet to which the MAC header is added is stored in the driver queue. After that, by the operation specific to the driver,
Finally, the packet addressed to the MAC address described above is copied to the hardware buffer 100 (28-2), and the packet is transmitted in the hardware layer (28-3). By the above (16) to (27), the "updating means UPD" can be realized.

【0121】図22はパケットの受信から、差分情報を
作成し、送信パケットを作成して送信するまでの全体の
流れを示す図である。本実施例では、ソケット・ペアに
対する変更もプロキシアプリケーションが指示するシス
テムを例示した。一般に、コネクションを中継するプロ
トコル中継処理において、ソケット・ペアの変更はすべ
てのパケットに対して行う処理である。このため、中継
するパケット全てに対して差分データ構造体を作成する
ことは、アプリケーションバッファからカーネルバッフ
ァへのデータコピー量を大きくしてしまう。そこで、ア
プリケーションはソケット・ペアの変更について指示せ
ず、更新部UPDがソケット2に内部情報として保持され
ているソケット・ペアを用いてヘッダのソケットペア部
分を更新する、といった手法を採用でき、このようにす
れば、コピー量を減少できる。
FIG. 22 is a diagram showing the entire flow from reception of a packet to creation of difference information, and creation and transmission of a transmission packet. In the present embodiment, a system in which a proxy application instructs a change to a socket pair is illustrated. Generally, in a protocol relay process for relaying a connection, a socket pair is changed for all packets. For this reason, creating a differential data structure for all packets to be relayed increases the amount of data copied from the application buffer to the kernel buffer. Therefore, the application does not instruct the change of the socket pair, and the updating unit UPD can update the socket pair portion of the header by using the socket pair held as internal information in the socket 2. By doing so, the copy amount can be reduced.

【0122】以上ではTCPに適用する例を示したが、そ
の他のUDP(User Datagram Protocol)等のプロトコルに
適用することも可能である。但し、UDPには再送バッフ
ァがないため、再送バッファへのデータの保存のような
動作は不要である。又、本発明は、図23に示すように
レイヤ2で端末間通信の中継を行うような中継装置(ブ
リッジBRG)にも適用できる。かかるブリッジBRGはコネ
クションの終端を行う必要が無いため、アプリケーショ
ンAPLによるデータの中継時に、通過データの許可・非
許可を判断して、データの通過、廃棄のどちらかのみを
行う。このため、差分情報作成部DIFCが作成するのは必
ず(13)で説明した「データを変更しない場合」と「データ
を廃棄する場合」のどちらかの差分情報DIFとなり、新
規データ作成部NDTGが新規データを作成することはない
から、該新規データ作成部NDTGは不要である。このた
め、差分情報、書き換え後データRRDや新規データを含
まないため、アプリケーションAPLから下位レイヤへの
データコピー量を大幅に減らすことができる。以上によ
り、アプリケーションバッファ上から、カーネルバッフ
ァ上にデータをコピーする際のコピー量を減らすことが
でき、データコピーの冗長性を大幅に減らすことができ
る。
In the above, an example in which the present invention is applied to TCP has been described. However, the present invention can be applied to other protocols such as UDP (User Datagram Protocol). However, since UDP does not have a retransmission buffer, an operation such as storing data in the retransmission buffer is unnecessary. The present invention can also be applied to a relay device (bridge BRG) that relays communication between terminals at layer 2 as shown in FIG. Since the bridge BRG does not need to terminate the connection, when relaying data by the application APL, the bridge BRG determines whether or not to permit passing data, and performs only one of data passing and discarding. For this reason, the difference information creation unit DIFC always creates one of the difference information DIF described in (13) “when data is not changed” and “when data is discarded”, and the new data creation unit NDTG Since no new data is created, the new data creation unit NDTG is not required. Therefore, since it does not include the difference information, the rewritten data RRD, and the new data, the amount of data copied from the application APL to the lower layer can be significantly reduced. As described above, the amount of data to be copied from the application buffer to the kernel buffer can be reduced, and the redundancy of data copy can be significantly reduced.

【0123】(B)第2実施例 第1実施例ではアプリケーションバッファ内のデータと
カーネルバッファ(キャッシュメモリ)内のパケット群
の対応関係を特定するキャッシュ管理テーブルCCTをア
プリケーションバッファ300内に作成したが、該テーブ
ルをカーネルバッファ200内に作成することもできる。
第2実施例はキャッシュ管理テーブルCCTをカーネルバ
ッファ200内に設けた実施例であり、図2で説明した処
理を実現するものである。
(B) Second Embodiment In the first embodiment, the cache management table CCT for specifying the correspondence between the data in the application buffer and the packet group in the kernel buffer (cache memory) is created in the application buffer 300. The table can also be created in the kernel buffer 200.
The second embodiment is an embodiment in which the cache management table CCT is provided in the kernel buffer 200, and realizes the processing described in FIG.

【0124】図24は第2実施例のパケット受信から送
信までの全体の流れ説明図、図25は第2実施例の差分
データ構造体DCBの構成図である。第2実施例におい
て、プロキシアプリケーションAPLは差分データ構造体D
CBを作成する際、データの変更箇所をアプリケーション
バッファ300のアドレスで特定する。該差分情報DIFを送
信されたカーネルの更新部UPDは、キャッシュ管理テー
ブルCCTを参照してアプリケーションバッファのアドレ
スをキャッシュメモリのアドレスに変換し、これによ
り、変更箇所を有する受信パケット及びパケット内の変
更位置を獲得し、受信パケットの変更部分を差分情報DI
Fに含まれるを変更内容で置換し、送信データを作成す
る。以下に、第1実施例と異なる処理を説明する。
FIG. 24 is an explanatory diagram of the entire flow from reception to transmission of a packet according to the second embodiment, and FIG. 25 is a configuration diagram of a differential data structure DCB according to the second embodiment. In the second embodiment, the proxy application APL has a differential data structure D
When creating the CB, the data change location is specified by the address of the application buffer 300. The updating unit UPD of the kernel to which the difference information DIF has been transmitted converts the address of the application buffer into the address of the cache memory with reference to the cache management table CCT, whereby the received packet having the changed portion and the change in the packet are changed. Acquires the position and changes the received packet to the difference information DI
Create the transmission data by replacing the contents of F with the changes. Hereinafter, processing different from the first embodiment will be described.

【0125】・パケット受信フローにおける変更点 第1実施例のパケットの受信フローにおけるステップ
(6)〜(10)(図13)の処理の代わりに、第2実施例では
以下のステップ(29)、(30)の処理を行う。 (29) データ読み込みメッセージD2 予め、ソケット1に関連付けしたプロキシアプリケーシ
ョンAPLは、ステップ(5)においてソケット1からメッセ
ージAを受信すると、アプリケーションバッファ300内
のアドレス4にデータを読み込むメモリ領域を用意す
る。ついで、「データ長」及び「アドレス4」を引数と
する「データ読み込みメッセージD2」をカーネルKNL
に送信する。
Changes in packet reception flow Steps in packet reception flow of the first embodiment
In the second embodiment, the following steps (29) and (30) are performed instead of the steps (6) to (10) (FIG. 13). (29) Data read message D2 When the proxy application APL associated with the socket 1 in advance receives the message A from the socket 1 in step (5), it prepares a memory area for reading data at address 4 in the application buffer 300. Then, a "data read message D2" having "data length" and "address 4" as arguments is sent to the kernel KNL.
Send to

【0126】(30) カーネルによるアプリケーションバ
ッファへの書き込み 「データ読み込みメッセージD2」を受信したカーネル
KNLは、受信ソケットバッファRSB1の先頭に保存したア
ドレスが示すキャッシュメモリ(アドレス2)上のデータ
を、プロトコルヘッダを除き、アプリケーションバッフ
ァ300のアドレス4に一つのデータとして書き込む。こ
れと同時に、カーネルKNLはカーネルバッファ200内にテ
ーブルCCT-h(図14、図15参照)を作成し、その「先
頭アドレス」フィールド及び「データ長」フィールド
に、アプリケーションよりメッセージD2で通知された
アドレス4及びデータ長を書き込む。ついで、テーブル
CCT-1の「先頭アドレス」フィールド、「データ長」フ
ィールドにアドレス2及び読み込みを行うデータ長を書
き込む。
(30) Writing to Application Buffer by Kernel Kernel that Received “Data Read Message D2”
The KNL writes data on the cache memory (address 2) indicated by the address stored at the head of the reception socket buffer RSB1 as one piece of data at the address 4 of the application buffer 300 excluding the protocol header. At the same time, the kernel KNL creates a table CCT-h (see FIGS. 14 and 15) in the kernel buffer 200, and notifies the “head address” field and the “data length” field of the message C2 from the application using the message D2. Write address 4 and data length. Then the table
Write the address 2 and the data length to be read in the “head address” field and “data length” field of CCT-1.

【0127】書き込むパケットが複数存在する場合は、
i個目のパケットPTiをアドレス4に書き込む毎に、テ
ーブルCCT-iの上記フィールドに所定のアドレス、デー
タ長を書き込み、かつ、テーブルCCT-hの「パケット
数」フィールドにパケット数iの書き込みを行う。そし
て、全データ書き込み終了後、テーブルCCT-Nの「次テ
ーブルポインタ」フィールドにNULLを書き込んで、キャ
ッシュ管理テーブルCCTの作成を完了する。この後、受
信ソケットバッファRSB1からは読み込み済みとなったア
ドレスを削除するが、アドレス2上の受信パケットPTi
は削除しないことで、コピー後のデータをアドレス2に
キャッシュする。すなわち、カーネルバッファ200のア
ドレス2はキャッシュメモリ領域となる。
When there are a plurality of packets to be written,
Each time the i-th packet PTi is written to the address 4, a predetermined address and data length are written in the above fields of the table CCT-i, and the number of packets i is written in the "number of packets" field of the table CCT-h. Do. After writing all data, NULL is written in the “next table pointer” field of the table CCT-N, and the creation of the cache management table CCT is completed. Thereafter, the read address is deleted from the receive socket buffer RSB1, but the received packet PTi on address 2 is deleted.
Is not deleted, the copied data is cached at address 2. That is, the address 2 of the kernel buffer 200 becomes a cache memory area.

【0128】・パケット送信フローにおける変更点 第2実施例では、第1実施例と異なりアプリケーション
はカーネルバッファ内のパケットを意識しない。このた
め、アプリケーションは差分データ構造体DCBの作成の
ステップ(11)〜(15)において、キャッシュ管理テーブル
CCTを参照せず、データの変更箇所は該データを記憶す
るアプリケーションバッファのアドレスで特定する。こ
の際の差分データ構造体DCBは、図24に示すように、
「パケットのメモリアドレスD1」を「データのメモリア
ドレスD1′」で置き換えた構成になる。すなわち、例え
ば、データをアドレス4に記憶するものとすれば、D1′
=アドレス4となる。 ・パケット送信フローにおける変更点 パケットの送信処理においては、第1実施例のステップ
(23)の前に以下のステップ(31)の処理を加えることで、
差分データ構造体DCBが指定するデータ差分情報を、パ
ケット差分情報に変換する。
Changes in Packet Transmission Flow In the second embodiment, unlike the first embodiment, the application is not aware of the packet in the kernel buffer. For this reason, the application executes the cache management table in steps (11) to (15) of creating the difference data structure DCB.
Instead of referring to the CCT, the data change location is specified by the address of the application buffer that stores the data. The difference data structure DCB at this time is, as shown in FIG.
The configuration is such that the “packet memory address D1” is replaced with the “data memory address D1 ′”. That is, for example, if data is stored at address 4, D1 '
= Address 4. -Changes in the packet transmission flow In the packet transmission process, the steps of the first embodiment
By adding the process of the following step (31) before (23),
The data difference information specified by the difference data structure DCB is converted into packet difference information.

【0129】(31) アプリケーションバッファ内データ
に対応するパケット群の特定 カーネルKNLの更新部UPDはアプリケーションより差分デ
ータ構造体DCBを受信すれば、該差分データ構造体DCBの
「データメモリアドレスD1′」が示すアドレス4上のデ
ータに対応するパケット群が保存されるキャッシュメモ
リ(アドレス2)のメモリアドレスを特定する必要があ
る。このため、更新部UPDは、カーネルバッファ200内の
キャッシュ管理テーブルCCTを参照し、該テーブルの中
から、アドレス4を「先頭アドレス」フィールドに含む
テーブルCCT-hを検索し、このテーブルに含まれるテー
ブルCCT-1,CCT-2,..,CCT-Nの「先頭アドレス」フィール
ドを抽出する。これにより、アドレス4のデータに対応
するパケット群を特定できる。
(31) Specification of Packet Group Corresponding to Data in Application Buffer When the updating unit UPD of the kernel KNL receives the differential data structure DCB from the application, the “data memory address D1 ′” of the differential data structure DCB is received. It is necessary to specify the memory address of the cache memory (address 2) in which the packet group corresponding to the data on the address 4 indicated by is stored. Therefore, the updating unit UPD refers to the cache management table CCT in the kernel buffer 200, searches the table for a table CCT-h including the address 4 in the “head address” field, and includes the table CCT-h in the table. The "start address" field of the tables CCT-1, CCT-2, .., CCT-N is extracted. Thereby, a packet group corresponding to the data of the address 4 can be specified.

【0130】更に、差分データ構造体DCBの「更新前デ
ータのバイト位置D7とビット位置D8」及び「更新前デー
タのバイト長D9とビット長D10」が示す変更箇所を含む
パケットを、テーブルCCT-1,CCT-2,....CCT-Nの「デー
タ長」フィールドのデータ長を参照して特定する。例え
ばテーブルCCT-2がその変更箇所を含んでいる場合、上
記差分データ構造体DCBの「データのメモリアドレスD
1′」をテーブルCCT-2の「先頭アドレス値」に変更す
る。又、「更新前データのバイト位置D7とビット位置D
8」をキャッシュメモリ上の変更対象パケットを元にし
た位置指定に書き換える。このようにすれば、以後の処
理では、D1′を「パケットのメモリアドレス」として扱
うことができ、第1実施例と同様の手続によりパケット
の更新及び送出を行うことが可能となる。
Further, the packet including the changed portion indicated by “byte position D7 and bit position D8 of data before update” and “byte length D9 and bit length D10 of data before update” in differential data structure DCB is stored in table CCT- 1, CCT-2, .... Specify by referring to the data length in the "data length" field of CCT-N. For example, when the table CCT-2 includes the changed portion, the “data memory address D of the data
"1 '" is changed to "Start address value" of table CCT-2. In addition, the message "Byte position D7 and bit position D
Rewrite "8" to the position specification based on the packet to be changed in the cache memory. In this way, in the subsequent processing, D1 'can be treated as a "packet memory address", and the packet can be updated and transmitted by the same procedure as in the first embodiment.

【0131】なお、1つの差分データ構造体DCBが指定
する変更箇所が、複数のパケットにわたる場合は、差分
データ構造体をコピー等により複数個作成して更新待ち
バッファRNB2に保存し、「更新処理」においてキャッシ
ュメモリ上の更新対象パケットすべてに対して更新を行
う。また、差分データ構造体がソケット・ペアの変更等
の、プロトコルヘッダの変更に関するものであれば、全
パケットに対して差分データ構造体をコピーする。以上
の処理手続を持つことにより、第1実施例と同等の機能
を有するとともに、プロキシアプリケーションはパケッ
トを意識しないで差分情報を作成でき、プログラムの作
成が容易になるというメリットがある。以上の第1、第
2の実施例ではハードウェアバッファとカーネルバッフ
ァを別個に設けた例であるが、カ-ネルKNLよりハードウ
ェアバッファに直接アクセス可能にし、すなわち、ハー
ドウェアバッファとカ-ネルバッファを共用する構成に
し、第1、第2実施例を図3、図4に示すように変形す
ることができる。
When the changed portion specified by one difference data structure DCB extends over a plurality of packets, a plurality of difference data structures are created by copying or the like, stored in the update waiting buffer RNB2, and the “update process” is executed. , The update is performed on all the packets to be updated in the cache memory. If the difference data structure relates to a change in a protocol header such as a change in a socket pair, the difference data structure is copied for all packets. By having the above processing procedure, there is an advantage that the proxy application has the same function as that of the first embodiment, and the proxy application can create the difference information without being conscious of the packet, thereby facilitating the creation of the program. In the above-described first and second embodiments, the hardware buffer and the kernel buffer are separately provided. However, the hardware buffer can be directly accessed from the kernel KNL, that is, the hardware buffer and the kernel buffer are provided. And the first and second embodiments can be modified as shown in FIGS.

【0132】(C)第3実施例 第3実施例は、中継装置とアプリケーションサーバが異
なるノードの場合に適用できるもので、図9で説明した
アプリケーション処理を実現するものである。図26は
かかる第3実施例の説明図である。コネクションCN1か
ら接続を受けた中継装置RT上のアプリケーション(中継
アプリケーション)APL1は、アプリケーションサーバASV
との間にコネクションCN10を張って、アプリケーション
サーバASVで動作するプロキシアプリケーションAPL2に
データを転送し、アプリケーション処理後にコネクショ
ンCN10から送り返された差分情報に基づいて送信データ
を作成してコネクションCN2に送信することで、データ
の中継を行う。
(C) Third Embodiment The third embodiment is applicable to the case where the relay device and the application server are different nodes, and realizes the application processing described with reference to FIG. FIG. 26 is an explanatory diagram of the third embodiment. The application (relay application) APL1 on the relay device RT that has received the connection from the connection CN1 is an application server ASV
A connection CN10 is established between the application server ASV and the data is transferred to the proxy application APL2 operating on the application server ASV, and after application processing, transmission data is created based on the difference information returned from the connection CN10 and transmitted to the connection CN2. In this way, data is relayed.

【0133】以後に第2実施例との相違点を説明する。
まず、ステップ(30)のパケット受信処理を終えた後、中
継アプリケーションAPL1は以下のステップ(32),(33)の
処理を行う。 (32) プロキシアプリケーションへの転送手段 コネクションCN1からのパケットの受信処理に従って、
データを受信した中継アプリケーションAPL1は、コネク
ション開設手段によりアプリケーションサーバASVとの
間にコネクションCN10を確立し、アプリケーションバッ
ファのアドレス4上のデータを該コネクションCN10を介
してアプリケーションサーバASVへ転送する。このと
き、データはアプリケーションサーバASV上のアドレス
44に保存したものとする。
Hereinafter, differences from the second embodiment will be described.
First, after finishing the packet receiving process of step (30), the relay application APL1 performs the following processes of steps (32) and (33). (32) Transfer means to the proxy application According to the reception processing of the packet from the connection CN1,
Upon receiving the data, the relay application APL1 establishes a connection CN10 with the application server ASV by the connection opening means, and transfers the data on the address 4 of the application buffer to the application server ASV via the connection CN10. At this time, it is assumed that the data is stored at the address 44 on the application server ASV.

【0134】又、中継アプリケーションAPL1は、追加処
理として、アドレス4のデータをコネクションCN10を介
して転送した事を記憶する変換テーブルCVTBを作成す
る。変換テーブルCVTBは、中継ノードRTにおいてデータ
を保存するアプリケーションバッファの「先頭アドレ
ス」と、該データを送信するコネクションCN10のソケッ
トに割り当てられた識別子(ファイル識別子)との対応関
係を記憶するテーブルである(図10参照)。ここで
は、「アドレス4」と「fd0」が保存される。ソケット
識別子とは、ソケットを一意に判別可能な数値を意味
し、例えば、アプリケーションAPL1がソケットを作成す
る際に、カーネルから獲得するソケット毎に異なる数値
を用いる。
Further, as an additional process, the relay application APL1 creates a conversion table CVTB for storing that the data at the address 4 has been transferred via the connection CN10. The conversion table CVTB is a table that stores the correspondence between the “head address” of the application buffer that stores data in the relay node RT and the identifier (file identifier) assigned to the socket of the connection CN10 that transmits the data. (See FIG. 10). Here, “address 4” and “fd0” are stored. The socket identifier means a numerical value capable of uniquely identifying a socket. For example, when the application APL1 creates a socket, a different numerical value is used for each socket obtained from the kernel.

【0135】(33) プロキシアプリケーションからの転
送手段 アプリケーションサーバASV上のプロキシアプリケーシ
ョンAPL2は、上記(32)のステップにより受信したデータ
(アドレス44上のデータ)に対し所定のデータ処理を施
し、データ処理結果に基づいて差分情報作成部DIFCによ
り差分情報DIF(差分データ構造体DCBと変更内容RRD)を
作成する。差分情報作成部DIFCは、第2実施例と同様に
差分データ構造体DCBと書き替え後データRRDを作成す
る。この差分データ構造体DCBはアドレス44上のデー
タに対する差分情報を持ち、「データメモリアドレスD
1′」はアドレス44とされている。ついで、プロキシ
アプリケーションAPL2は前記作成した差分情報DIFをコ
ネクションCN10から中継装置RT上の中継アプリケーショ
ンAPL1に送信する。ここで、差分データ構造体DCBは中
継装置上のアプリケーションバッファのアドレス64に
保存したものする。
(33) Means of Transfer from Proxy Application The proxy application APL2 on the application server ASV receives the data received in the step (32).
(Data on the address 44) is subjected to predetermined data processing, and the difference information creating unit DIFC creates difference information DIF (difference data structure DCB and change contents RRD) based on the data processing result. The difference information creation unit DIFC creates the difference data structure DCB and the rewritten data RRD as in the second embodiment. This difference data structure DCB has difference information with respect to the data on the address 44, and “data memory address D
"1 '" is an address 44. Next, the proxy application APL2 transmits the created difference information DIF from the connection CN10 to the relay application APL1 on the relay device RT. Here, the difference data structure DCB is stored at the address 64 of the application buffer on the relay device.

【0136】(34) 差分データ構造体の修正手段 アドレス64に保存した差分データ構造体DCBの、「デ
ータメモリアドレスD1′」は、アプリケーションサーバ
ASV上のアドレス44を示している。このためアドレス
44を中継装置RTのデータメモリアドレス(アドレス
4)に変換する必要がある。そこで、中継アプリケーシ
ョンAPL1の差分情報修正部DICRは変換テーブルCVTBを参
照してファイル識別子fd0に応じたアドレス4を取得
し、該アドレス4で差分データ構造体DCBの「データメ
モリアドレスD1′」をアドレス44からアドレス4に変
更する。しかる後、中継アプリケーションAPL1は、修正
した差分データ構造体DCBをカ-ネルKNLに送信し、カ-ネ
ルKNLの更新部UPDは該差分情報DIFとキャッシュ管理テ
ーブルCCTとキャッシュメモリ(アドレス2)に保存され
ている受信パケットとを用いて送信データを作成する。
中継装置の下位レイヤ(カ−ネルKNL、ハードウェアH
W)における処理は、第2実施例のステップ(31)の処理
と同様である。
(34) Means for Modifying the Differential Data Structure The “data memory address D1 ′” of the differential data structure DCB stored at the address 64 is the application server.
The address 44 on the ASV is shown. Therefore, it is necessary to convert the address 44 into the data memory address (address 4) of the relay device RT. Therefore, the difference information correcting unit DICR of the relay application APL1 acquires the address 4 corresponding to the file identifier fd0 by referring to the conversion table CVTB, and uses the address 4 to address the “data memory address D1 ′” of the difference data structure DCB. The address is changed from 44 to address 4. Thereafter, the relay application APL1 transmits the corrected difference data structure DCB to the kernel KNL, and the updating unit UPD of the kernel KNL stores the difference information DIF, the cache management table CCT, and the cache memory (address 2). The transmission data is created using the stored reception packet.
Lower layer of relay equipment (kernel KNL, hardware H
The processing in W) is the same as the processing in step (31) of the second embodiment.

【0137】・第1変形例 以上の第3実施例では変換テーブルCVTBを用いてアプリ
ケーションサーバASVのアドレスを中継装置RTのアドレ
スに変換したが、識別テーブルRGTBを用いて構成するこ
ともできる。図27はかかる変換例の構成図であり、図
11の処理を実現するものである。識別テーブルRGTBは
変換テーブルCVTBと目的は同じである。アドレス4に受
信データを記憶した中継アプリケーションAPL1は、コネ
クションCN10を介してアプリケーションケーションサー
バASVへ該データを転送すると共に、アドレス4の受信
データに一意の識別番号を付与し、これら識別番号とア
ドレス4の対応関係を識別テーブルRGTBに保存する。プ
ロキシアプリケーションAPL2は、差分情報作成手段DIFC
により図28に示すように新たなメンバーとして識別番
号D13を含む差分データ構造体DCBを作成し、中継アプリ
ケーションAPL1に送信する。中継アプリケーションAPL1
は差分情報が転送されてくると、差分情報修正部DICRに
より差分データ構造体DBに含まれる識別番号D13を参照
して識別テーブルRGTBよりアドレス4を取得し、該アド
レス4で差分データ構造体DCBの「データメモリアドレ
スD1′」をアドレス44からアドレス4に変更する。し
かる後、中継アプリケーションAPL1は、修正した差分デ
ータ構造体DCBをカ-ネルKNLに送信し、カ-ネルKNLの更
新部UPDは該差分情報DIFとキャッシュ管理テーブルCCT
とキャッシュメモリ(アドレス2)に保存されている受
信パケットとを用いて送信データを作成する。
First Modification In the third embodiment described above, the address of the application server ASV is converted to the address of the relay device RT using the conversion table CVTB. However, the third embodiment may be configured using the identification table RGTB. FIG. 27 is a configuration diagram of such a conversion example, which implements the processing of FIG. The purpose of the identification table RGTB is the same as that of the conversion table CVTB. The relay application APL1, which stores the received data at the address 4, transfers the data to the application server ASV via the connection CN10, assigns a unique identification number to the received data at the address 4, and assigns the identification number and the address 4 Are stored in the identification table RGTB. The proxy application APL2 uses the difference information creation means DIFC
As a result, as shown in FIG. 28, a difference data structure DCB including the identification number D13 is created as a new member, and transmitted to the relay application APL1. Relay application APL1
When the difference information is transferred, the difference information correcting unit DICR refers to the identification number D13 included in the difference data structure DB to obtain the address 4 from the identification table RGTB, and uses the address 4 to obtain the difference data structure DCB. "Data memory address D1 '" is changed from address 44 to address 4. Thereafter, the relay application APL1 sends the modified difference data structure DCB to the kernel KNL, and the updating unit UPD of the kernel KNL updates the difference information DIF and the cache management table CCT.
The transmission data is created using the received packet stored in the cache memory (address 2).

【0138】・第2変形例 以上の第3実施例では第2実施例を元に説明したが、第
1実施例を元に説明することもできる。図29はかかる
変形例の構成図である。第1実施例では、中継装置RTの
アプリケーションバッファに受信データとキャッシュ管
理テーブルCCTを保存する。このため、中継アプリケー
ションAPL1は変換テーブルCVTBを作成する代わりに、キ
ャッシュ管理テーブルCCTをアプリケーションサーバASV
に別途転送する。中継アプリケーションAPL1から転送さ
れてくるキャッシュ管理テーブルCCTは、中継装置RT上
のアプリケーションバッファ(アドレス4)におけるデ
ータとキャッシュメモリ(アドレス2)に記憶されてい
るパケットとの対応を示している。このため、テーブル
修正部TBCRはアプリケーションサーバASV上のアプリケ
ーションバッファ(アドレス44)におけるデータのと
キャッシュメモリ上のパケットとの対応を示すようにテ
ーブルCCT′に修正する。
Second Modified Example Although the third embodiment has been described based on the second embodiment, the third embodiment may be described based on the first embodiment. FIG. 29 is a configuration diagram of such a modification. In the first embodiment, the received data and the cache management table CCT are stored in the application buffer of the relay device RT. Therefore, instead of creating the conversion table CVTB, the relay application APL1 stores the cache management table CCT in the application server ASV.
Separately. The cache management table CCT transferred from the relay application APL1 indicates the correspondence between the data in the application buffer (address 4) on the relay device RT and the packets stored in the cache memory (address 2). Therefore, the table correction unit TBCR corrects the data into the table CCT 'so as to indicate the correspondence between the data in the application buffer (address 44) on the application server ASV and the packet on the cache memory.

【0139】ついで、プロキシアプリケーションAPL2は
セキュリティチェックなどの処理を受信データに施す。
チェック処理後、アプリケーションAPL2は差分情報作成
部DIFCにより差分情報を作成する。すなわち、差分情報
作成部DIFCはチェック結果に基づいて変更が必要なデー
タ部分に応じたパケットをキャッシュ管理テーブルCC
T′を参照して特定すると共に、変更内容を作成する。
アプリケーションAPL2は、通信手段10を介して差分情
報DIFを中継装置RTのアプリケーションAPL1に送信す
る。差分情報DIFを受信したアプリケーションAPL1は、
更新部UPDがアクセス可能なカ-ネルバッファに差分情報
DIFコピーする。更新手段UPDはアプリケーションAPL1か
ら差分情報DIFを受信すれば、該差分情報DIFにより変更
対象であるキャッシュメモリ上のパケットPTiを特定
し、ついで、該パケットPTi内の変更箇所を特定し、該
変更箇所のデータを変更内容で置換し、これを以って送
信データとする。
Next, the proxy application APL2 performs processing such as security check on the received data.
After the check processing, the application APL2 creates difference information using the difference information creation unit DIFC. That is, the difference information creation unit DIFC stores a packet corresponding to the data portion that needs to be changed based on the check result in the cache management table CC.
It specifies with reference to T 'and creates the change.
The application APL2 transmits the difference information DIF to the application APL1 of the relay device RT via the communication unit 10. The application APL1, which has received the difference information DIF,
Difference information in the kernel buffer accessible by the update unit UPD
DIF copy. Upon receiving the difference information DIF from the application APL1, the updating means UPD specifies the packet PTi on the cache memory to be changed by the difference information DIF, and then specifies the changed portion in the packet PTi, and Is replaced with the changed content, and this is used as transmission data.

【0140】・第3変形例 中継装置(ノード1)とアプリケーションサーバ(ノー
ド2)が異なるノードを構成している中継系において、
以下のいずれかの変形例、 1.キャッシュメモリをノード1のアプリケーションレ
イヤに設けること、 2.更新部をノード1上アプリケーションレイヤに設け
ること、 3.ノード1のアプリケーションレイヤと下位レイヤ
(カ−ネル、ハードウェア)のバッファを共用するこ
と、を採用するように構成できる。なお、バッファを共
用すれば、バッファ間のコピーを不要にできる。
Third Modification In the relay system in which the relay device (node 1) and the application server (node 2) constitute different nodes,
Any of the following modifications: 1. providing a cache memory in the application layer of node 1; 2. providing an update unit in the application layer on node 1; Sharing of the buffer of the lower layer (kernel, hardware) with the application layer of the node 1 can be adopted. If the buffers are shared, copying between the buffers can be eliminated.

【0141】以上第3実施例及びその変形例によれば、
中継装置とプロキシアプリケーションが異なるノード上
に装備されていても、ノード内及び主にノード間のコピ
ー処理の冗長性を大幅に減らすことが可能となる。以
上、本発明を実施例により説明したが、本発明は請求の
範囲に記載した本発明の主旨に従い種々の変形が可能で
あり、本発明はこれらを排除するものではない。
As described above, according to the third embodiment and its modifications,
Even if the relay device and the proxy application are installed on different nodes, it is possible to greatly reduce the redundancy of the copy processing within the node and mainly between the nodes. As described above, the present invention has been described with reference to the embodiments. However, the present invention can be variously modified in accordance with the gist of the present invention described in the claims, and the present invention does not exclude these.

【0142】[0142]

【発明の効果】以上本発明によれば、ネットワークの境
界に位置し、受信するデータに対するセキュリティ・チ
ェックなどのアプリケーション処理を行い、かつそのデ
ータを通信経路上の次の端末に対して送信することでデ
ータの中継を行う中継装置において、コピー処理の冗長
性をできるだけ排して高速通信を行うことができる。
又、本発明によれば、データを外部に送信しないと決定
したときは、上位レイヤより下位レイヤに削除指示する
だけで良く、処理時間を短縮できる。又、受信データに
変更を加えないときは上位レイヤより下位レイヤへ無変
更指示するだけで良く処理時間を短縮できる。又、同一
パケットに対する変更箇所の数が設定数より多いとき、
あるいは、同一パケットに対する変更データ長の総和が
設定数より多いとき、新規の送信データを作成するよう
にしているため、処理時間を短縮できる。更に、本発明
によれば、セキュリティチェック等のデータ処理を行う
アプリケーションが中継ノードとは別のアプリケーショ
ンノードに設けられている場合であっても、ノード間の
コピー処理の冗長性を大幅に減らして高速通信をを行う
ことができる。
As described above, according to the present invention, it is possible to perform application processing such as security check on received data located at the boundary of a network, and transmit the data to the next terminal on a communication path. In the relay device that relays data, high-speed communication can be performed while eliminating redundancy of copy processing as much as possible.
Further, according to the present invention, when it is determined not to transmit data to the outside, it is only necessary to instruct the lower layer to delete from the upper layer, and the processing time can be reduced. Further, when no change is made to the received data, the processing time can be shortened only by instructing no change from the upper layer to the lower layer. When the number of changed parts for the same packet is larger than the set number,
Alternatively, when the total sum of the changed data lengths for the same packet is larger than the set number, new transmission data is created, so that the processing time can be reduced. Furthermore, according to the present invention, even when an application that performs data processing such as a security check is provided in an application node different from the relay node, the redundancy of copy processing between nodes is greatly reduced. High-speed communication can be performed.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1のアプリケーション処理の概略説
明図である。
FIG. 1 is a schematic explanatory diagram of a first application process of the present invention.

【図2】本発明の第2のアプリケーション処理の概略説
明図である。
FIG. 2 is a schematic explanatory diagram of a second application process of the present invention.

【図3】本発明の第3のアプリケーション処理の概略説
明図である。
FIG. 3 is a schematic explanatory diagram of a third application process of the present invention.

【図4】本発明の第4のアプリケーション処理の概略説
明図である。
FIG. 4 is a schematic explanatory diagram of a fourth application process of the present invention.

【図5】本発明の第5のアプリケーション処理の概略説
明図である。
FIG. 5 is a schematic explanatory diagram of a fifth application process of the present invention.

【図6】本発明の第6のアプリケーション処理の概略説
明図である。
FIG. 6 is a schematic explanatory diagram of a sixth application process of the present invention.

【図7】差分情報作成と新規データ作成の切り替え判定
説明図である。
FIG. 7 is an explanatory diagram of switching determination between creation of difference information and creation of new data.

【図8】本発明の第8のアプリケーション処理の概略説
明図である。
FIG. 8 is a schematic explanatory diagram of an eighth application process of the present invention.

【図9】本発明の第9のアプリケーション処理の概略説
明図である。
FIG. 9 is a schematic explanatory diagram of a ninth application process of the present invention.

【図10】変換テーブルの動作説明図である。FIG. 10 is a diagram illustrating the operation of a conversion table.

【図11】本発明の第10のアプリケーション処理の概
略説明図である。
FIG. 11 is a schematic explanatory diagram of a tenth application process of the present invention.

【図12】本発明の中継の概念図である。FIG. 12 is a conceptual diagram of the relay of the present invention.

【図13】パケットの受信フローである。FIG. 13 is a reception flow of a packet.

【図14】カ−ネルバッファ内のデータとアプリケーシ
ョンバッファ内のデータの対応関係説明図である。
FIG. 14 is an explanatory diagram showing a correspondence relationship between data in a kernel buffer and data in an application buffer.

【図15】キャッシュ管理テーブルである。FIG. 15 is a cache management table.

【図16】差分情報作成処理説明図である。FIG. 16 is an explanatory diagram of a difference information creation process.

【図17】差分データ構造体説明図である。FIG. 17 is an explanatory diagram of a difference data structure.

【図18】パケットの送信フローである。FIG. 18 is a packet transmission flow.

【図19】送信データ作成の説明図である。FIG. 19 is an explanatory diagram of transmission data creation.

【図20】パケット長変更(減少)時における更新処理
説明図である。
FIG. 20 is an explanatory diagram of an update process when a packet length is changed (decreased).

【図21】パケット長変更(増加)時における更新処理
説明図である。
FIG. 21 is an explanatory diagram of an update process when a packet length is changed (increased).

【図22】パケットの受信から送信までの全体の流れ説
明図である。
FIG. 22 is an explanatory diagram of an entire flow from reception to transmission of a packet.

【図23】ブリッジの中継概念図である。FIG. 23 is a conceptual diagram of a bridge relay.

【図24】第2実施例のパケット受信から送信までの全
体の流れ説明図である。
FIG. 24 is an explanatory diagram of the overall flow from packet reception to transmission in the second embodiment.

【図25】第2実施例の差分データ構造体説明図であ
る。
FIG. 25 is an explanatory diagram of a differential data structure according to the second embodiment.

【図26】第3実施例の中継処理説明図である。FIG. 26 is an explanatory diagram of a relay process according to the third embodiment.

【図27】第3実施例の第1の変形例である。FIG. 27 is a first modification of the third embodiment.

【図28】識別符号付の差分データ構造体説明図であ
る。
FIG. 28 is an explanatory diagram of a difference data structure with an identification code.

【図29】第3実施例の第2の変形例である。FIG. 29 is a second modification of the third embodiment.

【図30】従来のネットワーク環境説明図である。FIG. 30 is an explanatory diagram of a conventional network environment.

【図31】従来の別のネットワーク環境説明図である。FIG. 31 is an explanatory diagram of another conventional network environment.

【図32】インターネットプロトコルの階層構成説明図
である。
FIG. 32 is an explanatory diagram of a hierarchical configuration of an Internet protocol.

【図33】各レイヤのメッセージ構成図である。FIG. 33 is a diagram illustrating a message configuration of each layer.

【図34】中継の概念図である。FIG. 34 is a conceptual diagram of relaying.

【図35】TCP/IPプロトコルヘッダである。FIG. 35 shows a TCP / IP protocol header.

【図36】従来のパケット受信フローである。FIG. 36 is a conventional packet reception flow.

【図37】従来のパケット送信フローである。FIG. 37 is a conventional packet transmission flow.

【図38】送信データの作成及び送信説明図である。FIG. 38 is an explanatory diagram of creation and transmission of transmission data.

【符号の説明】[Explanation of symbols]

100・・ハードウェアバッファ 200・・カ-ネル・・バッファ 300・・アプリケーションバッファ CSH・・キャッシュ手段 CCTC・・キャッシュ管理テーブル作成手段 UPD・・更新手段 CCT・・キャッシュ管理テーブル DIFC・・差分情報作成手段 DIF・・差分情報 100 Hardware buffer 200 Kernel buffer 300 Application buffer CSH Cache means CCTC Cache management table creation means UPD Update means CCT Cache management table DIFC Difference information creation Means DIF

───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5K030 GA02 HA08 HB28 HD01 KA02 KX11 LD01 LE11 5K033 AA02 BA13 CB08 CC01 DA05 DB12 DB18 5K034 AA02 BB06 CC01 DD03 EE11 FF11 HH01 HH14 HH17 HH18 9A001 BZ03 CC03 LL03  ──────────────────────────────────────────────────続 き Continued on the front page F term (reference) 5K030 GA02 HA08 HB28 HD01 KA02 KX11 LD01 LE11 5K033 AA02 BA13 CB08 CC01 DA05 DB12 DB18 5K034 AA02 BB06 CC01 DD03 EE11 FF11 HH01 HH14 HH17 HH18 9A001 BZ03 CC03 LL03

Claims (17)

【特許請求の範囲】[Claims] 【請求項1】 外部より下位レイヤを介して受信したデ
ータに対して上位レイヤであるアプリケーションレイヤ
で所定のデータ処理を施し、処理結果に応じたデータを
下位レイヤを介して外部へ送信する中継装置において、 外部より受信したデータを保存する下位レイヤのキャッ
シュメモリ、 アプリケーションレイヤのバッファにコピーされたデー
タとキャッシュメモリに保存されたデータとの対応関係
を示すキャッシュ管理テーブルを作成し、該バッファに
記憶するテーブル作成手段、 データ処理後、前記キャッシュ管理テーブルに保持され
ている対応関係を用いて、変更を要するキャッシュメモ
リ内のデータを特定し、該データ特定情報とデータの変
更箇所と変更内容を有する差分情報を作成するアプリケ
ーションレイヤにおける差分情報作成手段、 前記差分情報を用いてキャッシュメモリに保存されてい
るデータを更新し、更新結果を送信データとする下位レ
イヤにおける更新手段、 を有することを特徴とする中継装置。
1. A relay device for performing predetermined data processing on data received from the outside via a lower layer in an application layer as an upper layer, and transmitting data according to the processing result to the outside via the lower layer. A cache memory of a lower layer for storing data received from the outside, a cache management table indicating a correspondence relationship between data copied to a buffer of an application layer and data stored in the cache memory, and stored in the buffer. Means for creating a table, after data processing, specifies data in the cache memory that needs to be changed using the correspondence held in the cache management table, and has the data specifying information, the changed location of the data, and the changed content. Difference information in the application layer that creates difference information A relay unit that updates data stored in a cache memory using the difference information, and uses a result of the update as transmission data in a lower layer.
【請求項2】 請求項1記載の中継装置において、 前記キャッシュメモリを更新手段がアクセス可能なハー
ドウェアレイヤのバッファに設けた、ことを特徴とす
る。
2. The relay device according to claim 1, wherein said cache memory is provided in a buffer of a hardware layer accessible to an updating unit.
【請求項3】 請求項1または請求項2記載の中継装置
において、 キャッシュメモリはパケット単位で受信したデータを保
存し、 テーブル作成手段は、アプリケーションバッファ上のコ
ピー先データとキャッシュメモリ上のパケットの対応関
係を示すキャッシュ管理テーブルを作成し、差分情報作
成部は前記キャッシュ管理テーブルに保持されている対
応関係を用いて、変更を要するキャッシュメモリ内のパ
ケットを特定し、該パケット特定情報とパケット内の変
更箇所と変更内容を有する差分情報を作成し、 更新部は該差分情報を用いてキャッシュメモリに保存さ
れているパケットを更新し、更新結果を送信データとす
る、 ことを特徴とする。
3. The relay device according to claim 1, wherein the cache memory stores the received data in packet units, and the table creating means stores the copy destination data in the application buffer and the packet in the cache memory. A cache management table indicating the correspondence is created, and the difference information creating unit identifies the packet in the cache memory that needs to be changed using the association held in the cache management table, and determines the packet identification information and the packet identification information. The update unit generates difference information having the changed portion and the changed content of the above, and the updating unit updates the packet stored in the cache memory using the difference information, and uses the update result as transmission data.
【請求項4】 外部より下位レイヤを介して受信したデ
ータに対してアプリケーションレイヤで所定のデータ処
理を施し、処理結果に応じたデータを下位レイヤを介し
て外部へ送信する中継装置において、 外部より受信したデータを保存する下位レイヤのキャッ
シュメモリ、 アプリケーションレイヤのバッファにコピーされたデー
タとキャッシュメモリに保存されたデータとの対応関係
を示すキャッシュ管理テーブルを作成し、下位レイヤの
バッファに記憶するテーブル作成手段、 アプリケーションバッファにコピーされたデータのうち
変更を要するデータを特定し、該データ特定情報とデー
タの変更箇所と変更内容を含む差分情報を作成するアプ
リケーションレイヤの差分情報作成手段、 前記差分情報とキャッシュ管理テーブルに保持されてい
る対応関係とを用いてキャッシュメモリに保存されてい
る変更を要するデータを特定し、該データを更新して送
信データとする下位レイヤにおける更新手段、 を有することを特徴とする中継装置。
4. A relay device for performing predetermined data processing on data received from the outside via a lower layer in an application layer, and transmitting data according to the processing result to the outside via a lower layer. A cache memory of a lower layer for storing received data, a table for creating a cache management table indicating a correspondence between data copied to a buffer of an application layer and data stored in the cache memory, and storing the table in a buffer of a lower layer Creating means, application data difference information creating means for identifying data that needs to be changed among the data copied to the application buffer, and creating difference information including the data specifying information, the changed location of the data, and the changed content; And kept in the cache management table And uses the relationship to identify the data requiring changes stored in the cache memory, a relay apparatus characterized by having, updating means in the lower layer to transmit data and update the data.
【請求項5】 請求項4記載の中継装置において、 前記キャッシュメモリを更新手段がアクセス可能なハー
ドウェアレイヤのバッファに設けた、ことを特徴とす
る。
5. The relay device according to claim 4, wherein the cache memory is provided in a buffer of a hardware layer accessible to an updating unit.
【請求項6】 請求項4又請求項5記載の中継装置にお
いて、 キャッシュメモリはパケット単位で受信したデータを保
存し、 テーブル作成手段は、アプリケーションバッファ上のコ
ピー先データとキャッシュメモリ上のパケットの対応関
係を示すキャッシュ管理テーブルを作成し、 更新部は、前記差分情報とキャッシュ管理テーブルに保
持されている対応関係とを用いて変更を要するパケット
を特定し、該パケットを更新して送信データとする、 ことを特徴とする。
6. The relay device according to claim 4, wherein the cache memory stores the data received in packet units, and the table creating means stores the copy destination data in the application buffer and the packet in the cache memory. The update unit creates a cache management table indicating the correspondence, identifies the packet that needs to be changed using the difference information and the correspondence held in the cache management table, updates the packet, and updates the packet with the transmission data. It is characterized by the following.
【請求項7】 請求項1または請求項4記載の中継装置
において、 前記差分情報作成手段は、キャッシュメモリ上のデータ
を外部に送信しないときは差分情報に削除指示を含ま
せ、更新手段は該削除指示によりキャッシュメモリ上の
データを削除することを特徴とする。
7. The relay device according to claim 1, wherein the difference information creating unit includes a deletion instruction in the difference information when data in the cache memory is not transmitted to the outside, and the updating unit includes the updating unit. Data in the cache memory is deleted by a deletion instruction.
【請求項8】 請求項1または請求項4記載の中継装置
において、 前記差分情報作成手段は、キャッシュメモリ上のデータ
に変更を加えないときは差分情報に無変更指示を含ま
せ、更新手段は該無変更指示によりキャッシュメモリ上
のデータをそのまま送信データとすることを特徴とす
る。
8. The relay device according to claim 1, wherein the difference information creating unit causes the difference information to include a no-change instruction when the data in the cache memory is not changed, and the updating unit includes: According to the non-change instruction, data in the cache memory is directly used as transmission data.
【請求項9】 請求項1または請求項4記載の中継装置
において、 差分情報作成手段は、新しく送信データを作成するとき
は差分情報に新規指示を含ませ、更新手段は該新規指示
により該差分情報に含まれるデータを新規送信データと
することを特徴とする。
9. The relay device according to claim 1, wherein the difference information creating means includes a new instruction in the difference information when newly creating transmission data, and the updating means makes the difference information in accordance with the new instruction. Data included in the information is newly transmitted data.
【請求項10】 請求項3または請求項6記載の中継装
置において、 同一パケットに対する変更箇所の数が設定数より多いと
き、アプリケーションは新規の送信データを作成し、差
分情報作成手段は差分情報に新規指示と該送信データを
含ませ、更新手段は該新規指示により差分情報に含まれ
る送信データを新規送信データとすることを特徴とす
る。
10. The relay device according to claim 3, wherein, when the number of changed portions for the same packet is larger than the set number, the application creates new transmission data, and the difference information creating means stores the difference information in the difference information. A new instruction and the transmission data are included, and the updating means uses the transmission data included in the difference information according to the new instruction as new transmission data.
【請求項11】 請求項3または請求項6記載の中継装
置において、 同一パケットに対する変更データ長の総和が設定長より
長いとき、アプリケーションは新規の送信データを作成
し、差分情報作成手段は差分情報に新規指示と該送信デ
ータを含ませ、更新手段は該新規指示により差分情報に
含まれる送信データを新規送信データとすることを特徴
とする。
11. The relay device according to claim 3, wherein when a total sum of changed data lengths for the same packet is longer than a set length, the application creates new transmission data, and the difference information creating means includes the difference information creating unit. And a transmission instruction included in the difference information according to the new instruction.
【請求項12】 第1ノードは外部より受信したデータ
を第1のアプリケーションにより第2ノードの第2のア
プリケーションに転送し、第2ノードは第2アプリケー
ションにより受信データに所定のデータ処理を施し、処
理結果を第1ノードの第1アプリケーションに転送し、
第1ノードは転送されてきた処理結果に基づいて送信デ
ータを作成して外部へ送信する中継装置において、 第1ノードは、 外部より受信したデータを保存する下位レイヤのキャッ
シュメモリ、 アプリケーションレイヤのバッファにコピーされたデー
タとキャッシュメモリに保存されたデータとの対応関係
を示すキャッシュ管理テーブルを作成するテーブル作成
手段、 第1、第2のアプリケーション間で受信データやキャッ
シュ管理テーブル、前記処理結果である差分情報などの
送受を行う通信手段、 第2アプリケーションから転送されていくる差分情報を
用いてキャッシュメモリに保存されているデータを更新
し、更新結果を送信データとする下位レイヤの更新手
段、 を備え、前記第2ノードは、 第1ノードより送られてくるデータや前記キャッシュ管
理テーブルを記憶するアプリケーションレイヤのバッフ
ァ、 前記キャッシュ管理テーブルの対応関係を、第2ノード
のアプリケーションバッファにコピーされたデータとキ
ャッシュメモリに保存されたデータとの対応関係に修正
するテーブル修正手段、 第2アプリケーションによるデータ処理後、前記修正さ
れたキャッシュ管理テーブルに保持されている対応関係
を用いて、変更を要するキャッシュメモリ内のデータを
特定し、該データ特定情報とデータの変更箇所と変更内
容を有する差分情報を作成する上位レイヤの差分情報作
成手段、 第1、第2のアプリケーション間で受信データやキャッ
シュ管理テーブル、差分情報の送受を行う通信手段、を
有することを特徴とする中継装置。
12. The first node transfers externally received data to a second application of a second node by a first application, and the second node performs predetermined data processing on the received data by the second application. Transferring the processing result to the first application of the first node,
A relay device for generating a transmission data based on the transferred processing result and transmitting the data to the outside, wherein the first node includes: a lower-layer cache memory for storing data received from the outside; and a buffer for an application layer. Table creation means for creating a cache management table indicating the correspondence between the data copied to the cache memory and the data stored in the cache memory; the received data and the cache management table between the first and second applications; Communication means for transmitting and receiving difference information and the like; updating means for updating data stored in the cache memory using the difference information transferred from the second application, and updating the lower layer with the update result as transmission data. , The second node receives data sent from the first node, A buffer of an application layer for storing the cache management table, and a table correction means for correcting the correspondence of the cache management table to the correspondence between the data copied to the application buffer of the second node and the data stored in the cache memory. After the data processing by the second application, the data in the cache memory that needs to be changed is specified by using the correspondence relationship held in the corrected cache management table, and the data specifying information, the changed location of the data, and the change A relay device, comprising: upper layer difference information creating means for creating difference information having contents; received data and a cache management table between the first and second applications; and communication means for sending and receiving difference information. .
【請求項13】 請求項12記載の中継装置において、 キャッシュメモリはパケット単位で受信したデータを保
存し、 テーブル作成手段は、第1ノードのアプリケーションバ
ッファ上のコピー先データとキャッシュメモリ上のパケ
ットの対応関係を示すキャッシュ管理テーブルを作成
し、 テーブル修正手段は、キャッシュ管理テーブルの対応関
係を、第2ノードにおけるアプリケーションバッファ上
のコピー先データとキャッシュメモリ上のパケットとの
対応関係に修正し、 差分情報作成部は修正されたキャッシュ管理テーブルに
保持されている対応関係を用いて、変更を要するキャッ
シュメモリ内のパケットを特定し、該パケット特定情報
とパケットの変更箇所と変更内容を有する差分情報を作
成し、 更新部は該差分情報を用いてキャッシュメモリに保存さ
れているパケットを更新し、更新結果を送信データとす
る、 ことを特徴とする。
13. The relay device according to claim 12, wherein the cache memory stores the data received in packet units, and the table creating means stores the copy destination data in the application buffer of the first node and the packet in the cache memory. A cache management table indicating the correspondence is created, and the table correction unit corrects the correspondence in the cache management table to a correspondence between the copy destination data in the application buffer in the second node and the packet in the cache memory, The information creating unit identifies a packet in the cache memory that needs to be changed using the correspondence relationship held in the corrected cache management table, and compares the packet identification information and the difference information having the changed portion and the changed content of the packet. The update unit creates a cache using the difference information. Update the packet stored in Yumemori, the update result and transmits data, and wherein the.
【請求項14】 第1ノードは外部より受信したデータ
を第1のアプリケーションにより第2ノードの第2のア
プリケーションに転送し、第2ノードは第2アプリケー
ションにより受信データに所定のデータ処理を施し、処
理結果を第1ノードの第1アプリケーションに転送し、
第1ノードは転送されてきた処理結果に基づいて送信デ
ータを作成して外部へ送信する中継装置において、 第1ノードは、 外部より受信したデータを保存する下位レイヤのキャッ
シュメモリ、 アプリケーションレイヤのバッファ(第1アプリケーシ
ョンバッファ)にコピーされたデータとキャッシュメモ
リに保存されたデータとの対応関係を示すキャッシュ管
理テーブルを作成するテーブル作成手段、 第1、第2のアプリケーション間で所定のコネクション
を介してデータや前記処理結果である差分情報の送受を
行う通信手段、 第1アプリケーションバッファにコピーされたデータの
先頭アドレスと前記コネクションの識別子との対応関係
を示す変換テーブル、 第2アプリケーションから前記コネクションを介して転
送されてくる差分情報を、該差分情報に含まれる第2ア
プリケーションバッファのデータ先頭アドレスと前記変
換テーブルから得られる第1アプリケーションバッファ
のデータ先頭アドレスとを用いて修正する差分情報修正
手段、 前記修正された差分情報と前記キャッシュ管理テーブル
に保持されている対応関係とを用いてキャッシュメモリ
に保存されている変更を要するデータを特定し、該デー
タを更新して送信データとする下位レイヤにおける更新
手段、 を備え、前記第2ノードは、 第1ノードより送られてくるデータを記憶するバッファ
(第2アプリケーションバッファ)、 第2アプリケーションによるデータ処理後、変更を要す
る第2アプリケーションバッファ内のデータを特定し、
該データ特定情報とデータの変更箇所と変更内容を有す
る差分情報を作成する上位レイヤの差分情報作成手段、 第1、第2のアプリケーション間で前記コネクションを
介してデータや差分情報などの送受を行う通信手段、 を有することを特徴とする中継装置。
14. The first node transfers externally received data to a second application of a second node by a first application, and the second node performs predetermined data processing on the received data by the second application. Transferring the processing result to the first application of the first node,
A relay device for generating a transmission data based on the transferred processing result and transmitting the data to the outside, wherein the first node includes: a lower-layer cache memory for storing data received from the outside; and a buffer for an application layer. Table creation means for creating a cache management table indicating the correspondence between the data copied to the (first application buffer) and the data stored in the cache memory, between the first and second applications via a predetermined connection Communication means for transmitting and receiving data and difference information as the processing result; a conversion table indicating a correspondence relationship between a head address of the data copied to the first application buffer and the identifier of the connection; Difference information transmitted Using the data head address of the second application buffer included in the difference information and the data head address of the first application buffer obtained from the conversion table. An update unit in a lower layer that specifies data that needs to be changed and that is stored in the cache memory using the correspondence relationship held in the cache management table and updates the data to be transmission data. The two nodes specify a buffer (second application buffer) for storing data sent from the first node, data in the second application buffer that needs to be changed after data processing by the second application,
Upper layer difference information creating means for creating difference information having the data specifying information, the changed portion of the data, and the changed content, and transmitting and receiving data and difference information between the first and second applications via the connection A relay device, comprising: communication means.
【請求項15】 請求項14記載の中継装置において、 キャッシュメモリはパケット単位で受信したデータを保
存し、 テーブル作成手段は、第1ノードのアプリケーションバ
ッファ上のコピー先データとキャッシュメモリ上のパケ
ットの対応関係を示すキャッシュ管理テーブルを作成
し、 差分情報作成部は、変更を要する第2アプリケーション
バッファ内のデータを特定し、該データ特定情報とデー
タ内の変更箇所と変更内容を有する差分情報を作成し、 差分情報修正手段は差分情報に含まれる第2アプリケー
ションバッファのデータ先頭アドレス、変換テーブルか
ら得られる第1アプリケーションバッファのデータ先頭
アドレスを用いて、差分情報を修正し、 更新部は修正された差分情報とキャッシュ管理テーブル
に保持されている対応関係とを用いて変更を要するパケ
ットを特定し、該パケットを更新して送信データとす
る、 ことを特徴とする。
15. The relay device according to claim 14, wherein the cache memory stores the data received in packet units, and the table creating means stores the copy destination data in the application buffer of the first node and the packet in the cache memory. A cache management table indicating the correspondence is created. The difference information creation unit identifies data in the second application buffer that needs to be changed, and creates difference information including the data identification information, the changed location in the data, and the changed content. The difference information correcting means corrects the difference information by using the data start address of the second application buffer included in the difference information and the data start address of the first application buffer obtained from the conversion table, and the updating unit corrects the difference information. Difference information and correspondence held in the cache management table Identify the packet requiring changes by using the engagement, and transmits data to update the packet, characterized in that.
【請求項16】 第1ノードは外部より受信したデータ
を第1のアプリケーションにより第2ノードの第2のア
プリケーションに転送し、第2ノードは第2アプリケー
ションにより受信データに所定のデータ処理を施し、処
理結果を第1ノードの第1アプリケーションに転送し、
第1ノードは転送されてきた処理結果に基づいて送信デ
ータを作成して外部へ送信する中継装置において、 第1ノードは、 外部より受信したデータを保存する下位レイヤのキャッ
シュメモリ、 アプリケーションレイヤのバッファ(第1アプリケーシ
ョンバッファ)にコピーされたデータとキャッシュメモ
リに保存されたデータとの対応関係を示すキャッシュ管
理テーブルを作成するテーブル作成手段、 第1、第2のアプリケーション間で識別子が付されたデ
ータや前記処理結果である差分情報の送受を行う通信手
段、 第1アプリケーションバッファにコピーされたデータの
先頭アドレスと該データの識別子との対応関係を示す識
別テーブル、 第2アプリケーションから前記コネクションを介して転
送されてくる差分情報を、該差分情報に含まれる第2ア
プリケーションバッファのデータ先頭アドレスと、前記
識別テーブルから得られる第1アプリケーションバッフ
ァのデータ先頭アドレスとを用いて修正する差分情報修
正手段、 前記修正された差分情報と前記キャッシュ管理テーブル
に保持されている対応関係とを用いてキャッシュメモリ
に保存されている変更を要するデータを特定し、該デー
タを更新して送信データとする下位レイヤにおける更新
手段、 を備え、前記第2ノードは、 第1ノードより送られてくるデータを記憶するバッファ
(第2アプリケーションバッファ)、 第2アプリケーションによるデータ処理後、変更を要す
る第2アプリケーションバッファ内のデータを特定し、
該データ特定情報とデータの変更箇所と変更内容を有す
る差分情報を作成する上位レイヤの差分情報作成手段、 第1、第2のアプリケーション間で前記コネクションを
介してデータや差分情報などの送受を行う通信手段、 を有することを特徴とする中継装置。
16. The first node transfers externally received data to a second application of a second node by a first application, and the second node performs predetermined data processing on the received data by the second application. Transferring the processing result to the first application of the first node,
A relay device for generating a transmission data based on the transferred processing result and transmitting the data to the outside, wherein the first node includes: a lower-layer cache memory for storing data received from the outside; and a buffer for an application layer. Table creation means for creating a cache management table indicating the correspondence between the data copied to the (first application buffer) and the data stored in the cache memory; data to which an identifier is assigned between the first and second applications Communication means for transmitting and receiving difference information as a result of the processing, an identification table indicating a correspondence between a head address of data copied to the first application buffer and an identifier of the data, and a connection from the second application via the connection. Transfer the difference information to the difference information Difference information correcting means for correcting using the data head address of the second application buffer to be stored and the data head address of the first application buffer obtained from the identification table; and holding the corrected difference information and the cache management table. Updating means in a lower layer for identifying data that needs to be changed and stored in the cache memory using the corresponding relationship, and updating the data to be transmission data. A buffer for storing data sent from one node (second application buffer); after processing data by the second application, specify data in the second application buffer that needs to be changed;
Upper layer difference information creating means for creating difference information having the data specifying information, the changed portion of the data, and the changed content, and transmitting and receiving data and difference information between the first and second applications via the connection A relay device, comprising: communication means.
【請求項17】 請求項16記載の中継装置において、 キャッシュメモリはパケット単位で受信したデータを保
存し、 テーブル作成手段は、第1ノードのアプリケーションバ
ッファ上のコピー先データとキャッシュメモリ上のパケ
ットの対応関係を示すキャッシュ管理テーブルを作成
し、 差分情報作成部は、変更を要する第2アプリケーション
バッファ内のデータを特定し、該データ特定情報とデー
タ内の変更箇所と変更内容と前記識別子を有する差分情
報を作成し、 差分情報修正手段は差分情報に含まれる第2アプリケー
ションバッファのデータ先頭アドレス、識別テーブルか
ら得られる第1アプリケーションバッファのデータ先頭
アドレスを用いて、差分情報を修正し、 更新部は修正された差分情報とキャッシュ管理テーブル
に保持されている対応関係とを用いて変更を要するパケ
ットを特定し、該パケットを更新して送信データとす
る、 ことを特徴とする。
17. The relay device according to claim 16, wherein the cache memory stores the received data in packet units, and the table creating means stores the copy destination data in the application buffer of the first node and the packet in the cache memory. A cache management table indicating a correspondence relationship is created. The difference information creating unit identifies data in the second application buffer that needs to be changed, and determines a difference including the data identification information, the changed location in the data, the changed content, and the identifier. Information is created, and the difference information correcting means corrects the difference information using the data start address of the second application buffer included in the difference information and the data start address of the first application buffer obtained from the identification table. Modified difference information and stored in the cache management table Identify the packet requiring changes by using the in which the corresponding relationship, and transmits data to update the packet, characterized in that.
JP14786899A 1999-05-27 1999-05-27 Data repeater Withdrawn JP2000341328A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14786899A JP2000341328A (en) 1999-05-27 1999-05-27 Data repeater

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14786899A JP2000341328A (en) 1999-05-27 1999-05-27 Data repeater

Publications (1)

Publication Number Publication Date
JP2000341328A true JP2000341328A (en) 2000-12-08

Family

ID=15440067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14786899A Withdrawn JP2000341328A (en) 1999-05-27 1999-05-27 Data repeater

Country Status (1)

Country Link
JP (1) JP2000341328A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003032169A1 (en) * 2001-09-28 2003-04-17 Supreme Magic Corporation Data processor
JP2006146923A (en) * 2004-11-22 2006-06-08 Lucent Technol Inc Method and apparatus for pre-packetized caching for network server
US8146144B2 (en) 2003-02-06 2012-03-27 Innominate Security Technologies Ag Method and system for the transparent transmission of data traffic between data processing devices, corresponding computer program product, and corresponding computer-readable storage medium
US8478984B2 (en) 2007-02-15 2013-07-02 Fujitsu Limited Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data relay apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003032169A1 (en) * 2001-09-28 2003-04-17 Supreme Magic Corporation Data processor
US8146144B2 (en) 2003-02-06 2012-03-27 Innominate Security Technologies Ag Method and system for the transparent transmission of data traffic between data processing devices, corresponding computer program product, and corresponding computer-readable storage medium
JP2006146923A (en) * 2004-11-22 2006-06-08 Lucent Technol Inc Method and apparatus for pre-packetized caching for network server
US8478984B2 (en) 2007-02-15 2013-07-02 Fujitsu Limited Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data relay apparatus

Similar Documents

Publication Publication Date Title
JP3399928B2 (en) High-speed transfer and filtering of network packets in computer systems
JP4057067B2 (en) Mechanism for replacing packet fields in multi-layer switching network elements
EP0972380B1 (en) Intelligent communication server and communication system incorporating same
JP2571679B2 (en) Gateway and basic link unit transmission method
US7519062B1 (en) Method and apparatus for implementing forwarding decision shortcuts at a network switch
US6556574B1 (en) Duplicate ignore delay timer for ARP like protocol messages using are protocol
US7953817B2 (en) System and method for supporting TCP out-of-order receive data using generic buffer
JP4744723B2 (en) Multi-protocol redundant router protocol support method and apparatus
US7116666B2 (en) Switch assisted frame aliasing for storage virtualization
US7230914B2 (en) Method and system for synchronizing a standby route distributor in a distributed routing platform
EP0637149A2 (en) Method and apparatus for providing multicast virtual circuits
JP5353278B2 (en) Communication device
EP0724803A1 (en) Application programming interface system and technique
US7864788B2 (en) System and method for bridging proxy traffic in an electronic network
KR100793349B1 (en) Multicast forwarding apparatus and control method in system for using PPP multi-link
US7224695B2 (en) Router and communication network system
AU772252B2 (en) Method and system for managing forwarding tables
JP2005295124A (en) Path table synchronizing method, network device, and path table synchronizing program
US20050240681A1 (en) Communication device, storage system and a communication method
US20040215819A1 (en) Apparatus for and method for controlling packet, and computer program product
US6725218B1 (en) Computerized database system and method
JP2000341328A (en) Data repeater
CN110728598A (en) Computer network principle teaching system based on libpcap
JPH07105815B2 (en) Data packet transfer system and data packet transfer method
JP4397416B2 (en) Network system and network connection device

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060801