JP7148199B2 - Communication device, communication method and program - Google Patents

Communication device, communication method and program Download PDF

Info

Publication number
JP7148199B2
JP7148199B2 JP2018164225A JP2018164225A JP7148199B2 JP 7148199 B2 JP7148199 B2 JP 7148199B2 JP 2018164225 A JP2018164225 A JP 2018164225A JP 2018164225 A JP2018164225 A JP 2018164225A JP 7148199 B2 JP7148199 B2 JP 7148199B2
Authority
JP
Japan
Prior art keywords
buffer
packet
received packet
received
time
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.)
Active
Application number
JP2018164225A
Other languages
Japanese (ja)
Other versions
JP2020039021A (en
Inventor
賢悟 長友
健太郎 中屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Platforms Ltd
NEC Corp
Original Assignee
NEC Platforms Ltd
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Platforms Ltd, NEC Corp filed Critical NEC Platforms Ltd
Priority to JP2018164225A priority Critical patent/JP7148199B2/en
Publication of JP2020039021A publication Critical patent/JP2020039021A/en
Application granted granted Critical
Publication of JP7148199B2 publication Critical patent/JP7148199B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、通信装置、通信方法及びプログラムに関する。 The present invention relates to a communication device, communication method and program.

今後、POI(Point Of Interface)がIP(Internet Protocol)化されていく。IP網では、End-To-Endでジッタを補正できることが理想的であり、事業者網間接続では網の境界にて送受信されるパケットのジッタ量が許容範囲内に抑えることが期待される。 In the future, POI (Point Of Interface) will be IP (Internet Protocol). In an IP network, it is ideal to be able to correct end-to-end jitter, and it is expected that the amount of jitter in packets transmitted and received at network boundaries is kept within an allowable range in connection between the networks of operators.

特許文献1には、ジッタバッファに蓄積されているパケット数をカウントし、当該カウンタ値が所定の基準値より大きければ、ジッタバッファに蓄積されているパケットを削除する技術が開示されている。 Patent Document 1 discloses a technique of counting the number of packets accumulated in a jitter buffer and deleting the packets accumulated in the jitter buffer if the count value is greater than a predetermined reference value.

特許文献2は、ルータ群を構成するルータに通信ネットワーク上を伝送されてきた音声パケットを蓄積するためのジッタバッファを設け、ルータは、当該ルータのジッタバッファに蓄積された音声パケットを基準クロック信号に同期させて出力する技術を開示する。 In Patent Document 2, a router constituting a group of routers is provided with a jitter buffer for accumulating voice packets transmitted over a communication network, and the router converts the voice packets accumulated in the jitter buffer of the router into a reference clock signal. Discloses a technique for outputting in synchronization with .

特許文献3は、モバイル網を利用した通信の場合に、基地局(eNodeB)の仕様によってはDelay Packingによる送信がされる場合があることを開示している(例えば、特許文献3の図7参照)。 Patent Document 3 discloses that in the case of communication using a mobile network, transmission by Delay Packing may be performed depending on the specifications of the base station (eNodeB) (for example, see FIG. 7 of Patent Document 3). ).

特許文献3には、複数のパケットがバースト的に送信される動作が記載されている。通常、複数のパケットがバースト的に送信されない場合には、図21に示すようなパケットの送受信となる。対して、複数のパケットがバースト的に送信される場合には、図22及び図23に示すようなパケットの送受信となる。図22は、2パケットバーストの送受信の一例を示し、図23は3パケットバーストの送受信の一例を示す。 Patent Document 3 describes an operation in which a plurality of packets are transmitted in bursts. Normally, when a plurality of packets are not transmitted in a burst, packets are transmitted and received as shown in FIG. On the other hand, when a plurality of packets are transmitted in a burst, packets are transmitted and received as shown in FIGS. 22 and 23. FIG. FIG. 22 shows an example of transmission/reception of a 2-packet burst, and FIG. 23 shows an example of transmission/reception of a 3-packet burst.

特開2011-101342号公報JP 2011-101342 A 特開2001-345840号公報Japanese Patent Application Laid-Open No. 2001-345840 特開2013-046256号公報JP 2013-046256 A

なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。 In addition, each disclosure of the above prior art documents is incorporated into this document by reference. The following analysis was made by the inventors.

近年、ネットワーク機能(通信装置)を仮想化する技術である、NFV(Network Function Virtualization)の研究開発が盛んに進められている。当該NFVにより、通信キャリアのネットワークノードはかつて専用装置により提供されていたが、仮想化した汎用サーバ上に実装するニーズが多くなってきた。 In recent years, research and development of NFV (Network Function Virtualization), which is a technique for virtualizing network functions (communication devices), has been actively promoted. With the NFV, network nodes of communication carriers used to be provided by dedicated devices, but there are increasing needs to implement them on virtualized general-purpose servers.

NFVが適用されたネットワークにおいてもジッタの抑制が要求される。しかしながら、既存のジッタバッファを使用した対策では、クロックスキューにより受信速度がデキュー速度よりも遅い場合、パケットを削除するまで徐々に遅延が増えていってしまう問題やパケット削除が音声劣化につながる問題がある。 Suppression of jitter is also required in a network to which NFV is applied. However, with existing measures using jitter buffers, if the reception speed is slower than the dequeue speed due to clock skew, the delay will gradually increase until the packet is deleted, and the problem that packet deletion leads to voice degradation. be.

特許文献1に開示されたジッタ対策(ジッタバッファを利用する対策)では、クロックスキュー(クロックずれ)により受信速度がデキュー速度よりも遅い場合、パケットを削除するまで徐々に遅延が増える問題やパケット削除が音声劣化に繋がる問題がある。 In the jitter measure (measure using a jitter buffer) disclosed in Patent Document 1, when the reception speed is slower than the dequeue speed due to clock skew (clock deviation), the delay gradually increases until the packet is deleted, and the packet is deleted. However, there is a problem that leads to voice deterioration.

なお、クロックスキューとは、例えば、ppm(Parts Per Million)の単位で表現される装置内のデバイス(発信器)固有のクロック信号の精度のずれを示す。例えば、クロックの精度を±100ppmと仮定した場合の上記問題を説明する。 It should be noted that the clock skew is, for example, a difference in precision of a clock signal unique to a device (oscillator) in the apparatus expressed in units of parts per million (ppm). For example, the above problem when the clock accuracy is assumed to be ±100 ppm will be described.

送信装置のクロック精度が+100ppm、受信装置のクロック精度が-100ppmである場合には、送信装置より受信装置のクロックが200ppm早く進むことになる。従って、受信装置が、受信パケットに付与されたRTP(Real time Transport Protocol)タイムスタンプ値に従って時間間隔をあけてパケット送信すると、受信装置内のジッタバッファ内に溜め込んだデータが徐々に枯渇する。 If the clock accuracy of the transmitter is +100 ppm and the clock accuracy of the receiver is −100 ppm, then the clock of the receiver advances 200 ppm faster than the clock of the transmitter. Therefore, when the receiver transmits packets at intervals according to the RTP (Real time Transport Protocol) time stamp value added to the received packet, the data stored in the jitter buffer in the receiver is gradually exhausted.

一方、送信装置のクロック精度が-100ppm、受信装置のクロック精度が+100ppmである場合は、送信装置より受信装置のクロックが200ppm遅く進むことになる。受信装置が、受信パケットに付与されたRTPタイムスタンプ値に従って時間間隔をあけてパケット送信すると、受信装置内のジッタバッファ内でデータが滞留する。 On the other hand, if the clock accuracy of the transmitter is −100 ppm and the clock accuracy of the receiver is +100 ppm, the clock of the receiver will be 200 ppm slower than the clock of the transmitter. When the receiving device transmits packets at time intervals according to the RTP time stamp value added to the received packets, data stays in the jitter buffer within the receiving device.

特許文献2に開示された技術をNFVが適用されたネットワークに用いることが考えられる。しかし、網境界でジッタを補正することをNFVで実現するためには、特許文献2に開示されたようなPOI網で行う専用ハードウェアを用いた外部同期が利用できない。つまり、特許文献2に開示された方式は、外部クロックを必要とする構成であり、専用のハードウェアが必要となる。そのため、特許文献2に開示された技術をNFVが適用されたネットワークに用いることができない。 It is conceivable to use the technology disclosed in Patent Document 2 in a network to which NFV is applied. However, in order to realize jitter correction at the network boundary with NFV, external synchronization using dedicated hardware performed in the POI network as disclosed in Patent Document 2 cannot be used. In other words, the method disclosed in Patent Document 2 is a configuration that requires an external clock, and requires dedicated hardware. Therefore, the technique disclosed in Patent Document 2 cannot be used in a network to which NFV is applied.

このように、特許文献2によるジッタ対策をNFVで実現するためには、既存のPOI網で行っていた専用ハードウェアを用いた外部同期が利用できないため、汎用CPUで実現可能なジッタ対策(ソフトウェアにより実現可能なジッタ対策)が必要となる。 In this way, in order to realize the jitter countermeasure according to Patent Document 2 in NFV, it is not possible to use the external synchronization using dedicated hardware, which was performed in the existing POI network. Jitter countermeasures that can be realized by

本発明は、装置間のクロックスキューによるジッタバッファ内部のデータ遅延を防止することに寄与する、通信装置、通信方法及びプログラムを提供することを主たる目的とする。 A main object of the present invention is to provide a communication device, a communication method, and a program that contribute to preventing data delay inside a jitter buffer due to clock skew between devices.

本発明乃至開示の第1の視点によれば、対向装置からパケットを受信する、受信部と、バッファへの受信パケットの書き込み及び読み出しを制御する、バッファ制御部と、前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する、推定部と、を備え、前記バッファ制御部は、前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定する、通信装置が提供される。 According to a first aspect of the present invention or disclosure, a receiving unit that receives packets from a counterpart device, a buffer control unit that controls writing and reading of received packets to and from a buffer, and a transmission unit that transmits a received packet to a transfer destination device; and a clock deviation reflection value that reflects the clock deviation between the remote device and the own device based on the reception time of the received packet and the time stamp included in the received packet. an estimating unit for estimating, wherein the buffer control unit determines a time to retrieve the received packet from the buffer using the clock shift reflection value.

本発明乃至開示の第2の視点によれば、対向装置からパケットを受信する、受信部と、受信パケットが書き込まれるバッファと、前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、を備える通信装置において、前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定するステップと、前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定するステップと、を含む通信方法が提供される。 According to a second aspect of the present invention or disclosure, a receiving unit that receives a packet from a counterpart device, a buffer in which the received packet is written, and a received packet read from the buffer is transmitted to a transfer destination device. estimating a clock deviation reflection value that reflects the clock deviation between the opposing device and the own device, based on the reception time of the received packet and the time stamp included in the received packet, in the communication device comprising a transmission unit; and determining when to retrieve the received packet from the buffer using the clock skew reflective value.

本発明乃至開示の第3の視点によれば、対向装置からパケットを受信する、受信部と、受信パケットが書き込まれるバッファと、前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、を備える通信装置に搭載されたコンピュータに、前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する処理と、前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定する処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
According to a third aspect of the present invention or disclosure, a receiving unit that receives a packet from a counterpart device, a buffer in which the received packet is written, and a received packet read from the buffer are transmitted to a transfer destination device. A clock deviation reflection value reflecting the clock deviation between the opposing device and the own device based on the reception time of the received packet and the time stamp included in the received packet, in a computer installed in a communication device comprising a transmission unit. and determining the time to retrieve the received packet from the buffer using the clock deviation reflection value.
This program can be recorded in a computer-readable storage medium. The storage medium can be non-transient such as semiconductor memory, hard disk, magnetic recording medium, optical recording medium, and the like. The invention can also be embodied as a computer program product.

本発明乃至開示の各視点によれば、装置間のクロックスキューによるジッタバッファ内部のデータ遅延を防止することに寄与する、通信装置、通信方法及びプログラムが、提供される。 According to each aspect of the present invention and disclosure, there are provided a communication device, a communication method, and a program that contribute to preventing data delay inside jitter buffers due to clock skew between devices.

一実施形態の概要を説明するための図である。1 is a diagram for explaining an overview of an embodiment; FIG. 第1の実施形態に係る通信システムの概略構成の一例を示す図である。1 is a diagram illustrating an example of a schematic configuration of a communication system according to a first embodiment; FIG. 第1の実施形態に係るTrGWの動作を説明するための図である。FIG. 4 is a diagram for explaining the operation of the TrGW according to the first embodiment; FIG. 第1の実施形態に係るTrGWの動作を説明するための図である。FIG. 4 is a diagram for explaining the operation of the TrGW according to the first embodiment; FIG. 第1の実施形態に係るTrGWの動作の一例を示す図である。FIG. 4 is a diagram showing an example of the operation of TrGW according to the first embodiment; パケットの進み又は遅れを説明するための図である。FIG. 4 is a diagram for explaining advance or delay of packets; TrGWによるバーストパケットの最終パケット決定動作を説明するための図である。FIG. 10 is a diagram for explaining the operation of determining the last packet of burst packets by the TrGW; コネクション管理部により管理されるコネクション情報の一例を示す図である。FIG. 4 is a diagram showing an example of connection information managed by a connection management unit; 受信部の動作の一例を示すフローチャートである。4 is a flow chart showing an example of the operation of a receiver; 受信部の受信処理の一例を示すフローチャートである。6 is a flowchart showing an example of reception processing of a reception unit; エンキュー部の動作の一例を示すフローチャートである。4 is a flow chart showing an example of the operation of an enqueue unit; エンキュー部のエンキュー処理の一例を示すフローチャートである。8 is a flowchart illustrating an example of enqueue processing by an enqueue unit; デキュー部の動作の一例を示すフローチャートである。4 is a flow chart showing an example of the operation of a dequeue unit; 送信部の動作の一例を示すフローチャートである。4 is a flow chart showing an example of the operation of a transmission unit; 推定部の動作の一例を示すフローチャートである。6 is a flow chart showing an example of the operation of an estimating unit; 推定部によるDP(Delay Packing)判定の動作の一例を示すフローチャートである。7 is a flowchart showing an example of DP (Delay Packing) determination operation by an estimating unit; 推定部による傾きa1、調整量計算の動作の一例を示すフローチャートである。9 is a flow chart showing an example of an operation of calculating an inclination a1 and an adjustment amount by an estimating unit; 第1の実施形態に係るTrGWのハードウェア構成の一例を示す図である。3 is a diagram illustrating an example of a hardware configuration of a TrGW according to the first embodiment; FIG. 第1の実施形態に係るTrGWの制御を説明するための図である。FIG. 4 is a diagram for explaining control of TrGW according to the first embodiment; テレフォン-イベント対応用のTS計算処理の一例を示すフローチャートである。FIG. 10 is a flowchart showing an example of TS calculation processing for telephone-event correspondence; FIG. 通常パケットの送受信を説明するための図である。FIG. 4 is a diagram for explaining transmission and reception of normal packets; 2パケットバーストの送受信の一例を示す図である。FIG. 4 is a diagram showing an example of transmission and reception of a two-packet burst; 3パケットバーストの送受信の一例を示す図である。FIG. 4 is a diagram showing an example of transmission and reception of a 3-packet burst;

初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。 First, an overview of one embodiment will be described. It should be noted that the drawing reference numerals added to this outline are added to each element for convenience as an example to aid understanding, and the description of this outline does not intend any limitation. Also, connecting lines between blocks in each figure include both bi-directional and uni-directional. The unidirectional arrows schematically show the flow of main signals (data) and do not exclude bidirectionality. Furthermore, in the circuit diagrams, block diagrams, internal configuration diagrams, connection diagrams, etc. disclosed in the present application, an input port and an output port exist at the input end and the output end of each connection line, respectively, although not explicitly shown. Input/output interfaces are similar.

一実施形態に係る通信装置100は、受信部101と、バッファ制御部102と、送信部103と、推定部104と、を備える(図1参照)。受信部101は、対向装置からパケットを受信する。バッファ制御部102は、バッファへの受信パケットの書き込み及び読み出しを制御する。送信部103は、バッファから読み出された受信パケットを転送先装置に送信する。推定部104は、受信パケットの受信時刻と受信パケットに含まれるタイムスタンプに基づき、対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する。バッファ制御部102は、クロックずれ反映値を用いてバッファから受信パケットを取り出す時刻を決定する。 A communication device 100 according to an embodiment includes a receiver 101, a buffer controller 102, a transmitter 103, and an estimator 104 (see FIG. 1). A receiving unit 101 receives a packet from a counterpart device. The buffer control unit 102 controls writing and reading of received packets to and from the buffer. The transmission unit 103 transmits the received packet read from the buffer to the transfer destination device. The estimating unit 104 estimates a clock deviation reflection value that reflects the clock deviation between the opposing device and the own device based on the reception time of the received packet and the time stamp included in the received packet. The buffer control unit 102 determines the time to extract the received packet from the buffer using the clock shift reflection value.

上記通信装置100は、パケットの受信時刻とパケットに含まれるタイムスタンプに基づき、対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する。TrGW10は、このクロックずれが反映された値をバッファ制御に用いることで、対向装置の送信間隔に近い間隔にてジッタ補正を実現する。 The communication device 100 estimates a clock deviation reflected value reflecting the clock deviation between the opposing device and the own device based on the packet reception time and the time stamp included in the packet. The TrGW 10 realizes jitter correction at an interval close to the transmission interval of the opposite device by using the value reflecting this clock shift for buffer control.

以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。 Specific embodiments will be described in more detail below with reference to the drawings. In addition, the same code|symbol is attached|subjected to the same component in each embodiment, and the description is abbreviate|omitted.

[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
[First embodiment]
The first embodiment will be described in more detail with reference to the drawings.

図2は、第1の実施形態に係る通信システムの概略構成の一例を示す図である。図2を参照すると、通信システムは、TrGW(Translation Gateway)10と、IBCF(Interconnect Border Control Function)20と、を含んで構成される。 FIG. 2 is a diagram illustrating an example of a schematic configuration of a communication system according to the first embodiment; Referring to FIG. 2, the communication system includes TrGW (Translation Gateway) 10 and IBCF (Interconnect Border Control Function) 20 .

図2に示す通信システムは、IP電話に係るサービスを提供する。図2では、異なる網(ネットワーク)に属する端末30-1と端末30-2にIP電話に係るサービスが提供される。 The communication system shown in FIG. 2 provides services related to IP telephony. In FIG. 2, services related to IP telephony are provided to terminals 30-1 and 30-2 belonging to different networks.

TrGW10及びIBCF20は、異網間の接続を提供する。IBCF20がシグナリング機能を提供し、TrGW10はNAPT(Network Address Port Translation)変換等を行い網間接続機能を提供する。 TrGW 10 and IBCF 20 provide connections between different networks. The IBCF 20 provides a signaling function, and the TrGW 10 performs NAPT (Network Address Port Translation) conversion and the like to provide an inter-network connection function.

端末30-1と端末30-2が通信をする際には、セッション管理機能(CSCF;Call Session Control Function)がSIP(Session Initiation Protocol)メッセージをIBCF20に送信する。TrGW10とIBCF20は、MEGACO(Media Gateway Control Protocol)に規定されるインターフェイスにより互いに通信し、端末30-1と端末30-2のセッションを確立する。 When the terminals 30 - 1 and 30 - 2 communicate with each other, a call session control function (CSCF) sends a SIP (Session Initiation Protocol) message to the IBCF 20 . TrGW 10 and IBCF 20 communicate with each other through an interface defined by MEGACO (Media Gateway Control Protocol) to establish a session between terminal 30-1 and terminal 30-2.

第1の実施形態では、網間ゲートウェイであるTrGW10は、RTPパケットを端末30-1から受信し、当該受信したパケットを端末30-2に向けて転送する場合について説明する。 In the first embodiment, the TrGW 10, which is an inter-network gateway, receives an RTP packet from the terminal 30-1 and transfers the received packet to the terminal 30-2.

IP電話では、所定周期(例えば、8kHz)で音声信号がサンプリングされ、複数のサンプル結果は1つのパケットにまとめられ所定間隔(例えば、20ms)ごとに送信される。TrGW10は、端末30-1から所定の間隔ごとに送信されるRTPパケットを受信し、当該所定の間隔で受信したRTPパケットを端末30-1の転送先装置である端末30-2に転送する。その際、TrGW10は、対向装置である端末30-1から送信されるRTPパケットのゆらぎ(ジッタ)を吸収し、所定間隔でRTPパケットが端末30-2に送信されるように制御する(図3参照)。 In IP telephony, voice signals are sampled at a predetermined cycle (eg, 8 kHz), and a plurality of sampling results are collected into one packet and transmitted at predetermined intervals (eg, 20 ms). The TrGW 10 receives RTP packets transmitted from the terminal 30-1 at predetermined intervals, and transfers the RTP packets received at the predetermined intervals to the terminal 30-2, which is the transfer destination device of the terminal 30-1. At this time, the TrGW 10 absorbs jitter in the RTP packets transmitted from the terminal 30-1, which is the opposite device, and controls so that the RTP packets are transmitted to the terminal 30-2 at predetermined intervals (FIG. 3). reference).

その際、TrGW10は、対向装置である端末30-1と自装置のクロックスキューにより内部のジッタバッファの遅延が起きないようにパケット転送を制御する。より具体的には、TrGW10は、ジッタバッファのデキュー速度を、対向装置である端末30-1から送信されるRTPパケットに近づけ、所定期間経過後のタイミングにてジッタバッファ内にRTPパケットが滞留する時間を調整する。即ち、TrGW10は、ジッタバッファにパケットを格納してから読み出すまでの時間(デキュー速度)を、対向装置である端末30-1のRTPパケット送信間隔に近づくように、RTPパケットがジッタバッファ内に滞留する時間を制御する。 At this time, the TrGW 10 controls packet transfer so that the internal jitter buffer does not delay due to the clock skew between the terminal 30-1, which is the opposite device, and its own device. More specifically, the TrGW 10 brings the dequeue speed of the jitter buffer close to the RTP packets transmitted from the terminal 30-1, which is the opposite device, and the RTP packets stay in the jitter buffer at the timing after the lapse of a predetermined period of time. adjust the time. That is, the TrGW 10 makes the time (dequeue rate) from storing a packet in the jitter buffer to reading it out closer to the RTP packet transmission interval of the terminal 30-1, which is the opposite device, so that the RTP packets stay in the jitter buffer. control the time.

TrGW10は、RTPパケット受信時の汎用CPU(Central Processing Unit)の動作クロック毎に積算されるカウンタであるTime Stamp Counter(以下、TSCと表記する)などの高分解能のクロックを利用してパケット受信時刻(以下、RT値と表記する)を測定する。即ち、TrGW10は、自装置に内蔵された高分解能のクロック(例えば、4GHz)の精度にてRTPパケットの受信時刻(RT値)を測定する。 The TrGW 10 uses a high-resolution clock such as a Time Stamp Counter (hereinafter referred to as TSC), which is a counter that is accumulated for each operation clock of a general-purpose CPU (Central Processing Unit) when receiving an RTP packet, to calculate the packet reception time. (hereinafter referred to as RT value) is measured. That is, the TrGW 10 measures the reception time (RT value) of the RTP packet with the precision of a high-resolution clock (for example, 4 GHz) incorporated in the own device.

TrGW10は、パケットの受信時刻RTとパケットに含まれるタイムスタンプに基づき、対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する。具体的には、TrGW10は、上記測定したパケット受信時刻RTと、RTPタイムスタンプ値(以下、TS値と表記する)と、の回帰直線の傾きをクロックずれ反映値として算出する。TrGW10は、当該算出した傾き(クロックずれ反映値)を用いてデキュー時刻の制御を行う。具体的には、TrGW10は、ジッタバッファにデータパケットをエンキューしてからデキューする間隔を「前パケットとのサイクル数差分×傾き」に設定することで、端末30-1の送信間隔に近い間隔でのジッタ補正を実現する。 Based on the packet reception time RT and the time stamp included in the packet, the TrGW 10 estimates a clock deviation reflected value that reflects the clock deviation between the opposite device and the own device. Specifically, the TrGW 10 calculates the slope of the regression line between the measured packet reception time RT and the RTP time stamp value (hereinafter referred to as TS value) as the clock shift reflection value. The TrGW 10 controls the dequeue time using the calculated slope (clock shift reflection value). Specifically, the TrGW 10 sets the interval at which data packets are enqueued to and dequeued from the jitter buffer to “the difference in the number of cycles from the previous packet x the slope”, so that the interval is close to the transmission interval of the terminal 30-1. jitter correction.

例えば、RTPタイムスタンプ値(TS値)とパケット受信時刻(RT値)をそれぞれX軸、Y軸に設定すると図4に示すような直線が得られる。当該直線の傾きは、RT2-RT1)/(TS2-TS1)を計算することで求められる。TrGW10は、当該傾きを求め、「前パケットとのサイクル数差分×傾き」を計算する。仮に、計算するタイミングが、図4のTS2の場合であれば、前パケットとのサイクル数差分は、(TS2-TS1)相当のクロック数であり、当該クロック数に傾きaを乗算すると、(RT2-RT1)相当のクロック数が得られる。TrGW10は、このクロック数(RT2-RT1)をジッタバッファのデキュー時間にする。 For example, if the RTP time stamp value (TS value) and packet reception time (RT value) are set on the X axis and the Y axis respectively, a straight line as shown in FIG. 4 is obtained. The slope of the straight line is obtained by calculating RT2-RT1)/(TS2-TS1). The TrGW 10 obtains the slope and calculates "difference in number of cycles from previous packet x slope". If the timing for calculation is TS2 in FIG. 4, the difference in the number of cycles from the previous packet is the number of clocks corresponding to (TS2-TS1). -RT1) A corresponding number of clocks can be obtained. The TrGW 10 uses this number of clocks (RT2-RT1) as the jitter buffer dequeue time.

このように、TrGW10は、第1の受信パケットとその直前に受信した第2の受信パケットそれぞれの対応するタイムスタンプの差分に回帰直線の傾きを乗じて得られる時刻に基づき、第1の受信パケットをジッタバッファから読み出す時刻を決定する。 In this way, the TrGW 10 generates the first received packet based on the time obtained by multiplying the difference between the corresponding time stamps of the first received packet and the second received packet received immediately before by the slope of the regression line. is read from the jitter buffer.

また、TrGW10は、Delay Packingを受信し得る状況で、Delay Packing受信を判定する。TrGW10は、当該判定結果により、Delay Packingにより遅れているパケットを上記傾きの推定に不使用とすることで、端末30-1のパケット送信間隔を正確に推定する。つまり、TrGW10は、複数のパケットがバースト受信された場合に、バースト受信された複数のパケットのうち最後に受信したパケット以外のパケットは、上記回帰直線の傾きの算出に不使用とする。TrGW10は、Delay Packingのようなバースト受信を行う環境下において、回帰直線の傾きを推定するためのサンプルデータに遅れが発生したデータを含めないことで、対向装置(端末30-1)の送信間隔に近い間隔でのジッタ補正を実現する。 Also, the TrGW 10 determines reception of Delay Packing in a situation where Delay Packing can be received. The TrGW 10 accurately estimates the packet transmission interval of the terminal 30-1 by not using the packets delayed due to the delay packing for estimating the slope based on the determination result. That is, when a plurality of packets are burst-received, the TrGW 10 does not use packets other than the last received packet among the plurality of burst-received packets for calculating the slope of the regression line. The TrGW 10 does not include delayed data in the sample data for estimating the slope of the regression line in an environment where burst reception such as Delay Packing is performed. Jitter correction at an interval close to .

初めに、上記TrGW10の制御を実現するための理論的説明を行う。 First, a theoretical explanation for realizing the control of the TrGW 10 will be given.

<デキュー速度とTrGW10内の遅延時間の調整>
TrGW10のデキュー速度を対向装置である端末30-1の送信速度(送信間隔)に合わせ、TrGW10内部の遅延はジッタバッファ深度設定値で動作するよう調整する仕組みを説明する。なお、バッファ深度設定値とは、揺らぎ吸収のための自装置内部の遅延時間相当のTSCカウンタ値である。パケット化周期を20msとすれば、バッファ深度設定値には20msに相当するTSCカウンタ値が設定される。さらに、3パケットのバースト送信が実施される環境を想定すれば、バッファ深度設定値には、60ms(20×3ms)に相当するTSCカウンタ値が設定される。
<Adjustment of dequeue speed and delay time in TrGW10>
A mechanism will be described in which the dequeue speed of the TrGW 10 is adjusted to match the transmission speed (transmission interval) of the terminal 30-1, which is the opposite device, and the delay inside the TrGW 10 is adjusted to operate with the jitter buffer depth set value. The buffer depth set value is a TSC counter value corresponding to the internal delay time for absorbing fluctuations. Assuming that the packetization period is 20 ms, the TSC counter value corresponding to 20 ms is set as the buffer depth setting value. Furthermore, assuming an environment in which burst transmission of 3 packets is performed, a TSC counter value corresponding to 60 ms (20×3 ms) is set as the buffer depth setting value.

上述のように、TrGW10によるパケットの送信間隔はTS値の差分値と比例するので、TS値とRT値から得られる直線の傾き(係数)を導出し、TS値の差分に導出した係数(クロックずれ反映値)を乗じれば、端末30-1と同じ送信間隔でパケットを転送できることになる。 As described above, since the packet transmission interval by the TrGW 10 is proportional to the TS value difference, the slope (coefficient) of the straight line obtained from the TS value and the RT value is derived, and the coefficient (clock If it is multiplied by the difference reflection value), packets can be transferred at the same transmission interval as the terminal 30-1.

RTPパケットの受信時刻RT、受信したRTPパケットに付与されるTS値の関係はRTPセッション単位で、下記の式(1)の通りとなる。ここで、揺らぎに大きく偏りがないと仮定すれば、最小二乗推定で回帰直線の傾きを推定できる。あるいは、下記の式(2)に示すような2つのサンプル間の傾きで推定することができる。 The relationship between the reception time RT of the RTP packet and the TS value assigned to the received RTP packet is expressed by the following formula (1) for each RTP session. Here, assuming that the fluctuations are not greatly biased, the slope of the regression line can be estimated by least-squares estimation. Alternatively, it can be estimated by the slope between two samples as shown in Equation (2) below.

[式1]
RT(k)=a1×TS(k)+a0+揺らぎ
[Formula 1]
RT(k)=a1×TS(k)+a0+fluctuation

式(1)において、RT(k)はk番目のパケット受信時刻、TS(k)はk番目のパケットに付与されたTS値、a1は対向端末である端末30-1が送信するTS値1クロック経過後(TS値1クロック分)の自装置での時刻である。また、a0は平均遅延時間やランダムに付与されるTS値等の初期値からくる固定成分である。 In equation (1), RT(k) is the k-th packet reception time, TS(k) is the TS value assigned to the k-th packet, and a1 is the TS value 1 transmitted by terminal 30-1, which is the opposite terminal. This is the time in the own device after the clock has elapsed (for one clock of the TS value). Also, a0 is a fixed component derived from an initial value such as an average delay time or a randomly assigned TS value.

[式2]
a1={RT(ne)-RT(nb)}/{TS(ne)-TS(nb)}
[Formula 2]
a1={RT(ne)−RT(nb)}/{TS(ne)−TS(nb)}

式(2)において、neは一定時間の経過後のサンプル番号、nbは基準となるサンプル番号である。ここで、サンプル番号はRTPシーケンス番号と等価なセッション内でユニークな、初回受信パケットに「1」が設定されるパケットの通し番号とする。 In equation (2), ne is the sample number after a certain period of time has elapsed, and nb is the reference sample number. Here, the sample number is a serial number of packets in which "1" is set to the first received packet, which is unique within the session and is equivalent to the RTP sequence number.

なお、RTPパケットに記載される(含まれる)タイムスタンプは対向装置である端末30-1が付与する値である。一方、受信されたRTPパケットの受信時刻はTrGW10が付与する値である。このように2つ異なる装置が付与する時刻から算出される、上記式(1)又は(2)の傾き(勾配)a1は、2つの装置のクロックずれを反映する値となる。 Note that the time stamp described (included) in the RTP packet is a value given by the terminal 30-1, which is the opposite device. On the other hand, the reception time of the received RTP packet is a value given by TrGW10. The slope (slope) a1 of the above equation (1) or (2), which is calculated from the times given by the two different devices in this way, is a value that reflects the clock shift of the two devices.

以下、推定結果については一定期間ごとに求めることとし、各期間における推定結果をa1(g)と示す。なお、上記推定結果に含まれるgは世代数を示しており、g=0は推定前の値を示す。a1(0)は初期値であり、TrGW10のクロック数(高分解能のクロック、TSC)に換算したレートを指す。 Hereinafter, the estimation result is obtained for each fixed period, and the estimation result for each period is denoted by a1(g). Note that g included in the estimation result indicates the number of generations, and g=0 indicates a value before estimation. a1(0) is an initial value and indicates a rate converted to the number of clocks of TrGW10 (high-resolution clock, TSC).

なお、TrGW10は、推定結果a1(g)が初期値a1(0)と大きく異なる場合には、推定結果a1(g)を初期値a1(0)で上書きする。具体的には、TrGW10は、下記の式(3)で示される推定条件が成立する場合に、推定結果a1(g)を採用する。 Note that the TrGW 10 overwrites the estimation result a1(g) with the initial value a1(0) when the estimation result a1(g) is significantly different from the initial value a1(0). Specifically, the TrGW 10 adopts the estimation result a1(g) when the estimation condition represented by the following formula (3) is satisfied.

[式3]
|a1(g)-a1(0)|/a1(0)<α
[Formula 3]
|a1(g)-a1(0)|/a1(0)<α

式(3)において、αは正常とみなすクロック誤差範囲(例えば、0.1%)である。 In equation (3), α is the clock error range (for example, 0.1%) that is considered normal.

TrGW10は、内部のジッタバッファにエンキューを行う際、パケットデータ毎にデキュー予定時刻を設定する。TrGW10は、ジッタバッファにエンキューされたパケットデータに関し、デキュー予定時刻に達したらパケットをジッタバッファからデキューし外部へ送信する。 The TrGW 10 sets the scheduled dequeue time for each packet data when enqueuing in the internal jitter buffer. Regarding the packet data enqueued in the jitter buffer, the TrGW 10 dequeues the packet from the jitter buffer and transmits it to the outside when the scheduled dequeue time is reached.

TrGW10は、直前のデキュー済パケットを用いて得られるTS値差分が表すコーデック固有のサンプリング周波数分の時間を空けてデキューすることで、パケット~パケット間の送信間隔を再現する。TrGW10や端末30-1に搭載された装置クロックには個体差があるため、初めは誤差があり、TrGW10は端末30-1のパケット送信間隔を正確に再現できない。 The TrGW 10 reproduces the transmission interval between packets by dequeuing after a time corresponding to the codec-specific sampling frequency represented by the TS value difference obtained using the immediately preceding dequeued packet. Since there are individual differences in the device clocks installed in the TrGW 10 and the terminal 30-1, there is an error at first, and the TrGW 10 cannot accurately reproduce the packet transmission interval of the terminal 30-1.

しかし、TrGW10は、RTPパケットの受信情報を用い、式(1)の最小二乗推定、又は、式(2)で直線の傾きを導出し、当該傾きから得られる端末30-1のパケット送信レート(送信間隔)をジッタバッファのデキュー間隔に反映させる。その結果、端末30-1の送信間隔に近い間隔でのジッタ補正が実現される。 However, the TrGW 10 uses the received information of the RTP packets to derive the least-squares estimation of Equation (1) or the slope of the straight line using Equation (2), and the packet transmission rate of the terminal 30-1 obtained from the slope ( transmission interval) is reflected in the dequeue interval of the jitter buffer. As a result, jitter correction is realized at intervals close to the transmission intervals of the terminal 30-1.

次に、デキュー予定時刻とTrGW10による送信間隔について説明する。 Next, the scheduled dequeue time and the transmission interval by the TrGW 10 will be described.

2つの装置が通信を開始した直後(g=0)ではTrGW10は、対向装置である端末30-1の送信レート(送信間隔)が導出できていない。そこで、TrGW10は、ジッタバッファのデキュー間隔は、TS値差分に相当する時間を自装置のクロックでカウントし送信間隔を決定する。 Immediately after the two devices start communication (g=0), the TrGW 10 cannot derive the transmission rate (transmission interval) of the terminal 30-1, which is the opposite device. Therefore, the TrGW 10 determines the dequeue interval of the jitter buffer by counting the time corresponding to the TS value difference with its own clock.

TrGW10は、デキュー予定時刻DQTを下記の式(4)に従い設定する。 The TrGW 10 sets the scheduled dequeue time DQT according to the following equation (4).

[式4]
初回受信パケット:DQT(1)=RT(1)+ジッタバッファ深度設定値
2パケット目以降:
更新周期パケット:DQT(nu(g))={TS(k)-TS(k-1)}×a1(g)+DQT(k-1)+調整量(g)
非更新周期パケット以降:DQT(k)={TS(k)-TS(k-1)}×a1(g)+DQT(k-1)
[Formula 4]
First received packet: DQT(1)=RT(1)+jitter buffer depth set value Second packet and after:
Update cycle packet: DQT (nu (g)) = {TS (k) - TS (k-1)} x a1 (g) + DQT (k-1) + adjustment amount (g)
After non-update cycle packet: DQT(k)={TS(k)-TS(k-1)}×a1(g)+DQT(k-1)

なお、式(4)において、nu(g)は推定結果a1(g)をデキュー予定時刻計算に使用した初回サンプル番号。nu(g)の初期値は1である(nu(0)=1)。 In equation (4), nu(g) is the initial sample number for which the estimation result a1(g) is used for calculating the scheduled dequeue time. The initial value of nu(g) is 1 (nu(0)=1).

式(4)によれば、初回パケット受信時には、TrGW10は、最初のパケットを受信した時刻(RT(1))からジッタバッファ深度設定値(例えば、20ms)遅らせて受信したパケットを転送先装置に転送する。 According to formula (4), when receiving the first packet, the TrGW 10 delays the jitter buffer depth setting value (for example, 20 ms) from the time (RT(1)) at which the first packet was received, and sends the received packet to the transfer destination device. Forward.

初回パケット受信時以外では、TrGW10は、式(1)や式(2)から算出される傾きa1と調整量(g)により定まる遅延時間、パケットを遅延させて転送先装置に転送する。 Except when receiving the first packet, the TrGW 10 delays the packet by the delay time determined by the slope a1 calculated from the equations (1) and (2) and the adjustment amount (g), and transfers the packet to the transfer destination device.

なお、調整量(g)は、装置クロックのずれ(クロックスキュー)により蓄積する2つの装置間の時刻差(時間の進み、時間の遅れ)を解消するための値である。当該進み分をRTPパケットの受信ごとに調整すると揺らぎの発生要因となるので、TrGW10は、世代数の更新時に限り上記調整量(g)を決定する。 Note that the adjustment amount (g) is a value for canceling the time difference (advance of time, delay of time) between the two devices accumulated due to clock skew of the device. Adjusting the advance for each RTP packet reception causes fluctuations, so the TrGW 10 determines the adjustment amount (g) only when updating the number of generations.

また、式(4)において、エンキュー処理中の世代更新直後にデキュー処理するパケットを「更新周期パケット」と表記し、それ以外のパケットを「非更新周期パケット」と表記する。 In addition, in equation (4), a packet to be dequeued immediately after generation update during enqueue processing is referred to as "update cycle packet", and other packets are referred to as "non-update cycle packet".

式(4)によれば、通信当初は、TrGW10がRTPパケットを最初に受信した時刻RT(1)からジッタバッファ深度設定値(例えば、20ms)経過後に最初のRTPパケットが転送先に送信される。その後、TrGW10は、2つのRTPパケットのパケット受信時刻及び当該2つのパケットに記載されたタイムスタンプ値TSから算出される傾きa1を算出する。TrGW10は、当該算出したa1に2つのパケットに記載されたタイムスタンプ値の差分を乗算することで、対向装置である端末30-1のパケット転送間隔を把握する。TrGW10は、先のデキュー予定時刻DQT(k-1)に当該得られたパケット転送間隔を反映し、対向装置と同じパケット転送間隔を実現する。 According to equation (4), at the beginning of communication, the first RTP packet is transmitted to the transfer destination after the jitter buffer depth setting value (eg, 20 ms) has elapsed from the time RT (1) when the TrGW 10 first received the RTP packet. . After that, the TrGW 10 calculates the slope a1 calculated from the packet reception times of the two RTP packets and the time stamp values TS described in the two packets. The TrGW 10 multiplies the calculated a1 by the difference between the time stamp values described in the two packets, thereby grasping the packet transfer interval of the terminal 30-1, which is the opposite device. The TrGW 10 reflects the obtained packet transfer interval in the previous dequeue scheduled time DQT(k-1), and realizes the same packet transfer interval as that of the opposite device.

次に、傾きa1の推定結果のデキュー予定時刻計算への更新について説明する。 Next, updating of the estimation result of the slope a1 to the dequeue scheduled time calculation will be described.

TrGW10は、式(1)又は(2)により傾きa1を算出するタイミングにて、直前の傾きa1算出から上記タイミングまでの間の遅延に関する平均値を下記の式(5)に従い計算する。つまり、TrGW10は、各世代について、所定期間においてパケットがジッタバッファ202に格納されている期間の平均値を算出する。 The TrGW 10 calculates, at the timing of calculating the gradient a1 by the equation (1) or (2), the average value of the delay from the immediately preceding calculation of the gradient a1 to the above timing according to the following equation (5). That is, the TrGW 10 calculates the average value of the period during which packets are stored in the jitter buffer 202 in a predetermined period for each generation.

[式5]

Figure 0007148199000001
[Formula 5]
Figure 0007148199000001

式(5)において、nb(g)は推定結果a1(g)の推定に使用するデータの初回サンプル番号である。また、nb(0)=1とする。式(5)において、ne(g)はa1(g)の推定に使用するデータの最終サンプル番号、Naは計算対象となるサンプル数である。なお、式(5)において、Delay Packingの一部パケットは、平均値算出の対象外とする。 In Equation (5), nb(g) is the initial sample number of data used to estimate the estimation result a1(g). Also, nb(0)=1. In Equation (5), ne(g) is the final sample number of data used to estimate a1(g), and Na is the number of samples to be calculated. Note that, in Expression (5), some packets of Delay Packing are excluded from the calculation of the average value.

また、TrGW10は、|ジッタバッファ深度-平均遅延|が閾値よりも大きく、且つ、式(3)の条件を満たさない場合には、更新タイミング(傾きa1を算出するタイミング)にて調整量(g)を初期化する(0にする)。つまり、TrGW10は、下記の式(6)に従って、調整量を更新する。 Further, when |jitter buffer depth−average delay| ) is initialized (set to 0). That is, the TrGW 10 updates the adjustment amount according to the following formula (6).

[式6]
|ジッタバッファ深度-平均遅延|>β;調整量(g+1)=-平均遅延(g)
|ジッタバッファ深度-平均遅延|≦β;調整量(g+1)=0
[Formula 6]
|jitter buffer depth−average delay|>β; adjustment amount (g+1)=−average delay (g)
|jitter buffer depth−average delay|≦β; adjustment amount (g+1)=0

なお、式(6)において、βは閾値である。例えば、パケット化周期が20msであればβは5ms程度とする。このように、TrGW10は、式(5)により算出された平均値(平均遅延)に基づき調整値を算出する。 Note that in equation (6), β is a threshold. For example, if the packetization cycle is 20 ms, β should be about 5 ms. Thus, the TrGW 10 calculates the adjustment value based on the average value (average delay) calculated by Equation (5).

上記TrGW10の動作の概略を図示すると、図5のとおりとなる。図5に示すように、TrGW10は、セッション毎に対向装置から送信されてくるRTPパケットの揺らぎ(ジッタ)をジッタバッファにより吸収する。その際、TrGW10は、対向装置の送信レート(送信間隔)を推定し、当該推定値をジッタバッファの制御に反映する。その結果、TrGW10は、対向装置と同じ送信間隔にて、転送先装置にパケットを転送することができる。 An outline of the operation of the TrGW 10 is shown in FIG. As shown in FIG. 5, the TrGW 10 absorbs fluctuations (jitters) of RTP packets transmitted from the opposite device for each session using a jitter buffer. At this time, the TrGW 10 estimates the transmission rate (transmission interval) of the opposite device and reflects the estimated value in controlling the jitter buffer. As a result, the TrGW 10 can transfer packets to the transfer destination device at the same transmission interval as the counterpart device.

<特定のパケット受信ケースでの外れ値判定>
上述のように、基地局の仕様によっては複数のパケットがバースト的に送信される場合がある(図22、図23参照)。
<Outlier determination in a specific packet reception case>
As described above, a plurality of packets may be transmitted in bursts depending on the specifications of the base station (see FIGS. 22 and 23).

TrGW10が、図22や図23に示されるようなパケット間隔でパケットを受信した場合、揺らぎが大きく、式(1)に示す線形回帰による傾きの推定に影響する可能性がある。そこで、TrGW10は、基地局での遅れが大きくないバースト受信単位における最後のパケットを傾きa1の推定で用いる。 When the TrGW 10 receives packets at packet intervals as shown in FIG. 22 and FIG. 23, the fluctuation is large and may affect the slope estimation by linear regression shown in Equation (1). Therefore, the TrGW 10 uses the last packet in the unit of burst reception in which the delay at the base station is not large to estimate the slope a1.

TrGW10は、直前に受信したパケットと受信パケットとの受信間隔の検査を行う。TrGW10は、下記の式(7)により受信間隔の検査を行う。 The TrGW 10 checks the reception interval between the packet received immediately before and the received packet. The TrGW 10 checks the reception interval using the following formula (7).

[式7]
DEL(k)={RT(k)-RT(k-1)}-{TS(k)-TS(k-1)}×a1(g)
[Formula 7]
DEL(k)={RT(k)−RT(k−1)}−{TS(k)−TS(k−1)}×a1(g)

式(7)において受信間隔DEL(k)の値が負の値であれば、受信間隔は想定よりも短く、0であれば受信間隔は想定に一致し、正の値であれば受信間隔が想定よりも長いことを示す。TrGW10は、受信間隔に対して閾値処理を施し、パケットがパケット化周期の何周期分進んでいるか又は遅れているかを判定する(図6参照)。 In equation (7), if the value of the reception interval DEL(k) is a negative value, the reception interval is shorter than expected; if it is 0, the reception interval matches the assumption; Indicates longer than expected. The TrGW 10 performs threshold processing on the reception interval and determines by how many packetization cycles the packet is advanced or delayed (see FIG. 6).

TrGW10は、パケット化周期に換算して何周期分、受信パケットが進んでいるか遅れているかをE1(k)として計算する。なお、E1(k)及び後述するE2(k)、E3(k)はそれぞれ整数値である。例えば、パケット化周期が20ms、受信間隔が40msの場合には、2パケット化周期分進んでいるので、E1(k)は2となる。 The TrGW 10 calculates E1(k) by how many cycles the received packet is advanced or delayed in terms of the packetization cycle. Note that E1(k) and E2(k) and E3(k), which will be described later, are integer values. For example, when the packetization period is 20 ms and the reception interval is 40 ms, E1(k) is 2 because it is advanced by two packetization periods.

また、TrGW10は、計算したE1(k)を用いて、E2(k)、E3(k)を以下の式(8)に従い計算する。 The TrGW 10 also uses the calculated E1(k) to calculate E2(k) and E3(k) according to the following equation (8).

[式8]
E1(k)=E1(k)
E2(k)=E1(k)+E1(k-1)
E3(k)=E2(k)+E1(k-2)
[Formula 8]
E1(k)=E1(k)
E2(k)=E1(k)+E1(k-1)
E3(k)=E2(k)+E1(k-2)

なお、TrGW10は、E1(k)~E3(k)の計算の際、いずれかの値が「0」であれば計算を終了する。 When calculating E1(k) to E3(k), TrGW 10 ends the calculation if any value is "0".

図21に示すような通常のパケット送受信では、顕著な遅れや進みが発生しないためE1は「0」になる。図22に示すような2パケット毎にバースト受信する場合は、2パケット毎に通常タイミングでの受信に戻るのでE2は「0」になる。図23示すような3パケット毎にバースト受信する場合は3パケット毎に通常タイミングでの受信に戻るのでE3は「0」になる。 In normal packet transmission/reception as shown in FIG. 21, E1 becomes "0" because no significant delay or advance occurs. When burst reception is performed every two packets as shown in FIG. 22, E2 becomes "0" because reception returns to normal timing every two packets. When burst reception is performed every three packets as shown in FIG. 23, E3 becomes "0" because reception returns to normal timing every three packets.

TrGW10は、E1~E3の値を用いて、バーストパケットの最終パケットを決定する。具体的には、TrGW10は、図7に示すような関係を用いて、バーストパケットの最終パケットを決定する。例えば、図7を参照すると、TrGW10は、E1~E3の計算結果が、それぞれ、「-1」、「-2」、「0」であれば、3パケット毎のバースト受信であること、及び3番目のパケットが最終パケットであることを把握できる。即ち、TrGW10は、上記3変数の組み合わせを用い、Delay Packingのような3パケットの周期的なバースト受信の発生有無、及びバーストパケットの最終パケットを判定することができる。 TrGW 10 uses the values of E1-E3 to determine the last packet of burst packets. Specifically, the TrGW 10 determines the last packet of the burst packets using the relationship shown in FIG. For example, referring to FIG. 7, if the calculation results of E1 to E3 are "-1", "-2", and "0", respectively, the TrGW 10 indicates burst reception every 3 packets; th packet is the final packet. That is, the TrGW 10 can use the combination of the above three variables to determine whether periodic burst reception of three packets such as Delay Packing occurs and the last packet of the burst packets.

なお、式(8)は、Ei(k)=E(i-1)(k)+E1(k-i+1)のように拡張できる。式(8)ではi=1~3までの3変数でパケットの周期的なバースト受信の発生有無を判定しているが、変数を増やすことでより多くのパケットによるバースト送受信を判定することもできる。 Equation (8) can be expanded as Ei(k)=E(i-1)(k)+E1(k-i+1). In equation (8), three variables i = 1 to 3 are used to determine whether or not periodic burst reception of packets occurs. However, by increasing the number of variables, it is possible to determine burst transmission/reception with more packets. .

[装置構成]
図2を参照すると、第1の実施形態に係るTrGW10は、受信部201と、ジッタバッファ202と、バッファ制御部203と、送信部204と、推定部205と、TSC部206と、コネクション管理部207と、を含んで構成される。さらに、バッファ制御部203は、エンキュー部211と、デキュー部212と、デキュー予定時刻リスト213を格納する記憶手段と、を含む。
[Device configuration]
Referring to FIG. 2, the TrGW 10 according to the first embodiment includes a receiver 201, a jitter buffer 202, a buffer controller 203, a transmitter 204, an estimator 205, a TSC 206, and a connection manager. 207. Further, the buffer control unit 203 includes an enqueue unit 211 , a dequeue unit 212 , and storage means for storing a dequeue schedule time list 213 .

受信部201は、対向装置である端末30-1からパケットを受信する手段である。受信部201は、RTPパケットを受信した際のTSCカウンタ値を記録し、セッション情報に合致するパケットを受信バッファに格納する。 The receiving unit 201 is means for receiving a packet from the terminal 30-1, which is the opposite device. The receiving unit 201 records the TSC counter value when the RTP packet is received, and stores the packet matching the session information in the reception buffer.

ジッタバッファ202は、揺らぎ吸収を行うために受信パケット(パケットデータ)を一時的に格納するためのバッファである。 The jitter buffer 202 is a buffer for temporarily storing received packets (packet data) in order to absorb fluctuations.

バッファ制御部203は、ジッタバッファ202への受信パケットの書き込み及び読み出しを制御する手段である。バッファ制御部203は、受信バッファに格納されたデータを読み出し、ジッタバッファ202に格納する(エンキュー部211によるエンキュー処理)。バッファ制御部203は、ジッタバッファ202内のデータのうちデキュー予定時刻を迎えたデータを送信バッファへ書き込む(デキュー部212によるデキュー処理)。その際、バッファ制御部203は、クロックずれ反映値を用いてジッタバッファ202から受信パケットを取り出す時刻(デキュー予定時刻)を決定する。また、バッファ制御部203は、エンキュー時には推定部205にデータを引き渡す(データをコピーする)。 The buffer control unit 203 is means for controlling writing and reading of received packets to and from the jitter buffer 202 . The buffer control unit 203 reads the data stored in the reception buffer and stores it in the jitter buffer 202 (enqueue processing by the enqueue unit 211). The buffer control unit 203 writes data that has reached the dequeue scheduled time out of the data in the jitter buffer 202 into the transmission buffer (dequeue processing by the dequeue unit 212). At this time, the buffer control unit 203 determines the time (scheduled dequeue time) for extracting the received packet from the jitter buffer 202 using the clock shift reflection value. In addition, the buffer control unit 203 transfers data to the estimation unit 205 (copies the data) at the time of enqueue.

デキュー予定時刻リスト213は、セッションID毎にデキュー予定時刻及び、パケットデータのジッタバッファ格納先が記録されたリストである。 The scheduled dequeue time list 213 is a list in which scheduled dequeue times and jitter buffer storage destinations of packet data are recorded for each session ID.

送信部204は、ジッタバッファ202から読み出された受信パケットを転送先装置である端末30-2に送信する手段である。送信部204は、内部に送信バッファを有し、当該送信バッファに格納されたデータをパケット化して送信する。 The transmission unit 204 is means for transmitting the received packet read from the jitter buffer 202 to the terminal 30-2, which is the transfer destination device. The transmission unit 204 has an internal transmission buffer, and packetizes and transmits the data stored in the transmission buffer.

推定部205は、デキューしたパケット情報に基づき対向端末の送信間隔(送信レート)を定める傾きa1や遅延調整量の計算を行い、計算結果をバッファ制御部203に通知する。 Based on the dequeued packet information, the estimation unit 205 calculates the slope a1 that determines the transmission interval (transmission rate) of the opposite terminal and the delay adjustment amount, and notifies the buffer control unit 203 of the calculation result.

バッファ制御部203は、取得した計算結果(傾きa1、遅延調整量)に基づきデキュー予定時刻を計算し、デキュー予定時刻リストに格納する。 The buffer control unit 203 calculates the scheduled dequeue time based on the obtained calculation result (slope a1, delay adjustment amount), and stores it in the scheduled dequeue time list.

TSC部206は、TrGW10に搭載されたCPUの起動後、CPUサイクル毎に+1される高分解能のTSC(Time Stamp Counter)カウンタである。TSC部206によるカウンタ値は、受信部201でのパケット受信時刻の測定や、バッファ制御部203のデキュー処理による送信時刻の確認に使用される。なお、TSC部206を実現するクロックは、少なくとも受信部201や送信部204の動作に用いられるクロック及び対向装置のパケット送受信に用いられるクロックよりも周波数(解像度)及び精度が高いものとする。 The TSC unit 206 is a high-resolution TSC (Time Stamp Counter) counter that is incremented by 1 every CPU cycle after the CPU mounted on the TrGW 10 is activated. The counter value obtained by the TSC unit 206 is used to measure the packet reception time in the reception unit 201 and to confirm the transmission time by the dequeue processing of the buffer control unit 203 . Note that the clock that implements the TSC unit 206 has a higher frequency (resolution) and accuracy than at least the clocks used for the operations of the receiver 201 and transmitter 204 and the clocks used for packet transmission/reception by the opposite device.

コネクション管理部207は、送信元セッション情報や転送先のセッション情報を記録したコネクション情報を管理する。図8は、コネクション管理部207により管理されるコネクション情報の一例を示す図である。コネクション管理部207は、IBCF20等から取得する情報を用いて図8に示すようなコネクション情報の生成、管理を行う。 The connection management unit 207 manages connection information in which transmission source session information and transfer destination session information are recorded. FIG. 8 is a diagram showing an example of connection information managed by the connection management unit 207. As shown in FIG. The connection management unit 207 generates and manages connection information as shown in FIG. 8 using information acquired from the IBCF 20 or the like.

[動作の説明]
次に、図面を参照しつつ、第1の実施形態に係るTrGW10の動作を説明する。
[Explanation of operation]
Next, the operation of the TrGW 10 according to the first embodiment will be described with reference to the drawings.

図9は、受信部201の動作の一例を示すフローチャートである。 FIG. 9 is a flow chart showing an example of the operation of the receiving unit 201. As shown in FIG.

受信部201は、パケットを受信(ステップS01)すると、受信処理を実行する(ステップS02)。 Upon receiving a packet (step S01), the receiving unit 201 executes a reception process (step S02).

図10は、受信部201の受信処理(図9のステップS02)の一例を示すフローチャートである。 FIG. 10 is a flow chart showing an example of reception processing (step S02 in FIG. 9) of the reception unit 201. As shown in FIG.

受信部201は、TSCカウンタ値を参照する(ステップS101)。 The receiving unit 201 refers to the TSC counter value (step S101).

受信部201は、受信パケットに合致するコネクション情報がコネクション管理情報に含まれるか否かを確認する(ステップS102)。 The receiving unit 201 checks whether the connection management information includes connection information that matches the received packet (step S102).

合致する情報がコネクション管理情報に含まれれば(ステップS102、Yes分岐)、受信部201は、コネクションID、TSCカウンタ値、パケットデータを受信バッファに格納する(ステップS103)。 If matching information is included in the connection management information (step S102, Yes branch), the reception unit 201 stores the connection ID, TSC counter value, and packet data in the reception buffer (step S103).

合致する情報がコネクション管理情報に含まれなければ(ステップS102、No分岐)、受信部201は、受信パケット(パケットデータ)を破棄する(ステップS104)。 If matching information is not included in the connection management information (step S102, No branch), the receiving unit 201 discards the received packet (packet data) (step S104).

図11は、バッファ制御部203に含まれるエンキュー部211の動作の一例を示すフローチャートである。 FIG. 11 is a flow chart showing an example of the operation of the enqueue unit 211 included in the buffer control unit 203. As shown in FIG.

エンキュー部211は、受信バッファを参照(ステップS11)し、未処理のデータが存在するか否かを確認する(ステップS12)。 The enqueuing unit 211 refers to the reception buffer (step S11) and checks whether or not unprocessed data exists (step S12).

未処理のデータが存在すれば(ステップS12、Yes分岐)、エンキュー部211はエンキュー処理を実行する(ステップS13)。 If unprocessed data exists (step S12, Yes branch), the enqueue unit 211 executes enqueue processing (step S13).

未処理のデータが存在しなければ(ステップS12、No分岐)、エンキュー部211はステップS11に戻る。 If there is no unprocessed data (step S12, No branch), the enqueue unit 211 returns to step S11.

図12は、エンキュー部211のエンキュー処理(図11のステップS13)の一例を示すフローチャートである。 FIG. 12 is a flow chart showing an example of enqueue processing (step S13 in FIG. 11) of the enqueue unit 211. As shown in FIG.

エンキュー部211は、エンキュー用のサンプル番号(エンキューサンプル番号)であるcnt_eqをインクリメント(更新)する(ステップS201)。 The enqueue unit 211 increments (updates) cnt_eq, which is a sample number for enqueue (enqueue sample number) (step S201).

エンキュー部211は、更新されたエンキューサンプル番号に基づき内部TSを決定する(ステップS202)。 The enqueue unit 211 determines the internal TS based on the updated enqueue sample number (step S202).

エンキュー部211は、当該決定された内部タイムスタンプTSに基づき、世代数の更新有無を判定する(ステップS203)。具体的には、エンキュー部211は、各世代にて最初にRTPパケットを受信してから予め定めた数のRTPパケットを受信したか否かにより世代の更新有無を判定する。例えば、100パケットの受信を1世代と定めれば、エンキュー部211は、1つの世代で100個のパケットを既に受信し、新たなパケット(101個目のパケット)を受信すると世代更新ありと判定する。 The enqueue unit 211 determines whether or not the number of generations has been updated based on the determined internal time stamp TS (step S203). Specifically, the enqueuing unit 211 determines whether or not a generation is updated based on whether or not a predetermined number of RTP packets have been received since the first RTP packet was received in each generation. For example, if the reception of 100 packets is defined as one generation, the enqueue unit 211 has already received 100 packets in one generation, and determines that there is generation update when a new packet (the 101st packet) is received. do.

世代数の更新がある場合には(ステップS203、Yes分岐)、エンキュー部211は、推定部205から取得する、セッションID、世代数、傾きa1、調整量を参照する(ステップS204)。 If the number of generations is updated (step S203, Yes branch), the enqueue unit 211 refers to the session ID, the number of generations, the slope a1, and the adjustment amount acquired from the estimation unit 205 (step S204).

エンキュー部211は、傾きa1を更新する(ステップS205)。 The enqueue unit 211 updates the slope a1 (step S205).

エンキュー部211は、更新された傾きa1を用いて、デキュー予定時刻DQT(cnt_eq(id))を決定する(ステップS206)。具体的には、エンキュー部211は、式(4)を用いてデキュー予定時刻DQTを決定する。 The enqueue unit 211 determines the scheduled dequeue time DQT(cnt_eq(id)) using the updated slope a1 (step S206). Specifically, the enqueue unit 211 determines the scheduled dequeue time DQT using equation (4).

世代数の更新がない場合には(ステップS203、No分岐)、エンキュー部211は、式(4)を用いてデキュー予定時刻DQTを決定する(ステップS207)。 If the number of generations is not updated (step S203, No branch), the enqueue unit 211 determines the scheduled dequeue time DQT using equation (4) (step S207).

エンキュー部211は、エンキューサンプル番号(cnt_eq(id))、パケットデータ、コネクション情報、パケット受信時刻RT(cnt_eq(id))、内部タイムスタンプTS(cnt_eq(id))をジッタバッファ202に格納する(ステップS208)。 The enqueue unit 211 stores the enqueue sample number (cnt_eq(id)), packet data, connection information, packet reception time RT (cnt_eq(id)), and internal time stamp TS (cnt_eq(id)) in the jitter buffer 202 ( step S208).

エンキュー部211は、コネクションID、デキュー予定時刻DQT(cnt_eq(id))、パケットデータの格納位置をデキュー予定リストに登録する(ステップS209)。 The enqueue unit 211 registers the connection ID, the scheduled dequeue time DQT (cnt_eq(id)), and the storage location of the packet data in the dequeue schedule list (step S209).

エンキュー部211は、エンキューするデータをジッタバッファ202に書き込む(ステップS210)。また、エンキュー部211は、エンキューするデータを推定部205に引き渡す。 The enqueuing unit 211 writes the data to be enqueued into the jitter buffer 202 (step S210). The enqueuing unit 211 also hands over the data to be enqueued to the estimating unit 205 .

このように、TrGW10は、世代数の更新があれば、傾きa1や調整量を取得し、当該取得した傾きa1、調整量を用いてデキュー予定時刻を決定する。つまり、TrGW10は、世代が変わった際に、調整値をジッタバッファ202からパケットを取り出す時刻(デキュー予定時刻)に反映する。換言すれば、TrGW10は、調整値をデキュー予定時刻に反映してから所定の数のパケットを受信した後(世代が更新された後)に再び調整値をデキュー予定時刻に反映する。 In this way, the TrGW 10 acquires the slope a1 and the adjustment amount when the number of generations is updated, and determines the scheduled dequeue time using the acquired slope a1 and the adjustment amount. That is, the TrGW 10 reflects the adjustment value to the time (scheduled dequeue time) at which packets are extracted from the jitter buffer 202 when the generation changes. In other words, the TrGW 10 reflects the adjustment value on the scheduled dequeue time again after receiving a predetermined number of packets (after the generation is updated) after reflecting the adjustment value on the scheduled dequeue time.

図13は、バッファ制御部203に含まれるデキュー部212の動作の一例を示すフローチャートである。 FIG. 13 is a flow chart showing an example of the operation of the dequeue unit 212 included in the buffer control unit 203. As shown in FIG.

デキュー部212は、TSCカウンタ値を参照する(ステップS301)。 The dequeue unit 212 refers to the TSC counter value (step S301).

デキュー部212は、デキュー予定時刻リスト213を参照し、次にデキューする対象を決定する(ステップS302)。 The dequeue unit 212 refers to the scheduled dequeue time list 213 and determines the target to be dequeued next (step S302).

デキュー部212は、現在のTSCカウンタ値がデキュー時刻(デキュー予定時刻)以降であるか否かを確認する(ステップS303)。 The dequeue unit 212 checks whether the current TSC counter value is after the dequeue time (scheduled dequeue time) (step S303).

現在のTSCカウンタ値がデキュー時刻以降であれば(ステップS303、Yes分岐)、デキュー部212は、ジッタバッファ202からパケットデータを読み出し、当該データを送信バッファに書き込む(ステップS304)。 If the current TSC counter value is after the dequeue time (step S303, Yes branch), the dequeue unit 212 reads the packet data from the jitter buffer 202 and writes the data to the transmission buffer (step S304).

現在のTSCカウンタ値がデキュー時刻以降でなければ(ステップS303、No分岐)、デキュー部212はステップS301に戻る。 If the current TSC counter value is not after the dequeue time (step S303, No branch), the dequeue unit 212 returns to step S301.

デキュー部212は、デキュー用のサンプル番号(デキューサンプル番号)であるcnt_dq(id)をインクリメント(更新)する(ステップS305)。 The dequeue unit 212 increments (updates) cnt_dq(id), which is the dequeue sample number (dequeue sample number) (step S305).

図14は、送信部204の動作の一例を示すフローチャートである。 FIG. 14 is a flow chart showing an example of the operation of the transmission unit 204. As shown in FIG.

送信部204は、送信バッファを参照(ステップS21)し、未処理のデータが存在するか否かを確認する(ステップS22)。 The transmission unit 204 refers to the transmission buffer (step S21) and checks whether unprocessed data exists (step S22).

未処理のデータが含まれれば(ステップS22、Yes分岐)、送信部204は、当該データをパケット化する(ステップS23)。 If unprocessed data is included (step S22, Yes branch), the transmission unit 204 packetizes the data (step S23).

未処理のデータが含まれなければ(ステップS22、No分岐)、送信部204は、ステップS21の処理に戻る。 If unprocessed data is not included (step S22, No branch), the transmission unit 204 returns to the process of step S21.

送信部204は、パケット化されたデータを送信する(ステップS24)。 The transmitting unit 204 transmits the packetized data (step S24).

図15は、推定部205の動作の一例を示すフローチャートである。 FIG. 15 is a flow chart showing an example of the operation of estimation section 205 .

推定部205は、バッファ制御部203から傾きa1推定用のデータパケットを受信する(ステップS31)。 The estimation unit 205 receives the data packet for estimating the slope a1 from the buffer control unit 203 (step S31).

推定部205は、当該データパケットが世代gにおける初受信のパケットか否かを判定する(ステップS32)。 The estimation unit 205 determines whether the data packet is the first received packet in generation g (step S32).

パケットが初受信のパケットの場合(ステップS32、Yes分岐)には、推定部205は、初回タイムスタンプ値TSとの差分(TS(k)-TS(nb(id)))を計算する(ステップS33)。 If the packet is the first received packet (step S32, Yes branch), the estimation unit 205 calculates the difference (TS(k)-TS(nb(id))) from the initial time stamp value TS (step S33).

パケットが初受信のパケットではない場合(ステップS32、No分岐)には、推定部205は、初回タイムスタンプ値TS(nb(id))を記憶する(ステップS34)。 If the packet is not the first received packet (step S32, No branch), the estimation unit 205 stores the initial time stamp value TS(nb(id)) (step S34).

推定部205は、更新周期の確認を行う(ステップS35)。具体的には、推定部205は、ステップS33にて算出した差分が閾値以上であるか否かを確認する。 The estimation unit 205 confirms the update period (step S35). Specifically, the estimation unit 205 confirms whether or not the difference calculated in step S33 is equal to or greater than a threshold.

当該差分が閾値以上である場合(ステップS35、Yes分岐)には、推定部205は、Delay Packingの判定を行う(DP判定;ステップS36)。 When the difference is equal to or greater than the threshold (step S35, Yes branch), the estimation unit 205 determines delay packing (DP determination; step S36).

当該差分が閾値以上ではない場合(ステップS35、No分岐)には、推定部205は、世代gのパケット受信時刻RT、タイムスタンプ値TS、デキュー予定時刻DQTを一時的に保存する(ステップS37)。 If the difference is not equal to or greater than the threshold (step S35, No branch), the estimation unit 205 temporarily stores the packet reception time RT, timestamp value TS, and scheduled dequeue time DQT of generation g (step S37). .

推定部205は、DP判定の後、傾きa1、調整量gを計算する(ステップS38)。 After the DP determination, the estimation unit 205 calculates the slope a1 and the adjustment amount g (step S38).

その後、推定部205は、世代数を更新する(ステップS39)。 After that, the estimation unit 205 updates the number of generations (step S39).

図16は、推定部205によるDP判定(図15のステップS36)の動作の一例を示すフローチャートである。 FIG. 16 is a flow chart showing an example of the operation of the DP determination (step S36 in FIG. 15) by the estimation unit 205. As shown in FIG.

推定部205は、上述の式(8)に基づき、E1~E3を計算する(ステップS401)。 The estimation unit 205 calculates E1 to E3 based on the above equation (8) (step S401).

推定部205は、計算したE1の値を確認する(ステップS402)。 The estimation unit 205 confirms the calculated value of E1 (step S402).

E1の値が「0」であれば、推定部205は、当該パケットは推定対象と判定する(ステップS405)。E1の値が「-1」であれば、推定部205は、ステップS403を実行する。E1の値が「0」、「-1」以外であれば、推定部205は、当該パケットは推定対象外と判定する(ステップS406)。 If the value of E1 is "0", the estimation unit 205 determines that the packet is to be estimated (step S405). If the value of E1 is "-1", the estimation unit 205 executes step S403. If the value of E1 is other than "0" and "-1", the estimation unit 205 determines that the packet is not subject to estimation (step S406).

推定部205は、計算したE2の値を確認する(ステップS403)。E2の値が「0」であれば、推定部205は、当該パケットは推定対象と判定する(ステップS405)。E2の値が「-2」であれば、推定部205は、ステップS404を実行する。E2の値が「0」、「-2」以外であれば、推定部205は、当該パケットは推定対象外と判定する(ステップS406)。 The estimation unit 205 confirms the calculated value of E2 (step S403). If the value of E2 is "0", the estimation unit 205 determines that the packet is to be estimated (step S405). If the value of E2 is "-2", the estimation unit 205 executes step S404. If the value of E2 is other than "0" and "-2", the estimation unit 205 determines that the packet is not subject to estimation (step S406).

推定部205は、計算したE3の値を確認する(ステップS404)。E3の値が「0」であれば、推定部205は、当該パケットは推定対象と判定する(ステップS405)。E3の値が「0」以外であれば、推定部205は、当該パケットは推定対象外と判定する(ステップS406)。 The estimation unit 205 confirms the calculated value of E3 (step S404). If the value of E3 is "0", the estimation unit 205 determines that the packet is to be estimated (step S405). If the value of E3 is other than "0", the estimation unit 205 determines that the packet is not subject to estimation (step S406).

図17は、推定部205による傾きa1、調整量計算(図15のステップS38)の動作の一例を示すフローチャートである。 FIG. 17 is a flow chart showing an example of the slope a1 and adjustment amount calculation (step S38 in FIG. 15) performed by the estimation unit 205. As shown in FIG.

推定部205は、式(1)又は(2)により、傾きa1を計算する(ステップS501)。 The estimating unit 205 calculates the slope a1 using the formula (1) or (2) (step S501).

推定部205は、計算された傾きa1が式(3)の条件を満たすか否かを判定する(a1は所定の条件を満たすか確認;ステップS502)。 The estimation unit 205 determines whether or not the calculated slope a1 satisfies the condition of Expression (3) (confirms whether a1 satisfies a predetermined condition; step S502).

当該条件を満たす場合(ステップS502、Yes分岐)、推定部205は、式(5)及び(6)に従い、調整量を計算する(ステップS503)。 If the condition is satisfied (step S502, Yes branch), the estimation unit 205 calculates the adjustment amount according to formulas (5) and (6) (step S503).

当該条件を満たさない場合(ステップS502、No分岐)、推定部205は、傾きa1及び調整量gを初期化する(ステップS504)。具体的には、a1(g)=a1(0)、調整量g=0に設定される。 If the condition is not satisfied (step S502, No branch), the estimation unit 205 initializes the slope a1 and the adjustment amount g (step S504). Specifically, a1(g)=a1(0) and the adjustment amount g=0 are set.

推定部205は、傾きa1(g)、調整量(g)をバッファ制御部203に通知する(ステップS505)。 The estimation unit 205 notifies the buffer control unit 203 of the slope a1(g) and the adjustment amount (g) (step S505).

[ハードウェア構成]
図18は、TrGW10のハードウェア構成の一例を示す図である。TrGW10は、図18に例示する構成を備える。例えば、TrGW10は、内部バスにより相互に接続される、CPU(Central Processing Unit)11、メモリ12、通信手段であるNIC(Network Interface Card)13等を備える。
[Hardware configuration]
FIG. 18 is a diagram showing an example of the hardware configuration of the TrGW 10. As shown in FIG. The TrGW 10 has the configuration illustrated in FIG. For example, the TrGW 10 includes a CPU (Central Processing Unit) 11, a memory 12, a communication means such as a NIC (Network Interface Card) 13, etc., which are interconnected by an internal bus.

但し、図18に示す構成は、TrGW10のハードウェア構成を限定する趣旨ではない。TrGW10は、図示しないハードウェアを含んでもよい。TrGW10に含まれるCPU等の数も図18の例示に限定する趣旨ではなく、例えば、複数のCPU11がTrGW10に含まれていてもよい。 However, the configuration shown in FIG. 18 is not meant to limit the hardware configuration of the TrGW 10 . The TrGW 10 may include hardware not shown. The number of CPUs and the like included in the TrGW 10 is not limited to the example shown in FIG.

メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)等である。 The memory 12 is a RAM (Random Access Memory), a ROM (Read Only Memory), an auxiliary storage device (such as a hard disk), or the like.

TrGW10の機能は、上述の処理モジュールにより実現される。当該処理モジュールは、例えば、メモリ12に格納されたプログラムをCPU11が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能は、何らかのハードウェア、或いはハードウェアを利用して実行されるソフトウェアにより実現できればよい。 The functions of TrGW 10 are implemented by the processing modules described above. The processing module is implemented by the CPU 11 executing a program stored in the memory 12, for example. Also, the program can be downloaded via a network or updated using a storage medium storing the program. Furthermore, the processing module may be realized by a semiconductor chip. In other words, the functions performed by the processing modules may be realized by some kind of hardware or software executed using hardware.

以上のように、第1の実施形態に係るTrGW10は、RTPパケットに付与されたRTPタイムスタンプ及びRTPパケット受信時のTSC(Time Stamp Counter)値から、対向装置である端末30-1とのクロックずれをセッション毎に推定する。TrGW10は、当該推定値を利用し、受信したRTPパケットを転送先装置に転送する際のパケット転送の間隔を送信端末と同期させることで、クロックずれ(クロックスキュー)によるジッタバッファ202内部の遅延を防止する。その結果、クロックスキューにより受信速度がデキュー速度よりも遅い場合、パケットを削除するまで徐々に遅延が増えていってしまいパケット削除が音声劣化につながる、既存のジッタバッファ制御の問題が解消される。即ち、TrGW10は、網同期を利用できない環境においても、対向装置のRTPパケットの送信間隔に近い送信間隔及び一定の遅延時間にて転送先装置にRTPパケットを転送することができる。 As described above, the TrGW 10 according to the first embodiment uses the RTP time stamp attached to the RTP packet and the TSC (Time Stamp Counter) value at the time of receiving the RTP packet to determine the clock of the terminal 30-1, which is the opposite device. The deviation is estimated for each session. Using the estimated value, the TrGW 10 synchronizes the packet transfer interval when transferring the received RTP packets to the transfer destination device with the sending terminal, thereby reducing the delay inside the jitter buffer 202 due to clock skew. To prevent. As a result, the existing problem of jitter buffer control is solved, in which when the reception rate is slower than the dequeue rate due to clock skew, the delay increases gradually until the packet is dropped, which leads to voice degradation. That is, the TrGW 10 can transfer the RTP packets to the transfer destination device at a transmission interval close to the transmission interval of the RTP packets of the opposite device and with a certain delay time even in an environment where network synchronization cannot be used.

例えば、図19を確認すると、クロックずれにより、受信速度がデキュー速度よりも速い場合であっても遅い場合であっても、適宜行われる調整量により遅延(パケットの転送間隔)はジッタバッファ深度に収束していく。 For example, referring to FIG. 19, even if the reception speed is faster or slower than the dequeue speed due to clock drift, the delay (packet transfer interval) is affected by the jitter buffer depth due to the amount of adjustment made as appropriate. converge.

例えば、対向装置(端末30-1)のクロック精度が-100ppm、TrGW10のクロック精度が+100ppmの場合を考える。この場合、対向装置よりTrGW10のクロックが200ppm遅く進むことになる。TrGW10が受信したRTPパケットに付与されたRTPタイムスタンプ値(TS値)に従って、TrGW10が所定の時間間隔(例えば、パケット化周期の20ms)をあけてパケット送信するとTrGW10内のジッタバッファ202内でデータが滞留する。しかし、第1の実施形態に係るTrGW10では、上記の例のようにクロックずれにより遅れが生じる場合であっても、当該ずれをキャンセルするようにジッタバッファ202の制御が行われる。 For example, consider a case where the clock accuracy of the opposite device (terminal 30-1) is −100 ppm and the clock accuracy of TrGW 10 is +100 ppm. In this case, the clock of the TrGW 10 is delayed by 200 ppm from the counterpart device. According to the RTP time stamp value (TS value) attached to the RTP packet received by the TrGW 10, when the TrGW 10 transmits packets at a predetermined time interval (for example, 20 ms of the packetization cycle), the data in the jitter buffer 202 in the TrGW 10 stays. However, the TrGW 10 according to the first embodiment controls the jitter buffer 202 so as to cancel the clock shift even when the delay occurs due to the clock shift as in the above example.

上記の例では、TrGW10は、20ms×(1-200ppm)の時間を20msと捉え、パケット転送を行う。その結果、上記制御を行わなければ、100秒(=20ms/200ppm)に1パケット滞留してしまうが、TrGW10は上記制御により当該パケットの滞留を解消できる。 In the above example, the TrGW 10 regards the time of 20 ms×(1-200 ppm) as 20 ms and performs packet transfer. As a result, if the above control is not performed, one packet will stay in 100 seconds (=20ms/200ppm), but the TrGW 10 can eliminate the staying of the packet by the above control.

加えて、Delay Packingで送信される状況下でのクロックずれ推定においては、バースト受信の周期性からDelay Packingか否かを判定し、判定時にはクロックずれ推定への影響を抑えるよう、Delayが発生しているデータを推定に不使用とする。 In addition, in estimating the clock deviation under the condition of transmission with Delay Packing, it is determined whether or not it is Delay Packing from the periodicity of burst reception. data that are not used for estimation.

[変形例]
なお、上記実施形態にて説明した通信システムの構成及び動作は例示であって、種々の変形が可能である。例えば、通信システムは、以下のような構成又は動作であってもよい。
[Modification]
Note that the configuration and operation of the communication system described in the above embodiment are examples, and various modifications are possible. For example, the communication system may have the following configurations or operations.

TrGW10は、音声パケット以外のジッタ吸収を行った後、RTPタイムスタンプ差分に応じ送信間隔を調整してもよい。 The TrGW 10 may adjust the transmission interval according to the RTP time stamp difference after performing jitter absorption for packets other than voice packets.

あるいは、TrGW10は、RFC(Request for Comments)4733のdurationからクロックずれを推定してもよい。 Alternatively, the TrGW 10 may estimate the clock deviation from the duration of RFC (Request for Comments) 4733.

DTMF(Dual-Tone Multi-Frequency)信号を伝達するために、IP電話ではRFC4733に記載されたtelephone-event信号が用いられることがある。AMR-NBやG.711などの音声パケットに付与されるRTPタイムスタンプ値は、パケットの先頭データの時刻を意味するが、telephone-event信号は同一のDTMFイベントの始まりの時刻を意味する。また、DTMFの継続時間はdrationフィールドで表現される。 In order to transmit DTMF (Dual-Tone Multi-Frequency) signals, an IP phone may use a telephone-event signal described in RFC4733. AMR-NB and G.I. The RTP time stamp value added to a voice packet such as 711 means the time of the head data of the packet, but the telephone-event signal means the time of start of the same DTMF event. Also, the duration of DTMF is expressed in the duration field.

通常、パケット化周期は音声パケットと同じで、且つ、DTMFイベントの継続時間は40ms以上となることが多く、同一RTPタイムスタンプを持ったduration値の異なるパケットが20ms周期に連続送信されることがある。加えて、Eventの最後のパケットはEbit=1を設定して送信することが定められ、同一パケットを3回送信することがRFC4733で規定されている。 Normally, the packetization cycle is the same as voice packets, and the duration of DTMF events is often 40 ms or longer. Therefore, packets with the same RTP timestamp and different duration values may be transmitted continuously in 20 ms cycles. be. In addition, RFC4733 defines that the last packet of the Event should be transmitted with Ebit=1, and that the same packet should be transmitted three times.

上記の理由により、telephone-eventパケットの送信間隔を再現するためには、RTPタイムスタンプを参照するだけでは不十分であり、RTPタイムスタンプに換算した値をデキュー時に使用する必要がある。 For the above reason, it is not enough to refer to the RTP timestamp to reproduce the transmission interval of telephone-event packets, and it is necessary to use the value converted into the RTP timestamp at the time of dequeue.

図20は、テレフォン-イベント(telephone-event)対応用のTS計算処理の一例を示すフローチャートである。 FIG. 20 is a flow chart showing an example of TS calculation processing for telephone-event correspondence.

推定部205は、受信パケットがテレフォン-イベントのパケットか音声パケットかを判定する(ステップS601)。 The estimation unit 205 determines whether the received packet is a telephone-event packet or a voice packet (step S601).

音声パケットであれば、推定部205は、RTPタイムスタンプ値をデキュー時刻の設定に用いる内部タイムスタンプに設定する(ステップS602)。具体的には、推定部205は、内部TS値(cnt_eq)=TS値(Lcnt_eq)とする。 If it is a voice packet, the estimation unit 205 sets the RTP timestamp value to the internal timestamp used for setting the dequeue time (step S602). Specifically, the estimation unit 205 sets the internal TS value (cnt_eq)=TS value (Lcnt_eq).

telephone-eventであれば、推定部205は、Ebit、DurationやRTPシーケンス番号を用いて、音声パケットと同等なRTPタイムスタンプ値に換算する。具体的には、推定部205は、Ebitの値を確認する(ステップS603)。 In the case of a telephone-event, estimation section 205 converts the Ebit, Duration, and RTP sequence number into an RTP timestamp value equivalent to that of a voice packet. Specifically, the estimation unit 205 checks the value of Ebit (step S603).

Ebit=1(最終パケット)でなければ、推定部205は、下記の式(9)により内部TS値を決定する(ステップS604)。 If not Ebit=1 (last packet), the estimating unit 205 determines the internal TS value by the following equation (9) (step S604).

[式9]
内部TS値(cnt_eq)=TS値(cnt_eq)+Duration(cnt_eq)-サンプリング周波数×ptime
[Formula 9]
Internal TS value (cnt_eq) = TS value (cnt_eq) + Duration (cnt_eq) - Sampling frequency x ptime

Ebit=1(最終パケット)であれば、推定部205は、下記の式(10)により内部TS値を決定する(ステップS605)。 If Ebit=1 (last packet), the estimation unit 205 determines the internal TS value by the following equation (10) (step S605).

[式10]
内部TS値(cnt_eq)={SN(cnt_eq)-SN(cnt_eq-1)}×サンプリング周波数×ptime + 内部TS(cnt_eq-1)
[Formula 10]
Internal TS value (cnt_eq) = {SN(cnt_eq)-SN(cnt_eq-1)} x sampling frequency x ptime + internal TS (cnt_eq-1)

なお、AMR-NB、G.711のサンプリング周波数は8KHz、ptimeはパケット化周期(例:20ms)とする。 In addition, AMR-NB, G.I. 711 has a sampling frequency of 8 KHz, and ptime is a packetization period (eg, 20 ms).

このように、TrGW10は、telephone-eventに係るパケットを受信した場合でも、装置間のクロックずれを推定し、対向装置の送信レート(送信間隔)でパケットを転送することができる。 In this way, even when the TrGW 10 receives a packet related to a telephone-event, it can estimate the clock shift between devices and transfer the packet at the transmission rate (transmission interval) of the opposite device.

上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、低遅延でのパケット送信と揺らぎ吸収が要求される音声RTPパケット転送装置などに好適に適用可能である。例えば、異なるモバイルキャリア間を接続するIP-POI網と自キャリア網との境界に位置するTrGWでの利用が想定される。 From the above description, the industrial applicability of the present invention is clear, and the present invention can be suitably applied to voice RTP packet transfer equipment that requires low-delay packet transmission and fluctuation absorption. . For example, use in a TrGW located at the boundary between an IP-POI network that connects different mobile carriers and the own carrier's network is assumed.

上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
上述の第1の視点に係る通信装置のとおりである。
[付記2]
前記推定部は、
前記タイムスタンプと前記受信パケットの受信時刻の回帰直線の傾きを前記クロックずれ反映値として算出する、好ましくは付記1に記載の通信装置。
[付記3]
前記推定部は、複数のパケットがバースト受信された場合に、前記バースト受信された複数のパケットのうち最後に受信したパケット以外のパケットは、前記回帰直線の傾きの算出に不使用とする、好ましくは付記2に記載の通信装置。
[付記4]
前記バッファ制御部は、
第1の受信パケットと前記第1の受信パケットの直前に受信した第2の受信パケットそれぞれの対応するタイムスタンプの差分に前記回帰直線の傾きを乗じて得られる時刻に基づき、前記第1の受信パケットを前記バッファから読み出す時刻を決定する、好ましくは付記3に記載の通信装置。
[付記5]
前記推定部は、
前記対向装置と自装置のクロックずれにより蓄積する前記対向装置と自装置の時刻差を解消するための調整値を算出する、好ましくは付記1乃至4のいずれか一に記載の通信装置。
[付記6]
前記推定部は、
所定期間において、受信パケットが前記バッファに格納されている期間の平均値を算出し、前記算出された平均値に基づき前記調整値を算出する、好ましくは付記5に記載の通信装置。
[付記7]
前記バッファ制御部は、
前記調整値を、前記バッファから前記受信パケットを取り出す時刻に反映する、好ましくは付記5又は6に記載の通信装置。
[付記8]
前記バッファ制御部は、
前記調整値を前記バッファから前記受信パケットを取り出す時刻に反映してから所定の数のパケットを受信した後に再び前記調整値を前記バッファから前記受信パケットを取り出す時刻に反映する、好ましくは付記7に記載の通信装置。
[付記9]
前記受信パケットの受信時刻の測定に使用するクロックは、前記受信部及び前記送信部の動作に用いられるクロックよりも高周波数及び高精度である、好ましくは付記1乃至8のいずれか一に記載の通信装置。
[付記10]
前記推定部は、
2点の前記タイムスタンプと前記受信パケットの受信時刻から前記クロックずれ反映値を算出する、好ましくは付記1に記載の通信装置。
[付記11]
上述の第2の視点に係る通信方法のとおりである。
[付記12]
上述の第3の視点に係るプログラムのとおりである。
なお、付記11の形態及び付記12の形態は、付記1の形態と同様に、付記2の形態~付記10の形態に展開することが可能である。
Some or all of the above embodiments may also be described in the following additional remarks, but are not limited to the following.
[Appendix 1]
This is the same as the communication device according to the first aspect described above.
[Appendix 2]
The estimation unit
Preferably, the communication device according to appendix 1, wherein a slope of a regression line between the time stamp and the reception time of the received packet is calculated as the clock deviation reflection value.
[Appendix 3]
Preferably, when a plurality of packets are burst-received, the estimating unit does not use packets other than the last received packet among the plurality of burst-received packets for calculating the slope of the regression line. is the communication device according to appendix 2;
[Appendix 4]
The buffer control unit
The first reception is performed based on the time obtained by multiplying the difference between the corresponding time stamps of the first reception packet and the second reception packet received immediately before the first reception packet by the slope of the regression line. 4. A communication device, preferably according to clause 3, for determining when to read a packet from said buffer.
[Appendix 5]
The estimation unit
5. Preferably, the communication device according to any one of Appendices 1 to 4, wherein an adjustment value for canceling a time difference between the counterpart device and the self device accumulated due to a clock shift between the counterpart device and the self device is calculated.
[Appendix 6]
The estimation unit
Preferably, the communication device according to appendix 5, wherein, in a predetermined period, an average value of a period during which received packets are stored in the buffer is calculated, and the adjustment value is calculated based on the calculated average value.
[Appendix 7]
The buffer control unit
7. The communication device, preferably according to appendix 5 or 6, wherein said adjustment value is reflected in the time of retrieving said received packet from said buffer.
[Appendix 8]
The buffer control unit
After a predetermined number of packets have been received after the adjustment value is reflected in the time at which the received packet is extracted from the buffer, the adjustment value is again reflected in the time at which the received packet is extracted from the buffer. Communication device as described.
[Appendix 9]
Preferably, according to any one of Appendices 1 to 8, the clock used for measuring the reception time of the received packet has a higher frequency and higher accuracy than the clocks used for the operation of the receiver and the transmitter. Communication device.
[Appendix 10]
The estimation unit
Preferably, the communication device according to appendix 1, wherein the clock deviation reflection value is calculated from the two time stamps and the reception time of the received packet.
[Appendix 11]
This is the same as the communication method according to the second aspect described above.
[Appendix 12]
It is as the program related to the above-mentioned 3rd viewpoint.
Note that the form of Appendix 11 and the form of Appendix 12 can be developed into the form of Appendix 2 to the form of Appendix 10 in the same manner as the form of Appendix 1.

なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。 The disclosures of the cited patent documents and the like are incorporated herein by reference. Within the framework of the full disclosure of the present invention (including the scope of claims), modifications and adjustments of the embodiments and examples are possible based on the basic technical concept thereof. Also, various combinations or selections of various disclosure elements (including each element of each claim, each element of each embodiment or example, each element of each drawing, etc.) within the framework of the full disclosure of the present invention (including partial deletion) is possible. That is, the present invention naturally includes various variations and modifications that can be made by those skilled in the art according to the entire disclosure including claims and technical ideas. In particular, any numerical range recited herein should be construed as specifically recited for any numerical value or subrange within that range, even if not otherwise stated.

10 TrGW
11 CPU
12 メモリ
13 NIC
20 IBCF
30-1、30-2 端末
100 通信装置
101、201 受信部
102、203 バッファ制御部
103、204 送信部
104、205 推定部
202 ジッタバッファ
206 TSC部
207 コネクション管理部
211 エンキュー部
212 デキュー部
213 デキュー予定時刻リスト
10 TrGW
11 CPUs
12 memory 13 NIC
20 IBCF
30-1, 30-2 terminal 100 communication device 101, 201 receiver 102, 203 buffer controller 103, 204 transmitter 104, 205 estimator 202 jitter buffer 206 TSC 207 connection manager 211 enqueue 212 dequeue 213 dequeue Appointment time list

Claims (10)

対向装置からパケットを受信する、受信部と、
バッファへの受信パケットの書き込み及び読み出しを制御する、バッファ制御部と、
前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、
前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する、推定部と、を備え、
前記推定部は、前記タイムスタンプと前記受信パケットの受信時刻の回帰直線の傾きを前記クロックずれ反映値として算出するとともに、複数のパケットがバースト受信された場合に、前記バースト受信された複数のパケットのうち最後に受信したパケット以外のパケットは、前記回帰直線の傾きの算出に不使用とし、
前記バッファ制御部は、前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定する、通信装置。
a receiver that receives a packet from a counterpart device;
a buffer controller that controls writing and reading of received packets to and from the buffer;
a transmission unit that transmits the received packet read from the buffer to a transfer destination device;
an estimating unit for estimating a clock deviation reflection value that reflects the clock deviation between the opposing device and the own device based on the reception time of the received packet and the timestamp included in the received packet;
The estimating unit calculates a slope of a regression line between the time stamp and the reception time of the received packet as the clock deviation reflection value, and when a plurality of packets are received in burst, Packets other than the last received packet are not used for calculating the slope of the regression line ,
The communication device, wherein the buffer control unit determines a time to extract the received packet from the buffer using the clock deviation reflection value .
前記バッファ制御部は、
第1の受信パケットと前記第1の受信パケットの直前に受信した第2の受信パケットそれぞれの対応するタイムスタンプの差分に前記回帰直線の傾きを乗じて得られる時刻に基づき、前記第1の受信パケットを前記バッファから読み出す時刻を決定する、請求項1に記載の通信装置。
The buffer control unit
The first reception is performed based on the time obtained by multiplying the difference between the corresponding time stamps of the first reception packet and the second reception packet received immediately before the first reception packet by the slope of the regression line. 2. The communication device of claim 1 , determining when to read packets from the buffer.
前記推定部は、
前記対向装置と自装置のクロックずれにより蓄積する前記対向装置と自装置の時刻差を解消するための調整値を算出する、請求項1または2に記載の通信装置。
The estimation unit
3. The communication device according to claim 1 , wherein an adjustment value for canceling a time difference between said counterpart device and its own device accumulated due to a clock shift between said counterpart device and its own device is calculated.
対向装置からパケットを受信する、受信部と、
バッファへの受信パケットの書き込み及び読み出しを制御する、バッファ制御部と、
前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、
前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する、推定部と、を備え、
前記バッファ制御部は、前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定し、
前記推定部は、所定期間において、受信パケットが前記バッファに格納されている期間の平均値を算出し、前記算出された平均値に基づき、前記対向装置と自装置のクロックずれにより蓄積する前記対向装置と自装置の時刻差を解消するための調整値を算出する、信装置。
a receiver that receives a packet from a counterpart device;
a buffer controller that controls writing and reading of received packets to and from the buffer;
a transmission unit that transmits the received packet read from the buffer to a transfer destination device;
an estimating unit for estimating a clock deviation reflection value that reflects the clock deviation between the opposing device and the own device based on the reception time of the received packet and the timestamp included in the received packet;
The buffer control unit determines a time to extract the received packet from the buffer using the clock deviation reflection value,
The estimating unit calculates an average value of a period during which the received packets are stored in the buffer in a predetermined period, and accumulates the average value based on the calculated average value due to the clock shift between the counterpart device and the own device. A communication device that calculates an adjustment value for canceling a time difference between a device and its own device .
前記バッファ制御部は、
前記調整値を、前記バッファから前記受信パケットを取り出す時刻に反映する、請求項3または4に記載の通信装置。
The buffer control unit
5. The communication device according to claim 3 , wherein said adjustment value is reflected in the time at which said received packet is extracted from said buffer.
対向装置からパケットを受信する、受信部と、
バッファへの受信パケットの書き込み及び読み出しを制御する、バッファ制御部と、
前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、
前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する、推定部と、を備え、
前記バッファ制御部は、前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定し、
前記推定部は、前記対向装置と自装置のクロックずれにより蓄積する前記対向装置と自装置の時刻差を解消するための調整値を算出し、
前記バッファ制御部は、
前記調整値を、前記バッファから前記受信パケットを取り出す時刻に反映するとともに、前記調整値を前記バッファから前記受信パケットを取り出す時刻に反映してから所定の数のパケットを受信した後に再び前記調整値を前記バッファから前記受信パケットを取り出す時刻に反映する、通信装置。
a receiver that receives a packet from a counterpart device;
a buffer controller that controls writing and reading of received packets to and from the buffer;
a transmission unit that transmits the received packet read from the buffer to a transfer destination device;
an estimating unit for estimating a clock deviation reflection value that reflects the clock deviation between the opposing device and the own device based on the reception time of the received packet and the timestamp included in the received packet;
The buffer control unit determines a time to extract the received packet from the buffer using the clock deviation reflection value,
The estimating unit calculates an adjustment value for canceling the time difference between the counterpart device and the self device, which is accumulated due to the clock deviation between the counterpart device and the self device,
The buffer control unit
The adjustment value is reflected in the time at which the received packet is extracted from the buffer, and after a predetermined number of packets are received after the adjustment value is reflected in the time at which the received packet is extracted from the buffer, the adjustment value is again adjusted. in the time of removing the received packet from the buffer.
対向装置からパケットを受信する、受信部と、
受信パケットが書き込まれるバッファと、
前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、
を備える通信装置において、
前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する推定ステップと、
前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定するバッファ制御ステップと、を含み、
前記推定ステップでは、前記タイムスタンプと前記受信パケットの受信時刻の回帰直線の傾きを前記クロックずれ反映値として算出するとともに、複数のパケットがバースト受信された場合に、前記バースト受信された複数のパケットのうち最後に受信したパケット以外のパケットは、前記回帰直線の傾きの算出に不使用とする、通信方法。
a receiver that receives a packet from a counterpart device;
a buffer into which received packets are written;
a transmission unit that transmits the received packet read from the buffer to a transfer destination device;
In a communication device comprising
an estimating step of estimating a clock deviation reflection value reflecting the clock deviation between the opposing device and the own device based on the reception time of the received packet and the timestamp included in the received packet;
and a buffer control step of determining a time to retrieve the received packet from the buffer using the clock deviation reflection value ;
In the estimating step, the slope of a regression line between the time stamp and the reception time of the received packet is calculated as the clock deviation reflection value, and when a plurality of packets are burst-received, the plurality of burst-received packets are calculated. packet other than the last received packet is not used for calculating the slope of the regression line .
対向装置からパケットを受信する、受信部と、
受信パケットが書き込まれるバッファと、
前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、
を備える通信装置において、
前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する推定ステップと、
前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定するバッファ制御ステップと、を含み、
前記推定ステップでは、所定期間において、受信パケットが前記バッファに格納されている期間の平均値を算出し、前記算出された平均値に基づき、前記対向装置と自装置のクロックずれにより蓄積する前記対向装置と自装置の時刻差を解消するための調整値を算出する、通信方法。
a receiver that receives a packet from a counterpart device;
a buffer into which received packets are written;
a transmission unit that transmits the received packet read from the buffer to a transfer destination device;
In a communication device comprising
an estimating step of estimating a clock deviation reflection value reflecting the clock deviation between the opposing device and the own device based on the reception time of the received packet and the timestamp included in the received packet;
and a buffer control step of determining a time to retrieve the received packet from the buffer using the clock deviation reflection value ;
In the estimating step, the average value of the period during which the received packets are stored in the buffer is calculated for a predetermined period, and based on the calculated average value, the counterpart device accumulates due to the clock shift between the counterpart device and the own device. A communication method for calculating an adjustment value for eliminating the time difference between a device and its own device .
対向装置からパケットを受信する、受信部と、
受信パケットが書き込まれるバッファと、
前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、
を備える通信装置に搭載されたコンピュータに、
前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する推定処理と、
前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定するバッファ制御処理と、
を実行させ、
前記推定処理では、前記タイムスタンプと前記受信パケットの受信時刻の回帰直線の傾きを前記クロックずれ反映値として算出するとともに、複数のパケットがバースト受信された場合に、前記バースト受信された複数のパケットのうち最後に受信したパケット以外のパケットは、前記回帰直線の傾きの算出に不使用とするプログラム。
a receiver that receives a packet from a counterpart device;
a buffer into which received packets are written;
a transmission unit that transmits the received packet read from the buffer to a transfer destination device;
A computer mounted on a communication device comprising
an estimation process of estimating a clock deviation reflection value that reflects the clock deviation between the opposing device and the own device based on the reception time of the received packet and the timestamp included in the received packet;
buffer control processing for determining a time to extract the received packet from the buffer using the clock deviation reflection value;
and
In the estimation process, the inclination of a regression line between the time stamp and the reception time of the received packet is calculated as the clock deviation reflection value, and when a plurality of packets are burst-received, the plurality of burst-received packets are calculated. A program that does not use packets other than the last received packet among them for calculating the slope of the regression line .
対向装置からパケットを受信する、受信部と、
受信パケットが書き込まれるバッファと、
前記バッファから読み出された受信パケットを転送先装置に送信する、送信部と、
を備える通信装置に搭載されたコンピュータに、
前記受信パケットの受信時刻と前記受信パケットに含まれるタイムスタンプに基づき、前記対向装置と自装置のクロックずれが反映されたクロックずれ反映値を推定する推定処理と、
前記クロックずれ反映値を用いて前記バッファから前記受信パケットを取り出す時刻を決定する処理と、
を実行させ、
前記推定処理では、所定期間において、受信パケットが前記バッファに格納されている期間の平均値を算出し、前記算出された平均値に基づき、前記対向装置と自装置のクロックずれにより蓄積する前記対向装置と自装置の時刻差を解消するための調整値を算出するプログラム。
a receiver that receives a packet from a counterpart device;
a buffer into which received packets are written;
a transmission unit that transmits the received packet read from the buffer to a transfer destination device;
A computer mounted on a communication device comprising
an estimation process of estimating a clock deviation reflection value that reflects the clock deviation between the opposing device and the own device based on the reception time of the received packet and the timestamp included in the received packet;
a process of determining a time to extract the received packet from the buffer using the clock deviation reflection value;
and
In the estimation process, the average value of the period during which the received packets are stored in the buffer is calculated for a predetermined period, and based on the calculated average value, the counterpart apparatus accumulates due to the clock shift between the counterpart apparatus and the own apparatus. A program that calculates an adjustment value to eliminate the time difference between the device and its own device .
JP2018164225A 2018-09-03 2018-09-03 Communication device, communication method and program Active JP7148199B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018164225A JP7148199B2 (en) 2018-09-03 2018-09-03 Communication device, communication method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018164225A JP7148199B2 (en) 2018-09-03 2018-09-03 Communication device, communication method and program

Publications (2)

Publication Number Publication Date
JP2020039021A JP2020039021A (en) 2020-03-12
JP7148199B2 true JP7148199B2 (en) 2022-10-05

Family

ID=69738255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018164225A Active JP7148199B2 (en) 2018-09-03 2018-09-03 Communication device, communication method and program

Country Status (1)

Country Link
JP (1) JP7148199B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022076343A (en) * 2020-11-09 2022-05-19 株式会社東芝 Frame synchronization device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000092130A (en) 1998-09-07 2000-03-31 Victor Co Of Japan Ltd Clock fluctuation compensating method and real-time audio/visual system
JP2000253014A (en) 1999-03-01 2000-09-14 Mitsubishi Electric Corp Data receiver, source clock regenerating method used for it, and recording medium recording program to allow computer to execute the method and read by the computer
JP2002314595A (en) 2001-04-10 2002-10-25 Nec Corp Communication repeater and jitter suppression method
JP2005027209A (en) 2003-07-01 2005-01-27 Sony Corp Apparatus and method of processing information, recording medium, and program
WO2006009087A1 (en) 2004-07-20 2006-01-26 Matsushita Electric Industrial Co., Ltd. Stream data reception/reproduction device and stream data reception/reproduction method
WO2018123857A1 (en) 2016-12-28 2018-07-05 日本電信電話株式会社 Sensing system and time synchronization method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000092130A (en) 1998-09-07 2000-03-31 Victor Co Of Japan Ltd Clock fluctuation compensating method and real-time audio/visual system
JP2000253014A (en) 1999-03-01 2000-09-14 Mitsubishi Electric Corp Data receiver, source clock regenerating method used for it, and recording medium recording program to allow computer to execute the method and read by the computer
JP2002314595A (en) 2001-04-10 2002-10-25 Nec Corp Communication repeater and jitter suppression method
JP2005027209A (en) 2003-07-01 2005-01-27 Sony Corp Apparatus and method of processing information, recording medium, and program
WO2006009087A1 (en) 2004-07-20 2006-01-26 Matsushita Electric Industrial Co., Ltd. Stream data reception/reproduction device and stream data reception/reproduction method
WO2018123857A1 (en) 2016-12-28 2018-07-05 日本電信電話株式会社 Sensing system and time synchronization method

Also Published As

Publication number Publication date
JP2020039021A (en) 2020-03-12

Similar Documents

Publication Publication Date Title
JP3960385B2 (en) Clock synchronization on packet network
US7551647B2 (en) System and method for clock synchronization over packet-switched networks
US7664118B2 (en) System and method for high precision clock recovery over packet networks
CN102859941B (en) Renewal to the accumulative residence time being grouped in packet exchange communication network
US10623123B2 (en) Virtual HDBaseT link
EP2076983B1 (en) Method for clock recovery using updated timestamps
CN101506754B (en) Clock skew compensation
US9100135B2 (en) Method and device for packet network synchronization
KR100715736B1 (en) Adaptive clock recovery
US8416814B2 (en) System and method for high precision clock recovery over packet networks
KR20090024170A (en) Network time protocol precision timestamping service
JP2010527193A (en) Method and network component for synchronizing a clock of a network component to a clock of another network component
US8089979B2 (en) Packet relay apparatus and packet relay method
KR20090015001A (en) Clock management between two endpoints
CN109039514B (en) Method for improving IEEE1588 timestamp precision
US20190044637A1 (en) Generating a timestamp
EP2209239B1 (en) Method and arrangement for adjustment of a clock signal
JP7148199B2 (en) Communication device, communication method and program
US20060146865A1 (en) Adaptive clock recovery scheme
US20040062252A1 (en) Calculation of clock skew using measured jitter buffer depth
US8724659B2 (en) Synchronization of VoDSL of DSLAM connected only to ethernet
JP6879750B2 (en) Data transmission equipment and programs
KR20040019931A (en) Adaptive clock recovery
TR201616876A2 (en) TDMoIP SYSTEMS, LMS FILTER USED, JITTER EFFECTIVENESS WITH REMOVING CLOCK SECRONIZATION
CN101395839B (en) Receiver scheme for synchronous digital transmission

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220804

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220915

R150 Certificate of patent or registration of utility model

Ref document number: 7148199

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150