JPH10164176A - Communication method - Google Patents

Communication method

Info

Publication number
JPH10164176A
JPH10164176A JP9271642A JP27164297A JPH10164176A JP H10164176 A JPH10164176 A JP H10164176A JP 9271642 A JP9271642 A JP 9271642A JP 27164297 A JP27164297 A JP 27164297A JP H10164176 A JPH10164176 A JP H10164176A
Authority
JP
Japan
Prior art keywords
request
transmission
reception
data
terminal
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.)
Granted
Application number
JP9271642A
Other languages
Japanese (ja)
Other versions
JP3436100B2 (en
Inventor
Ryuichi Ono
隆一 大野
Mitsuo Asai
光男 浅井
Yoji Yamashita
洋史 山下
Yoshihiro Takiyasu
美弘 滝安
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP27164297A priority Critical patent/JP3436100B2/en
Publication of JPH10164176A publication Critical patent/JPH10164176A/en
Application granted granted Critical
Publication of JP3436100B2 publication Critical patent/JP3436100B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To effectively transmit and receive the data even in a fast communication mode set for transfer of animations, etc., by securing the logical connection between the transmitting and receiving terminals, securing the correspondence between the receiving and transmitting requests by means of the identifiers added to both requests, and transferring the data to the receiving terminal from the transmitting terminal. SOLUTION: The computers 400 and 460 are connected to each other via a network 430, and the lower order protocol modules 406 and 466 control the data transmission function between both computers. Then an application or higher order protocol modules 402 and 462 designate an identifier of a receiving computer and an identifier that identifies the receiving opposite party of the receiving computer or a connection identifier to the middle order protocol modules 404 and 464 to perform the logical connection, to designate the designation of data, etc. Furthermore, a transmitting/receiving buffer, its length, etc., are designated for designation of the storing places of data to be transmitted and received.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明はコンピュータ通信に
おける通信方法に関し、特にOSI参照モデルで規定さ
れるプロトコル階層においてトランスポート層及びネッ
トワーク層に好適な通信方法に関する。
The present invention relates to a communication method in computer communication, and more particularly to a communication method suitable for a transport layer and a network layer in a protocol layer defined by an OSI reference model.

【0002】[0002]

【従来の技術】ネットワークを介して文字情報から画像
情報まで様々な種類のデータがコンピュータ間でやり取
りされている。これらのコンピュータ間通信においては
物理的な伝送路としては従来10Mbps以下の比較的
低速なネットワークが用いられてきたが、近年、ATM
(Asynchronous Transfer Mo
de)のように100Mbpsから1Gbpsにも及ぶ
高速なネットワークが用いられるようになってきた。
このような物理的な伝送路の高速化に伴い、各コンピュ
ータ上でのプロトコル処理の際のデータコピー、割り込
み処理などのオーバヘッドが伝送路の帯域を使い切るた
めのボトルネックとなってきている。
2. Description of the Related Art Various types of data from character information to image information are exchanged between computers via a network. In these inter-computer communications, a relatively low-speed network of 10 Mbps or less has conventionally been used as a physical transmission path.
(Asynchronous Transfer Mo
As in de), high-speed networks ranging from 100 Mbps to 1 Gbps have been used.
With the increase in the speed of such a physical transmission path, overhead such as data copying and interrupt processing at the time of protocol processing on each computer has become a bottleneck for using up the bandwidth of the transmission path.

【0003】トランスポート層の代表的なプロトコルと
してTCP(Transmission Contro
l Protocol)がある。このプロトコルは、
“INTERNETWORKING WITH TCP
/IP”(D.Comer著、Prentice−Ha
ll International、 Inc.、19
88)pp.129−151に具体的に記載されてい
る。TCPは信頼性のあるコネクション指向のストリー
ム型プロトコルであり、2つのコンピュータ間に張られ
た論理的なコネクション上を流れる各バイト単位にシー
ケンシャルに順序番号を与えることで全ての送信データ
が順序通り、誤り無く受信されることを保証している。
TCPでは上位層からの送出要求時に渡されたデータは
パケット紛失時の再送に備えてTCP内のバッファに一
旦コピーされる。上位層からの送信要求はこのコピーが
終了した時点で成功する。
As a typical protocol of the transport layer, TCP (Transmission Control) is used.
l Protocol). This protocol is
“INTERNETWORKING WITH TCP
/ IP "(D. Comer, Prentice-Ha
ll International, Inc. , 19
88) pp. 129-151. TCP is a reliable connection-oriented stream-type protocol. By sequentially giving a sequence number to each byte unit flowing on a logical connection between two computers, all transmission data are in order, It guarantees that it is received without errors.
In TCP, data passed at the time of a transmission request from an upper layer is temporarily copied to a buffer in the TCP in preparation for retransmission when a packet is lost. The transmission request from the upper layer succeeds when this copy is completed.

【0004】この送出要求時に渡されたデータはデータ
長が最大転送長(MTU)よりも大きい場合、MTU毎
に複数のパケットに分割され、このパケットごとにタイ
マがセットされる。パケットが正しく受信されると受信
側から送信側にバイトストリーム中でどこまでのバイト
を全て正しく受け取ったかを示す位置を含む確認応答
(ACK)が返り、送信側ではACK中の情報に従って
TCP内の送信バッファの対応部分を解放する。また、
受信側では受け取ったデータを上位層からの受信要求が
来るまでTCP内のバッファに保持する。図2にTCP
の送受信時のパケットのやりとりを示す。図2において
送信側は図4においてコンピュータ400を送信側コン
ピュータ、コンピュータ460を受信側コンピュータと
した場合の中位プロトコルモジュール404に相当し、
図2の受信側は同様に受信側コンピュータ460中の中
位プロトコルモジュール464に相当する。また、図2
においてSEQ=9は図4中の送信側中位プロトコルモ
ジュール404から受信側中位プロトコルモジュール4
64への送受信バイトストリーム空間において9バイト
目からのデータを送信側から受信側に受け渡すことを示
す。また、ACK=21は送受信バイトストリーム空間
において20バイト目までのデータが受信されたことを
示す確認応答に相当する。図2ではまず順序番号9〜2
0に相当する12バイトのデータパケット(SEQ=
9)が送信側から受信側に向けて送信され、同時に送信
側ではパケット紛失に備えてタイマをセットする。受信
側ではこのデータパケットを受け取ると同時に順序番号
21よりも前のパケットは受け取ったという情報を含む
確認応答(ACK=21)を送信側に送り返す。以下同
様に、順序番号21〜34、35〜38に相当するデー
タが送信され、受信確認が返送される。ここで、順序番
号39〜48に相当するデータが送信中に失われるとそ
の送信時にセットされたタイマがタイムアウトを起こし
た時点で順序番号39以降のデータが再送される。
When the data length passed at the time of this transmission request is larger than the maximum transfer length (MTU), the data is divided into a plurality of packets for each MTU, and a timer is set for each packet. When the packet is correctly received, an acknowledgment (ACK) including a position indicating how many bytes have been correctly received in the byte stream is returned from the receiving side to the transmitting side, and the transmitting side transmits the packet in the TCP according to the information in the ACK. Free the corresponding part of the buffer. Also,
The receiving side holds the received data in a buffer in the TCP until a reception request from the upper layer is received. Figure 2 shows the TCP
1 shows the exchange of packets when transmitting and receiving a packet. In FIG. 2, the transmitting side corresponds to the middle-level protocol module 404 when the computer 400 is a transmitting computer and the computer 460 is a receiving computer in FIG.
The receiving side in FIG. 2 also corresponds to the middle-level protocol module 464 in the receiving side computer 460. FIG.
In FIG. 4, SEQ = 9 indicates that the middle protocol module 404 on the transmitting side is different from the middle protocol module 404 on the receiving side in FIG.
In the transmission / reception byte stream space to H.64, data from the ninth byte is passed from the transmission side to the reception side. ACK = 21 corresponds to an acknowledgment indicating that data up to the 20th byte has been received in the transmission / reception byte stream space. In FIG. 2, first, the sequence numbers 9 to 2
12-byte data packet (SEQ =
9) is transmitted from the transmitting side to the receiving side, and at the same time, the transmitting side sets a timer in preparation for packet loss. Upon receiving this data packet, the receiving side sends back an acknowledgment (ACK = 21) including information that the packet before the sequence number 21 has been received to the transmitting side. Similarly, data corresponding to the sequence numbers 21 to 34 and 35 to 38 is transmitted, and a reception confirmation is returned. Here, if the data corresponding to the sequence numbers 39 to 48 is lost during transmission, the data after the sequence number 39 is retransmitted when the timer set at the time of the transmission times out.

【0005】[0005]

【発明が解決しようとする課題】かかる従来の方法にお
いては、次のような問題がある。
However, such a conventional method has the following problems.

【0006】すなわち、TCPにおいては送信要求時に
上位層から渡されたデータを必ず一度コピーする必要が
あり、動画転送などの高速通信を行う際にはかなり大き
なオーバヘッドとなる。そこで、この送出時コピーを避
け、かつ信頼性のある通信を行おうとする場合、上位層
から渡されたデータバッファをそのままパケット紛失時
の再送に備えて保持する必要がある。このデータバッフ
ァはACKにより全てのデータが正しく受信されたこと
が確認できるまでトランスポート層中に保持する必要が
ある。この場合、TCPのようにパケット毎にACKが
返ってもトランスポート層内の送信用バッファを解放す
ることはできず、送信要求時に渡されたデータが全て正
しく受信されたことを確認できた時点ではじめて送信用
バッファが不要になる。つまり、TCPのようなパケッ
トごとのACKは無駄になる。
That is, in TCP, it is necessary to copy data passed from an upper layer at the time of a transmission request without fail, which causes a considerable overhead when performing high-speed communication such as moving image transfer. Therefore, in order to avoid the copying at the time of transmission and perform reliable communication, it is necessary to hold the data buffer passed from the upper layer as it is in preparation for retransmission when a packet is lost. This data buffer needs to be held in the transport layer until ACK confirms that all data has been received correctly. In this case, the transmission buffer in the transport layer cannot be released even if ACK is returned for each packet as in TCP, and it is confirmed that all the data passed at the time of the transmission request has been correctly received. Therefore, the transmission buffer becomes unnecessary. That is, ACK for each packet such as TCP is wasted.

【0007】また、送出時コピーをせずに非同期送信を
行う場合、TCPのようなストリームベースのやり方で
はバイトストリーム中でどこまでのバイトを全て正しく
受け取ったかを示す位置よりも前に行われた送信要求は
成功し、終了するが、その位置よりも後に行われた送信
要求でその要求時に渡されたデータに関しては正しく受
信されていてもその送信要求を終了させることができな
い。非同期受信の際にも同様に、ある受信要求に関して
そのデータは全て正しく受信されたにもかかわらず終了
させることができないといったことが起こりうる。図3
に非同期送受信時の送受信要求と送受信バイトストリー
ムの関係を示す。図3において送信要求は図4において
コンピュータ400を送信側コンピュータ、コンピュー
タ460を受信側コンピュータとした場合に中位プロト
コルモジュール404がアプリケーション又は上位プロ
トコルモジュール402から受け取る各送信要求に相当
し、受信要求は受信側中位プロトコルモジュール464
がアプリケーション又は上位プロトコルモジュール46
2から受け取る各受信要求に相当する。また、送信バイ
トストリームは中位プロトコルモジュール404が下位
プロトコルモジュール406に対してデータを送信する
場合に送信バイト空間上で送信データが占めるバイト位
置を示し、受信バイトストリームは中位プロトコルモジ
ュール464が下位プロトコルモジュール466からデ
ータを受信する場合に受信バイト空間上で受信データが
占めるバイト位置を示す。図3においてバイトストリー
ム上で320、324に相当する部分は送受信が完了し
ているものとすると送受信要求#6、#7は終了させる
ことができる。ここでバイトストリーム上で326に相
当する部分が受信されていないとすると、TCPの場
合、それよりも後の328に相当する部分が受信されて
いてもその部分に対応する送受信要求を終了させること
はできない。
[0007] When asynchronous transmission is performed without copying at the time of transmission, a stream-based method such as TCP uses a transmission performed prior to a position indicating how many bytes have been correctly received in a byte stream. The request succeeds and terminates, but the transmission request made after that location cannot terminate the transmission request even though the data passed at the time of the request was correctly received. Similarly, at the time of asynchronous reception, it is possible that a certain reception request cannot be terminated although all the data has been correctly received. FIG.
Shows the relationship between the send / receive request and the send / receive byte stream during asynchronous send / receive. In FIG. 3, the transmission request corresponds to each transmission request received by the middle-level protocol module 404 from the application or the upper-level protocol module 402 when the computer 400 is a transmitting computer and the computer 460 is a receiving computer in FIG. Receiver middle protocol module 464
Is the application or higher-level protocol module 46
2 respectively. The transmission byte stream indicates the byte position occupied by the transmission data in the transmission byte space when the middle protocol module 404 transmits data to the lower protocol module 406. When receiving data from the protocol module 466, it indicates the byte position occupied by the received data in the received byte space. In FIG. 3, it is assumed that transmission / reception has been completed for the portions corresponding to 320 and 324 on the byte stream, and transmission / reception requests # 6 and # 7 can be terminated. Here, assuming that a portion corresponding to 326 is not received on the byte stream, in the case of TCP, even if a portion corresponding to 328 later is received, the transmission / reception request corresponding to the portion is terminated. Can not.

【0008】また、TCPにおいては受信要求が来るま
で受け取ったデータをTCP内のバッファに保持する必
要があるが、動画転送などの高速通信を行う際にはこの
受信データを保持するためにかなり大きなバッファが必
要となる。
Further, in TCP, it is necessary to hold received data in a buffer in the TCP until a reception request is received. However, when performing high-speed communication such as moving image transfer, the received data is considerably large in order to hold the received data. Requires a buffer.

【0009】また、TCPのようなストリーム型のプロ
トコルではバイト単位で送受信データの位置を合わせる
ため、1バイトでも送受信位置がずれることは許され
ず、20バイトの送信要求に対して最初の5バイトのみ
を受信したいとか、10バイト〜30バイトまでのいず
れの値を取るか分からない送信要求に対して30バイト
の受信要求で受信を行う、などといった送信要求の長さ
と受信要求の長さの異なる場合には対応できない。
In a stream-type protocol such as TCP, the position of transmission / reception data is adjusted in byte units. Therefore, the transmission / reception position is not allowed to shift even by one byte. When the length of the transmission request is different from the length of the reception request, such as receiving the transmission request or receiving the transmission request with a 30-byte reception request for a transmission request whose value is unknown from 10 bytes to 30 bytes Can not respond.

【0010】また、送信側でコピーせずに同期送信を行
う場合には、送信要求中のすべてのデータを送り終わっ
てからACKが返ってくるまでの間、次のデータを送る
ことができない。
[0010] Further, when synchronous transmission is performed without copying on the transmission side, the next data cannot be transmitted from when transmission of all data in the transmission request is completed until ACK is returned.

【0011】このように従来の方法では、動画転送など
の高速通信を行う場合に高速かつCPU使用率の低い効
率的な通信ができないという問題と、送受信間でバイト
位置をきちんと合わせる必要があるという問題があっ
た。
As described above, according to the conventional method, when performing high-speed communication such as moving image transfer, efficient communication with high speed and low CPU utilization cannot be performed, and it is necessary to exactly match byte positions between transmission and reception. There was a problem.

【0012】本発明の目的は、動画転送などの高速通信
においても高速かつCPU使用率の低い効率的なデータ
の送受信を可能にする通信方法を提供することにある。
An object of the present invention is to provide a communication method which enables high-speed and efficient data transmission / reception with a low CPU usage rate even in high-speed communication such as moving image transfer.

【0013】本発明の他の目的は、要求データ長の異な
る送信要求と受信要求のペア間での通信方法を提供する
ことにある。
Another object of the present invention is to provide a communication method between a pair of a transmission request and a reception request having different request data lengths.

【0014】[0014]

【課題を解決するための手段】本発明は、送信端末と受
信端末との間で論理コネクションを張り、上記送信端末
では上記論理コネクションに対し送信要求を発行し、上
記受信端末では上記論理コネクションに対し受信要求を
発行することによりネットワークを介してデータ転送を
行う通信システムにおける通信方法に関するものであ
る。
According to the present invention, a logical connection is established between a transmitting terminal and a receiving terminal, the transmitting terminal issues a transmission request for the logical connection, and the receiving terminal issues a logical connection to the logical connection. The present invention relates to a communication method in a communication system for performing data transfer via a network by issuing a reception request.

【0015】本通信方法においては、受信要求と送信要
求を対応付けるために識別子を上記受信要求及び上記送
信要求に付加する。
In this communication method, an identifier is added to the reception request and the transmission request in order to associate the reception request with the transmission request.

【0016】ここで、本通信方法においては、受信要求
と対応する送信要求と同じ識別子を上記受信要求に付加
する。つまり、送信要求と対応する受信要求と同じ識別
子を上記送信要求に付加する。
Here, in the present communication method, the same identifier as the transmission request corresponding to the reception request is added to the reception request. That is, the same identifier as the reception request corresponding to the transmission request is added to the transmission request.

【0017】このようにすることで、論理コネクション
の送信端末側と受信端末側で同じ識別子を持つ送信要求
と受信要求がペアとなり、このペア間でデータのやり取
りを行う。
By doing so, a transmission request and a reception request having the same identifier are paired on the transmitting terminal side and the receiving terminal side of the logical connection, and data is exchanged between the pair.

【0018】この識別子としては、例えば、論理コネク
ションを張る際にコネクションの両端で同じ値に初期化
され、各送信要求時、受信要求時毎にインクリメントさ
れ、これらの要求番号が「コネクションの両端で同じ値
を取る上限値」を超えた場合には0に戻される整数値を
想定できる。以下、この整数値のことを要求番号と呼
び、識別子としてこのような整数値をとる場合について
述べる。
For example, this identifier is initialized to the same value at both ends of a connection when a logical connection is established, and is incremented for each transmission request and each reception request. If the value exceeds the “upper limit value that takes the same value”, an integer value returned to 0 can be assumed. Hereinafter, this integer value is called a request number, and a case where such an integer value is used as an identifier will be described.

【0019】これらの要求番号は各送信要求時、受信要
求時に更新される前、及び、更新された後のいずれかの
時点で各送信要求、受信要求に与えられる。送受信はコ
ネクションの両端で送信要求番号と受信要求番号が等し
い要求の間で行われる。送信側では送信要求により渡さ
れたデータが最大転送長(MTU)ごとに分割されて送
信される。受信側では各受信要求ごとにどの部分が受信
されたかを示すデータ構造を持ち、このデータ構造を用
いて同じ要求番号を持つペアー間でのデータ受信の終了
を判断し、受信終了時にACKを送り返す。送信側でコ
ピーを行わない場合には、各分割単位ごとにACKを送
り返しても送信側のバッファを開放できず、無駄となる
が、このように、各要求を単位としてACKを送り返せ
ば、このような無駄なACKを避けることができる。ま
た、非同期送受信の際には要求が行われた順番に関係な
く送受信を終えた要求は即座に終了させることができ
る。このような特徴により、本通信方法では高速かつC
PU使用率の低い効率的なデータ転送が可能となる。
These request numbers are given to each transmission request and reception request either at the time of each transmission request, before being updated at the time of reception request, or at any time after being updated. Transmission and reception are performed between requests having the same transmission request number and reception request number at both ends of the connection. On the transmission side, the data passed by the transmission request is divided for each maximum transfer length (MTU) and transmitted. The receiving side has a data structure indicating which part has been received for each reception request, determines the end of data reception between pairs having the same request number using this data structure, and sends back an ACK at the end of reception. . If copying is not performed on the transmission side, the buffer on the transmission side cannot be released even if ACK is sent back for each division unit, which is wasteful. Such useless ACK can be avoided. In the case of asynchronous transmission / reception, a request for which transmission / reception has been completed can be immediately terminated regardless of the order in which the requests were made. Due to such features, the present communication method has high speed and C
Efficient data transfer with low PU usage rate is possible.

【0020】また、受信要求により受信バッファが渡さ
れる前に対応する送信要求によるデータが到着した場
合、そのデータは捨てられるが、受信側が持つ何番目の
送信要求まで到着したかを示すデータ構造にこの送信要
求番号がセットされる。後でその受信要求が実際に行わ
れた時にはこのデータ構造により既に対応する送信要求
が行われていることがわかるため、送信側に対して再送
要求(NACK)を返送することで即座にデータの再送
を行う。このように、受信要求される前に対応する送信
要求データが到着した場合、そのデータを保持せずに、
後に実際に受信要求が行われたときに再送してもらうこ
とで動画転送などの高速通信においてもトランスポート
層内部に大きなバッファを持つ必要を無くすことができ
る。
If data corresponding to the transmission request arrives before the reception buffer is passed by the reception request, the data is discarded, but a data structure indicating the number of transmission requests of the receiving side has been reached. This transmission request number is set. Later, when the reception request is actually made, it is known from the data structure that the corresponding transmission request has already been made. Therefore, by returning a retransmission request (NACK) to the transmission side, the data is immediately transmitted. Retransmit. In this way, when the corresponding transmission request data arrives before the reception request is made, without holding the data,
By requiring retransmission when a reception request is actually made later, it is possible to eliminate the need to have a large buffer inside the transport layer even in high-speed communication such as moving image transfer.

【0021】さらに、送信パケット中にリクエスト中の
最後のパケットであることを示すフィールドを設け、送
信要求の要求データ長が対応する受信要求の要求データ
長よりも小さい場合にはこのフィールドを用いて送信要
求データの終りを受信側に知らせ、送信要求の要求デー
タ長分のデータについては信頼性のある通信を行う。ま
た、送信要求の要求データ長が対応する受信要求の要求
データ長よりも大きい場合には受信要求データ長分のデ
ータについては信頼性のある通信を行う。この場合、A
CK中に実際に受信されたデータ長を入れるフィールド
を設け、そのフィールドにより送信側も実際に送られた
データ長を知ることができる。このように、対応する送
信要求、受信要求間では送信要求長、受信要求長の異な
る場合にも小さい方の要求長に相当するデータ分に関し
ては信頼性のある通信が行われるため、20バイトの送
信要求に対して最初の5バイトのみを受信することや、
10バイト〜30バイトまでのいずれの値を取るか分か
らない送信要求に対して30バイトの受信要求で受信を
行うことなども可能となる。
Further, a field indicating the last packet in the request is provided in the transmission packet. If the request data length of the transmission request is smaller than the request data length of the corresponding reception request, this field is used. The receiving side is notified of the end of the transmission request data, and reliable communication is performed for data corresponding to the requested data length of the transmission request. If the request data length of the transmission request is larger than the request data length of the corresponding reception request, reliable communication is performed for the data corresponding to the reception request data length. In this case, A
A field for storing the actually received data length is provided in the CK, and the transmission side can also know the actually transmitted data length from the field. As described above, even when the transmission request length and the reception request length are different between the corresponding transmission request and reception request, reliable communication is performed for the data corresponding to the smaller request length. Receiving only the first five bytes for a transmission request,
For example, it is possible to perform reception using a 30-byte reception request for a transmission request that does not know which value from 10 bytes to 30 bytes takes.

【0022】また、同期送受信の場合には送信要求中の
送信バッファ中の後半部分のデータを送信端末上のバッ
ファにコピーして保持する。送信パケット中に仮ACK
要求を行うことを示すフィールドを設け、コピーしない
部分の最後のパケットを送出する際にこのフィールドを
セットする。受信側では仮ACK要求を行うことを示す
フィールドがセットされたパケットを受信した際にその
パケット以前のすべてのパケットを既に受信していれば
仮ACKを返送する。送信側ではこの仮ACK受信時に
論理コネクションに対する次の送信要求を行うことがで
きる。さらに、ACK受信時に上記送信端末上のコピー
データ保持用バッファを開放する。
In the case of synchronous transmission / reception, the latter half of the data in the transmission buffer during the transmission request is copied and held in a buffer on the transmission terminal. Temporary ACK in transmitted packet
A field indicating that a request is made is provided, and this field is set when the last packet of the portion not to be copied is transmitted. On the receiving side, when a packet in which a field indicating that a temporary ACK request is to be made is received, if all packets before that packet have already been received, a temporary ACK is returned. The transmitting side can make the next transmission request for the logical connection at the time of receiving the temporary ACK. Further, upon receiving the ACK, the copy data holding buffer on the transmitting terminal is released.

【0023】このように、同期送受信の場合には送信要
求中の送信バッファ中の後半部分のデータを送信端末上
のバッファにコピーして保持することでACKを待つこ
と無く次々と送信要求を発行できる。また、このコピー
部分の大きさはパケットのラウンドトリップ時間に相当
する大きさよりも大きくしてもACK待ち時間の削減に
は効果が無い。そこで、上記ラウンドトリップ時間に相
当する大きさをコピー部分の大きさとすると、この大き
さは送信要求中の送信バッファサイズに依存しない値と
なるため、送信バッファサイズを十分`大きくとればコ
ピー部分の比率を低く抑えることができる。従って、本
通信方法により、高速かつCPU使用率の低い効率の良
いデータ転送が可能となる。
As described above, in the case of synchronous transmission / reception, the transmission request is issued one after another without waiting for ACK by copying and holding the latter half of the data in the transmission buffer in the transmission request in the buffer on the transmission terminal. it can. Even if the size of the copy portion is larger than the size corresponding to the round trip time of the packet, there is no effect on the reduction of the ACK waiting time. Therefore, if the size corresponding to the round trip time is the size of the copy portion, this size is a value that does not depend on the size of the transmission buffer during the transmission request. The ratio can be kept low. Therefore, this communication method enables efficient data transfer at high speed and with a low CPU usage rate.

【0024】また、この場合にも仮ACK中に受信要求
中で指定されたデータ長を入れることで、対応する送信
要求、受信要求間で送信要求長、受信要求長の異なる場
合にも小さいほうの要求長分に関しては信頼性のある通
信を行うことができる。
Also in this case, by inserting the data length specified in the reception request into the provisional ACK, the smaller the transmission request length and the reception request length between the corresponding transmission request and reception request, the smaller is. With respect to the required length, reliable communication can be performed.

【0025】[0025]

【発明の実施の形態】以下、本発明の実施の形態を詳細
に説明する。
Embodiments of the present invention will be described below in detail.

【0026】まず、第1の実施の形態を示す。第1の実
施の形態の目的は送信側でコピーを行わない場合に高速
かつCPU使用率の低い効率的なデータの送受信を可能
にすること、及び、要求データ長の異なる送信要求と受
信要求のペア間での通信方法を提供することにある。
First, a first embodiment will be described. An object of the first embodiment is to enable high-speed and efficient data transmission / reception with a low CPU usage rate when copying is not performed on the transmission side, and to perform transmission and reception requests of different request data lengths. An object of the present invention is to provide a communication method between a pair.

【0027】図1は、第1の実施の形態の処理手順を示
すフローチャートであり、図4は、本発明に係るシステ
ム構成、及び、プロトコルモジュール階層を示すブロッ
ク図である。図8は図4の中位プロトコルモジュールの
ブロック図であり、図5、図6、図7はそれぞれ中位プ
ロトコルモジュールにおける送受信要求を格納するデー
タ構造、データパケットフォーマット、受信確認パケッ
トフォーマットを示す。
FIG. 1 is a flowchart showing a processing procedure of the first embodiment, and FIG. 4 is a block diagram showing a system configuration and a protocol module hierarchy according to the present invention. FIG. 8 is a block diagram of the middle-level protocol module of FIG. 4. FIGS. 5, 6, and 7 show a data structure for storing transmission / reception requests in the middle-level protocol module, a data packet format, and a reception confirmation packet format, respectively.

【0028】図4において、コンピュータ400、46
0はネットワーク430を介して接続されている。ここ
でネットワーク430はATMスイッチ、ルータなどの
接続装置も含む。
In FIG. 4, computers 400, 46
0 is connected via the network 430. Here, the network 430 also includes connection devices such as ATM switches and routers.

【0029】コンピュータ400、460はディスプレ
イ418、478、キーボード416、476、CPU
414,474、磁気ディスク412、472、ネット
ワークカード408、468、主メモリ410,470
から構成される。ディスプレイ418、478、キーボ
ード416、476、磁気ディスク412、472、ネ
ットワークカード408、468、主メモリ410,4
70はCPU414,474よりバスを介してアクセス
される。主メモリ410、470には下位プロトコルモ
ジュール406、466、中位プロトコルモジュール4
04、464、アプリケーション又は上位プロトコルモ
ジュール402、462がロードされ、ワークエリア4
07、467が確保される。
The computers 400 and 460 have displays 418 and 478, keyboards 416 and 476, and a CPU.
414, 474, magnetic disks 412, 472, network cards 408, 468, main memories 410, 470
Consists of Displays 418, 478, keyboards 416, 476, magnetic disks 412, 472, network cards 408, 468, main memories 410, 4
Reference numeral 70 is accessed by the CPUs 414 and 474 via the bus. The main memories 410 and 470 have lower-order protocol modules 406 and 466 and a middle-order protocol module 4
04, 464, the application or the upper protocol module 402, 462 is loaded, and the work area 4
07 and 467 are secured.

【0030】ネットワークインタフェースカード40
8、468はATMカードのようなネットワークインタ
フェース用のハードウェアに相当する。ただし、ネット
ワークインタフェースカード408、468に相当する
機能の一部もしくは全部はコンピュータ400、460
中ではなく、コンピュータ400、460に付属する装
置としてネットワーク430中におかれるような構成を
取ることも可能である。また、ネットワークインタフェ
ースカード408、468中で下位プロトコルモジュー
ル406,466、及び、中位プロトコルモジュール4
04,464に相当する機能の一部をハードウェアとし
て実現する場合もある。
Network interface card 40
Reference numerals 8 and 468 correspond to hardware for a network interface such as an ATM card. However, some or all of the functions corresponding to the network interface cards 408 and 468 are provided by the computers 400 and 460.
Instead, it is also possible to adopt a configuration in which the device is attached to the computers 400 and 460 in the network 430. Also, the lower-level protocol modules 406 and 466 and the middle-level protocol module 4 in the network interface cards 408 and 468
In some cases, some of the functions corresponding to the functions 04 and 464 are realized as hardware.

【0031】下位プロトコルモジュール406、466
はOSI参照モデルで規定されるプロトコル階層におい
て主に物理層、データリンク層、ネットワーク層に相当
するプロトコルモジュールであり、2つのコンピュータ
間でのデータ伝送を行うための機能を提供する。中位プ
ロトコルモジュール404、464は下位プロトコルモ
ジュール406、466に対して受信側のコンピュータ
の識別子(IPアドレス、MACアドレス等)又はAT
Mのようにコネクションが張られる場合にはその識別子
(VPI/VCI番号等)を指定することでデータの宛
先等を指定し、さらに送受信用バッファ、バッファ長な
どを指定することで送受信されるデータの格納場所を指
定する。
Lower protocol modules 406, 466
Is a protocol module mainly corresponding to a physical layer, a data link layer, and a network layer in a protocol layer defined by the OSI reference model, and provides a function for performing data transmission between two computers. The middle-level protocol modules 404 and 464 provide the lower-level protocol modules 406 and 466 with the identifier (IP address, MAC address, etc.) of the receiving computer or AT
When a connection is established as in M, data transmitted / received by specifying its identifier (VPI / VCI number, etc.) to specify the destination of the data, and further specifying the transmission / reception buffer, buffer length, etc. Specify the storage location of.

【0032】中位プロトコルモジュール404、464
はOSI参照モデルで規定されるプロトコル階層におい
て主にトランスポート層、ネットワーク層に相当するプ
ロトコルモジュールであり、下位プロトコルモジュール
406、466の機能を利用して2つのコンピュータ上
のアプリケーション等のソフトウェアモジュール間の通
信を行うための機能を提供する。アプリケーション又は
上位プロトコルモジュール402、462は中位プロト
コルモジュール404、464に対して受信側のコンピ
ュータの識別子及び受信側のコンピュータ上での受信相
手を識別するための識別子(TCPやUDPのポート番
号等)、または、これらの識別子からコネクションを張
る際などに得られるコネクション識別子を指定すること
で論理コネクションの接続、データの宛先の指定等を行
い、さらに送受信用バッファ、バッファ長などを指定す
ることで送受信されるデータの格納場所を指定する。
The middle level protocol modules 404, 464
Is a protocol module mainly corresponding to a transport layer and a network layer in a protocol layer defined by the OSI reference model, and uses functions of lower-order protocol modules 406 and 466 to communicate between software modules such as applications on two computers. Provides a function for performing communication of The application or the upper protocol modules 402 and 462 provide the middle protocol modules 404 and 464 with the identifier of the receiving computer and the identifier for identifying the receiving party on the receiving computer (such as the port number of TCP or UDP). Or, by specifying a connection identifier obtained when establishing a connection from these identifiers, the connection of the logical connection, the specification of the data destination, etc., and the transmission / reception by specifying the transmission / reception buffer, buffer length, etc. Specify the storage location of the data to be copied.

【0033】アプリケーション又は上位プロトコルモジ
ュール402、462は中位プロトコルモジュール40
4、464の上位に位置するモジュールである。
The application or higher-level protocol module 402, 462 includes the middle-level protocol module 40
4 and 464.

【0034】ワークエリア407、467はモジュール
間でのデータのやりとりの際に使用されるメモリ領域で
ある。
The work areas 407 and 467 are memory areas used when exchanging data between modules.

【0035】図5において、コネクションデータ構造5
00は中位プロトコルモジュール404、464中に存
在する。コネクションデータ構造500は論理コネクシ
ョンを張る際に各コネクションごとに割り当てられるデ
ータ構造であり、送信キュー502はアプリケーション
又は上位プロトコルモジュール402、462からの送
信要求の際に使用されるデータ構造を格納するためのキ
ュー、受信キュー504はアプリケーション又は上位プ
ロトコルモジュール402、462からの受信要求の際
に使用されるデータ構造を格納するためのキューであ
る。また、送信要求データ構造は送信要求番号、送信要
求データ長、送信要求用バッファなどからなり、受信要
求データ構造は受信要求番号、受信要求データ長、受信
要求用バッファ、受信要求用バッファ中で実際に受信し
たデータ部分を示すリストなどからなる。送信キュー5
02中の送信要求の内、Ack待ちの送信要求は既に送
信を終え、確認応答待ち状態の送信要求であり、送信中
の送信要求は現在送信中の送信要求を示す。また、送信
待ちの送信要求はまだ送信されずに送信待ち状態にある
送信要求を示す。受信キュー504中の受信要求は全
て、受信要求されたがまだ受信を完了していない受信要
求を示す。
In FIG. 5, connection data structure 5
00 resides in the middle protocol modules 404,464. The connection data structure 500 is a data structure assigned to each connection when establishing a logical connection. The transmission queue 502 stores a data structure used when a transmission request is issued from an application or the upper protocol modules 402 and 462. And a reception queue 504 are queues for storing a data structure used at the time of a reception request from the application or the upper protocol modules 402 and 462. The transmission request data structure includes a transmission request number, a transmission request data length, a transmission request buffer, and the like, and the reception request data structure includes a reception request number, a reception request data length, a reception request buffer, and an actual reception request buffer. And a list indicating the received data portion. Send queue 5
Among the transmission requests in 02, the transmission request waiting for Ack has already been transmitted and is a transmission request in an acknowledgment response state, and the transmission request being transmitted indicates the transmission request currently being transmitted. A transmission request waiting for transmission indicates a transmission request that has not been transmitted yet and is in a transmission waiting state. All the reception requests in the reception queue 504 indicate reception requests that have been received but have not yet been received.

【0036】図6は図4の中位プロトコルモジュール4
04、464間で受け渡されるデータパケットのフォー
マットを示す。コネクション識別子600は中位プロト
コルモジュール404、464においてコネクションを
張る際に各コネクションを識別するために割り当てられ
る識別子であり、要求番号602はこのデータパケット
がどの送信要求データ構造に属するかを示す。オフセッ
ト604はこのデータパケットが属する送信要求中のど
の位置からのデータを含んでいるかを示す。オフセット
604はバイト単位で指定してもよいが、最大転送長
(MTU)がコネクションの両端で予め合意されている
場合には送信要求はMTU単位に分割されるため送信要
求中で何個目の分割単位(UNIT)かを示すUNIT
単位での番号を指定してもよい。パケット長606はこ
のパケットのバイト単位の長さを示す。Last Pa
cket Flagはこのデータパケットが送信要求の
最後のデータを含むパケットである場合にセットされる
フラグであり、受信側はこのフラグがセットされたパケ
ットを受信した際に送信要求の長さを知ることができ、
送信要求長の方が要求長よりも短い場合には送信要求長
分のデータを受け取った際にACKを返し受信要求を終
了する。
FIG. 6 shows the middle-level protocol module 4 in FIG.
4 shows a format of a data packet passed between the data packets 04 and 464. The connection identifier 600 is an identifier assigned to identify each connection when establishing a connection in the middle-level protocol modules 404 and 464, and the request number 602 indicates which transmission request data structure this data packet belongs to. The offset 604 indicates from which position in the transmission request to which the data packet belongs data is included. The offset 604 may be specified in byte units, but if the maximum transfer length (MTU) is agreed in advance at both ends of the connection, the transmission request is divided into MTU units, so UNIT indicating whether it is a division unit (UNIT)
A unit number may be specified. The packet length 606 indicates the length of this packet in bytes. Last Pa
The ticket Flag is a flag that is set when this data packet is a packet including the last data of the transmission request. The receiving side knows the length of the transmission request when receiving the packet with this flag set. Can be
If the transmission request length is shorter than the request length, ACK is returned when the data for the transmission request length is received, and the reception request ends.

【0037】図6のデータパケットフォーマットの具体
例を次に示す。コネクション識別子600はTCPやU
DPにおけるポート番号と同様に、60番などといった
番号を割り振る。要求番号602は送信要求が発行され
た際に割り当てられる各要求に固有の番号であり、16
ビットなら0〜65535までの間の適当な値を取る。
例えば、8などといった値が割り当てられる。オフセッ
ト604はUNIT単位での番号で示す場合、3UNI
T目などといったように、各分割単位に対して0から順
番にUNIT番号が振られていく。パケット長606は
512バイトなどといった値で指定される。Last
Packet Flagは通常0か1のどちらかの値を
取る。
A specific example of the data packet format shown in FIG. 6 is shown below. The connection identifier 600 is TCP or U
Similarly to the port number in the DP, a number such as 60 is assigned. The request number 602 is a unique number assigned to each request when a transmission request is issued, and is 16
If it is a bit, an appropriate value between 0 and 65535 is taken.
For example, a value such as 8 is assigned. When the offset 604 is indicated by a number in UNIT units, 3UNI
UNIT numbers are assigned to each division unit in order from 0, such as at the T-th. The packet length 606 is specified by a value such as 512 bytes. Last
Packet Flag usually takes a value of either 0 or 1.

【0038】図7は図4の中位プロトコルモジュール4
04、464間で受け渡される受信確認パケットのフォ
ーマットを示す。コネクション識別子700は中位プロ
トコルモジュール404、464においてコネクション
を張る際に各コネクションごとに割り当てられるデータ
構造であり、要求番号702はこの受信確認パケットが
どの送信要求に対する確認応答(ACK)であるかを示
す。受信長704は受信要求が実際に受信したデータ長
を示す。受信長704により送信側は受信要求長が送信
要求長よりも短い場合にも実際に送信されたデータ長を
送信要求終了時にアプリケーション又は上位プロトコル
モジュール402、462に知らせることができる。
FIG. 7 shows the middle-level protocol module 4 in FIG.
4 shows the format of the acknowledgment packet passed between 04 and 464. The connection identifier 700 is a data structure assigned to each connection when establishing a connection in the middle-level protocol modules 404 and 464, and the request number 702 indicates which transmission request this reception confirmation packet is an acknowledgment (ACK) for this transmission request. Show. The reception length 704 indicates the data length actually received by the reception request. The reception side 704 allows the transmission side to notify the application or the upper protocol modules 402 and 462 of the actually transmitted data length at the end of the transmission request even when the reception request length is shorter than the transmission request length.

【0039】図7の受信確認パケットフォーマットの具
体例を次に示す。コネクション識別子700はTCPや
UDPにおけるポート番号と同様に、60番などといっ
た番号を割り振る。要求番号702はこの受信確認パケ
ットにより受信が確認される送信要求、受信要求のペア
の要求番号であり、8などといった値が割り当てられ
る。受信長704は受信要求が実際に受信したデータ長
であり、3584バイトなどといった値で指定される。
A specific example of the format of the acknowledgment packet shown in FIG. 7 is shown below. The connection identifier 700 is assigned a number such as No. 60 in the same manner as a port number in TCP or UDP. The request number 702 is a request number of a pair of a transmission request and a reception request whose reception is confirmed by the reception confirmation packet, and is assigned a value such as 8 or the like. The reception length 704 is the data length actually received by the reception request, and is specified by a value such as 3584 bytes.

【0040】次に、図1のフローチャートに基いて図
4、図5、図6、図7の各部の動作を説明する。
Next, the operation of each unit in FIGS. 4, 5, 6, and 7 will be described with reference to the flowchart of FIG.

【0041】まず、アプリケーション又は上位プロトコ
ルモジュール402、462が送信要求又は受信要求を
中位プロトコルモジュール404、464に対して行う
(ステップ100)と、送信要求の場合は送信要求デー
タ構造を作成(ステップ104)し、送信キュー502
に送信要求データ構造が挿入(ステップ106)され、
受信要求の場合は受信要求データ構造を作成(ステップ
130)し、受信キュー504に受信要求データ構造が
挿入(ステップ132)される。
First, when the application or the upper protocol modules 402 and 462 make a transmission request or a reception request to the middle protocol modules 404 and 464 (step 100), in the case of a transmission request, a transmission request data structure is created (step 100). 104) and then send queue 502
Is inserted (step 106).
In the case of a reception request, a reception request data structure is created (step 130), and the reception request data structure is inserted into the reception queue 504 (step 132).

【0042】この際に、各送信要求、受信要求に送信要
求番号、受信要求番号が付加される。ただし、送信要求
番号、受信要求番号はコネクションの開設時にコネクシ
ョンの両端で各方向ごとに同じ値に初期化され、各送信
要求、受信要求の度にそれらの要求番号がインクリメン
トされて各要求に与えられる。つまり、コネクション上
の一つのコンピュータ上で一度目に出された受信要求の
受信要求番号はもう一方のコンピュータ上で一度目に出
された送信要求の送信要求番号と同じ値となり、2度
目、3度目にコネクションの両端のコンピュータで出さ
れた送信要求と受信要求に関しても同様に同じ値を取る
ため、コネクション上で対応する送信要求と受信要求の
ペアが決まり、その間でデータのやりとりを行うことに
なる。ここで、要求番号をインクリメントするのは各送
信要求、受信要求の度としたが、各送信要求完了時、受
信要求完了時にインクリメントしてもよい。また、要求
番号を際限なく大きくすることはできないため、その上
限値を設け、要求番号がその上限値を超えた場合には0
に戻すこととする。もちろんこの上限値は送信要求と受
信要求で同じ値を取る必要がある。
At this time, a transmission request number and a reception request number are added to each transmission request and reception request. However, the transmission request number and reception request number are initialized to the same value for each direction at both ends of the connection when the connection is established, and each request number is incremented for each transmission request and reception request and given to each request. Can be That is, the reception request number of the first transmission request issued on one computer on the connection has the same value as the transmission request number of the first transmission request issued on the other computer, and the second and third transmission requests have the same value. The same applies to the transmission request and reception request issued by the computers at both ends of the connection the same time, so the pair of the corresponding transmission request and reception request is determined on the connection, and data is exchanged between them. Become. Here, the request number is incremented for each transmission request and reception request, but may be incremented when each transmission request is completed or when a reception request is completed. In addition, since the request number cannot be increased without limit, an upper limit is set, and when the request number exceeds the upper limit, 0 is set.
Will be returned to Of course, this upper limit must be the same for transmission requests and reception requests.

【0043】送信要求の場合、以前に送信キューに挿入
された送信要求が全て送出を終えるまで待ち(ステップ
108)、以前に送信キューに挿入された送信要求が全
て送出を終えた時点で送出処理が行われ、タイマがセッ
トされる(ステップ110)。送出処理において送信要
求時に渡されたデータは最大転送長(MTU)よりも大
きい場合、複数のパケットに分割して送出される。送信
要求データの送出後、この送信要求に対するNACKパ
ケットを受信した場合(ステップ112)、NACK受
信時の処理(ステップ118)としてNACKパケット
により再送するように要求された送信要求データの一部
を再送する(ステップ114)。また、タイムアウトが
発生した(ステップ116)場合、タイムアウト時の処
理としてACK要求パケットを送信し、タイマの再設定
を行う(ステップ118)。この送信要求に対するAC
Kパケットを受信した場合(ステップ120)、送信キ
ューからこの送信要求を取り出し(ステップ122)、
アプリケーションまたは上位プロトコルモジュール40
2、460に送信要求の完了を通知する。また、この際
に実際に受信側のコンピュータで受け取った受信長も同
時に知らせる。
In the case of a transmission request, the process waits until all transmission requests previously inserted in the transmission queue have completed transmission (step 108). When all transmission requests previously inserted in the transmission queue have completed transmission, transmission processing is performed. Is performed, and a timer is set (step 110). If the data passed at the time of the transmission request in the transmission processing is larger than the maximum transfer length (MTU), the data is divided into a plurality of packets and transmitted. After transmitting the transmission request data, if a NACK packet corresponding to the transmission request is received (step 112), a part of the transmission request data requested to be retransmitted by the NACK packet is retransmitted as a process for receiving the NACK (step 118). (Step 114). If a timeout has occurred (step 116), an ACK request packet is transmitted as a process at the time of timeout, and the timer is reset (step 118). AC for this transmission request
If a K packet has been received (step 120), the transmission request is extracted from the transmission queue (step 122).
Application or upper protocol module 40
2, 460 is notified of the completion of the transmission request. At this time, the reception length actually received by the receiving computer is also notified.

【0044】受信要求の場合、この受信要求に対して既
に送信データが到着しているかどうかチェック(ステッ
プ134)し、既に受け取っていた場合、NACKパケ
ットを送信することで再送を促す(ステップ136)。
受信したデータパケットはパケットヘッダのオフセット
とパケット長に従い受信データ用バッファの適当な位置
にそのデータを受け取る。ネットワーク430としてA
TMのようにネットワーク上でのパケットの追い越しが
無いものを用いる場合、次に来るはずのパケットを予測
でき、予測よりも先のデータを持つパケットが到着した
場合にはそのパケットは失われたものと考えることがで
きるため(ステップ138)、そのような場合にはNA
CKパケットを送信することで失われたと考えられる部
分のデータの再送を要求できる(ステップ140)。デ
ータパケット又はACK要求を受信した際には、対応す
る受信要求が、受信要求長と送信側がLast Pac
ket Flagをセットすることで知らせてきた送信
要求長の小さい方の長さ分のデータを全て受け取ったか
どうかチェックされる(ステップ142、146)。こ
のチェックにより受信要求の完了が確認できた場合、A
CKパケットが送信側に向けて送出され(ステップ15
0)、受信キューからこの受信要求を取り出し(ステッ
プ152)、アプリケーションまたは上位プロトコルモ
ジュール402、462に受信要求の完了を通知する。
また、この際に実際に受信側のコンピュータで受け取っ
た受信長も同時に知らせる。ACK要求を受け取った際
に受信要求が完了していなければ、未到着のデータ部分
を知らせるために送信側に対してNACKが送信され
る。
In the case of a reception request, it is checked whether or not transmission data has already arrived in response to the reception request (step 134). If it has been received, a NACK packet is transmitted to prompt retransmission (step 136). .
The received data packet receives the data at an appropriate position in the received data buffer according to the offset and the packet length of the packet header. A as network 430
If a packet that does not overtake the packet on the network, such as TM, is used, the next expected packet can be predicted. If a packet with data earlier than the prediction arrives, the packet is lost. (Step 138), so in such a case NA
By transmitting the CK packet, it is possible to request retransmission of the data that is considered to be lost (step 140). When a data packet or an ACK request is received, the corresponding reception request indicates that the reception request length and the last
It is checked whether or not all the data corresponding to the smaller of the transmission request length notified by setting the "ket Flag" has been received (steps 142 and 146). If the check confirms the completion of the reception request, A
The CK packet is transmitted to the transmitting side (step 15).
0), fetch the reception request from the reception queue (step 152), and notify the application or the upper protocol modules 402 and 462 of the completion of the reception request.
At this time, the reception length actually received by the receiving computer is also notified. If the reception request is not completed when the ACK request is received, a NACK is transmitted to the transmitting side to notify the unarrived data portion.

【0045】このように受信要求の完了が確認できた場
合のみACKを送出することで、無駄なACKを省いて
いる。
By sending an ACK only when it is confirmed that the reception request has been completed, useless ACK is omitted.

【0046】送信要求または受信要求は送信キューまた
は受信キューから取り出されるとそのデータ構造は解放
される(ステップ154)。
When the transmission request or the reception request is taken out of the transmission queue or the reception queue, the data structure is released (step 154).

【0047】以上説明した処理の流れを、さらに具体例
を用いて説明する。本例では要求番号8を持つ送信要求
と受信要求のペア間でのデータ送受信について処理の流
れを示す。
The flow of the above-described processing will be described using a more specific example. In this example, a flow of processing for data transmission and reception between a pair of a transmission request and a reception request having a request number 8 is shown.

【0048】まず、送信側では3584バイトのデータ
を送信するとする。最大転送長(MTU)を1024バ
イトとすると、送信要求時に渡されたデータは最大転送
長よりも大きいため、4つのパケットに分割して次々と
送出される。図5のデータパケットはこの際に送出され
る4番目のデータパケットを示している。ここで、1番
目、2番目、3番目のデータパケットに関してはパケッ
ト長1024バイト、Last Packet Fla
gは0となる。4番目のデータパケットが最後のパケッ
トとなるため、残りのパケット長である512バイトが
パケット長となり、Last Packet Flag
は1となる。コネクション識別子、要求番号などのフィ
ールドは4つのデータパケットとも全て同じ値を取る。
オフセットは4番目のパケットであるため、3UNIT
分のオフセットが必要となる。
First, it is assumed that the transmission side transmits 3584 bytes of data. Assuming that the maximum transfer length (MTU) is 1024 bytes, the data passed at the time of the transmission request is larger than the maximum transfer length, so that the data is divided into four packets and transmitted one after another. The data packet in FIG. 5 shows the fourth data packet transmitted at this time. Here, the first, second, and third data packets have a packet length of 1024 bytes and a Last Packet Fla.
g becomes 0. Since the fourth data packet is the last packet, the remaining packet length of 512 bytes is the packet length, and the Last Packet Flag
Becomes 1. Fields such as a connection identifier and a request number take the same value in all four data packets.
Since the offset is the fourth packet, 3 UNIT
A minute offset is required.

【0049】次に、受信側でも3584バイトの受信要
求長で受信要求が行われるものとする。送信側から送出
されたデータパケットはデータパケットヘッダ中のコネ
クション識別子60番、コネクション上の要求番号8に
より受信要求を識別し、さらにオフセット、パケット長
により受信要求中の受信データ用バッファの適切な位置
にデータがコピーされる。例えば、図5に示した4番目
のデータパケットはオフセットが3であるため、受信デ
ータ用バッファ上の3072バイト目から512バイト
の位置にコピーされる。全てのデータを受信した際には
受信確認パケットが送信側に向けて送出される。図7の
受信確認パケットはこの際に送信側に向けて送出される
受信確認パケットを示している。受信側では全てのデー
タを受信した時点で、送信側では受信確認パケットを受
信した時点で処理を完了することができる。
Next, it is assumed that the receiving side also issues a receiving request with a receiving request length of 3584 bytes. The data packet transmitted from the transmission side identifies the reception request by the connection identifier 60 in the data packet header and the request number 8 on the connection, and furthermore, the appropriate position of the reception data buffer during the reception request by the offset and the packet length. The data is copied to For example, since the fourth data packet shown in FIG. 5 has an offset of 3, it is copied to the 512-byte position from the 3072th byte on the received data buffer. When all the data has been received, a reception confirmation packet is sent to the transmission side. The reception acknowledgment packet in FIG. 7 indicates a reception acknowledgment packet transmitted toward the transmitting side at this time. The processing can be completed when the receiving side receives all the data, and when the transmitting side receives the acknowledgment packet.

【0050】第1の実施の形態の効果としては、送信要
求と受信要求のペア間で送受信制御を行うことで送信側
でコピーを行う場合の無駄なACKを省くことができ、
また、非同期送受信時には要求順序に関係無く送受信要
求を終わらせることができるため、高速かつCPU使用
率の低い効率的なデータ送受信が可能となる。
As an effect of the first embodiment, by performing transmission / reception control between a pair of a transmission request and a reception request, useless ACK when copying is performed on the transmission side can be omitted.
Further, at the time of asynchronous transmission / reception, transmission / reception requests can be completed irrespective of the request order, so that high-speed and efficient data transmission / reception with a low CPU usage rate can be achieved.

【0051】また、要求データ長の異なる送信要求と受
信要求のペア間では小さい方の要求データ長分に関して
は信頼性のある送受信を保証するため、例えば、予め送
信要求データ長が分かっていない場合には大き目のデー
タ長で受信要求をすることで対応するなどといったこと
も可能となる。
In order to guarantee reliable transmission and reception for the smaller request data length between a pair of transmission request and reception request having different request data lengths, for example, if the transmission request data length is not known in advance. Can be handled by making a reception request with a larger data length.

【0052】次に、第2の実施の形態を示す。第2の実
施の形態の目的は第1の実施の形態の目的に加え、同期
送受信の場合にも高速かつCPU使用率の低い効率的な
データの送受信を可能にすることである。
Next, a second embodiment will be described. An object of the second embodiment is, in addition to the object of the first embodiment, to enable high-speed and efficient data transmission / reception with a low CPU usage rate even in synchronous transmission / reception.

【0053】図9は、第2の実施の形態を示すフローチ
ャートであり、図10は図9中で仮ACKに係る処理の
流れを抽出した送受信処理の流れである。また、図5、
図11、図12はそれぞれ中位プロトコルモジュールに
おける送受信要求を格納するデータ構造、データパケッ
トフォーマット、受信確認パケットフォーマットを示
す。
FIG. 9 is a flow chart showing the second embodiment, and FIG. 10 is a flow chart of the transmission / reception processing in which the processing flow relating to the temporary ACK in FIG. 9 is extracted. Also, FIG.
FIGS. 11 and 12 show a data structure, a data packet format, and a reception confirmation packet format for storing a transmission / reception request in the middle-level protocol module.

【0054】図5は第1の実施例の場合と同様、コネク
ションデータ構造を示す。ただし、同期送受信の場合、
各送受信キュー中にはそれぞれ一つ以下の送信中の送信
要求、データ待ちの受信要求しか同時に存在し得ない。
FIG. 5 shows the connection data structure as in the case of the first embodiment. However, in the case of synchronous transmission and reception,
In each transmission / reception queue, only one or less transmission requests during transmission and reception requests waiting for data can exist at the same time.

【0055】図11は図6のデータパケットのフォーマ
ットに仮ACK要求Flag1150が追加されたもの
である。仮ACK要求Flagはこのデータパケットが
受信側に対して仮ACK要求を行う場合にセットされる
フラグである。具体的な値としては通常0か1のどちら
かの値を取る。
FIG. 11 shows a format in which a temporary ACK request Flag 1150 is added to the format of the data packet shown in FIG. The temporary ACK request Flag is a flag that is set when this data packet makes a temporary ACK request to the receiving side. As a specific value, it usually takes either 0 or 1.

【0056】図12は図4の中位プロトコルモジュール
404、464間で受け渡される仮ACKパケットのフ
ォーマットを示す。コネクション識別子1200は中位
プロトコルモジュール404、464においてコネクシ
ョンを張る際に各コネクションごとに割り当てられるデ
ータ構造であり、要求番号1202はこの仮ACKパケ
ットがどの送信要求に対する仮ACKであるかを示す。
受信要求長1204は受信要求中で指定された受信デー
タ長を示す。受信要求長1204により送信側は受信要
求長が送信要求長よりも短い場合にも実際に送信される
データ長を送信要求終了時にアプリケーション又は上位
プロトコルモジュール402、462に知らせることが
できる。
FIG. 12 shows the format of a temporary ACK packet passed between the middle-level protocol modules 404 and 464 in FIG. The connection identifier 1200 is a data structure assigned to each connection when establishing a connection in the middle-level protocol modules 404 and 464, and the request number 1202 indicates which transmission request this temporary ACK packet is a temporary ACK for.
The reception request length 1204 indicates the reception data length specified in the reception request. The reception request length 1204 allows the transmission side to notify the application or the upper protocol modules 402 and 462 of the actually transmitted data length at the end of the transmission request even when the reception request length is shorter than the transmission request length.

【0057】図12の仮ACKパケットフォーマットの
具体例を次に示す。コネクション識別子1200はTC
PやUDPにおけるポート番号と同様に、60番などと
いった番号を割り振る。要求番号1202はこの仮AC
Kパケットにより送信バッファのコピーされない部分の
受信が確認される送信要求、受信要求のペアの要求番号
であり、8などといった値が割り当てられる。受信要求
長1204は受信要求中で指定された受信データ長であ
り、3584バイトなどといった値で指定される。
A specific example of the temporary ACK packet format shown in FIG. 12 is shown below. Connection identifier 1200 is TC
Like the port numbers in P and UDP, numbers such as 60 are assigned. The request number 1202 is the temporary AC
It is a request number of a pair of a transmission request and a reception request for confirming reception of a portion of the transmission buffer that is not copied by the K packet, and a value such as 8 is assigned. The reception request length 1204 is the reception data length specified in the reception request, and is specified by a value such as 3584 bytes.

【0058】次に、図9のフローチャート、及び、図1
0の処理の流れを示す図に基いて同期送受信の場合の追
加事項の動作を説明する。
Next, the flowchart of FIG. 9 and the flowchart of FIG.
The operation of additional items in the case of synchronous transmission / reception will be described with reference to the diagram showing the flow of processing 0.

【0059】まず、ステップ1020では、送信側でア
プリケーション又は上位プロトコルモジュール402、
462から送信要求1が中位プロトコルモジュール40
4、464に対して発行される。送信要求1中の送信バ
ッファの前半部(コピーされない部分)は最大転送長で
分割され、次々と送り出される。ステップ1022で
は、コピーされない部分の最後のパケットを送出するた
め、図11中の仮ACK要求Flag1150がセット
される。これと同時にステップ1024では、送信バッ
ファの後半部を中位プロトコルモジュール中のバッファ
にコピーし、それ以降の送出はこの中位プロトコルモジ
ュール中のバッファから行う。受信側で仮ACK要求フ
ラグがセットされたパケットを受信した際には、そのパ
ケット以前のすべてのパケットを既に受信しているか検
査し、受信していた場合、ステップ1026に示したよ
うに仮ACKパケットを送信側に返送する。また、この
際に仮ACKパケットの受信要求長1204に受信要求
で指定された受信長を入れる。この処理は図9のフロー
チャートではステップ980、982に相当する。送信
側でこの仮ACKパケットを受信した際にはコピーしな
い部分はすべて受信されていることがわかるため、上位
プロトコルモジュールから渡されたバッファは必要なく
なる。そこで、ステップ1028ではアプリケーション
又は上位プロトコルモジュール404、464に対して
送信終了を通知する。また、この際に仮ACKパケット
中で指定される受信要求長1204が送信要求長よりも
小さい場合、この受信要求長1204を実際に送受信さ
れるデータ長として同時に通知する。この処理は図9の
フローチャートではステップ970、972に相当す
る。ステップ1030では、この時点で、アプリケーシ
ョン又は上位プロトコルモジュール404、464が次
の送信要求2を中位プロトコルモジュール404、46
4に対して発行している。また、ステップ1052で
は、送信側の中位プロトコルモジュール中のバッファを
対応する送信要求に対するACKパケットを受信した際
に解放している。
First, in step 1020, the application or the upper-layer protocol module 402
The transmission request 1 is transmitted from the medium-level protocol module 40
4, 464. The first half (the part that is not copied) of the transmission buffer in the transmission request 1 is divided by the maximum transfer length and sent out one after another. In step 1022, the temporary ACK request Flag 1150 in FIG. 11 is set to transmit the last packet of the part that is not copied. At the same time, in step 1024, the latter half of the transmission buffer is copied to a buffer in the middle-level protocol module, and subsequent transmission is performed from the buffer in the middle-level protocol module. When the receiving side receives a packet in which the temporary ACK request flag is set, it checks whether or not all the packets before that packet have already been received. Returns the packet to the sender. At this time, the reception length specified in the reception request is inserted into the reception request length 1204 of the temporary ACK packet. This processing corresponds to steps 980 and 982 in the flowchart of FIG. When the transmitting side receives this provisional ACK packet, it can be seen that all the portions not copied have been received, so that the buffer passed from the upper level protocol module becomes unnecessary. Therefore, in step 1028, the transmission end is notified to the application or the upper protocol modules 404 and 464. At this time, if the reception request length 1204 specified in the temporary ACK packet is smaller than the transmission request length, the reception request length 1204 is notified simultaneously as the data length to be actually transmitted and received. This processing corresponds to steps 970 and 972 in the flowchart of FIG. In step 1030, at this point, the application or higher-level protocol module 404, 464 sends the next transmission request 2 to the middle-level protocol module 404, 46.
4 In step 1052, the buffer in the middle-level protocol module on the transmitting side is released when the ACK packet for the corresponding transmission request is received.

【0060】このように、同期送受信の場合に送信バッ
ファの後半部分のみをコピーすることでACKを待つこ
となく次の送信要求を行うことができるため、高速かつ
CPU使用率の低い効率的なデータ送受信が可能とな
る。
As described above, in the case of synchronous transmission / reception, by copying only the latter half of the transmission buffer, the next transmission request can be made without waiting for ACK. Transmission and reception are possible.

【0061】以上説明した処理の流れを、さらに具体例
を用いて説明する。本例では要求番号8を持つ送信要求
と受信要求のペア間でのデータ送受信について処理の流
れを示す。
The flow of the above-described processing will be described using a more specific example. In this example, a flow of processing for data transmission and reception between a pair of a transmission request and a reception request having a request number 8 is shown.

【0062】まず、送信側では3584バイトのデータ
を送信するとする。最大転送長(MTU)を1024バ
イトとすると、送信要求時に渡されたデータは最大転送
長よりも大きいため、4つのパケットに分割して次々と
送出される。図11のデータパケットはこの際に送出さ
れる4番目のデータパケットを示している。ここで、1
番目、2番目、3番目のデータパケットに関してはパケ
ット長1024バイト、Last Packet Fl
agは0となる。4番目のデータパケットが最後のパケ
ットとなるため、残りのパケット長である512バイト
がパケット長となり、Last Packet Fla
gは1となる。コネクション識別子、要求番号などのフ
ィールドは4つのデータパケットとも全て同じ値を取
る。オフセットは4番目のパケットであるため、3UN
IT分のオフセットが必要となる。また、1番目、2番
目のデータパケットはコピーされないが、3番目、4番
目に関しては中位プロトコルモジュール中のバッファに
コピーされたデータが送出されるとすると、2番目のデ
ータパケット中の仮Ack要求Flagは1となる。
First, it is assumed that the transmission side transmits 3584 bytes of data. Assuming that the maximum transfer length (MTU) is 1024 bytes, the data passed at the time of the transmission request is larger than the maximum transfer length, so that the data is divided into four packets and transmitted one after another. The data packet in FIG. 11 shows the fourth data packet transmitted at this time. Where 1
For the second, third, and second data packets, the packet length is 1024 bytes, and the last packet Fl
ag becomes 0. Since the fourth data packet is the last packet, the remaining packet length of 512 bytes is the packet length, and the last packet flat
g becomes 1. Fields such as a connection identifier and a request number take the same value in all four data packets. The offset is the fourth packet, so 3UN
An offset for IT is required. Also, if the first and second data packets are not copied, but the third and fourth data packets are sent to the buffer in the middle-level protocol module, the temporary Ack in the second data packet is assumed. The request Flag becomes 1.

【0063】次に、受信側でも3584バイトの受信要
求長で受信要求が行われるものとする。送信側から送出
されたデータパケットはデータパケットヘッダ中のコネ
クション識別子60番、コネクション上の要求番号8に
より受信要求を識別し、さらにオフセット、パケット長
により受信要求中の受信データ用バッファの適切な位置
にデータがコピーされる。例えば、図5に示した4番目
のデータパケットはオフセットが3であるため、受信デ
ータ用バッファ上の3072バイト目から512バイト
の位置にコピーされる。2番目のデータパケットを受信
した際には仮Ack要求Flagが1であるため、0番
目のデータパケットの受信を確認し、送信側に向けて仮
Ackパケットを送出する。図12の仮Ackパケット
はこの際に送信側に向けて送出される仮Ackパケット
を示している。
Next, it is assumed that a receiving request is also made on the receiving side with a receiving request length of 3584 bytes. The data packet transmitted from the transmission side identifies the reception request by the connection identifier 60 in the data packet header and the request number 8 on the connection, and furthermore, the appropriate position of the reception data buffer during the reception request by the offset and the packet length. The data is copied to For example, since the fourth data packet shown in FIG. 5 has an offset of 3, it is copied to the 512-byte position from the 3072th byte on the received data buffer. When the second data packet is received, the provisional Ack request Flag is 1, so that the reception of the 0th data packet is confirmed and the provisional Ack packet is transmitted to the transmitting side. The tentative Ack packet in FIG. 12 indicates a tentative Ack packet transmitted to the transmitting side at this time.

【0064】送信側では受信側から仮Ackパケットを
受信した時点でアプリケーションまたは上位プロトコル
モジュールに対して送信終了を通知する。この時点でア
プリケーションまたは上位プロトコルモジュールは次の
送信要求を発行できる。
When the transmitting side receives the temporary Ack packet from the receiving side, it notifies the application or the upper protocol module of the end of transmission. At this point, the application or the upper protocol module can issue the next transmission request.

【0065】受信側で全てのデータを受信した際には受
信確認パケットが送信側に向けて送出される。受信側で
は全てのデータを受信した時点で処理を完了することが
できる。また、送信側では受信確認パケットを受け取っ
た時点で中位プロトコルモジュール中のバッファを開放
できる。
When all data is received on the receiving side, a reception confirmation packet is sent to the transmitting side. On the receiving side, the processing can be completed when all the data is received. In addition, the transmission side can release the buffer in the middle-level protocol module upon receiving the reception confirmation packet.

【0066】第2の実施の形態の効果としては、同期送
受信の場合に送信バッファの後半部分のみをコピーする
ことでコピーレスの同期送信の場合に避けられないAC
K待ちに伴う待ち時間を減らすことが可能となり、高速
かつCPU使用率の低い効率的なデータ送受信が可能と
なることである。
The effect of the second embodiment is that, in the case of synchronous transmission / reception, only the latter half of the transmission buffer is copied, so that AC which cannot be avoided in the case of copyless synchronous transmission.
The waiting time associated with K waiting can be reduced, and efficient data transmission / reception with high speed and low CPU utilization can be achieved.

【0067】また、第2の実施の形態においても、第1
の実施の形態と同様、要求データ長の異なる送信要求と
受信要求のペア間では小さい方の要求データ長分に関し
ては信頼性のある送受信を保証する。
Also, in the second embodiment, the first
As in the first embodiment, reliable transmission / reception is guaranteed for a smaller request data length between a pair of a transmission request and a reception request having different request data lengths.

【0068】[0068]

【発明の効果】以上述べたように、本発明によれば、送
信要求と受信要求のペア間で送受信制御を行うことで送
信側でコピーを行う場合の無駄なACKを省くことがで
き、また、非同期送受信時には要求順序に関係無く送受
信要求を終わらせることができるため、高速かつCPU
使用率の低い効率的なデータ送受信が可能となる。
As described above, according to the present invention, by performing transmission / reception control between a pair of a transmission request and a reception request, it is possible to eliminate useless ACK when copying is performed on the transmission side. In asynchronous transmission / reception, transmission / reception requests can be completed irrespective of the order of requests.
Efficient data transmission / reception with a low usage rate becomes possible.

【0069】また、要求データ長の異なる送信要求と受
信要求のペア間では小さい方の要求データ長分に関して
は信頼性のある送受信を保証することが可能となる。そ
のため、例えば、予め送信要求データ長が分かっていな
い場合にも想定される最大送信要求データ長で受信要求
をすることで対応することも可能となる。
In addition, it is possible to guarantee reliable transmission and reception for a smaller request data length between a pair of a transmission request and a reception request having different request data lengths. Therefore, for example, even when the transmission request data length is not known in advance, it is possible to cope with the reception request with the assumed maximum transmission request data length.

【0070】また、予め先頭に近い程重要度の大きいデ
ータを配置する送受信要求のフォーマットを定めてお
き、受信側では受信要求長を調整することでどの優先度
までのデータを取得するかを決め、送信側でも送信要求
長を調節することでどの優先度までのデータを送出する
か決めるようにすれば、予め送受信間で送受信されるデ
ータ長を決めなくても、優先度に応じたデータの送受信
が可能となる。これにより、例えば送信側でCPUやネ
ットワークの負荷に応じて送出長を変える、受信側で受
信者の必要に応じて受信長を変えるなどといったことも
可能となり、画像データの送受信やデータベース検索な
どに適用できる。
Also, a format of a transmission / reception request in which data having higher importance is arranged closer to the head is determined in advance, and the reception side determines which priority data is to be acquired by adjusting the reception request length. By adjusting the transmission request length on the transmission side, it is also possible to determine up to which priority the data is to be transmitted, so that the data length according to the priority can be determined without previously determining the data length transmitted and received between the transmission and reception. Transmission and reception are possible. This makes it possible, for example, to change the sending length on the transmitting side according to the load of the CPU or network, and change the receiving length on the receiving side as needed by the receiver. Applicable.

【0071】さらに、同期送受信の場合には送信バッフ
ァの後半部分のみをコピーすることで、コピーレスの同
期送信を行う場合に避けられないACK待ちに伴う待ち
時間を減らすことが可能となり、高速かつCPU使用率
の低い効率的なデータ送受信が可能となる。
Furthermore, in the case of synchronous transmission / reception, by copying only the latter half of the transmission buffer, it is possible to reduce the waiting time associated with ACK waiting which cannot be avoided when performing copyless synchronous transmission. Efficient data transmission / reception with a low CPU usage rate becomes possible.

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

【図1】本発明の第1の実施の形態の処理手順を示すフ
ローチャートである。
FIG. 1 is a flowchart illustrating a processing procedure according to a first embodiment of the present invention.

【図2】従来例(TCP)の送受信時のパケットのやり
取りを示す図である。
FIG. 2 is a diagram showing exchange of packets at the time of transmission and reception in a conventional example (TCP).

【図3】従来例の非同期送受信時の送受信要求とバイト
ストリームの関係を示す図である。
FIG. 3 is a diagram showing a relationship between a transmission / reception request and a byte stream at the time of asynchronous transmission / reception in a conventional example.

【図4】本発明の実施の形態のシステムブロック図であ
る。
FIG. 4 is a system block diagram according to an embodiment of the present invention.

【図5】本発明の実施の形態の送受信要求を格納するデ
ータ構造を示す図である。
FIG. 5 is a diagram illustrating a data structure for storing a transmission / reception request according to the embodiment of this invention.

【図6】本発明の第1の実施の形態のデータパケットフ
ォーマットを示す図である。
FIG. 6 is a diagram showing a data packet format according to the first embodiment of the present invention.

【図7】本発明の実施の形態の確認応答パケットフォー
マットを示す図である。
FIG. 7 is a diagram showing an acknowledgment packet format according to the embodiment of the present invention.

【図8】本発明の実施の形態の中位プロトコルモジュー
ルを示す図である。
FIG. 8 is a diagram illustrating a middle-level protocol module according to the embodiment of this invention.

【図9】本発明の第2の実施の形態の処理手順を示すフ
ローチャートである。
FIG. 9 is a flowchart illustrating a processing procedure according to the second embodiment of this invention.

【図10】本発明の第2の実施の形態の仮ACKに関係
する処理の流れを示す図である。
FIG. 10 is a diagram illustrating a flow of processing related to temporary ACK according to the second embodiment of this invention.

【図11】本発明の第2の実施の形態のデータパケット
フォーマットを示す図である。
FIG. 11 illustrates a data packet format according to the second embodiment of this invention.

【図12】本発明の第2の実施の形態の仮ACKパケッ
トフォーマットを示す図である。
FIG. 12 illustrates a temporary ACK packet format according to the second embodiment of this invention.

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

600…コネクション識別子、 602…送信要求の番号、 604…送信要求中でのオフセット位置、 606…パケットの長さ、 608…送信要求の最後のデータを含むことを示すフラ
グ、 610…データ、 700…コネクション識別子、 702…受信確認を行う要求の要求番号、 704…実際に受信したパケットの長さ、 1100…コネクション識別子、 1102…送信要求の番号、 1104…送信要求中でのオフセット位置、 1106…パケットの長さ、 1108…送信要求の最後のデータを含むことを示すフ
ラグ、 1150…仮ACK要求を行うことを示すフラグ、 1200…コネクション識別子、 1202…仮ACKの対象となる要求の要求番号、 1204…受信要求中に指定されたパケット長。
600: connection identifier, 602: transmission request number, 604: offset position in the transmission request, 606: packet length, 608: flag indicating that the last data of the transmission request is included, 610: data, 700: Connection identifier, 702: Request number of request for confirmation of reception, 704: Length of actually received packet, 1100: Connection identifier, 1102: Number of transmission request, 1104: Offset position in transmission request, 1106: Packet 1108, a flag indicating that the last data of the transmission request is included, 1150, a flag indicating that a temporary ACK request is to be performed, 1200, a connection identifier, 1202, a request number of a request to be subjected to the temporary ACK, 1204 … The packet length specified in the reception request.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 滝安 美弘 神奈川県川崎市幸区鹿島田890番地 株式 会社日立製作所情報・通信開発本部内 ──────────────────────────────────────────────────続 き Continuing from the front page (72) Inventor Yoshihiro Takiyasu 890 Kashimada, Saiwai-ku, Kawasaki-shi, Kanagawa Prefecture Information and Communication Development Division, Hitachi, Ltd.

Claims (15)

【特許請求の範囲】[Claims] 【請求項1】送信端末と受信端末とを備え、上記送信端
末と上記受信端末とを接続するネットワークを備え、送
信端末と受信端末との間で論理コネクションを張り、上
記送信端末では上記論理コネクションに対し送信要求を
発行し、上記受信端末では上記論理コネクションに対し
受信要求を発行することにより上記ネットワークを介し
て上記送信端末から上記受信端末へデータの転送を行う
通信システムにおける通信方法において、 上記受信要求と上記送信要求とを対応付けるための識別
子を上記受信要求及び上記送信要求に付加し、上記受信
要求と上記送信要求とを対応付け、上記送信端末から上
記受信端末へ上記データの転送を行うことを特徴とする
通信方法。
The present invention comprises a transmitting terminal and a receiving terminal, a network for connecting the transmitting terminal and the receiving terminal, and a logical connection is established between the transmitting terminal and the receiving terminal. A communication method in a communication system for transferring data from the transmitting terminal to the receiving terminal through the network by issuing a reception request to the logical connection at the receiving terminal, An identifier for associating a reception request with the transmission request is added to the reception request and the transmission request, the reception request is associated with the transmission request, and the data is transferred from the transmission terminal to the reception terminal. A communication method, comprising:
【請求項2】請求項1において、受信要求と対応する送
信要求と同じ識別子を上記受信要求に付加することを特
徴とする通信方法。
2. The communication method according to claim 1, wherein the same identifier as the transmission request corresponding to the reception request is added to the reception request.
【請求項3】請求項1において、送信要求と対応する受
信要求と同じ識別子を上記送信要求に付加することを特
徴とする通信方法。
3. The communication method according to claim 1, wherein the same identifier as the reception request corresponding to the transmission request is added to the transmission request.
【請求項4】請求項1において、受信側で各受信要求ご
とにどの部分が受信されたかを示すデータ構造を持ち、
このデータ構造を用いて同じ要求番号を持つペアー間で
のデータ受信の終了を判断し、受信終了時に受信確認
(ACK)を送り返すことを特徴とする通信方法。
4. The data processing system according to claim 1, wherein the receiving side has a data structure indicating which part is received for each reception request,
A communication method characterized by using this data structure to determine the end of data reception between pairs having the same request number, and sending back an acknowledgment (ACK) at the end of the reception.
【請求項5】請求項1において、受信要求より前に対応
する送信要求によるデータが到着した場合、そのデータ
を捨て、そのデータが来たことを記憶しておき、後でそ
の受信要求が実際に行われた際に送信側に対して再送要
求(NACK)を返送することで即座にデータの再送を
行うことを特徴とする通信方法。
5. The method according to claim 1, wherein when data corresponding to the transmission request arrives before the reception request, the data is discarded, and the fact that the data has arrived is stored. A retransmission request (NACK) is returned to the transmission side when the transmission is performed, thereby immediately retransmitting the data.
【請求項6】請求項1において、送信パケット中にリク
エスト中の最後のパケットであることを示すフィールド
を設け、送信要求の要求データ長が対応する受信要求の
要求データ長よりも小さい場合にはこのフィールドを用
いて送信要求データの終りを受信側に知らせ、送信要求
の要求データ長分のデータについては信頼性のある通信
を行うことを特徴とする通信方法。
6. A transmission packet according to claim 1, wherein a field indicating the last packet in the request is provided in the transmission packet, and the request data length of the transmission request is smaller than the request data length of the corresponding reception request. A communication method in which the end of transmission request data is notified to a receiving side using this field, and reliable communication is performed for data corresponding to the requested data length of the transmission request.
【請求項7】請求項6において、送受信終了時に送信要
求データ長が送信要求元及び受信要求元に通知されるこ
とを特徴とする通信方法。
7. The communication method according to claim 6, wherein a transmission request data length is notified to a transmission request source and a reception request source at the end of transmission / reception.
【請求項8】請求項1において、送信要求の要求データ
長が対応する受信要求の要求データ長よりも大きい場合
には受信要求データ長分のデータについては信頼性のあ
る通信を行うことを特徴とする通信方法。
8. A communication system according to claim 1, wherein when the requested data length of the transmission request is larger than the requested data length of the corresponding reception request, reliable communication is performed for the data of the reception request data length. Communication method.
【請求項9】請求項8において、ACK中に実際に受信
されたデータ長を入れるフィールドを設け、そのフィー
ルドにより送信側に実際に送られたデータ長を知らせる
ことで送受信終了時に受信要求データ長が送信要求元及
び受信要求元に通知されることを特徴とする通信方法。
9. The reception request data length at the end of transmission / reception by providing a field for entering the actually received data length in the ACK and notifying the transmission side of the data length actually transmitted by the field. Is notified to a transmission request source and a reception request source.
【請求項10】請求項1において、同期送受信の場合に
は送信要求中の送信バッファ中の後半部分のデータを送
信端末上のバッファにコピーして保持し、送信パケット
中に仮ACK要求を行うことを示すフィールドを設け、
コピーしない部分の最後のパケットを送出する際にこの
フィールドをセットし、受信側では仮ACK要求を行う
ことを示すフィールドがセットされたパケットを受信し
た際にそのパケット以前のすべてのパケットを既に受信
していれば仮ACKを返送し、送信側ではこの仮ACK
受信時に論理コネクションに対する次の送信要求を行う
ことができ、ACK受信時に上記送信端末上のコピーデ
ータ保持用バッファを開放することを特徴とする通信方
法。
10. In the case of synchronous transmission and reception, in the case of synchronous transmission and reception, data of the latter half of the transmission buffer in the transmission request is copied and held in a buffer on the transmission terminal, and a temporary ACK request is made in the transmission packet. Field to indicate that
This field is set when sending the last packet of the part that is not copied, and when the receiving side receives a packet with the field indicating that a temporary ACK request is made, it has already received all packets before that packet If so, a temporary ACK is returned.
A communication method, wherein a next transmission request for a logical connection can be made at the time of reception, and a copy data holding buffer on the transmission terminal is released at the time of ACK reception.
【請求項11】請求項10において、仮ACK中に受信
要求中で指定されたデータ長を入れるフィールドを設
け、そのフィールドにより送信側に実際に送受信される
データ長を知らせることで受信要求データ長が送信要求
元及び受信要求元に通知されることを特徴とする通信方
法。
11. A reception request data length according to claim 10, wherein a field for entering a data length specified in the reception request is provided in the temporary ACK, and the field informs the transmission side of the data length actually transmitted / received. Is notified to a transmission request source and a reception request source.
【請求項12】送信端末と受信端末とを備え、上記送信
端末と上記受信端末とを接続するネットワークを備え、
送信端末と受信端末との間で論理コネクションを張り、
上記送信端末では上記論理コネクションに対し送信要求
を発行し、上記受信端末では上記論理コネクションに対
し受信要求を発行することにより上記ネットワークを介
して上記送信端末から上記受信端末へデータの転送を行
う通信システムにおける上記送信端末の通信方法におい
て、 上記受信要求と上記送信要求を対応付けるための識別子
を上記送信要求に付加し、上記受信要求と上記送信要求
を対応付け、受信端末へ上記データを出力することを特
徴とする通信方法。
12. A transmitting terminal, comprising: a receiving terminal; and a network connecting the transmitting terminal and the receiving terminal.
Establish a logical connection between the sending terminal and the receiving terminal,
The transmission terminal issues a transmission request for the logical connection, and the reception terminal issues a reception request for the logical connection, thereby transferring data from the transmission terminal to the reception terminal via the network. In the communication method of the transmission terminal in the system, an identifier for associating the reception request with the transmission request is added to the transmission request, the reception request is associated with the transmission request, and the data is output to the reception terminal. A communication method comprising:
【請求項13】送信端末と受信端末とを備え、上記送信
端末と上記受信端末とを接続するネットワークを備え、
送信端末と受信端末との間で論理コネクションを張り、
上記送信端末では上記論理コネクションに対し送信要求
を発行し、上記受信端末では上記論理コネクションに対
し受信要求を発行することにより上記ネットワークを介
して上記送信端末から上記受信端末へデータの転送を行
う通信システムにおける上記受信端末の通信方法におい
て、 上記受信要求と上記送信要求を対応付けるための識別子
を上記受信要求に付加し、上記受信要求と上記送信要求
を対応付け、送信端末から送られた上記データを受け取
ることを特徴とする通信方法。
13. A transmitting terminal, comprising: a receiving terminal; and a network connecting the transmitting terminal and the receiving terminal.
Establish a logical connection between the sending terminal and the receiving terminal,
The transmission terminal issues a transmission request for the logical connection, and the reception terminal issues a reception request for the logical connection, thereby transferring data from the transmission terminal to the reception terminal via the network. In the communication method of the receiving terminal in the system, an identifier for associating the reception request with the transmission request is added to the reception request, the reception request is associated with the transmission request, and the data sent from the transmission terminal is A communication method characterized by receiving.
【請求項14】送信端末と受信端末とを備え、上記送信
端末と上記受信端末とを接続するネットワークを備え、
送信端末と受信端末との間で論理コネクションを張り、
上記送信端末では上記論理コネクションに対し送信要求
を発行し、上記受信端末では上記論理コネクションに対
し受信要求を発行することにより上記ネットワークを介
して上記送信端末から上記受信端末へデータの転送を行
う通信システムにおける上記送信端末の通信プログラム
を格納した記憶媒体において、 上記通信プログラムでは、上記受信要求と上記送信要求
を対応付けるための識別子を上記送信要求に付加し、上
記受信要求と上記送信要求を対応付け、受信端末へ上記
データを出力することを特徴とする通信プログラムを格
納した記憶媒体。
14. A network comprising: a transmitting terminal; a receiving terminal; and a network connecting the transmitting terminal and the receiving terminal.
Establish a logical connection between the sending terminal and the receiving terminal,
The transmission terminal issues a transmission request for the logical connection, and the reception terminal issues a reception request for the logical connection, thereby transferring data from the transmission terminal to the reception terminal via the network. In a storage medium storing a communication program of the transmission terminal in a system, the communication program adds an identifier for associating the reception request with the transmission request to the transmission request, and associates the reception request with the transmission request. A storage medium storing a communication program for outputting the data to a receiving terminal.
【請求項15】送信端末と受信端末とを備え、上記送信
端末と上記受信端末とを接続するネットワークを備え、
送信端末と受信端末との間で論理コネクションを張り、
上記送信端末では上記論理コネクションに対し送信要求
を発行し、上記受信端末では上記論理コネクションに対
し受信要求を発行することにより上記ネットワークを介
して上記送信端末から上記受信端末へデータの転送を行
う通信システムにおける上記受信端末の通信プログラム
を格納した記憶媒体において、 上記通信プログラムでは、上記受信要求と上記送信要求
を対応付けるための識別子を上記受信要求に付加し、上
記受信要求と上記送信要求を対応付け、送信端末から送
られた上記データを受け取ることを特徴とする通信プロ
グラムを格納した記憶媒体。
15. A transmission terminal, comprising: a receiving terminal; and a network connecting the transmitting terminal and the receiving terminal.
Establish a logical connection between the sending terminal and the receiving terminal,
The transmission terminal issues a transmission request for the logical connection, and the reception terminal issues a reception request for the logical connection, thereby transferring data from the transmission terminal to the reception terminal via the network. In a storage medium storing a communication program of the receiving terminal in a system, the communication program adds an identifier for associating the reception request with the transmission request to the reception request, and associates the reception request with the transmission request. And a storage medium storing a communication program for receiving the data transmitted from the transmission terminal.
JP27164297A 1996-10-04 1997-10-03 Communication method Expired - Fee Related JP3436100B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27164297A JP3436100B2 (en) 1996-10-04 1997-10-03 Communication method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP26407696 1996-10-04
JP8-264076 1996-10-04
JP27164297A JP3436100B2 (en) 1996-10-04 1997-10-03 Communication method

Publications (2)

Publication Number Publication Date
JPH10164176A true JPH10164176A (en) 1998-06-19
JP3436100B2 JP3436100B2 (en) 2003-08-11

Family

ID=26546336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27164297A Expired - Fee Related JP3436100B2 (en) 1996-10-04 1997-10-03 Communication method

Country Status (1)

Country Link
JP (1) JP3436100B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012182551A (en) * 2011-02-28 2012-09-20 Toshiba Corp Data transmission device, data communication device, and communication program
JP2016134718A (en) * 2015-01-19 2016-07-25 富士通株式会社 Communication device, communication control program, and communication control method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012182551A (en) * 2011-02-28 2012-09-20 Toshiba Corp Data transmission device, data communication device, and communication program
US9100332B2 (en) 2011-02-28 2015-08-04 Kabushiki Kaisha Toshiba Data transmitting device, data communicating device, and computer readable medium
JP2016134718A (en) * 2015-01-19 2016-07-25 富士通株式会社 Communication device, communication control program, and communication control method

Also Published As

Publication number Publication date
JP3436100B2 (en) 2003-08-11

Similar Documents

Publication Publication Date Title
US7817634B2 (en) Network with a constrained usage model supporting remote direct memory access
US6034962A (en) Communication method with attaching identifiers to receive request and transmit request
US6738821B1 (en) Ethernet storage protocol networks
US7031904B1 (en) Methods for implementing an ethernet storage protocol in computer networks
US5446868A (en) Network bridge method and apparatus
US7818362B2 (en) Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms
US8458280B2 (en) Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations
WO2020236284A1 (en) System and method for facilitating efficient packet forwarding in a network interface controller (nic)
EP1384356B1 (en) Selective data frame dropping in a network device
US20070208820A1 (en) Apparatus and method for out-of-order placement and in-order completion reporting of remote direct memory access operations
CN115941616A (en) Multi-path RDMA transport
US20030053462A1 (en) System and method for implementing multi-pathing data transfers in a system area network
US20080043750A1 (en) Apparatus and method for in-line insertion and removal of markers
US7617291B2 (en) System and method for supporting TCP out-of-order receive data using generic buffer
WO2002017576A2 (en) Mechanism for completing messages in memory
EP1629656A1 (en) Processing data for a tcp connection using an offload unit
JPH0637804A (en) System and method for transmission of data frame
JP2000151664A (en) Data transmission method
US6483840B1 (en) High speed TCP/IP stack in silicon
US7680944B1 (en) Rapid transport service in a network to peripheral device servers
US6996105B1 (en) Method for processing data packet headers
US20070291782A1 (en) Acknowledgement filtering
JP2002305535A (en) Method and apparatus for providing a reliable protocol for transferring data
EP1826968B1 (en) Methods and devices for transmitting data between storage area networks
US6760781B1 (en) Intelligent packet transmission engine

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees