JP4348168B2 - COMMUNICATION DEVICE, TRANSMITTER, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM - Google Patents

COMMUNICATION DEVICE, TRANSMITTER, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM Download PDF

Info

Publication number
JP4348168B2
JP4348168B2 JP2003388311A JP2003388311A JP4348168B2 JP 4348168 B2 JP4348168 B2 JP 4348168B2 JP 2003388311 A JP2003388311 A JP 2003388311A JP 2003388311 A JP2003388311 A JP 2003388311A JP 4348168 B2 JP4348168 B2 JP 4348168B2
Authority
JP
Japan
Prior art keywords
data unit
data
confirmation response
transmitter
received
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003388311A
Other languages
Japanese (ja)
Other versions
JP2005149307A (en
Inventor
和徳 山本
基治 三宅
浩 稲村
修 高橋
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003388311A priority Critical patent/JP4348168B2/en
Publication of JP2005149307A publication Critical patent/JP2005149307A/en
Application granted granted Critical
Publication of JP4348168B2 publication Critical patent/JP4348168B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、データリンク層およびトランスポート層における通信制御技術に関する。   The present invention relates to a communication control technique in a data link layer and a transport layer.

OSI階層モデルにおけるデータリンク層の通信プロトコルの1つに、無線リンクの制御のために標準化されたRLC(Radio Link Control)プロトコルがある。RLCプロトコルは、非特許文献1に示されるように、3GPP(3rd Generation Partnership Project)において提案されたものであり、RLCプロトコルには、データリンク層を構成する2つの副層のうち、上位側のRLC副層にて通信ノードが行う操作(通信処理)が定められている。   One of the data link layer communication protocols in the OSI hierarchical model is the RLC (Radio Link Control) protocol standardized for radio link control. The RLC protocol is proposed in 3GPP (3rd Generation Partnership Project) as shown in Non-Patent Document 1, and the RLC protocol includes an upper-side of the two sublayers constituting the data link layer. An operation (communication process) performed by the communication node in the RLC sublayer is defined.

RLC副層における操作のモードには、AM(Acknowledgement Mode)、UM(Unacknowledgement Mode)、及びTM(Transparent Mode)があり、操作モードがAMのRLC副層にて送信操作を行う送信ノードとの間でデータ転送可能な受信ノードは、操作モードがAMのRLC副層にて受信操作を行う受信ノードのみである。RLC副層における操作モードのうち、本発明が解決しようとする課題に関係するのはAMのみであるから、以降、操作モードがAMのRLC副層に着目して説明する。なお、以降の説明において、「RLC副層」は、操作モードがAMのRLC副層を意味する。   The operation modes in the RLC sublayer include AM (Acknowledgement Mode), UM (Unacknowledgement Mode), and TM (Transparent Mode), and the operation mode is a transmission node that performs a transmission operation in the RLC sublayer of the AM. The only receiving nodes that can transfer data are the receiving nodes that perform the receiving operation in the RLC sublayer whose operation mode is AM. Of the operation modes in the RLC sublayer, only the AM is related to the problem to be solved by the present invention. Therefore, the operation mode will be described below with a focus on the RLC sublayer in which the operation mode is AM. In the following description, “RLC sublayer” means an RLC sublayer whose operation mode is AM.

RLC副層では、送信ノードと受信ノード間のデータ転送が、上位層との間で受け渡されるデータユニット(以降、SDU(Service Data Unit)と称す)の先頭から順に切り出された部分データにヘッダを付加して生成されるデータユニット(以降、PDU(Protocol Data Unit)と称す)を用いて行われる。PDUのヘッダには、当該PDUが生成された順序を示すシーケンス番号と切り出し元のSDUの長さ情報が含まれている。また、RLC副層では、データ転送において消失したPDUがシーケンス番号を用いた選択再送(Selective Repeat)により再送される。なお、以降の説明では、「SDU」及び「PDU」はRLC副層におけるSDU及びPDUを意味する。   In the RLC sublayer, the data transfer between the transmission node and the reception node is performed on the header of partial data cut out in order from the beginning of the data unit (hereinafter referred to as SDU (Service Data Unit)) passed between the upper layer and the lower layer. Is performed using a data unit (hereinafter referred to as PDU (Protocol Data Unit)) generated by adding. The header of the PDU includes a sequence number indicating the order in which the PDU is generated and length information of the cut-out SDU. In the RLC sublayer, PDUs lost in data transfer are retransmitted by selective retransmission using a sequence number. In the following description, “SDU” and “PDU” mean SDUs and PDUs in the RLC sublayer.

ところで、無線リンクは有線の通信リンクに比較してデータ転送における誤り率が高い。このため、再送されたPDUが再び消失することも起こり易い。つまり、再送遅延が大きい。したがって、RLC副層では、PDUのみならず、SDUの受信順序(厳密には、SDUの組み立てに必要なPDUをMAC(Medium Access Control)副層から渡され終える時点の後先)まで入れ替わる可能性がある。このようなSDUの受信順序の入れ替わりによる影響を、上位層に比較して再送コストが低いRLC副層にて吸収するために、RLC副層では、受信ノードがSDUの順序制御を行う。具体的には、受信ノードは、SDUの受信順序が入れ替わり、未受信のSDUよりも後に上位層へ渡すべきSDUを先に受信した場合、このSDUを、未受信のSDUを受信して上位層に渡すまで保持する。このような順序制御により、SDUが送信ノードにて上位層から渡された順序で受信ノードにてRLC副層から上位層に渡されることが保証されている。なお、SDUの受信順序の入れ替わりを検出するためには、受信ノードが、送信ノードにてSDUが上位層からRLC副層へ渡された順序を把握する必要がある。この把握は、PDUのヘッダに含まれているシーケンス番号と長さ情報を用いることで実現可能である。   By the way, the wireless link has a higher error rate in data transfer than the wired communication link. For this reason, the retransmitted PDU is likely to disappear again. That is, the retransmission delay is large. Therefore, in the RLC sublayer, not only the PDU, but also the SDU reception order (strictly, the PDU necessary for assembling the SDU can be switched after the end of the delivery from the MAC (Medium Access Control) sublayer). There is. In order to absorb the influence of the change of the reception order of the SDUs in the RLC sublayer whose retransmission cost is lower than that of the upper layer, the receiving node controls the order of the SDUs in the RLC sublayer. Specifically, when the receiving order of the SDUs is switched and an SDU that should be passed to an upper layer after an unreceived SDU is received first, the receiving node receives the SDU that has not been received and receives the SDU. Hold until passed to. Such order control ensures that SDUs are passed from the RLC sublayer to the upper layer at the receiving node in the order that the SDU is passed from the upper layer at the transmitting node. In order to detect a change in the reception order of the SDUs, the receiving node needs to grasp the order in which the SDUs are passed from the upper layer to the RLC sublayer at the transmission node. This grasp can be realized by using the sequence number and length information included in the header of the PDU.

しかし、このような順序制御によるSDUの遅延は、通信網の実質的な利用率を低下させる原因となる。なお、「通信網の利用率」は、通信網により提供された網資源の容量(例えば、利用可能な通信リンクの帯域幅や当該通信リンクを利用可能な期間)に対する実際に利用した網資源の量の比率を意味し、「通信網の実質的な利用率」は、通信網により提供された網資源の容量に対する有効に利用した網資源の量の比率を意味する。RLC副層におけるSDUの遅延が通信網の実質的な利用率の低下を招くことになる理由は、トランスポート層で行われるデータ転送の種類によって異なるため、場合分けして説明する。   However, the delay of the SDU due to such sequence control causes a substantial decrease in the utilization rate of the communication network. Note that the “utilization rate of the communication network” is the network resource capacity actually used for the capacity of the network resource provided by the communication network (for example, the bandwidth of the available communication link and the period during which the communication link can be used). The “substantial utilization rate of the communication network” means the ratio of the amount of network resources used effectively to the capacity of the network resources provided by the communication network. The reason that the delay of the SDU in the RLC sublayer causes a substantial decrease in the utilization rate of the communication network is different depending on the type of data transfer performed in the transport layer, and will be described separately.

[バルクデータ転送の場合]
バルクデータ転送では、一般に、上位層にて、通信網に滞留するデータ量を調節して通信網の利用率を適切に保つフロー制御が行われる。このようなフロー制御の一例としては、TCP(Transmission Control Protocol)における輻輳制御が挙げられる。上記のフロー制御は、トランスポート層にて、下位の層から渡されたデータユニットに基づいて行われる。したがって、RLC副層のように、上位層へ渡すことが可能なデータユニットを遅延させてから上位層へ渡すことがあり得る層がトランスポート層の下位に存在すると、上記のフロー制御の開始が遅れる虞がある。フロー制御では制御のためのデータがノードから通信網へ送出されるから、フロー制御の開始の遅れは、通信網に滞留するデータの減少を招く。具体的には、再送通知の遅延の増加、輻輳通知の遅延の増加、バースト的なデータ送信、他セッションのデータ受信の遅延、等の現象が挙げられる。以上が、通信網の実質的な利用率の低下を招く理由である。なお、TCPではデータを正しく配列してから上位の層へ渡すことが規定されており、順序制御について、トランスポート層とデータリンク層とで重複した機能を有するという問題もある。
[For bulk data transfer]
In bulk data transfer, generally, flow control is performed in an upper layer to adjust the amount of data staying in the communication network and to keep the communication network usage rate appropriate. An example of such flow control is congestion control in TCP (Transmission Control Protocol). The above flow control is performed based on the data unit passed from the lower layer in the transport layer. Therefore, if a layer that can be passed to the upper layer after delaying a data unit that can be passed to the upper layer, such as the RLC sublayer, is present in the lower layer of the transport layer, the above flow control starts. There is a risk of delay. In flow control, data for control is sent from the node to the communication network, so the delay in the start of flow control leads to a reduction in data staying in the communication network. Specifically, there are phenomena such as an increase in retransmission notification delay, an increase in congestion notification delay, bursty data transmission, and delay in data reception of other sessions. The above is the reason why the substantial utilization rate of the communication network is reduced. Note that TCP stipulates that data is correctly arranged and then passed to an upper layer, and there is a problem that the order control has duplicated functions in the transport layer and the data link layer.

[ストリーミング転送の場合]
ストリーミング転送では、一般に、データの遅延に制約がある。したがって、RLC副層のように、上位層へ渡すことが可能なデータユニットを遅延させてから上位層へ渡すことがあり得る層がトランスポート層の下位に存在すると、トランスポート層にて、受信ノードが既に役に立たなくなっているデータユニットを受け取る可能性が高くなる。このようなデータユニットは破棄され、利用されないから、このようなデータユニットの転送に用いられた網資源は無駄に使用されたことになる。これが、通信網の実質的な利用率の低下を招く理由である。
[For streaming transfer]
In streaming transfer, data delay is generally limited. Therefore, when there is a layer that can be passed to the upper layer after delaying a data unit that can be passed to the upper layer, such as the RLC sublayer, the transport layer receives the data at the lower layer. The node is more likely to receive data units that are no longer useful. Since such a data unit is discarded and is not used, the network resource used for transferring such a data unit is wasted. This is the reason why the substantial utilization rate of the communication network is reduced.

このような不都合を避けるために、RLC副層にてSDUの順序制御を行わないようにすることが考えられる。このようにすれば、RLC副層におけるSDUの遅延に起因した通信網の実質的な利用率の低下は生じない。しかし、トランスポート層において、SDUの入れ替わりをSDUのロスと誤検出してしまい、不適切なフロー制御が行われる可能性がある。ところで、不適切なフロー制御を防止することを目的とした技術が、特許文献1および特許文献2に記載されている。   In order to avoid such inconvenience, it is conceivable not to perform SDU order control in the RLC sublayer. In this way, a substantial reduction in the utilization rate of the communication network due to the SDU delay in the RLC sublayer does not occur. However, in the transport layer, replacement of SDUs may be erroneously detected as SDU loss, and improper flow control may be performed. By the way, technologies for preventing inappropriate flow control are described in Patent Document 1 and Patent Document 2.

特許文献1に記載の技術では、送信ノードは、輻輳ウィンドウのサイズが所定の閾値以下の場合にのみ、TCPのSACK(選択的確認応答)オプションを用いて通知されたデータユニット(消失が検出されたデータユニット)を直ちに再送する。つまり、送信ノードは、SACKオプションを用いないと重大な不都合が生じ得る場合にのみ、SACKオプションを用いた通知に従って作動する。この技術によれば、誤検出の発生頻度は、SACKオプションによる通知を常に信用する態様に比較すれば低くなるが、SACKオプションを用いない態様に比較すれば当然に高くなる。結局、特許文献1に記載の技術を用いても、誤検出に起因した不適切なフロー制御を防止することはできない。   In the technique described in Patent Document 1, the transmitting node can detect a data unit (erasure is detected) using the TCP SACK (Selective Acknowledgment) option only when the size of the congestion window is equal to or smaller than a predetermined threshold. Data unit) immediately. In other words, the transmitting node operates according to the notification using the SACK option only when a serious inconvenience may occur if the SACK option is not used. According to this technology, the frequency of occurrence of false detections is lower when compared with a mode in which notification by the SACK option is always trusted, but naturally increases when compared with a mode in which the SACK option is not used. Eventually, even if the technique described in Patent Document 1 is used, inappropriate flow control due to erroneous detection cannot be prevented.

特許文献2に記載の技術では、送信ノードは、再送後に確認応答を受信すると、この確認応答がオリジナルのデータユニットに対するものか、再送データユニットに対するものかを判定し、判定結果に応じて処理を変える。この技術によれば、誤検出に起因した不適切なフロー制御を防止することができるように見える。しかし、受信ノードにおいて、1番目のデータユニットの直後に3〜5番目のデータユニットが順に受信され、その後に2番目のデータユニットが受信されるような場合には、送信ノードにおいて、2番目のデータユニットの消失が誤検出され、不適切なフロー制御が行われてしまう。また、そもそも、特許文献2に記載の技術は、不適切であることが後に判明し得る再送(フロー制御の一種)を行うことを必須としており、根本的な解決策には成り得ない。
"3GPP specification: 25.322"、[online]、The 3rd Generation Partnership Project、[平成15年8月29日検索]、インターネット<URL:http://www.3gpp.org/ftp/Specs/html-info/25322.html> 特開2000−78195号公報 特表2002−534907号公報
In the technique described in Patent Document 2, when receiving a confirmation response after retransmission, the transmission node determines whether the confirmation response is for the original data unit or the retransmission data unit, and performs processing according to the determination result. Change. According to this technique, it seems that inappropriate flow control due to erroneous detection can be prevented. However, when the receiving node receives the third to fifth data units immediately after the first data unit, and then receives the second data unit, the transmitting node receives the second data unit. Missing data units are erroneously detected, and inappropriate flow control is performed. In the first place, the technique described in Patent Document 2 requires performing retransmission (a kind of flow control) that can later be found to be inappropriate, and cannot be a fundamental solution.
"3GPP specification: 25.322", [online], The 3rd Generation Partnership Project, [searched on August 29, 2003], Internet <URL: http://www.3gpp.org/ftp/Specs/html-info/ 25322.html> JP 2000-78195 A Special Table 2002-534907

本発明は、上述した背景の下になされたものであり、通信網の実質的な利用率を低下させずに、データユニットの受信順序の入れ替わりをデータユニットの消失と誤検出することに起因した不適切なフロー制御を防止することができる技術を提供することを目的とする。   The present invention has been made under the above-mentioned background, and is caused by erroneously detecting the change of the reception order of the data units as the loss of the data units without reducing the substantial utilization rate of the communication network. An object of the present invention is to provide a technique capable of preventing inappropriate flow control.

本発明は、送信機から受信機へ送信され、前記送信機からの送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信するデータ受信手段と、前記データ受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、前記データ受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、前記確認応答受信手段により受信された前記確認応答を前記送信機に送信する確認応答送信手段とを備え、前記確認応答送信手段は、前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、第2の記憶手段に記憶された、データユニットの第2の番号とを比較し、前記第2の番号が前記第1の番号よりも若い場合において、当該第1の番号を前記第2の記憶手段に前記第2の番号として上書きし、当該第1の番号より若い番号のデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きして、前記確認応答を前記送信機に転送し、前記第2の番号が前記第1の番号よりも若くない場合において、当該第1の番号のデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、前記確認応答を前記送信機に転送する一方、当該第1の番号のデータユニットが転送中であることが記憶されているときには、当該第1の番号のデータユニットが転送中であることを意味する情報を含む前記確認応答を前記送信機に送信する通信装置を提供する。 The present invention is transmitted from the transmitter to the receiver, and a data receiving means for receiving data units of the transport layer has an identifiable number transmission order from the transmitter, said data unit by said data receiving means When received, in association with the number of the data unit, the data storage means for storing the data unit being transferred in the first storage means, and transmitting the data unit to the receiver; An acknowledgment receiving means for receiving an acknowledgment including a first number which is a number of a data unit which is transmitted from the receiver to the transmitter and is expected to be received next by the receiver; and the data receiving means When the data unit received and transmitted by the data transmission means is discarded, the data unit is associated with the number of the data unit. The overwriting means stored in the first storage means for overwriting that the data unit is being transferred and the confirmation response received by the confirmation response receiving means are stored in the first storage means. An acknowledgment transmission means for transmitting to the transmitter, wherein the acknowledgment transmission means is stored in the first number and the second storage means included in the confirmation response received by the confirmation response receiving means. When the second number of the data unit is compared and the second number is smaller than the first number, the first number is stored in the second storage means as the second number. Overwriting, overwriting the first storage means that a data unit with a number lower than the first number has been received by the receiver, and transferring the confirmation response to the transmitter; Is the number If the first storage means stores that the data unit of the first number is discarded when it is not younger than the number of 1, the confirmation response is forwarded to the transmitter, When it is stored that the data unit of the first number is being transferred, the confirmation response including information indicating that the data unit of the first number is being transferred is transmitted to the transmitter A communication device is provided.

また、本発明は、上述のいずれかに記載の通信装置から、前記確認応答を受信する受信手段と、信機による前記データユニットの受信の順序またはタイミングに基づいて前記データユニットの消失を推定する消失推定手段と、前記受信手段により受信された前記確認応答に、当該確認応答に含まれる第1の番号のデータユニットが転送中であることを意味する情報が含まれている場合に、当該データユニットの消失を前記消失推定手段が推定することを一時的に禁止する禁止手段とを有する送信機を提供する。 Further, the present invention is estimated from the communication device according to any of the above, a receiving means for receiving the acknowledgment, the loss of the data unit based on the order or timing of reception of the data unit by receiver unit And when the confirmation response received by the reception means includes information indicating that the data unit of the first number included in the confirmation response is being transferred, There is provided a transmitter having prohibition means for temporarily prohibiting the loss estimation means from estimating the loss of a data unit.

また、本発明は、送信機と通信装置とを有し、前記送信機は、送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信機へ送信する第1の送信手段と、前記受信機による前記データユニットの受信の順序またはタイミングに基づいて前記データユニットの消失を推定する消失推定手段とを有し、前記通信装置は、前記送信機から送信された前記データユニットを受信する第1の受信手段と、前記第1の受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、前記第1の受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、前記確認応答受信手段により受信された前記確認応答を前記送信機に送信する確認応答送信手段とを有し、前記通信装置の前記確認応答送信手段は、前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、第2の記憶手段に記憶された、データユニットの第2の番号とを比較し、前記第2の番号が前記第1の番号よりも若い場合において、当該第1の番号を前記第2の記憶手段に前記第2の番号として上書きし、当該第1の番号より若い番号のデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きして、前記確認応答を前記送信機に転送し、前記第2の番号が前記第1の番号よりも若くない場合において、当該第1の番号のデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、前記確認応答を前記送信機に転送する一方、当該第1の番号のデータユニットが転送中であることが記憶されているときには、当該第1の番号のデータユニットが転送中であることを意味する情報を含む前記確認応答を前記送信機に送信し、前記送信機は、更に、前記確認応答送信手段から送信された前記確認応答を受信する第2の受信手段と、前記受信手段により受信された前記確認応答に、当該確認応答に含まれる第1の番号のデータユニットが転送中であることを意味する情報が含まれている場合に、当該データユニットの消失を前記消失推定手段が推定することを一時的に禁止する禁止手段とを有することを特徴とする通信システムを提供する。 The present invention also includes a transmitter and a communication device, wherein the transmitter transmits a transport layer data unit having a number that can specify a transmission order to a receiver, Erasure estimation means for estimating erasure of the data units based on the order or timing of reception of the data units by a receiver, and the communication device receives the data units transmitted from the transmitter. When the data unit is received by the first receiving means and the first receiving means, the first storage means stores the fact that the data unit is being transferred in association with the number of the data unit. Data transmitting means for transmitting the data unit to the receiver, and a data unit transmitted from the receiver to the transmitter and expected to be received next by the receiver. A confirmation response receiving means for receiving a confirmation response including a first number which is the number of a network, and when the data unit received by the first receiving means and transmitted by the data transmission means is discarded Is associated with the number of the data unit, and overwrite means stored in the first storage means for overwriting that the data unit is being transferred is stored in the first storage means, A confirmation response transmitting means for transmitting the confirmation response received by the confirmation response receiving means to the transmitter, wherein the confirmation response transmitting means of the communication device receives the confirmation response received by the confirmation response receiving means. And the second number of the data unit stored in the second storage means is compared, and the second number is smaller than the first number The first number is overwritten in the second storage means as the second number, and the data unit having a number lower than the first number has been received by the receiver. When the second number is not younger than the first number, the data unit of the first number is discarded. Is stored in the first storage means, the confirmation response is transferred to the transmitter, while when it is stored that the data unit of the first number is being transferred, said acknowledgment containing information data units 1 of number means that it is being transferred is transmitted to the transmitter, the transmitter further receives the transmitted said acknowledgment from said acknowledgment transmission means Second to And when the confirmation response received by the reception means includes information indicating that the data unit of the first number included in the confirmation response is being transferred. There is provided a communication system comprising: prohibiting means for temporarily prohibiting the disappearance estimating means from estimating the disappearance of a unit.

また、本発明は、送信機が、送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信機へ送信する送信過程と、通信装置が、前記送信機により送信された前記データユニットを受信する受信過程と、前記通信装置が、受信した前記データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信過程と、前記通信装置が、前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信過程と、前記通信装置が、前記受信過程において受信されて前記データ送信過程において送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き過程と、前記通信装置が、前記確認応答受信過程において受信された前記確認応答に含まれる前記第1の番号と、第2の記憶手段に記憶された、データユニットの第2の番号とを比較し、前記第2の番号が前記第1の番号よりも若い場合において、当該第1の番号を前記第2の記憶手段に前記第2の番号として上書きし、当該第1の番号より若い番号のデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きして、前記確認応答を前記送信機に転送し、前記第2の番号が前記第1の番号よりも若くない場合において、当該第1の番号のデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、前記確認応答を前記送信機に転送する一方、当該第1の番号のデータユニットが転送中であることが記憶されているときには、当該第1の番号のデータユニットが転送中であることを意味する情報を含む前記確認応答を前記送信機に送信する確認応答送信過程と前記送信機が、前記受信機による前記データユニットの受信の順序またはタイミングに基づいて前記データユニットの消失を推定する消失推定過程と、前記送信機が、前記確認応答送信過程において送信された前記確認応答に、当該確認応答に含まれる第1の番号のデータユニットが転送中であることを意味する情報が含まれている場合に、当該データユニットの消失を前記消失推定過程において推定することを一時的に禁止する中止過程とを有する通信方法を提供する。 Further, the present invention provides a transmission process in which a transmitter transmits a data unit of a transport layer having a number that can specify a transmission order to a receiver, and a communication device transmits the data unit transmitted by the transmitter. The reception process, and the communication device stores in the first storage means that the data unit is being transferred in association with the received data unit number , and sends the data unit to the receiver. A data transmission process to be transmitted and an acknowledgment including a first number which is a number of a data unit transmitted from the receiver to the transmitter and expected to be received next by the receiver. An acknowledgment reception process to receive, and when the data unit received in the reception process and transmitted in the data transmission process is discarded by the communication device An overwriting process of overwriting that the data unit is being transferred, stored in the first storage means, in association with the number of the data unit, and the communication The apparatus compares the first number included in the confirmation response received in the confirmation response reception process with the second number of the data unit stored in the second storage means, and the second number When the number is lower than the first number, the first number is overwritten as the second number in the second storage means, and a data unit having a number lower than the first number is received by the receiver. Overwriting the first storage means that it has already been received at, transferring the confirmation response to the transmitter, and if the second number is not younger than the first number, Number 1 When the first storage means stores that the data unit is discarded, the confirmation response is transferred to the transmitter, while the fact that the data unit with the first number is being transferred is stored. And transmitting the acknowledgment response including information indicating that the data unit of the first number is being transferred to the transmitter, and the transmitter transmits the data by the receiver. An erasure estimation process for estimating the erasure of the data unit based on the reception order or timing of units; and the first response included in the confirmation response is included in the confirmation response transmitted by the transmitter in the confirmation response transmission process. case, the loss estimation process smell loss of the data units of the number of the data units contain information which means that it is being transferred And a canceling process for temporarily prohibiting estimation.

また、本発明は、コンピュータを、送信機から受信機へ送信され、前記送信機からの送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信するデータ受信手段と、前記データ受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、前記データ受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、第2の記憶手段に記憶された、データユニットの第2の番号とを比較し、前記第2の番号が前記第1の番号よりも若い場合において、当該第1の番号を前記第2の記憶手段に前記第2の番号として上書きし、当該第1の番号より若い番号のデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きして、前記確認応答を前記送信機に転送し、前記第2の番号が前記第1の番号よりも若くない場合において、当該第1の番号のデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、前記確認応答を前記送信機に転送する一方、当該第1の番号のデータユニットが転送中であることが記憶されているときには、当該第1の番号のデータユニットが転送中であることを意味する情報を含む前記確認応答を前記送信機に送信する確認応答送信手段として機能させるためのプログラムを提供する。 The present invention also provides a data receiving means for receiving a data unit of a transport layer transmitted from a transmitter to a receiver and having a number that can specify a transmission order from the transmitter, and the data receiving means. When the data unit is received, the first storage means stores the data unit being transferred in association with the number of the data unit, and transmits the data unit to the receiver. Transmitting means; and an acknowledgment receiving means for receiving an acknowledgment including a first number which is a number of a data unit which is transmitted from the receiver to the transmitter and is expected to be received next by the receiver; When the data unit received by the data receiving unit and transmitted by the data transmitting unit is discarded, the number of the data unit is discarded. Corresponding to the data unit, the fact that the data unit has been discarded is received by the overwriting means stored in the first storage means for overwriting that the data unit is being transferred, and the confirmation response receiving means. The first number included in the confirmation response is compared with the second number of the data unit stored in the second storage means, and the second number is smaller than the first number. In the case, the first number is overwritten as the second number in the second storage means, and the first data unit having a lower number than the first number has been received by the receiver. When the second number is not younger than the first number, the data unit of the first number is discarded. The first When it is stored in the storage means, the confirmation response is transferred to the transmitter, while when it is stored that the data unit of the first number is being transferred, the data unit of the first number Provides a program for causing an acknowledgment transmission means for transmitting the acknowledgment to the transmitter including information indicating that the message is being transferred .

本発明によれば、消失推定手段が通知されたデータユニットの消失の推定を一時的に中止することにより、通信網の実質的な利用率を低下させずに、データユニットの受信順序の入れ替わりをデータユニットの消失と誤検出することに起因した不適切なフロー制御を防止することができる。よって、本発明によれば、通信網の実質的な利用率が向上する。   According to the present invention, the erasure estimation means temporarily cancels the estimation of the erasure of the data unit notified, thereby changing the reception order of the data units without reducing the substantial utilization rate of the communication network. Inappropriate flow control due to erroneous detection of data unit loss can be prevented. Therefore, according to the present invention, the substantial utilization rate of the communication network is improved.

[第1実施形態]
[構成]
図1は本発明の第1実施形態に係る通信システム100の構成を示す図である。この図に示すように、通信システム100は、使用者に携帯される移動機10、管轄する無線エリア内の移動機10と無線通信可能な基地局20、及び基地局20が接続されるコアネットワーク30に接続されるサーバ装置40を有する。移動機10は、基地局20及びコアネットワーク30を介して、サーバ装置40と通信可能である。なお、通信システム100は、IMT−2000(International Mobile Telecommunications-2000)に準拠しており、移動機10、基地局20及びサーバ装置40の数は、それぞれ、1以上の任意の数である。
[First Embodiment]
[Constitution]
FIG. 1 is a diagram showing a configuration of a communication system 100 according to the first embodiment of the present invention. As shown in this figure, a communication system 100 includes a mobile device 10 that is carried by a user, a base station 20 that can wirelessly communicate with the mobile device 10 in a wireless area under its control, and a core network to which the base station 20 is connected. 30 has a server device 40 connected thereto. The mobile device 10 can communicate with the server device 40 via the base station 20 and the core network 30. Note that the communication system 100 is compliant with IMT-2000 (International Mobile Telecommunications-2000), and the number of the mobile device 10, the base station 20, and the server device 40 is an arbitrary number of 1 or more.

図2は通信システム100の通信プロトコル構成を示す図である。この図に示すように、トランスポート層以上の層での通信は移動機10及びサーバ装置40のみで終端され、ネットワーク層以下の層での通信は通信システム100を構成する全ての装置で終端される。ただし、基地局20は、snoopモジュールにて、トランスポート層のデータユニットを操作する。また、基地局20は、RLC副層にてSDUの順序制御を行わない。   FIG. 2 is a diagram illustrating a communication protocol configuration of the communication system 100. As shown in this figure, communication in the layer above the transport layer is terminated only by the mobile device 10 and the server device 40, and communication in the layer below the network layer is terminated by all devices constituting the communication system 100. The However, the base station 20 operates the data unit of the transport layer with the snoop module. The base station 20 does not perform SDU order control in the RLC sublayer.

移動機10及びサーバ装置40は、トランスポート層にて、一般的なTCPに従う通信処理を行う。一般的なTCPに従う通信処理には、再送タイマを用いた再送処理や高速再送(Fast Retransmission)が含まれており、SACKオプションを用いた処理は含まれていない。以下、再送タイマを用いた再送処理および高速再送について説明する。   The mobile device 10 and the server device 40 perform communication processing according to general TCP in the transport layer. The communication processing according to general TCP includes retransmission processing using a retransmission timer and fast retransmission (Fast Retransmission), and does not include processing using the SACK option. Hereinafter, retransmission processing using a retransmission timer and high-speed retransmission will be described.

TCPでは、より上位の層から渡されたデータストリームの先頭から順にデータを切り出し、切り出したデータにヘッダを付してデータセグメントを作成する。データセグメントのヘッダには、該当するデータの切り出し位置を示すシーケンス番号が書き込まれる。なお、以降、特に断らない限り、「シーケンス番号」はTCPにおけるシーケンス番号を意味する。送信ノードは、こうして作成されたデータセグメントを送信すると、当該データセグメントに対する再送タイマをスタートさせる。一方、受信ノードは、データセグメントを受信すると、その旨を示す確認応答セグメントを返信する。送信ノードは、確認応答セグメントを受信すると、該当するデータセグメントの送信時にスタートさせた再送タイマを停止し、再送タイムアウトによる当該データセグメントの再送を避ける。ところで、送信ノードは、基本的に、ヘッダに書き込まれたシーケンス番号の順にデータセグメントを送信する。このため、受信ノードは、未受信のデータセグメントのうち、最も若いシーケンス番号のデータセグメントを、次に受信が期待されるデータセグメントに定め、当該データセグメントのシーケンス番号(以降、「ACK値」という)を上記の確認応答セグメントを用いて送信ノードへ通知する。この通知にもかかわらず、期待していないデータセグメントを受信した場合、受信ノードは、直前に送信した確認応答セグメントのACK値と同じACK値を有する確認応答セグメントを返信する。この確認応答セグメントは重複確認応答セグメントと呼ばれる。送信ノードは、重複確認応答セグメントを再送閾値の数だけ連続して受信すると、データセグメントが消失したとみなし、再送タイムアウトを待たずに、重複確認応答セグメントにより示されるデータセグメントを再送する。これが高速再送である。なお、本実施形態において、再送閾値は「3」である。   In TCP, data is cut out in order from the top of a data stream passed from a higher layer, and a header is attached to the cut out data to create a data segment. A sequence number indicating the cut-out position of the corresponding data is written in the header of the data segment. Hereinafter, unless otherwise specified, “sequence number” means a sequence number in TCP. When the transmitting node transmits the data segment thus created, the transmitting node starts a retransmission timer for the data segment. On the other hand, when receiving the data segment, the receiving node returns an acknowledgment segment indicating that fact. Upon receiving the acknowledgment segment, the transmitting node stops the retransmission timer that was started when transmitting the corresponding data segment, and avoids retransmission of the data segment due to retransmission timeout. By the way, the transmission node basically transmits the data segments in the order of the sequence numbers written in the header. For this reason, the receiving node determines the data segment with the smallest sequence number among the unreceived data segments as the data segment expected to be received next, and refers to the sequence number of the data segment (hereinafter referred to as “ACK value”). ) To the sending node using the above-mentioned acknowledgment segment. If an unexpected data segment is received despite this notification, the receiving node returns an acknowledgment segment having the same ACK value as the ACK value of the acknowledgment segment transmitted immediately before. This acknowledgment segment is called a duplicate acknowledgment segment. When the transmitting node continuously receives duplicate confirmation response segments by the number of retransmission thresholds, the transmission node regards that the data segment has been lost, and retransmits the data segment indicated by the duplicate confirmation response segment without waiting for a retransmission timeout. This is high-speed retransmission. In the present embodiment, the retransmission threshold is “3”.

図3は基地局20の構成を示すブロック図である。この図から明らかなように、基地局20は、一般的なコンピュータと同様に、CPU21が不揮発性メモリ22に記憶されているプログラムを、RAM23をワークエリアとして実行し、これにより各種処理を行う構成となっている。また、不揮発性メモリ22には、後述の通知処理を行わせるための通知プログラム221と、トランスポート層よりも下位の層で通信処理を行わせるとともに、基地局20を中継装置としてトランスポート層の通信コネクションが確立される度に通知プログラム221の実行を開始させ、当該通信コネクションが切断されると当該入れ替わりプログラムの実行を終了させる制御プログラムとが記憶されている。CPU21は、図示しない電源が投入されると不揮発性メモリ22から上記の制御プログラムを読み出して実行する。   FIG. 3 is a block diagram showing the configuration of the base station 20. As is apparent from this figure, the base station 20 has a configuration in which the CPU 21 executes a program stored in the nonvolatile memory 22 by using the RAM 23 as a work area, and performs various processes, as in a general computer. It has become. In addition, the non-volatile memory 22 has a notification program 221 for performing notification processing described later, and performs communication processing in a layer lower than the transport layer, and uses the base station 20 as a relay device in the transport layer. A control program is stored that starts execution of the notification program 221 every time a communication connection is established and terminates execution of the replacement program when the communication connection is disconnected. The CPU 21 reads the control program from the nonvolatile memory 22 and executes it when a power supply (not shown) is turned on.

無線部24は移動機10との間で無線信号を送受信するものであり、CPU21から送信すべきデータが供給されると、この送信データにより変調された搬送波を無線区間へ送出し、無線区間を伝播してきた搬送波からデータを復調すると、この受信データをCPU21に供給する。この無線部24及びCPU21により、移動機10との間でのデータの送受信が行われる。通信インタフェース25はコアネットワーク30との間で信号を送受信するものであり、CPU21から送信すべきデータが供給されると、この送信データにより変調された信号をコアネットワーク30へ送出し、コアネットワーク30から供給された信号からデータを復調すると、この受信データをCPU21に供給する。この通信インタフェース25及びCPU21により、サーバ装置40との間でのデータの送受信がコアネットワーク30を介して行われる。   The wireless unit 24 transmits / receives a wireless signal to / from the mobile device 10. When data to be transmitted is supplied from the CPU 21, the wireless unit 24 transmits a carrier wave modulated by the transmission data to the wireless section. When data is demodulated from the propagated carrier wave, the received data is supplied to the CPU 21. The wireless unit 24 and the CPU 21 transmit / receive data to / from the mobile device 10. The communication interface 25 transmits and receives signals to and from the core network 30. When data to be transmitted is supplied from the CPU 21, the signal modulated by the transmission data is transmitted to the core network 30. When the data is demodulated from the signal supplied from, the received data is supplied to the CPU 21. Data is transmitted to and received from the server device 40 via the core network 30 by the communication interface 25 and the CPU 21.

制御プログラムを実行中のCPU21は、基地局20を中継装置としてトランスポート層の通信コネクションが確立されると、これを検出し、通知プログラム221を不揮発性メモリ22から読み出して実行する。また、CPU21は、実行中の通知プログラム221に対応する通信コネクションが切断されると、これを検出し、当該通知プログラム221の実行を終了する。通知プログラム221を実行中のCPU21は、snoopモジュールにて、トランスポート層の通信コネクション毎に、以下に述べる通知処理を行う。   The CPU 21 that is executing the control program detects when the transport layer communication connection is established with the base station 20 as a relay device, and reads the notification program 221 from the nonvolatile memory 22 and executes it. When the communication connection corresponding to the notification program 221 being executed is disconnected, the CPU 21 detects this and ends the execution of the notification program 221. The CPU 21 executing the notification program 221 performs notification processing described below for each communication connection in the transport layer in the snoop module.

通知処理では、CPU21は、サーバ装置40からデータセグメントを受信すると、受信したデータセグメントの状態が「転送中」であることを示す状態データをRAM23の状態領域231に書き込む一方、当該データセグメントを移動機10へ転送する。また、通知処理において、CPU21は、下位層(具体的にはRLC副層)にてデータセグメントを廃棄した場合には、snoopモジュールにて、廃棄の事実と廃棄されたデータセグメントのシーケンス番号とを示す廃棄通知を下位層から取得し、当該データセグメントの状態が「廃棄」であることを示す状態データで、状態領域231に書き込まれた当該データセグメントの状態データを上書きする処理を行う。   In the notification process, when the CPU 21 receives the data segment from the server device 40, the CPU 21 writes the status data indicating that the status of the received data segment is “transferring” to the status area 231 of the RAM 23, while moving the data segment. Transfer to machine 10. In the notification process, if the CPU 21 discards the data segment in the lower layer (specifically, the RLC sublayer), the snoop module displays the discard fact and the sequence number of the discarded data segment. A discard notification is obtained from the lower layer, and the status data of the data segment written in the status area 231 is overwritten with the status data indicating that the status of the data segment is “discard”.

また、通知処理では、CPU21は、移動機10から確認応答セグメントを受信すると、RAM23の重複判定領域232に書き込まれているシーケンス番号と当該確認応答セグメントのACK値とを比較し、前者が後者よりも若い場合には、後者を重複判定領域232に上書きする処理と、当該確認応答セグメントをサーバ装置40へ送信する処理と、当該確認応答セグメントにより受信が確認されるデータセグメントの状態が「受信」であることを示す状態データで状態領域231に書き込まれた当該データセグメントの状態データを上書きする処理を行う。   In the notification process, when receiving the confirmation response segment from the mobile device 10, the CPU 21 compares the sequence number written in the duplication determination area 232 of the RAM 23 with the ACK value of the confirmation response segment, and the former is greater than the latter. If it is young, the process of overwriting the latter in the duplication determination area 232, the process of transmitting the confirmation response segment to the server device 40, and the state of the data segment confirmed to be received by the confirmation response segment is “Received”. The status data of the relevant data segment written in the status area 231 is overwritten with the status data indicating this.

前者が後者よりも若くない場合には、CPU21は、当該確認応答セグメントのACK値をシーケンス番号とするデータセグメントの状態が「転送中」であるか否かを判定し、「転送中」でなければ、当該確認応答セグメントをそのままサーバ装置40へ転送する。「転送中」でない状態としては、「廃棄」や「受信」の他に、コアネットワーク30が輻輳する等して基地局20に到達する前に廃棄された状態も考えられる。逆に、「転送中」であれば、CPU21は、当該確認応答セグメントのEONビットをオンにセットし、セット後の当該確認応答セグメントをサーバ装置40へ送信する。つまり、CPU21は、受信した確認応答セグメントが重複確認応答セグメントであり、かつ、当該確認応答セグメントのACK値をシーケンス番号とするデータセグメントを受信済みの場合にのみ、EONビットをオンにセットしてから当該確認応答セグメントをサーバ装置40へ送信する。換言すれば、CPU21は、移動機10におけるデータセグメントの受信にてデータセグメントの順序が入れ替わったことを検出したときに、この検出時点で、順序が後ろに入れ替わって移動機10に受信されるデータセグメントを受信済みであるか否かを判定し、受信済みである場合にのみ、当該データセグメントが入れ替わりセグメントである旨をサーバ装置40へ通知する。なお、EONビットは、一般的なTCPにおけるデータセグメントの未使用領域内の1ビットであり、デフォルトではオフにセットされており、一般的なTCPに従う通信では使用されない。   When the former is not younger than the latter, the CPU 21 determines whether or not the state of the data segment whose sequence number is the ACK value of the confirmation response segment is “transferring”, and must be “transferring”. Then, the confirmation response segment is transferred to the server device 40 as it is. In addition to “discarding” and “reception”, a state in which the core network 30 is congested or the like is discarded before reaching the base station 20 can be considered as a state that is not “transferring”. On the contrary, if it is “transferring”, the CPU 21 sets the EON bit of the confirmation response segment to ON, and transmits the confirmation response segment after setting to the server device 40. That is, the CPU 21 sets the EON bit to ON only when the received acknowledgment segment is a duplicate acknowledgment segment and a data segment having the ACK value of the acknowledgment segment as a sequence number has been received. The confirmation response segment is transmitted to the server device 40. In other words, when the CPU 21 detects that the order of the data segments has been changed by the reception of the data segments in the mobile device 10, the data received by the mobile device 10 with the order changed at the time of detection. It is determined whether or not the segment has been received. Only when the segment has been received, the server device 40 is notified that the data segment is a replacement segment. Note that the EON bit is one bit in an unused area of a data segment in general TCP, and is set to off by default, and is not used in communication according to general TCP.

なお、入れ替わりセグメントとは、移動機10が、まず1番目に受信されるべきデータセグメントを受信し、次に4番目に受信されるべきデータセグメントを受信し、次に2番目に受信されるべきデータセグメントを受信した場合には、2番目に受信されるべきデータセグメントをいう。上述したことから明らかなように、本実施形態では、重複確認応答セグメントのACK値をシーケンス番号とするデータセグメントが入れ替わりセグメントであっても、当該データセグメントが入れ替わりセグメントである旨がサーバ装置40へ通知されるとは限らない。これは、この通知の条件として、当該データセグメントの状態が「転送中」である、という条件が加わっているからである。この条件を変更して、入れ替わりセグメントであれば必ずサーバ装置40へ通知されるようにしてもよいが、そのように変更しても、通信網の実質的な利用率は向上しないし、データセグメントの受信順序の入れ替わりをデータセグメントの消失と誤検出する可能性は低下しない。よって、本実施形態では、データセグメントの状態が「転送中」である、という単純な条件を採用している。   The replacement segment means that the mobile device 10 first receives the data segment to be received first, next receives the data segment to be received fourth, and then receives the second data segment. When a data segment is received, it refers to the data segment to be received second. As is clear from the above, in this embodiment, even if a data segment whose sequence number is the ACK value of the duplication confirmation response segment is a replacement segment, the fact that the data segment is a replacement segment is notified to the server device 40. Not always notified. This is because a condition that the state of the data segment is “transferring” is added as a condition for this notification. This condition may be changed so that the server device 40 is always notified if it is a replacement segment. However, even if such a change is made, the substantial utilization rate of the communication network does not improve, and the data segment The possibility of erroneously detecting the change of the receiving order as the loss of the data segment is not lowered. Therefore, in this embodiment, a simple condition that the state of the data segment is “in transfer” is adopted.

また、通知処理における入れ替わりセグメントの通知先がサーバ装置40であるのは、本実施形態では、移動機10によるデータセグメントの受信の順序またはタイミングに基づいてデータセグメントの消失を推定し、推定結果に基づいて再送タイマを用いた再送や高速再送を行うのがサーバ装置40であるからである。そして、通知先がサーバ装置40であるから、確認応答セグメントを用いることにより、トラヒックを増やすことなく、通知を行うことができる。   In addition, in this embodiment, the notification destination of the replacement segment in the notification process is that the loss of the data segment is estimated based on the order or timing of reception of the data segment by the mobile device 10, and the estimated result is This is because it is the server device 40 that performs retransmission using the retransmission timer and high-speed retransmission. Since the notification destination is the server device 40, notification can be performed without increasing traffic by using the confirmation response segment.

図4はサーバ装置40の構成を示すブロック図である。この図から明らかなように、サーバ装置40は、一般的なコンピュータと同様に、CPU41が不揮発性メモリ42に記憶されているプログラムを、RAM43をワークエリアとして実行し、これにより各種処理を行う構成となっている。また、不揮発性メモリ42には、プログラムの実行制御を行わせるための制御プログラムと、一般的なTCPに従う通信処理と後述の入れ替わり制御処理とをトランスポート層にて行わせるための通信プログラム421と、トランスポート層以外の層での通信処理を行わせるプログラムとが記憶されている。CPU41は、図示しない電源が投入されると不揮発性メモリ42から上記の制御プログラムを読み出して実行する。   FIG. 4 is a block diagram showing the configuration of the server device 40. As is apparent from this figure, the server device 40 has a configuration in which the CPU 41 executes a program stored in the nonvolatile memory 42 by using the RAM 43 as a work area and performs various processes in the same manner as a general computer. It has become. The non-volatile memory 42 also includes a control program for controlling execution of the program, a communication program 421 for performing communication processing according to general TCP and replacement control processing described later in the transport layer, and A program for performing communication processing in a layer other than the transport layer is stored. The CPU 41 reads and executes the control program from the nonvolatile memory 42 when a power supply (not shown) is turned on.

通信インタフェース44はコアネットワーク30との間で信号を送受信するものであり、CPU41から送信すべきデータが供給されると、この送信データにより変調された信号をコアネットワーク30へ送出し、コアネットワーク30から供給された信号からデータを復調すると、この受信データをCPU41に供給する。この通信インタフェース44及びCPU41により、移動機10との間でのデータの送受信がコアネットワーク30を介して行われる。制御プログラムを実行中のCPU41は、移動機10からの要求に応じて、通信プログラム421を不揮発性メモリ42から読み出して実行する。これにより、CPU41は、トランスポート層にて、一般的なTCPに従う通信処理と入れ替わり制御処理とを行う。   The communication interface 44 transmits and receives signals to and from the core network 30. When data to be transmitted is supplied from the CPU 41, the communication interface 44 transmits a signal modulated by the transmission data to the core network 30. When the data is demodulated from the signal supplied from, the received data is supplied to the CPU 41. The communication interface 44 and the CPU 41 transmit / receive data to / from the mobile device 10 via the core network 30. The CPU 41 executing the control program reads the communication program 421 from the nonvolatile memory 42 and executes it in response to a request from the mobile device 10. As a result, the CPU 41 performs communication processing according to general TCP and switching control processing in the transport layer.

一般的なTCPに従う通信処理では、CPU41は、高速再送のために、重複確認応答セグメントを連続して受信した回数(以降、連続回数という)をRAM43に書き込む。RAM43が記憶する連続回数は、CPU41が重複確認応答セグメントを受信する度に更新される。また、CPU41は、データセグメントを送信すると、当該データセグメントに対する再送タイマをスタートさせる。再送タイマのスタートは、CPU41が当該再送タイマに初期値を設定することで行われる。再送タイマへの初期値の設定とは、CPU41が、当該再送タイマのタイマ値(カウント値)を保持するためにRAM43に確保された記憶領域に、送受信ノード間往復伝播遅延(RTT:Round-Trip Time)の実測値に基づき動的に設定された再送タイムアウト値を書き込むことをいう。また、スタートした再送タイマは、タイマ値をカウントダウンし、タイマ値が「0」になるとタイムアウトする。CPU41は、再送タイマがタイムアウトすると、タイムアウトしたデータセグメントを再送するとともに、輻輳ウィンドウを狭くする。   In communication processing according to general TCP, the CPU 41 writes the number of times that duplicate confirmation response segments have been continuously received (hereinafter referred to as the number of consecutive times) in the RAM 43 for high-speed retransmission. The number of consecutive times stored in the RAM 43 is updated each time the CPU 41 receives a duplicate confirmation response segment. Further, when the CPU 41 transmits the data segment, it starts a retransmission timer for the data segment. The retransmission timer is started by the CPU 41 setting an initial value in the retransmission timer. Setting the initial value to the retransmission timer means that the CPU 41 stores a round-trip propagation delay (RTT: Round-Trip) between the transmission and reception nodes in a storage area secured in the RAM 43 in order to hold the timer value (count value) of the retransmission timer. This refers to writing a retransmission timeout value that is dynamically set based on an actual measurement value of (Time). The started retransmission timer counts down the timer value and times out when the timer value becomes “0”. When the retransmission timer times out, the CPU 41 retransmits the timed out data segment and narrows the congestion window.

入れ替わり制御処理では、CPU41は、移動機10から確認応答セグメントを受信すると、当該確認応答セグメントのEONビットがオフの場合、何もしない。逆に、EONビットがオンの場合、CPU41は、当該確認応答セグメントのACK値をシーケンス番号としたデータセグメントの再送動作を一時的に中止する。中止対象の再送動作としては、再送タイマによる計時、及び高速再送のための連続回数の計数がある。なお、再送タイマによる計時の中止は、輻輳ウィンドウを狭くする動作の中止をも意味する。   In the switching control process, when the CPU 41 receives the confirmation response segment from the mobile device 10, the CPU 41 does nothing if the EON bit of the confirmation response segment is OFF. Conversely, when the EON bit is on, the CPU 41 temporarily stops the data segment retransmission operation using the ACK value of the confirmation response segment as a sequence number. As retransmission operations to be canceled, there are time counting by a retransmission timer and counting the number of consecutive times for high-speed retransmission. Note that the stop of timing by the retransmission timer also means the stop of the operation for narrowing the congestion window.

再送タイマによる計時の中止は、CPU41が、再送タイマのタイマ値を再設定することで行われる。タイマ値が再設定された再送タイマは、再設定された値からカウントダウンを再開する。再設定されるタイマ値は、再設定する直前のタイマ値に予め設定された加算値を加算した値となる。この加算値は任意の正値であるが、本実施形態では、データセグメントを確認応答セグメントの到着を待たずに送信する場合のデータセグメント間の送信時間間隔に相当する値を加算値としている。このような加算値としたのは、タイマ値の再設定によって予期しない悪影響が生じる可能性を低く抑えるためである。例えば、加算値が大きすぎると、再送タイマのタイムアウトタイミングが必要以上に延期されてしまう可能性が高くなる。逆に、加算値が小さすぎると、タイムアウト直前の再送タイマのタイマ値を再設定したとしても次の確認応答セグメントの到着前に当該再送タイマがタイムアウトしてしまう事態を招く可能性が高くなる。この事態が望ましくないのは、再送タイムアウトタイミングの延期の意義を薄れさせる事態であるからである。また、加算値を用いず、タイマ値を初期値(再送タイムアウト値)とすることも考えられるが、この場合には、やはり、再送タイマのタイムアウトタイミングが必要以上に延期されてしまう可能性が高くなる。本実施形態では、加算値を上述のように定めることにより、これらの可能性の低減を図っているのである。なお、加算値は、サーバ装置40とコアネットワーク30との間の通信帯域幅に依存するから、この通信帯域幅に応じた値でもある。また、加算値を予め設定するのではなく、CPU41がデータセグメント間の送信時間間隔を実測または推定し、実測値または推定値に基づいて動的に定めるようにしてもよい。   The stop of timing by the retransmission timer is performed by the CPU 41 resetting the timer value of the retransmission timer. The retransmission timer whose timer value has been reset restarts the countdown from the reset value. The reset timer value is a value obtained by adding a preset addition value to the timer value immediately before resetting. Although this added value is an arbitrary positive value, in the present embodiment, a value corresponding to the transmission time interval between data segments when the data segment is transmitted without waiting for the arrival of the acknowledgment segment is used as the added value. The reason why such an addition value is used is to suppress the possibility of unexpected adverse effects caused by resetting the timer value. For example, if the addition value is too large, there is a high possibility that the timeout timing of the retransmission timer will be postponed more than necessary. On the other hand, if the added value is too small, there is a high possibility that the retransmission timer will time out before arrival of the next acknowledgment segment even if the timer value of the retransmission timer immediately before the timeout is reset. This situation is undesirable because the significance of postponing the retransmission timeout timing is diminished. In addition, it is conceivable that the timer value is set to the initial value (retransmission timeout value) without using the added value. However, in this case, there is a high possibility that the timeout timing of the retransmission timer is postponed more than necessary. Become. In this embodiment, the possibility is reduced by determining the addition value as described above. The added value depends on the communication bandwidth between the server device 40 and the core network 30, and is also a value corresponding to this communication bandwidth. Further, instead of setting the addition value in advance, the CPU 41 may actually measure or estimate the transmission time interval between the data segments, and dynamically determine based on the actually measured value or the estimated value.

連続回数の計数の中止は、CPU41が、RAM43に書き込まれている連続回数を更新し、その値を2とすることで行われる。この場合、CPU41は、連続回数の計数処理をスキップする。このため、当該確認応答セグメントの受信を契機とした更新後の連続回数は「2」となる。もちろん、CPU41が、連続回数の計数処理をスキップしないようにし、この計数処理を見越して連続回数を「1」とし、当該確認応答セグメントの受信を契機とした計数処理により連続回数が「2」に更新されるようにしてもよい。なお、当該確認応答セグメントの受信を契機とした更新後の連続回数を再送閾値に満たない最大値(すなわち「2」)とするのは、当該確認応答セグメントのACK値で示されるデータセグメントが最終的に基地局20で廃棄された場合の再送遅延を低減するためである。   The stop of counting the number of continuous times is performed by the CPU 41 updating the number of continuous times written in the RAM 43 and setting the value to 2. In this case, the CPU 41 skips the continuous count process. For this reason, the number of continuous times after the update triggered by reception of the confirmation response segment is “2”. Of course, the CPU 41 does not skip the counting process of the continuous number, sets the continuous number to “1” in anticipation of the counting process, and sets the continuous number to “2” by the counting process triggered by reception of the confirmation response segment. It may be updated. Note that the number of consecutive updates after the reception of the acknowledgment segment is set to the maximum value that does not satisfy the retransmission threshold (that is, “2”) because the data segment indicated by the ACK value of the acknowledgment segment is the last This is to reduce the retransmission delay when the base station 20 is discarded.

[動作]
次に、上述した構成の通信システム100の動作について説明する。ただし、移動機10とサーバ装置40との間には、基地局20を中継装置としてトランスポート層の通信コネクションが確立されているものとする。よって、以降の説明において、基地局20のCPU21は既に不揮発性メモリ22から制御プログラム及び通知プログラム221を読み出して実行しており、サーバ装置40のCPU41は既に不揮発性メモリ42から制御プログラム及び通信プログラム421を読み出して実行しているものとする。また、基地局20のRAM23の重複判定領域232にはシーケンス番号「0」が書き込まれているものとする。
[Operation]
Next, the operation of the communication system 100 configured as described above will be described. However, it is assumed that a transport layer communication connection is established between the mobile device 10 and the server device 40 with the base station 20 as a relay device. Therefore, in the following description, the CPU 21 of the base station 20 has already read and executed the control program and the notification program 221 from the nonvolatile memory 22, and the CPU 41 of the server device 40 has already read the control program and the communication program from the nonvolatile memory 42. Assume that 421 is read and executed. Further, it is assumed that the sequence number “0” is written in the duplication determination area 232 of the RAM 23 of the base station 20.

まず、以降の説明において参照する新たな図面について説明する。図5は通知プログラム221を実行中のCPU21により行われる通知処理の一部の流れを示すフローチャートであり、図6は当該通知処理の他の流れを示すフローチャートである。これら2つのフローチャートに示される処理はCPU21により並列に実行されている。図7は通信プログラム421を実行中のCPU41により行われる入れ替わり制御処理の流れを示すフローチャートである。図8は通信システム100により行われる通信の一例を示すシーケンス図であり、図9は一般的な通信システムにて図8に示す通信と同様の通信を行おうとした場合のシーケンス図である。なお、図9における一般的な通信システムとは、通信システム100の基地局20から通知処理を行う機能を、通信システム100のサーバ装置40から入れ替わり制御処理を行う機能を取り去って得られる通信システムである。   First, a new drawing referred to in the following description will be described. FIG. 5 is a flowchart showing a part of the notification process performed by the CPU 21 executing the notification program 221, and FIG. 6 is a flowchart showing another flow of the notification process. The processes shown in these two flowcharts are executed in parallel by the CPU 21. FIG. 7 is a flowchart showing the flow of the replacement control process performed by the CPU 41 executing the communication program 421. FIG. 8 is a sequence diagram illustrating an example of communication performed by the communication system 100, and FIG. 9 is a sequence diagram when communication similar to the communication illustrated in FIG. 8 is performed in a general communication system. The general communication system in FIG. 9 is a communication system obtained by removing the function of performing notification processing from the base station 20 of the communication system 100 and replacing the server device 40 of the communication system 100 with control processing. is there.

図8に示すように、サーバ装置40のCPU41は、輻輳ウィンドウ内の全てのデータセグメント(シーケンス番号が500〜2500のデータセグメント)を順に送信する。これらのデータセグメントは、サーバ装置40から送信された順序で基地局20に到着する。   As illustrated in FIG. 8, the CPU 41 of the server device 40 sequentially transmits all data segments (data segments having a sequence number of 500 to 2500) within the congestion window. These data segments arrive at the base station 20 in the order transmitted from the server device 40.

基地局20のCPU21は、シーケンス番号「500」のデータセグメントを受信すると(図5のステップSA1)、受信したセグメントがデータセグメントであるか否か(確認応答セグメントでないか否か)を判定する(ステップSA2)。受信したセグメントはデータセグメントであるから、CPU21は、受信したデータセグメントの状態が「転送中」であることを示す状態データをRAM23の状態領域231に書き込み、当該データセグメントをsnoopモジュールから下位の層へ渡す(ステップSA3及びSA4)。CPU21がサーバ装置40からのデータセグメントを下位の層へ渡すことは、CPU21が当該データセグメントを移動機10へ送信することに等しい。   When receiving the data segment with the sequence number “500” (step SA1 in FIG. 5), the CPU 21 of the base station 20 determines whether the received segment is a data segment (whether it is not an acknowledgment segment) ( Step SA2). Since the received segment is a data segment, the CPU 21 writes status data indicating that the status of the received data segment is “transferring” to the status area 231 of the RAM 23, and stores the data segment from the snoop module to a lower layer. (Steps SA3 and SA4). The transfer of the data segment from the server device 40 to the lower layer by the CPU 21 is equivalent to the CPU 21 transmitting the data segment to the mobile device 10.

以降、基地局20では、上述と同様の処理が繰り返され、シーケンス番号が1000〜2500のデータセグメントの状態がそれぞれ「転送中」であることを示す状態データがRAM23の状態領域231に書き込まれ、これらのデータセグメントが順に移動機10へ送信される。しかし、この通信例では、シーケンス番号「1000」のデータセグメントが基地局20と移動機10との間の無線区間で遅延する。このため、シーケンス番号「1000」のデータセグメントは、シーケンス番号「2500」のデータセグメントよりも後に移動機10に到着する。   Thereafter, in the base station 20, the same processing as described above is repeated, and the status data indicating that the status of the data segment having the sequence number 1000 to 2500 is “transferring” is written in the status area 231 of the RAM 23, These data segments are sequentially transmitted to the mobile device 10. However, in this communication example, the data segment with the sequence number “1000” is delayed in the wireless section between the base station 20 and the mobile device 10. Therefore, the data segment with the sequence number “1000” arrives at the mobile station 10 after the data segment with the sequence number “2500”.

移動機10は、シーケンス番号「500」のデータセグメントを受信し、このデータセグメントの受信確認のためのACK値が1000の確認応答セグメントを返信する。次に、移動機10は、シーケンス番号「1500」のデータセグメントを受信する。この時点で移動機10が受信を期待しているシーケンス番号は1000であり、1500ではないことから、移動機10は、当該データセグメントの受信確認のためのACK値が1000の確認応答セグメントを返信する。この確認応答セグメントは、そのACK値が移動機10から直前に送信された確認応答セグメントのACK値と同一であるから、重複確認応答セグメントである。以降、移動機10では、上述と同様の処理が繰り返され、更に2つの重複確認応答セグメントが返信される。そして、移動機10は、シーケンス番号「1000」のデータセグメントを受信し、このデータセグメントの受信確認のためのACK値が3000の確認応答セグメントを返信する。このようにして移動機10から送信された確認応答セグメントは、送信された順序で基地局20に到着する。   The mobile device 10 receives the data segment with the sequence number “500” and returns an acknowledgment segment with an ACK value of 1000 for confirming reception of this data segment. Next, the mobile device 10 receives the data segment with the sequence number “1500”. At this time, the sequence number that the mobile device 10 expects to receive is 1000 and not 1500, so the mobile device 10 returns an acknowledgment segment with an ACK value of 1000 for confirming reception of the data segment. To do. This acknowledgment segment is a duplicate acknowledgment segment because its ACK value is the same as the ACK value of the acknowledgment segment transmitted immediately before from the mobile station 10. Thereafter, in the mobile device 10, the same processing as described above is repeated, and two duplicate confirmation response segments are returned. Then, the mobile device 10 receives the data segment with the sequence number “1000” and returns an acknowledgment segment with an ACK value of 3000 for confirming reception of this data segment. Thus, the acknowledgment segment transmitted from the mobile device 10 arrives at the base station 20 in the order of transmission.

基地局20のCPU21は、シーケンス番号が1500のデータセグメントを移動機10へ送信した後に、シーケンス番号「500」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSA1)。この確認応答セグメントを受信すると、CPU21は、受信したセグメントがデータセグメントであるか否か(確認応答セグメントでないか否か)を判定する(ステップSA2)。受信したセグメントは確認応答セグメントであるから、CPU21は、当該確認応答セグメントが重複確認応答セグメントであるか否かを判定する(ステップSA5)。この判定は、CPU21が、RAM23の重複判定領域232に書き込まれているシーケンス番号と当該確認応答セグメントのACK値とを比較することで行われる。   After transmitting the data segment with the sequence number 1500 to the mobile device 10, the CPU 21 of the base station 20 receives the confirmation response segment for confirming reception of the data segment with the sequence number “500” (step SA1). When receiving this confirmation response segment, the CPU 21 determines whether or not the received segment is a data segment (whether or not it is a confirmation response segment) (step SA2). Since the received segment is the confirmation response segment, the CPU 21 determines whether or not the confirmation response segment is a duplicate confirmation response segment (step SA5). This determination is performed by the CPU 21 comparing the sequence number written in the duplication determination area 232 of the RAM 23 with the ACK value of the confirmation response segment.

ここでは、重複判定領域232に書き込まれているシーケンス番号「0」が当該確認応答セグメントのACK値「1000」よりも若いから、当該確認応答セグメントは重複確認応答セグメントではないと判定される。よって、CPU21は受信確認処理を行う(ステップSA6)。受信確認処理では、CPU21は、この確認応答セグメントにより受信確認がなされるデータセグメントの状態が「受信」であることを示す状態データで状態領域231に書き込まれた当該データセグメントの状態データを上書きする。ここでは、当該確認応答セグメントにより受信確認がなされるデータセグメントはシーケンス番号「500」のデータセグメントであるから、シーケンス番号「500」のデータセグメントの状態データが「受信」を示すように更新される。また、受信確認処理では、CPU21は、当該確認応答セグメントのACK値を重複判定領域232に上書きする。ここでは、当該確認応答セグメントのACK値は1000であるから、重複判定領域232にシーケンス番号「1000」が書き込まれる。   Here, since the sequence number “0” written in the duplication determination area 232 is smaller than the ACK value “1000” of the confirmation response segment, it is determined that the confirmation response segment is not a duplication confirmation response segment. Therefore, the CPU 21 performs reception confirmation processing (step SA6). In the reception confirmation process, the CPU 21 overwrites the state data of the data segment written in the state area 231 with the state data indicating that the state of the data segment to be confirmed by the confirmation response segment is “reception”. . Here, since the data segment whose reception is confirmed by the confirmation response segment is the data segment with the sequence number “500”, the status data of the data segment with the sequence number “500” is updated to indicate “reception”. . In the reception confirmation process, the CPU 21 overwrites the overlap determination area 232 with the ACK value of the confirmation response segment. Here, since the ACK value of the confirmation response segment is 1000, the sequence number “1000” is written in the duplication determination area 232.

次に、CPU21は、当該確認応答セグメントをsnoopモジュールから下位の層へ渡す(ステップSA4)。CPU21が移動機10からの確認応答セグメントを下位の層へ渡すことは、CPU21が当該確認応答セグメントをサーバ装置40へ送信することを意味している。   Next, the CPU 21 passes the confirmation response segment from the snoop module to the lower layer (step SA4). The transfer of the confirmation response segment from the mobile device 10 to the lower layer by the CPU 21 means that the CPU 21 transmits the confirmation response segment to the server device 40.

また、CPU21は、シーケンス番号が2500のデータセグメントを移動機10へ送信した後に、シーケンス番号「1500」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSA1)。このセグメントは確認応答セグメントであるから、CPU21は、上述したように、当該確認応答セグメントが重複確認応答セグメントであるか否かを判定する(ステップSA2:NO、及びSA5)。ここでは、重複判定領域232に書き込まれているシーケンス番号は1000であり、当該確認応答セグメントのACK値は1000であるから、当該確認応答セグメントは重複確認応答セグメントであると判定される。よって、CPU21は、当該確認応答セグメントのACK値をシーケンス番号とするデータセグメントの状態が「転送中」であるか否かを判定する(ステップSA7)。状態領域231に書き込まれた状態データによりシーケンス番号「1000」のデータセグメントの状態が「転送中」であることが示されているから、CPU21は、当該確認応答セグメントのEONビットをオンにセットする(ステップSA8)。次に、CPU21は、EONビットがオンにセットされた確認応答セグメントをサーバ装置40へ送信する(ステップSA4)。   Further, after transmitting the data segment with the sequence number 2500 to the mobile device 10, the CPU 21 receives the confirmation response segment for confirming the reception of the data segment with the sequence number “1500” (step SA1). Since this segment is an acknowledgment segment, as described above, the CPU 21 determines whether or not the acknowledgment segment is a duplicate acknowledgment segment (steps SA2: NO and SA5). Here, since the sequence number written in the duplication determination area 232 is 1000 and the ACK value of the confirmation response segment is 1000, it is determined that the confirmation response segment is a duplication confirmation response segment. Therefore, the CPU 21 determines whether or not the state of the data segment whose sequence number is the ACK value of the confirmation response segment is “transferring” (step SA7). Since the status data written in the status area 231 indicates that the status of the data segment with the sequence number “1000” is “being transferred”, the CPU 21 sets the EON bit of the confirmation response segment to ON. (Step SA8). Next, the CPU 21 transmits an acknowledgment segment with the EON bit set to ON to the server device 40 (step SA4).

シーケンス番号「1000」のデータセグメントの状態が「転送中」から「受信」に変わるのは、CPU21がシーケンス番号「1000」のデータセグメントの受信確認のための確認応答セグメントを受信した後であり、CPU21は、当該確認応答セグメントを受信する前に、重複確認応答セグメントを更に2つ受信する。よって、CPU21は、EONビットがオンにセットされた重複確認応答セグメントを3つ連続してサーバ装置40へ送信する(ステップSA1、SA2:NO、SA5:YES、SA7:YES、SA8、及びSA4)。   The state of the data segment with the sequence number “1000” changes from “in transit” to “receive” after the CPU 21 receives the acknowledgment segment for confirming the receipt of the data segment with the sequence number “1000”. The CPU 21 further receives two duplicate confirmation response segments before receiving the confirmation response segment. Therefore, the CPU 21 continuously transmits three duplicate confirmation response segments having the EON bit set to ON to the server device 40 (steps SA1, SA2: NO, SA5: YES, SA7: YES, SA8, and SA4). .

次に、CPU21は、シーケンス番号「1000」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSA1)。このセグメントは確認応答セグメントであり、重複確認応答セグメントでないから、CPU21は、受信確認処理を行い、当該確認応答セグメントをサーバ装置40へ送信する(ステップSA2:NO、SA5:NO、SA6、及びSA4)。この結果、重複判定領域232にはシーケンス番号「3000」が書き込まれ、シーケンス番号が500〜2500のデータセグメントについて状態領域231に書き込まれている状態データは「受信」を示すように更新される。
以上のようにして基地局20から送信された確認応答セグメントは、送信された順序でサーバ装置40に到着する。
Next, the CPU 21 receives an acknowledgment segment for confirming reception of the data segment with the sequence number “1000” (step SA1). Since this segment is an acknowledgment segment and not a duplicate acknowledgment segment, the CPU 21 performs reception confirmation processing and transmits the acknowledgment segment to the server device 40 (steps SA2: NO, SA5: NO, SA6, and SA4). ). As a result, the sequence number “3000” is written in the duplication determination area 232, and the status data written in the status area 231 for the data segment having the sequence numbers of 500 to 2500 is updated to indicate “reception”.
The confirmation response segments transmitted from the base station 20 as described above arrive at the server device 40 in the order of transmission.

サーバ装置40のCPU41は、シーケンス番号が2500のデータセグメントを移動機10へ送信した後に、シーケンス番号「500」のデータセグメントの受信確認のための確認応答セグメントを受信する(図7のステップSB1)。確認応答セグメントを受信すると、CPU41は、この確認応答セグメントのEONビットがオンにセットされているか否かを判定する(ステップSB2)。受信した確認応答セグメントのEONビットはオフにセットされているから、CPU41は、一般的なTCPに従った処理のみを行う(ステップSB2:NO)。つまり、輻輳ウィンドウを1つのデータセグメントの分だけスライドさせ、シーケンス番号「3000」のデータセグメントを移動機10へ送信する。   The CPU 41 of the server device 40 receives the confirmation response segment for confirming the reception of the data segment with the sequence number “500” after transmitting the data segment with the sequence number 2500 to the mobile device 10 (step SB1 in FIG. 7). . When receiving the confirmation response segment, the CPU 41 determines whether or not the EON bit of this confirmation response segment is set to ON (step SB2). Since the EON bit of the received acknowledgment segment is set to OFF, the CPU 41 performs only processing according to general TCP (step SB2: NO). That is, the congestion window is slid by one data segment, and the data segment with the sequence number “3000” is transmitted to the mobile device 10.

このデータセグメントは、基地局20のCPU21により、2番目の重複確認応答セグメントの送信後かつ3番目の重複確認応答セグメントの送信前に受信され、移動機10へ転送される。この転送の際に、基地局20の状態領域231には、シーケンス番号「3000」のデータセグメントの状態が「転送中」であることを示す状態データが書き込まれる。   This data segment is received by the CPU 21 of the base station 20 after the transmission of the second duplication confirmation response segment and before the transmission of the third duplication confirmation response segment, and is transferred to the mobile device 10. During this transfer, state data indicating that the state of the data segment with the sequence number “3000” is “being transferred” is written in the state area 231 of the base station 20.

基地局20から転送された、シーケンス番号「3000」のデータセグメントは、移動機10により、シーケンス番号「1000」のデータセグメントの受信確認のための確認応答セグメントの送信後に受信される。移動機10は、このデータセグメントの受信確認のためのACK値が3500の確認応答セグメントを返信する。この確認応答セグメントは、基地局20のCPU21により、シーケンス番号「1000」のデータセグメントの受信確認のための確認応答セグメントの受信後に受信され、サーバ装置40へ転送される。この転送の際に、シーケンス番号「3000」のデータセグメントについて基地局20の状態領域231に書き込まれている状態データが、「受信」を示すデータに更新される。   The data segment with the sequence number “3000” transferred from the base station 20 is received by the mobile device 10 after the transmission of the acknowledgment segment for confirming the reception of the data segment with the sequence number “1000”. The mobile station 10 returns an acknowledgment segment with an ACK value of 3500 for confirming reception of this data segment. The confirmation response segment is received by the CPU 21 of the base station 20 after receiving the confirmation response segment for confirming the reception of the data segment with the sequence number “1000” and transferred to the server device 40. During this transfer, the status data written in the status area 231 of the base station 20 for the data segment with the sequence number “3000” is updated to data indicating “reception”.

サーバ装置40のCPU41は、シーケンス番号「500」のデータセグメントの受信確認のための確認応答セグメントに続いて、シーケンス番号「1500」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSB1)。この確認応答セグメントのEONビットはオンにセットされているから、CPU41は、当該確認応答セグメントのACK値をシーケンス番号としたデータセグメントの再送動作を一時的に中止する(ステップSB2:YES、及びSB3)。具体的には、CPU41は、当該データセグメントの再送タイマのタイマ値に予め定められた加算値を加算した値を当該タイマのタイマ値として再設定する一方、RAM43に書き込まれている連続回数を更新し、その値を2とし、連続回数の計数処理をスキップする。もちろん、この間にも、一般的なTCPに従う処理のうち、一時的に中止された処理を除いた処理は継続して行われている。   The CPU 41 of the server apparatus 40 receives an acknowledgment segment for confirming the reception of the data segment with the sequence number “1500” following the acknowledgment segment for confirming the reception of the data segment with the sequence number “500” (step SB1). Since the EON bit of this acknowledgment segment is set to ON, the CPU 41 temporarily stops the data segment retransmission operation using the ACK value of the acknowledgment segment as a sequence number (steps SB2: YES and SB3). ). Specifically, the CPU 41 resets a value obtained by adding a predetermined addition value to the timer value of the retransmission timer of the data segment as the timer value of the timer, while updating the continuous number of times written in the RAM 43. Then, the value is set to 2, and the counting process of the continuous number is skipped. Of course, also during this period, out of the processes according to the general TCP, the processes other than the temporarily stopped processes are continuously performed.

次に、CPU41は、シーケンス番号「2000」及び「2500」のデータセグメントの受信確認のための確認応答セグメントを順に受信し、これらについて、シーケンス番号「1500」のデータセグメントの受信確認のための確認応答セグメントを受信したときと同様の処理を繰り返す(ステップSB1、SB2:YES、及びSB3)。次に、CPU41は、シーケンス番号「1000」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSB1)。この確認応答セグメントのEONビットはオフにセットされているから、CPU41は、一般的なTCPに従った処理のみを行う(ステップSB2:NO)。この結果、CPU41は、輻輳ウィンドウをスライドさせ、シーケンス番号が3500〜5500のデータセグメントを順に送信する処理を開始する。   Next, the CPU 41 sequentially receives confirmation response segments for confirming the reception of the data segments having the sequence numbers “2000” and “2500”, and confirming these for confirming the reception of the data segment having the sequence number “1500”. The same processing as when the response segment is received is repeated (steps SB1, SB2: YES and SB3). Next, the CPU 41 receives an acknowledgment segment for confirming reception of the data segment with the sequence number “1000” (step SB1). Since the EON bit of the confirmation response segment is set to OFF, the CPU 41 performs only processing according to general TCP (step SB2: NO). As a result, the CPU 41 starts the process of sliding the congestion window and sequentially transmitting the data segments having the sequence numbers of 3500 to 5500.

ここで、図9を参照し、上述した動作の特徴について説明する。図9に示すように、一般的な通信システムでは、サーバ装置は、重複確認応答セグメントを3つ連続して受信すると、当該重複確認応答セグメントのACK値をシーケンス番号としたデータセグメントが消失したものとみなし、当該データセグメントの再送(高速再送)を行う。しかし、消失したものとみなしたデータセグメントは、実は移動機により受信されている。つまり、上記の再送は、移動機におけるデータセグメントの受信順序の入れ替わりをデータセグメントの消失と誤検出することに起因した不適切な再送である。これに対し、本実施形態では、図8から明らかなように、サーバ装置40は重複確認応答セグメントを3つ連続して受信しても、これらのEONビットがオンにセットされているため、上記の再送を行わない。つまり、本実施形態によれば、移動機10におけるデータセグメントの受信順序の入れ替わりをデータセグメントの消失と誤検出することに起因した不適切な高速再送を防止することができる。   Here, the features of the above-described operation will be described with reference to FIG. As shown in FIG. 9, in a general communication system, when the server apparatus receives three consecutive duplicate acknowledgment segments, the data segment with the ACK value of the duplicate acknowledgment segment as a sequence number disappears. The data segment is retransmitted (high-speed retransmission). However, the data segment regarded as lost is actually received by the mobile device. That is, the above retransmission is an improper retransmission caused by erroneously detecting the change of the reception order of the data segments in the mobile device as the loss of the data segments. On the other hand, in this embodiment, as apparent from FIG. 8, even if the server device 40 receives three consecutive acknowledgment segments, these EON bits are set to ON. Will not be resent. That is, according to the present embodiment, it is possible to prevent inappropriate high-speed retransmission due to erroneous detection of the change of the reception order of the data segments in the mobile device 10 as the loss of the data segments.

引き続き、通信システム100の動作を説明する。
図8に示すように、サーバ装置40のCPU41は、シーケンス番号が3500〜5500のデータセグメントを順に送信する処理を行っている間に、シーケンス番号「3000」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSB1)。この確認応答セグメントのEONビットはオフにセットされているから、CPU41は、一般的なTCPに従った処理のみを行う(ステップSB2:NO)。この結果、CPU41は、輻輳ウィンドウを更にスライドさせ、シーケンス番号が6000までのデータセグメントを順に送信する処理を行う。これらのデータセグメントは、サーバ装置40から送信された順序で基地局20に到着する。
Subsequently, the operation of the communication system 100 will be described.
As shown in FIG. 8, the CPU 41 of the server device 40 confirms the reception of the data segment with the sequence number “3000” while performing the process of sequentially transmitting the data segments with the sequence numbers 3500 to 5500. A response segment is received (step SB1). Since the EON bit of the confirmation response segment is set to OFF, the CPU 41 performs only processing according to general TCP (step SB2: NO). As a result, the CPU 41 performs a process of further sliding the congestion window and sequentially transmitting data segments having a sequence number up to 6000. These data segments arrive at the base station 20 in the order transmitted from the server device 40.

基地局20のCPU21は、シーケンス番号「3500」のデータセグメントを受信すると、受信したセグメントがデータセグメントであるから、このデータセグメントの状態が「転送中」であることを示す状態データをRAM23の状態領域231に書き込み、このデータセグメントを移動機10へ送信する(ステップSA1、SA2:YES、SA3、及びSA4)。以降、基地局20では、上述と同様の処理が繰り返され、シーケンス番号が4000〜6000のデータセグメントの状態がそれぞれ「転送中」であることを示す状態データがRAM23の状態領域231に書き込まれ、これらのデータセグメントが順に移動機10へ送信される。   When the CPU 21 of the base station 20 receives the data segment with the sequence number “3500”, since the received segment is a data segment, status data indicating that the status of this data segment is “transferring” is stored in the state of the RAM 23. The data segment is written in the area 231 and this data segment is transmitted to the mobile device 10 (steps SA1, SA2: YES, SA3, and SA4). Thereafter, the base station 20 repeats the same processing as described above, and the status data indicating that the status of the data segment having the sequence number of 4000 to 6000 is “transferring” is written in the status area 231 of the RAM 23, These data segments are sequentially transmitted to the mobile device 10.

しかし、この通信例では、シーケンス番号が3500〜4500のデータセグメントが基地局20と移動機10との間の無線区間で消失する。したがって、移動機10がシーケンス番号「3000」のデータセグメントの次に受信するデータセグメントは、シーケンス番号が「5000」のデータセグメントである。移動機10は、シーケンス番号が5000〜6000のデータセグメントを順に受信すると、これらのデータセグメントの受信確認のためのACK値が3500の確認応答セグメントを順に返信する。これらの確認応答セグメントは全て重複確認応答セグメントである。   However, in this communication example, a data segment with a sequence number of 3500 to 4500 disappears in the wireless section between the base station 20 and the mobile device 10. Therefore, the data segment that mobile station 10 receives after the data segment with sequence number “3000” is the data segment with sequence number “5000”. When the mobile station 10 receives the data segments having the sequence numbers of 5000 to 6000 in sequence, the mobile station 10 returns the acknowledgment segments having the ACK value 3500 for confirming the reception of these data segments in order. These acknowledgment segments are all duplicate acknowledgment segments.

基地局20のCPU21は、シーケンス番号「6000」のデータセグメントを移動機10へ送信した後に、シーケンス番号「5000」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSA1)。この確認応答セグメントは重複確認応答セグメントであるから、CPU21は、この確認応答セグメントのACK値「3500」をシーケンス番号としたデータセグメントの状態が「転送中」であるか否かを判定する(ステップSA2:NO、SA5:YES、及びSA7)。この時点では、当該データセグメントの状態は「転送中」であるから、CPU21は、当該確認応答セグメントのEONビットをオンにセットし、セット後の確認応答セグメントをサーバ装置40へ送信する(ステップSA8、及びSA4)。   After transmitting the data segment with the sequence number “6000” to the mobile device 10, the CPU 21 of the base station 20 receives the acknowledgment segment for confirming the reception of the data segment with the sequence number “5000” (step SA1). Since this confirmation response segment is a duplicate confirmation response segment, the CPU 21 determines whether or not the state of the data segment whose sequence number is the ACK value “3500” of this confirmation response segment is “Transferring” (Step S21). SA2: NO, SA5: YES, and SA7). At this time, since the state of the data segment is “transferring”, the CPU 21 sets the EON bit of the confirmation response segment to ON and transmits the confirmation response segment after setting to the server device 40 (step SA8). And SA4).

次に、CPU21は、トランスポート層よりも下位層(具体的にはRLC副層)にて、タイムアウト等により、シーケンス番号「3500」のデータセグメントを廃棄する。CPU21は、snoopモジュールにて、この旨を示す廃棄通知を下位層から取得する(ステップSC1)。廃棄通知を取得すると、CPU21は、廃棄通知に示されるシーケンス番号のデータセグメントの状態が「廃棄」であることを示す状態データで、RAM23の状態領域231に書き込まれた当該データセグメントの状態データを上書きする(ステップSC2)。   Next, the CPU 21 discards the data segment having the sequence number “3500” due to a timeout or the like in a layer lower than the transport layer (specifically, the RLC sublayer). CPU21 acquires the discard notification which shows this from a lower layer in a snoop module (step SC1). Upon obtaining the discard notification, the CPU 21 obtains the status data of the data segment written in the status area 231 of the RAM 23 with the status data indicating that the status of the data segment of the sequence number indicated in the discard notification is “discard”. Overwrite (step SC2).

次に、CPU21は、シーケンス番号「5500」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSA1)。この確認応答セグメントは重複確認応答セグメントであるから、CPU21は、この確認応答セグメントのACK値「3500」をシーケンス番号としたデータセグメントの状態が「転送中」であるか否かを判定する(ステップSA2:NO、SA5:YES、及びSA7)。この時点では、当該データセグメントの状態は「廃棄」であるから、CPU21は当該確認応答セグメントをそのままサーバ装置40へ送信する(ステップSA4)。   Next, the CPU 21 receives an acknowledgment segment for confirming reception of the data segment with the sequence number “5500” (step SA1). Since this confirmation response segment is a duplicate confirmation response segment, the CPU 21 determines whether or not the state of the data segment whose sequence number is the ACK value “3500” of this confirmation response segment is “Transferring” (Step S21). SA2: NO, SA5: YES, and SA7). At this time, since the state of the data segment is “discard”, the CPU 21 transmits the confirmation response segment to the server device 40 as it is (step SA4).

以降、基地局20では、上述と同様の処理が繰り返され、シーケンス番号「6000」のデータセグメントの受信確認のための確認応答セグメントがそのままサーバ装置40へ転送される。
以上のようにして基地局20から送信された確認応答セグメントは、送信された順序でサーバ装置40に到着する。
Thereafter, the base station 20 repeats the same processing as described above, and the confirmation response segment for confirming reception of the data segment with the sequence number “6000” is transferred to the server device 40 as it is.
The confirmation response segments transmitted from the base station 20 as described above arrive at the server device 40 in the order of transmission.

サーバ装置40のCPU41は、シーケンス番号「6000」のデータセグメントを移動機10へ送信した後に、シーケンス番号「5000」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSB1)。この確認応答セグメントのEONビットはオンにセットされているから、CPU41は、当該確認応答セグメントのACK値「3500」をシーケンス番号としたデータセグメントの再送動作を一時的に中止する(ステップSB2:YES、及びSB3)。この結果、当該データセグメントの再送タイマのタイムアウトタイミングは延期され、高速再送のための連続回数は2となる。   After transmitting the data segment with the sequence number “6000” to the mobile device 10, the CPU 41 of the server device 40 receives the confirmation response segment for confirming the reception of the data segment with the sequence number “5000” (step SB1). Since the EON bit of this acknowledgment segment is set to ON, the CPU 41 temporarily stops the data segment retransmission operation with the ACK value “3500” of the acknowledgment segment as a sequence number (step SB2: YES). And SB3). As a result, the timeout timing of the retransmission timer of the data segment is postponed, and the number of consecutive times for high-speed retransmission is 2.

次に、CPU41は、シーケンス番号「5500」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSB1)。この確認応答セグメントのEONビットはオフにセットされているから、CPU41は、一般的なTCPに従った処理のみを行う(ステップSB2:NO)。つまり、高速再送のための連続回数に1を加算する。この結果、連続回数は再送閾値に達するから、CPU41は、当該確認応答セグメントのACK値「3500」をシーケンス番号としたデータセグメントの再送を行う。   Next, the CPU 41 receives an acknowledgment segment for confirming reception of the data segment with the sequence number “5500” (step SB1). Since the EON bit of the confirmation response segment is set to OFF, the CPU 41 performs only processing according to general TCP (step SB2: NO). That is, 1 is added to the number of consecutive times for high-speed retransmission. As a result, since the number of consecutive times reaches the retransmission threshold, the CPU 41 retransmits the data segment with the ACK value “3500” of the confirmation response segment as a sequence number.

ここで、図9を参照し、上述した動作の特徴について説明する。図9に示すように、一般的な通信システムでは、サーバ装置において、重複確認応答セグメントが3つ連続して到着する前に、シーケンス番号「3500」のデータセグメントの再送タイマがタイムアウトし、当該データセグメントが再送される。これに対し、本実施形態では、図8から明らかなように、当該再送タイマがタイムアウトする前に、高速再送により、当該データセグメントが再送される。TCPに従う通信におけるタイムアウトによる再送は輻輳ウィンドウを大幅に狭くする処理を伴うのに対し、高速再送による再送にはそのような処理が伴わないため、以降の通信において、本実施形態の方が効率的に通信網を利用することができる。   Here, the features of the above-described operation will be described with reference to FIG. As shown in FIG. 9, in a general communication system, the retransmission timer of the data segment with the sequence number “3500” times out before three duplicate acknowledgment segments arrive at the server device, and the data The segment is retransmitted. On the other hand, in this embodiment, as is apparent from FIG. 8, the data segment is retransmitted by high-speed retransmission before the retransmission timer times out. Retransmission due to timeout in communication conforming to TCP involves a process that significantly narrows the congestion window, whereas retransmission by high-speed retransmission does not involve such a process, and therefore this embodiment is more efficient in subsequent communications. A communication network can be used.

以上、説明したように、本実施形態によれば、RLC副層にてSDUの順序制御を行わないから通信網の実質的な利用率が低下しない。また、本実施形態によれば、RLC副層にてSDUの順序制御を行わないことによりトランスポート層において発生する事態であって、データセグメントの受信順序の入れ替わりをデータセグメントの消失と誤検出する事態に起因した不適切なフロー制御が行われない。よって、通信網の実質的な利用率を向上させることができる。   As described above, according to the present embodiment, since the order of SDUs is not controlled in the RLC sublayer, the substantial utilization rate of the communication network does not decrease. In addition, according to the present embodiment, a situation that occurs in the transport layer by not performing SDU order control in the RLC sublayer, and erroneously detecting a change in the reception order of data segments as a loss of data segments. Inappropriate flow control due to the situation is not performed. Therefore, the substantial utilization rate of the communication network can be improved.

なお、上述の動作説明では、一般的な通信システムにおいて再送タイマのタイムアウトをもってデータセグメントの消失とみなすことが誤りであるようなケースについての説明を省略した。これは、EONビットがオンにセットされた確認応答セグメントを受信した場合に再送タイマの計時が一時的に中止され、タイムアウトタイミングが延期されることについては既述であり、この記述から、再送タイマが誤って早期にタイムアウトしてしまう事態をも本実施形態によって回避可能であることは容易に理解可能である、からである。   In the above description of the operation, a description of a case where it is an error to consider a data segment loss when a retransmission timer times out in a general communication system is omitted. This has already been described that when the acknowledgment segment with the EON bit set to ON is received, the timing of the retransmission timer is temporarily stopped and the timeout timing is postponed. This is because it can be easily understood that this embodiment can avoid a situation in which a timeout occurs accidentally.

ところで、上述した実施形態では、再送遅延を低減するために、サーバ装置40にて、EONビットがオンにセットされた確認応答セグメントの受信時に連続回数が再送閾値に満たない最大値「2」に設定されるようになっている。しかし、EONビットがオンにセットされた確認応答セグメントの受信時に連続回数を初期値「0」にするようにしても、再送遅延を低減することは可能である。このような実施形態について、次に説明する。   By the way, in the above-described embodiment, in order to reduce the retransmission delay, the server apparatus 40 sets the maximum number “2” at which the number of consecutive times does not satisfy the retransmission threshold when receiving the acknowledgment segment in which the EON bit is set to ON. It is set up. However, it is possible to reduce the retransmission delay even if the continuous count is set to the initial value “0” when the acknowledgment segment with the EON bit set to ON is received. Such an embodiment will be described next.

[第2実施形態]
[構成]
図10は本発明の第2実施形態に係る通信システム200の構成を示す図である。この通信システム200が図1の通信システム100と異なる点は、基地局20に代えて基地局50を有する点と、サーバ装置40に代えてサーバ装置60を有する点のみである。基地局50の通信プロトコル構成は基地局20と、サーバ装置60の通信プロトコル構成はサーバ装置40と同一である。
[Second Embodiment]
[Constitution]
FIG. 10 is a diagram showing a configuration of a communication system 200 according to the second embodiment of the present invention. The communication system 200 is different from the communication system 100 of FIG. 1 only in that it has a base station 50 instead of the base station 20 and a server device 60 instead of the server device 40. The communication protocol configuration of the base station 50 is the same as that of the base station 20, and the communication protocol configuration of the server device 60 is the same as that of the server device 40.

図11は基地局50の構成を示すブロック図である。構成上、基地局50が基地局20と異なる点は、不揮発性メモリ22が通知プログラム221に代えて通知プログラム521を記憶している点のみである。この通知プログラム521は、基地局50を中継装置としたトランスポート層の通信コネクションの確立に連動して、その実行が開始/終了される。以下、通知プログラム521を実行中のCPU21が行う通知処理のうち、通知プログラム221を実行中のCPU21が行う通知処理と異なる部分について説明する。   FIG. 11 is a block diagram showing the configuration of the base station 50. The only difference between the base station 50 and the base station 20 is that the nonvolatile memory 22 stores a notification program 521 instead of the notification program 221. The notification program 521 starts / ends in conjunction with establishment of a transport layer communication connection with the base station 50 as a relay device. Hereinafter, a part of the notification process performed by the CPU 21 executing the notification program 521 that is different from the notification process performed by the CPU 21 executing the notification program 221 will be described.

通知プログラム521を実行中のCPU21は、通知処理において、移動機10から確認応答セグメントを受信すると、RAM23の重複判定領域232に書き込まれているシーケンス番号と当該確認応答セグメントのACK値とを比較し、前者が後者よりも若くない場合には、CPU21は、当該確認応答セグメントのACK値をシーケンス番号とするデータセグメントの状態が「廃棄」であるか否かを判定し、「廃棄」であれば、当該確認応答セグメントの消失通知ビットをオンにセットし、セット後の当該確認応答セグメントをサーバ装置60へ送信する。消失通知ビットは、一般的なTCPにおけるデータセグメントの未使用領域内の1ビットであり、デフォルトではオフにセットされており、一般的なTCPに従う通信では使用されない。この消失通知の仕組みは周知のELN(Explicit Loss Notification)を用いることで実現される。なお、このことから明らかなように、サーバ装置60はELNに対応している。逆に、「廃棄」でなければ、CPU21は、当該確認応答セグメントのACK値をシーケンス番号とするデータセグメントの状態が「転送中」であるか否かを判定し、「転送中」でなければ、当該確認応答セグメントをそのままサーバ装置60へ転送する。「転送中」であれば、CPU21は、当該確認応答セグメントのEONビットをオンにセットし、セット後の当該確認応答セグメントをサーバ装置60へ送信する。   When receiving the confirmation response segment from the mobile device 10 in the notification process, the CPU 21 executing the notification program 521 compares the sequence number written in the duplication determination area 232 of the RAM 23 with the ACK value of the confirmation response segment. When the former is not younger than the latter, the CPU 21 determines whether or not the state of the data segment having the sequence number as the ACK value of the confirmation response segment is “discard”. Then, the erasure notification bit of the confirmation response segment is set to ON, and the confirmation response segment after the setting is transmitted to the server device 60. The erasure notification bit is one bit in an unused area of a data segment in general TCP, and is set to off by default, and is not used in communication according to general TCP. This mechanism of loss notification is realized by using a well-known ELN (Explicit Loss Notification). As is clear from this, the server device 60 corresponds to ELN. Conversely, if it is not “discard”, the CPU 21 determines whether or not the state of the data segment whose sequence number is the ACK value of the confirmation response segment is “transferring”, and is not “transferring”. The confirmation response segment is transferred to the server device 60 as it is. If “transfer in progress”, the CPU 21 sets the EON bit of the confirmation response segment to ON, and transmits the confirmation response segment after setting to the server device 60.

図12はサーバ装置60の構成を示すブロック図である。構成上、サーバ装置60がサーバ装置40と異なる点は、不揮発性メモリ42が通信プログラム421に代えて通信プログラム621を記憶している点と、ELNに対応している点のみである。通信プログラム621は移動機10からの要求に応じて実行されるものであり、以下では、通信プログラム621を実行中のCPU41が行う入れ替わり制御処理のうち、通信プログラム421を実行中のCPU21が行う入れ替わり制御処理と異なる点について説明する。   FIG. 12 is a block diagram illustrating a configuration of the server device 60. The configuration differs from the server device 40 only in that the nonvolatile memory 42 stores a communication program 621 instead of the communication program 421 and is compatible with ELN. The communication program 621 is executed in response to a request from the mobile device 10. In the following, of the replacement control processing performed by the CPU 41 executing the communication program 621, the replacement performed by the CPU 21 executing the communication program 421. Differences from the control process will be described.

通信プログラム621を実行中のCPU41は、移動機10から確認応答セグメントを受信すると、当該確認応答セグメントの消失通知ビットがオンか否かを判定し、オンであれば、当該確認応答セグメントのACK値をシーケンス番号としたデータセグメントに対する強制再送フラグがオンか否かを判定する。強制再送フラグはRAM43に書き込まれるものであり、そのデフォルト値はオフである。この強制再送フラグがオフの場合にのみ、CPU41は当該データセグメントを即座に再送し、当該データセグメントに対する強制再送フラグをオンとする。この再送後のサーバ装置40の状態は、当該データセグメントを高速再送により再送した後の状態と同様である。なお、EONビットのオン/オフが判定されるのは、当該確認応答セグメントの消失通知ビットがオフの場合のみである。また、受信した確認応答セグメントのEONビットがオンにセットされている場合、CPU41は、連続回数を2ではなく0とする。   When receiving the confirmation response segment from the mobile device 10, the CPU 41 that is executing the communication program 621 determines whether or not the disappearance notification bit of the confirmation response segment is on. If it is on, the ACK value of the confirmation response segment is determined. It is determined whether or not the forced retransmission flag for the data segment having the sequence number as ON is ON. The forced retransmission flag is written in the RAM 43, and its default value is off. Only when the forced retransmission flag is off, the CPU 41 immediately retransmits the data segment and turns on the forced retransmission flag for the data segment. The state of the server device 40 after the retransmission is the same as the state after the data segment is retransmitted by high-speed retransmission. Note that the ON / OFF of the EON bit is determined only when the disappearance notification bit of the confirmation response segment is OFF. Further, when the EON bit of the received acknowledgment segment is set to ON, the CPU 41 sets the continuous count to 0 instead of 2.

[動作]
次に、上述した構成の通信システム200の動作のうち、図1の通信システム100の動作と大きく異なる点について、主に図13〜図15を参照して説明する。図13は通知プログラム521を実行中のCPU21により行われる通知処理の一部の流れを示すフローチャートである。このフローチャートに示される処理と図6に示される処理は、CPU21により並列に実行されている。図14は通信プログラム621を実行中のCPU41により行われる入れ替わり制御処理の流れを示すフローチャートである。図15は通信システム200により行われる通信の一例を示すシーケンス図である。なお、この動作説明における前提は第1実施形態の動作説明の前提と同様である。
[Operation]
Next, among the operations of the communication system 200 having the above-described configuration, points that are significantly different from the operations of the communication system 100 in FIG. 1 will be described mainly with reference to FIGS. FIG. 13 is a flowchart showing a part of the notification process performed by the CPU 21 executing the notification program 521. The process shown in this flowchart and the process shown in FIG. 6 are executed in parallel by the CPU 21. FIG. 14 is a flowchart showing the flow of the replacement control process performed by the CPU 41 executing the communication program 621. FIG. 15 is a sequence diagram illustrating an example of communication performed by the communication system 200. Note that the premise in this operation description is the same as the premise of the operation description of the first embodiment.

図15に示すように、基地局50のCPU21は、シーケンス番号「6000」のデータセグメントを移動機10へ送信した後に、シーケンス番号「5000」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSA1)。この確認応答セグメントは重複確認応答セグメントであるから、CPU21は、この確認応答セグメントのACK値「3500」をシーケンス番号としたデータセグメントの状態が「廃棄」であるか否かを判定する(ステップSA2:NO、SA5:YES、及びSD1)。この時点では、当該データセグメントの状態は「廃棄」ではないから、CPU21は、この確認応答セグメントのACK値「3500」をシーケンス番号としたデータセグメントの状態が「転送中」であるか否かを判定する(ステップSA7)。この時点では、当該データセグメントの状態は「転送中」であるから、CPU21は、当該確認応答セグメントのEONビットをオンにセットし、セット後の確認応答セグメントをサーバ装置40へ送信する(ステップSA8、及びSA4)。   As shown in FIG. 15, after transmitting the data segment with the sequence number “6000” to the mobile station 10, the CPU 21 of the base station 50 receives the acknowledgment segment for confirming the reception of the data segment with the sequence number “5000”. (Step SA1). Since this confirmation response segment is a duplicate confirmation response segment, the CPU 21 determines whether or not the state of the data segment with the ACK value “3500” of this confirmation response segment as a sequence number is “discard” (step SA2). : NO, SA5: YES, and SD1). At this time, since the state of the data segment is not “discarded”, the CPU 21 determines whether or not the state of the data segment having the ACK value “3500” of the acknowledgment segment as a sequence number is “transferring”. Determine (step SA7). At this time, since the state of the data segment is “transferring”, the CPU 21 sets the EON bit of the confirmation response segment to ON and transmits the confirmation response segment after setting to the server device 40 (step SA8). And SA4).

次に、CPU21は、トランスポート層よりも下位層(具体的にはRLC副層)にて、タイムアウト等により、シーケンス番号「3500」のデータセグメントを廃棄する。CPU21は、snoopモジュールにて、この旨を示す廃棄通知を下位層から取得する(図6のステップSC1)。廃棄通知を取得すると、CPU21は、廃棄通知に示されるシーケンス番号のデータセグメントの状態が「廃棄」であることを示す状態データで、RAM23の状態領域231に書き込まれた当該データセグメントの状態データを上書きする(ステップSC2)。   Next, the CPU 21 discards the data segment having the sequence number “3500” due to a timeout or the like in a layer lower than the transport layer (specifically, the RLC sublayer). CPU21 acquires the discard notification which shows this from a lower layer in a snoop module (step SC1 of FIG. 6). Upon obtaining the discard notification, the CPU 21 obtains the status data of the data segment written in the status area 231 of the RAM 23 with the status data indicating that the status of the data segment of the sequence number indicated in the discard notification is “discard”. Overwrite (step SC2).

次に、CPU21は、シーケンス番号「5500」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSA1)。この確認応答セグメントは重複確認応答セグメントであるから、CPU21は、この確認応答セグメントのACK値「3500」をシーケンス番号としたデータセグメントの状態が「廃棄」であるか否かを判定する(ステップSA2:NO、SA5:YES、及びSD1)。この時点では、当該データセグメントの状態は「廃棄」であるから、CPU21は、当該確認応答セグメントの消失通知ビットをオンにセットし、セット後の当該確認応答セグメントをサーバ装置60へ送信する(ステップSD2、及びSA4)。   Next, the CPU 21 receives an acknowledgment segment for confirming reception of the data segment with the sequence number “5500” (step SA1). Since this confirmation response segment is a duplicate confirmation response segment, the CPU 21 determines whether or not the state of the data segment with the ACK value “3500” of this confirmation response segment as a sequence number is “discard” (step SA2). : NO, SA5: YES, and SD1). At this time, since the state of the data segment is “discard”, the CPU 21 sets the disappearance notification bit of the confirmation response segment to ON, and transmits the confirmation response segment after the setting to the server device 60 (step) SD2 and SA4).

以降、基地局20では、上述と同様の処理が繰り返され、シーケンス番号「6000」のデータセグメントの受信確認のための確認応答セグメントであって、消失通知ビットがオンにセットされた確認応答セグメントがサーバ装置60へ転送される。
以上のようにして基地局50から送信された確認応答セグメントは、送信された順序でサーバ装置60に到着する。
Thereafter, the base station 20 repeats the same processing as described above, and an acknowledgment segment for confirming reception of the data segment with the sequence number “6000”, in which the acknowledgment segment with the erasure notification bit set to ON is obtained. It is transferred to the server device 60.
The confirmation response segments transmitted from the base station 50 as described above arrive at the server device 60 in the order of transmission.

サーバ装置60のCPU41は、シーケンス番号「6000」のデータセグメントを移動機10へ送信した後に、シーケンス番号「5000」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSB1)。この確認応答セグメントの消失通知ビットはオフにセットされており、かつ、EONビットはオンにセットされているから、CPU41は、当該確認応答セグメントのACK値「3500」をシーケンス番号としたデータセグメントの再送動作を一時的に中止する(ステップSE1:NO、SB2:YES、及びSB3)。   After transmitting the data segment with the sequence number “6000” to the mobile device 10, the CPU 41 of the server device 60 receives the confirmation response segment for confirming the reception of the data segment with the sequence number “5000” (step SB1). Since the erasure notification bit of the acknowledgment segment is set to OFF and the EON bit is set to ON, the CPU 41 sets the ACK value “3500” of the acknowledgment segment as a sequence number. The retransmission operation is temporarily stopped (step SE1: NO, SB2: YES, and SB3).

次に、CPU41は、シーケンス番号「5500」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSB1)。この確認応答セグメントの消失通知ビットはオンにセットされており、かつ、当該確認応答セグメントのACK値をシーケンス番号としたデータセグメントに対する強制再送フラグはオフであるから、CPU41は、当該データセグメントを即座に再送し、当該データセグメントに対する強制再送フラグをオンとする(ステップSE1:YES、SE2:NO、及びSE3)。   Next, the CPU 41 receives an acknowledgment segment for confirming reception of the data segment with the sequence number “5500” (step SB1). Since the erasure notification bit of this acknowledgment segment is set to ON and the forced retransmission flag for the data segment having the ACK value of the acknowledgment segment as a sequence number is OFF, the CPU 41 immediately sets the data segment. And the forced retransmission flag for the data segment is turned on (steps SE1: YES, SE2: NO, and SE3).

次に、CPU41は、シーケンス番号「6000」のデータセグメントの受信確認のための確認応答セグメントを受信する(ステップSB1)。この確認応答セグメントの消失通知ビットはオンにセットされており、かつ、当該確認応答セグメントのACK値をシーケンス番号としたデータセグメントに対する強制再送フラグはオンであるから、CPU41は、当該データセグメントを再送しない(ステップSE1:YES、及びSE2:YES)。これにより、無駄な再送が回避される。   Next, the CPU 41 receives an acknowledgment segment for confirming reception of the data segment with the sequence number “6000” (step SB1). Since the erasure notification bit of this acknowledgment segment is set on and the forced retransmission flag for the data segment with the ACK value of the acknowledgment segment as a sequence number is on, the CPU 41 retransmits the data segment. No (step SE1: YES and SE2: YES). Thereby, useless retransmission is avoided.

上述したように、本実施形態では、サーバ装置60において、EONビットがオンにセットされた確認応答セグメントを受信したときに連続回数が0となっても、消失通知ビットによりデータセグメントの消失が通知されると即座に該当するデータセグメントを再送するようになっているから、第1実施形態と同種の効果を得ることができる。   As described above, in this embodiment, even when the server device 60 receives an acknowledgment segment in which the EON bit is set to ON, even if the number of consecutive times becomes 0, the loss notification bit notifies the loss of the data segment. Then, since the corresponding data segment is immediately retransmitted, the same kind of effect as in the first embodiment can be obtained.

[第3実施形態]
図16は本発明の第3実施形態に係る通信システム300の構成を示す図である。この通信システム300が図1の通信システム100と異なる点は、移動機10に代えて移動機70を有する点と、基地局20に代えて基地局80を有する点と、サーバ装置40に代えてサーバ装置90を有する点のみである。通信システム300の通信プロトコル構成は、図2に示す構成と同様である。ただし、移動機70及びサーバ装置90は、TCPのSACKオプションを用いて通信する。
[Third Embodiment]
FIG. 16 is a diagram showing a configuration of a communication system 300 according to the third embodiment of the present invention. The communication system 300 is different from the communication system 100 in FIG. 1 in that it has a mobile device 70 instead of the mobile device 10, a base station 80 instead of the base station 20, and a server device 40. It is only the point which has the server apparatus 90. The communication protocol configuration of the communication system 300 is the same as the configuration shown in FIG. However, the mobile device 70 and the server device 90 communicate using a TCP SACK option.

図17は基地局80の構成を示すブロック図である。構成上、基地局80が基地局20と異なる点は、不揮発性メモリ22が通知プログラム221に代えて通知プログラム821を記憶している点と、RAM23に重複判定領域232が確保されない点のみである。この通知プログラム821は、基地局80を中継装置としたトランスポート層の通信コネクションの確立に連動して、その実行が開始/終了される。   FIG. 17 is a block diagram showing the configuration of the base station 80. In terms of configuration, the base station 80 differs from the base station 20 only in that the non-volatile memory 22 stores a notification program 821 instead of the notification program 221 and that the overlap determination area 232 is not secured in the RAM 23. . This notification program 821 starts / ends in conjunction with the establishment of a transport layer communication connection with the base station 80 as a relay device.

図18は通知プログラム821を実行中のCPU21により行われる通知処理の一部の流れを示すフローチャートである。このフローチャートに示される処理と図6に示される処理は、CPU21により並列に実行される。図18に示すように、通知プログラム821を実行中のCPU21は、サーバ装置90からセグメントを受信すると(ステップSA1)、受信したセグメントがデータセグメントであるか否か(確認応答セグメントでないか否か)を判定する(ステップSA2)。受信したセグメントがデータセグメントの場合、CPU21は、当該データセグメントの状態が「転送中」であることを示す状態データをRAM23の状態領域231に書き込み、当該データセグメントを移動機70へ転送する(ステップSA3及びSA4)。   FIG. 18 is a flowchart showing a part of the notification process performed by the CPU 21 executing the notification program 821. The process shown in this flowchart and the process shown in FIG. 6 are executed in parallel by the CPU 21. As shown in FIG. 18, when the CPU 21 executing the notification program 821 receives a segment from the server device 90 (step SA1), it is determined whether the received segment is a data segment (whether it is not an acknowledgment segment). Is determined (step SA2). When the received segment is a data segment, the CPU 21 writes status data indicating that the status of the data segment is “transferring” to the status area 231 of the RAM 23 and transfers the data segment to the mobile device 70 (step S31). SA3 and SA4).

逆に、受信したセグメントがデータセグメントでない場合、すなわち確認応答セグメントの場合、CPU21は、当該確認応答セグメントのACK値およびSACKブロックの内容に基づいて、新たな受信確認が為されているか否かを判定する(ステップSF1)。SACKブロックとは、SACKオプションを用いたTCPに従う通信において確認応答セグメントが有するブロックであり、第1〜第4SACKブロックからなる。各ブロックには必要に応じてシーケンス番号が格納される。このようなSACKブロックの内容とACK値とを参照することにより、サーバ装置90は、移動機70に受信されたデータセグメントを特定することができる。   Conversely, if the received segment is not a data segment, that is, if it is an acknowledgment segment, the CPU 21 determines whether or not a new acknowledgment has been made based on the ACK value of the acknowledgment segment and the contents of the SACK block. Determination is made (step SF1). The SACK block is a block that the confirmation response segment has in communication according to TCP using the SACK option, and includes first to fourth SACK blocks. Each block stores a sequence number as necessary. By referring to the content of the SACK block and the ACK value, the server device 90 can specify the data segment received by the mobile device 70.

当該確認応答セグメントにより新たな受信確認が為されている場合には、CPU21は受信確認処理を行う(ステップSF1:YES、及びSF2)。この受信確認処理では、CPU21は、当該確認応答セグメントにより受信確認がなされるデータセグメントの状態データを、「受信」を示すように更新する。次に、CPU21は、データセグメントの入れ替わりが生じた可能性があるか否かを判定する(ステップSF3)。なお、当該確認応答セグメントにより新たな受信確認が為されていない場合には、CPU21は、受信確認処理を経ずに、データセグメントの入れ替わりが生じた可能性があるか否かを判定する(ステップSF1:NO、及びSF3)。   When a new reception confirmation is made by the confirmation response segment, the CPU 21 performs a reception confirmation process (steps SF1: YES and SF2). In this reception confirmation process, the CPU 21 updates the status data of the data segment whose reception is confirmed by the confirmation response segment so as to indicate “reception”. Next, the CPU 21 determines whether or not there is a possibility that the data segment is switched (step SF3). If no new reception confirmation is made by the confirmation response segment, the CPU 21 determines whether or not there is a possibility that the data segment has been switched without performing the reception confirmation process (step S21). SF1: NO and SF3).

データセグメントの入れ替わりが生じた可能性があるか否かの判定は、状態データで示される状態が「転送中」のデータセグメントのシーケンス番号のうち、最も若いシーケンス番号を特定し、このシーケンス番号よりも大きなシーケンス番号を当該確認応答セグメントのSACKブロックが有するか否かを調べることにより実現される。このようなシーケンス番号が当該SACKブロックに存在しない場合、CPU21は、データセグメントの入れ替わりが生じた可能性が無いと判定し、当該確認応答セグメントをそのままサーバ装置90へ転送する(ステップSA4)。逆に、このようなシーケンス番号が当該SACKブロックに存在する場合、CPU21は、データセグメントの入れ替わりが生じた可能性があると判定し、入れ替わりデータセグメントを特定する(ステップSF4)。入れ替わりデータセグメントの特定は、当該確認応答セグメントのSACKブロックによって受信確認されたデータセグメントよりも若いシーケンス番号を有し、かつ状態が「受信」ではないデータセグメントを見つけ出すことにより実現される。   To determine whether there is a possibility that data segment replacement has occurred, specify the youngest sequence number among the sequence numbers of the data segments whose status indicated by the status data is “Transferring”. Is realized by checking whether or not the SACK block of the acknowledgment segment has a large sequence number. When such a sequence number does not exist in the SACK block, the CPU 21 determines that there is no possibility that the data segment has been switched, and transfers the confirmation response segment to the server device 90 as it is (step SA4). Conversely, when such a sequence number exists in the SACK block, the CPU 21 determines that there is a possibility that the data segment has been replaced, and specifies the replaced data segment (step SF4). The identification of the replacement data segment is realized by finding a data segment having a lower sequence number than the data segment confirmed by the SACK block of the acknowledgment segment and whose state is not “received”.

こうして入れ替わりデータセグメントを特定したCPU21は、当該データセグメントの状態が「転送中」でも「廃棄」でもない場合には、当該確認応答セグメントをそのままサーバ装置90へ転送する(ステップSF5:NO、SF6:NO、及びSA4)。また、当該データセグメントの状態が「廃棄」の場合には、CPU21は、消失通知処理を行い、その後に、当該確認応答セグメントをサーバ装置90へ送信する(ステップSF5:YES、SF7、及びSA4)。消失通知処理には、当該確認応答セグメントの消失通知ビットをオンにセットする処理と、当該確認応答セグメントの所定のフィールドに当該データセグメントのシーケンス番号を格納する処理が含まれている。また、当該データセグメントの状態が「転送中」の場合には、CPU21は入れ替わり通知処理を行い、その後に、当該確認応答セグメントをサーバ装置90へ送信する(ステップSF5:NO、SF6:YES、SF8、及びSA4)。入れ替わり通知処理には、当該確認応答セグメントのEONビットをオンにセットする処理と、当該確認応答セグメントの所定のフィールドに当該データセグメントのシーケンス番号を格納する処理が含まれている。なお、本実施形態では、所定のフィールドとして第1SACKブロックを採用している。つまり、CPU21は、第1SACKブロックの内容を第2SACKブロックへ、第2SACKブロックの内容を第3SACKブロックへ、…、というように移動してから、当該データセグメントのシーケンス番号を第1SACKブロックに格納する。   If the data segment status is neither “transferring” nor “discarded”, the CPU 21 that has identified the replacement data segment transfers the confirmation response segment to the server device 90 as it is (steps SF5: NO, SF6: NO and SA4). On the other hand, when the state of the data segment is “discard”, the CPU 21 performs the disappearance notification process, and then transmits the confirmation response segment to the server device 90 (step SF5: YES, SF7, and SA4). . The erasure notification process includes a process of turning on the erasure notification bit of the confirmation response segment and a process of storing the sequence number of the data segment in a predetermined field of the confirmation response segment. On the other hand, when the state of the data segment is “transferring”, the CPU 21 performs a replacement notification process, and thereafter transmits the confirmation response segment to the server device 90 (step SF5: NO, SF6: YES, SF8). And SA4). The replacement notification process includes a process of turning on the EON bit of the confirmation response segment and a process of storing the sequence number of the data segment in a predetermined field of the confirmation response segment. In the present embodiment, the first SACK block is adopted as the predetermined field. That is, the CPU 21 moves the contents of the first SACK block to the second SACK block, the contents of the second SACK block to the third SACK block, and so on, and then stores the sequence number of the data segment in the first SACK block. .

図19はサーバ装置90の構成を示すブロック図である。構成上、サーバ装置90がサーバ装置40と異なる点は、不揮発性メモリ42が通信プログラム421に代えて通信プログラム921を記憶している点と、TCPのSACKオプションに対応している点と、ELNに対応している点のみである。この通信プログラム921は、移動機70からの要求に応じて実行される。   FIG. 19 is a block diagram illustrating a configuration of the server device 90. The server device 90 is different from the server device 40 in terms of configuration in that the nonvolatile memory 42 stores a communication program 921 instead of the communication program 421, and corresponds to the TCP SACK option. It is only a point corresponding to. This communication program 921 is executed in response to a request from the mobile device 70.

図20は通信プログラム921を実行中のCPU41により行われる入れ替わり制御処理の流れを示すフローチャートである。この図に示すように、通信プログラム921を実行中のCPU41は、移動機10から確認応答セグメントを受信すると(ステップSB1)、当該確認応答セグメントの消失通知ビットがオンか否かを判定し(ステップSE1)、オフであれば、当該確認応答セグメントのEONビットがオンにセットされているか否かを判定する(ステップSB2)。EONビットがオフにセットされていれば、CPU41は、SACKオプションを用いた一般的なTCPに従った処理のみを行う(ステップSB2:NO)。逆に、EONビットがオンにセットされていれば、当該確認応答セグメントの第1SACKブロックに格納されたシーケンス番号のデータセグメントの状態が「Sacked」となるようにスコアボードを更新することにより、当該データセグメントの再送動作を一時的に中止する(ステップSB2:YES、及びSG1)。   FIG. 20 is a flowchart showing the flow of the replacement control process performed by the CPU 41 executing the communication program 921. As shown in this figure, when the CPU 41 executing the communication program 921 receives the confirmation response segment from the mobile device 10 (step SB1), it determines whether or not the disappearance notification bit of the confirmation response segment is on (step SB1). If SE1) is off, it is determined whether or not the EON bit of the confirmation response segment is set on (step SB2). If the EON bit is set to OFF, the CPU 41 performs only processing according to general TCP using the SACK option (step SB2: NO). Conversely, if the EON bit is set to ON, the scoreboard is updated so that the state of the data segment of the sequence number stored in the first SACK block of the acknowledgment segment becomes “Sacked”. The data segment retransmission operation is temporarily stopped (step SB2: YES and SG1).

一方、受信した確認応答セグメントの消失通知ビットがオンであれば、CPU41は、当該確認応答セグメントの第1SACKブロックに格納されたシーケンス番号のデータセグメントに対する強制再送フラグがオンか否かを判定する(ステップSG2)。強制再送フラグはRAM43に書き込まれるものであり、そのデフォルト値はオフである。当該データセグメントに対する強制再送フラグがオフの場合にのみ、CPU41は当該データセグメントを即座に再送し、当該データセグメントに対する強制再送フラグをオンとする(ステップSG2:NO、及びSG3)。   On the other hand, if the erasure notification bit of the received acknowledgment segment is on, the CPU 41 determines whether or not the forced retransmission flag for the data segment of the sequence number stored in the first SACK block of the acknowledgment segment is on ( Step SG2). The forced retransmission flag is written in the RAM 43, and its default value is off. Only when the forced retransmission flag for the data segment is off, the CPU 41 immediately retransmits the data segment and turns on the forced retransmission flag for the data segment (steps SG2: NO and SG3).

本実施形態に係る通信システム300により行われる通信処理は上述の通りであるから、本実施形態によれば、第1実施形態と同種の効果が得られる。   Since the communication process performed by the communication system 300 according to the present embodiment is as described above, according to the present embodiment, the same type of effect as the first embodiment can be obtained.

[変形]
以下に、上述した実施形態の変形例を列挙する。
上述した実施形態では、トランスポート層における送信ノード(サーバ装置)と受信ノード(移動機)との間の通信路に無線区間が含まれるものとしたが、当該通信路が有線区間のみで構成されていてもよい。もちろん、送信ノードと受信ノードとの間のネットワークは、IMT−2000に準拠していなくてもよい。要は、送信ノードと受信ノードとがトランスポート層にて通信可能なネットワークであればよい。
また、上述した実施形態では、トランスポート層における送信ノードと受信ノードとの間の中継ノードがデータセグメントの入れ替わりの通知を行うようにしたが、受信ノードが行うようにしてもよい。
また、上述した実施形態では、確認応答セグメントを用いてデータセグメントの入れ替わりを通知するようにしたが、トランスポート層の通信プロトコルによっては、他のデータを用いて通知するようにしてもよい。
また、上述した実施形態では、中継ノードが受信ノードから返送されてくる確認応答セグメントを利用しデータセグメントの入れ替わりを通知するようにしたが、中継ノードが確認応答セグメントを生成し、これを用いて入れ替わりの通知を行うようにしてもよい。
また、上述した実施形態では、本発明を再送制御や輻輳制御に用いているが、これらだけではなく、データのロス率に基づいた送信レートの制御に用いてもよい。なお、データのロス率を求めるノードが受信ノードの場合、データセグメントの入れ替わりの通知先は受信ノードとなる。したがって、データセグメントの入れ替わりの通知を受信ノードが行う場合、送信ノード及び中継ノードとして既存のものをそのまま使うことができる。
また、再送制御や輻輳制御、送信レート制御などの各種の制御を行う制御ノードにおいて、受信ノードにおける受信順序が入れ替わったデータセグメントの通知を受けて各種の制御を一時中止した後に、当該データセグメントが消失したことが判明した場合には、制御ノードの状態を上記の一時中止がなかった場合の状態とするようにしてもよい。例えば、再送タイマを一時停止した後に、この一時停止期間分だけタイマ値を先に進めてから再送タイマの計時を再開するようにしてもよい。
また、上述した実施形態では、データセグメント及び確認応答セグメントを用いてデータセグメントの入れ替わりを推定するようにしたが、トランスポート層の通信プロトコルが確認応答セグメントの送信を規定していない通信プロトコルの場合や、受信ノードにてデータセグメントの入れ替わりを推定する場合には、データセグメントのみを用いてデータセグメントの入れ替わりを推定するようにしてもよい。そもそも、確認応答セグメントのACK値やSACKブロックのシーケンス番号は、受信ノードに受信されたトランスポート層のデータセグメントのシーケンス番号に基づいたものであるから、確認応答セグメントを用いてデータセグメントの入れ替わりを推定することも、受信ノードに受信されたトランスポート層のデータユニットのシーケンス番号に基づいて受信ノードにおける受信順序が入れ替わったデータユニットを推定することの範囲内である。
[Deformation]
Below, the modification of embodiment mentioned above is enumerated.
In the above-described embodiment, the wireless path is included in the communication path between the transmission node (server device) and the reception node (mobile device) in the transport layer. However, the communication path is configured only by the wired section. It may be. Of course, the network between the transmitting node and the receiving node may not be compliant with IMT-2000. In short, any network may be used as long as the transmission node and the reception node can communicate in the transport layer.
In the above-described embodiment, the relay node between the transmission node and the reception node in the transport layer notifies the switching of the data segment. However, the reception node may perform the notification.
In the above-described embodiment, the change of the data segment is notified using the confirmation response segment. However, the notification may be performed using other data depending on the communication protocol of the transport layer.
In the above-described embodiment, the relay node uses the acknowledgment segment returned from the receiving node to notify the data segment replacement. However, the relay node generates the acknowledgment segment and uses this You may make it perform notification of replacement.
In the above-described embodiments, the present invention is used for retransmission control and congestion control. However, the present invention may be used for transmission rate control based on the data loss rate. When the node for obtaining the data loss rate is the receiving node, the notification destination of the data segment replacement is the receiving node. Therefore, when the receiving node notifies the replacement of data segments, the existing ones can be used as they are as the transmitting node and the relay node.
In addition, in a control node that performs various controls such as retransmission control, congestion control, transmission rate control, etc., after receiving notification of a data segment whose reception order has been changed in the receiving node, the data segment is If it is determined that the node has disappeared, the state of the control node may be set to the state in the case where there is no temporary suspension. For example, after the retransmission timer is temporarily stopped, the timer value may be advanced by the amount corresponding to the temporary stop period, and then the retransmission timer may be restarted.
In the above-described embodiment, the replacement of the data segment is estimated using the data segment and the confirmation response segment. However, in the case of the communication protocol in which the transport layer communication protocol does not regulate the transmission of the confirmation response segment. Alternatively, when the replacement of the data segment is estimated at the receiving node, the replacement of the data segment may be estimated using only the data segment. In the first place, the ACK value of the acknowledgment segment and the sequence number of the SACK block are based on the sequence number of the transport segment data segment received by the receiving node. The estimation is also within the scope of estimating a data unit whose reception order in the receiving node is changed based on the sequence number of the transport layer data unit received by the receiving node.

本発明の第1実施形態に係る通信システム100の構成を示す図である。1 is a diagram showing a configuration of a communication system 100 according to a first embodiment of the present invention. 通信システム100の通信プロトコル構成を示す図である。1 is a diagram illustrating a communication protocol configuration of a communication system 100. FIG. 通信システム100を構成する基地局20の構成を示すブロック図である。1 is a block diagram showing a configuration of a base station 20 that constitutes a communication system 100. FIG. 通信システム100を構成するサーバ装置40の構成を示すブロック図である。2 is a block diagram illustrating a configuration of a server device 40 that configures the communication system 100. FIG. 基地局20にて通知プログラム221を実行中のCPU21により行われる通知処理の一部の流れを示すフローチャートである。4 is a flowchart showing a part of a notification process performed by a CPU 21 executing a notification program 221 in a base station 20. 基地局20にて通知プログラム221を実行中のCPU21により行われる通知処理の他の流れを示すフローチャートである。12 is a flowchart showing another flow of notification processing performed by the CPU 21 executing the notification program 221 in the base station 20. サーバ装置40にて通信プログラム421を実行中のCPU41により行われる入れ替わり制御処理の流れを示すフローチャートである。4 is a flowchart showing the flow of a replacement control process performed by a CPU 41 executing a communication program 421 in the server device 40. 通信システム100により行われる通信の一例を示すシーケンス図である。3 is a sequence diagram illustrating an example of communication performed by the communication system 100. FIG. 一般的な通信システムにて図8に示す通信と同様の通信を行おうとした場合のシーケンス図である。It is a sequence diagram at the time of trying to perform communication similar to the communication shown in FIG. 8 in a general communication system. 本発明の第2実施形態に係る通信システム200の構成を示す図である。It is a figure which shows the structure of the communication system 200 which concerns on 2nd Embodiment of this invention. 通信システム200を構成する基地局50の構成を示すブロック図である。2 is a block diagram showing a configuration of a base station 50 that constitutes a communication system 200. FIG. 通信システム200を構成するサーバ装置60の構成を示すブロック図である。2 is a block diagram illustrating a configuration of a server device 60 that configures a communication system 200. FIG. 基地局50にて通知プログラム521を実行中のCPU21により行われる通知処理の一部の流れを示すフローチャートである。6 is a flowchart showing a part of a notification process performed by a CPU 21 executing a notification program 521 in a base station 50. サーバ装置60にて通信プログラム621を実行中のCPU41により行われる入れ替わり制御処理の流れを示すフローチャートである。6 is a flowchart showing the flow of a replacement control process performed by a CPU 41 that is executing a communication program 621 in the server device 60. 通信システム200により行われる通信の一例を示すシーケンス図である。3 is a sequence diagram illustrating an example of communication performed by the communication system 200. FIG. 本発明の第3実施形態に係る通信システム300の構成を示す図である。It is a figure which shows the structure of the communication system 300 which concerns on 3rd Embodiment of this invention. 通信システム300を構成する基地局80の構成を示すブロック図である。2 is a block diagram showing a configuration of a base station 80 that constitutes a communication system 300. FIG. 基地局80にて通知プログラム821を実行中のCPU21により行われる通知処理の一部の流れを示すフローチャートである。7 is a flowchart showing a part of a notification process performed by a CPU 21 executing a notification program 821 in a base station 80. 通信システム300を構成するサーバ装置90の構成を示すブロック図である。3 is a block diagram illustrating a configuration of a server device 90 that configures the communication system 300. FIG. サーバ装置90にて通信プログラム921を実行中のCPU41により行われる入れ替わり制御処理の流れを示すフローチャートである。10 is a flowchart showing a flow of a replacement control process performed by a CPU 41 executing a communication program 921 in the server device 90.

符号の説明Explanation of symbols

20,50,80…基地局、21、41…CPU、22、42…不揮発性メモリ、221、521、821…通知プログラム、23、43…RAM、24…無線部、25、44…通信インタフェース、40,60,90…サーバ装置、421、621、921…通信プログラム。 20, 50, 80 ... base station, 21, 41 ... CPU, 22, 42 ... non-volatile memory, 221, 521, 821 ... notification program, 23, 43 ... RAM, 24 ... radio unit, 25, 44 ... communication interface, 40, 60, 90... Server device, 421, 621, 921.

Claims (10)

送信機から受信機へ送信され、前記送信機からの送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信するデータ受信手段と、
前記データ受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、
前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、
前記データ受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、
前記確認応答受信手段により受信された前記確認応答を前記送信機に送信する確認応答送信手段と
を備え、
前記確認応答送信手段は、
前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、第2の記憶手段に記憶された、データユニットの第2の番号とを比較し、
前記第2の番号が前記第1の番号よりも若い場合において、当該第1の番号を前記第2の記憶手段に前記第2の番号として上書きし、当該第1の番号より若い番号のデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きして、前記確認応答を前記送信機に転送し、
前記第2の番号が前記第1の番号よりも若くない場合において、当該第1の番号のデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、前記確認応答を前記送信機に転送する一方、当該第1の番号のデータユニットが転送中であることが記憶されているときには、当該第1の番号のデータユニットが転送中であることを意味する情報を含む前記確認応答を前記送信機に送信する
通信装置。
Data receiving means for receiving a transport layer data unit transmitted from a transmitter to a receiver and having a number capable of specifying a transmission order from the transmitter;
When the data unit is received by the data receiving means, the first storage means stores the data unit being transferred in association with the number of the data unit, and the data unit is stored in the receiver. Data transmission means for transmitting to,
An acknowledgment receiving means for receiving an acknowledgment that is transmitted from the receiver to the transmitter and that includes a first number that is a number of a data unit that is expected to be received next by the receiver;
When the data unit received by the data receiving unit and transmitted by the data transmitting unit is discarded, it is determined that the data unit is discarded in association with the number of the data unit. Overwrite means for overwriting that the data unit is being transferred, stored in the storage means,
Confirmation response transmitting means for transmitting the confirmation response received by the confirmation response receiving means to the transmitter;
With
The confirmation response transmission means includes:
Comparing the first number included in the confirmation response received by the confirmation response receiving means with the second number of the data unit stored in the second storage means;
When the second number is smaller than the first number, the first number is overwritten in the second storage means as the second number, and a data unit having a number smaller than the first number Is overwritten in the first storage means that it has been received at the receiver, and the confirmation response is transferred to the transmitter,
In the case where the second storage unit stores the fact that the data unit of the first number is discarded when the second number is not younger than the first number, the confirmation response is returned. When it is stored that the data unit of the first number is being transferred while the data unit of the first number is being transferred, the information including the information indicating that the data unit of the first number is being transferred A communication device that transmits an acknowledgment to the transmitter .
送信機から受信機へ送信され、前記送信機からの送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信するデータ受信手段と、Data receiving means for receiving a transport layer data unit transmitted from a transmitter to a receiver and having a number capable of specifying a transmission order from the transmitter;
前記データ受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、When the data unit is received by the data receiving means, the first storage means stores the data unit being transferred in association with the number of the data unit, and the data unit is stored in the receiver. Data transmission means for transmitting to,
前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、An acknowledgment receiving means for receiving an acknowledgment that is transmitted from the receiver to the transmitter and that includes a first number that is a number of a data unit that is expected to be received next by the receiver;
前記データ受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、When the data unit received by the data receiving unit and transmitted by the data transmitting unit is discarded, it is determined that the data unit is discarded in association with the number of the data unit. Overwrite means for overwriting that the data unit is being transferred, stored in the storage means,
前記確認応答受信手段により受信された前記確認応答を前記送信機に送信する確認応答送信手段とConfirmation response transmitting means for transmitting the confirmation response received by the confirmation response receiving means to the transmitter;
を備え、With
前記確認応答送信手段は、The confirmation response transmission means includes:
前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、当該確認応答の所定のフィールドに格納された内容に基づいて、当該確認応答により新たな受信確認が為されているか否かを判定し、前記確認応答により新たな受信確認が為されている場合において、当該新たな受信確認が為されているデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きし、Based on the first number included in the confirmation response received by the confirmation response receiving means and the content stored in a predetermined field of the confirmation response, a new reception confirmation is made by the confirmation response. In the case where a new reception confirmation is made by the confirmation response, it is determined that the data unit for which the new reception confirmation is made has been received by the receiver. Overwrite the storage means,
前記第1の記憶手段により、転送中であることを記憶させられたデータユニットの番号のうち最も若い番号である第3の番号よりも大きな番号を当該確認応答の前記所定のフィールドが格納していないときには、前記確認応答を前記送信機に転送し、The predetermined field of the confirmation response stores a number larger than the third number which is the youngest number among the numbers of the data units stored as being transferred by the first storage means. If not, forward the acknowledgment to the transmitter,
当該第3の番号よりも大きな番号を当該確認応答の前記所定のフィールドが格納しているときには、当該所定のフィールドが格納している番号よりも若い番号を有し、かつ前記受信機にて受信済であることを前記第1の記憶手段に上書きされていないデータユニットを特定し、When the predetermined field of the confirmation response stores a number larger than the third number, the number has a lower number than the number stored in the predetermined field and is received by the receiver A data unit that has not been overwritten in the first storage means is identified,
前記特定されたデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、当該データユニットが廃棄されていることを意味する情報を含み、かつ、前記所定のフィールドに当該データユニットの番号を格納した前記確認応答を前記送信機に転送する一方、特定された当該データユニットが転送中であることが前記第1の記憶手段に記憶されているときには、当該データユニットが転送中であることを意味する情報を含み、かつ、前記所定のフィールドに当該データユニットの番号を格納した前記確認応答を前記送信機に送信するWhen it is stored in the first storage means that the specified data unit is discarded, the first field includes information indicating that the data unit is discarded, and the predetermined field includes the information The confirmation response storing the data unit number is transferred to the transmitter, while the first storage means stores that the identified data unit is being transferred, the data unit transfers The confirmation response including information indicating that the data unit is included and storing the number of the data unit in the predetermined field is transmitted to the transmitter.
通信装置。Communication device.
前記データ上書き手段は、トランスポート層よりも下位の層にて前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする
ことを特徴とする請求項1または請求項2に記載の通信装置。
When the data unit is discarded in a layer lower than the transport layer , the data overwriting means indicates that the data unit is discarded in association with the number of the data unit. 3. The communication apparatus according to claim 1 , wherein the data unit stored in the storage unit is overwritten when the data unit is being transferred .
請求項1から請求項3のいずれかに記載の通信装置から、前記確認応答を受信する受信手段と、
信機による前記データユニットの受信の順序またはタイミングに基づいて前記データユニットの消失を推定する消失推定手段と、
前記受信手段により受信された前記確認応答に、当該確認応答に含まれる第1の番号のデータユニットが転送中であることを意味する情報が含まれている場合に、当該データユニットの消失を前記消失推定手段が推定することを一時的に禁止する禁止手段と
を有する送信機。
Receiving means for receiving the confirmation response from the communication device according to any one of claims 1 to 3 ,
And loss estimation means for estimating the loss of the data unit based on the order or timing of reception of said data units by receiving machine,
When the confirmation response received by the receiving means includes information indicating that the data unit of the first number included in the confirmation response is being transferred, the loss of the data unit is A transmitter having a prohibition unit for temporarily prohibiting estimation by the erasure estimation unit.
送信機と通信装置とを有し、
前記送信機は、
送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信機へ送信する第1の送信手段と、
前記受信機による前記データユニットの受信の順序またはタイミングに基づいて前記データユニットの消失を推定する消失推定手段と
を有し、
前記通信装置は、
前記送信機から送信された前記データユニットを受信する第1の受信手段と、
前記第1の受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、
前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、
前記第1の受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、
前記確認応答受信手段により受信された前記確認応答を前記送信機に送信する確認応答送信手段と
を有し、
前記通信装置の前記確認応答送信手段は、
前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、第2の記憶手段に記憶された、データユニットの第2の番号とを比較し、
前記第2の番号が前記第1の番号よりも若い場合において、当該第1の番号を前記第2の記憶手段に前記第2の番号として上書きし、当該第1の番号より若い番号のデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きして、前記確認応答を前記送信機に転送し、
前記第2の番号が前記第1の番号よりも若くない場合において、当該第1の番号のデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、前記確認応答を前記送信機に転送する一方、当該第1の番号のデータユニットが転送中であることが記憶されているときには、当該第1の番号のデータユニットが転送中であることを意味する情報を含む前記確認応答を前記送信機に送信し、
前記送信機は、更に、
前記確認応答送信手段から送信された前記確認応答を受信する第2の受信手段と、
前記受信手段により受信された前記確認応答に、当該確認応答に含まれる第1の番号のデータユニットが転送中であることを意味する情報が含まれている場合に、当該データユニットの消失を前記消失推定手段が推定することを一時的に禁止する禁止手段と
を有する
ことを特徴とする通信システム。
A transmitter and a communication device;
The transmitter is
First transmission means for transmitting a transport layer data unit having a number capable of specifying a transmission order to a receiver;
Erasure estimation means for estimating erasure of the data units based on the order or timing of reception of the data units by the receiver;
The communication device
First receiving means for receiving the data unit transmitted from the transmitter;
When the data unit is received by the first receiving means, the first storage means stores the data unit being transferred in association with the number of the data unit, and the data unit is stored in the data unit. Data transmission means for transmitting to the receiver;
An acknowledgment receiving means for receiving an acknowledgment that is transmitted from the receiver to the transmitter and that includes a first number that is a number of a data unit that is expected to be received next by the receiver;
When the data unit received by the first receiving unit and transmitted by the data transmitting unit is discarded, the data unit is discarded in association with the number of the data unit. Overwriting means for overwriting that the data unit is being transferred, stored in the first storage means;
An acknowledgment transmission means for transmitting the acknowledgment received by the acknowledgment receiving means to the transmitter ;
The confirmation response transmission means of the communication device includes:
Comparing the first number included in the confirmation response received by the confirmation response receiving means with the second number of the data unit stored in the second storage means;
When the second number is smaller than the first number, the first number is overwritten in the second storage means as the second number, and a data unit having a number smaller than the first number Is overwritten in the first storage means that it has been received at the receiver, and the confirmation response is transferred to the transmitter,
In the case where the second storage unit stores the fact that the data unit of the first number is discarded when the second number is not younger than the first number, the confirmation response is returned. When it is stored that the data unit of the first number is being transferred while the data unit of the first number is being transferred, the information including the information indicating that the data unit of the first number is being transferred Send an acknowledgment to the transmitter,
The transmitter further includes:
A second receiving means for receiving by said acknowledgment transmitted from the acknowledgment transmitting means,
When the confirmation response received by the receiving means includes information indicating that the data unit of the first number included in the confirmation response is being transferred, the loss of the data unit is And a prohibition unit for temporarily prohibiting estimation by the disappearance estimation unit.
送信機と通信装置とを有し、
前記送信機は、
送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信機へ送信する第1の送信手段と、
前記受信機による前記データユニットの受信の順序またはタイミングに基づいて前記データユニットの消失を推定する消失推定手段と
を有し、
前記通信装置は、
前記送信機から送信された前記データユニットを受信する第1の受信手段と、
前記第1の受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、
前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、
前記第1の受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、
前記確認応答受信手段により受信された前記確認応答を前記送信機に送信する確認応答送信手段と
を有し、
前記通信装置の前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、当該確認応答の所定のフィールドに格納された内容に基づいて、当該確認応答により新たな受信確認が為されているか否かを判定し、前記確認応答により新たな受信確認が為されている場合において、当該新たな受信確認が為されているデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きし、
前記第1の記憶手段により、転送中であることを記憶させられたデータユニットの番号のうち最も若い番号である第3の番号よりも大きな番号を当該確認応答の前記所定のフィールドが格納していないときには、前記確認応答を前記送信機に転送し、
当該第3の番号よりも大きな番号を当該確認応答の前記所定のフィールドが格納しているときには、当該所定のフィールドが格納している番号よりも若い番号を有し、かつ前記受信機にて受信済であることを前記第1の記憶手段に上書きされていないデータユニットを特定し、
前記特定されたデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、当該データユニットが廃棄されていることを意味する情報を含み、かつ、前記所定のフィールドに当該データユニットの番号を格納した前記確認応答を前記送信機に転送する一方、特定された当該データユニットが転送中であることが前記第1の記憶手段に記憶されているときには、当該データユニットが転送中であることを意味する情報を含み、かつ、前記所定のフィールドに当該データユニットの番号を格納した前記確認応答を前記送信機に送信し、
前記送信機は、更に、
前記確認応答送信手段から送信された前記確認応答を受信する第2の受信手段と、
前記受信手段により受信された前記確認応答に、当該確認応答に含まれる第1の番号のデータユニットが転送中であることを意味する情報が含まれている場合に、当該データユニットの消失を前記消失推定手段が推定することを一時的に禁止する禁止手段と
を有する
ことを特徴とする通信システム。
A transmitter and a communication device;
The transmitter is
First transmission means for transmitting a transport layer data unit having a number capable of specifying a transmission order to a receiver;
Erasure estimation means for estimating erasure of the data units based on the order or timing of reception of the data units by the receiver;
Have
The communication device
First receiving means for receiving the data unit transmitted from the transmitter;
When the data unit is received by the first receiving means, the first storage means stores the data unit being transferred in association with the number of the data unit, and the data unit is stored in the data unit. Data transmission means for transmitting to the receiver;
An acknowledgment receiving means for receiving an acknowledgment that is transmitted from the receiver to the transmitter and that includes a first number that is a number of a data unit that is expected to be received next by the receiver;
When the data unit received by the first receiving unit and transmitted by the data transmitting unit is discarded, the data unit is discarded in association with the number of the data unit. Overwriting means for overwriting that the data unit is being transferred, stored in the first storage means;
An acknowledgment transmission means for transmitting the acknowledgment received by the acknowledgment receiving means to the transmitter ;
Based on the first number included in the confirmation response received by the confirmation response receiving means of the communication device and the contents stored in a predetermined field of the confirmation response, a new reception confirmation is made by the confirmation response. In the case where a new reception confirmation is made by the confirmation response, it is confirmed that the data unit for which the new reception confirmation is made has been received by the receiver. Overwriting the first storage means;
The predetermined field of the confirmation response stores a number larger than the third number which is the youngest number among the numbers of the data units stored as being transferred by the first storage means. If not, forward the acknowledgment to the transmitter,
When the predetermined field of the confirmation response stores a number larger than the third number, the number has a lower number than the number stored in the predetermined field and is received by the receiver A data unit that has not been overwritten in the first storage means is identified,
When it is stored in the first storage means that the specified data unit is discarded, the first field includes information indicating that the data unit is discarded, and the predetermined field includes the information The confirmation response storing the data unit number is transferred to the transmitter, while the first storage means stores that the identified data unit is being transferred, the data unit transfers Including the information indicating that the data unit is included, and transmitting the confirmation response storing the number of the data unit in the predetermined field to the transmitter,
The transmitter further includes:
Second receiving means for receiving the confirmation response transmitted from the confirmation response transmitting means;
When the confirmation response received by the receiving means includes information indicating that the data unit of the first number included in the confirmation response is being transferred, the loss of the data unit is A prohibition means for temporarily prohibiting the estimation by the disappearance estimation means;
Have
A communication system characterized by the above.
信機が、送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信機へ送信する送信過程と、
通信装置が、前記送信機により送信された前記データユニットを受信する受信過程と、
前記通信装置が、受信した前記データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信過程と、
前記通信装置が、前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信過程と、
前記通信装置が、前記受信過程において受信されて前記データ送信過程において送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き過程と、
前記通信装置が、前記確認応答受信過程において受信された前記確認応答に含まれる前記第1の番号と、第2の記憶手段に記憶された、データユニットの第2の番号とを比較し、
前記第2の番号が前記第1の番号よりも若い場合において、当該第1の番号を前記第2の記憶手段に前記第2の番号として上書きし、当該第1の番号より若い番号のデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きして、前記確認応答を前記送信機に転送し、
前記第2の番号が前記第1の番号よりも若くない場合において、当該第1の番号のデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、前記確認応答を前記送信機に転送する一方、当該第1の番号のデータユニットが転送中であることが記憶されているときには、当該第1の番号のデータユニットが転送中であることを意味する情報を含む前記確認応答を前記送信機に送信する確認応答送信過程と
前記送信機が、前記受信機による前記データユニットの受信の順序またはタイミングに基づいて前記データユニットの消失を推定する消失推定過程と、
前記送信機が、前記確認応答送信過程において送信された前記確認応答に、当該確認応答に含まれる第1の番号のデータユニットが転送中であることを意味する情報が含まれている場合に、当該データユニットの消失を前記消失推定過程において推定することを一時的に禁止する中止過程と
を有する通信方法。
Send machine, a transmission process of transmitting the data units of the transport layer to the receiver has an identifiable number the transmission order,
A receiving process in which a communication device receives the data unit transmitted by the transmitter;
A data transmission process in which the communication device stores in the first storage means that the data unit is being transferred in association with the received number of the data unit, and transmits the data unit to the receiver; ,
An acknowledgment reception process in which the communication device receives an acknowledgment including a first number which is a number of a data unit which is transmitted from the receiver to the transmitter and is expected to be received next by the receiver; ,
When the data unit received in the reception process and transmitted in the data transmission process is discarded, the communication device is associated with the number of the data unit and the data unit is discarded. An overwriting process stored in the first storage means for overwriting that the data unit is being transferred;
The communication device compares the first number included in the confirmation response received in the confirmation response reception process with the second number of the data unit stored in the second storage means;
When the second number is smaller than the first number, the first number is overwritten in the second storage means as the second number, and a data unit having a number smaller than the first number Is overwritten in the first storage means that it has been received at the receiver, and the confirmation response is transferred to the transmitter,
In the case where the second storage unit stores the fact that the data unit of the first number is discarded when the second number is not younger than the first number, the confirmation response is returned. When it is stored that the data unit of the first number is being transferred while the data unit of the first number is being transferred, the information including the information indicating that the data unit of the first number is being transferred An acknowledgment transmission process for transmitting an acknowledgment to the transmitter;
An erasure estimation process in which the transmitter estimates the erasure of the data units based on the order or timing of reception of the data units by the receiver;
When the transmitter includes information indicating that the data unit of the first number included in the confirmation response is being transferred in the confirmation response transmitted in the confirmation response transmission process , communication method and a stop step of temporarily disabled to estimate the loss of the data unit in the loss estimation process.
送信機が、送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信機へ送信する送信過程と、A transmission process in which a transmitter transmits a transport layer data unit having a number capable of specifying a transmission order to a receiver;
通信装置が、前記送信機により送信された前記データユニットを受信する受信過程と、A receiving process in which a communication device receives the data unit transmitted by the transmitter;
前記通信装置が、受信した前記データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信過程と、A data transmission process in which the communication device stores in the first storage means that the data unit is being transferred in association with the received number of the data unit, and transmits the data unit to the receiver; ,
前記通信装置が、前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信過程と、An acknowledgment reception process in which the communication device receives an acknowledgment including a first number which is a number of a data unit which is transmitted from the receiver to the transmitter and is expected to be received next by the receiver; ,
前記通信装置が、前記受信過程において受信されて前記データ送信過程において送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き過程と、When the data unit received in the reception process and transmitted in the data transmission process is discarded, the communication device is associated with the number of the data unit and the data unit is discarded. An overwriting process stored in the first storage means for overwriting that the data unit is being transferred;
前記通信装置が、The communication device is
前記確認応答受信過程において受信された前記確認応答に含まれる前記第1の番号と、当該確認応答の所定のフィールドに格納された内容に基づいて、当該確認応答により新たな受信確認が為されているか否かを判定し、前記確認応答により新たな受信確認が為されている場合において、当該新たな受信確認が為されているデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きし、Based on the first number included in the confirmation response received in the confirmation response reception process and the contents stored in a predetermined field of the confirmation response, a new reception confirmation is made by the confirmation response. In the case where a new reception confirmation is made by the confirmation response, it is determined that the data unit for which the new reception confirmation is made has been received by the receiver. Overwrite the storage means,
前記第1の記憶手段により、転送中であることを記憶させられたデータユニットの番号のうち最も若い番号である第3の番号よりも大きな番号を当該確認応答の前記所定のフィールドが格納していないときには、前記確認応答を前記送信機に転送し、The predetermined field of the confirmation response stores a number larger than the third number which is the youngest number among the numbers of the data units stored as being transferred by the first storage means. If not, forward the acknowledgment to the transmitter,
当該第3の番号よりも大きな番号を当該確認応答の前記所定のフィールドが格納しているときには、当該所定のフィールドが格納している番号よりも若い番号を有し、かつ前記受信機にて受信済であることを前記第1の記憶手段に上書きされていないデータユニットを特定し、When the predetermined field of the confirmation response stores a number larger than the third number, the number has a lower number than the number stored in the predetermined field and is received by the receiver A data unit that has not been overwritten in the first storage means is identified,
前記特定されたデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、当該データユニットが廃棄されていることを意味する情報を含み、かつ、前記所定のフィールドに当該データユニットの番号を格納した前記確認応答を前記送信機に転送する一方、特定された当該データユニットが転送中であることが前記第1の記憶手段に記憶されているときには、当該データユニットが転送中であることを意味する情報を含み、かつ、前記所定のフィールドに当該データユニットの番号を格納した前記確認応答を前記送信機に送信する確認応答送信過程とWhen it is stored in the first storage means that the specified data unit is discarded, the first field includes information indicating that the data unit is discarded, and the predetermined field includes the information The confirmation response storing the data unit number is transferred to the transmitter, while the first storage means stores that the identified data unit is being transferred, the data unit transfers An acknowledgment transmission process for transmitting to the transmitter the confirmation response including information indicating that the data unit is included and storing the number of the data unit in the predetermined field;
前記送信機が、前記受信機による前記データユニットの受信の順序またはタイミングに基づいて前記データユニットの消失を推定する消失推定過程と、An erasure estimation process in which the transmitter estimates the erasure of the data units based on the order or timing of reception of the data units by the receiver;
前記送信機が、前記確認応答送信過程において送信された前記確認応答に、当該確認応答に含まれる第1の番号のデータユニットが転送中であることを意味する情報が含まれている場合に、当該データユニットの消失を前記消失推定過程において推定することを一時的に禁止する中止過程とWhen the transmitter includes information indicating that the data unit of the first number included in the confirmation response is being transferred in the confirmation response transmitted in the confirmation response transmission process, A suspension process temporarily prohibiting estimation of the loss of the data unit in the loss estimation process;
を有する通信方法。A communication method.
ンピュータを、
送信機から受信機へ送信され、前記送信機からの送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信するデータ受信手段と、
前記データ受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、
前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、
前記データ受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、
前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、第2の記憶手段に記憶された、データユニットの第2の番号とを比較し、
前記第2の番号が前記第1の番号よりも若い場合において、当該第1の番号を前記第2の記憶手段に前記第2の番号として上書きし、当該第1の番号より若い番号のデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きして、前記確認応答を前記送信機に転送し、
前記第2の番号が前記第1の番号よりも若くない場合において、当該第1の番号のデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、前記確認応答を前記送信機に転送する一方、当該第1の番号のデータユニットが転送中であることが記憶されているときには、当該第1の番号のデータユニットが転送中であることを意味する情報を含む前記確認応答を前記送信機に送信する確認応答送信手段
として機能させるためのプログラム。
The computer,
Data receiving means for receiving a transport layer data unit transmitted from a transmitter to a receiver and having a number capable of specifying a transmission order from the transmitter;
When the data unit is received by the data receiving means, the first storage means stores the data unit being transferred in association with the number of the data unit, and the data unit is stored in the receiver. Data transmission means for transmitting to,
An acknowledgment receiving means for receiving an acknowledgment that is transmitted from the receiver to the transmitter and that includes a first number that is a number of a data unit that is expected to be received next by the receiver;
When the data unit received by the data receiving unit and transmitted by the data transmitting unit is discarded, it is determined that the data unit is discarded in association with the number of the data unit. Overwrite means for overwriting that the data unit is being transferred, stored in the storage means,
Comparing the first number included in the confirmation response received by the confirmation response receiving means with the second number of the data unit stored in the second storage means;
When the second number is smaller than the first number, the first number is overwritten in the second storage means as the second number, and a data unit having a number smaller than the first number Is overwritten in the first storage means that it has been received at the receiver, and the confirmation response is transferred to the transmitter,
In the case where the second storage unit stores the fact that the data unit of the first number is discarded when the second number is not younger than the first number, the confirmation response is returned. When it is stored that the data unit of the first number is being transferred while the data unit of the first number is being transferred, the information including the information indicating that the data unit of the first number is being transferred A program for functioning as an acknowledgment transmission means for transmitting an acknowledgment to the transmitter .
コンピュータを、Computer
送信機から受信機へ送信され、前記送信機からの送信順序を特定可能な番号を有するトランスポート層のデータユニットを受信するデータ受信手段と、Data receiving means for receiving a transport layer data unit transmitted from a transmitter to a receiver and having a number capable of specifying a transmission order from the transmitter;
前記データ受信手段により前記データユニットが受信されると、当該データユニットの番号に対応付けて、当該データユニットが転送中であることを第1の記憶手段に記憶させ、当該データユニットを前記受信機へ送信するデータ送信手段と、When the data unit is received by the data receiving means, the first storage means stores the data unit being transferred in association with the number of the data unit, and the data unit is stored in the receiver. Data transmission means for transmitting to,
前記受信機から前記送信機へ送信され、当該受信機にて次に受信が期待されるデータユニットの番号である第1の番号を含む確認応答を受信する確認応答受信手段と、An acknowledgment receiving means for receiving an acknowledgment that is transmitted from the receiver to the transmitter and that includes a first number that is a number of a data unit that is expected to be received next by the receiver;
前記データ受信手段により受信されて前記データ送信手段により送信された前記データユニットが廃棄された場合には、当該データユニットの番号に対応付けて、当該データユニットが廃棄されたことを、前記第1の記憶手段に記憶された、当該データユニットが転送中であることに上書きする上書き手段と、When the data unit received by the data receiving unit and transmitted by the data transmitting unit is discarded, it is determined that the data unit is discarded in association with the number of the data unit. Overwrite means for overwriting that the data unit is being transferred, stored in the storage means,
前記確認応答受信手段により受信された前記確認応答に含まれる前記第1の番号と、当該確認応答の所定のフィールドに格納された内容に基づいて、当該確認応答により新たな受信確認が為されているか否かを判定し、前記確認応答により新たな受信確認が為されている場合において、当該新たな受信確認が為されているデータユニットが受信機にて受信済であることを前記第1の記憶手段に上書きし、Based on the first number included in the confirmation response received by the confirmation response receiving means and the content stored in a predetermined field of the confirmation response, a new reception confirmation is made by the confirmation response. In the case where a new reception confirmation is made by the confirmation response, it is determined that the data unit for which the new reception confirmation is made has been received by the receiver. Overwrite the storage means,
前記第1の記憶手段により、転送中であることを記憶させられたデータユニットの番号のうち最も若い番号である第3の番号よりも大きな番号を当該確認応答の前記所定のフィールドが格納していないときには、前記確認応答を前記送信機に転送し、The predetermined field of the confirmation response stores a number larger than the third number which is the youngest number among the numbers of the data units stored as being transferred by the first storage means. If not, forward the acknowledgment to the transmitter,
当該第3の番号よりも大きな番号を当該確認応答の前記所定のフィールドが格納しているときには、当該所定のフィールドが格納している番号よりも若い番号を有し、かつ前記受信機にて受信済であることを前記第1の記憶手段に上書きされていないデータユニットを特定し、When the predetermined field of the confirmation response stores a number larger than the third number, the number has a lower number than the number stored in the predetermined field and is received by the receiver A data unit that has not been overwritten in the first storage means is identified,
前記特定されたデータユニットが廃棄されていることが前記第1の記憶手段に記憶されているときには、当該データユニットが廃棄されていることを意味する情報を含み、かつ、前記所定のフィールドに当該データユニットの番号を格納した前記確認応答を前記送信機に転送する一方、特定された当該データユニットが転送中であることが前記第1の記憶手段に記憶されているときには、当該データユニットが転送中であることを意味する情報を含み、かつ、前記所定のフィールドに当該データユニットの番号を格納した前記確認応答を前記送信機に送信する確認応答送信手段When it is stored in the first storage means that the specified data unit is discarded, the first field includes information indicating that the data unit is discarded, and the predetermined field includes the information The confirmation response storing the data unit number is transferred to the transmitter, while the first storage means stores that the identified data unit is being transferred, the data unit transfers An acknowledgment transmission means for transmitting to the transmitter the confirmation response including information indicating that the data is included and storing the number of the data unit in the predetermined field
として機能させるためのプログラム。Program to function as.
JP2003388311A 2003-11-18 2003-11-18 COMMUNICATION DEVICE, TRANSMITTER, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM Expired - Fee Related JP4348168B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003388311A JP4348168B2 (en) 2003-11-18 2003-11-18 COMMUNICATION DEVICE, TRANSMITTER, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003388311A JP4348168B2 (en) 2003-11-18 2003-11-18 COMMUNICATION DEVICE, TRANSMITTER, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2005149307A JP2005149307A (en) 2005-06-09
JP4348168B2 true JP4348168B2 (en) 2009-10-21

Family

ID=34695428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003388311A Expired - Fee Related JP4348168B2 (en) 2003-11-18 2003-11-18 COMMUNICATION DEVICE, TRANSMITTER, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP4348168B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008007170A1 (en) * 2006-07-07 2008-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Medium access control discard notification

Also Published As

Publication number Publication date
JP2005149307A (en) 2005-06-09

Similar Documents

Publication Publication Date Title
US7477675B2 (en) Data communication apparatus
EP1303970B1 (en) Tcp flow control
US6876639B1 (en) Transmission control protocol handoff notification system and method
KR100671002B1 (en) Method of controlling a receiver and a transmitter in a wireless communication system to handle a transmission window size change procedure
US7436854B2 (en) Transmitter device for controlling data transmission
KR100436435B1 (en) Method and Apparatus for Transmitting Packet Using Indirect Ackowledgement over Wire/Wireless Integrated Network
EP1581013B1 (en) Transmitted packet replenishment system and transmitted packet replenishing method
JP4495085B2 (en) Communication system, communication apparatus, and data retransmission control method
US20050144303A1 (en) System, device and method for improving throughput in a communication network, preferably a mobile ipv6-based network
US20050259577A1 (en) Method for transmitting data in mobile ad hoc network and network apparatus using the same
KR100393369B1 (en) Method and apparatus for starting an acknowledgment timer
WO2014069642A1 (en) Communication device, transmission data output control method, and program for same
JP2008104018A (en) Communication system, communication equipment, and transmission control method
EP1278348A1 (en) Long-lived TCP connection using ICMP messages in wireless mobile communications
JP4244159B2 (en) Reception device, communication system, and program
CN108713311A (en) A kind of transmission method, equipment and the system of transmission control protocol TCP message
JP4348168B2 (en) COMMUNICATION DEVICE, TRANSMITTER, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM
KR100919056B1 (en) Apparatus and method for optimizing a report-time in a mobile communication system
Daniel et al. Adapting TCP for vertical handoffs in wireless networks
JP4203400B2 (en) Reception device, communication system, and program
JP3158357B2 (en) Retransmission control method
KR20060117050A (en) Error and congestion control method for msctp handover
JP2005057397A (en) Apparatus for controlling reliable data transmission in data communication network including mobile terminal
EP1601152A1 (en) Method and apparatus for transmitting data packets in a communication network
JP2005167352A (en) Transmission apparatus and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090714

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090717

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees