JP2008109698A - Packet communication apparatus, packet communication method, and packet communications program - Google Patents
Packet communication apparatus, packet communication method, and packet communications program Download PDFInfo
- Publication number
- JP2008109698A JP2008109698A JP2007310269A JP2007310269A JP2008109698A JP 2008109698 A JP2008109698 A JP 2008109698A JP 2007310269 A JP2007310269 A JP 2007310269A JP 2007310269 A JP2007310269 A JP 2007310269A JP 2008109698 A JP2008109698 A JP 2008109698A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- network interface
- ack
- communication protocol
- received
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 300
- 238000000034 method Methods 0.000 title claims description 40
- 238000012544 monitoring process Methods 0.000 claims description 100
- 230000005540 biological transmission Effects 0.000 claims description 90
- 230000004044 response Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims 17
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 44
- 238000012790 confirmation Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 101001077374 Oryza sativa subsp. japonica UMP-CMP kinase 3 Proteins 0.000 description 1
- 241000188156 Tamu Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
本発明は、パケットの損失に対し、再送を行う通信プロトコル(例えばTCP(Transmissi
on Control Protocol))を利用した通信に関し、特に映像・音声のようなリアルタイム性
を要求されるデータ通信を実現するための通信装置及び通信方法及び通信プログラムに関
する。
The present invention provides a communication protocol (for example, TCP (Transmissi
on Communication Protocol)), and more particularly, to a communication apparatus, a communication method, and a communication program for realizing data communication that requires real-time performance such as video and audio.
近年、送信側から受信側にデータをパケットに分割して送信し、受信側でデータに再現
して再生する通信アプリケーションが増加している。例えば、インターネット上でのIP
話(VoIP)や、TV会議、映画やライブの映像配信などが挙げられる。このようなアプリケー
ションでは、送信側からデータがパケットとして送信されてから一定時間以内に受信側で
再生されることが、通信アプリケーションとしての品質を高く保つ、つまり音声を途切れ
なく再生する、または画像を途切れなく再送するために重要となる。つまり、このような
通信アプリケーションにおいては、パケットが送出されてからデータを再生するまでの遅
延時間をできるだけ小さくすることが求められる。以下では、このようなパケットが送出
されてからデータを再生するまでの遅延時間をできるだけ小さくする必要があることを、
リアルタイム性を必要する、という表現で表すこととする。
In recent years, there has been an increase in communication applications in which data is divided into packets and transmitted from the transmission side to the reception side, and reproduced and reproduced as data on the reception side. For example, IP on the Internet
Talk (VoIP), video conferencing, movie and live video distribution. In such an application, if the data is transmitted from the transmission side as a packet and is reproduced on the reception side within a certain time, the quality as a communication application is kept high, that is, the sound is reproduced without interruption or the image is reproduced. This is important for retransmitting without interruption. That is, in such a communication application, it is required to minimize the delay time from when a packet is transmitted until data is reproduced. In the following, it is necessary to minimize the delay time from when such a packet is transmitted until the data is reproduced.
It is expressed by the expression that real-time property is required.
このようなリアルタイム性を必要とするアプリケーションにおける通信プロトコルとし
ては、再送制御を伴わないプロトコルが用いられることが多い。具体的な通信プロトコル
の1つとしては、UDP(User Datagram Packet)を挙げることができる。UDPはパケットを損
失なく転送するための信頼性よりも、軽量で高速であることを目的とする通信プロトコル
である。送信したパケットが、受信側の端末等に到着する前に損失した場合(パケットロ
スが発生した場合)でも、その損失したパケット(ロスパケット)の再送を行わない。こ
のため、一部受信側で再現できないデータが存在することを許容すれば、再送に伴う遅延
が発生しない。
As a communication protocol in such an application that requires real-time properties, a protocol that does not involve retransmission control is often used. One specific communication protocol is UDP (User Datagram Packet). UDP is a communication protocol that aims to be lighter and faster than reliability for transferring packets without loss. Even if the transmitted packet is lost before it arrives at the receiving terminal or the like (when a packet loss occurs), the lost packet (lost packet) is not retransmitted. For this reason, if it is allowed that some data that cannot be reproduced on the receiving side is present, a delay due to retransmission does not occur.
しかし、通信アプリケーションを利用するユーザの環境によっては、再送制御を伴わな
いプロトコルを用いることができない場合がある。例えば、企業、大学、家庭ネットワー
クにおいて外部からのパケットの遮断やフィルタリング等といったセキュリティ上の理由
により、ファイアウォールやプロキシを設置している場合を挙げることができる。
However, depending on the environment of the user using the communication application, a protocol that does not involve retransmission control may not be used. For example, there may be mentioned a case where a firewall or a proxy is installed in a company, university, or home network for security reasons such as blocking or filtering of external packets.
このような環境で前述のアプリケーションのデータをファイアウォールやプロキシを越
えて通信する方法として、ファイアウォールやプロキシを通過するHTTP(Hyper Text Tran
sfer Protocol)を利用して、データパケットをやりとりすることで、コミュニケーション
を実現する方法が特許文献1に開示されている。ここで、HTTPは、再送制御を伴うTCPの上
に規定される通信プロトコルである。
In such an environment, HTTP (Hyper Text Tran) that passes through the firewall or proxy can be used as a method of communicating the data of the aforementioned application across the firewall or proxy.
リアルタイム性を必要とするアプリケーションにおいて、再送制御を伴うプロトコルを
用いた場合に発生する問題を、TCPを例として図31を参照して説明する。
A problem that occurs when a protocol that involves retransmission control is used in an application that requires real-time processing will be described with reference to FIG. 31 using TCP as an example.
図31はTCPの再送制御の処理シーケンスの一例である。送信側はシーケンス番号を付与
し、データパケットを送信する。受信側はデータパケットを受信すると、受信したことを
送信側に通知(応答)するために、シーケンス番号を付与した“ACK”情報を含んだパケ
ット(以下略してACK)を送信し、同時に、アプリケーションに対して受信したデータを渡
す。
FIG. 31 is an example of a processing sequence of TCP retransmission control. The transmission side assigns a sequence number and transmits a data packet. When the receiving side receives the data packet, it sends a packet (hereinafter abbreviated as ACK) including the “ACK” information with a sequence number to notify the sending side of the data packet (response). Pass the received data to.
例えば、シーケンス番号1(図31においては#1と表記)のデータパケットを受信する
と(3101)、受信側はシーケンス番号1のACKを送信側に送出し(3102)、同時にそのデータ
パケットのデータをアプリケーションに対して渡す(3103)。
For example, when a data packet with sequence number 1 (shown as # 1 in FIG. 31) is received (3101), the receiving side sends an ACK with
ここで、シーケンス番号2のパケットが損失したとする(3104)。受信側はパケットが届
いていないので何の応答も返さない。TCPでは後述するように同一シーケンス番号を含むA
CKをあらかじめ決められた回数だけ連続して受信するまでは、パケットロスの発生を認識
しないので、続いて、送信側はシーケンス番号3のパケットを送信する(3105)。受信側で
は、シーケンス番号3のパケットを受信した際、シーケンス番号2のパケットが届いていな
いことを検出し、送信側にその内容を伝える。具体的には、受信側は、シーケンス番号1
までのパケットを受け取っていることを伝えるACKを送信する(3106)。シーケンス番号1ま
でのパケットを受け取っていることを伝えるACKは、 3102でも既におり、2回目の送信で
あることから、この3106で送信されるACKは“Duplicated ACK”と呼ばれる(図31におい
てはDup ACKと表記する)。なお、一般的にACK とDuplicated ACKで実体的な差はないが
、以下では2回目以降のACKの送信であることを表現するために、ACK とDuplicated ACKと
をできるだけ使い分けて記載するものとする。
Here, it is assumed that the packet with the
Until the CK is continuously received for a predetermined number of times, the occurrence of packet loss is not recognized, so that the transmitting side transmits a packet of sequence number 3 (3105). On the receiving side, when the packet with
An ACK is transmitted to notify that the packets up to are received (3106). Since the ACK that indicates that the packets up to
3105で受信したシーケンス番号3のデータは、アプリケーションには渡らず、TCPのプロ
トコルスタックに一時蓄積される。送信側はこのあと、シーケンス番号4、シーケンス番
号5のデータパケットを送信し(3107, 3109)、受信側はシーケンス番号2のパケットが届い
ていないため、同様にシーケンス番号1のDuplicated ACKを送信し(3108, 3110)、シーケ
ンス番号4及びシーケンス番号5のデータパケットをTCPのプロトコルスタックに一時蓄積
する。TCPでは、送信側でDuplicated ACKを、パラメータとして設定されている回数、一
般的な実装では 3回、連続で受信すると、パケットロスが発生したことを検出し、Duplic
ated ACKで指定されているシーケンス番号の次のパケットを再送する制御が行われる。こ
こでは、シーケンス番号2のパケットが再送される(3111)。受信側では、3111でシーケン
ス番号2のパケットを受信すると、シーケンス番号5までのデータを受け取っていることに
なるので、シーケンス番号5を付与したACKを送信する(3112)。同時にアプリケーションに
対して、シーケンス番号2、3、4、5のパケットのデータを渡す(3113〜3116)。
The data of
Control is performed to retransmit the next packet of the sequence number specified by ated ACK. Here, the packet with
この例に示されるように、パケットロスが発生すると、受信側では損失パケットが再送
されるまで受信データがアプリケーションに渡されないので、再送に伴う遅延が発生する
という課題がある。この例では、3104でのシーケンス番号2のパケットロスに伴い、3117
に示される遅延時間が発生している。アプリケーションにおいての遅延時間の許容範囲が
3117で示される時間未満の場合は、アプリケーションの実行に障害を来たすことになる。
例えば、映像・音声の再生を行うアプリケーションの場合、再生データが再生時間に間に
合わなくなり、再生が途切れる症状が発生する可能性がある。
As shown in this example, when packet loss occurs, received data is not passed to the application on the receiving side until the lost packet is retransmitted, so that there is a problem that a delay due to retransmission occurs. In this example, with the packet loss of
The delay time shown in The tolerance of delay time in the application is
If it is less than the time indicated by 3117, the execution of the application will be disturbed.
For example, in the case of an application that reproduces video / audio, there is a possibility that the reproduction data will not be in time for the reproduction time, and the reproduction may be interrupted.
このような課題に対して、映像・音声の再生可能時間を閾値として設定し、その閾値以
内に届かなかったデータパケットに対して、ダミーのACKを送信し、あたかも受信してい
ないデータパケットを受信したかのように送信側にACKの応答を返すことにより、TCPの再
送制御を行わせないようにし、再送処理の無駄を省く方法も提案されている(例えば非特
許文献1)。この場合、受信側端末では、再送制御を行わなかったデータパケットは受信
されないが、後続のパケットは受信されるため、アプリケーションには、再送制御を行わ
なかったデータパケットの後続のデータパケットのデータは渡すことが可能となる。これ
により、パケットの再送に伴う遅延を抑制することができる。
In response to these issues, the video / audio playback time is set as a threshold, a dummy ACK is sent to a data packet that does not reach the threshold, and a data packet that has not been received is received. A method has also been proposed in which TCP retransmission control is prevented from being performed by returning an ACK response to the transmitting side as if it has been performed, and waste of retransmission processing is eliminated (for example, Non-Patent Document 1). In this case, the data packet that has not been subjected to retransmission control is not received at the receiving side terminal, but the subsequent packet is received. Therefore, the data of the data packet subsequent to the data packet that has not been subjected to retransmission control is not received by the application. It becomes possible to pass. Thereby, the delay accompanying retransmission of a packet can be suppressed.
しかし、再送制御を伴うプロトコルでは、再送制御と連携した輻輳制御が行われている
ことが多い。例えばTCPでは再送制御に加え、輻輳ウインドウサイズを調整することによ
る輻輳制御が行われている。輻輳制御では、データ送信側が再送を行う際に送信レートを
低く押さえることで、ネットワークの混雑を可能な限り解消しようとする機構である。例
えばTCPでは、Duplicated ACKを3回続けて受信した場合に、再送処理と同時に一度に送出
するパケット数を低く押さえることで、ネットワークの混雑を回避しようとする処理を行
う。
However, in protocols involving retransmission control, congestion control is often performed in cooperation with retransmission control. For example, in TCP, congestion control is performed by adjusting the congestion window size in addition to retransmission control. Congestion control is a mechanism that attempts to eliminate network congestion as much as possible by keeping the transmission rate low when the data transmission side performs retransmission. For example, in TCP, when Duplicated ACK is received three times in succession, processing is performed to avoid network congestion by keeping the number of packets transmitted at the same time as retransmission processing low.
この制御は、パケットロスが発生する原因として、ネットワークの混雑を仮定し、送信
レートを低く押さえること、つまり輻輳ウインドウサイズを小さくすることでネットワー
クの混雑を少しでも早く解消させることを目的としている。
The purpose of this control is to reduce network congestion as soon as possible by assuming a network congestion as a cause of packet loss and keeping the transmission rate low, that is, by reducing the congestion window size.
非特許文献1で提案されている方法では、再送制御を抑制する効果があるものの、送信
側が輻輳制御を行わなくなるため、ネットワークが混雑している場合、その混雑度をます
ます加速させてしまうという課題が内在している。
Although the method proposed in
本発明の目的は、再送制御に伴うデータ受信までの遅延の削減と、輻輳制御を両立させ
て実現することができるパケット通信装置、パケット通信方法、およびパケット通信プロ
グラムを提供することにある。この手段により、リアルタイム性を必要とするアプリケー
ションを、再送制御と輻輳制御の機能を持つプロトコルを用いて、再送制御に伴う遅延の
影響を受けずに実行することを可能ならしめると同時にネットワーク全体としての適切な
輻輳制御を行わしめることができる。
An object of the present invention is to provide a packet communication device, a packet communication method, and a packet communication program capable of realizing both a reduction in delay until data reception associated with retransmission control and congestion control. This means that applications that require real-time capability can be executed without being affected by delays associated with retransmission control, using a protocol with retransmission control and congestion control functions, and at the same time the entire network. It is possible to perform appropriate congestion control.
かかる目的を達成するために、本発明の第一の通信装置は、パケットを受信するネット
ワークインターフェースと、ネットワークインターフェースからパケットを受け取りデー
タ受信部に渡す通信プロトコルスタックと、ネットワークインターフェースが受信したパ
ケットをスヌープしてデータ受信部に渡すスヌープパケット出力部と、通信プロトコルス
タック及びスヌープパケット出力部からパケットのデータを受け取り、そのパケットデー
タの重複がないように、つまり同じシーケンス番号のパケットのデータが重複することが
ないように、その受け取ったデータをアプリケーションに提供するデータ受信部から構成
されることを特徴とする。
In order to achieve such an object, a first communication device of the present invention includes a network interface that receives a packet, a communication protocol stack that receives a packet from the network interface and passes the packet to a data receiving unit, and snoops the packet received by the network interface The packet data is received from the snoop packet output unit passed to the data receiving unit, the communication protocol stack and the snoop packet output unit, and there is no duplication of the packet data, that is, the packet data with the same sequence number is duplicated. It is characterized by comprising a data receiving unit that provides the received data to the application.
また、本発明による第二の通信装置は、パケットを受信するネットワークインターフェ
ースと、ネットワークインターフェースからパケットを受け取りアプリケーションに提供
する通信プロトコルスタックと、ネットワークインターフェースが受信したパケットを監
視し、輻輳制御が送信側で実行されることになる回数分のDuplicated ACKが送信されるタ
イミングを受信側のネットワークインターフェース部において監視し、そのタイミングを
ダミーパケット生成部に通知するパケット監視部と、その通知をトリガーとしてダミーパ
ケットを生成しネットワークインターフェースに送出するダミーパケット生成部とから構
成されることを特徴とする。
The second communication device according to the present invention includes a network interface that receives a packet, a communication protocol stack that receives the packet from the network interface and provides it to an application, monitors the packet received by the network interface, and the congestion control is performed on the transmission side. The packet monitoring unit that monitors the timing at which Duplicated ACK is transmitted for the number of times executed in the network interface unit on the receiving side and notifies the dummy packet generation unit of the timing, and the dummy packet triggered by the notification And a dummy packet generation unit that generates and transmits the packet to the network interface.
また、本発明による第三の通信装置は、パケットを受信するネットワークインターフェ
ースと、ネットワークインターフェースからパケットを受け取りアプリケーションに提供
する通信プロトコルスタックと、ネットワークインターフェースが受信するパケットを監
視し、Duplicated ACKが送信されるタイミングを監視し、そのタイミングでダミーのDupl
icate ACKを1つ以上発生し、ネットワークインターフェース部に送出するACK生成部から
構成されることを特徴とする。
A third communication device according to the present invention monitors a network interface that receives a packet, a communication protocol stack that receives the packet from the network interface and provides it to an application, and a packet received by the network interface, and a duplicated ACK is transmitted. Dummy Dupl at that timing
It is characterized by comprising an ACK generation unit that generates one or more icate ACKs and sends them to the network interface unit.
また、本発明による第四の通信装置は、パケットを送受信するネットワークインターフ
ェースと、ネットワークインターフェースからパケットを受け取りアプリケーションに提
供する通信プロトコルスタックと、ネットワークインターフェースが受信したパケットを
監視し、受信したパケットがDuplicate ACKであった場合に、ダミーパケット生成部及びA
CK生成部に通知を行うパケット監視部と、パケット監視部からの通知を受け、1つ以上のD
uplicated ACKを生成し、ネットワークインターフェース部に送出するACK生成部と、また
、パケット監視部からの通知を受け、ロスパケットのダミーパケットを生成し、ネットワ
ークインターフェース部を通じて、通信プロトコルに送信するダミーパケット生成部から
構成されることを特徴とする。
The fourth communication device according to the present invention includes a network interface that transmits and receives packets, a communication protocol stack that receives packets from the network interface and provides them to an application, monitors packets received by the network interface, and receives received packets as duplicates. If it is ACK, dummy packet generator and A
A packet monitoring unit for notifying the CK generation unit, and one or more D in response to the notification from the packet monitoring unit
Generates an uplicated ACK and sends it to the network interface unit, and receives a notification from the packet monitoring unit, generates a dummy packet of the lost packet, and generates a dummy packet to send to the communication protocol through the network interface unit It is comprised from a part.
また、本発明による第五の通信装置は、パケットを受信するネットワークインターフェ
ースと、ネットワークインターフェースからパケットを受け取り、アプリケーションに提
供する通信プロトコルスタックと、ネットワークインターフェースが送受信したパケット
を監視し、シーケンス番号の順序性が崩れたときにダミーパケット生成部に通知し、さら
に順序性が崩れたパケットが、次に連続して到着する複数個のパケットに含まれるかどう
かを監視し、その中に順序性が崩れたパケットが到着しない場合、 ACK生成部に通知する
パケット監視部と、パケット監視部からの通知を受け、ダミーパケットを生成し、ネット
ワークインターフェースに送信するダミーパケット生成部と、パケット監視部からの通知
を受け、複数個のDuplicated ACKを生成し、ネットワークインターフェースに送信するAC
K生成部と、から構成されることを特徴とする。
A fifth communication apparatus according to the present invention monitors a network interface that receives a packet, a communication protocol stack that receives a packet from the network interface and provides it to an application, and a packet that is transmitted and received by the network interface, and the sequence number sequence. When the packet is broken, the dummy packet generator is notified, and if the broken packet is included in a plurality of packets that arrive in succession next, the packet is broken. If the received packet does not arrive, the packet monitoring unit that notifies the ACK generation unit and the notification from the packet monitoring unit receives the notification from the packet monitoring unit, generates the dummy packet, and sends it to the network interface and the notification from the packet monitoring unit Receive multiple duplicated ACKs AC that, and transmits to the network interface
And a K generator.
また、本発明による第六の通信装置は、パケットを受信するネットワークインターフェ
ースと、ネットワークインターフェースからパケットを受け取り、アプリケーションに提
供する通信プロトコルスタックと、ネットワークインターフェースが送受信したパケット
を監視し、シーケンス番号の順序性が崩れたときに、再送可否判断部に通知を行うパケッ
ト監視部と、一定期間有効な再送可否判断フラグを確認し、再送可否判断フラグがセット
されていない場合、再送可否判断フラグのセットを行い、同時にダミーパケット生成部及
びACK生成部に通知を行い、再送可否判断フラグがセットされている場合、ダミーパケッ
ト生成部に通知を行う再送可否判断部と、再送可否判断部からの通知を受け、ダミーパケ
ットを生成し、ネットワークインターフェースに送信するダミーパケット生成部と、再送
可否判断部からの通知を受け、複数のDuplicated ACKを生成し、ネットワークインターフ
ェースに送信するACK生成部と、から構成されることを特徴とする。
The sixth communication device according to the present invention monitors a network interface that receives a packet, a communication protocol stack that receives a packet from the network interface and provides it to an application, and a packet that is transmitted and received by the network interface, and the sequence number sequence. The packet monitoring unit for notifying the resendability judgment unit and the resendability judgment flag that is valid for a certain period of time are confirmed, and if the resendability judgment flag is not set, the resendability judgment flag is set. Simultaneously, the dummy packet generation unit and the ACK generation unit are notified, and when the retransmission permission determination flag is set, the retransmission permission determination unit that notifies the dummy packet generation unit and the notification from the retransmission permission determination unit Generate dummy packets, network in A dummy packet generator to be transmitted to over the face, receiving the notification from the retransmission judging unit generates a plurality of Duplicated ACK, characterized the ACK generating unit to be transmitted to the network interface, in that they are composed of.
また、本発明による第七の通信装置は、パケットを受信するネットワークインターフェ
ースと、ネットワークインターフェースからパケットを受け取り、アプリケーションに提
供する通信プロトコルスタックと、ネットワークインターフェースが送受信したパケット
を監視し、Duplicated ACKの受信を検出した際、ACK生成部に通知するパケット監視部と
、パケット監視部からの通知を受け、複数個のDuplicated ACKを生成し、通信プロトコル
スタックに送信するACK生成部と、から構成されることを特徴とする。
The seventh communication device according to the present invention receives a packet from the network interface, receives a packet from the network interface, provides a communication protocol stack to the application, monitors a packet transmitted / received by the network interface, and receives a duplicated ACK. A packet monitoring unit that notifies the ACK generation unit when it detects a packet, and an ACK generation unit that receives a notification from the packet monitoring unit, generates a plurality of Duplicated ACKs, and transmits them to the communication protocol stack. It is characterized by.
また、本発明による第八の通信装置は、パケットを受信するネットワークインターフェ
ースと、ネットワークインターフェースからパケットを受け取り、アプリケーションに提
供する通信プロトコルスタックと、ネットワークインターフェースが送受信したパケット
を監視し、Duplicated ACKの受信を検出すると、再送可否判断部に通知を行うパケット監
視部と、一定期間有効な再送可否判断フラグがセットされているかを確認し、再送可否判
断フラグがセットされていない場合、再送可否判断フラグをセットし、ACK生成部に通知
を行う再送可否判断部と、再送可否判断部からの通知を受信した際に、複数個のDuplicat
ed ACKを生成し、通信プロトコルスタックに送信するACK生成部と、から構成されること
を特徴とする。
The eighth communication device according to the present invention receives a packet from the network interface, receives a packet from the network interface, provides a communication protocol stack to the application, monitors a packet transmitted / received by the network interface, and receives a duplicated ACK. Is detected, and the packet monitoring unit that notifies the retransmission permission determination unit checks whether the retransmission permission determination flag that is valid for a certain period is set. If the retransmission permission determination flag is not set, the retransmission permission determination flag is set. A plurality of Duplicat when receiving a notification from the retransmission determination unit and the retransmission determination unit for notifying the ACK generation unit
an ACK generation unit that generates an ed ACK and transmits the ed ACK to the communication protocol stack.
本発明の第一の効果は、リアルタイム性を要求するアプリケーションにおいて再送制御
を伴う通信プロトコルでデータを送受信した場合に、パケットロス発生時の再送制御によ
って発生するアプリケーションでのデータ再生遅延を削減できることである。
The first effect of the present invention is that it is possible to reduce data reproduction delay in an application generated by retransmission control when packet loss occurs when data is transmitted / received by a communication protocol with retransmission control in an application that requires real-time performance. is there.
その理由は、データ送受信時にパケットロスが発生した場合も、損失したパケットの再
送制御による遅延を抑制する制御を行うからである。
The reason is that, even when a packet loss occurs during data transmission / reception, control is performed to suppress delay due to retransmission control of the lost packet.
本発明の第二の効果は、リアルタイム性を要求するアプリケーションにおいて再送制御
と輻輳制御を伴う通信プロトコルでデータを送受信した場合に、輻輳制御を損なうことな
く、再送制御に伴うデータを再現するまでの遅延を削減できることである。
The second effect of the present invention is that, when data is transmitted / received in a communication protocol that involves retransmission control and congestion control in an application that requires real-time characteristics, data that accompanies retransmission control is reproduced without impairing congestion control. The delay can be reduced.
その理由は、再送制御による遅延を抑制する制御に行う場合においても、輻輳制御に必
要なパケットを適切に送出することで輻輳制御まで抑制しないようにしているからである
。
The reason for this is that even when control is performed to suppress delay due to retransmission control, congestion control is not suppressed by appropriately transmitting packets necessary for congestion control.
本発明の第三の効果は、通信プロトコルに修正を加えることなく、上記第一、または第
二の効果を実現できることである。同一端末上で同じ通信プロトコルを利用している他の
アプリケーションに影響を与えることなく、上記第一、または第二の効果を得ることがで
きる。
The third effect of the present invention is that the first or second effect can be realized without modifying the communication protocol. The first or second effect can be obtained without affecting other applications using the same communication protocol on the same terminal.
その理由は、再送制御による遅延の抑制や、輻輳制御に必要なパケットの送出を、ネッ
トワークインターフェースを介して通信プロコルスタックに対して行うようにすることで
、通信プロトコルスタックと連動はするものの、独立の機能部として実現できているため
である。
The reason for this is that although it is linked to the communication protocol stack by controlling the delay by retransmission control and sending out the packets necessary for congestion control to the communication protocol stack via the network interface, it is independent. This is because it can be realized as a functional unit.
以下、本発明を実施するための実施の形態について図面を参照しながら説明を行う。図
1は、本発明の通信装置の実施の形態の全体の接続関係を示す構成図である。送信側端末1
10と受信側端末120がネットワーク130を介して接続されている。送信側端末110は、ネッ
トワーク130にパケットを送信する送信側通信装置111と、送信側通信装置111を通じてネ
ットワーク130にパケットのデータを送り込む送信側アプリケーション112から構成されて
いる。受信側端末120は、ネットワーク130からパケットを受信する受信側通信装置121と
、受信側通信装置121からパケットのデータを取り込む受信側アプリケーション122から構
成されている。なお、送信側端末110と受信側端末120の送信側、受信側の役割は説明のた
めに便宜的に固定しているものであり、実際は随意役割を入れ替え、相互にデータを送受
するとして問題ない。
DESCRIPTION OF EMBODIMENTS Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings. Figure
1 is a configuration diagram showing an overall connection relationship of an embodiment of a communication apparatus of the present invention.
10 and the receiving
(第1の実施の形態)
図2は、本発明に係る受信側通信装置の第1の実施の形態の構成図である。図2を参照する
と、本発明に係る受信側通信装置(以下、通信装置200)は、ネットワークインターフェ
ース201、データ受信部202、通信プロトコルスタック203、スヌープパケット出力部204を
含む。これらの手段は次のように動作する。
(First embodiment)
FIG. 2 is a configuration diagram of the first embodiment of the receiving communication device according to the present invention. Referring to FIG. 2, a receiving-side communication device (hereinafter, communication device 200) according to the present invention includes a
ネットワークインターフェース201は図1のネットワーク130と接続し、パケットの送受
信を行う。データ受信部202は、通信プロトコルスタック203及びスヌープパケット出力部
204からパケットデータを受け取り、パケットデータの重複がないように、重複して届い
たパケットを廃棄する。図1の受信側アプリケーション122はデータ受信部202からパケッ
トデータを受信する。通信プロトコルスタック203はネットワークインターフェース201を
通じてのパケットの送受信を管理する。スヌープパケット出力部204は、ネットワークイ
ンターフェースから受信パケットをスヌープする。ここで行われるスヌープ処理とは、ネ
ットワークインターフェースが受信する特定のパケットを複製する処理を指す。以降、こ
のフローを繰り返す。
A
Packet data is received from 204, and duplicated packets are discarded so that there is no duplication of packet data. The receiving-
なお、通信プロトコルスタック203は、図29に表されるように、ネットワークインター
フェース側のプロトコルスタック2031と、データ受信部側のインターフェースとなるソケ
ットインターフェース2032として多層的に実現することもできる。また、スヌープパケッ
ト出力部204についても、図30に示されるように、ネットワークインターフェース側のパ
ケットスヌープ部2041と、データ受信部側のインターフェースとなるスヌープインターフ
ェース2042のように階層的に実装することもできる。なお、このことは後述する第2から
第8の実施の形態における通信プロトコルスタック、パケット監視部においても同様であ
る。
As shown in FIG. 29, the communication protocol stack 203 can be realized in multiple layers as a protocol stack 2031 on the network interface side and a socket interface 2032 serving as an interface on the data receiving unit side. Further, as shown in FIG. 30, the snoop packet output unit 204 can also be hierarchically implemented as a packet snoop unit 2041 on the network interface side and a snoop interface 2042 serving as an interface on the data receiving unit side. . This also applies to the communication protocol stack and the packet monitoring unit in the second to eighth embodiments described later.
次に図2の構成図および図3のフローチャートを参照して、本実施の形態の全体の動作に
ついて詳細に説明する。
Next, the overall operation of the present embodiment will be described in detail with reference to the configuration diagram of FIG. 2 and the flowchart of FIG.
通信装置200のスヌープパケット出力部204は、ネットワークインターフェース201から
到着パケットをスヌープする(ステップS101)。データ受信部202は、スヌープパケット出
力部204からパケットデータを受け取る(ステップS102)。またデータ受信部202は、ステ
ップS102に並行して、通信プロトコルスタック203からパケットデータを受け取る(ステッ
プS111)。データ受信部202は、図2のS102 において受け取ったパケットデータとの重複が
ないように、重複して受け取ったものがあればパケットデータの片方を廃棄する(ステッ
プS103)。図示しないアプリケーションは、データ受信部202からパケットデータを受け取
り、データの再現を行う(ステップS104)。
The snoop packet output unit 204 of the communication device 200 snoops the arrival packet from the network interface 201 (step S101). The
次に本発明の実施の形態の動作を図4のシーケンス図に示される、通信プロトコルとし
てTCP/IPを採用した場合の一例を基にして具体的に説明する。以下では、輻輳制御及び再
送制御の実施を判断するためのDuplicated ACKの受信回数を、TCP/IPで一般的に採用され
ている3回としている。なお、以下の記載、および図において、「# L」はシーケンス番
号Lのパケットを表し、「ACK M」はシーケンス番号Mが付されたACKを表し、「Dup ACK N
」はシーケンス番号Nが付されたDuplicated ACKを表すものとする。
Next, the operation of the embodiment of the present invention will be specifically described based on an example in which TCP / IP is adopted as a communication protocol shown in the sequence diagram of FIG. In the following, the number of times a duplicated ACK is received for determining whether to perform congestion control and retransmission control is set to three times that is generally adopted in TCP / IP. In the following description and drawings, “#L” represents a packet with sequence number L, “ACK M” represents an ACK with sequence number M, and “Dup ACK N
"Represents a Duplicated ACK with a sequence number N.
通信装置のネットワークインターフェース201は、図1におけるネットワーク130を通じ
て送信側の端末110からシーケンス番号1のデータパケットを受信する(401)。通信プロト
コルスタック203はデータパケットをネットワークインターフェース201から取得し(402)
、シーケンス番号1の[ACK 1]をネットワークインターフェース201に送出する(403)。ネ
ットワークインターフェース201は、送信側の端末110に[ACK 1]を送信する(408)。通信プ
ロトコルスタック203は、パケットデータをデータ受信部に送信する(405)。通信プロトコ
ルスタック203がパケットを取得するのに先行、または並行して、スヌープパケット出力
部204は、データパケットをネットワークインターフェース201からスヌープして(404)、
データ受信部202に送信する(406)。データ受信部202は、シーケンス番号1のデータパケッ
トを重複して取得したことから、そのうち1つを廃棄して、405または406で受信したどち
らかのパケットデータのみを図示しないアプリケーションに送信する(407)。
The
[ACK 1] of
The data is transmitted to the data receiving unit 202 (406). Since the
次にシーケンス番号2のパケットが損失し(409)、続いて送信側端末110からはシーケン
ス番号3のパケットがネットワークインターフェース201に到達したとする(410)。通信プ
ロトコルスタック203はデータパケットをネットワークインターフェース201から取得し(4
11)、まだシーケンス番号2のデータパケットを受信していないことから、 Duplicated AC
Kと呼ばれる [Dup ACK 1]をネットワークインターフェース201に送出する(412)。ネット
ワークインターフェース201は、送信側端末110に[Dup ACK 1]を送信する(416)。通信プロ
トコルスタック203は、シーケンス番号2のデータパケットを受信していないことからパケ
ットデータをデータ受信部202に送信することはしない。通信プロトコルスタック203がパ
ケットを取得するのに先行、または並行して、スヌープパケット出力部204は、データパ
ケットをネットワークインターフェース201からスヌープして(413)、データ受信部202に
送信する(414)。データ受信部202は、414でスヌープパケット出力部204から受信したパケ
ットデータを図示しないアプリケーションに送信する(415)。
Next, it is assumed that the packet with the
11) Since the data packet of
[Dup ACK 1] called K is sent to the network interface 201 (412). The
シーケンス番号4、シーケンス番号5のパケットの到達においても、シーケンス番号3の
パケットの到達時と同様の動作が繰り返され、送信側端末110には、2つのDuplicated AC
Kが到達する(418,420)。また、データ受信部202からアプリケーションには、シーケンス
番号4のパケットデータ、シーケンス番号5のパケットデータが送出される(417,419)。
When the packets of
K arrives (418,420). Further, the packet data of
送信側端末110では、輻輳制御のトリガーとなる連続して3つ目のDuplicated ACKが到達
したとき(420)に、輻輳制御が実施される。また、同時にシーケンス番号2のパケットが損
失したことが検知され、シーケンス番号2のパケットを再送する(421)。ネットワークイン
ターフェースがシーケンス番号2のパケットを受信すると、通信プロトコルスタック203は
パケットを取得し(422)、[ACK 5]を生成してネットワークインターフェース201に送出す
る(423)。ここで、通信プロトコルスタックは、シーケンス番号5までのパケットを受信完
了したことになるため、ACKにはシーケンス番号5が付される。通信プロトコルスタック20
3は、シーケンス番号2から5のデータパケットを、データ受信部202に送出する(425〜428)
。通信プロトコルスタックがシーケンス番号2のパケットを取得するのに先行、または並
行して、スヌープパケット出力部204は、データパケットをネットワークインターフェー
ス201から受信して(424)、データ受信部202に送信する(429)。データ受信部202は、シー
ケンス番号5までのデータパケットを既に取得していることから、425から428で受信した
シーケンス番号2から5のパケットを廃棄する。
In the
3 sends data packets with
. Prior to or in parallel with the communication protocol stack obtaining the packet of
なお、上記例では、シーケンス番号2のパケットのデータがアプリケーションに渡され
ないことになるので、アプリケーションの側でそのようなパケットの損失に対応している
必要はある。例えば、映像や音声のようなアプリケーションでは、損失したパケットの前
後に受信したデータから損失したパケットのデータを予測する技術を有する場合が多く、
このような技術を活用することで対応が可能である。
In the above example, since the data of the packet with the
It is possible to respond by utilizing such technology.
次に、本実施の形態の効果について説明する。本実施の形態では、通信プロトコルスタ
ックの再生制御のために損失したパケットが再送されるまで、アプリケーションにデータ
を提供できない場合であっても、ネットワークインターフェースから、通信プロトコルス
タックが受信するデータを、直接スヌープパケット出力部がスヌープし、データ受信部20
2を通じて受け取ることで、損失したパケットが再送されるより前に、後続のパケットを
受け取ることが可能である。図4の例では、440で示される時間の遅延を削減することが可
能となる。
Next, the effect of this embodiment will be described. In this embodiment, data received by the communication protocol stack is directly received from the network interface even if data cannot be provided to the application until the packet lost due to the reproduction control of the communication protocol stack is retransmitted. Snoop packet output unit snoops, data receiving unit 20
By receiving through 2, it is possible to receive subsequent packets before the lost packet is retransmitted. In the example of FIG. 4, the time delay indicated by 440 can be reduced.
これにより、パケットロスによる再送制御の影響を受けることなく、損失したパケット
以降のパケットを連続的に受け取ることが出来る。アプリケーションが映像や音声等を再
現するものの場合を例とすると、映像や音声を途切れることなく再生することが可能とな
る。
Thereby, it is possible to continuously receive packets after the lost packet without being affected by retransmission control due to packet loss. For example, when the application reproduces video and audio, the video and audio can be reproduced without interruption.
さらに本実施の形態では、スヌープパケット出力部のスヌープは、通信プロトコルの再
送制御には影響を与えていないため、輻輳制御は実行される。リアルタイム性を要求する
アプリケーションにおいて再送制御と輻輳制御を伴う通信プロトコルでデータを送受信し
た場合に、輻輳制御を損なうことなく、再送制御に伴うデータを再現するまでの遅延を削
減できる。
Furthermore, in this embodiment, the snoop of the snoop packet output unit does not affect the retransmission control of the communication protocol, so the congestion control is executed. When data is transmitted / received by a communication protocol that involves retransmission control and congestion control in an application that requires real-time performance, it is possible to reduce a delay until data associated with retransmission control is reproduced without impairing congestion control.
また、本実施の形態では、スヌープパケット出力部が、通信プロトコルスタックを介さ
ずに直接ネットワークインターフェースからスヌープしている。つまり通信プロトコルに
修正を加える必要がない。通信プロトコルは、コンピュータのオペレーションシステムの
一部(カーネル)として実装されていることも多く、修正を施すことが困難なケースも多
いが、本実施の形態の構成を取れば、通信プロトコルに手を入れる必要がない。
In the present embodiment, the snoop packet output unit snoops directly from the network interface without going through the communication protocol stack. In other words, there is no need to modify the communication protocol. The communication protocol is often implemented as part of the computer's operation system (kernel), and in many cases it is difficult to make corrections. There is no need to put it in.
(第2の実施の形態)
次に本発明の第2の実施の形態について、図面を参照して説明する。
(Second embodiment)
Next, a second embodiment of the present invention will be described with reference to the drawings.
図5は、本発明に係る受信側通信装置の第2の実施の形態の構成図である。図5を参照す
ると、本発明に係る受信側通信装置(以下、通信装置500)は、ネットワークインターフ
ェース501、通信プロトコルスタック502、パケット監視部503、ダミーパケット生成部504
を含む。これらの手段は次のように動作する。ネットワークインターフェース501は、図1
のネットワーク130と接続し、パケットの送受信を行う。通信プロトコルスタック502はネ
ットワークインターフェース501を通じたパケットの送受信を管理する。受信したパケッ
トは通信プロトコルの制御にしたがって図1に示す受信側のアプリケーション122に送られ
る。なお、本実施の形態では、データの重複受信を行わない構成としたので、実施の形態
1における重複したデータの削除を行うデータ受信部は構成として不要となる。
FIG. 5 is a configuration diagram of the second embodiment of the receiving communication device according to the present invention. Referring to FIG. 5, a receiving side communication apparatus (hereinafter, communication apparatus 500) according to the present invention includes a
including. These means operate as follows. The
To transmit and receive packets. A
パケット監視部503は、ネットワークインターフェース501を経由して送受信されるパケ
ットを監視し、Duplicated ACKの送信を検出する。そのDuplicated ACKが通信プロトコル
における輻輳制御のトリガーとなるもの、つまりそのDuplicated ACKが送信側で受信され
た場合に、輻輳制御を起こすACKである場合、パケット監視部503はダミーパケット生成部
504にダミーパケットの生成を要求する。ダミーパケット生成部504は、ダミーパケットを
生成し、ネットワークインターフェース501を通じて通信プロトコルスタック502に送信す
る。ここで生成されるダミーパケットとは、損失したパケットに含まれるシーケンス番号
等のヘッダ情報が同一であるパケットである。パケットのデータ部分は空であってもよい
し、前回に受信したデータの複製データとするなどしても問題ない。
The
Requests generation of dummy packets to 504. The dummy
次に図5、および図6を参照して、本実施の形態の全体の動作について詳細に説明する。
図6は、本発明の第2の実施の形態に係る通信装置の動作を示すフローチャートである。
通信装置500のパケット監視部503は、ネットワークインターフェース501を経由して送受
信されるパケットを監視する (図6のS201)。
Next, the overall operation of the present embodiment will be described in detail with reference to FIG. 5 and FIG.
FIG. 6 is a flowchart showing the operation of the communication apparatus according to the second embodiment of the present invention.
The
パケット監視部503は、送受信されるパケットからDuplicated ACKの送信を検出し、そ
のDuplicated ACKが通信プロトコルにおける輻輳制御のトリガーとなるもの、つまりその
Duplicated ACKが送信側端末で受信された場合に、輻輳制御を起こすACKであるかを判断
する(図6のS202)。輻輳制御のトリガーとなる予め定められた回数のDuplicated ACKが検
出されるまで、S201、S202を繰り返す。
The
When Duplicated ACK is received by the transmitting terminal, it is determined whether the ACK causes congestion control (S202 in FIG. 6). S201 and S202 are repeated until a predetermined number of times of Duplicated ACK serving as a trigger for congestion control is detected.
輻輳制御を起こすDuplicated ACKであると判断された場合、ダミーパケット生成部504
に通知が行われ、ダミーパケット生成部504がダミーパケットの生成を行い、ネットワー
クインターフェース501を通じて通信プロトコルスタック502に送信する(図6のS203)。こ
こで、輻輳制御を起こすDuplicated ACKが検出されるとは、通信プロトコルがTCP/IPであ
る場合、同一シーケンス番号が付加されたDuplicated ACKの3回目の送信が検出された場
合が相当する。以降、S201からS203を繰り返す。
If it is determined that the duplicated ACK causes congestion control, the
The dummy
次に本発明の実施の形態の動作を図7のシーケンス図に示される、通信プロトコルとし
てTCP/IPとした場合の一例を基にして具体的に説明する。以下では、輻輳制御及び再送制
御の実施を判断するためのDuplicated ACKの受信回数を、TCP/IPで一般的に採用されてい
る3回としている。
Next, the operation of the embodiment of the present invention will be specifically described based on an example in which TCP / IP is used as the communication protocol shown in the sequence diagram of FIG. In the following, the number of times a duplicated ACK is received for determining whether to perform congestion control and retransmission control is set to three times that is generally adopted in TCP / IP.
通信装置のネットワークインターフェース501は、図1に示すネットワーク130を通じて
送信側端末110から送信されるシーケンス番号1のデータパケットを受信する(701)。通信
プロトコルスタック502はデータパケットをネットワークインターフェース501から取得し
(702)、シーケンス番号1の[ACK 1]をネットワークインターフェース501に送出する(703)
。ネットワークインターフェース501は、送信側端末110に[ACK 1]を送信する(705)。通信
プロトコルスタック502は、シーケンス番号1のパケットデータを図1に示す受信側アプリ
ケーション122に送信する(704)。
The
(702), [ACK 1] with
. The
次にシーケンス番号2のパケットが損失し(706)、続いて送信側端末110からはシーケン
ス番号3のパケットがネットワークインターフェース501に到達したとする(707)。通信プ
ロトコルスタック502はデータパケットをネットワークインターフェース501から取得し(7
08)、まだシーケンス番号2のデータパケットを受信していないことから、シーケンス番号
1までしか受信していないことを意味する、Duplicated ACKと呼ばれる[Dup ACK 1]をネ
ットワークインターフェース501に送出する(709)。ネットワークインターフェース501は
、送信側端末110に[Dup ACK 1]を送信する(710)。通信プロトコルスタック502は、シーケ
ンス番号2のデータパケットを受信していないことからシーケンス番号3のパケットデータ
を受信側アプリケーション122に送信することはしない。
Next, it is assumed that the packet of
08) Since the data packet of
シーケンス番号4、シーケンス番号5のパケットの到達においても、シーケンス番号3の
パケットの到達時と同様の動作が繰り返され、送信側端末110には、Duplicated ACK [ACK
1]が到達する(711〜718)。
When the packets of
1] arrives (711 to 718).
パケット監視部503は輻輳制御のトリガーとなる連続して3つ目のDuplicated ACKを検出
すると(718, 719)、ダミーパケット生成部504にダミーパケットの生成を要求する(720)
。ダミーパケット生成部504は、シーケンス番号2のダミーパケットを生成し、ネットワー
クインターフェース501を通じて、通信プロトコルスタック502に送信する(721,722)。通
信プロトコルスタック502は、シーケンス番号2のダミーパケットを受信側アプリケーショ
ン122に送信する(723)すると同時に、既に受け取っているシーケンス番号3から5のパケ
ットを受信側アプリケーション122に送信する(724〜726)。
When the
. The dummy
また、通信プロトコルスタック502は、シーケンス番号5までのパケットを受信できたこ
とから、シーケンス番号5のACKを送出する(728, 729)。
In addition, since the
送信側端末110では、輻輳制御のトリガーとなる連続して3つ目のDuplicated ACKが718
で到達したときに、輻輳制御が働く。同時にシーケンス番号2のパケットが損失したこと
が検知され、シーケンス番号2のパケットが再送される(727)。ネットワークインターフェ
ース501がこの再送パケット(シーケンス番号2)を受信し(727)、通信プロトコルスタッ
ク502はパケットを取得するが(730)、これまでにシーケンス番号5までのパケットを受信
完了したことになるため、この再送パケット(シーケンス番号2)の受信において、シー
ケンス番号5を付したACKを生成してネットワークインターフェース501に送出する(731)。
通信プロトコルスタック502は、重複して受け取ったパケット、ここでの例ではシーケン
ス番号2のデータパケット、については廃棄を行う(733)。
In the transmitting
Congestion control works when it arrives at. At the same time, it is detected that the packet of
The
次に本実施の形態の効果について説明する。 Next, the effect of this embodiment will be described.
本実施の形態では、通信プロトコルスタックの再生制御のために損失したパケットが再
送されるまで、アプリケーションにデータを提供できない場合であっても、ダミーパケッ
ト生成部がダミーパケットを生成し、通信プロトコルに提供することで、損失したパケッ
トが再送されるより前に、パケットを受け取ることが可能である。図7の例では、受信側
アプリケーションにシーケンス番号2のダミーパケットのデータが到着する時刻(723)から
、従来の方法で受信側アプリケーションにシーケンス番号2のパケットのデータが届く時
刻(741)の間の時間分の遅延を削減することが可能となる。つまり、おおよそ、再送制御
のトリガーとなるDuplicated ACKの送出から、ロスパケットが再送されるまでの時間を削
減することが可能となり、パケットロスによる再送制御の影響を軽減することが出来る。
アプリケーションが映像や音声等を再現する場合を例とすると、映像や音声を途切れるこ
となく再生することが可能となる。
In this embodiment, even when data cannot be provided to the application until the lost packet due to the reproduction control of the communication protocol stack is retransmitted, the dummy packet generation unit generates a dummy packet and sets the communication protocol. By providing, it is possible to receive a packet before the lost packet is retransmitted. In the example of FIG. 7, from the time (723) when the data of the dummy packet with
Taking the case where an application reproduces video and audio as an example, video and audio can be reproduced without interruption.
さらに本実施の形態では、ダミーパケットの生成を輻輳制御のトリガーとなるDuplicat
ed ACKが送信されるのを待ってから行うため、通信プロトコルの輻輳制御に影響を与えて
いない。そのため、リアルタイム性を要求するアプリケーションにおいて再送制御と輻輳
制御を伴う通信プロトコルでデータを送受信した場合に、輻輳制御を損なうことなく、再
送制御に伴うデータを再現するまでの遅延を削減できる。
Furthermore, in this embodiment, Duplicat that triggers congestion control to generate dummy packets
Since it waits for ed ACK to be transmitted, it does not affect the congestion control of the communication protocol. Therefore, when data is transmitted / received by a communication protocol that involves retransmission control and congestion control in an application that requires real-time performance, it is possible to reduce a delay until data associated with retransmission control is reproduced without impairing congestion control.
また、本実施の形態では、パケット監視部が、通信プロトコルスタックを介さずに直接
ネットワークインターフェースを監視している。つまり通信プロトコルに修正を加える必
要がない。通信プロトコルは、コンピュータのオペレーションシステムの一部(カーネル
)として実装されていることも多く、修正を施すことが困難なケースも多いが、本実施の
形態の構成を取れば、通信プロトコルに手を入れる必要がない。
In this embodiment, the packet monitoring unit directly monitors the network interface without going through the communication protocol stack. In other words, there is no need to modify the communication protocol. The communication protocol is often implemented as part of the computer's operation system (kernel), and in many cases it is difficult to make corrections. There is no need to put it in.
(第3の実施の形態)
次に本発明の第3の発明の実施の形態について、図面を参照して説明する。
(Third embodiment)
Next, an embodiment of the third invention of the present invention will be described with reference to the drawings.
図8は、本発明に係る受信側通信装置の第3の実施の形態の構成図である。図8を参照す
ると、本発明に係る受信側通信装置(以下、通信装置800)は、ネットワークインターフ
ェース801、通信プロトコルスタック802、パケット監視部803、ACK生成部804を含む。
FIG. 8 is a configuration diagram of the third embodiment of the receiving communication device according to the present invention. Referring to FIG. 8, a receiving side communication apparatus (hereinafter, communication apparatus 800) according to the present invention includes a
これらの手段は次のように動作する。ネットワークインターフェース801は、図1に示す
ネットワーク130と接続し、パケットの送受信を行う。通信プロトコルスタック802はパケ
ットの送受信を管理し、通信プロトコルの動作にしたがってパケットのデータを図1に示
す受信側アプリケーション122に送る。パケット監視部803は、ネットワークインターフェ
ース801を経由して送受信されるパケットを監視し、Duplicated ACKの送信を検出する。D
uplicated ACKの送信を検出するとパケット監視部803は、ACK生成部804にダミーのDuplic
atd ACKの生成を要求する。ACK生成部804は輻輳制御を発生させるために必要な個数のDup
licated ACKを生成し、ネットワークインターフェース801を通じて、図1に示す送信側端
末110に送信する。
These means operate as follows. A
Upon detecting the transmission of the uplicated ACK, the
Request generation of atd ACK. The
A licated ACK is generated and transmitted to the transmitting
次に図8の構成図、および図9のフローチャートを参照して、本実施の形態の全体の動作
について詳細に説明する。通信装置800のパケット監視部803は、ネットワークインターフ
ェース801を経由して送受信されるパケットを監視する (図9のS301)。パケット監視部803
は、送受信されるパケットからDuplicated ACKの送信を検出する(図9のS302)。Duplicate
d ACKが検出されるまで、S301、S302を繰り返す。Duplicated ACKが検出された場合、パ
ケット監視部803からダミーACK生成部804に通知が行われ、ダミーACK生成部804は、輻輳
制御及び再送制御を発生させるために必要な個数のDuplicated ACKの生成を行い、ネット
ワークインターフェース801に送信する(図9のS303)。以降、ステップS301からステップS3
03を繰り返し行う。
Next, the overall operation of the present exemplary embodiment will be described in detail with reference to the configuration diagram of FIG. 8 and the flowchart of FIG. The
Detects the transmission of Duplicated ACK from the transmitted / received packet (S302 in FIG. 9). Duplicate
d S301 and S302 are repeated until ACK is detected. When a Duplicated ACK is detected, a notification is sent from the
Repeat 03.
次に本発明の実施の形態の動作を図10のシーケンス図に示される、通信プロトコルとし
てTCP/IPとした場合の一例を基にして具体的に説明する。再送制御及び輻輳制御は、同一
シーケンス番号のDuplicated ACKを3つ受け取ったときに発生すると設定されているとす
る。
Next, the operation of the embodiment of the present invention will be specifically described based on an example in which TCP / IP is used as the communication protocol shown in the sequence diagram of FIG. It is assumed that retransmission control and congestion control are set to occur when three duplicated ACKs with the same sequence number are received.
通信装置のネットワークインターフェース801は、図1で示すネットワーク130を通じて
送信側端末110から送出されてきたシーケンス番号1のデータパケットを受信する(1001)。
通信プロトコルスタック802はデータパケットをネットワークインターフェース801から取
得し(1002)、シーケンス番号1の確認応答である[ACK 1]をネットワークインターフェー
ス801に送出する(1003)。ネットワークインターフェース801は、送信側端末110に[ACK 1]
を送信する(1005)。通信プロトコルスタックは、シーケンス番号1のパケットデータを受
信側アプリケーション122に送信する(1004)。
The
The
Is transmitted (1005). The communication protocol stack transmits the packet data with the
次にシーケンス番号2のパケットが損失(1006)、続いて送信側端末110からはシーケンス
番号3のパケットがネットワークインターフェース801に到達したとする(1007)。通信プロ
トコルスタック802はシーケンス番号3のデータパケットをネットワークインターフェース
801から取得し(1008)、まだシーケンス番号2のデータパケットを受信していないことから
、シーケンス番号1のDuplicated ACKと呼ばれる[Dup ACK 1]をネットワークインターフ
ェース801に送出する(1009)。ネットワークインターフェース801は、送信側端末110に[Du
p ACK 1]を送信する(1010)。通信プロトコルスタック802は、シーケンス番号2のデータ
パケットを受信していないことからシーケンス番号3のパケットのデータを受信側アプリ
ケーション122に送信することはしない。
Next, it is assumed that the packet with the
Since it is obtained from 801 (1008) and the data packet of
p ACK 1] is transmitted (1010). Since the
ここで、パケット監視部803は、ネットワークインターフェース801からDuplicated ACK
が送出されたこと(1009, 1010の処理)を検出すると(1011)、ACK生成部804に、Duplicated
ACKの生成を要求する(1012)。ACK生成部804は、検出したDuplicated ACKに加えて幾つ
のDuplicated ACKが送信側端末に届けば、再送制御及び輻輳制御が発生するかを算出し、
その算出した数の分だけのダミーのDuplicated ACKを生成する。ここでの例では、3つの
Duplicated ACKが届くと、再送制御及び輻輳制御が発生することから、2個のダミーのDup
licated ACKを生成し、送出することになる(1013〜1016)。
Here, the
Is detected (processing of 1009 and 1010) (1011), the
Request generation of ACK (1012). The
As many dummy duplicated ACKs as the calculated number are generated. In this example, three
When Duplicated ACK arrives, retransmission control and congestion control occur, so two dummy Dups
A licated ACK is generated and transmitted (1013 to 1016).
送信側端末110では、再送制御のトリガーとなるDuplicated ACKが到達したとき(1016)
に、シーケンス番号2のパケットが損失したことが検知され、シーケンス番号2のパケット
が再送される(1017)。また、再送制御と同時に輻輳制御も働く。ネットワークインターフ
ェース801がシーケンス番号2のパケットを受信すると、通信プロトコルスタック802はパ
ケットを取得し(1018)、これまでにシーケンス番号3までのパケットを受信完了したこと
になるため、このシーケンス番号3を付したACKを生成してネットワークインターフェース
801を通じて、送信側端末110に送出する(1021,1022)。通信プロトコルスタック802は、既
に受信完了しているシーケンス番号3までのパケットのデータを、受信側アプリケーショ
ン122に送信する(1019, 1020)。
When the sending
Then, it is detected that the packet with
Through 801, the data is transmitted to the transmitting side terminal 110 (1021, 1022). The
次に本実施の形態の効果について説明する。本実施の形態では、パケットが損失したこ
とを、パケット監視部がネットワークインターフェース部においてDuplicated ACKを監視
することで検出すると、直ちに再送制御が実施されるよう、ACK生成部が複数個のDuplica
ted ACKを追加生成し送信側端末に送信することで、従来よりも早期にロスパケットの再
送が実行される。このため、ロスパケットが再送されるまでの時間を従来よりも削減でき
る。映像や音声等を再現するアプリケーションの場合を例とすると、映像や音声を途切れ
ることなく再生することが可能となる。
Next, the effect of this embodiment will be described. In this embodiment, when the packet monitoring unit detects a duplicated ACK at the network interface unit when the packet loss unit detects that the packet has been lost, the ACK generation unit includes a plurality of Duplicate so that retransmission control is performed immediately.
By additionally generating a ted ACK and transmitting it to the transmitting terminal, retransmission of the lost packet is executed earlier than before. For this reason, the time until the lost packet is retransmitted can be reduced as compared with the prior art. Taking the case of an application that reproduces video and audio as an example, video and audio can be reproduced without interruption.
さらに本実施の形態では、Duplicated ACKの送信を促進する方向であることから、通信
プロトコルの輻輳制御を抑制しない。そのため、リアルタイム性を要求するアプリケーシ
ョンにおいて再送制御と輻輳制御を伴う通信プロトコルでデータを送受信した場合に、輻
輳制御を損なうことなく、再送制御に伴うデータを再現するまでの遅延を削減できる。
Furthermore, in this embodiment, since the transmission of Duplicated ACK is promoted, congestion control of the communication protocol is not suppressed. Therefore, when data is transmitted / received by a communication protocol that involves retransmission control and congestion control in an application that requires real-time performance, it is possible to reduce a delay until data associated with retransmission control is reproduced without impairing congestion control.
また、本実施の形態では、パケット監視部が、通信プロトコルスタックを介さずに直接
ネットワークインターフェースを監視しており、かつ新たに生成されるDuplicated ACKも
直接ネットワークインターフェースに送信されている。つまり通信プロトコルに修正を加
える必要がない。通信プロトコルは、コンピュータのオペレーションシステムの一部(カ
ーネル)として実装されていることも多く、修正を施すことが困難なケースも多いが、本
実施の形態の構成を取れば、通信プロトコルに手を入れる必要がない。
In the present embodiment, the packet monitoring unit directly monitors the network interface without going through the communication protocol stack, and a newly generated Duplicated ACK is also transmitted directly to the network interface. In other words, there is no need to modify the communication protocol. The communication protocol is often implemented as part of the computer's operation system (kernel), and in many cases it is difficult to make corrections. There is no need to put it in.
(第4の実施の形態)
次に本発明の第4の実施の形態について、図面を参照して説明する。
(Fourth embodiment)
Next, a fourth embodiment of the present invention will be described with reference to the drawings.
図11は、本発明に係る受信側通信装置の第4の実施の形態の構成図である。本発明に関
わる受信側通信装置(以下、通信装置1100)は、ネットワークインターフェース1101、通
信プロトコルスタック1102、パケット監視部1103、ダミーパケット生成部1104、ACK生成
部1105を含む。
FIG. 11 is a configuration diagram of the fourth embodiment of the receiving communication device according to the present invention. A receiving side communication apparatus (hereinafter, communication apparatus 1100) according to the present invention includes a
これらの手段は次のように動作する。ネットワークインターフェース1101は、図1に示
されるネットワーク130と接続し、パケットの送受信を行う。通信プロトコルスタック110
2はパケットの送受信を管理し、通信プロトコルの動作にしたがってパケットのデータを
図1で示される受信側アプリケーション122に送信する。パケット監視部1103は、ネットワ
ークインターフェース1101を経由して送受信されるパケットを監視し、Duplicated ACKの
送信を検出する。Duplicated ACKの送信を検出するとパケット監視部1103は、ダミーパケ
ット生成部1104及びACK生成部1105に通知を行う。ダミーパケット生成部1104は、パケッ
ト監視部1103の通知を受けると、ロスパケットのダミーパケットを生成し、ネットワーク
インターフェース1101を通じて、通信プロトコルスタック1102に送信する。ACK生成部110
5は、パケット監視部1103の通知を受けると、輻輳制御を発生させるために必要な個数のD
uplicated ACKを生成し、ネットワークインターフェース1101に送信する。
These means operate as follows. The
2 manages packet transmission / reception, and transmits packet data to the reception-
5 receives the notification from the packet monitoring unit 1103, the number of Ds required to generate congestion control.
An uplicated ACK is generated and transmitted to the
次に図11の構成図、および図12のフローチャートを参照して、本実施の形態の全体の動
作について詳細に説明する。通信装置1100のパケット監視部1103は、ネットワークインタ
ーフェース1101を経由して送受信されるパケットを監視する (図12のS401)。パケット監
視部1103は、送受信されるパケットからDuplicated ACKの送信を検出し、Duplicated ACK
が検出された場合、パケット監視部1103からダミー生成部1104及びACK生成部1105に通知
が行われる。(図12のS402)。ダミーパケット生成部1104はロスパケットのダミーパケット
を生成し、ネットワークインターフェース1101を通じて、通信プロトコルスタックに送信
する(図12のS403)。合わせてACK生成部1105は複数個のDuplicated ACKの生成を行い、ネ
ットワークインターフェース1101を通じて、送信側端末110に送信する(図12のS404)。こ
のとき、ACK生成部1105は、送信側端末110が再送制御及び輻輳制御を実行するために必要
なだけのDuplicated ACKを少なくとも生成して追加する。
Next, the overall operation of the present embodiment will be described in detail with reference to the configuration diagram of FIG. 11 and the flowchart of FIG. The packet monitoring unit 1103 of the communication device 1100 monitors packets transmitted / received via the network interface 1101 (S401 in FIG. 12). The packet monitoring unit 1103 detects the transmission of the Duplicated ACK from the transmitted / received packet, and the Duplicated ACK
Is detected from the packet monitoring unit 1103 to the
次に本発明の実施の形態の動作を図13のシーケンス図に示される、通信プロトコルとし
てTCP/IPとした場合の一例を基にして具体的に説明する。再送制御及び輻輳制御は、同一
シーケンス番号のDuplicated ACKを3つ以上、受け取ったときに発生すると設定されてい
るとする。
Next, the operation of the embodiment of the present invention will be specifically described based on an example in which TCP / IP is used as the communication protocol shown in the sequence diagram of FIG. It is assumed that retransmission control and congestion control are set to occur when three or more duplicated ACKs having the same sequence number are received.
通信装置のネットワークインターフェース1101は、図1に示す送信側端末110からシーケ
ンス番号1のデータパケットを受信する(1301)。通信プロトコルスタック1102はデータパ
ケットをネットワークインターフェース1101から取得し(1302)、シーケンス番号1の確認
応答 [ACK 1]をネットワークインターフェース1101に送出する(1303)。ネットワークイン
ターフェース1101は、送信側端末110に[ACK 1]を送信する(1305)。通信プロトコルスタッ
ク1102は、シーケンス番号1のパケットデータを図1に示す受信側アプリケーション112に
送信する(1304)。
The
次にシーケンス番号2のパケットが損失し、続いて送信側端末110からはシーケンス番号
3のパケットがネットワークインターフェース1101に到達したとする(1306,1307)。通信プ
ロトコルスタック1102はシーケンス番号3のデータパケットをネットワークインターフェ
ース1101から取得し(1308)、まだシーケンス番号2のデータパケットを受信していないこ
とから、シーケンス番号1のDuplicated ACK である[Dup ACK 1]をネットワークインター
フェース1101に送出する(1309)。ネットワークインターフェース1101は、送信側端末110
に[Dup ACK 1]を送信する(1310)。通信プロトコルスタック1102は、シーケンス番号2のデ
ータパケットを受信していないことからシーケンス番号3のパケットデータをアプリケー
ションに送信することはしない。
Next, the packet with
It is assumed that the third packet reaches the network interface 1101 (1306, 1307). The
[Dup ACK 1] is transmitted to (1310). Since the
ここで、パケット監視部1103は、ネットワークインターフェース1101からDuplicated A
CKが送出されたこと(1309,1310の処理)を検出すると(1311)、ダミーパケット生成部1104
にダミーパケットの生成、ACK生成部1105に複数個のDuplicated ACKの生成を要求する(1
312,1313)。ダミーパケット生成部1104は、シーケンス番号2のロスパケットのダミーパ
ケットを生成し、ネットワークインターフェース1101を通じて、通信プロトコルスタック
1102に送信する(1318)。
Here, the packet monitoring unit 1103 receives the duplicated A from the
When it is detected that CK has been sent (processes 1309 and 1310) (1311),
Request generation of a dummy packet, and request the
312,1313). The dummy
It is transmitted to 1102 (1318).
通信プロトコルスタック1102は、シーケンス番号2のパケットが受信できたと判断し(13
19)、シーケンス番号2とシーケンス番号3のパケットのデータを受信側アプリケーション1
22に送信する(1320, 1321)。ダミーパケットの生成直後、または直前にACK生成部1105は
、検出したDuplicated ACKに加え、幾つのDuplicated ACKが送信側端末に届けば、再送制
御及び輻輳制御が発生するかを算出し、その算出した数の分だけのDuplicated ACKを生成
する(1314,1316)。ここでの例では、3つのDuplicated ACKが届くと、再送制御が発生す
ることから、2個のDuplicated ACKを追加生成して、ネットワークインターフェース1101
に送出することになる(1314〜1317)。
19) Receives data from packets with
Sent to 22 (1320, 1321). Immediately before or immediately before the generation of the dummy packet, the
(1314 to 1317).
一方、通信プロトコルスタック1102はダミーパケットを取得すると(1319)、これまでに
シーケンス番号3までのパケットを受信完了したことになるため、このシーケンス番号3を
付した[ACK 3]を生成してネットワークインターフェース1101に送出する(1323)。
On the other hand, when the
送信側端末110では、再送制御のトリガーとなる所定の個数のDuplicated ACK、ここで
の例では3個のDuplicated ACKが到達したとき(1317)に、シーケンス番号2のパケットが損
失したことが検知され、シーケンス番号2のパケットが再送される(1322)。送信側では、
再送制御と同時に輻輳制御も実行される。ただし、この時点ではシーケンス番号3の[ACK
3]は送信側に届いてなかったものとして説明を行っている。
The transmitting
Congestion control is executed simultaneously with retransmission control. However, at this point, [ACK of
[3] explains that it did not reach the sender.
ネットワークインターフェース1101が再送されたシーケンス番号2のパケットを受信す
ると(1322)、通信プロトコルスタック1102はシーケンス番号2のパケットを取得するが(13
25)、これまでにシーケンス番号3までのパケットを受信完了したことになっているため、
シーケンス番号3のパケットまで受信したことを示す[ACK 3]を生成してネットワークイン
ターフェース1101に送出する(1326)。また、このとき、通信プロトコルスタック1102は、
既に受信完了していると判断した1325で受信したシーケンス番号2のパケットを廃棄する
。
When the
25) Since it is supposed that the packet up to sequence
[ACK 3] indicating that the packet up to sequence
The packet of
次に本実施の形態の効果について説明する。本実施の形態では、パケットが損失したこ
とを、パケット監視部がネットワークインターフェース部においてDuplicated ACKを監視
することで検出すると、直ちに再送制御が実施されるよう、ACK生成部が複数個のDuplica
ted ACKを生成し、また、送信側端末に送信するのと同時にダミーパケット生成部がロス
パケットのダミーパケットを生成する。そのため、ロスパケットの再送を待たずに後続の
受信済みのパケットのデータを受信側アプリケーションが受信することができるため、第
3の実施の形態よりもデータの再現までの遅延を削減することができる。より具体的に説
明すれば、実施の形態3に記載したやり方では、図10の1019、1020のタイミングでしか受
信側アプリケーションがパケットのデータを受信できなかったのが、1320、1321のタイミ
ングでデータを受信できるようになり、実施の形態3と比較し、遅延を削減することが可
能となる。
Next, the effect of this embodiment will be described. In this embodiment, when the packet monitoring unit detects a duplicated ACK at the network interface unit when the packet loss unit detects that the packet has been lost, the ACK generation unit includes a plurality of Duplicate so that retransmission control is performed immediately.
A dummy packet generator generates a dummy packet of a lost packet at the same time as generating ted ACK and transmitting it to the transmitting terminal. Therefore, the receiving application can receive the data of the subsequent received packet without waiting for the retransmission of the lost packet.
The delay until data reproduction can be reduced as compared with the third embodiment. More specifically, in the method described in the third embodiment, the receiving side application can receive the packet data only at the
(第5の実施の形態)
次に本発明の第5の実施の形態について、図面を参照して説明する。
(Fifth embodiment)
Next, a fifth embodiment of the present invention will be described with reference to the drawings.
本発明に係る受信側通信装置の第5の実施の形態の構成は、図11に示される第4の実施の
形態の構成と同じである。本発明に関わる受信側通信装置(以下、通信装置1100)は、ネ
ットワークインターフェース1101、通信プロトコルスタック1102、パケット監視部1103、
ダミーパケット生成部1104、ACK生成部1105を含む。
The configuration of the fifth embodiment of the receiving communication apparatus according to the present invention is the same as the configuration of the fourth embodiment shown in FIG. A receiving side communication device (hereinafter referred to as a communication device 1100) according to the present invention includes a
A dummy
これらの手段は次のように動作する。ネットワークインターフェース1101は、図1に示
すネットワーク130と接続し、パケットの送受信を行う。通信プロトコルスタック1102は
パケットの送受信を管理する。パケット監視部1103は、ネットワークインターフェース11
01を経由して送受信されるパケットを監視し、パケットのシーケンス番号を監視する。パ
ケットのシーケンス番号の順序性が崩れたとき、つまりパケットのシーケンス番号が1つ
順に増加しておらず、シーケンス番号が連続していない、または大きいシーケンス番号の
パケットが先に到着する、などが観測された場合、パケット監視部1103は、ダミーパケッ
ト生成部1104に本来受信すべきシーケンス番号のダミーパケットの生成を要求する。ダミ
ーパケット生成部1104は、ダミーパケットを生成し、ネットワークインターフェース1101
を通じて、通信プロトコルスタック1102に送信する。
These means operate as follows. The
Monitor packets sent and received via 01 and monitor packet sequence numbers. Observe when the sequence number of the packet is broken, that is, the sequence number of the packet is not increasing one by one, the sequence number is not continuous, or the packet with the larger sequence number arrives first If the packet is received, the packet monitoring unit 1103 requests the dummy
To the
また、パケット監視部1103は順序性が崩れた、つまり、正しい順番で届かなかったパケ
ットが、その次に連続的に届くパケット、例えば、通信プロトコルがTCPであれば、輻輳
制御及び再送制御の判断に必要となるDuplicated ACKの個数、一般的には3個以上、が必
要になるため、既に到着したパケットに加え、その次に到着する2個のパケットに、まだ
到着していないパケットが含まれるかどうかを監視する。もし、該当するパケットが含ま
れていなければ、パケット監視部1103は、パケット消失が発生したと判断し、ACK生成部1
105に複数個のDuplicated ACKの生成を要求する。
In addition, the packet monitoring unit 1103 loses the order, that is, the packet that has not arrived in the correct order is the packet that continuously arrives next, for example, if the communication protocol is TCP, the judgment of congestion control and retransmission control Since the number of duplicated ACKs required for the network is generally 3 or more, in addition to the packets that have already arrived, the next two packets that arrive will contain packets that have not yet arrived. Monitor whether or not. If the corresponding packet is not included, the packet monitoring unit 1103 determines that packet loss has occurred, and the
Request 105 to generate multiple duplicated ACKs.
ACK生成部1105は、送信側端末に輻輳制御を発生させるために必要となるDuplicated AC
Kを複数個、標準的なTCPの実装では、3個以上のDuplicated ACKを生成し、送信側端末に
送信する。送信側端末は3個以上のDuplicated ACKを受信するため、再送制御及び輻輳制
御を実施する。
The
In the standard TCP implementation, multiple Ks are generated, and three or more Duplicated ACKs are generated and transmitted to the transmitting terminal. The transmitting terminal performs retransmission control and congestion control in order to receive three or more duplicated ACKs.
次に、本実施の形態の全体の動作について、図11の構成図および図14のフローチャート
を参照して詳細に説明する。
Next, the overall operation of the present embodiment will be described in detail with reference to the configuration diagram of FIG. 11 and the flowchart of FIG.
パケット監視部1103は、ネットワークインターフェース1101を経由して送受信されるパ
ケットのシーケンス番号を監視する(図14のS501)。パケットのシーケンス番号の順序性が
崩れた場合、例えば、パケットのシーケンス番号が1つ順に増加しないで到着する、また
は大きいシーケンス番号のパケットが先に到着する、などが観測された場合、パケット監
視部1103はダミーパケット生成部1104にダミーパケットの生成を要求し(図14のS502)、ダ
ミーパケット生成部1104はS502で未到着パケット、つまり、本来シーケンスの順序に沿っ
て受信されるべきパケットで受信できていないパケット、と観測されたシーケンス番号の
ダミーパケットを、ネットワークインターフェース1101を通じて、通信プロトコルスタッ
ク1102に送信する(図14のS503)。
The packet monitoring unit 1103 monitors the sequence numbers of packets transmitted / received via the network interface 1101 (S501 in FIG. 14). When the order of the packet sequence numbers is broken, for example, when it is observed that the packet sequence numbers arrive without increasing one by one or the packet with the larger sequence number arrives first, the packet monitoring unit 1103 requests the dummy
パケット監視部1103は、未到着パケットが次に連続して到着するパケット、例えば、TC
Pであれば、シーケンス番号通りにパケットが到着しない可能性があるため、TCPでは複数
回、一般には3回のパケットを受信する間にシーケンス通りのパケットが到着することが
期待されており、その間にパケットが到着しない場合のみ、再送制御及び輻輳制御を行う
ため、既に到着したパケットに加え、その次に到着する2個のパケット、つまり、連続し
て受信する3個のパケットに含まれるかどうかを監視する(図14のS504)。
The packet monitoring unit 1103 may receive a packet that arrives in succession next to an unarrived packet, for example, a TC
If it is P, there is a possibility that packets will not arrive according to the sequence number, so in TCP, it is expected that packets in sequence will arrive while receiving multiple packets, generally three times. In order to perform retransmission control and congestion control only when the packet does not arrive at the packet, whether it is included in the two packets that arrive next, that is, the three packets that are received consecutively, in addition to the packet that has already arrived Is monitored (S504 in FIG. 14).
該当するパケットが含まれない場合、パケット監視部1103は、ACK生成部1105にDuplica
ted ACKの生成を要求し、ACK生成部1105はその時点で最後に受信したパケットが損失した
と仮定し、その旨を示す複数個のDuplicated ACK、例えば、TCPの場合、再送制御及び輻
輳制御が実施される3個以上のDuplicated ACK、を生成し、送信者側端末110に送信する(
図14のS505)。以降、図14のステップS501からS505を繰り返す。また、図14のステップS50
2でパケットのシーケンス番号の順序性が保たれていた場合も、ステップS501からS505を
繰り返す。
If the corresponding packet is not included, the packet monitoring unit 1103 sends a Duplicate to the
ted ACK generation is requested, and the
(S505 in FIG. 14). Thereafter, steps S501 to S505 in FIG. 14 are repeated. Also, step S50 in FIG.
If the order of the packet sequence numbers is maintained in
次に本発明の実施の形態の動作を図15のシーケンス図に示される、通信プロトコルをTC
P/IPとした場合の一例を基にして具体的に説明する。輻輳制御及び再送制御は、同一シー
ケンス番号のDuplicated ACKを3つ受け取ったときに発生すると設定されているとする。
Next, the operation of the embodiment of the present invention is shown in the sequence diagram of FIG.
A specific description will be given based on an example in the case of P / IP. It is assumed that congestion control and retransmission control are set to occur when three duplicated ACKs with the same sequence number are received.
ネットワークインターフェース1101は、送信側端末110から送信されたシーケンス番号1
のパケットを受信する(1501)。ネットワークインターフェース1101が受信したデータは通
信プロトコルスタック602に渡され(1502)、パケット監視部1103は、1501で受信したパケ
ットをスヌープし、シーケンス番号を確認する(1503)。通信プロトコルスタック1102は、
1502で受信したデータを受信側アプリケーション122へ渡す (1504)。
The
Is received (1501). The data received by the
The data received in 1502 is passed to the receiving application 122 (1504).
通信プロトコルスタック1102はデータを受信したことを意味するACKパケット[ACK 1]を
、ネットワークインターフェース1101を通じて、送信側端末に通知する(1505,1506)。本
シーケンスで示す例においては、次に送信側端末110から送信されるシーケンス番号2のパ
ケットが伝送中に何らかの原因により損失したと仮定する(1507)。送信側端末110は続け
てシーケンス番号3のパケットを送信する(1508)。ネットワークインターフェース1101は
シーケンス番号3のパケットを受信し、通信プロトコルスタック1102に送信する(1509)。
通信プロトコルスタック1102では、シーケンス番号2のパケットを受信していないため、
受信側アプリケーション122にパケットを渡すことは出来ず、同時にシーケンス番号2のデ
ータが届いていないことを通知するために[Dup ACK 1]のパケットを送信側端末110に通知
する(1511, 1512)。
The
A packet of [Dup ACK 1] is notified to the transmitting
パケット監視部1103は、ネットワークインターフェース1101が受信したシーケンス番号
3のパケットをスヌープし、シーケンス番号のチェックを行う(1510)。パケット監視部110
3はシーケンス番号の欠落を検出し、欠落したシーケンス番号2を記憶しておくと同時に、
ダミーパケット生成部1104にダミーパケットの生成を要求する(1513)。ダミーパケット生
成部1104はシーケンス番号2のパケットに該当するダミーパケットを生成し、ネットワー
クインターフェース1101を通じて、通信プロトコルスタック1102に送信する(1514,1515)
。
The packet monitoring unit 1103 receives the sequence number received by the
3 detects the missing sequence number and stores the missing
The dummy
.
通信プロトコルスタック1102はシーケンス番号2のパケットを受信したと判断したこと
から、シーケンス番号2及び3のデータを受信側アプリケーション122に渡す(1516,1517)。
通信プロトコルスタック1102は、データを受信したことを示す[ACK 3]を送信側端末に送
信する(1518,1519)。続けて、送信側端末はシーケンス番号4のパケットを送信する(1520)
。
Since the
The
.
通信プロトコルスタック1102はシーケンス番号4のデータをネットワークインターフェ
ース1101から受け取り、受信側アプリケーション122に渡し(1521,1523)、シーケンス番号
4のパケットに対する確認応答である[ACK 4]を送信側端末110に送信する(1524,1525)。パ
ケット監視部1103は、ネットワークインターフェース1101のパケットをスヌープし、ネッ
トワークインターフェース1101を通じて得たパケットのシーケンス番号が4であることか
ら、シーケンス番号2のパケットが届いていないことを確認する(1522)。
The
[ACK 4], which is an acknowledgment response to the packet No. 4, is transmitted to the transmitting terminal 110 (1524, 1525). The packet monitoring unit 1103 snoops the packet of the
送信側端末がシーケンス番号5のパケットを送信する。通信プロトコルスタック1102は
通常通りの振る舞いを行う(1527,1529,1531)。パケット監視部1103はネットワークインタ
ーフェース1101のパケットをスヌープし、ネットワークインターフェース1101を通じて得
たパケットのシーケンス番号が5であることからシーケンス番号2のパケットが届いていな
いことを確認し、連続して受信する3個のパケットにシーケンス番号2のパケットが含まれ
ていないことから、パケットの損失が発生したと判断する(1528)。パケット監視部1103は
ACK生成部1105にACKの生成を要求する(1530)。ACK生成部1105は、シーケンス番号が5のパ
ケットがロスしたとし、その旨を示す[ACK 5]を輻輳制御が発生するために必要な個数、
本シーケンスではTCPの実装で多く採用されている3個、を生成し、送信側端末に送信する
(1533,1534,1535,1536,1537,1538)。送信側端末はDuplicated ACKを3個以上受信したため
、パケット損失が発生したと判断し、輻輳制御を実施し、データ送信を継続する。
The transmitting terminal transmits a packet with
The
In this sequence, three that are often used in TCP implementation are generated and sent to the sending terminal.
(1533,1534,1535,1536,1537,1538). Since the transmitting terminal receives three or more Duplicated ACKs, it determines that a packet loss has occurred, performs congestion control, and continues data transmission.
次に、本実施の形態によるさらなる効果について説明する。本実施の形態では、パケッ
トのシーケンス番号の順序性が崩れた場合でも、その次に連続的に届くパケットのシーケ
ンス番号を確認し、動作するため、パケットの到着順序が狂った場合でも輻輳制御及び再
送制御の実施を抑制することが出来る。
Next, the further effect by this Embodiment is demonstrated. In the present embodiment, even if the sequence number of the packet sequence number is broken, the sequence number of the next consecutively received packet is confirmed and operated, so that even if the packet arrival order is out of order, congestion control and Implementation of retransmission control can be suppressed.
(第6の実施の形態)
次に本発明の第6の実施の形態について、図面を参照して説明する。
(Sixth embodiment)
Next, a sixth embodiment of the present invention will be described with reference to the drawings.
図16は、本発明に係る受信側通信装置の第6の実施の形態の構成図である。本発明に関
わる受信側通信装置(以下、通信装置1600)は、ネットワークインターフェース1601、通
信プロトコルスタック1602、パケット監視部1603、再送可否判断部1604、ダミーパケット
生成部1605、ACK生成部1606、を含む。これらの手段は次のように動作する。
FIG. 16 is a configuration diagram of a sixth embodiment of a receiving communication device according to the present invention. A receiving-side communication device (hereinafter referred to as communication device 1600) according to the present invention includes a
ネットワークインターフェース1601は、図1に示すネットワーク130と接続し、パケット
の送受信を行う。通信プロトコルスタック1602はパケットの送受信を管理する。パケット
監視部1603は、ネットワークインターフェース1601を経由して送受信されるパケットを監
視し、パケットのシーケンス番号を監視する。パケットのシーケンス番号の順序性が崩れ
たとき、つまりパケットのシーケンス番号が1つ順に増加しないで、シーケンス番号が連
続していない、または大きいシーケンス番号のパケットが先に到着する、などが観測され
た場合、パケット監視部1603は、再送可否判断部1604に通知する。再送可否判断部1604は
、その内部に再送可否の必要性を判断するフラグ、再送可否判断フラグを有しており、パ
ケット監視部1603からの通知を受けた際、再送可否判断フラグがセットされている場合、
ダミーパケット生成部1605に通知を行い、再送可否判断フラグがセットされていない場合
、ACK生成部1606に通知を行う。ダミーパケット生成部1605は、再送可否判断部1604から
の通知を受け、ダミーパケットを生成し、ネットワークインターフェース1601を通じて、
通信プロトコルスタック1102に送信する。ACK生成部1606は、再送可否判断部1604からの
通知を受け、Duplicated ACKを複数個生成し、ネットワークインターフェース1601を通じ
て、送信側端末に送信する。
A
The dummy packet generation unit 1605 is notified, and when the retransmission possibility determination flag is not set, the
Transmit to the
次に、本実施の形態の全体の動作について、図16の構成図および図17のフローチャート
を参照して詳細に説明する。
Next, the overall operation of the present embodiment will be described in detail with reference to the configuration diagram of FIG. 16 and the flowchart of FIG.
パケット監視部1603は、ネットワークインターフェース1601を経由して送受信されるパ
ケットのシーケンス番号を監視する(図17のS601)。
The packet monitoring unit 1603 monitors the sequence numbers of packets transmitted and received via the network interface 1601 (S601 in FIG. 17).
パケットのシーケンス番号の順序性が崩れた場合、例えば、パケットのシーケンス番号
が1つ順に増加しないで到着する、または大きいシーケンス番号のパケットが先に到着す
る、などが観測された場合、パケット監視部1603は再送可否判断部1604に通知する(図17
のS602)。また、順番通りに届いている場合、次のパケットの到着に備える。
When the order of the packet sequence numbers is broken, for example, when it is observed that the packet sequence numbers arrive without increasing one by one or the packet with the larger sequence number arrives first, the packet monitoring unit 1603 notifies the retransmission permission determination unit 1604 (FIG. 17).
S602). If the packets arrive in order, they are prepared for the arrival of the next packet.
パケット監視部1603の通知を受けた再送可否判断部1604は、自身が有する再送可否判断
フラグを確認し、再送可否判断フラグがセットされていない場合、ダミーパケット生成部
1605及びACK生成部1606に通知し、再送可否判断フラグがセットされている場合は、ダミ
ーパケット生成部1605にのみ通知を行う(図17のS603)。
Upon receiving the notification from the packet monitoring unit 1603, the retransmission permission determination unit 1604 checks its own retransmission permission determination flag, and if the retransmission permission determination flag is not set, the dummy packet generation unit
1605 and the
再送可否判断部1604からの通知を受けたACK生成部1606は、輻輳制御及び再送制御の判
断に必要となるDuplicated ACKの個数、一般的なTCPであれば、3個以上のDuplicated ACK
パケットを生成し、ネットワークインターフェース1601を通じて、送信側端末110に通知
し、また、再送可否判断フラグのセットを行う(図17のS604)。
The
A packet is generated, notified to the
再送可否判断部1605からの通知を受けたダミーパケット生成部1605は、本来受信すべき
シーケンス番号を有するダミーパケットを生成し、ネットワークインターフェース1601を
通じて、通信プロトコルスタック1602に送信する。以降、S601からS605を繰り返す。
The dummy packet generation unit 1605 that has received the notification from the retransmission permission determination unit 1605 generates a dummy packet having a sequence number that should be originally received, and transmits the dummy packet to the
再送可否判断フラグには再送可否判断部1604により、有効期間が設定される。有効期間
については、TCP/IPコネクションの形成時や事前に測定されるRTT(Round Trip Time:送
信側端末から受信側端末へのパケット送信に要する時間)等のパラメータから算出される
数値、例えば、測定されたRTTの3倍の時間等、を採用することなどができる。また、再送
可否判断フラグは、再送可否判断部1604がダミーパケット生成部1605及びACK生成部1606
に通知をする際に設定され、有効期間が経過すると、再送可否判断フラグはリセット(セ
ットされていない状態に)されるとする。
The validity period is set by the retransmission permission determination unit 1604 in the retransmission permission determination flag. The valid period is a numerical value calculated from parameters such as RTT (Round Trip Time: time required for packet transmission from the transmitting terminal to the receiving terminal) measured at the time of TCP / IP connection formation or in advance, for example, It is possible to employ a time that is three times the measured RTT. Further, the retransmission permission determination flag is determined by the retransmission permission determination unit 1604 by the dummy packet generation unit 1605 and the
It is set at the time of notification, and when the valid period elapses, it is assumed that the retransmission permission determination flag is reset (in a state where it is not set).
次に本発明の実施の形態の動作を図18のシーケンス図に示される、通信プロトコルをTC
P/IPとした場合の一例を基にして具体的に説明する。輻輳制御及び再送制御は、同一シー
ケンス番号のDuplicated ACKを3つ受け取ったときに発生すると設定されているとする。
Next, the operation of the embodiment of the present invention is shown in the sequence diagram of FIG.
A specific description will be given based on an example in the case of P / IP. It is assumed that congestion control and retransmission control are set to occur when three duplicated ACKs with the same sequence number are received.
ネットワークインターフェース1601は、図1に示す送信側端末110から送信されたシーケ
ンス番号1のパケットを受信する(1801)。ネットワークインターフェース1601が受信した
データは通信プロトコルスタック1602に渡され(1802)、パケット監視部1603は、1801で受
信したパケットをスヌープし、シーケンス番号を確認する(1803)。
The
通信プロトコルスタック1602は、1802で受信したデータを図1に示す受信側アプリケー
ション122へ渡す (1804)。 通信プロトコルスタック1602はデータを受信したことを意味
するACKパケット、ここではシーケンス番号1のパケットを受信したことを意味する[ACK 1
]を、ネットワークインターフェース1601を通じて、送信側端末110に通知する(1805,1806
)。
The
] To the transmitting
).
本シーケンスでは、次に送信側端末110から送信されるシーケンス番号2のパケットが伝
送中に何らかの原因により損失したと仮定する(1807)。送信側端末110は続けてシーケン
ス番号3のパケットを送信する(1808)。通信プロトコルスタック1602はネットワークイン
ターフェース1601からシーケンス番号3のデータを受信するが、シーケンス番号2のデータ
を受信できていないため、その旨を通知するパケット、つまり、Duplicated ACKと呼ばれ
るシーケンス番号1のデータまでしか受け取っていないことを示す[Dup ACK 1]を送信側端
末110に送信する(1809,1811,1812)。
In this sequence, it is assumed that the packet of
パケット監視部1603は、ネットワークインターフェース1601を監視し、シーケンス番号
2のパケットが損失していることを検出する(1810)。パケット監視部1603は、再送可否判
断部1604に通知を行う(1813)。再送可否判断部1604は、本シーケンスでは当初、再送可否
判断フラグがセットされていないことを想定するとし、再送可否判断フラグがセットされ
ていないことから、ACK生成部1606及びダミーパケット生成部1605に通知を行う(1814,181
5)。
The packet monitoring unit 1603 monitors the
It detects that the second packet is lost (1810). The packet monitoring unit 1603 notifies the retransmission permission determination unit 1604 (1813). In this sequence, the retransmission possibility determination unit 1604 assumes that the retransmission possibility determination flag is not initially set. Since the retransmission possibility determination flag is not set, the
Five).
ACK生成部1606は、複数個、本シーケンスでは一般的なTCPの実装で採用されている3個
以上のDuplicated ACKを生成し、送信側端末110に送信する(1816,1817,1818,1819,1820,1
821)。また、ダミーパケット生成部1605は、未到着のシーケンス番号2のパケットに代わ
るダミーパケットを生成し、ネットワークインターフェース1601を通じて、通信プロトコ
ルスタック1602に通知する(1822,1823)。通信プロトコルスタック1602は、シーケンス番
号2のデータを受信したことから、シーケンス番号2及び3のデータを受信側アプリケーシ
ョン122に送信し(1824,1825)、シーケンス番号3までのデータを受信したことを通知する
ため、[Dup ACK 3]のパケットを生成し、送信側端末110に通知する(1826,1827)。送信側
端末110は、Duplicated ACKを3個以上連続で受信したため、輻輳制御及び再送制御を実行
し、データ送信を継続する(1828,1829,1830,1831,1832)
。
The
821). Also, the dummy packet generation unit 1605 generates a dummy packet that replaces the packet of
.
ここで、送信側端末が送信したシーケンス番号4のパケットが損失したとする(1833)。
送信側端末110はシーケンス番号5のパケットを送信する(1834)。パケット監視部1603はシ
ーケンス番号4のパケットが損失していることを検出し(1836)、再送可否判断部1604に通
知する(1837)。再送可否判断部1604は再送可否判断フラグを確認し、再送可否判断フラグ
がセットされていることから、ダミーパケット生成部1605にのみダミーパケットの生成を
要求する(1838)。ダミーパケット生成部1605は、未到着のシーケンス番号4のパケットに
代わるダミーパケットを生成し、ネットワークインターフェース1601を通じて、通信プロ
トコルスタック1602に通知する(1839,1840)。通信プロトコルスタック1602は、シーケン
ス番号4及び5のデータを受信し(1841,1842)、シーケンス番号5までのデータを受信したこ
とを通知するため、[ACK 5]のパケットを生成し、送信側端末110に通知する(1843,1844)
。
Here, it is assumed that the packet of
The transmitting
.
本実施の形態によるさらなる効果について説明する。パケットロスが断続的に発生する
場合、パケットの欠落の度にDuplicated ACKを生成すると、輻輳制御が連続して発生する
ため、TCPとしてのパフォーマンスが大きく劣化してしまうが、本実施の形態のように、
本来、Duplicated ACKが複数回送信されるのに要する時間、つまり、一般的なTCPではRTT
の3倍の時間において、断続的に発生するパケットロスに関しては、Duplicated ACKの送
信を抑制することで、輻輳制御の実施回数を低く抑え、TCPの大きなパフォーマンスの劣
化を防止することが可能となる。
The further effect by this Embodiment is demonstrated. When packet loss occurs intermittently, if duplicated ACK is generated every time a packet is lost, congestion control will occur continuously, so the performance as TCP will be greatly degraded. In addition,
Originally, the time required for duplicated ACK to be sent multiple times, that is, RTT in general TCP
For packet loss that occurs intermittently in three times the time, by suppressing the transmission of Duplicated ACK, it is possible to keep the number of times of congestion control low and to prevent the deterioration of TCP performance. .
(第7の実施の形態)
次に本発明の第7の実施の形態について、図面を参照して説明する。
(Seventh embodiment)
Next, a seventh embodiment of the present invention will be described with reference to the drawings.
図19は、本発明に係る通信装置の第7の実施の形態の構成図である。本発明に関わる送
信側通信装置1900は、ネットワークインターフェース1901、通信プロトコルスタック1902
、パケット監視部1903、ACK生成部1904を含む。第1の実施の形態から第6の実施の形態
とは異なり、これらの手段はデータを送信する側の送信側通信装置として機能する。その
動作は以下に示すようになる。
FIG. 19 is a configuration diagram of a seventh embodiment of a communication apparatus according to the present invention. A transmission side communication device 1900 related to the present invention includes a
A packet monitoring unit 1903 and an ACK generating unit 1904. Unlike the first to sixth embodiments, these means function as a transmission side communication device on the data transmission side. The operation is as follows.
ネットワークインターフェース1901は、図1に示すネットワーク130と接続し、パケット
の送受信を行う。通信プロトコルスタック1902は、図1に示す送信側アプリケーション11
2から、ネットワークインタフェース1901を通じて行われる、図1に示す受信側端末120へ
のパケットの送信を管理する。パケット監視部1903は、ネットワークインターフェース19
01を経由して送受信されるパケットを監視し、Duplicated ACKの受信を検出する。Duplic
ated ACKの受信を検出すると、パケット監視部1903は、ACK生成部1904にDuplicated ACK
の生成を要求する。ACK生成部1904は輻輳制御が発生するために必要な個数のDuplicated
ACKを生成し、ネットワークインターフェース1901を通じて、通信プロトコルスタック190
2に送信する。
A
2 manages the transmission of packets to the receiving
Monitors packets sent and received via 01 and detects reception of Duplicated ACK. Duplic
Upon detecting the reception of the ated ACK, the packet monitoring unit 1903 sends the duplicated ACK to the ACK generating unit 1904.
Request generation of. The ACK generation unit 1904 has as many duplicated numbers as necessary for congestion control to occur.
ACK is generated and the communication protocol stack 190 is transmitted through the
Send to 2.
次に、本実施の形態の全体の動作について図20のフローチャートを参照して詳細に説明
する。
Next, the overall operation of the present embodiment will be described in detail with reference to the flowchart of FIG.
パケット監視部1903は、ネットワークインターフェース1901を経由して送受信されるパ
ケットのシーケンス番号を監視する(S701)。パケット監視部1903は、Duplicated ACKの受
信を検出すると、ACK生成部1904に通知を行う(S702)。ACK生成部1904は、複数個、例えば
、一般的なTCP/IPでは、3個以上のDuplicated ACKを受信することで、輻輳制御及び再送
制御が実施されるため、既に受信したDuplicated ACKを差し引いた2個以上、のDuplicate
d ACKを生成し、ネットワークインターフェース1901を通じて、通信プロトコルスタック1
902に送信する(S703)。以降、S701からS703を繰り返す。S702において、Duplicated ACK
が検出されなかった場合、パケット監視部1903は、次のパケットの到着に備える。
The packet monitoring unit 1903 monitors the sequence numbers of packets transmitted and received via the network interface 1901 (S701). When the packet monitoring unit 1903 detects reception of the Duplicated ACK, the packet monitoring unit 1903 notifies the ACK generation unit 1904 (S702). The ACK generation unit 1904 performs congestion control and retransmission control by receiving a plurality of, for example, three or more Duplicated ACKs in general TCP / IP, and therefore subtracts the already received Duplicated ACKs. Duplicate of 2 or more
d Generate ACK, and through the
It transmits to 902 (S703). Thereafter, S701 to S703 are repeated. In S702, Duplicated ACK
Is not detected, the packet monitoring unit 1903 prepares for the arrival of the next packet.
次に本発明の実施の形態の動作を図21のシーケンス図に示される、通信プロトコルをTC
P/IPとした場合の一例を基にして具体的に説明する。輻輳制御及び再送制御は、同一シー
ケンス番号のDuplicated ACKを3個以上、受け取ったときに発生すると設定されていると
する。
Next, the operation of the embodiment of the present invention is shown in the sequence diagram of FIG.
A specific description will be given based on an example in the case of P / IP. It is assumed that congestion control and retransmission control are set to occur when three or more duplicated ACKs with the same sequence number are received.
送信側の通信プロトコルスタック1902はネットワークインターフェース1901を通じて、
受信側端末120へシーケンス番号1のデータを送信する(2101,2102)。受信側端末はパケッ
トを受信したことを表す確認通知[ACK 1]を送信する(2103)。通信プロトコルスタック190
2はネットワークインターフェース1901を通じて、受信側端末120の確認通知を受信する(2
104)。パケット監視部1903は、ネットワークインターフェース1901を通じて、受信パケッ
トの監視を行い、シーケンス番号1を受信した旨を示す確認応答[ACK 1]の受信を確認する
(2105)。
The communication protocol stack 1902 on the sending side is sent through the
Data of
2 receives the confirmation notification of the receiving
104). The packet monitoring unit 1903 monitors the received packet through the
(2105).
通信プロトコルスタック1902が送信したシーケンス番号2のパケットがネットワーク伝
送中に損失したとする(2106, 2107)。通信プロトコルスタック1902はシーケンス番号3の
パケットを続いて送信する(2108, 2109)。受信側端末120はシーケンス番号2のパケットを
受信できていないため、確認通知としてシーケンス番号1のDuplicated ACK([Dup ACK 1]
)を送信する(2110)。通信プロトコルスタック1902は、ネットワークインターフェース19
01を通じて、確認通知[Dup ACK 1]を受信する(2111)。パケット監視部1903は、ネットワ
ークインターフェース1901を通じて、確認通知 [Dup ACK 1]の受信を確認し、2105で受信
した確認通知と同一であることから、パケットの損失を疑い、ACK生成部1904に通知を行
い(2112, 2113)、シーケンス番号1のACKの生成を指示する。
Assume that the packet of
) Is transmitted (2110). The communication protocol stack 1902 is the network interface 19
A confirmation notification [Dup ACK 1] is received through 01 (2111). The packet monitoring unit 1903 confirms reception of the confirmation notification [Dup ACK 1] through the
通知を受け取ったACK生成部1904は、Duplicated ACKを複数個、本シーケンスでは、2個
以上(一般的なTCP/IPでは、3個以上のDuplicated ACKを受信することで、輻輳制御及び再
送制御が実施されるため、既に受信したDuplicated ACKを差し引いた2個以上)のシーケン
ス番号1までしか受け取っていない旨を示すDuplicated ACK [ACK 1]を生成し、ネットワ
ークインターフェース1901を通じて、通信プロトコルスタック1902に送信する(2114,2115
,2116,2117)。
Upon receiving the notification, the ACK generation unit 1904 receives a plurality of duplicated ACKs, two or more in this sequence (in general TCP / IP, congestion control and retransmission control can be performed by receiving three or more duplicated ACKs. Generated Duplicated ACK [ACK 1] indicating that
, 2116, 2117).
通信プロトコルスタック1902は、シーケンス番号1のDuplicated ACKを3個以上受信し
たため、輻輳制御を行い、また、同時にシーケンス番号2のパケットを再送する。受信側
端末120はシーケンス番号3までのデータを受信したことを表す確認通知 [ACK 3]を送信す
る(2120,2121)。
Since the communication protocol stack 1902 receives three or more Duplicated ACKs of
本実施の形態による効果について説明する。送信側において、Duplicated ACKの受信が
検出された際に、輻輳制御及び再送制御の実施に必要な複数個のDuplicated ACKを生成し
、輻輳制御及び再送制御を行うことで、従来よりも早期にロスパケットの再送が行われる
ため、映像や音声等を再現するアプリケーションの場合を例とすると、映像や音声を途切
れることなく再生することが可能となる。
The effect by this Embodiment is demonstrated. When receiving a duplicated ACK on the transmitting side, a plurality of duplicated ACKs necessary for implementing congestion control and retransmission control are generated, and congestion control and retransmission control are performed, so that loss can be achieved earlier than before. Since packets are retransmitted, for example, in the case of an application that reproduces video and audio, it is possible to reproduce video and audio without interruption.
さらに、本実施の形態では、Duplicated ACKの送信を促進する方向であることから、通
信プロトコルの輻輳制御を抑制しない。そのため、リアルタイム性を要求するアプリケー
ションにおいて再送制御と輻輳制御を伴う通信プロトコルでデータを送受信した場合に、
輻輳制御を損なうことなく、再送制御に伴うデータを再現するまでの遅延を削減できる。
Furthermore, in this embodiment, since the transmission of Duplicated ACK is promoted, congestion control of the communication protocol is not suppressed. Therefore, when data is sent and received with a communication protocol that involves retransmission control and congestion control in an application that requires real-time performance,
It is possible to reduce a delay until data associated with retransmission control is reproduced without impairing congestion control.
また、本実施の形態では、パケット監視部が、通信プロトコルスタックを介さずに直接
ネットワークインターフェースを監視しており、かつ新たに生成されるDuplicated ACKも
直接ネットワークインターフェースに送信されている。つまり通信プロトコルに修正を加
える必要がない。通信プロトコルは、コンピュータのオペレーションシステムの一部(カ
ーネル)として実装されていることも多く、修正を施すことが困難なケースも多いが、本
実施の形態の構成を取れば、通信プロトコルに手を入れる必要がない。
In the present embodiment, the packet monitoring unit directly monitors the network interface without going through the communication protocol stack, and a newly generated Duplicated ACK is also transmitted directly to the network interface. In other words, there is no need to modify the communication protocol. The communication protocol is often implemented as part of the computer's operation system (kernel), and in many cases it is difficult to make corrections. There is no need to put it in.
(第8の実施の形態)
次に本発明の第8の発明を実施するための最良の形態について、図面を参照して説明する
。
(Eighth embodiment)
Next, the best mode for carrying out the eighth invention of the present invention will be described with reference to the drawings.
図22は、本発明に係る通信装置の第8の実施の形態の構成図である。本発明に関わる通
信装2200は、ネットワークインターフェース2201、通信プロトコルスタック2202、パケッ
ト監視部2203、再送可否判断部2204、ACK生成部2205を含む。第7の実施の形態と同様に、
これらの手段はデータを送信する側の通信装置として機能し、次のように動作する。
FIG. 22 is a configuration diagram of an eighth embodiment of a communication apparatus according to the present invention. A communication device 2200 according to the present invention includes a network interface 2201, a
These means function as a communication device on the data transmission side and operate as follows.
ネットワークインターフェース2201は、ネットワーク130と接続し、パケットの送受信
を行う。通信プロトコルスタック2202は、図1に示す送信側アプリケーション112から、
ネットワークインタフェース1901を通じて行われる、図1に示す受信側端末120へのパケッ
トの送信を管理する。パケット監視部2203は、ネットワークインターフェース2201を経由
して送受信されるパケットを監視し、Duplicated ACKの送信を検出した場合、再送可否判
断部2204に通知する。
The network interface 2201 is connected to the
It manages transmission of packets to the receiving
再送可否判断部2204は、一定期間有効な再送可否判断フラグを有しており、再送可否判
断フラグがセットされているかを確認する。再送可否判断フラグがセットされていない場
合、ACK生成部2205にDuplicated ACKの生成要求を通知する。再送可否判断フラグがセッ
トされていない場合、再送可否判断部2204はそのパケットに関し、特別な処理は行わず、
次のパケットの到着に備える。 ACK生成部2205は輻輳制御が発生するために必要な個数の
Duplicated ACKを生成し、ネットワークインターフェース2201を通じて、通知プロトコル
スタック2202に送信する。
The retransmission
Prepare for the arrival of the next packet. The number of ACK generators 2205 is as many as necessary for congestion control to occur.
Duplicated ACK is generated and transmitted to the
再送可否判断フラグの有効期間については、TCP/IPコネクションの形成時や事前に測定
されるRTT等のパラメータから算出される数値、例えば、測定されたRTTの3倍の時間等、
を採用し、また、再送可否判断フラグは、再送可否判断部2204がパケット監視部2203から
の通知を受信した際、再送可否判断フラグがセットされていない場合に設定され、有効期
間が経過すると、生成時と同様、再送可否判断部2204により再送可否判断フラグはリセッ
ト(セットされていない状態に)されるとする。
Regarding the validity period of the resendability determination flag, a numerical value calculated from parameters such as RTT measured in advance when a TCP / IP connection is formed, for example, a time three times the measured RTT,
The retransmission permission determination flag is set when the retransmission
次に、本実施の形態の全体の動作について図22及び図23を参照し、詳細に説明する。 Next, the overall operation of the present embodiment will be described in detail with reference to FIG. 22 and FIG.
パケット監視部2203は、ネットワークインターフェース2201を経由して送受信されるパ
ケットのシーケンス番号を監視する(S801)。パケット監視部2203は、受信しているパケッ
トがDuplicated ACKであるか判断し(S802)、Duplicated ACKである場合、再送可否判断部
2204へ通知し(S803)、Duplicated ACKでなければ、次のパケットの到着に備える(S804)。
再送可否判断部2204は、再送可否判断フラグがセットされているかを確認し、再送可否判
断フラグがセットされていない場合、ACK生成部2205に通知を行い、再送可否判断フラグ
がセットされている場合は、次のパケットの到着に備える(S805)。 ACK生成部2205は、複
数個、例えば、一般的なTCP/IPでは、3個以上のDuplicated ACKを受信することで、輻輳
制御及び再送制御が実施されるため、既に受信したDuplicated ACKを差し引いた2個以上
、のDuplicated ACKを生成し、ネットワークインターフェース2201を通じて、通信プロト
コルスタック2202に送信する(S806)。以降、S801からS806を繰り返す。
The
If it is notified to 2204 (S803) and not Duplicated ACK, it prepares for the arrival of the next packet (S804).
The
次に図24のシーケンス図に基づき、本実施の形態の動作を説明する。送信側の通信プロ
トコルスタック2202はネットワークインターフェース2201を通じて、受信側端末へシーケ
ンス番号1のデータを送信する(2401、2402)。受信側端末120はパケットを受信したことを
表す確認通知[ACK 1]を送信する(2403)。通信プロトコルスタック2202はネットワークイ
ンターフェース2201を通じて、受信側端末120の確認通知を受信する(2404)。
Next, the operation of the present embodiment will be described based on the sequence diagram of FIG. The
パケット監視部2203は、ネットワークインターフェース2201を通じて、受信パケットの
監視を行い、確認通知[ACK 1]の受信を確認する(2405)。通信プロトコルスタック2202が
送信したシーケンス番号2のパケットがネットワーク伝送中に損失したとする(2406, 2407
)。通信プロトコルスタック2202はシーケンス番号3のパケットを続いて送信する(2408, 2
409)。受信側端末120はシーケンス番号2のパケットを受信できていないため、その旨を示
す確認通知として[Dup ACK 1]を送信する(2410)。
The
).
409). Since receiving
通信プロトコルスタック2202は、ネットワークインターフェース2201を通じて、確認通
知[Dup ACK 1]を受信する(2411)。パケット監視部2203は、ネットワークインターフェー
ス2201を通じて、確認通知[ACK 1]の受信を確認し、先に受信した確認通知(2405)と同一
であることから、パケットの損失を疑い、再送可否判断部2204に通知する(2413)。
The
再送可否判断部2204は、再送可否判断フラグがセットされているかどうかを確認する。
本シーケンスでは、再送可否判断フラグはセットされていないとし、このとき、再送可否
判断部2204はACK生成部2205に通知を行い、再送可否判断フラグをセットする(2414)。
The retransmission permission /
In this sequence, it is assumed that the retransmission permission determination flag is not set, and at this time, the retransmission
通知を受け取ったACK生成部2205は、Duplicated ACKを複数個、本シーケンスでは、2個
以上(一般的なTCP/IPでは、3個以上のDuplicated ACKを受信することで、輻輳制御及び再
送制御が実施されるため、既に受信したDuplicated ACKを差し引いた2個以上)のシーケン
ス番号1までしか受け取っていない旨を示すDuplicated ACK [ACK 1]を生成し、ネットワ
ークインターフェース2201を通じて、通信プロトコルスタック2202に送信する(2415,2416
,2417,2418)。通信プロトコルスタック2202は、Duplicated ACKを3個以上受信したため、
輻輳制御を行い、また、同時にシーケンス番号2のパケットを再送する(2419.2420)。
Upon receiving the notification, the ACK generating unit 2205 receives a plurality of duplicated ACKs, two or more in this sequence (in general TCP / IP, congestion control and retransmission control are performed by receiving three or more duplicated ACKs. Generated Duplicated ACK [ACK 1] indicating that it has received
, 2417,2418).
Congestion control is performed, and at the same time, the packet of
受信側端末120はシーケンス番号2及び3のデータを受信したことを表す確認通知[ACK 3]
を通知する(2421,2422,2423)。次に通信プロトコルスタック2202が送信したシーケンス番
号4のパケットがネットワーク伝送中に損失したとする(2424,2425)。
Receiving
Is notified (2421, 2422, 2423). Next, it is assumed that the packet of
通信プロトコルスタック2202は引き続き、シーケンス番号5のパケットを送信する(2426
,2427)。受信側端末120はシーケンス番号4のパケットを受信していないため、確認通知[A
CK 3]を送信する(2428)。通信プロトコルスタック2202はネットワークインターフェース2
201を通じて、確認通知[ACK 3]を受信する(2429)。パケット監視部2203はネットワークイ
ンターフェース2201を通じて監視している受信パケットから(2430)、確認通知[ACK 3]が
重複していることを確認し、再送可否判断部2204に通知する(2431)。
, 2427). Since the receiving
CK 3] is transmitted (2428).
Confirmation notification [ACK 3] is received through 201 (2429). The
再送可否判断部2204は、再送可否判断フラグがセットされているため、ACK生成部2205
に対しては指示を発行しない。再送可否判断フラグがセットされている期間においては、
パケット監視部2203及び再送可否判断部2204を含め、通信装置2200は同様の処理を繰り返
す(2432から2446)。
Since retransmission permission /
No instructions are issued for. During the period when the resendability flag is set,
The communication device 2200 repeats the same processing including the
本実施の形態による効果としては、第7の実施の形態による効果に加え、断続的にパケ
ットロスが発生した場合、パケットロスの発生の度に複数個のDuplicated ACKを生成する
と、輻輳制御が連続して実行されるため、TCPとしてのパフォーマンスが大きく劣化して
しまうが、本実施の形態のように、一定時間内に断続的に発生するパケットロスに関して
、Duplicated ACKの送信を抑制することで、輻輳制御の実施回数を低く抑え、TCPの大き
なパフォーマンスの劣化を防止することが可能となる。
As an effect of the present embodiment, in addition to the effect of the seventh embodiment, when packet loss occurs intermittently, if a plurality of duplicated ACKs are generated each time a packet loss occurs, congestion control is continued. As a result, the performance of TCP is greatly degraded.However, by suppressing the transmission of Duplicated ACK for packet loss that occurs intermittently within a certain time, as in this embodiment, It is possible to keep the number of times of congestion control low and prevent a large performance degradation of TCP.
次に具体的な実施例を用いて、本発明を実施するための最良の形態の動作を説明する。
まず、第1の実施の形態である通信装置を利用した実施例について説明する。図25は、第1
の実施の形態の通信装置を含むVoD(Video On Demand)クライアント2550とVoDサービスを
提供するVoDサーバ2540より構成されるリアルタイムに映像・音声データが配信されるVoD
システムの一例である。
Next, the operation of the best mode for carrying out the present invention will be described using specific examples.
First, an example using the communication apparatus according to the first embodiment will be described. FIG. 25 shows the first
The VoD (Video On Demand)
It is an example of a system.
図26は、図25記載のVoDクライアント2550とVoDサーバ2540のパケットのシーケンスを示
したもので、VoDクライアント2550においては、通信装置2551により受信されるビデオ再
生アプリケーション2552における再生データの受信順序が示されている。
FIG. 26 shows a packet sequence of the
実施例図25記載のVoDシステムでは、VoDサーバ2540、本発明に係る通信装置2551及びビ
デオ再生アプリケーション2552を含むVoDクライアント2550、VoDクライアント2550とVoD
サーバ2540を結ぶネットワーク上に存在するファイアウォール2560から構成される。
Embodiment In the VoD system shown in FIG. 25, a
A firewall 2560 exists on the network connecting the
VoDクライアント2550は、ファイアウォール2560を越えてVoDサーバ2540から映像・音声
を受け取るため、HTTP(Hyper Text Transfer Protocol)を利用し、受け取ったパケットに
よりビデオを再生するとする。
It is assumed that the
実施例図26を参照すると、VoDクライアント2550が映像・音声をVoDサーバ2540にデータ
要求を行うと、VoDサーバ2540は、シーケンス番号1のデータを送信する(2601)。
Embodiment Referring to FIG. 26, when the
通信装置2551はシーケンス番号1のデータを受信すると、ACKを返す(2602)と同時に、シ
ーケンス番号1のデータをビデオ再生アプリケーション2552に渡す(2603)。次にネットワ
ークの輻輳により、VoDサーバ2540が送信したシーケンス番号2のデータが損失したとする
(2604)。このとき、VoDクライアント2550はデータを受け取らないため、何も応答しない
。VoDサーバ2540は続いて、シーケンス番号3のデータを送信する(2605)。通信装置2551は
、シーケンス番号3のデータを受け取り、Duplicated ACKとして[Dup ACK 1] を返す(2606
)と同時に、スヌープされたデータをビデオ再生アプリケーション2552に渡す(2607)。受
信したシーケンス番号3のデータは再生データとして利用される。
When the communication device 2551 receives the data of
(2604). At this time, since the
At the same time, the snooped data is passed to the video playback application 2552 (2607). The received data of
シーケンス番号4及びシーケンス番号5についても同様の処理が発生する(2608〜2613)。
この後、VoDサーバ2540は、Duplicated ACKを3回受信するため、シーケンス番号2のパケ
ットを再送する(2614)。通信装置2551は再送されたパケットを受信すると、その時点で受
信している最大のシーケンス番号である5をACKとして返す(2615)と同時に、プロトコルス
タックに蓄積されていた受信データを廃棄する。 続いて、VoDサーバ2540はその次のシー
ケンス番号6のデータを送信し(2616)、VoDサービスを継続する。なお、通信装置2551内の
動作は第1の実施の形態と同じであることから記載は省略した。また、第2〜第6の実施の
形態に関しても、VoDクライアント500は、本実施例と同様の動作を行うため、記載を省略
する。
Similar processing occurs for
Thereafter, the
次に、第1の実施の形態に示される通信装置と第7の実施の形態の通信装置を用いた実
施例について説明する。図27は、パケットの受信時の機能として第1の実施の形態の通信
装置の機能を持ち、パケットの送信時の機能として第7の実施の形態の通信装置の機能を
併せ持つ中継装置2730と、HTTPによるビデオチャットを行うビデオチャットクライアント
2710と2720から構成される。中継装置2730はビデオチャットクライアント2710及び2720の
HTTPによる通信を仲介するProxyとして働くこととし、中継装置2730は、ビデオチャット
クライアント2710及び2720から送信されるデータを受信し、他のビデオチャットクライア
ントにそのデータを転送する機能を有するとする。
Next, an example using the communication apparatus shown in the first embodiment and the communication apparatus of the seventh embodiment will be described. FIG. 27 shows a relay device 2730 having the function of the communication device of the first embodiment as a function at the time of packet reception, and also having the function of the communication device of the seventh embodiment as a function at the time of packet transmission, Video chat client for HTTP video chat
Consists of 2710 and 2720. Relay device 2730 is used for video chat clients 2710 and 2720
It is assumed that the relay device 2730 has a function of receiving data transmitted from the video chat clients 2710 and 2720 and transferring the data to other video chat clients.
図28は、ビデオチャットクライアント2710を送信側と2720を受信側として、中継装置27
30を有する中継装置2730を介してデータパケットをやりとりする場合のシーケンスを示し
たものになっている。なお、実際のビデオチャットのアプリケーションにおいては、ビデ
オチャットクライアント2710と2720の送信側、受信側の役割は随意入れ替わり、相互にデ
ータを送受している。
FIG. 28 shows a video chat client 2710 as a transmission side and 2720 as a reception side.
The sequence in the case of exchanging data packets via the relay device 2730 having 30 is shown. In an actual video chat application, the roles of the transmission side and the reception side of the video chat clients 2710 and 2720 are arbitrarily switched, and data is exchanged between them.
中継装置2730は、送信側のビデオチャットクライアント2710から送信されたデータを一
端終端し、受信側のビデオチャットクライアント2720に送信する。このことを明示するた
め、送信側から送信され中継装置2730で終端されるシーケンス番号mのパケットを#mで
表記し、中継装置2730から送信されるシーケンス番号nのパケットを$nで表記する。
The relay device 2730 terminates the data transmitted from the video chat client 2710 on the transmission side, and transmits the data to the video chat client 2720 on the reception side. In order to clarify this, a packet of sequence number m transmitted from the transmission side and terminated at relay apparatus 2730 is denoted by #m, and a packet of sequence number n transmitted from relay apparatus 2730 is denoted by $ n.
まず、図28の上半分を参照して、中継装置2730が第7の実施の形態で示した機能を用い
て行うパケットの中継(転送)動作を説明する。ビデオチャットクライアント2710が中継
装置2730を通じて、ビデオチャットクライアント2720にデータを送っている。中継装置27
30は、ビデオチャットクライアント2710から送信されたシーケンス番号#1のパケットを受
信するが(2801)、TCPの接続はここで終端され、中継装置2730はビデオチャットクライア
ント2710に対し、確認応答である[ACK #1]を送信する(2802)。同時に中継装置2730は、ビ
デオチャットクライアント2720に向け、2801で受信したシーケンス番号$1のパケットを送
信する(2803)。ビデオチャットクライアント2720からは、パケットを受信したことを意味
する確認応答[ACK $1]が送信される(2804)。続いて、ビデオチャットクライアント2710か
ら送信されたシーケンス番号#2のパケットを中継装置2730は受信し(2805)、確認応答[ACK
#2]を送信する(2806)。そしてこのシーケンス番号$2のパケットをビデオチャットクライ
アント2720に転送する際にパケットが損失したとする(2807)。
First, with reference to the upper half of FIG. 28, a packet relay (transfer) operation performed by the relay device 2730 using the function shown in the seventh embodiment will be described. The video chat client 2710 sends data to the video chat client 2720 through the relay device 2730. Relay device 27
30 receives the packet of
# 2] is transmitted (2806). Assume that a packet is lost when the packet with the sequence number $ 2 is transferred to the video chat client 2720 (2807).
さらに中継装置2730は、ビデオチャットクライアント2710からはシーケンス番号3のデ
ータが続いて送信される(2808,2809)。中継装置2730は受信したパケットをビデオチャッ
トクライアント2720に転送し(2810)、ビデオチャットクライアント2720から確認応答とし
て、[Dup ACK $1]を受信したとする(2811)。このとき、中継装置2730は2804で受信した確
認応答[ACK $1]と重複していることから、パケットロスが発生したと判断し、実施の形態
7で述べた動作、つまり、内部で再送制御及び輻輳制御が発生するだけのDuplicated ACK
の生成、受信を行(2812,2813)を行い、シーケンス番号$2のデータを再送する(2814, 2815
)。
Further, the relay apparatus 2730 continuously transmits data of
Duplicated ACK that only generates retransmission control and congestion control as described in 7.
Is generated and received (2812, 2813) and the data of sequence number $ 2 is retransmitted (2814, 2815)
).
このとき、再送制御と同時に輻輳制御も実施される。続いて、通信装置2731は、シーケ
ンス番号#4のデータをビデオチャットクライアント2710から受信し(2816)、そのデータを
ビデオチャットクライアント2720に転送する(2818)ことで、ビデオチャットサービスを継
続する。
At this time, congestion control is also performed simultaneously with retransmission control. Subsequently, the communication device 2731 receives the data of the
次に、図28の下半分を参照して、中継装置2730が第1の実施の形態で示した機能を用い
て行うパケットの中継(転送)動作を説明する。ビデオチャットクライアント2710は通信
装置2731に対し、シーケンス番号#5のデータを送信する(2820)。中継装置2730は、シーケ
ンス番号#5のデータを受信したため、確認応答[ACK #5]をビデオチャットクライアント27
10に送信する(2821)。中継装置2730は、2820で受信したパケットをビデオチャットクライ
アント2720に、シーケンス番号$1のパケットとして送信し(2822)、ビデオチャットクライ
アント2720はパケットの受信を示す確認応答[ACK $5]を送信する(2823)。
Next, with reference to the lower half of FIG. 28, a packet relay (transfer) operation performed by the relay device 2730 using the function described in the first embodiment will be described. The video chat client 2710 transmits data of
10 is transmitted (2821). The relay apparatus 2730 transmits the packet received at 2820 to the video chat client 2720 as a packet with the sequence number $ 1 (2822), and the video chat client 2720 transmits an acknowledgment [ACK $ 5] indicating reception of the packet (2823). ).
次にビデオチャットクライアント2710が送信したシーケンス番号#6のデータがネットワ
ークの障害等により損失したとする(2824)。ビデオチャットクライアント2720は、続いて
シーケンス番号#7のデータを送信する(2825)。中継装置2730は、シーケンス番号#6のデー
タを受信していないため、ビデオチャットクライアント2710に対し、確認応答[Dup ACK #
5]を送信する(2826)と同時に、実施の形態1で述べた方法により、スヌープされたシーケ
ンス番号#3のデータを受け取り、そのデータをシーケンス番号$6として、ビデオチャット
クライアント2720に送信する(2827)。
Next, it is assumed that the data of
5] (2826) and at the same time, the snooped data of
ビデオチャットクライアント2720からは確認応答である[ACK $6]が送信される(2828)。
その後、ビデオチャットクライアント2710はシーケンス番号#8、#9のデータを送信し(282
9,2833)、中継装置2730からは[Dup ACK #5]を受信する(2830, 2834)。中継装置2730は、
実施の形態1で述べた方法によりスヌープしたデータをシーケンス番号$7及び$8のデータ
としてビデオチャットクライアント2720に送信する(2831, 2835)。ビデオチャットクライ
アント2710は、確認応答[Dup ACK #5]を3回受け取った(2826, 2830,2834)ことから、輻輳
制御及び再送制御を実施する(2837,2838)。
[ACK $ 6], which is an acknowledgment, is transmitted from the video chat client 2720 (2828).
After that, the video chat client 2710 transmits the data of
9,2833) and [Dup ACK # 5] is received from the relay device 2730 (2830, 2834). Relay device 2730
Data snooped by the method described in the first embodiment is transmitted to the video chat client 2720 as data of sequence numbers $ 7 and $ 8 (2831, 2835). Since the video chat client 2710 receives the confirmation response [Dup ACK # 5] three times (2826, 2830, 2834), it performs congestion control and retransmission control (2837, 2838).
本実施例では、データの送信側もしくは受信側に本発明の実施形態が含まれない場合で
も、データを中継する装置に本発明の実施形態を導入することで、再送制御に伴うデータ
受信までの遅延を削減し、かつ、輻輳制御を実施することが可能となる。
In the present embodiment, even when the embodiment of the present invention is not included in the data transmission side or the reception side, by introducing the embodiment of the present invention to the device that relays data, the data reception up to the data reception accompanying the retransmission control can be performed. It becomes possible to reduce delay and implement congestion control.
本発明によれば、ファイアウォールやプロキシのため、HTTPしか利用できない環境下に
おいても、会議サービスのようなリアルタイムで映像・音声の通信を行うサービスに適用
可能である。
The present invention can be applied to a service that performs video / audio communication in real time, such as a conference service, even in an environment where only HTTP can be used because of a firewall or a proxy.
110:送信側端末
111,1900,2200:送信側通信装置
112:送信側アプリケーション
120:受信側端末
121,500,800,1100,1600:受信側通信装置
122:受信側アプリケーション
130:ネットワーク
201,501,801,1101,1601,1901,2201:ネットワークインターフェース
202:データ受信部
203,502,802,1102,1602,1902,2202:通信プロトコルスタック
204:スヌープパケット出力部
503,803,1103,1603,1903,2203:パケット監視部
504,1104,1605:ダミーパケット生成部
804,1105,1606,1904,2205:ACK生成部
1604,2204:再生可否判断部
110: Sending terminal
111, 1900, 2200: Transmission side communication device
112: Sender application
120: Receiver terminal
121, 500, 800, 1100, 1600: Receiving side communication device
122: Receiver application
130: Network
201, 501, 801, 1101, 1601, 1901, 2201: Network interface
202: Data receiver
203, 502, 802, 1102, 1602, 1902, 2202: Communication protocol stack
204: Snoop packet output part
503, 803, 1103, 1603, 1903, 2203: Packet monitoring unit
504, 1104, 1605: Dummy packet generator
804, 1105, 1606, 1904, 2205: ACK generator
1604, 2204: Playability judgment unit
Claims (18)
ネットワークインターフェースを通じてパケットの送受信を管理し、受信した前記パケットのデータをアプリケーションに送信する通信プロトコルスタックと、前記ネットワークインターフェースを経由して、送受信される前記パケットを監視し、通信プロトコルにおける輻輳制御が発生するタイミングを検出し、前記タイミングの検出をダミーパケット生成部に通知するパケット監視部と、
前記検出の通知を受けてダミーパケットの生成を行い、前記ネットワークインターフェースを通じて前記通信プロトコルスタックに送信するダミーパケット生成部と、
を少なくとも有するパケット通信装置。 A communication device connected to the receiving application and the network,
Controls packet transmission / reception through the network interface, and transmits the received packet data to the application, and monitors the packet transmitted / received through the network interface, thereby causing congestion control in the communication protocol. A packet monitoring unit that detects the timing to detect, and notifies the dummy packet generation unit of the detection of the timing;
Receiving a notification of the detection, generating a dummy packet, and transmitting the dummy packet generation unit to the communication protocol stack through the network interface;
A packet communication device having at least
ネットワークインターフェースを通じてパケットの送受信を管理し、受信したパケットのデータをアプリケーションに送信する通信プロトコルスタックと、
前記ネットワークインターフェースを経由して送受信される前記パケットを監視してDuplicated ACKの送信を検出し、その検出をACK生成部とダミーパケット生成部に通知するパケット監視部と、
前記検出の通知を受けて、再送制御及び輻輳制御が実施されるために必要な1つ以上の前記Duplicated ACKの生成を行いネットワークインターフェースに送信する前記ACK生成部と、
前記検出の通知を受けてダミーパケットを生成し、前記ネットワークインターフェースを通じて、前記通信プロトコルスタックに送信する前記ダミーパケット生成部と、
を少なくとも有するパケット通信装置。 A communication device connected to the receiving application and the network,
A communication protocol stack that manages transmission and reception of packets through a network interface and transmits received packet data to an application;
A packet monitoring unit that monitors the packet transmitted and received via the network interface to detect transmission of Duplicated ACK, and notifies the detection to the ACK generation unit and the dummy packet generation unit;
Receiving the notification of detection, generating the one or more Duplicated ACKs necessary for performing retransmission control and congestion control, and transmitting to the network interface, the ACK generation unit,
Receiving the notification of detection, generating a dummy packet, and transmitting the dummy packet generation unit to the communication protocol stack through the network interface;
A packet communication device having at least
ネットワークインターフェースを通じてパケットの送受信を管理し、受信したパケットのデータをアプリケーションに送信する通信プロトコルスタックと、
前記ネットワークインターフェースを経由して送受信される前記パケットのシーケンス番号の順序性が保たれているかを監視し、順序性が保たれていないことを検出すると、該検出をダミーパケット生成部に通知し、さらに次に連続して到着する複数個の前記パケットに未到着パケットが含まれるかどうかを監視し、含まれないことが検出された場合は該検出をACK生成部に通知するパケット監視部と、
前記未到着パケットが含まれないことの検出の通知を受けて輻輳制御が実施されるために必要な1個以上のDuplicated ACKの生成を行い前記ネットワークインターフェースに送信する前記ACK生成部と、
前記順序性が保たれていないことの検出の通知を受けてダミーパケットを生成し前記通信プロトコルスタックに送信する前記ダミーパケット生成部と、
を少なくとも有するパケット通信装置。 A communication device connected to the receiving application and the network,
A communication protocol stack that manages transmission and reception of packets through a network interface and transmits received packet data to an application;
Monitors whether the order of the sequence numbers of the packets transmitted / received via the network interface is maintained, and detects that the order is not maintained, notifies the detection to the dummy packet generation unit, Further, a packet monitoring unit that monitors whether or not a non-arrival packet is included in the plurality of packets that arrive continuously in succession, and when it is detected that the packet is not included, a packet monitoring unit that notifies the ACK generation unit of the detection,
Receiving the notification of detection that the unarrived packet is not included, generating one or more duplicated ACKs necessary for performing congestion control, and transmitting the generated ACK to the network interface;
Receiving the notification that the order is not maintained, generating a dummy packet and transmitting the dummy packet generation unit to the communication protocol stack;
A packet communication device having at least
ネットワークインターフェースを通じてパケットの送受信を管理し、受信したデータをアプリケーションに送信する通信プロトコルスタックと、
前記ネットワークインターフェースをアプリケーションに送信する通信プロトコルスタックと、ネットワークインターフェースで送受信される前記パケットのシーケンス番号の順序性が保たれているかを監視し、順序性が保たれていないことを検出すると、該検出を再送可否判断部に通知するパケット監視部と、
一定期間有効な再送可否判断部フラグを有し、前記再送可否判断フラグがセットされていない場合は前記再送可否判断フラグのセット及びダミーパケット生成部及びACK生成部に通知を行い、前記再送可否判断フラグがセットされている場合は前記ダミーパケット生成部への通知を行う再送可否判断部と、
前記再送可否判断部からの通知を受けるとダミーパケットを生成し、ネットワークインターフェースに送信する前記ダミーパケット生成部と、
前記再送可否判断部からの通知を受けると、輻輳制御を実行するために必要な1つ以上のDuplicated ACKを生成し、ネットワークインターフェースに送信する前記ACK生成部と、
を少なくとも有するパケット通信装置。 A communication device connected to the receiving application and the network,
A communication protocol stack for managing packet transmission and reception through a network interface and transmitting received data to an application;
The communication protocol stack for transmitting the network interface to the application and the sequence number of the packet transmitted / received via the network interface are monitored to detect if the sequence number is not maintained. A packet monitoring unit for notifying the retransmission permission determination unit,
A resendability judgment flag that is valid for a certain period, and when the resendability judgment flag is not set, the resendability judgment flag is set, and a dummy packet generation unit and an ACK generation unit are notified, and the resendability judgment is performed. When the flag is set, a retransmission permission determination unit that notifies the dummy packet generation unit,
When receiving a notification from the retransmission permission determination unit, generates a dummy packet, and transmits the dummy packet generation unit to a network interface;
Upon receipt of the notification from the retransmission permission determination unit, the ACK generation unit generates one or more duplicated ACKs necessary for executing congestion control, and transmits to the network interface;
A packet communication device having at least
送信側端末からパケットを受信する第1のパケット通信装置と、
受信側端末に前記受信したパケットを送信する第2のパケット通信装置と、を有し、
前記第1のパケット通信装置は、請求項1から4のいずれか1項に記載のパケット通信装置である、パケット中継装置。 A packet relay device that relays packet transmission and reception between a packet transmission terminal and a reception terminal,
A first packet communication device for receiving a packet from a transmission side terminal;
A second packet communication device for transmitting the received packet to a receiving terminal,
5. The packet relay device according to claim 1, wherein the first packet communication device is the packet communication device according to claim 1.
前記検出の通知を受けてダミーパケットの生成を行い、前記ネットワークインターフェースを通じて前記通信プロトコルスタックに送信するダミーパケット生成手順と、
を少なくとも含むパケット通信方法。 A communication method for managing transmission / reception of packets through a network interface and connecting a receiving-side application and a network using a communication protocol for transmitting received packet data to the application, wherein the communication device passes through the network interface And monitoring the packet transmitted and received, detecting the timing at which congestion control occurs in a communication protocol, and notifying the dummy packet generator of the detection of the timing;
Generating a dummy packet in response to the notification of detection, and a dummy packet generating procedure for transmitting to the communication protocol stack through the network interface;
A packet communication method including at least.
前記検出の通知を受けて、再送制御及び輻輳制御が実施されるために必要な1つ以上の前記Duplicated ACKの生成を行いネットワークインターフェースに送信する前記ACK生成手順と、
前記検出の通知を受けてダミーパケットを生成し、前記ネットワークインターフェースを通じて、前記通信プロトコルスタックに送信する前記ダミーパケット生成手順と、
を少なくとも含むパケット通信方法。 A communication method for managing transmission / reception of packets through a network interface and connecting a receiving-side application and a network using a communication protocol for transmitting received packet data to the application, wherein the communication device passes through the network interface A packet monitoring procedure for detecting the transmission of Duplicated ACK by monitoring the packet transmitted and received, and notifying the detection to the ACK generation unit and the dummy packet generation unit;
Receiving the notification of detection, generating the one or more duplicated ACKs necessary for performing retransmission control and congestion control, and transmitting the ACK generation procedure to the network interface;
Receiving the notification of the detection, generating a dummy packet, and transmitting the dummy packet through the network interface to the communication protocol stack;
A packet communication method including at least.
前記未到着パケットが含まれないことの検出の通知を受けて輻輳制御が実施されるために必要な1個以上のDuplicated ACKの生成を行い前記ネットワークインターフェースに送信する前記ACK生成手順と、
前記順序性が保たれていないことの検出の通知を受けてダミーパケットを生成し前記通信プロトコルスタックに送信する前記ダミーパケット生成手順と、
を少なくとも含むパケット通信方法。 A communication method for managing transmission / reception of packets through a network interface and connecting a receiving-side application and a network using a communication protocol for transmitting received packet data to the application, wherein the communication device passes through the network interface The sequence number of the packets transmitted and received is monitored whether or not the order is maintained, and if the order is not maintained, the detection is notified to the dummy packet generator, and the next consecutive A packet monitoring procedure for monitoring whether or not a non-arrival packet is included in the plurality of packets arriving in a packet, and notifying that detection is not included,
The ACK generation procedure of generating one or more Duplicated ACKs necessary for performing congestion control upon receiving notification of detection that the unarrived packet is not included, and transmitting to the network interface;
Receiving the notification that the order is not maintained, generating a dummy packet and transmitting the dummy packet to the communication protocol stack;
A packet communication method including at least.
一定期間有効な再送可否判断部フラグを有し、前記再送可否判断フラグがセットされていない場合は前記再送可否判断フラグのセット及びダミーパケット生成部及びACK生成部に通知を行い、前記再送可否判断フラグがセットされている場合は前記ダミーパケット生成部への通知を行う再送可否判断手順と、
前記再送可否判断部からの通知を受けるとダミーパケットを生成し、ネットワークインターフェースに送信する前記ダミーパケット生成手順と、
前記再送可否判断部からの通知を受けると、輻輳制御を実行するために必要な1つ以上のDuplicated ACKを生成し、ネットワークインターフェースに送信する前記ACK生成手順と、
を少なくとも含むパケット通信方法。 A communication method for managing transmission / reception of a packet through a network interface and connecting a receiving-side application and a network using a communication protocol for transmitting received packet data to the application, wherein the communication device connects the network interface to the application Monitoring whether the order of the sequence number of the packet transmitted and received by the network interface is maintained, and detecting that the order is not maintained, the detection is allowed to be retransmitted. Packet monitoring procedure to notify
A resendability judgment flag that is valid for a certain period, and when the resendability judgment flag is not set, the resendability judgment flag is set, and a dummy packet generation unit and an ACK generation unit are notified, and the resendability judgment is performed. When the flag is set, a retransmission permission determination procedure for notifying the dummy packet generator,
When receiving a notification from the retransmission permission determination unit, generates a dummy packet, and transmits the dummy packet to the network interface.
Upon receiving a notification from the retransmission permission determination unit, the ACK generation procedure for generating one or more duplicated ACKs necessary for executing congestion control and transmitting to the network interface;
A packet communication method including at least.
前記第1のパケット通信方法は、請求項9から請求項12のいずれか1項に記載のパケット通信方法である、パケット中継方法。 A relay device that relays packet transmission / reception between a packet transmission terminal and a reception terminal receives a packet from the transmission terminal by the first packet communication method and receives the received packet by the second packet communication method. A packet relay method for transmitting to a terminal,
The packet relay method according to claim 9, wherein the first packet communication method is the packet communication method according to claim 9.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007310269A JP4626646B2 (en) | 2007-11-30 | 2007-11-30 | Packet communication apparatus, packet communication method, and packet communication program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007310269A JP4626646B2 (en) | 2007-11-30 | 2007-11-30 | Packet communication apparatus, packet communication method, and packet communication program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005031350A Division JP4063282B2 (en) | 2005-02-08 | 2005-02-08 | Packet communication apparatus, packet communication method, and packet communication program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008109698A true JP2008109698A (en) | 2008-05-08 |
JP4626646B2 JP4626646B2 (en) | 2011-02-09 |
Family
ID=39442621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007310269A Expired - Fee Related JP4626646B2 (en) | 2007-11-30 | 2007-11-30 | Packet communication apparatus, packet communication method, and packet communication program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4626646B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011041008A (en) * | 2009-08-11 | 2011-02-24 | Hitachi Cable Ltd | Communication equipment and communication system |
JP2019047162A (en) * | 2017-08-29 | 2019-03-22 | トヨタ自動車株式会社 | Information processing system, information processing method, program, and information processing apparatus |
JP2023528686A (en) * | 2021-05-26 | 2023-07-05 | オーワイ ゲームクラスター リミテッド | Delivery of Transport Layer Packets |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003224546A (en) * | 2002-01-29 | 2003-08-08 | Sony Corp | Communication system, data receiving method and data communication terminal |
JP2006222494A (en) * | 2005-02-08 | 2006-08-24 | Nec Corp | Packet communication apparatus, packet communication method, and packet communications program |
-
2007
- 2007-11-30 JP JP2007310269A patent/JP4626646B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003224546A (en) * | 2002-01-29 | 2003-08-08 | Sony Corp | Communication system, data receiving method and data communication terminal |
JP2006222494A (en) * | 2005-02-08 | 2006-08-24 | Nec Corp | Packet communication apparatus, packet communication method, and packet communications program |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011041008A (en) * | 2009-08-11 | 2011-02-24 | Hitachi Cable Ltd | Communication equipment and communication system |
JP2019047162A (en) * | 2017-08-29 | 2019-03-22 | トヨタ自動車株式会社 | Information processing system, information processing method, program, and information processing apparatus |
JP7024259B2 (en) | 2017-08-29 | 2022-02-24 | トヨタ自動車株式会社 | Information processing systems, information processing methods, programs, and information processing equipment |
JP2023528686A (en) * | 2021-05-26 | 2023-07-05 | オーワイ ゲームクラスター リミテッド | Delivery of Transport Layer Packets |
JP7401698B2 (en) | 2021-05-26 | 2023-12-19 | オーワイ ゲームクラスター リミテッド | Apparatus, method, and computer program for communicating over a packet-switched network |
Also Published As
Publication number | Publication date |
---|---|
JP4626646B2 (en) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4857262B2 (en) | Method and apparatus for end-to-end reliable group communication | |
US9356976B2 (en) | Real-time communications methods providing pause and resume and related devices | |
KR100248080B1 (en) | Method of error control for multiparty multimedia communications | |
US7924856B2 (en) | Tree-shaped broadcasting system, packet transmitting method, node device, and computer-readable medium | |
JP2016213811A (en) | Transfer protocol of interactive real-time medium | |
CN105721950A (en) | Reliable media stream transmission device | |
KR20040098553A (en) | Reliable delivery of multi-cast conferencing data | |
JP2005252670A (en) | Communication system, backup server, and communication controller | |
JP2006279467A (en) | Communication apparatus and fault detecting method in logical link | |
JP4063282B2 (en) | Packet communication apparatus, packet communication method, and packet communication program | |
JP2008125062A (en) | Method and apparatus for retransmission request reduction in network | |
CN110602568B (en) | Video stream transmission packet loss retransmission method, device and storage device based on RTP | |
Dunaytsev et al. | Modeling TCP SACK performance over wireless channels with completely reliable ARQ/FEC | |
JP4626646B2 (en) | Packet communication apparatus, packet communication method, and packet communication program | |
JP2013502115A (en) | Method, device and system for main / standby switching | |
KR100240645B1 (en) | Packet error controller of multicast communication and method thereof | |
JP5592301B2 (en) | Client device, communication system, survival confirmation method, and program | |
JP5062121B2 (en) | Packet retransmission control method and apparatus in multicast communication | |
JP4623087B2 (en) | Packet communication apparatus, packet communication method, and packet communication program | |
US20140369189A1 (en) | Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent | |
KR101396785B1 (en) | Method for performing tcp functions in network equipmment | |
JP7557117B2 (en) | Communication program, communication system, transmitting terminal, receiving terminal | |
KR101933175B1 (en) | Mediatioin appratus mediating communication betwwen server and client | |
JP2010153944A (en) | Communication system, receiver, transmitter and communication method | |
WO2012043142A1 (en) | Multicast router and multicast network system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20080616 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20090511 |
|
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: 20101012 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101025 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4626646 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |