JP2014507817A - Communication apparatus, packet retransmission control method, packet retransmission control program - Google Patents

Communication apparatus, packet retransmission control method, packet retransmission control program Download PDF

Info

Publication number
JP2014507817A
JP2014507817A JP2013516866A JP2013516866A JP2014507817A JP 2014507817 A JP2014507817 A JP 2014507817A JP 2013516866 A JP2013516866 A JP 2013516866A JP 2013516866 A JP2013516866 A JP 2013516866A JP 2014507817 A JP2014507817 A JP 2014507817A
Authority
JP
Japan
Prior art keywords
tcp
packet
ack
unit
retransmission control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013516866A
Other languages
Japanese (ja)
Other versions
JP5854044B2 (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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013516866A priority Critical patent/JP5854044B2/en
Publication of JP2014507817A publication Critical patent/JP2014507817A/en
Application granted granted Critical
Publication of JP5854044B2 publication Critical patent/JP5854044B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

通信装置は、TCP/IP処理を行うTCP/IP処理部と、TCP層よりも下位の層でパケット再送制御を行う再送制御部と、再送制御部より受け取るTCPパケットをTCP/IP処理部に転送するレート維持部と、を備える。再送制御部は、TCP/IP処理部から送信されたTCPパケットを送信先に送信し、送信先から受け取るTCP−ACKパケットをレート維持部に転送する。レート維持部は、同一のACK番号を有するTCP−ACKパケットが連続してTCP/IP処理部に転送されないように、再送制御部から受け取ったTCP−ACKパケットのACK番号の書き換えを行い、書き換え後のTCP−ACKパケットをTCP/IP処理部に転送する。
【選択図】図2
The communication apparatus transfers a TCP / IP processing unit that performs TCP / IP processing, a retransmission control unit that performs packet retransmission control in a layer lower than the TCP layer, and a TCP packet received from the retransmission control unit to the TCP / IP processing unit A rate maintaining unit. The retransmission control unit transmits the TCP packet transmitted from the TCP / IP processing unit to the transmission destination, and transfers the TCP-ACK packet received from the transmission destination to the rate maintaining unit. The rate maintaining unit rewrites the ACK number of the TCP-ACK packet received from the retransmission control unit so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP / IP processing unit. The TCP-ACK packet is transferred to the TCP / IP processing unit.
[Selection] Figure 2

Description

本発明は、パケット通信におけるパケット再送制御(packet retransmission control)に関する。   The present invention relates to packet retransmission control in packet communication.

パケット通信ネットワークでは、伝送中のパケットの廃棄や破壊が発生する可能性がある。これは、パケットを転送するルータやスイッチにおける輻輳の発生や信号受信感度の低下、あるいは外部からの電磁ノイズ等に起因する。一般的に、廃棄や破壊によるパケットの消失は、アプリケーション層あるいはトランスポート層で動作するプロトコルによって検知される。そして、そのようなプロトコルの制御により、消失したパケットの再送(retransmission)が行われ、送信されるべきデータの完全性が保証される。   In a packet communication network, a packet being transmitted may be discarded or destroyed. This is due to the occurrence of congestion in the router or switch that forwards the packet, a decrease in signal reception sensitivity, or electromagnetic noise from the outside. In general, packet loss due to discard or destruction is detected by a protocol operating in the application layer or transport layer. Then, under such protocol control, lost packets are retransmitted to ensure the integrity of the data to be transmitted.

具体的には、送信装置は受信装置にパケットを送信し、受信装置はパケットの受信を契機に確認応答(ACK:ACKnowledgement)パケットを送信装置に返信する。このACKパケットの受信をもって、送信装置は、送出パケットが受信装置に無事到達したことを認識する。一方、送信装置と受信装置との間のネットワーク上でパケットが消失した場合、送信装置は、当該パケットに応答するACKパケットを受け取らない。送信装置は、パケット送出後、所定の待ち時間以内にACKパケットを受け取らない場合、当該パケットを受信装置に再送する。尚、上記所定の待ち時間は、「再送タイムアウト(RTO:Retransmission Time Out)」と呼ばれている。また、このようなパケット再送制御を実施する送信装置は、ACKパケットを受け取るまで送出パケットを一時的に保管するための記憶領域を備えており、この記憶領域は、以下「再送バッファ」と参照される。   Specifically, the transmission device transmits a packet to the reception device, and the reception device returns an acknowledgment (ACK: ACKnowledgement) packet to the transmission device upon receipt of the packet. Upon reception of this ACK packet, the transmission device recognizes that the transmission packet has successfully reached the reception device. On the other hand, when a packet is lost on the network between the transmission device and the reception device, the transmission device does not receive an ACK packet in response to the packet. If the transmitting device does not receive the ACK packet within a predetermined waiting time after sending the packet, the transmitting device retransmits the packet to the receiving device. The predetermined waiting time is referred to as “Retransmission Time Out (RTO)”. In addition, a transmission apparatus that performs such packet retransmission control includes a storage area for temporarily storing transmission packets until an ACK packet is received. This storage area is hereinafter referred to as a “retransmission buffer”. The

インターネットで用いられるTCP(Transmission Control Protocol)は、このようなパケット再送制御を行う代表的なトランスポート層のプロトコルである。   TCP (Transmission Control Protocol) used in the Internet is a typical transport layer protocol that performs such packet retransmission control.

このようなパケット再送制御に関連する技術が、非特許文献1に記載されている。当該関連技術によれば、TCP層よりも下位のMAC(Media Access Control)層において、パケット再送制御が実施される。その理由は次の通りである。   A technique related to such packet retransmission control is described in Non-Patent Document 1. According to the related technology, packet retransmission control is performed in a MAC (Media Access Control) layer lower than the TCP layer. The reason is as follows.

例として、データセンタ内のネットワークのような、往復遅延時間(RTT:Round−Trip delay Time)が非常に短いネットワークを考える。このようなネットワークでは、再送タイムアウトをマイクロ秒レベルにまで短縮することによって、パケット再送までの待ち時間を減少させ、通信効率を向上させることができる。しかしながら、一般的にTCPはOS(Operating System)に実装されているため、TCPの再送タイムアウトをマイクロ秒レベルまで短縮することは困難である。例えば、Linuxにおける単位時間(Jiffies)の精度は高々ミリ秒であり、マイクロ秒単位の時間計測には不十分である。そこで非特許文献1は、OSより下位のMAC層においてパケット再送制御を実施し、再送タイムアウトをマイクロ秒レベルにまで短縮することで、このような問題を解決する。   As an example, consider a network having a very short round-trip delay time (RTT) such as a network in a data center. In such a network, by shortening the retransmission timeout to the microsecond level, it is possible to reduce the waiting time until packet retransmission and improve the communication efficiency. However, since TCP is generally implemented in an OS (Operating System), it is difficult to reduce the TCP retransmission timeout to the microsecond level. For example, the accuracy of unit time (Jiffies) in Linux is at most milliseconds, which is insufficient for time measurement in units of microseconds. Therefore, Non-Patent Document 1 solves such a problem by performing packet retransmission control in the MAC layer lower than the OS and shortening the retransmission timeout to the microsecond level.

高道 透 他、“Ultra−High Speed MAC Technology for Terabit−Class LAN”、電子情報通信学会 通信ソサイエティ大会、2008.Toru Takamichi et al., “Ultra-High Speed MAC Technology for Terabit-Class LAN”, IEICE Communication Society Conference, 2008.

本願発明者は、上記関連技術のようにTCP層より下位の層においてもパケット再送制御が実施される場合に関して、次のような問題点を認識した。それは、あるパケットがネットワーク上で消失した場合に、当該同一パケットに対して、下位層とTCP層の両方によるパケット再送が発生してしまう可能性があることである。図1を参照して、このような状況を説明する。   The inventor of the present application has recognized the following problems regarding the case where packet retransmission control is performed in a layer lower than the TCP layer as in the related art. That is, when a packet is lost on the network, packet retransmission by both the lower layer and the TCP layer may occur for the same packet. Such a situation will be described with reference to FIG.

図1において、2台の通信装置がネットワークを介して互いに接続されている。各通信装置において、「TCP/IP処理部」がTCP/IP処理を行い、「再送制御部」がTCP層よりも下位の層でのパケット再送制御を実施する。実線の矢印は、第1の通信装置から第2の通信装置に送られる、TCPデータを含むTCPパケットを表す。各TCPパケットは、100バイトのTCPデータを含み、また、単一のフローに属するとする。また、破線の矢印は、第2の通信装置から第1の通信装置へ返送される、TCPによるACKパケット(以下、「TCP−ACKパケット」と参照される)を表す。実線の矢印に付された一重円の中の数字は、TCPパケットのシーケンス番号を示し、破線の矢印に付された二重円の中の数字は、TCP−ACKパケットのTCPのACK番号を示す。尚、簡単のため、下位層によるACKパケットの送受信は図示されていない。また、TCPの一般的な実装では、複数のACKパケットを1つに集約する遅延ACK(Delayed ACK)機能が有効になっているが、本例では遅延ACKを考慮しない。これらの簡略化によって一般性が失われることはない。   In FIG. 1, two communication devices are connected to each other via a network. In each communication apparatus, the “TCP / IP processing unit” performs TCP / IP processing, and the “retransmission control unit” performs packet retransmission control in a layer lower than the TCP layer. A solid arrow represents a TCP packet including TCP data sent from the first communication device to the second communication device. Each TCP packet includes 100 bytes of TCP data and belongs to a single flow. A broken arrow represents an ACK packet by TCP (hereinafter referred to as “TCP-ACK packet”) that is returned from the second communication device to the first communication device. The number in the single circle attached to the solid line arrow indicates the sequence number of the TCP packet, and the number in the double circle attached to the broken line arrow indicates the TCP ACK number of the TCP-ACK packet. . For simplicity, transmission / reception of ACK packets by lower layers is not shown. Further, in a general implementation of TCP, a delayed ACK (Delayed ACK) function that aggregates a plurality of ACK packets into one is effective, but in this example, delayed ACK is not considered. These simplifications do not lose generality.

図1に示される例において、第1の通信装置のTCP/IP処理部は、6つのTCPパケットを第2の通信装置に向けて連続して送出する(時系列順に、時刻T1、T2、T3、T5、T6、T7)。ここで、時刻T3に送出された、シーケンス番号“300”のTCPパケットが、ネットワーク内で廃棄された場合を考える。第1の通信装置の再送制御部は、時刻T4において当該TCPパケット(シーケンス番号“300”)を送出し、再送タイムアウト経過後の時刻T8において当該TCPパケット(シーケンス番号“300”)を再送する。   In the example shown in FIG. 1, the TCP / IP processing unit of the first communication device continuously sends six TCP packets to the second communication device (time T1, T2, T3 in chronological order). , T5, T6, T7). Here, consider a case where the TCP packet with the sequence number “300” sent at time T3 is discarded in the network. The retransmission control unit of the first communication apparatus transmits the TCP packet (sequence number “300”) at time T4, and retransmits the TCP packet (sequence number “300”) at time T8 after the retransmission timeout has elapsed.

その後、時刻T9〜T13にかけて、廃棄されなかった5つのTCPパケットのそれぞれに応答する5つのTCP−ACKパケットが第1の通信装置に順番に到着する。これら5つのTCP−ACKパケットのそれぞれのACK番号は、到着順に200、300、300、300、300である。ACK番号“300”のTCP−ACKパケットが連続する理由は、第2の通信装置のTCP/IP処理部が、シーケンス番号“300”のTCPパケットを受理していないからである。尚、同じACK番号を持つ2回目以降のTCP−ACKパケットは、「重複ACKパケット」と呼ばれる。   Thereafter, from time T9 to T13, five TCP-ACK packets responding to each of the five TCP packets that have not been discarded arrive at the first communication device in order. The ACK numbers of these five TCP-ACK packets are 200, 300, 300, 300, and 300 in the order of arrival. The reason why the TCP-ACK packets with the ACK number “300” are continuous is that the TCP / IP processing unit of the second communication apparatus does not accept the TCP packet with the sequence number “300”. The second and subsequent TCP-ACK packets having the same ACK number are called “duplicate ACK packets”.

ここで、第1の通信装置のTCP/IP処理部は、重複ACKパケットを3回連続で受信すると高速再送(Fast Retransmit)を起動するとする。この場合、第1の通信装置のTCP/IP処理部は、ACK番号“300”の4回目のTCP−ACKパケットを受信した時点(時刻T13)で、シーケンス番号“300”のTCPパケットを再送する。   Here, it is assumed that the TCP / IP processing unit of the first communication device activates fast retransmission when receiving the duplicate ACK packet three times in succession. In this case, the TCP / IP processing unit of the first communication apparatus retransmits the TCP packet with the sequence number “300” when the fourth TCP-ACK packet with the ACK number “300” is received (time T13). .

時刻T8で再送制御部によって再送されたTCPパケット(シーケンス番号“300”)に応答するTCP−ACKパケットは、時刻T14においてようやく第1の通信装置に到着する。しかしながら、この時点では、TCP/IP処理部によるTCPパケット(シーケンス番号“300”)の再送が既に行われてしまっている。すなわち、再送制御部による再送が結果的に間に合っていない。   The TCP-ACK packet responding to the TCP packet (sequence number “300”) retransmitted by the retransmission control unit at time T8 finally arrives at the first communication device at time T14. However, at this point, the TCP / IP processing unit has already retransmitted the TCP packet (sequence number “300”). That is, the retransmission by the retransmission control unit is not in time as a result.

このように、シーケンス番号“300”のTCPパケットに関して、下位層での再送制御部による再送に加えてTCPによる高速再送も実施されてしまう。下位層にて再送が行われる以上、TCPによる再送は不要な処理である。また、TCP/IP処理部は、高速再送に伴って輻輳ウィンドウを縮小させる。すなわち、TCPによる高速再送がいたずらに引き起こされることは、ネットワークの帯域を圧迫するだけでなく、TCPのスループットを減少させ、通信効率を大幅に低下させる。   As described above, in addition to the retransmission by the retransmission control unit in the lower layer, the TCP packet with the sequence number “300” is also subjected to high-speed retransmission by TCP. Since retransmission is performed in the lower layer, retransmission by TCP is an unnecessary process. Also, the TCP / IP processing unit reduces the congestion window with high-speed retransmission. That is, mischievous high-speed retransmission by TCP not only compresses the network bandwidth, but also reduces TCP throughput and greatly reduces communication efficiency.

以下、図1で示された例において、TCPによる不要な高速再送の発生を回避するための条件について考察する。   Hereinafter, in the example shown in FIG. 1, conditions for avoiding unnecessary high-speed retransmission due to TCP will be considered.

まず、再送制御部の再送タイムアウトは、次の条件を満たす必要がある:「TCP/IP処理部がシーケンス番号“600”のTCPパケットを送信する時刻T7より前に、再送制御部による再送が開始されること」。この条件をより一般化すれば、次の通りである:「廃棄されるTCPパケット(シーケンス番号“300”)の3つあとのTCPパケット(シーケンス番号“600”)が送信される前に、再送制御部による再送が開始されること」。ここで、「3つあと」の根拠は、図1の例においてTCP/IP処理部が重複ACKパケットを3回連続で受信すると高速再送を起動することである。この条件は、次の関係式(1)で表される。   First, the retransmission timeout of the retransmission control unit must satisfy the following condition: “Retransmission by the retransmission control unit starts before time T7 when the TCP / IP processing unit transmits the TCP packet with the sequence number“ 600 ”. To be done. " To generalize this condition, it is as follows: “Retransmit before sending the TCP packet (sequence number“ 600 ”) three times after the discarded TCP packet (sequence number“ 300 ”)” The retransmission by the control unit is started. Here, the reason for “after three” is that, in the example of FIG. 1, when the TCP / IP processing unit receives duplicate ACK packets three times in succession, it starts high-speed retransmission. This condition is expressed by the following relational expression (1).

関係式(1):
{再送制御部の再送タイムアウト}<{3つのTCPパケットの送信に要する時間}
Relational expression (1):
{Retransmission timeout of retransmission controller} <{Time required for transmission of three TCP packets}

また、再送タイムアウトをネットワークのRTTよりも短く設定することはできない。従って、次の関係式(2)も満たされる必要がある。   Also, the retransmission timeout cannot be set shorter than the network RTT. Therefore, the following relational expression (2) also needs to be satisfied.

関係式(2):
{再送制御部の再送タイムアウト}≧{ネットワークのRTT}
Relational expression (2):
{Retransmission timeout of retransmission controller} ≧ {RTT of network}

関係式(1)と関係式(2)から、次の関係式(3)が得られる。   From the relational expression (1) and the relational expression (2), the following relational expression (3) is obtained.

関係式(3):
{ネットワークのRTT}<{3つのTCPパケットの送信に要する時間}
Relational expression (3):
{Network RTT} <{Time required to send three TCP packets}

TCPによる不要な高速再送の発生を回避するためには、上記関係式(3)が満たされる必要がある。しかしながら、実際のネットワークにおいて関係式(3)を成立させることは極めて困難である。例えば、ネットワークがイーサネットである場合、最小のフレーム長は64バイトであり、最小のフレーム間ギャップ(Inter−Frame Gap)は20バイトである。この場合、関係式(3)の右辺は、3×(64+20)×8/{ネットワークの回線速度[ビット/秒]}、となる。例えば、ネットワークの回線速度が10ギガビット/秒の場合、関係式(3)は次の関係式(4)となる。   In order to avoid occurrence of unnecessary high-speed retransmission due to TCP, the relational expression (3) needs to be satisfied. However, it is extremely difficult to establish the relational expression (3) in an actual network. For example, when the network is Ethernet, the minimum frame length is 64 bytes, and the minimum inter-frame gap is 20 bytes. In this case, the right side of the relational expression (3) is 3 × (64 + 20) × 8 / {network line speed [bit / second]}. For example, when the line speed of the network is 10 gigabits / second, the relational expression (3) becomes the following relational expression (4).

関係式(4):
{ネットワークのRTT}<0.2016マイクロ秒
Relational expression (4):
{Network RTT} <0.2016 microseconds

一般的なデータセンタのネットワークのRTTは数十〜数百マイクロ秒と言われており、上記の0.2016マイクロ秒とは甚だしく乖離している。従って、実際のネットワークにおいて関係式(3)、(4)を成立させることは容易ではない。また、今後、回線速度の主流が40ギガビット/秒や100ギガビット/秒に移行するに従って、条件は更に厳しくなる。   The RTT of a general data center network is said to be several tens to several hundreds of microseconds, which is significantly different from the above-mentioned 0.2016 microseconds. Therefore, it is not easy to establish relational expressions (3) and (4) in an actual network. In the future, conditions will become more severe as the main line speed shifts to 40 gigabits / second or 100 gigabits / second.

以上に説明されたように、関連技術によれば、下位層でパケット再送制御を行う場合に、通信効率の低下が発生する恐れがある。   As described above, according to the related art, when packet retransmission control is performed in a lower layer, there is a possibility that communication efficiency may be reduced.

本発明の1つの目的は、下位層でパケット再送制御を行う場合の通信効率の低下を未然に防止することができる技術を提供することにある。   An object of the present invention is to provide a technique capable of preventing a reduction in communication efficiency when performing packet retransmission control in a lower layer.

本発明の1つの観点において通信装置が提供される。その通信装置は、TCP/IP処理を行うTCP/IP処理部と、TCP層よりも下位の層でパケット再送制御を行う再送制御部と、再送制御部より受け取るTCPパケットをTCP/IP処理部に転送するレート維持部と、を備える。再送制御部は、TCP/IP処理部から送信されたTCPパケットを送信パケットとして送信先に送信し、送信先から送信パケットに応答するTCP−ACKパケットを受け取り、受け取ったTCP−ACKパケットをレート維持部に転送する。レート維持部は、同一のACK番号を有するTCP−ACKパケットが連続してTCP/IP処理部に転送されないように、再送制御部から受け取ったTCP−ACKパケットのACK番号の書き換えを行い、書き換え後のTCP−ACKパケットをTCP/IP処理部に転送する。   In one aspect of the present invention, a communication device is provided. The communication device includes a TCP / IP processing unit that performs TCP / IP processing, a retransmission control unit that performs packet retransmission control in a layer lower than the TCP layer, and a TCP packet received from the retransmission control unit to the TCP / IP processing unit. A rate maintaining unit for transfer. The retransmission control unit transmits the TCP packet transmitted from the TCP / IP processing unit to the transmission destination as a transmission packet, receives a TCP-ACK packet responding to the transmission packet from the transmission destination, and maintains the rate of the received TCP-ACK packet. Forward to department. The rate maintaining unit rewrites the ACK number of the TCP-ACK packet received from the retransmission control unit so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP / IP processing unit. The TCP-ACK packet is transferred to the TCP / IP processing unit.

本発明の他の観点において、通信装置におけるパケット再送制御方法が提供される。そのパケット再送制御方法は、(A)TCP層から送信されたTCPパケットに関して、TCP層よりも下位の下位層でパケット再送制御を行うステップと、(B)TCPパケットの送信先から、TCPパケットに応答するTCP−ACKパケットを受け取るステップと、(C)受け取ったTCP−ACKパケットを下位層からTCP層に転送するステップと、を含む。上記(C)転送するステップは、(C1)同一のACK番号を有するTCP−ACKパケットが連続してTCP層に転送されないように、受け取ったTCP−ACKパケットのACK番号の書き換えを行うステップと、(C2)書き換え後のTCP−ACKパケットをTCP層に転送するステップと、を含む。   In another aspect of the present invention, a packet retransmission control method in a communication apparatus is provided. The packet retransmission control method includes (A) a step of performing packet retransmission control in a lower layer lower than the TCP layer with respect to the TCP packet transmitted from the TCP layer, and (B) from the transmission destination of the TCP packet to the TCP packet. Receiving a responding TCP-ACK packet; and (C) transferring the received TCP-ACK packet from the lower layer to the TCP layer. The (C) forwarding step includes (C1) rewriting the ACK number of the received TCP-ACK packet so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP layer; (C2) transferring the rewritten TCP-ACK packet to the TCP layer.

本発明の更に他の観点において、コンピュータにパケット再送制御機能を実現させるためのパケット再送制御プログラムが提供される。そのパケット再送制御機能は、TCP/IP処理を行うTCP/IP処理機能と、TCP層よりも下位の層でパケット再送制御を行う再送制御機能と、再送制御機能より受け取るTCPパケットをTCP/IP処理機能に転送するレート維持機能と、を備える。再送制御機能は、TCP/IP処理機能から送信されたTCPパケットを送信パケットとして送信先に送信し、送信先から送信パケットに応答するTCP−ACKパケットを受け取り、受け取ったTCP−ACKパケットをレート維持機能に転送する。レート維持機能は、同一のACK番号を有するTCP−ACKパケットが連続してTCP/IP処理機能に転送されないように、再送制御機能から受け取ったTCP−ACKパケットのACK番号の書き換えを行い、書き換え後のTCP−ACKパケットをTCP/IP処理機能に転送する。   In still another aspect of the present invention, a packet retransmission control program for causing a computer to realize a packet retransmission control function is provided. The packet retransmission control function includes a TCP / IP processing function for performing TCP / IP processing, a retransmission control function for performing packet retransmission control in a layer lower than the TCP layer, and a TCP packet received from the retransmission control function by TCP / IP processing. A rate maintaining function for transferring to the function. The retransmission control function transmits a TCP packet transmitted from the TCP / IP processing function to a transmission destination as a transmission packet, receives a TCP-ACK packet responding to the transmission packet from the transmission destination, and maintains the rate of the received TCP-ACK packet. Transfer to function. The rate maintenance function rewrites the ACK number of the TCP-ACK packet received from the retransmission control function so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP / IP processing function. The TCP-ACK packet is transferred to the TCP / IP processing function.

本発明によれば、下位層でパケット再送制御を行う場合の通信効率の低下を未然に防止することが可能となる。   According to the present invention, it is possible to prevent a decrease in communication efficiency when performing packet retransmission control in a lower layer.

図1は、課題を説明するためのシーケンス図である。FIG. 1 is a sequence diagram for explaining the problem. 図2は、本発明の実施の形態に係る通信装置の構成を示すブロック図である。FIG. 2 is a block diagram showing a configuration of the communication apparatus according to the embodiment of the present invention. 図3は、本発明の実施の形態における再送制御部の構成を示すブロック図である。FIG. 3 is a block diagram showing a configuration of the retransmission control unit in the embodiment of the present invention. 図4は、再送バッファの構成を示す概念図である。FIG. 4 is a conceptual diagram showing the configuration of the retransmission buffer. 図5は、本発明の実施の形態におけるレート維持部の構成を示すブロック図である。FIG. 5 is a block diagram showing a configuration of the rate maintaining unit in the embodiment of the present invention. 図6は、本発明の実施の形態におけるフローテーブルの構成を示す概念図である。FIG. 6 is a conceptual diagram showing the configuration of the flow table in the embodiment of the present invention. 図7は、本発明の実施の形態における登録部の処理を示すフローチャートである。FIG. 7 is a flowchart showing the processing of the registration unit in the embodiment of the present invention. 図8Aは、本発明の実施の形態における書き換え部の処理を示すフローチャートである。FIG. 8A is a flowchart showing processing of the rewriting unit in the embodiment of the present invention. 図8Bは、本発明の実施の形態における書き換え部の処理を示すフローチャートである。FIG. 8B is a flowchart showing processing of the rewriting unit according to the embodiment of the present invention. 図9は、本発明の実施の形態に係る通信装置の動作の例を示すシーケンス図である。FIG. 9 is a sequence diagram showing an example of operation of the communication apparatus according to the embodiment of the present invention. 図10は、本発明の実施の形態におけるフローテーブルの内容の例を示す表である。FIG. 10 is a table showing an example of the contents of the flow table in the embodiment of the present invention. 図11は、本発明の実施の形態に係る通信装置を情報処理装置に適用した場合の構成を示す図である。FIG. 11 is a diagram showing a configuration when the communication device according to the embodiment of the present invention is applied to an information processing device.

添付図面を参照して、本発明の実施の形態を説明する。   Embodiments of the present invention will be described with reference to the accompanying drawings.

1.構成
1−1.全体構成
図2は、本発明の実施の形態に係る通信装置1の構成を示すブロック図である。本実施の形態に係る通信装置1は、アプリケーション処理部10、TCP/IP処理部11、レート維持部12、再送制御部13、及び下位レイヤ処理部14を備えている。
1. Configuration 1-1. Overall Configuration FIG. 2 is a block diagram showing a configuration of the communication apparatus 1 according to the embodiment of the present invention. The communication device 1 according to the present embodiment includes an application processing unit 10, a TCP / IP processing unit 11, a rate maintaining unit 12, a retransmission control unit 13, and a lower layer processing unit 14.

アプリケーション処理部10は、Webサーバやメールサーバなどの通信アプリケーションを動作させる。   The application processing unit 10 operates a communication application such as a web server or a mail server.

TCP/IP処理部11は、TCP層及びIP(Internet Protocol)層の処理を行う。このTCP/IP処理部11は、TCPによる一般的なパケット再送制御機能を有している。TCP/IP処理部11とアプリケーション処理部10の間は、一般的にはソケットを介して接続される。   The TCP / IP processing unit 11 performs processing of a TCP layer and an IP (Internet Protocol) layer. The TCP / IP processing unit 11 has a general packet retransmission control function based on TCP. The TCP / IP processing unit 11 and the application processing unit 10 are generally connected via a socket.

下位レイヤ処理部14は、物理層とリンク層の処理を行う。物理層とリンク層のプロトコルは、イーサネット(登録商標)などである。下位レイヤ処理部14は、再送制御部13から入力された送信パケット22を、所定の手順に従ってネットワーク2に送信する。また、下位レイヤ処理部14は、ネットワーク2から受信した受信パケット23を再送制御部13に出力する。   The lower layer processing unit 14 performs physical layer and link layer processing. The protocol of the physical layer and the link layer is Ethernet (registered trademark) or the like. The lower layer processing unit 14 transmits the transmission packet 22 input from the retransmission control unit 13 to the network 2 according to a predetermined procedure. Further, the lower layer processing unit 14 outputs the received packet 23 received from the network 2 to the retransmission control unit 13.

再送制御部13は、TCP/IP処理部11と下位レイヤ処理部14との間に設けられている。この再送制御部13は、TCP層(TCP/IP処理部11)よりも下位の層でパケット再送制御を行う機能を有している。具体的には、再送制御部13は、TCP/IP処理部11から送信されたTCPパケット20を受け取る。再送制御部13は、受け取ったTCPパケット20に再送制御処理を施し、それを送信パケット22として下位レイヤ処理部14に送信する。また、再送制御部13は、下位レイヤ処理部14から受信パケット23を受け取る。その受信パケット23が下位層のACKパケットである場合、再送制御部13は、その下位層のACKパケットを終端する。また、その受信パケット23がTCPパケット20を含んでいる場合、再送制御部13は、当該TCPパケット20をレート維持部12に転送するとともに、下位層のACKパケットを生成してそれを送信元に返信する。尚、下位レイヤ処理部14から受け取るTCPパケット20は、送信先に送信された送信パケット22に応答するTCP−ACKパケット(TCPによるACKパケットであり、ACK番号を有するTCPパケット)である場合もある。更に、再送制御部13は、レート維持部12から再送指示21を受け取ると、その再送指示21に従って該当TCPパケット20の再送を行う。再送制御部13については、後に詳細に説明する。   The retransmission control unit 13 is provided between the TCP / IP processing unit 11 and the lower layer processing unit 14. The retransmission control unit 13 has a function of performing packet retransmission control in a layer lower than the TCP layer (TCP / IP processing unit 11). Specifically, the retransmission control unit 13 receives the TCP packet 20 transmitted from the TCP / IP processing unit 11. The retransmission control unit 13 performs retransmission control processing on the received TCP packet 20 and transmits it to the lower layer processing unit 14 as a transmission packet 22. In addition, the retransmission control unit 13 receives the received packet 23 from the lower layer processing unit 14. When the received packet 23 is a lower layer ACK packet, the retransmission control unit 13 terminates the lower layer ACK packet. When the received packet 23 includes the TCP packet 20, the retransmission control unit 13 transfers the TCP packet 20 to the rate maintaining unit 12, generates a lower layer ACK packet, and uses it as a transmission source. Send back. The TCP packet 20 received from the lower layer processing unit 14 may be a TCP-ACK packet (an ACK packet by TCP and a TCP packet having an ACK number) in response to the transmission packet 22 transmitted to the transmission destination. . Furthermore, when the retransmission control unit 13 receives the retransmission instruction 21 from the rate maintaining unit 12, the retransmission control unit 13 retransmits the corresponding TCP packet 20 in accordance with the retransmission instruction 21. The retransmission control unit 13 will be described in detail later.

レート維持部12は、TCP/IP処理部11と再送制御部13との間に設けられている。レート維持部12は、TCP/IP処理部11から送信されたTCPパケット20を受け取り、受け取ったTCPパケット20に関する情報を適宜記憶する。また、レート維持部12は、再送制御部13からTCPパケット20を受け取る。再送制御部13から受け取るTCPパケット20には、送信先に送信された送信パケット22に応答するTCP−ACKパケットも含まれる。レート維持部12は、再送制御部13から受け取ったTCPパケット20をTCP/IP処理部11に転送する。但し、この時、レート維持部12は、TCP/IP処理部11において高速再送が起動しないように、TCP−ACKパケットのACK番号を必要に応じて書き換える。具体的には、レート維持部12は、同一のACK番号を有するTCP−ACKパケットが連続してTCP/IP処理部11に転送されないように、すなわち、TCP/IP処理部11において重複ACKパケットが発生しないように、TCP−ACKパケットのACK番号を書き換える。そして、レート維持部12は、書き換え後のTCP−ACKパケットをTCP/IP処理部11に転送する。更に、レート維持部12は、必要に応じて、再送指示21を再送制御部13に向けて発行する。レート維持部12については、後に詳細に説明する。   The rate maintaining unit 12 is provided between the TCP / IP processing unit 11 and the retransmission control unit 13. The rate maintaining unit 12 receives the TCP packet 20 transmitted from the TCP / IP processing unit 11 and appropriately stores information regarding the received TCP packet 20. Further, the rate maintaining unit 12 receives the TCP packet 20 from the retransmission control unit 13. The TCP packet 20 received from the retransmission control unit 13 includes a TCP-ACK packet responding to the transmission packet 22 transmitted to the transmission destination. The rate maintaining unit 12 transfers the TCP packet 20 received from the retransmission control unit 13 to the TCP / IP processing unit 11. However, at this time, the rate maintaining unit 12 rewrites the ACK number of the TCP-ACK packet as necessary so that the high-speed retransmission is not activated in the TCP / IP processing unit 11. Specifically, the rate maintaining unit 12 prevents the TCP-ACK packets having the same ACK number from being continuously transferred to the TCP / IP processing unit 11, that is, the TCP / IP processing unit 11 receives duplicate ACK packets. The ACK number of the TCP-ACK packet is rewritten so as not to occur. Then, the rate maintaining unit 12 transfers the rewritten TCP-ACK packet to the TCP / IP processing unit 11. Furthermore, the rate maintaining unit 12 issues a retransmission instruction 21 to the retransmission control unit 13 as necessary. The rate maintaining unit 12 will be described in detail later.

ネットワーク2は、予め定められた転送経路に沿って、あるいはTCPパケット20に含まれる宛先情報に従って、TCPパケット20を適切な宛先に転送する。ネットワーク2では、ルータやスイッチに例示される複数の伝送装置が伝送線路によって相互に接続されている。ネットワーク2では、電磁ノイズやトラヒックの輻輳などの要因により、転送中のTCPパケット20の消失が発生する可能性がある。   The network 2 transfers the TCP packet 20 to an appropriate destination along a predetermined transfer path or according to destination information included in the TCP packet 20. In the network 2, a plurality of transmission devices exemplified by routers and switches are connected to each other by transmission lines. In the network 2, the TCP packet 20 being transferred may be lost due to factors such as electromagnetic noise and traffic congestion.

1−2.再送制御部13
図3は、通信装置1の再送制御部13の構成例を示している。再送制御部13は、送信部30、再送バッファ31、受信部32、及び多重部33を備えている。
1-2. Retransmission control unit 13
FIG. 3 shows a configuration example of the retransmission control unit 13 of the communication apparatus 1. The retransmission control unit 13 includes a transmission unit 30, a retransmission buffer 31, a reception unit 32, and a multiplexing unit 33.

再送バッファ31は、送信済みのTCPパケット20を一時的に保持しておくために用いられる。その保持期間は、TCPパケット20の送信時から、当該TCPパケット20に応答する下位層のACKパケットを受け取るまでである。図4は、再送バッファ31の構成例を示している。再送バッファ31は、0個以上のキューエントリ61を有するFIFO(First−In First−Out)型のキューである。各キューエントリ61は、TCP/IP処理部11から再送制御部13に入力されたTCPパケット20のひとつひとつに対応しており、対応するTCPパケット20に関する情報を含んでいる。具体的には、各キューエントリ61は、TCPパケット62とタイムスタンプ63を含んでいる。TCPパケット62は、再送バッファ31に書き込まれたTCPパケット20である。タイムスタンプ63は、当該TCPパケット20が再送バッファ31に書き込まれた時刻であり、再送タイムアウトの判定に用いられる。   The retransmission buffer 31 is used to temporarily hold the transmitted TCP packet 20. The holding period is from when the TCP packet 20 is transmitted until a lower-layer ACK packet responding to the TCP packet 20 is received. FIG. 4 shows a configuration example of the retransmission buffer 31. The retransmission buffer 31 is a FIFO (First-In First-Out) type queue having zero or more queue entries 61. Each queue entry 61 corresponds to each TCP packet 20 input from the TCP / IP processing unit 11 to the retransmission control unit 13 and includes information on the corresponding TCP packet 20. Specifically, each queue entry 61 includes a TCP packet 62 and a time stamp 63. The TCP packet 62 is the TCP packet 20 written in the retransmission buffer 31. The time stamp 63 is the time when the TCP packet 20 is written in the retransmission buffer 31, and is used for determination of retransmission timeout.

再度図3を参照して、送信部30は、TCP/IP処理部11から送信されたTCPパケット20を受け取る。送信部30は、そのTCPパケット20を再送バッファ31に書き込むととともに、多重部33に出力する。また、送信部30は、再送タイムアウトが経過したキューエントリ61のTCPパケット62を再送バッファ31から読み出し、それを多重部33に出力する。更に、送信部30は、レート維持部12から、パケット識別子を含む再送指示21を受け取る場合がある。「パケット識別子」は、例えば、パケットヘッダに含まれる、MAC層の宛先/送信元アドレス・VLANタグや、IP層の送信元/宛先アドレス、TCP層の送信元/宛先ポート番号・ACK番号、などの一部または全てである。送信部30は、受け取った再送指示21からパケット識別子を抽出し、そのパケット識別子に該当するTCPパケット62を再送バッファ31の中から検索し、見つかったTCPパケット62を再送バッファ31から読み出し、それを多重部33に出力する。   Referring to FIG. 3 again, the transmission unit 30 receives the TCP packet 20 transmitted from the TCP / IP processing unit 11. The transmission unit 30 writes the TCP packet 20 in the retransmission buffer 31 and outputs it to the multiplexing unit 33. Further, the transmission unit 30 reads the TCP packet 62 of the queue entry 61 for which the retransmission timeout has elapsed from the retransmission buffer 31 and outputs it to the multiplexing unit 33. Further, the transmitting unit 30 may receive a retransmission instruction 21 including a packet identifier from the rate maintaining unit 12. The “packet identifier” includes, for example, a MAC layer destination / source address / VLAN tag, an IP layer source / destination address, a TCP layer source / destination port number / ACK number, and the like included in the packet header. Part or all of The transmission unit 30 extracts a packet identifier from the received retransmission instruction 21, searches the retransmission buffer 31 for a TCP packet 62 corresponding to the packet identifier, reads the found TCP packet 62 from the retransmission buffer 31, The data is output to the multiplexing unit 33.

受信部32は、下位レイヤ処理部14から受信パケット23を受け取る。その受信パケット23がTCPパケット20である場合、受信部32は、そのTCPパケット20をレート維持部12に転送する。更に、受信部32は、そのTCPパケット20の送信元を宛先とする下位層ACKパケット39を生成し、その下位層ACKパケット39を多重部33に出力する。この際、受信部32は、当該TCPパケット20からパケット識別子を抽出し、抽出したパケット識別子を下位層ACKパケット39に付与する。一方、受信パケット23が下位層ACKパケット39である場合、受信部32は、その下位層ACKパケット39を終端する。更に、受信部32は、その下位層ACKパケット39からパケット識別子を抽出し、そのパケット識別子に該当するTCPパケット62を持つキューエントリ61を再送バッファ31の中から検索し、見つかったキューエントリ61を削除する。   The receiving unit 32 receives the received packet 23 from the lower layer processing unit 14. When the received packet 23 is the TCP packet 20, the receiving unit 32 transfers the TCP packet 20 to the rate maintaining unit 12. Further, the receiving unit 32 generates a lower layer ACK packet 39 whose destination is the transmission source of the TCP packet 20, and outputs the lower layer ACK packet 39 to the multiplexing unit 33. At this time, the receiving unit 32 extracts a packet identifier from the TCP packet 20 and gives the extracted packet identifier to the lower layer ACK packet 39. On the other hand, when the received packet 23 is the lower layer ACK packet 39, the receiving unit 32 terminates the lower layer ACK packet 39. Further, the receiving unit 32 extracts a packet identifier from the lower layer ACK packet 39, searches the retransmission buffer 31 for a queue entry 61 having a TCP packet 62 corresponding to the packet identifier, and finds the found queue entry 61. delete.

多重部33は、送信部30から受け取ったTCPパケット20、及び、受信部32から受け取った下位層ACKパケット39をパケット単位に多重し、それらを下位レイヤ処理部14に送信パケット22として出力する。   The multiplexing unit 33 multiplexes the TCP packet 20 received from the transmission unit 30 and the lower layer ACK packet 39 received from the reception unit 32 in units of packets, and outputs them to the lower layer processing unit 14 as the transmission packet 22.

1−3.レート維持部12
図5は、通信装置1のレート維持部12の構成例を示している。レート維持部12は、登録部40、フローテーブル41、及び書き換え部42を備えている。
1-3. Rate maintenance unit 12
FIG. 5 illustrates a configuration example of the rate maintaining unit 12 of the communication device 1. The rate maintaining unit 12 includes a registration unit 40, a flow table 41, and a rewriting unit 42.

フローテーブル41は、レート維持部12がTCP−ACKパケットのACK番号を適切に書き換えるために利用する情報を保持する。図6は、フローテーブル41の構成例を示している。フローテーブル41は、通信装置1が通信中のフロー毎にフローエントリ50を有している。各フローエントリ50は、フロー識別子51、期待ACK番号52、受信フラグ53、受信ACK番号54、送信ACK番号55、及び重複ACK回数56を含んでいる。   The flow table 41 holds information used by the rate maintaining unit 12 to appropriately rewrite the ACK number of the TCP-ACK packet. FIG. 6 shows a configuration example of the flow table 41. The flow table 41 has a flow entry 50 for each flow with which the communication apparatus 1 is communicating. Each flow entry 50 includes a flow identifier 51, an expected ACK number 52, a reception flag 53, a reception ACK number 54, a transmission ACK number 55, and a duplicate ACK count 56.

フロー識別子51は、当該フローエントリ50に対応付けられたフローの識別子である。「フロー識別子」は、例えば、パケットヘッダに含まれる、MAC層の宛先/送信元アドレス・VLANタグや、IP層の送信元/宛先アドレス、TCP層の送信元/宛先ポート番号、などの一部または全てである。   The flow identifier 51 is a flow identifier associated with the flow entry 50. The “flow identifier” is, for example, a part of the MAC layer destination / source address / VLAN tag, IP layer source / destination address, TCP layer source / destination port number, etc. included in the packet header Or everything.

期待ACK番号52は、TCP/IP処理部11が受信することを期待するTCP−ACKパケットの最後のACK番号である。   The expected ACK number 52 is the last ACK number of the TCP-ACK packet that the TCP / IP processing unit 11 expects to receive.

受信フラグ53は、レート維持部12が再送制御部13からTCP−ACKパケットを受け取ったか否かを示すフラグである。当該フローに関して、TCP−ACKパケットを一度でも受け取っていれば受信フラグ53は「真」になり、一度も受け取っていなければ受信フラグ53は「偽」になる。   The reception flag 53 is a flag indicating whether or not the rate maintaining unit 12 has received a TCP-ACK packet from the retransmission control unit 13. Regarding this flow, if the TCP-ACK packet has been received even once, the reception flag 53 becomes “true”, and if it has never been received, the reception flag 53 becomes “false”.

受信ACK番号54は、レート維持部12が再送制御部13から前回受け取ったTCP−ACKパケットのACK番号である。当該フローに関してTCP−ACKパケットを一度も受け取っていなければ、受信ACK番号54は不定になる。   The reception ACK number 54 is the ACK number of the TCP-ACK packet that the rate maintaining unit 12 received from the retransmission control unit 13 last time. If no TCP-ACK packet has been received for the flow, the reception ACK number 54 is indefinite.

送信ACK番号55は、レート維持部12からTCP/IP処理部11に転送済みの最新のTCP−ACKパケットのACK番号である。当該フローに関してTCP−ACKパケットを一度も転送していなければ、送信ACK番号55は不定になる。   The transmission ACK number 55 is the ACK number of the latest TCP-ACK packet that has been transferred from the rate maintaining unit 12 to the TCP / IP processing unit 11. If no TCP-ACK packet has been transferred for the flow, the transmission ACK number 55 is indefinite.

重複ACK回数56は、レート維持部12が再送制御部13から連続して受け取った重複ACKパケットの個数を示す。つまり、重複ACK回数56は、再送制御部13から受け取るTCP−ACKパケットのACK番号が連続して同一値を取った場合に、その連続回数を示す。重複ACKパケットの受信が途切れた場合、重複ACK回数56はリセットされる。例えば、レート維持部12が再送制御部13から受け取った、過去3つのTCP−ACKパケット20のACK番号が時系列順に100、200、200であった場合、重複ACK回数56は1になる。また、例えば、過去3つのTCP−ACKパケット20のACK番号が時系列順に300、300、400であった場合、重複ACK回数56は0になる。   The duplicate ACK count 56 indicates the number of duplicate ACK packets that the rate maintaining unit 12 continuously receives from the retransmission control unit 13. That is, the duplicate ACK count 56 indicates the consecutive count when the ACK numbers of the TCP-ACK packets received from the retransmission control unit 13 continuously take the same value. When reception of the duplicate ACK packet is interrupted, the duplicate ACK count 56 is reset. For example, when the ACK numbers of the past three TCP-ACK packets 20 received from the retransmission control unit 13 by the rate maintaining unit 12 are 100, 200, and 200 in time series order, the duplicate ACK count 56 is 1. For example, when the ACK numbers of the past three TCP-ACK packets 20 are 300, 300, and 400 in time series order, the duplicate ACK count 56 becomes zero.

再度図5を参照して、登録部40は、TCP/IP処理部11から送信されたTCPパケット20を受け取る。登録部40は、受け取ったTCPパケット20からフロー識別子71を抽出する。また、登録部40は、受け取ったTCPパケット20のTCPシーケンス番号とTCPデータ長を加算することにより、期待ACK番号70を算出する。更に、登録部40は、フローテーブル41を検索し、上記抽出されたフロー識別子71と同一のフロー識別子51を有するフローエントリ50(ヒットエントリ)が存在するか否かを調べる。   Referring to FIG. 5 again, the registration unit 40 receives the TCP packet 20 transmitted from the TCP / IP processing unit 11. The registration unit 40 extracts the flow identifier 71 from the received TCP packet 20. In addition, the registration unit 40 calculates the expected ACK number 70 by adding the TCP sequence number of the received TCP packet 20 and the TCP data length. Further, the registration unit 40 searches the flow table 41 to check whether there is a flow entry 50 (hit entry) having the same flow identifier 51 as the extracted flow identifier 71.

フローテーブル41にヒットエントリ50が存在しない場合、登録部40は、フロー識別子71に対応する新たなフローエントリ50をフローテーブル41に作成する。新たなフローエントリ50において、フロー識別子51及び期待ACK番号52は、それぞれ、フロー識別子71及び期待ACK番号70に設定される。受信フラグ53は「偽」に設定される。受信ACK番号54、送信ACK番号55及び重複ACK回数56は、不定のままである。   When the hit entry 50 does not exist in the flow table 41, the registration unit 40 creates a new flow entry 50 corresponding to the flow identifier 71 in the flow table 41. In the new flow entry 50, the flow identifier 51 and the expected ACK number 52 are set to the flow identifier 71 and the expected ACK number 70, respectively. The reception flag 53 is set to “false”. The reception ACK number 54, the transmission ACK number 55, and the duplicate ACK count 56 remain undefined.

一方、フローテーブル41にヒットエントリ50が存在する場合、登録部40は、当該ヒットエントリ50に含まれる期待ACK番号52と期待ACK番号70とを比較する。期待ACK番号70が期待ACK番号52よりも大きい場合、登録部40は、当該ヒットエントリ50の期待ACK番号52を期待ACK番号70で更新する。尚、登録部40の動作については、後に詳細に説明する。   On the other hand, when the hit entry 50 exists in the flow table 41, the registration unit 40 compares the expected ACK number 52 and the expected ACK number 70 included in the hit entry 50. When the expected ACK number 70 is larger than the expected ACK number 52, the registration unit 40 updates the expected ACK number 52 of the hit entry 50 with the expected ACK number 70. The operation of the registration unit 40 will be described in detail later.

書き換え部42は、再送制御部13からTCPパケット20を受け取る。受け取ったTCPパケット20がTCP−ACKパケットではない場合、書き換え部42は、そのTCPパケット20をTCP/IP処理部11に転送する。   The rewriting unit 42 receives the TCP packet 20 from the retransmission control unit 13. If the received TCP packet 20 is not a TCP-ACK packet, the rewrite unit 42 transfers the TCP packet 20 to the TCP / IP processing unit 11.

一方、受け取ったTCPパケット20がTCP−ACKパケットである場合、書き換え部42は、そのTCP−ACKパケット20からフロー識別子71を抽出する。そして、書き換え部42は、フローテーブル41を検索し、上記抽出されたフロー識別子71と同一のフロー識別子51を有するフローエントリ50(ヒットエントリ)を抽出する。   On the other hand, when the received TCP packet 20 is a TCP-ACK packet, the rewriting unit 42 extracts the flow identifier 71 from the TCP-ACK packet 20. The rewriting unit 42 searches the flow table 41 and extracts a flow entry 50 (hit entry) having the same flow identifier 51 as the extracted flow identifier 71.

書き換え部42は、当該ヒットエントリ50の内容に基づいて、受け取ったTCP−ACKパケット20のACK番号の“書き換え”を実行するか否かを決定する。“書き換え”を行う場合、書き換え部42は、所定の計算式に従ってACK番号を書き換え、書き換え後のTCP−ACKパケット20をTCP/IP処理部11に転送する。一方、“書き換え”を行わない場合、書き換え部42は、受け取ったTCP−ACKパケット20をそのままTCP/IP処理部11に転送する。   Based on the contents of the hit entry 50, the rewrite unit 42 determines whether to execute “rewrite” of the ACK number of the received TCP-ACK packet 20. When “rewriting” is performed, the rewriting unit 42 rewrites the ACK number according to a predetermined calculation formula, and transfers the rewritten TCP-ACK packet 20 to the TCP / IP processing unit 11. On the other hand, when “rewriting” is not performed, the rewriting unit 42 transfers the received TCP-ACK packet 20 to the TCP / IP processing unit 11 as it is.

ACK番号の“書き換え”について更に説明する。本実施の形態によれば、書き換え部42は、TCP/IP処理部11において高速再送が起動しないように、ACK番号の書き換えを行う。そのために、書き換え部42は、同一のACK番号を有するTCP−ACKパケット20が連続してTCP/IP処理部11に転送されないように、すなわち、TCP/IP処理部11において重複ACKパケットが発生しないように、TCP−ACKパケット20のACK番号を書き換える。例えば、書き換え部42は、TCP/IP処理部11に転送されるTCP−ACKパケット20のACK番号が単調増加するように、書き換えを行う。より詳細には、書き換え部42は、ヒットエントリ50の送信ACK番号を参照し、最新のTCP−ACKパケット20のACK番号が当該送信ACK番号よりも大きくなるように、書き換えを行う。但し、書き換え部42は、書き換え後のACK番号が書き換え前のACK番号を超えないように、書き換えを行う。   The “rewriting” of the ACK number will be further described. According to the present embodiment, the rewriting unit 42 rewrites the ACK number so that the high-speed retransmission is not activated in the TCP / IP processing unit 11. Therefore, the rewriting unit 42 prevents the TCP-ACK packet 20 having the same ACK number from being continuously transferred to the TCP / IP processing unit 11, that is, no duplicate ACK packet is generated in the TCP / IP processing unit 11. Thus, the ACK number of the TCP-ACK packet 20 is rewritten. For example, the rewriting unit 42 performs rewriting so that the ACK number of the TCP-ACK packet 20 transferred to the TCP / IP processing unit 11 increases monotonously. More specifically, the rewriting unit 42 refers to the transmission ACK number of the hit entry 50 and performs rewriting so that the ACK number of the latest TCP-ACK packet 20 is larger than the transmission ACK number. However, the rewriting unit 42 performs rewriting so that the ACK number after rewriting does not exceed the ACK number before rewriting.

また、書き換え部42は、ヒットエントリ50の受信ACK番号を参照し、受け取ったTCP−ACKパケット20のACK番号と当該受信ACK番号54とを比較する。そのACK番号が受信ACK番号54(前回のACK番号)と一致している場合、当該TCP−ACKパケット20は重複ACKパケットである。この場合、書き換え部42は、ヒットエントリ50の重複ACK回数56を1だけインクリメントする。一方、ACK番号が受信ACK番号54より大きい場合、書き換え部42は、ヒットエントリ50の重複ACK回数56を0にリセット(初期化)する。   The rewriting unit 42 refers to the received ACK number of the hit entry 50 and compares the ACK number of the received TCP-ACK packet 20 with the received ACK number 54. If the ACK number matches the received ACK number 54 (previous ACK number), the TCP-ACK packet 20 is a duplicate ACK packet. In this case, the rewriting unit 42 increments the duplicate ACK count 56 of the hit entry 50 by one. On the other hand, when the ACK number is larger than the received ACK number 54, the rewriting unit 42 resets (initializes) the duplicate ACK count 56 of the hit entry 50 to zero.

更に、書き換え部42は、重複ACK回数56を参照し、重複ACK回数56が所定の高速再送条件を満たしているか否かを判定する。重複ACK回数56が所定の高速再送条件を満たしている場合、書き換え部42は、受け取ったTCP−ACKパケット20からパケット識別子を抽出する。そして、書き換え部42は、抽出したパケット識別子を含む再送指示21を、再送制御部13に向けて発行する。すなわち、書き換え部42は、TCP/IP処理部11の代わりに再送制御部13に、高速再送処理を実行させる。   Further, the rewriting unit 42 refers to the duplicate ACK count 56 and determines whether or not the duplicate ACK count 56 satisfies a predetermined high-speed retransmission condition. When the duplicate ACK count 56 satisfies a predetermined high-speed retransmission condition, the rewriting unit 42 extracts a packet identifier from the received TCP-ACK packet 20. Then, the rewrite unit 42 issues a retransmission instruction 21 including the extracted packet identifier to the retransmission control unit 13. That is, the rewriting unit 42 causes the retransmission control unit 13 to execute high-speed retransmission processing instead of the TCP / IP processing unit 11.

また、TCP−ACKパケット20をTCP/IP処理部11に転送する場合、書き換え部42は、ヒットエントリ50の受信ACK番号54及び送信ACK番号55を適宜更新する。尚、書き換え部42の動作については、後に詳細に説明する。   When transferring the TCP-ACK packet 20 to the TCP / IP processing unit 11, the rewriting unit 42 appropriately updates the reception ACK number 54 and transmission ACK number 55 of the hit entry 50. The operation of the rewriting unit 42 will be described in detail later.

2.処理フロー
2−1.登録部40の処理
図7は、レート維持部12の登録部40の処理を示すフローチャートである。
2. Processing flow 2-1. Processing of Registration Unit 40 FIG. 7 is a flowchart showing processing of the registration unit 40 of the rate maintaining unit 12.

ステップS100において、登録部40は、TCP/IP処理部11からのTCPパケット20の入力を待つ。   In step S <b> 100, the registration unit 40 waits for input of the TCP packet 20 from the TCP / IP processing unit 11.

ステップS101において、登録部40は、入力されたTCPパケット20のヘッダ情報に基づいて、期待ACK番号70を算出する。期待ACK番号70は、TCPパケット20のTCPシーケンス番号とTCPデータ長の和である。   In step S <b> 101, the registration unit 40 calculates an expected ACK number 70 based on the input header information of the TCP packet 20. The expected ACK number 70 is the sum of the TCP sequence number of the TCP packet 20 and the TCP data length.

ステップS102において、登録部40は、入力されたTCPパケット20からフロー識別子71を抽出する。   In step S <b> 102, the registration unit 40 extracts the flow identifier 71 from the input TCP packet 20.

ステップS103において、登録部40は、フローテーブル41を検索し、抽出したフロー識別子71と同一のフロー識別子51を持つフローエントリ50(ヒットエントリ)が、フローテーブル41に存在するか否かを調べる。   In step S <b> 103, the registration unit 40 searches the flow table 41 and checks whether or not a flow entry 50 (hit entry) having the same flow identifier 51 as the extracted flow identifier 71 exists in the flow table 41.

ヒットエントリ50の検索に成功した場合(ステップS104;Yes)、処理はステップS106に進む。一方、検索に失敗した場合(ステップS104;No)、処理はステップS105に進む。   If the search for the hit entry 50 is successful (step S104; Yes), the process proceeds to step S106. On the other hand, when the search fails (step S104; No), the process proceeds to step S105.

ステップS105において、登録部40は、ステップS102で抽出したフロー識別子71に対応する新たなフローエントリ50を、フローテーブル41に作成する。ここで、登録部40は、新たなフローエントリ50の各フィールドを次のように初期化する。すなわち、登録部40は、フロー識別子51をステップS102で抽出したフロー識別子71に、期待ACK番号52をステップS101で算出した期待ACK番号70に、受信フラグ53を「偽」に、それぞれ初期化する。尚、受信ACK番号54、送信ACK番号55、重複ACK回数56を初期化する必要はない。ステップS105は最終ステップの1つである。   In step S105, the registration unit 40 creates a new flow entry 50 corresponding to the flow identifier 71 extracted in step S102 in the flow table 41. Here, the registration unit 40 initializes each field of the new flow entry 50 as follows. That is, the registration unit 40 initializes the flow identifier 51 to the flow identifier 71 extracted in step S102, the expected ACK number 52 to the expected ACK number 70 calculated in step S101, and the reception flag 53 to “false”. . It is not necessary to initialize the reception ACK number 54, the transmission ACK number 55, and the duplicate ACK count 56. Step S105 is one of the final steps.

ステップS106において、登録部40は、ステップS103で検索されたヒットエントリ50の期待ACK番号52と、ステップS101で算出した期待ACK番号70とを比較する。期待ACK番号70が期待ACK番号52より大きければ、登録部40は、当該ヒットエントリ50の期待ACK番号52を期待ACK番号70で更新する。ステップS106は最終ステップの1つである。   In step S106, the registration unit 40 compares the expected ACK number 52 of the hit entry 50 searched in step S103 with the expected ACK number 70 calculated in step S101. If the expected ACK number 70 is larger than the expected ACK number 52, the registration unit 40 updates the expected ACK number 52 of the hit entry 50 with the expected ACK number 70. Step S106 is one of the final steps.

2−2.書き換え部42の処理
図8A及び図8Bは、レート維持部12の書き換え部42の処理を示すフローチャートである。
2-2. Processing of Rewriting Unit 42 FIGS. 8A and 8B are flowcharts showing processing of the rewriting unit 42 of the rate maintaining unit 12.

ステップS200において、書き換え部42は、再送制御部13からのTCPパケット20の入力を待つ。   In step S <b> 200, the rewriting unit 42 waits for input of the TCP packet 20 from the retransmission control unit 13.

ステップS201において、書き換え部42は、入力されたTCPパケット20のTCPヘッダ中のACKフラグをチェックする。ACKフラグがセットされている場合、書き換え部42は、有効なACK番号がTCPパケット20に含まれていると判断し、処理はステップS202に進む。一方、ACKフラグがセットされていない場合、処理はステップS221に進む。   In step S201, the rewriting unit 42 checks the ACK flag in the TCP header of the input TCP packet 20. If the ACK flag is set, the rewriting unit 42 determines that a valid ACK number is included in the TCP packet 20, and the process proceeds to step S202. On the other hand, if the ACK flag is not set, the process proceeds to step S221.

ステップS202において、書き換え部42は、入力されたTCPパケット20(TCP−ACKパケット)のTCPヘッダ中のACK番号を、元ACK番号72に代入する。ここで、元ACK番号72は、本フローチャートのみで参照・更新される一時的な変数である。   In step S <b> 202, the rewriting unit 42 substitutes the ACK number in the TCP header of the input TCP packet 20 (TCP-ACK packet) into the original ACK number 72. Here, the original ACK number 72 is a temporary variable that is referred to and updated only in this flowchart.

ステップS203において、書き換え部42は、入力されたTCPパケット20からフロー識別子71を抽出する。   In step S <b> 203, the rewrite unit 42 extracts the flow identifier 71 from the input TCP packet 20.

ステップS204において、書き換え部42は、フローテーブル41を検索し、ステップS203で抽出したフロー識別子71と同一のフロー識別子51を持つフローエントリ50(ヒットエントリ)が、フローテーブル41に存在するか否かを調べる。   In step S204, the rewriting unit 42 searches the flow table 41, and whether or not a flow entry 50 (hit entry) having the same flow identifier 51 as the flow identifier 71 extracted in step S203 exists in the flow table 41. Check out.

ヒットエントリ50の検索に成功した場合(ステップS205;Yes)、処理はステップS206に進む。一方、検索に失敗した場合(ステップS205;No)、処理はステップS221に進む。   If the search for the hit entry 50 is successful (step S205; Yes), the process proceeds to step S206. On the other hand, if the search fails (step S205; No), the process proceeds to step S221.

ステップS206において、書き換え部42は、ヒットエントリ50から、期待ACK番号52、受信フラグ53、受信ACK番号54、送信ACK番号55、及び重複ACK回数56、をそれぞれ取得する。   In step S <b> 206, the rewrite unit 42 acquires the expected ACK number 52, the reception flag 53, the reception ACK number 54, the transmission ACK number 55, and the duplicate ACK count 56 from the hit entry 50.

ステップS207において、書き換え部42は、取得した受信フラグ53をチェックする。受信フラグ53が「真」である場合、処理はステップS210に進む。受信フラグ53が「偽」である場合、処理はステップS208に進む。   In step S207, the rewriting unit 42 checks the acquired reception flag 53. If the reception flag 53 is “true”, the process proceeds to step S210. If the reception flag 53 is “false”, the process proceeds to step S208.

ステップS210において、書き換え部42は、元ACK番号72と、ステップS206で取得した期待ACK番号52とを比較する。元ACK番号72が期待ACK番号52以上の場合(ステップ210;Yes)、処理はステップS209に進む。一方、元ACK番号72が期待ACK番号52より小さい場合(ステップ210;No)、処理はステップS211に進む。   In step S210, the rewriting unit 42 compares the original ACK number 72 with the expected ACK number 52 acquired in step S206. If the original ACK number 72 is greater than or equal to the expected ACK number 52 (step 210; Yes), the process proceeds to step S209. On the other hand, when the original ACK number 72 is smaller than the expected ACK number 52 (step 210; No), the process proceeds to step S211.

ステップS208において、書き換え部42は、ヒットエントリ50の受信フラグ53を「真」に書き換える。   In step S208, the rewriting unit 42 rewrites the reception flag 53 of the hit entry 50 to “true”.

ステップS209において、書き換え部42は、ヒットエントリ50の受信ACK番号54と送信ACK番号55の双方に、元ACK番号72を代入する。また、書き換え部42は、ヒットエントリ50の重複ACK回数56を0にリセットする。その後、処理はステップS221に進む。   In step S209, the rewriting unit 42 substitutes the original ACK number 72 for both the reception ACK number 54 and the transmission ACK number 55 of the hit entry 50. The rewrite unit 42 resets the duplicate ACK count 56 of the hit entry 50 to zero. Thereafter, the process proceeds to step S221.

ステップS211において、書き換え部42は、元ACK番号72と、ステップS206で取得した受信ACK番号54とを比較する。元ACK番号72が受信ACK番号54より大きい場合、処理はステップS213に進む。元ACK番号72と受信ACK番号54が等しい場合、処理はステップS215に進む。元ACK番号72が受信ACK番号54より小さい場合、処理はステップS221に進む。   In step S211, the rewriting unit 42 compares the original ACK number 72 with the reception ACK number 54 acquired in step S206. If the original ACK number 72 is greater than the received ACK number 54, the process proceeds to step S213. If the original ACK number 72 is equal to the received ACK number 54, the process proceeds to step S215. If the original ACK number 72 is smaller than the received ACK number 54, the process proceeds to step S221.

ステップS213において、書き換え部42は、受信ACK番号54に所定の正数Δ(例えば1)を加算した値と、元ACK番号72との最小値を、新ACK番号73に代入する。ここで、新ACK番号73は、本フローチャートのみで参照・更新される一時的な変数である。   In step S <b> 213, the rewriting unit 42 substitutes a new ACK number 73 for a value obtained by adding a predetermined positive number Δ (for example, 1) to the received ACK number 54 and the original ACK number 72. Here, the new ACK number 73 is a temporary variable that is referred to and updated only in this flowchart.

ステップS214において、書き換え部42は、ヒットエントリ50の受信ACK番号54に元ACK番号72を代入する。更に、書き換え部42は、ヒットエントリ50の重複ACK回数56を0にリセットする。その後、処理はステップS219に進む。   In step S <b> 214, the rewriting unit 42 substitutes the original ACK number 72 for the reception ACK number 54 of the hit entry 50. Furthermore, the rewriting unit 42 resets the duplicate ACK count 56 of the hit entry 50 to zero. Thereafter, the process proceeds to step S219.

ステップS215において、書き換え部42は、送信ACK番号55に所定の正数Δ(例えば1)を加算した値と、元ACK番号72との最小値を、新ACK番号73に代入する。   In step S <b> 215, the rewriting unit 42 substitutes a new ACK number 73 for a value obtained by adding a predetermined positive number Δ (for example, 1) to the transmission ACK number 55 and the original ACK number 72.

ステップS216において、書き換え部42は、ヒットエントリ50の重複ACK回数56を1だけインクリメントする。   In step S216, the rewriting unit 42 increments the duplicate ACK count 56 of the hit entry 50 by one.

ステップS217において、書き換え部42は、ステップS216の後の重複ACK回数56が、所定の高速再送条件を満たしているか否かを判定する。ここで、高速再送条件は、「重複ACK回数56が5以上」などである。重複ACK回数56が高速再送条件を満たしている場合(ステップS217;Yes)、処理はステップS218に進む。一方、重複ACK回数56が高速再送条件を満たしていない場合(ステップS217;No)、処理はステップS219に進む。   In step S217, the rewriting unit 42 determines whether or not the number of duplicate ACKs 56 after step S216 satisfies a predetermined high-speed retransmission condition. Here, the fast retransmission condition is “the number of duplicate ACKs 56 is 5 or more”. If the duplicate ACK count 56 satisfies the fast retransmission condition (step S217; Yes), the process proceeds to step S218. On the other hand, if the duplicate ACK count 56 does not satisfy the fast retransmission condition (step S217; No), the process proceeds to step S219.

ステップS218において、書き換え部42は、ステップS200で入力されたTCPパケット20からパケット識別子を抽出する。そして、書き換え部42は、そのパケット識別子を含む再送指示21を再送制御部13に発行する。その後、処理はステップS219に進む。   In step S218, the rewriting unit 42 extracts a packet identifier from the TCP packet 20 input in step S200. Then, the rewriting unit 42 issues a retransmission instruction 21 including the packet identifier to the retransmission control unit 13. Thereafter, the process proceeds to step S219.

ステップS219において、書き換え部42は、ヒットエントリ50の送信ACK番号55に、新ACK番号73を代入する。つまり、書き換え部42は、ヒットエントリ50の送信ACK番号55を更新する。   In step S 219, the rewriting unit 42 substitutes the new ACK number 73 for the transmission ACK number 55 of the hit entry 50. That is, the rewriting unit 42 updates the transmission ACK number 55 of the hit entry 50.

ステップS220において、書き換え部42は、ステップS200で入力されたTCPパケット20のTCPヘッダ中のACK番号に、新ACK番号73を代入する。すなわち、書き換え部42は、ACK番号の“書き換え”を実行する。その後、処理はステップS221に進む。   In step S220, the rewriting unit 42 substitutes the new ACK number 73 for the ACK number in the TCP header of the TCP packet 20 input in step S200. That is, the rewriting unit 42 performs “rewriting” of the ACK number. Thereafter, the process proceeds to step S221.

ステップS221において、書き換え部42は、ステップS200で入力されたTCPパケット20、または、ステップS220で“書き換え”が実施されたTCP−ACKパケット20を、TCP/IP処理部11に出力する。ステップS221は最終ステップである。   In step S <b> 221, the rewriting unit 42 outputs the TCP packet 20 input in step S <b> 200 or the TCP-ACK packet 20 that has been “rewritten” in step S <b> 220 to the TCP / IP processing unit 11. Step S221 is the final step.

2−3.処理例
次に、図9及び図10を参照して、本実施の形態に係る処理の一例を説明する。
2-3. Processing Example Next, an example of processing according to the present embodiment will be described with reference to FIGS. 9 and 10.

図9において、2台の通信装置1−1及び1−2がネットワーク2を介して互いに接続されている。通信装置1−1がTCPデータを送信し、通信装置1−2がそれを受信する。実線の矢印は、通信装置1−1から通信装置1−2に送られる、TCPデータを含むTCPパケット20を表す。各TCPパケット20は、100バイトのTCPデータを含み、また、単一のフローに属するとする。また、破線の矢印は、通信装置1−2から通信装置1−1へ返送される、TCP−ACKパケット20を表す。実線の矢印に付された一重円の中の数字は、TCPパケット20のシーケンス番号を示し、破線の矢印に付された二重円の中の数字は、TCP−ACKパケット20のTCPのACK番号を示す。尚、簡単のため、下位層ACKパケット39の送受信は図示されていない。また、本例では遅延ACKを考慮しない。これらの簡略化によって一般性が失われることはない。   In FIG. 9, two communication apparatuses 1-1 and 1-2 are connected to each other via the network 2. The communication device 1-1 transmits TCP data, and the communication device 1-2 receives it. A solid arrow represents a TCP packet 20 including TCP data sent from the communication device 1-1 to the communication device 1-2. Each TCP packet 20 includes 100 bytes of TCP data and belongs to a single flow. A broken arrow represents the TCP-ACK packet 20 returned from the communication device 1-2 to the communication device 1-1. The number in the single circle attached to the solid line arrow indicates the sequence number of the TCP packet 20, and the number in the double circle attached to the broken line arrow indicates the TCP ACK number of the TCP-ACK packet 20. Indicates. For simplicity, transmission / reception of the lower layer ACK packet 39 is not shown. In this example, delayed ACK is not considered. These simplifications do not lose generality.

図10は、図9のシーケンス図中の時刻T1〜T14における、通信装置1−1のフローテーブル41のフローエントリ50の内容を示している。   FIG. 10 shows the contents of the flow entry 50 of the flow table 41 of the communication apparatus 1-1 at times T1 to T14 in the sequence diagram of FIG.

通信装置1−1のTCP/IP処理部11は、6つのTCPパケット20を通信装置1−2に向けて連続して送出する(時系列順に、時刻T1、T2、T3、T5、T6、T7)。ここで、時刻T3で送出された、シーケンス番号“300”のTCPパケット20が、ネットワーク2内で廃棄されたとする。通信装置1−1の再送制御部13は、時刻T4において当該TCPパケット20(シーケンス番号“300”)を送出し、再送タイムアウト経過後の時刻T8において当該TCPパケット20(シーケンス番号“300”)を再送する。   The TCP / IP processing unit 11 of the communication device 1-1 continuously sends six TCP packets 20 to the communication device 1-2 (in time series order, times T1, T2, T3, T5, T6, T7). ). Here, it is assumed that the TCP packet 20 with the sequence number “300” sent at time T 3 is discarded in the network 2. The retransmission control unit 13 of the communication apparatus 1-1 transmits the TCP packet 20 (sequence number “300”) at time T4, and the TCP packet 20 (sequence number “300”) at time T8 after the retransmission timeout has elapsed. resend.

通信装置1−1のフローテーブル41に着目する。時刻T1では、通信装置1−1のレート維持部12にTCPパケット20がまだ1つも到着していない。従って、フローテーブル41の内容は空であり、有効なフローエントリ50は存在しない。   Focus on the flow table 41 of the communication device 1-1. At time T1, no TCP packet 20 has yet arrived at the rate maintaining unit 12 of the communication device 1-1. Therefore, the content of the flow table 41 is empty and there is no valid flow entry 50.

時刻T1からT2にかけて、通信装置1−1のレート維持部12の登録部40に、TCPシーケンス番号が“100”である、長さ100バイトのTCPパケット20が入力される。ステップS101において、期待ACK番号70は“200(=100+100)”と算出される。ステップS102において、フロー識別子71は“フローA”となる。この時点ではフローテーブル41は空であり、“フローA”に対応するフローエントリ50は存在していない(ステップS104;No)。従って、ステップS105において、新たなフローエントリ50がフローテーブル41に追加される。その結果、フローテーブル41の内容は、図10の時刻T2の行の内容に変化する。   From time T1 to time T2, a TCP packet 20 having a length of 100 bytes and having a TCP sequence number “100” is input to the registration unit 40 of the rate maintaining unit 12 of the communication apparatus 1-1. In step S101, the expected ACK number 70 is calculated as “200 (= 100 + 100)”. In step S102, the flow identifier 71 is “flow A”. At this time, the flow table 41 is empty, and the flow entry 50 corresponding to “flow A” does not exist (step S104; No). Accordingly, a new flow entry 50 is added to the flow table 41 in step S105. As a result, the content of the flow table 41 changes to the content of the row at time T2 in FIG.

時刻T2からT3にかけて、通信装置1−1のレート維持部12の登録部40に、TCPシーケンス番号が“200”である、長さ100バイトのTCPパケット20が入力される。ステップS101において、期待ACK番号70は“300(=200+100)”と算出される。ステップS102において、フロー識別子71は“フローA”となる。この時点で、“フローA”に対応するフローエントリ50(ヒットエントリ)がフローテーブル41に既に存在している(ステップS104;Yes)。従って、ステップS106において、当該ヒットエントリ50の期待ACK番号52が200から300に更新される。   From time T2 to time T3, a TCP packet 20 having a length of 100 bytes and having a TCP sequence number “200” is input to the registration unit 40 of the rate maintaining unit 12 of the communication device 1-1. In step S101, the expected ACK number 70 is calculated as “300 (= 200 + 100)”. In step S102, the flow identifier 71 is “flow A”. At this time, the flow entry 50 (hit entry) corresponding to “flow A” already exists in the flow table 41 (step S104; Yes). Accordingly, in step S106, the expected ACK number 52 of the hit entry 50 is updated from 200 to 300.

時刻T3〜T4の間と、時刻T5〜T6の間、時刻T6〜T7の間、時刻T7〜T8の間についても、通信装置1−1のレート維持部12の登録部40は、上記と同様に動作する。   The registration unit 40 of the rate maintaining unit 12 of the communication device 1-1 is the same as the above also during the time T3 to T4, the time T5 to T6, the time T6 to T7, and the time T7 to T8. To work.

その後、時刻T9〜T13にかけて、廃棄されなかった5つのTCPパケット20のそれぞれに応答する5つのTCP−ACKパケット20が通信装置1−1に順番に到着する。これら5つのTCP−ACKパケット20のそれぞれのACK番号は、到着順に200、300、300、300、300である。ACK番号“300”のTCP−ACKパケット20が連続する理由は、通信装置1−2のTCP/IP処理部11が、シーケンス番号“300”のTCPパケット20を受理していないからである。   Thereafter, from time T9 to T13, five TCP-ACK packets 20 responding to the five TCP packets 20 that have not been discarded arrive at the communication device 1-1 in order. The ACK numbers of these five TCP-ACK packets 20 are 200, 300, 300, 300, and 300 in the order of arrival. The reason why the TCP-ACK packet 20 with the ACK number “300” continues is that the TCP / IP processing unit 11 of the communication device 1-2 does not accept the TCP packet 20 with the sequence number “300”.

再度、通信装置1−1のフローテーブル41に着目する。時刻T8からT9にかけて、通信装置1−1のレート維持部12の書き換え部42に、ACK番号が“200”であるTCP−ACKパケット20が入力される。ステップS202において、元ACK番号72は“200”になる。ステップS203において、フロー識別子71は“フローA”となる。この時点で、“フローA”に対応するフローエントリ50(ヒットエントリ)がフローテーブル41に既に存在している(ステップS205;Yes)。また、この時点で、ヒットエントリ50の受信フラグ53は「偽」である。従って、ステップS208とステップS209が実施され、結果として、フローテーブル41の内容は、図10の時刻T9の行の内容に変化する。今回はACK番号の書き換えは実施されず、ステップS221において、ACK番号が“200”であるTCP−ACKパケット20がそのままTCP/IP処理部11に転送される。   Again, pay attention to the flow table 41 of the communication device 1-1. From time T8 to T9, the TCP-ACK packet 20 with the ACK number “200” is input to the rewriting unit 42 of the rate maintaining unit 12 of the communication device 1-1. In step S202, the original ACK number 72 becomes “200”. In step S203, the flow identifier 71 is “flow A”. At this time, the flow entry 50 (hit entry) corresponding to “flow A” already exists in the flow table 41 (step S205; Yes). At this time, the reception flag 53 of the hit entry 50 is “false”. Therefore, step S208 and step S209 are performed, and as a result, the content of the flow table 41 changes to the content of the row at time T9 in FIG. The ACK number is not rewritten this time, and the TCP-ACK packet 20 with the ACK number “200” is transferred to the TCP / IP processing unit 11 as it is in step S221.

時刻T9からT10にかけて、通信装置1−1のレート維持部12の書き換え部42に、ACK番号が“300”であるTCP−ACKパケット20が入力される。ステップS202において、元ACK番号72は“300”になる。ステップS203において、フロー識別子71は“フローA”となる。この時点で、“フローA”に対応するフローエントリ50(ヒットエントリ)がフローテーブル41に既に存在している(ステップS205;Yes)。また、ヒットエントリ50の受信フラグ53は「真」であるため、処理はステップS210に進む。元ACK番号72=“300”は期待ACK番号52=“700”より小さいため(ステップS210;No)、処理はステップS211に進む。ステップS211において、元ACK番号72=“300”は受信ACK番号54=“200”より大きい。従って、ステップS213が実施され、新ACK番号73は“201=(受信ACK番号54+“1”)”となる。その後、ステップS214、S219が実行され、結果として、受信ACK番号54は“300”となり、送信ACK番号55は“201”に更新される。つまり、送信ACK番号55は、更新前の送信ACK番号55=“200”より大きく、元ACK番号72=“300”を超えない値に更新される。ステップS220において、TCP−ACKパケット20のACK番号は、“300”から“201”に書き換えられる。ステップS221において、ACK番号が“201”であるTCP−ACKパケット20がTCP/IP処理部11に転送される。   From time T9 to T10, the TCP-ACK packet 20 whose ACK number is “300” is input to the rewriting unit 42 of the rate maintaining unit 12 of the communication device 1-1. In step S202, the original ACK number 72 is “300”. In step S203, the flow identifier 71 is “flow A”. At this time, the flow entry 50 (hit entry) corresponding to “flow A” already exists in the flow table 41 (step S205; Yes). Further, since the reception flag 53 of the hit entry 50 is “true”, the process proceeds to step S210. Since the original ACK number 72 = “300” is smaller than the expected ACK number 52 = “700” (step S210; No), the process proceeds to step S211. In step S211, the original ACK number 72 = "300" is larger than the received ACK number 54 = "200". Therefore, step S213 is performed, and the new ACK number 73 becomes “201 = (received ACK number 54+“ 1 ”)”. Thereafter, steps S214 and S219 are executed. As a result, the reception ACK number 54 is “300” and the transmission ACK number 55 is updated to “201”. That is, the transmission ACK number 55 is updated to a value that is larger than the transmission ACK number 55 = “200” before update and does not exceed the original ACK number 72 = “300”. In step S220, the ACK number of the TCP-ACK packet 20 is rewritten from “300” to “201”. In step S 221, the TCP-ACK packet 20 whose ACK number is “201” is transferred to the TCP / IP processing unit 11.

時刻T10からT11にかけて、通信装置1−1のレート維持部12の書き換え部42に、ACK番号が“300”であるTCP−ACKパケット20が入力される。ステップS211の直前までの処理は前回と同じであるので、説明を省略する。ステップS211において、元ACK番号72=“300”は受信ACK番号54=“300”と同じである。従って、ステップS215が実施され、新ACK番号73は“202=(送信ACK番号55+“1”)”となる。ステップS216において、当該ヒットエントリ50の重複ACK回数56はインクリメントされ、“0”から“1”に変化する。本例において、高速再送条件は「重複ACK回数56が5以上」であるとする。この場合、重複ACK回数56は高速再送条件を満たさない(ステップS217;No)ため、処理はステップS219に進む。その結果、送信ACK番号55は“202”に更新される。つまり、送信ACK番号55は、更新前の送信ACK番号55=“201”より大きく、元ACK番号72=“300”を超えない値に更新される。ステップS220において、TCP−ACKパケット20のACK番号は、“300”から“202”に書き換えられる。ステップS221において、ACK番号が“202”であるTCP−ACKパケット20がTCP/IP処理部11に転送される。   From time T10 to T11, the TCP-ACK packet 20 whose ACK number is “300” is input to the rewriting unit 42 of the rate maintaining unit 12 of the communication device 1-1. Since the processing up to immediately before step S211 is the same as the previous processing, the description thereof is omitted. In step S211, the original ACK number 72 = "300" is the same as the received ACK number 54 = "300". Therefore, step S215 is performed, and the new ACK number 73 becomes “202 = (transmission ACK number 55+“ 1 ”)”. In step S216, the duplicate ACK count 56 of the hit entry 50 is incremented and changes from “0” to “1”. In this example, it is assumed that the fast retransmission condition is “the number of duplicate ACKs 56 is 5 or more”. In this case, since the duplicate ACK count 56 does not satisfy the high-speed retransmission condition (step S217; No), the process proceeds to step S219. As a result, the transmission ACK number 55 is updated to “202”. That is, the transmission ACK number 55 is updated to a value that is larger than the transmission ACK number 55 = “201” before update and does not exceed the original ACK number 72 = “300”. In step S220, the ACK number of the TCP-ACK packet 20 is rewritten from “300” to “202”. In step S 221, the TCP-ACK packet 20 with the ACK number “202” is transferred to the TCP / IP processing unit 11.

時刻T11からT12の間と、時刻T12からT13の間にも、通信装置1−1のレート維持部12の書き換え部42に、ACK番号が“300”であるTCP−ACKパケット20が入力される。このときの動作は、前回と同様であるので、説明を省略する。   The TCP-ACK packet 20 whose ACK number is “300” is input to the rewrite unit 42 of the rate maintaining unit 12 of the communication device 1-1 also between the time T11 and T12 and between the time T12 and T13. . Since the operation at this time is the same as the previous operation, the description is omitted.

時刻T13からT14にかけて、通信装置1−1のレート維持部12の書き換え部42に、ACK番号が“700”であるTCP−ACKパケット20が入力される。このTCP−ACKパケット20は、時刻T8で再送制御部13によって再送されたTCPパケット20に応答するものである。ステップS202において、元ACK番号72は“700”になる。ステップS203〜S207は、前回と同様である。ステップS210において、元ACK番号72=“700”は期待ACK番号52=“700”以上である(ステップS210;Yes)。従って、ステップS209が実施され、フローテーブル41の内容は、図10の時刻T14の行の内容に変化する。今回はACK番号の書き換えは実施されず、ステップS221において、ACK番号が“700”であるTCP−ACKパケット20がそのままTCP/IP処理部11に転送される。   From time T13 to T14, the TCP-ACK packet 20 whose ACK number is “700” is input to the rewriting unit 42 of the rate maintaining unit 12 of the communication device 1-1. This TCP-ACK packet 20 responds to the TCP packet 20 retransmitted by the retransmission control unit 13 at time T8. In step S202, the original ACK number 72 becomes “700”. Steps S203 to S207 are the same as the previous time. In step S210, the original ACK number 72 = "700" is greater than or equal to the expected ACK number 52 = "700" (step S210; Yes). Accordingly, step S209 is performed, and the content of the flow table 41 changes to the content of the row at time T14 in FIG. The ACK number is not rewritten this time, and the TCP-ACK packet 20 with the ACK number “700” is transferred to the TCP / IP processing unit 11 as it is in step S221.

以上をまとめると、通信装置1−1のTCP/IP処理部11がレート維持部12を経由して受け取るTCP−ACKパケット20のACK番号は、時系列順に、200、201、202、203、204、700、と変わる。同一のACK番号が連続しないため、TCP/IP処理部11において高速再送が起動することが未然に防止される。   In summary, the ACK numbers of the TCP-ACK packet 20 received by the TCP / IP processing unit 11 of the communication device 1-1 via the rate maintaining unit 12 are 200, 201, 202, 203, 204 in chronological order. , 700. Since the same ACK number is not consecutive, it is possible to prevent the TCP / IP processing unit 11 from starting high-speed retransmission.

3.効果
以上に説明されたように、本実施の形態によれば、たとえ重複ACKパケットが通信装置1に入力されたとしても、その通信装置1のレート維持部12が、同一のACK番号が連続しないように“書き換え”を行い、書き換え後のTCP−ACKパケットをTCP/IP処理部11に転送する。従って、TCP/IP処理部11は、重複ACKパケットの到着を検知しない。言い換えれば、パケットの消失は、上位層のTCP/IP処理部11から隠蔽される。その結果、TCP/IP処理部11による不要な高速再送が未然に防止され、輻輳ウィンドウの縮小も発生しない。従って、ネットワークの帯域の圧迫、TCPスループットの減少、通信効率の低下といった事態が防止される。
3. Effect As described above, according to the present embodiment, even if a duplicate ACK packet is input to the communication device 1, the rate maintaining unit 12 of the communication device 1 does not have the same ACK number consecutively. As described above, “rewriting” is performed, and the rewritten TCP-ACK packet is transferred to the TCP / IP processing unit 11. Therefore, the TCP / IP processing unit 11 does not detect the arrival of duplicate ACK packets. In other words, the packet loss is concealed from the upper layer TCP / IP processing unit 11. As a result, unnecessary high-speed retransmission by the TCP / IP processing unit 11 is prevented and the congestion window is not reduced. Therefore, it is possible to prevent situations such as network bandwidth pressure, TCP throughput decrease, and communication efficiency decrease.

また、レート維持部12によるACK番号の“書き換え”は、TCPが誤動作しないように行われる。具体的には、書き換え後のACK番号(新ACK番号73)は、書き換え前のACK番号(元ACK番号72)を超えない。また、ACK番号(新ACK番号73)は狭義単調増加する。これらの条件が満たされないとき、レート維持部12は、安全のため、ACK番号の“書き換え”を実施しない。   Further, the “rewriting” of the ACK number by the rate maintaining unit 12 is performed so that the TCP does not malfunction. Specifically, the ACK number after rewriting (new ACK number 73) does not exceed the ACK number before rewriting (original ACK number 72). Further, the ACK number (new ACK number 73) increases monotonously in a narrow sense. When these conditions are not satisfied, the rate maintaining unit 12 does not “rewrite” the ACK number for safety.

更に、レート維持部12は、元ACK番号72(受信したTCP−ACKパケット20のACK番号)が期待ACK番号52以上である場合(ステップS210;Yes)、ACK番号の“書き換え”を実施しない。その理由は次の通りである。もし、元ACK番号72が期待ACK番号52と同じ場合にも“書き換え”が実施されるとすると、書き換え後のACK番号(新ACK番号73)が期待ACK番号52より小さくなる可能性がある。そうなると、TCP/IP処理部11は、期待するACK番号のTCP−ACKパケット20を受信できず、TCP通信を完了することができなくなる。そこで、レート維持部12の登録部40により、期待ACK番号70を予め算出しておき、その期待ACK番号70をフローテーブル41に記録するようにしている。   Furthermore, when the original ACK number 72 (ACK number of the received TCP-ACK packet 20) is equal to or higher than the expected ACK number 52 (step S210; Yes), the rate maintaining unit 12 does not perform “rewriting” of the ACK number. The reason is as follows. If “rewriting” is performed even when the original ACK number 72 is the same as the expected ACK number 52, the ACK number after rewriting (new ACK number 73) may be smaller than the expected ACK number 52. Then, the TCP / IP processing unit 11 cannot receive the TCP-ACK packet 20 with the expected ACK number and cannot complete the TCP communication. Therefore, the expected ACK number 70 is calculated in advance by the registration unit 40 of the rate maintaining unit 12, and the expected ACK number 70 is recorded in the flow table 41.

4.ハードウェア構成
本実施の形態に係る通信装置1は、PC(Personal Computer)等の情報処理装置に適用可能である。図11は、通信装置1が情報処理装置に適用された場合の構成を示している。図11に示されるように、通信装置1(情報処理装置)は、データ処理装置200と記憶装置201を備えている。
4). Hardware Configuration The communication device 1 according to the present embodiment is applicable to an information processing device such as a PC (Personal Computer). FIG. 11 shows a configuration when the communication device 1 is applied to an information processing device. As illustrated in FIG. 11, the communication device 1 (information processing device) includes a data processing device 200 and a storage device 201.

記憶装置201として、RAM(Random Access Memory)やHDD(Hard Disk Drive)が例示される。記憶装置201には、再送バッファ31、フローテーブル41、ワークメモリ202、203、204、などが格納される。   Examples of the storage device 201 include a RAM (Random Access Memory) and an HDD (Hard Disk Drive). The storage device 201 stores a retransmission buffer 31, a flow table 41, work memories 202, 203, 204, and the like.

データ処理装置200は、CPU(Central Processing Unit)を含む。データ処理装置200は、アプリケーション処理部210、TCP/IP処理部211、レート維持部212、再送制御部213、及び下位レイヤ処理部214を備えている。アプリケーション処理部210、TCP/IP処理部211、及び下位レイヤ処理部214は、それぞれ、前述のアプリケーション処理部10、TCP/IP処理部11、及び下位レイヤ処理部14と同様である。但し、アプリケーション処理部210、TCP/IP処理部211、及び下位レイヤ処理部214は、動作に必要な記憶領域として記憶装置201内のワークメモリ202、203、204を使用する。レート維持部212は、記憶装置201内のフローテーブル41を使用する点を除けば、前述のレート維持部12と同様である。再送制御部213は、記憶装置201内の再送バッファ31を使用する点を除けば、前述の再送制御部13と同様である。   The data processing device 200 includes a CPU (Central Processing Unit). The data processing device 200 includes an application processing unit 210, a TCP / IP processing unit 211, a rate maintaining unit 212, a retransmission control unit 213, and a lower layer processing unit 214. The application processing unit 210, the TCP / IP processing unit 211, and the lower layer processing unit 214 are the same as the application processing unit 10, the TCP / IP processing unit 11, and the lower layer processing unit 14, respectively. However, the application processing unit 210, the TCP / IP processing unit 211, and the lower layer processing unit 214 use the work memories 202, 203, and 204 in the storage device 201 as storage areas necessary for operation. The rate maintaining unit 212 is the same as the rate maintaining unit 12 described above except that the flow table 41 in the storage device 201 is used. The retransmission control unit 213 is the same as the retransmission control unit 13 described above except that the retransmission buffer 31 in the storage device 201 is used.

尚、データ処理装置200が備えるこれら機能ブロックは、データ処理装置200がパケット再送制御プログラムを実行することによって実現される。パケット再送制御プログラムは、データ処理装置200によって実行されるコンピュータプログラムであり、記憶装置201に格納される。パケット再送制御プログラムは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。   Note that these functional blocks included in the data processing device 200 are realized by the data processing device 200 executing a packet retransmission control program. The packet retransmission control program is a computer program executed by the data processing device 200 and is stored in the storage device 201. The packet retransmission control program may be recorded on a computer-readable recording medium.

以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。   The embodiments of the present invention have been described above with reference to the accompanying drawings. However, the present invention is not limited to the above-described embodiments, and can be appropriately changed by those skilled in the art without departing from the scope of the invention.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)
TCP/IP処理を行うTCP/IP処理部と、
TCP層よりも下位の層でパケット再送制御を行う再送制御部と、
前記再送制御部より受け取るTCPパケットを前記TCP/IP処理部に転送するレート維持部と
を備え、
前記再送制御部は、前記TCP/IP処理部から送信されたTCPパケットを送信パケットとして送信先に送信し、前記送信先から前記送信パケットに応答するTCP−ACKパケットを受け取り、前記受け取ったTCP−ACKパケットを前記レート維持部に転送し、
前記レート維持部は、同一のACK番号を有するTCP−ACKパケットが連続して前記TCP/IP処理部に転送されないように、前記再送制御部から受け取ったTCP−ACKパケットのACK番号の書き換えを行い、前記書き換え後の前記TCP−ACKパケットを前記TCP/IP処理部に転送する
通信装置。
(Appendix 1)
A TCP / IP processing unit for performing TCP / IP processing;
A retransmission control unit that performs packet retransmission control in a layer lower than the TCP layer;
A rate maintaining unit that transfers a TCP packet received from the retransmission control unit to the TCP / IP processing unit, and
The retransmission control unit transmits a TCP packet transmitted from the TCP / IP processing unit as a transmission packet to a transmission destination, receives a TCP-ACK packet responding to the transmission packet from the transmission destination, and receives the received TCP- Transfer ACK packet to the rate maintaining unit,
The rate maintaining unit rewrites the ACK number of the TCP-ACK packet received from the retransmission control unit so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP / IP processing unit. A communication device that transfers the rewritten TCP-ACK packet to the TCP / IP processing unit.

(付記2)
付記1に記載の通信装置であって、
前記レート維持部は、前記TCP/IP処理部に転送されるTCP−ACKパケットの前記ACK番号が単調増加するように前記書き換えを行う
通信装置。
(Appendix 2)
The communication device according to attachment 1, wherein
The rate maintaining unit performs the rewriting so that the ACK number of a TCP-ACK packet transferred to the TCP / IP processing unit monotonously increases.

(付記3)
付記2に記載の通信装置であって、
前記レート維持部は、フロー毎のフローエントリを有するフローテーブルを備え、
前記フローエントリは、前記TCP/IP処理部に転送済みの最新のTCP−ACKパケットの前記ACK番号である送信ACK番号を含み、
新たなTCP−ACKパケットを前記再送制御部から受け取った場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記送信ACK番号を参照し、前記新たなTCP−ACKパケットの前記ACK番号が前記送信ACK番号よりも大きくなるように前記書き換えを行い、更に、前記送信ACK番号を更新する
通信装置。
(Appendix 3)
The communication device according to attachment 2, wherein
The rate maintaining unit includes a flow table having a flow entry for each flow,
The flow entry includes a transmission ACK number that is the ACK number of the latest TCP-ACK packet that has been transferred to the TCP / IP processing unit,
When a new TCP-ACK packet is received from the retransmission control unit, the rate maintaining unit refers to the transmission ACK number of the flow entry in the flow table, and the ACK number of the new TCP-ACK packet. A communication device that performs the rewriting so that becomes larger than the transmission ACK number, and further updates the transmission ACK number.

(付記4)
付記3に記載の通信装置であって、
前記レート維持部は、前記新たなTCP−ACKパケットに関して、前記書き換え後の前記ACK番号が前記書き換え前の前記ACK番号を超えないように前記書き換えを行う
通信装置。
(Appendix 4)
The communication device according to attachment 3, wherein
The communication apparatus according to claim 1, wherein the rate maintaining unit rewrites the new TCP-ACK packet so that the ACK number after the rewriting does not exceed the ACK number before the rewriting.

(付記5)
付記4に記載の通信装置であって、
前記フローエントリは、更に、後に受信することが期待されるTCP−ACKパケットの前記ACK番号である期待ACK番号を含み、
前記レート維持部は、前記TCP/IP処理部から送信された前記TCPパケットに基づいて、前記フローテーブル中の該当フローエントリの前記期待ACK番号を更新し、
前記新たなTCP−ACKパケットを前記再送制御部から受け取った場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記期待ACK番号を参照し、
前記新たなTCP−ACKパケットの前記ACK番号が前記期待ACK番号以上の場合、前記レート維持部は前記書き換えを行わない
通信装置。
(Appendix 5)
The communication device according to appendix 4, wherein
The flow entry further includes an expected ACK number that is the ACK number of a TCP-ACK packet expected to be received later,
The rate maintaining unit updates the expected ACK number of the corresponding flow entry in the flow table based on the TCP packet transmitted from the TCP / IP processing unit,
When the new TCP-ACK packet is received from the retransmission control unit, the rate maintaining unit refers to the expected ACK number of the corresponding flow entry in the flow table,
The communication apparatus according to claim 1, wherein when the ACK number of the new TCP-ACK packet is greater than or equal to the expected ACK number, the rate maintaining unit does not perform the rewriting.

(付記6)
付記1乃至5のいずれか一項に記載の通信装置であって、
前記レート維持部は、フロー毎のフローエントリを有するフローテーブルを備え、
前記フローエントリは、
前記再送制御部から前回受け取ったTCP−ACKパケットの前記ACK番号である受信ACK番号と、
重複ACK回数と
を含み、
新たなTCP−ACKパケットを前記再送制御部から受け取った場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記受信ACK番号を参照し、
前記新たなTCP−ACKパケットの前記ACK番号が前記受信ACK番号よりも大きい場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記重複ACK回数を初期化し、
前記新たなTCP−ACKパケットの前記ACK番号が前記受信ACK番号と同じである場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記重複ACK回数をインクリメントし、
前記重複ACK回数が所定の条件を満たした場合、前記レート維持部は、前記ACK番号に対応する前記送信パケットの再送を前記再送制御部に対して指示する
通信装置。
(Appendix 6)
The communication device according to any one of appendices 1 to 5,
The rate maintaining unit includes a flow table having a flow entry for each flow,
The flow entry is
A reception ACK number that is the ACK number of the TCP-ACK packet received last time from the retransmission control unit;
Including the number of duplicate ACKs and
When a new TCP-ACK packet is received from the retransmission control unit, the rate maintaining unit refers to the reception ACK number of the corresponding flow entry in the flow table,
If the ACK number of the new TCP-ACK packet is greater than the received ACK number, the rate maintaining unit initializes the number of duplicate ACKs of the corresponding flow entry in the flow table,
When the ACK number of the new TCP-ACK packet is the same as the received ACK number, the rate maintaining unit increments the number of duplicate ACKs of the corresponding flow entry in the flow table,
When the number of duplicate ACKs satisfies a predetermined condition, the rate maintaining unit instructs the retransmission control unit to retransmit the transmission packet corresponding to the ACK number.

(付記7)
通信装置におけるパケット再送制御方法であって、
TCP層から送信されたTCPパケットに関して、前記TCP層よりも下位の下位層でパケット再送制御を行うステップと、
前記TCPパケットの送信先から、前記TCPパケットに応答するTCP−ACKパケットを受け取るステップと、
前記受け取ったTCP−ACKパケットを前記下位層から前記TCP層に転送するステップと
を含み、
前記転送するステップは、
同一のACK番号を有するTCP−ACKパケットが連続して前記TCP層に転送されないように、前記受け取ったTCP−ACKパケットのACK番号の書き換えを行うステップと、
前記書き換え後の前記TCP−ACKパケットを前記TCP層に転送するステップと
を含む
パケット再送制御方法。
(Appendix 7)
A packet retransmission control method in a communication device,
With respect to a TCP packet transmitted from the TCP layer, performing packet retransmission control in a lower layer lower than the TCP layer;
Receiving a TCP-ACK packet in response to the TCP packet from a destination of the TCP packet;
Transferring the received TCP-ACK packet from the lower layer to the TCP layer,
The transferring step includes:
Rewriting the ACK number of the received TCP-ACK packet so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP layer;
Transferring the rewritten TCP-ACK packet to the TCP layer; and a packet retransmission control method.

(付記8)
コンピュータにパケット再送制御機能を実現させるためのパケット再送制御プログラムであって、
前記パケット再送制御機能は、
TCP/IP処理を行うTCP/IP処理機能と、
TCP層よりも下位の層でパケット再送制御を行う再送制御機能と、
前記再送制御機能より受け取るTCPパケットを前記TCP/IP処理機能に転送するレート維持機能と
を備え、
前記再送制御機能は、前記TCP/IP処理機能から送信されたTCPパケットを送信パケットとして送信先に送信し、前記送信先から前記送信パケットに応答するTCP−ACKパケットを受け取り、前記受け取ったTCP−ACKパケットを前記レート維持機能に転送し、
前記レート維持機能は、同一のACK番号を有するTCP−ACKパケットが連続して前記TCP/IP処理機能に転送されないように、前記再送制御機能から受け取ったTCP−ACKパケットのACK番号の書き換えを行い、前記書き換え後の前記TCP−ACKパケットを前記TCP/IP処理機能に転送する
パケット再送制御プログラム。
(Appendix 8)
A packet retransmission control program for causing a computer to implement a packet retransmission control function,
The packet retransmission control function is:
TCP / IP processing function for performing TCP / IP processing;
A retransmission control function for performing packet retransmission control in a layer lower than the TCP layer;
A rate maintaining function for transferring a TCP packet received from the retransmission control function to the TCP / IP processing function;
The retransmission control function transmits a TCP packet transmitted from the TCP / IP processing function to a transmission destination as a transmission packet, receives a TCP-ACK packet responding to the transmission packet from the transmission destination, and receives the received TCP- Transfer ACK packet to the rate maintenance function,
The rate maintaining function rewrites the ACK number of the TCP-ACK packet received from the retransmission control function so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP / IP processing function. A packet retransmission control program for transferring the rewritten TCP-ACK packet to the TCP / IP processing function.

本出願は、2011年1月12日に出願された日本国特許出願2011−003894を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of the Japan patent application 2011-003894 for which it applied on January 12, 2011, and takes in those the indications of all here.

1 通信装置
2 ネットワーク
10 アプリケーション処理部
11 TCP/IP処理部
12 レート維持部
13 再送制御部
14 下位レイヤ処理部
20 TCPパケット
21 再送指示
22 送信パケット
23 受信パケット
30 送信部
31 再送バッファ
32 受信部
33 多重部
39 下位層ACKパケット
40 登録部
41 フローテーブル
42 書き換え部
50 フローエントリ
51 フロー識別子
52 期待ACK番号
53 受信フラグ
54 受信ACK番号
55 送信ACK番号
56 重複ACK回数
61 キューエントリ
62 TCPパケット
63 タイムスタンプ
70 期待ACK番号
71 フロー識別子
72 元ACK番号
73 新ACK番号
200 データ処理装置
201 記憶装置
202 ワークメモリ
203 ワークメモリ
204 ワークメモリ
210 アプリケーション処理部
211 TCP/IP処理部
212 レート維持部
213 再送制御部
214 下位レイヤ処理部
DESCRIPTION OF SYMBOLS 1 Communication apparatus 2 Network 10 Application processing part 11 TCP / IP processing part 12 Rate maintenance part 13 Retransmission control part 14 Lower layer processing part 20 TCP packet 21 Retransmission instruction 22 Transmission packet 23 Reception packet 30 Transmission part 31 Retransmission buffer 32 Reception part 33 Multiplexing part 39 Lower layer ACK packet 40 Registration part 41 Flow table 42 Rewriting part 50 Flow entry 51 Flow identifier 52 Expected ACK number 53 Reception flag 54 Reception ACK number 55 Transmission ACK number 56 Number of duplicate ACKs 61 Queue entry 62 TCP packet 63 Time stamp 70 Expected ACK number 71 Flow identifier 72 Original ACK number 73 New ACK number 200 Data processing device 201 Storage device 202 Work memory 203 Work memory 204 Word Memory 210 application processing unit 211 TCP / IP processing section 212 rate holding section 213 retransmission control unit 214 lower layer processing unit

Claims (8)

TCP/IP処理を行うTCP/IP処理部と、
TCP層よりも下位の層でパケット再送制御を行う再送制御部と、
前記再送制御部より受け取るTCPパケットを前記TCP/IP処理部に転送するレート維持部と
を備え、
前記再送制御部は、前記TCP/IP処理部から送信されたTCPパケットを送信パケットとして送信先に送信し、前記送信先から前記送信パケットに応答するTCP−ACKパケットを受け取り、前記受け取ったTCP−ACKパケットを前記レート維持部に転送し、
前記レート維持部は、同一のACK番号を有するTCP−ACKパケットが連続して前記TCP/IP処理部に転送されないように、前記再送制御部から受け取ったTCP−ACKパケットのACK番号の書き換えを行い、前記書き換え後の前記TCP−ACKパケットを前記TCP/IP処理部に転送する
通信装置。
A TCP / IP processing unit for performing TCP / IP processing;
A retransmission control unit that performs packet retransmission control in a layer lower than the TCP layer;
A rate maintaining unit that transfers a TCP packet received from the retransmission control unit to the TCP / IP processing unit, and
The retransmission control unit transmits a TCP packet transmitted from the TCP / IP processing unit as a transmission packet to a transmission destination, receives a TCP-ACK packet responding to the transmission packet from the transmission destination, and receives the received TCP- Transfer ACK packet to the rate maintaining unit,
The rate maintaining unit rewrites the ACK number of the TCP-ACK packet received from the retransmission control unit so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP / IP processing unit. A communication device that transfers the rewritten TCP-ACK packet to the TCP / IP processing unit.
請求項1に記載の通信装置であって、
前記レート維持部は、前記TCP/IP処理部に転送されるTCP−ACKパケットの前記ACK番号が単調増加するように前記書き換えを行う
通信装置。
The communication device according to claim 1,
The rate maintaining unit performs the rewriting so that the ACK number of a TCP-ACK packet transferred to the TCP / IP processing unit monotonously increases.
請求項2に記載の通信装置であって、
前記レート維持部は、フロー毎のフローエントリを有するフローテーブルを備え、
前記フローエントリは、前記TCP/IP処理部に転送済みの最新のTCP−ACKパケットの前記ACK番号である送信ACK番号を含み、
新たなTCP−ACKパケットを前記再送制御部から受け取った場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記送信ACK番号を参照し、前記新たなTCP−ACKパケットの前記ACK番号が前記送信ACK番号よりも大きくなるように前記書き換えを行い、更に、前記送信ACK番号を更新する
通信装置。
The communication device according to claim 2,
The rate maintaining unit includes a flow table having a flow entry for each flow,
The flow entry includes a transmission ACK number that is the ACK number of the latest TCP-ACK packet that has been transferred to the TCP / IP processing unit,
When a new TCP-ACK packet is received from the retransmission control unit, the rate maintaining unit refers to the transmission ACK number of the flow entry in the flow table, and the ACK number of the new TCP-ACK packet. A communication device that performs the rewriting so that becomes larger than the transmission ACK number, and further updates the transmission ACK number.
請求項3に記載の通信装置であって、
前記レート維持部は、前記新たなTCP−ACKパケットに関して、前記書き換え後の前記ACK番号が前記書き換え前の前記ACK番号を超えないように前記書き換えを行う
通信装置。
The communication device according to claim 3,
The communication apparatus according to claim 1, wherein the rate maintaining unit rewrites the new TCP-ACK packet so that the ACK number after the rewriting does not exceed the ACK number before the rewriting.
請求項4に記載の通信装置であって、
前記フローエントリは、更に、後に受信することが期待されるTCP−ACKパケットの前記ACK番号である期待ACK番号を含み、
前記レート維持部は、前記TCP/IP処理部から送信された前記TCPパケットに基づいて、前記フローテーブル中の該当フローエントリの前記期待ACK番号を更新し、
前記新たなTCP−ACKパケットを前記再送制御部から受け取った場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記期待ACK番号を参照し、
前記新たなTCP−ACKパケットの前記ACK番号が前記期待ACK番号以上の場合、前記レート維持部は前記書き換えを行わない
通信装置。
The communication device according to claim 4,
The flow entry further includes an expected ACK number that is the ACK number of a TCP-ACK packet expected to be received later,
The rate maintaining unit updates the expected ACK number of the corresponding flow entry in the flow table based on the TCP packet transmitted from the TCP / IP processing unit,
When the new TCP-ACK packet is received from the retransmission control unit, the rate maintaining unit refers to the expected ACK number of the corresponding flow entry in the flow table,
The communication apparatus according to claim 1, wherein when the ACK number of the new TCP-ACK packet is greater than or equal to the expected ACK number, the rate maintaining unit does not perform the rewriting.
請求項1乃至5のいずれか一項に記載の通信装置であって、
前記レート維持部は、フロー毎のフローエントリを有するフローテーブルを備え、
前記フローエントリは、
前記再送制御部から前回受け取ったTCP−ACKパケットの前記ACK番号である受信ACK番号と、
重複ACK回数と
を含み、
新たなTCP−ACKパケットを前記再送制御部から受け取った場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記受信ACK番号を参照し、
前記新たなTCP−ACKパケットの前記ACK番号が前記受信ACK番号よりも大きい場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記重複ACK回数を初期化し、
前記新たなTCP−ACKパケットの前記ACK番号が前記受信ACK番号と同じである場合、前記レート維持部は、前記フローテーブル中の該当フローエントリの前記重複ACK回数をインクリメントし、
前記重複ACK回数が所定の条件を満たした場合、前記レート維持部は、前記ACK番号に対応する前記送信パケットの再送を前記再送制御部に対して指示する
通信装置。
The communication device according to any one of claims 1 to 5,
The rate maintaining unit includes a flow table having a flow entry for each flow,
The flow entry is
A reception ACK number that is the ACK number of the TCP-ACK packet received last time from the retransmission control unit;
Including the number of duplicate ACKs and
When a new TCP-ACK packet is received from the retransmission control unit, the rate maintaining unit refers to the reception ACK number of the corresponding flow entry in the flow table,
If the ACK number of the new TCP-ACK packet is greater than the received ACK number, the rate maintaining unit initializes the number of duplicate ACKs of the corresponding flow entry in the flow table,
When the ACK number of the new TCP-ACK packet is the same as the received ACK number, the rate maintaining unit increments the number of duplicate ACKs of the corresponding flow entry in the flow table,
When the number of duplicate ACKs satisfies a predetermined condition, the rate maintaining unit instructs the retransmission control unit to retransmit the transmission packet corresponding to the ACK number.
通信装置におけるパケット再送制御方法であって、
TCP層から送信されたTCPパケットに関して、前記TCP層よりも下位の下位層でパケット再送制御を行うステップと、
前記TCPパケットの送信先から、前記TCPパケットに応答するTCP−ACKパケットを受け取るステップと、
前記受け取ったTCP−ACKパケットを前記下位層から前記TCP層に転送するステップと
を含み、
前記転送するステップは、
同一のACK番号を有するTCP−ACKパケットが連続して前記TCP層に転送されないように、前記受け取ったTCP−ACKパケットのACK番号の書き換えを行うステップと、
前記書き換え後の前記TCP−ACKパケットを前記TCP層に転送するステップと
を含む
パケット再送制御方法。
A packet retransmission control method in a communication device,
With respect to a TCP packet transmitted from the TCP layer, performing packet retransmission control in a lower layer lower than the TCP layer;
Receiving a TCP-ACK packet in response to the TCP packet from a destination of the TCP packet;
Transferring the received TCP-ACK packet from the lower layer to the TCP layer,
The transferring step includes:
Rewriting the ACK number of the received TCP-ACK packet so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP layer;
Transferring the rewritten TCP-ACK packet to the TCP layer; and a packet retransmission control method.
コンピュータにパケット再送制御機能を実現させるためのパケット再送制御プログラムであって、
前記パケット再送制御機能は、
TCP/IP処理を行うTCP/IP処理機能と、
TCP層よりも下位の層でパケット再送制御を行う再送制御機能と、
前記再送制御機能より受け取るTCPパケットを前記TCP/IP処理機能に転送するレート維持機能と
を備え、
前記再送制御機能は、前記TCP/IP処理機能から送信されたTCPパケットを送信パケットとして送信先に送信し、前記送信先から前記送信パケットに応答するTCP−ACKパケットを受け取り、前記受け取ったTCP−ACKパケットを前記レート維持機能に転送し、
前記レート維持機能は、同一のACK番号を有するTCP−ACKパケットが連続して前記TCP/IP処理機能に転送されないように、前記再送制御機能から受け取ったTCP−ACKパケットのACK番号の書き換えを行い、前記書き換え後の前記TCP−ACKパケットを前記TCP/IP処理機能に転送する
パケット再送制御プログラム。
A packet retransmission control program for causing a computer to implement a packet retransmission control function,
The packet retransmission control function is:
TCP / IP processing function for performing TCP / IP processing;
A retransmission control function for performing packet retransmission control in a layer lower than the TCP layer;
A rate maintaining function for transferring a TCP packet received from the retransmission control function to the TCP / IP processing function;
The retransmission control function transmits a TCP packet transmitted from the TCP / IP processing function to a transmission destination as a transmission packet, receives a TCP-ACK packet responding to the transmission packet from the transmission destination, and receives the received TCP- Transfer ACK packet to the rate maintenance function,
The rate maintaining function rewrites the ACK number of the TCP-ACK packet received from the retransmission control function so that TCP-ACK packets having the same ACK number are not continuously transferred to the TCP / IP processing function. A packet retransmission control program for transferring the rewritten TCP-ACK packet to the TCP / IP processing function.
JP2013516866A 2011-01-12 2011-09-09 Communication apparatus, packet retransmission control method, packet retransmission control program Expired - Fee Related JP5854044B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013516866A JP5854044B2 (en) 2011-01-12 2011-09-09 Communication apparatus, packet retransmission control method, packet retransmission control program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011003894 2011-01-12
JP2011003894 2011-01-12
JP2013516866A JP5854044B2 (en) 2011-01-12 2011-09-09 Communication apparatus, packet retransmission control method, packet retransmission control program
PCT/JP2011/005070 WO2012095904A1 (en) 2011-01-12 2011-09-09 Communication device, packet retransmission control method and packet retransmission control program

Publications (2)

Publication Number Publication Date
JP2014507817A true JP2014507817A (en) 2014-03-27
JP5854044B2 JP5854044B2 (en) 2016-02-09

Family

ID=46506836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013516866A Expired - Fee Related JP5854044B2 (en) 2011-01-12 2011-09-09 Communication apparatus, packet retransmission control method, packet retransmission control program

Country Status (2)

Country Link
JP (1) JP5854044B2 (en)
WO (1) WO2012095904A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016096390A (en) * 2014-11-12 2016-05-26 富士ゼロックス株式会社 Bandwidth prediction device, bandwidth prediction system, bandwidth prediction program, bandwidth prediction method and recording medium
JP2017183833A (en) * 2016-03-28 2017-10-05 キヤノン株式会社 Communication device and control method thereof
JP2020502873A (en) * 2016-11-02 2020-01-23 華為技術有限公司Huawei Technologies Co.,Ltd. Packet transmitting method and apparatus, chip, and terminal

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11882051B2 (en) * 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004147183A (en) * 2002-10-25 2004-05-20 Mitsubishi Electric Corp Error control method, communication equipment, and communication system
WO2010110356A1 (en) * 2009-03-27 2010-09-30 日本電気株式会社 Packet retransmission control system, packet retransmission control method, and retransmission control program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004147183A (en) * 2002-10-25 2004-05-20 Mitsubishi Electric Corp Error control method, communication equipment, and communication system
WO2010110356A1 (en) * 2009-03-27 2010-09-30 日本電気株式会社 Packet retransmission control system, packet retransmission control method, and retransmission control program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016096390A (en) * 2014-11-12 2016-05-26 富士ゼロックス株式会社 Bandwidth prediction device, bandwidth prediction system, bandwidth prediction program, bandwidth prediction method and recording medium
JP2017183833A (en) * 2016-03-28 2017-10-05 キヤノン株式会社 Communication device and control method thereof
JP2020502873A (en) * 2016-11-02 2020-01-23 華為技術有限公司Huawei Technologies Co.,Ltd. Packet transmitting method and apparatus, chip, and terminal
US10771595B2 (en) 2016-11-02 2020-09-08 Huawei Technologies Co., Ltd. Packet sending method and apparatus, chip, and terminal

Also Published As

Publication number Publication date
WO2012095904A1 (en) 2012-07-19
JP5854044B2 (en) 2016-02-09

Similar Documents

Publication Publication Date Title
US9985872B2 (en) Router with bilateral TCP session monitoring
CN104025525B (en) For sending the method and apparatus and exchange apparatus of packet
JP4587053B2 (en) Communication apparatus, communication system, packet loss detection method, and packet loss detection program
JP4156568B2 (en) COMMUNICATION SYSTEM CONTROL METHOD, COMMUNICATION CONTROL DEVICE, PROGRAM
US9467390B2 (en) Method and device for data transmission
US9876612B1 (en) Data bandwidth overhead reduction in a protocol based communication over a wide area network (WAN)
JP5661868B2 (en) Method and device for submitting at least one TCP data segment stream to inline content analysis, computer readable medium carrying one or more instruction sequences for performing the method, and computer program product
US20060002301A1 (en) Transferring transmission control protocol packets
JP5854044B2 (en) Communication apparatus, packet retransmission control method, packet retransmission control program
JP5786853B2 (en) Packet retransmission control device, packet retransmission control method, packet retransmission control program
US10341449B2 (en) Hybrid approach for performance enhancing proxies
JP2009526494A (en) System and method for improving transport protocol performance
US20100226384A1 (en) Method for reliable transport in data networks
US20070291782A1 (en) Acknowledgement filtering
Eddy Rfc 9293: Transmission control protocol (tcp)
Bhargava et al. Analysis of Different Congestion Avoidance Algorithms
EP2774342B1 (en) Reducing tcp timeouts due to incast collapse at a network switch
WO2024113459A1 (en) Double unidirectional optical gate system based data transmission methods and apparatuses, device and medium
JP5046197B2 (en) Communication apparatus, communication system, packet loss detection method, and packet loss detection program
JP2006148727A (en) Application monitor apparatus
US8639822B2 (en) Extending application-layer sessions based on out-of-order messages
CN111669733A (en) Method for transmitting data packet at node in Bluetooth Mesh network
WO2012014397A1 (en) Communication apparatus, communication system, packet retransmission control method and packet retransmission control program
KR20110078564A (en) Update method of round trip time in communication protocol providing multi-homing function and communication apparatus providing multi-homing function
Sathiaseelan et al. Reorder notifying TCP (RN‐TCP) with explicit packet drop notification (EPDN)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151016

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: 20151110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151123

R150 Certificate of patent or registration of utility model

Ref document number: 5854044

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees