KR20080049876A - Apparatus and method for processing jitter and rearranging packet sequence in network based on udp/rtp - Google Patents

Apparatus and method for processing jitter and rearranging packet sequence in network based on udp/rtp Download PDF

Info

Publication number
KR20080049876A
KR20080049876A KR1020060120334A KR20060120334A KR20080049876A KR 20080049876 A KR20080049876 A KR 20080049876A KR 1020060120334 A KR1020060120334 A KR 1020060120334A KR 20060120334 A KR20060120334 A KR 20060120334A KR 20080049876 A KR20080049876 A KR 20080049876A
Authority
KR
South Korea
Prior art keywords
data
buffer
processing block
network
descriptor
Prior art date
Application number
KR1020060120334A
Other languages
Korean (ko)
Other versions
KR100847168B1 (en
Inventor
박성순
Original Assignee
엘지노텔 주식회사
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 엘지노텔 주식회사 filed Critical 엘지노텔 주식회사
Priority to KR1020060120334A priority Critical patent/KR100847168B1/en
Publication of KR20080049876A publication Critical patent/KR20080049876A/en
Application granted granted Critical
Publication of KR100847168B1 publication Critical patent/KR100847168B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

An apparatus and a method for rearranging a packet sequence for jitter processing on a network based on UDP/RTP(User Datagram Protocol/Real-time Transport Protocol) are provided to operate the buffer of a receiving terminal dynamically and rearrange the order of RTP packets transmitted from a network such as the Internet, thereby improving the transmission quality of data suitably for a VoIP(Voice over Internet Protocol) service. A buffer(50) stores data satisfying a first standard out of data from a network and plays out data satisfying a second standard out of the stored data. A data processing block(54) determines whether the receiving data satisfy the first standard and the second standard, and transfers the satisfied data to the buffer. A descriptor block(58) provides data including the parameters of the data processing block, the standards of the determination, to the data processing block.

Description

UDP/RTP를 사용하는 망에서의 지터 처리 및 패킷 순서 재배열 장치 및 방법{APPARATUS AND METHOD FOR PROCESSING JITTER AND REARRANGING PACKET SEQUENCE IN NETWORK BASED ON UDP/RTP}JAPTER AND METHOD FOR PROCESSING JITTER AND REARRANGING PACKET SEQUENCE IN NETWORK BASED ON UDP / RTP}

도 1은 UDP 패킷 포맷을 나타낸 도면.1 illustrates a UDP packet format.

도 2는 VoIP 망에서의 음성 흐름도.2 is a voice flowchart of a VoIP network.

도 3은 RTP 헤더 포맷을 나타낸 도면.3 illustrates an RTP header format.

도 4는 종래의 버퍼의 구조를 개략적으로 도시한 도면.4 is a view schematically showing the structure of a conventional buffer.

도 5는 버퍼의 구조의 일 실시예를 개략적으로 도시한 도면.5 schematically illustrates one embodiment of the structure of a buffer;

도 6은 디스크립터(descriptor)의 포맷의 일 실시예를 나타낸 도면.6 illustrates one embodiment of a format of a descriptor.

도 7은 일 실시예에 따른 데이터 처리 흐름도.7 is a data processing flow diagram according to one embodiment.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

40, 50: 버퍼 44: 버퍼 제어 메모리40, 50: buffer 44: buffer control memory

54: 유입 데이터 처리 블록 58: 디스크립터 블록54: incoming data processing block 58: descriptor block

본 발명은 UDP/RTP(User Datagram Protocol/Real-time Transport Protocol) 를 사용하여 음성, 영상 및 데이터를 전달하는 망에서 발생되는 지터(jitter)의 처리 및 패킷 순서 재배열에 관한 것이다.The present invention relates to jitter processing and packet order rearrangement in a network for transmitting voice, video and data using User Datagram Protocol / Real-time Transport Protocol (UDP / RTP).

UDP(User Datagram Protocol)는 인터넷 상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호의 송수신 절차를 거치지 않고 보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜이다. TCP/IP(Transmission Control Protocol/Internet Protocol)에서는 제3 계층에 해당하는 망 계층 프로토콜인 IP와 제4 계층에 해당하는 전송 계층 프로토콜인 TCP 또는 UDP의 어느 하나를 조합하여 데이터를 주고받는데, TCP에서는 세션을 설정한 후에 통신을 개시하지만 UDP에서는 세션을 설정하지 않고 데이터를 상대의 주소로 송출하고 데이터의 에러 복구 등의 절차를 수행하지 않기 때문에, UDP는 TCP보다 신뢰성은 떨어지지만 프로토콜 처리 속도는 훨씬 빠르다. UDP는 IP 서비스에 호스트 대 호스트 통신 대신에 프로세스 대 프로세스 통신을 추가로 제공하고 있으며, 도 1에 도시된 바와 같이 데이터 패킷의 데이터 필드에 최소한의 오버헤드만 추가하여 사용하는 매우 간단한 프로토콜이다. 일반적으로, 만약 프로세스가 작은 메시지를 보내고자 하고 신뢰성에 대해 걱정하지 않는다면, 작은 메시지를 보내기 위해서는 TCP보다 UDP를 사용한다.UDP (User Datagram Protocol) is a communication protocol that unilaterally transmits data on the sender's side without going through a procedure of transmitting or receiving a signal to send or receive information. In Transmission Control Protocol / Internet Protocol (TCP / IP), data is exchanged by combining any one of IP, a network layer protocol corresponding to the third layer, and TCP or UDP, a transport layer protocol corresponding to the fourth layer. Communication is started after establishing a session. However, UDP does not establish a session and sends data to the other address and does not perform data recovery. Therefore, UDP is less reliable than TCP, but protocol processing speed is much faster. fast. UDP provides an IP service with process-to-process communication in addition to host-to-host communication. As shown in FIG. 1, UDP is a very simple protocol that adds minimal overhead to a data field of a data packet. In general, if a process wants to send a small message and not worry about its reliability, it uses UDP rather than TCP to send a small message.

한편, 음성 데이터를 인터넷 프로토콜(IP) 데이터 패킷으로 변화하여 일반 전화망에서의 통화를 가능하게 해주는 통신 서비스 기술인 VoIP(Voice over Internet Protocol)와 같은 실시간 데이터 서비스에는 UDP에 기초한 RTP/RTCP(Real-time Transport Protocol/RTP Control Protocol)가 널리 이용되고 있다. 도 2는 기본적인 VoIP 망에서의 음성 데이터의 흐름도를 도시하고 있으며, 이는 UDP/RTP를 이용하는 영상 및 데이터를 처리하는 실시간 데이터 서비스에도 적용될 수 있다. 도 2를 참조하면, 음성이 음성 입력 장치에서 아날로그 신호로 변환된 후, 코덱(CODEC)에서 디지털화된다. 디지털화된 음성은 선택된 적절한 압축 방식에 의해 압축되고, 압축시 묵음 제거 기능을 선택할 경우 음성 내 묵음을 제거하여 발생 트래픽을 줄일 수 있다. 압축된 음성 패킷은 RTP 패킷화되어 인터넷을 통해 전달되게 되는데, RTP 패킷은 도 3에 도시된 바와 같이 각 패킷의 발생 시간을 의미하는 Timestamp 필드가 있어 수신단에서 음성의 플레이아웃(play out) 시간의 동기화가 가능하다. RTP 패킷은 인터넷을 거치면서 전달 지연, 지연 변이, 패킷 손실 등이 발생될 수 있다. 전달 지연은 절대적인 인터넷 통과 지연을 의미하며, 지연 변이, 즉 지터(jitter)는 최대 전달 지연과 최소 전달 지연의 차이로 정의된다. 매 패킷마다 전달 지연이 다르므로 지연 변이가 발생하게 되는 것이다. 이러한 지연 변이는 음성 품질에 악영향을 미치므로, 수신단에 버퍼(buffer)를 사용하여 RTP 패킷들 사이의 지연 변이를 흡수한다. 즉, 인터넷을 통해 전달된 RTP 패킷들을 버퍼에 저장한 후 RTP 패킷 내의 타임스탬프(timestamp) 값에 맞추어 시간에 맞게 플레이아웃하면, 지터가 없는 데이터가 출력되게 된다.On the other hand, real-time data services such as Voice over Internet Protocol (VoIP), a communication service technology that converts voice data into Internet Protocol (IP) data packets to enable calls over general telephone networks, is based on UDP-based RTP / RTCP (Real-time). Transport Protocol / RTP Control Protocol) is widely used. 2 is a flowchart of voice data in a basic VoIP network, which may be applied to a real-time data service for processing video and data using UDP / RTP. Referring to FIG. 2, a voice is converted into an analog signal by a voice input device and then digitized by a codec. The digitized voice is compressed by a suitable compression scheme selected, and when the mute removal function is selected during compression, the generated traffic can be reduced by eliminating silence in the voice. The compressed voice packet is RTP packetized to be delivered through the Internet. As shown in FIG. 3, the RTP packet has a Timestamp field indicating the time of occurrence of each packet. Synchronization is possible. As the RTP packet passes through the Internet, propagation delays, delay variations, and packet loss may occur. The propagation delay means the absolute Internet pass delay, and the delay variation, or jitter, is defined as the difference between the maximum propagation delay and the minimum propagation delay. Since each packet has a different propagation delay, a delay variation occurs. Since this delay variation adversely affects voice quality, a buffer is used at the receiving end to absorb the delay variation between RTP packets. That is, after storing the RTP packets transmitted through the Internet in a buffer and playing them out in time according to the timestamp value in the RTP packets, data without jitter is output.

도 4는 도 2의 흐름도의 수신단에 위치하는 버퍼의 구조를 도시하고 있다. 도 4에 도시된 바와 같이, 인터넷으로부터 유입된 패킷은 먼저 버퍼(40)에 저장되고, 이 저장된 버퍼의 어드레스(address) 또는 위치 정보(location)와 유입된 패킷의 RTP 순서 번호(Sequence Number: SN)가 해당 연결에 할당된 버퍼 제어 메모리(44)에 저장된다. RTP 패킷의 타임스탬프 값에 따라 버퍼에 저장된 패킷을 판독 할 시간이 되면, 버퍼 제어 메모리에 저장된 모든 위치 정보 중에서 가장 작은 순서 번호를 가진 어드레스 값이 선택되어, 해당하는 버퍼에 저장된 패킷이 플레이아웃된다. 상기 버퍼 판독(read) 과정이 완료되면, 그 위치 정보는 클리어(clear)되고, 해당 버퍼는 다음에 유입되는 패킷을 위한 준비 상태로 전환된다.FIG. 4 illustrates the structure of a buffer located at the receiving end of the flowchart of FIG. 2. As shown in FIG. 4, a packet introduced from the Internet is first stored in a buffer 40, and an address or location information of the stored buffer and an RTP Sequence Number (SN) of the incoming packet are stored. ) Is stored in the buffer control memory 44 assigned to the connection. When it is time to read the packet stored in the buffer according to the timestamp value of the RTP packet, the address value having the smallest sequence number among all the location information stored in the buffer control memory is selected, and the packet stored in the corresponding buffer is played out. . When the buffer read process is completed, the location information is cleared and the buffer is switched to the ready state for the next incoming packet.

그러나, 버퍼에 저장된 데이터를 플레이아웃하는 시점을 RTP의 타임스탬프 값에만 의존하게 되면, 버퍼 판독 클럭(clock)의 정밀도(accuracy)가 떨어지는 경우에 타임스탬프 값에 따른 정확한 버퍼 플레이아웃을 수행할 수 없다. 즉, 만약 계속해서 조금씩 지연이 발생할 경우, 언젠가 하나의 패킷이 지연되는 경우가 발생할 수 있다. 또한, 이미 버퍼에서 플레이아웃된 순서 번호보다 낮은 순서 번호의 패킷이 유입될 경우, 불필요한 처리를 한 번 더 하게 되어 시스템 성능에 영향을 미칠 수 있으며, 버퍼와 버퍼 제어 메모리의 판독과 기록이 동시에(synchronous) 일어나기 때문에 패킷 처리 성능에 문제가 발생할 수 있다.However, if the timing of playing out the data stored in the buffer depends only on the timestamp value of the RTP, accurate buffer playout according to the timestamp value can be performed when the accuracy of the buffer read clock is low. none. That is, if a little bit delay occurs continuously, one packet may be delayed someday. In addition, if a packet with a sequence number lower than the sequence number already played out from the buffer is introduced, unnecessary processing may be performed once more, which may affect system performance, and reading and writing the buffer and the buffer control memory simultaneously ( synchronous) can cause problems with packet processing performance.

본 발명은 상기 종래 기술의 문제점을 해결하기 위한 것으로, UDP/RTP를 사용하는 망에서 지연 변이를 줄이도록 동적으로 수신단의 버퍼를 동작시키고, 네트워크를 통해 전송된 RTP 패킷의 순서를 재배열함으로써, VoIP와 같은 실시간 데이터 전송 서비스에 적당하도록 데이터의 전송 품질을 높이는 것을 목적으로 한다.The present invention is to solve the problems of the prior art, by dynamically operating the buffer of the receiver to reduce the delay variation in a network using UDP / RTP, by rearranging the order of the RTP packet transmitted through the network, The purpose of the present invention is to improve the transmission quality of data to be suitable for real-time data transmission services such as VoIP.

일 실시예에 따르면, UDP/RTP(User Datagram Protocol/Real-time Transport Protocol)를 사용하는 네트워크에서의 지터 처리 및 패킷 순서 재배열 장치가 제공된다. 상기 장치는 상기 네트워크로부터 유입되는 데이터 중 제1 기준을 만족하는 데이터를 저장하고, 상기 저장된 데이터 중 제2 기준을 만족하는 데이터를 플레이아웃하는 버퍼, 상기 유입되는 데이터가 상기 제1 기준 및 상기 제2 기준을 만족하는지를 판단하여 상기 버퍼에 전달하는 유입 데이터 처리 블록, 및 상기 유입 데이터 처리 블록의 상기 판단의 기준이 되는 파라미터들을 포함하여 상기 유입 데이터 처리 블록에 제공하는 디스크립터(descriptor) 블록을 포함한다.According to one embodiment, a jitter processing and packet order rearrangement apparatus in a network using UDP / RTP (User Datagram Protocol / Real-time Transport Protocol) is provided. The apparatus stores a data satisfying a first criterion among data flowing from the network, and a buffer for playing out data satisfying a second criterion among the stored data, wherein the incoming data includes the first criterion and the first data. An inflow data processing block that determines whether two criteria are satisfied and delivers the buffer to the buffer, and a descriptor block that provides the inflow data processing block to the inflow data processing block, including parameters that are criteria for the determination of the inflow data processing block. .

다른 실시예에 따르면, UDP/RTP를 사용하는 네트워크에서의 지터 처리 및 패킷 순서 재배열 방법이 제공된다. 상기 방법에 따르면, 유입 데이터 처리 블록이 디스크립터를 판독하여 상기 네트워크로부터 유입된 데이터의 연결이 유효한지 확인하고, 상기 유입된 데이터의 연결이 유효하면, 버퍼에 저장된 데이터의 개수가 허용 범위 내인지를 확인하며, 상기 버퍼에 저장된 데이터가 허용 범위 내이면, 상기 유입된 데이터의 수를 상기 버퍼의 플레이아웃 문턱값과 비교한다. 상기 유입 데이터 처리 블록은 상기 비교 결과에 따라 상기 디스크립터를 업데이트하고, 상기 유입된 데이터의 수가 상기 버퍼의 상기 플레이아웃 문턱값과 같으면, 상기 유입된 데이터의 타임스탬프 값에 따라 상기 버퍼로부터 데이터를 플레이아웃하고, 그에 따라 상기 디스크립터를 업데이트한다.According to another embodiment, a jitter processing and packet order rearrangement method in a network using UDP / RTP is provided. According to the method, the incoming data processing block reads the descriptor to check whether the connection of the incoming data from the network is valid, and if the connection of the incoming data is valid, whether the number of data stored in the buffer is within the allowable range. If the data stored in the buffer is within the allowable range, the number of the introduced data is compared with the playout threshold of the buffer. The inflow data processing block updates the descriptor according to the comparison result, and if the number of the inflow data is equal to the playout threshold of the buffer, play the data from the buffer according to the timestamp value of the inflow data. Out and update the descriptor accordingly.

본 발명은 UDP/RTP를 사용하는 망에서의 지터 처리 및 패킷 순서 재배열 장치 및 방법을 제공한다. 이하, 첨부 도면을 참조하여, 본 발명의 실시예에 대해 상세히 설명한다.The present invention provides an apparatus and method for jitter processing and packet order rearrangement in a network using UDP / RTP. EMBODIMENT OF THE INVENTION Hereinafter, with reference to an accompanying drawing, embodiment of this invention is described in detail.

도 5는 수신단의 버퍼의 구조의 일 실시예를 도시하고 있다. 도 5에 도시된 바와 같이, 인터넷과 같은 네트워크로부터 유입되는 데이터는 유입 데이터 처리 블록(54)을 통해 사용자 기준에 적합한 데이터만, IP 헤더가 제거된 데이터 형태로 데이터 저장용 버퍼(50)에 저장된다. 유입 데이터 처리 블록(54)을 통하여 유입되는 데이터를 받을 것인지 버릴 것인지 등의 결정은 디스크립터 블록(descriptor)(58)의 내용을 판독함으로써 이루어진다. 도 6에 도시된 바와 같이, 디스크립터는 V, F, PacketNo, BaseBITMAP_D, BaseBITMAP, BITMAP, BaseSN, FirstRxSN, RoundCount 필드를 포함한다. V는 유효 비트(Valid bit)로서 네트워크로부터 유입된 데이터에 정상적인 연결이 설정되어 있는지를 알려주는 비트이며, V 필드가 '0'으로 설정되어 있으면 유입되는 데이터는 폐기된다. F 필드는 플래그(Flag) 비트로서 버퍼에 저장된 데이터의 개수가 사용자에 의해 결정된 버퍼 플레이아웃 문턱값(threshold)과 일치하면 '1'로 설정되며, 이는 버퍼를 읽을 준비가 되었음을 의미한다. PacketNo 필드는 연결당 저장된 패킷의 수를 나타낸다. BITMAP 필드는 버퍼에 저장된 데이터의 위치를 나타내는 파라미터로서, 데이터가 버퍼에 저장되면 해당 위치의 비트가 '1'로 설정되고, BITMAP 필드가 '0'이면 저장된 패킷이 없음을 의미한다. BaseBITMAP 필드는 BITMAP 필드에서 가장 빨리 읽어야 할 위치를 알려주는 파라미터로서, 이 파라미터에 있는 '1'의 위치와 같거나 왼쪽으로 가장 가까이 있는 '1'의 위치가 다음에 읽혀질 버퍼로 결정된다. BaseBITMAP_D 필드는 BaseBITMAP 필드에 있는 '1'의 위치를 이진수로 나타낸 값으로서, 0번 비트가 1이면 '0', 1번 비트가 1이면 '1', 2번 비트가 1이면 '10'이 된다. BaseSN 필드는 유입되는 데이터를 받을 것인지 버릴 것인지를 결정하는 기준 이 되는 순서 번호(sequence number)를 나타내는 파라미터로서, BaseSN 필드 보다 작은 값이 유입되면 폐기된다. FirstRxSN 필드는 첫번째로 플레이아웃된 데이터의 순서 번호를 나타내는 파라미터이다. RoundCount 필드는 소정의 시간 단위, 예컨대 5ms 단위로 디스크립터를 몇 번 읽었는지를 나타내는 파라미터로서, 상기 소정의 시간 단위는 사용자에 의해 결정될 수 있다. 버퍼에 저장된 데이터를 플레이아웃하는 시점은 RoundCount 필드값과 F 비트에 따라 결정된다. 예컨대 AMR 코덱(Adaptive Multi Rate CODEC)의 경우는 타임스탬프가 20ms이므로, 5ms 단위로 디스크립터를 읽을 경우, F 비트가 '1', RoundCount 필드값이 '3'이 되면 버퍼에 저장된 데이터가 플레이아웃된다.Figure 5 shows an embodiment of the structure of the buffer of the receiving end. As shown in FIG. 5, data flowing from a network such as the Internet is stored in the data storage buffer 50 in the form of data from which IP header is removed, only data suitable for a user criterion through the inflow data processing block 54. do. The determination of whether to receive or discard the data flowing through the incoming data processing block 54 is made by reading the contents of the descriptor block 58. As shown in FIG. 6, the descriptor includes V, F, PacketNo, BaseBITMAP_D, BaseBITMAP, BITMAP, BaseSN, FirstRxSN, and RoundCount fields. V is a valid bit that indicates whether a normal connection is established to data flowing from the network. If the V field is set to '0', the incoming data is discarded. The F field is a flag bit and is set to '1' if the number of data stored in the buffer coincides with the buffer playout threshold determined by the user, which means that the buffer is ready to be read. The PacketNo field indicates the number of packets stored per connection. The BITMAP field is a parameter indicating the position of data stored in the buffer. If the data is stored in the buffer, the bit of the corresponding position is set to '1', and if the BITMAP field is '0', it means that no packet is stored. The BaseBITMAP field is a parameter that indicates the position to be read most quickly in the BITMAP field. The position of '1' which is the same as or closest to the position of '1' in this parameter is determined as the buffer to be read next. The BaseBITMAP_D field is the binary value of the position of '1' in the BaseBITMAP field. If bit 0 is 1, it is '0', bit 1 is '1', and bit 2 is '10'. . The BaseSN field is a parameter representing a sequence number that is a criterion for determining whether to receive or discard incoming data. If the value is smaller than the BaseSN field, it is discarded. The FirstRxSN field is a parameter indicating the sequence number of the first played out data. The RoundCount field is a parameter indicating how many times the descriptor has been read in a predetermined time unit, for example, 5 ms, and the predetermined time unit may be determined by the user. The time to play out the data stored in the buffer is determined by the RoundCount field value and the F bit. For example, in the case of the AMR codec, since the time stamp is 20 ms, when the descriptor is read in 5 ms units, when the F bit is '1' and the RoundCount field value is '3', the data stored in the buffer is played out. .

다시 도 5를 참조하면, 유입 데이터 처리 블록(54)이 정상 동작을 하기 전에 버퍼의 사이즈와 버퍼 플레이아웃 문턱값을 결정하여야 한다. 이 두 값들은 최적의 성능을 얻기 위해 사용자에 의해 결정될 수 있다. 유입 데이터 처리 블록(54)은 디스크립터 블록(58)과 정확한 동기를 가지며 동작을 한다. 인터넷과 같은 네트워크로부터 데이터가 유입되면, 유입 데이터 처리 블록(54)은 해당 연결의 디스크립터의 V 비트 값을 확인하여, 그 값이 '0'이면 데이터를 폐기하고, '1'이면 데이터를 버퍼(50)에 저장하고 디스크립터 블록(58)의 내용을 업데이트한다. 또한, 저장된 패킷의 개수가 데이터를 플레이아웃하기 위한 문턱값과 같아지면, 디스크립터의 F 비트를 '1'로 설정하고 버퍼(50)를 판독할 시간이 되었음을 알린다. 버퍼(50)를 판독하게 되면, 유입 데이터 처리 블록(54)은 그에 따라 디스크립터의 내용을 업데이트한다.Referring back to FIG. 5, the buffer size and buffer playout threshold must be determined before the incoming data processing block 54 performs normal operation. These two values can be determined by the user to obtain optimal performance. The incoming data processing block 54 operates in precise synchronization with the descriptor block 58. When data comes from a network such as the Internet, the incoming data processing block 54 checks the V bit value of the descriptor of the connection, discards the data if the value is '0', and buffers the data if the value is '1'. 50) and update the contents of the descriptor block 58. Also, if the number of stored packets equals the threshold for playing out data, it sets the F bit of the descriptor to '1' and informs that it is time to read the buffer 50. Upon reading the buffer 50, the incoming data processing block 54 updates the contents of the descriptor accordingly.

도 7은 네트워크로부터 유입되는 데이터의 처리 과정의 일 실시예를 도시하고 있다. 이하에서는, 디스크립터의 동작의 이해를 돕기 위해, 네트워크로부터 유입되는 데이터는 타임스탬프가 20ms인 음성 데이터이고, 버퍼는 최대 120ms(±60ms)의 지연 변이를 수용할 수 있으며, 버퍼에 저장된 데이터를 플레이아웃하기 위한 버퍼 플레이아웃 문턱값은 3이라고 가정한다. 이러한 가정 하에서는 24비트의 BITMAP 필드와 BaseBITMAP 필드는 하위 6비트(5:0)만 사용되고, BaseBITMAP_D 필드는 0에서 5까지만 카운터된다.7 illustrates an embodiment of a process of processing data flowing from a network. Hereinafter, to help understand the operation of the descriptor, the data coming from the network is voice data having a time stamp of 20 ms, and the buffer can accommodate a delay variation of up to 120 ms (± 60 ms), and play the data stored in the buffer. Assume that the buffer playout threshold for out is three. Under this assumption, only the lower 6 bits (5: 0) are used for the 24-bit BITMAP field and the BaseBITMAP field, and the BaseBITMAP_D field is only counted from 0 to 5.

도 7을 참조하면, 네트워크로부터 데이터가 유입되면, 유입 데이터 처리 블록은 먼저 디스크립터를 읽어 유입된 데이터의 연결이 유효한지 확인하여(s71), 유효하지 않으면 폐기하고, 유효하면 버퍼에 저장된 데이터의 개수가 허용 범위 내인지를 확인한다(s72). 버퍼에 저장된 데이터의 개수가 허용 범위를 벗어나면, 유입된 데이터를 폐기하며, 허용 범위 내이면 다음 단계로 전달한다.Referring to FIG. 7, when data flows from the network, the incoming data processing block first reads a descriptor to check whether the connection of the incoming data is valid (s71), discards it if it is not valid, and if it is valid, the number of data stored in the buffer. Check whether is within the allowable range (s72). If the number of data stored in the buffer is outside the allowable range, the incoming data is discarded, and if it is within the allowable range, the data is transferred to the next step.

이후, 유입 데이터 처리 블록은 사용자에 의해 설정된 플레이아웃 문턱값과 디스크립터의 PacketNo 필드값을 비교한다(s73). 먼저, PacketNo 필드값이 문턱값보다 작고 PacketNo 필드값이 '0'인 경우, 즉 유입된 데이터가 첫번째 데이터인 경우, PacketNo 필드값이 문턱값보다 작으므로 Flag는 '0'이 되며, 유입된 데이터는 버퍼의 제일 가운데에 저장이 되고, 그 위치를 알려주는 BITMAP 필드와 BaseBITMAP 필드는 "000100"이 되며, '1'이 2번 비트에 위치하므로 BaseBITMAP_D 필드는 "00010"으로 업데이트된다. 또한, 다음에 유입될 데이터의 순서 번호(SN)와 비교될 BaseSN/FirstRxSN 필드는 유입된 데이터의 순서 번호로 업데이트되며, 버퍼의 판독과 기록 사이클이 완전이 분리되어 있으므로 RoundCount 필드는 디스크립터에서 읽은 값 그대로 사용된다. 업데이트 결과는 다음과 같다 (예 1 참조).Thereafter, the incoming data processing block compares the playout threshold set by the user with the PacketNo field value of the descriptor (s73). First, when the PacketNo field value is smaller than the threshold value and the PacketNo field value is '0', that is, when the incoming data is the first data, the FlagNo becomes '0' because the PacketNo field value is smaller than the threshold value. Is stored at the center of the buffer, and the BITMAP field and the BaseBITMAP field indicating the position are "000100", and since the "1" is located in bit 2, the BaseBITMAP_D field is updated to "00010". In addition, the BaseSN / FirstRxSN field to be compared with the sequence number (SN) of incoming data is updated with the sequence number of the incoming data, and since the read and write cycles of the buffer are completely separated, the RoundCount field is a value read from the descriptor. It is used as is. The update results are as follows (see Example 1).

<예 1><Example 1>

Flag <= '0';Flag <= '0';

PacketNo <= '1';PacketNo <= '1';

BaseBITMAP_D <= "00010"; BaseBITMAP_D <= "00010";

BaseBITMAP <= "000100"; BaseBITMAP <= "000100";

BITMAP <= "000100"; BITMAP <= "000100";

BaseSN <= RTP Sequence Number of IncomingData;BaseSN <= RTP Sequence Number of Incoming Data;

FirstRxSN <= RTP Sequence Number of IncomingData;FirstRxSN <= RTP Sequence Number of Incoming Data;

RoundCount <= RoundCount of Descriptor;RoundCount <= RoundCount of Descriptor;

PacketNo 필드값이 문턱값보다 작고 PacketNo 필드값이 '1'이며 순서 번호(SN)가 BaseSN 필드보다 1이 큰 데이터가 유입되는 경우에는, PacketNo 필드값이 문턱값보다 작으므로 Flag는 '0'이 되고, PacketNo 필드값은 1 증가되어 '2'가 된다. 새롭게 유입된 데이터의 SN이 BaseSN 필드보다 크므로 BaseBITMAP 필드와 BaseBITMAP_D 필드는 기존의 값을 유지하고, 유입된 데이터의 SN이 BaseSN 필드보다 1이 크므로 새로운 BITMAP 필드는 기존의 BITMAP 필드와 BaseBITMAP 필드를 왼쪽으로 1만큼 시프트(shift)시킨 값과의 OR 연산된 값으로 업데이트된다. 업데이트 결과는 다음과 같다 (예 2 참조).If the PacketNo field value is smaller than the threshold value, the PacketNo field value is '1', and the sequence number (SN) is greater than 1 than the BaseSN field, data is introduced. The PacketNo field value is increased by 1 to become '2'. Since the SN of the newly imported data is larger than the BaseSN field, the BaseBITMAP and BaseBITMAP_D fields retain their existing values, and since the SN of the imported data is one greater than the BaseSN field, the new BITMAP field replaces the existing BITMAP and BaseBITMAP fields. It is updated with the ORed value with the value shifted by 1 to the left. The update result is as follows (see Example 2).

<예 2><Example 2>

Flag <= '0';Flag <= '0';

PacketNo <= '2';PacketNo <= '2';

BaseBITMAP_D <= "00010"; BaseBITMAP_D <= "00010";

BaseBITMAP <= "000100"; BaseBITMAP <= "000100";

BITMAP <= "001100"; BITMAP <= "001100";

BaseSN <= FirstRxSN of Descriptor;BaseSN <= FirstRxSN of Descriptor;

FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;

RoundCount <= RoundCount of Descriptor;RoundCount <= RoundCount of Descriptor;

PacketNo 필드값이 문턱값보다 작고 PacketNo 필드값이 '1'이며 순서 번호(SN)가 BaseSN 필드보다 1이 작은 데이터가 유입되는 경우에는, Flag는 '0'이 되고, PacketNo 필드값은 '2'가 된다. 새롭게 유입된 데이터의 SN이 BaseSN 필드보다 작으므로, BaseBITMAP 필드는 새롭게 유입된 데이터의 위치 "000010"으로 변경이 되고, '1'의 위치가 1번 비트이므로 BaseBITMAP_D 필드는 "00001"로 업데이트된다. 유입된 데이터의 SN이 BaseSN 필드보다 1이 작으므로 새로운 BITMAP 필드는 기존의 BITMAP 필드와 BaseBITMAP 필드를 오른쪽으로 1만큼 시프트시킨 값과의 OR 연산된 값으로 업데이트된다. 업데이트 결과는 다음과 같다 (예 3 참조).When the PacketNo field value is smaller than the threshold value, the PacketNo field value is '1', and the sequence number (SN) is 1 smaller than the BaseSN field, Flag is '0', and the PacketNo field value is '2'. Becomes Since the SN of the newly introduced data is smaller than the BaseSN field, the BaseBITMAP field is changed to the position "000010" of the newly introduced data, and since the position of '1' is 1 bit, the BaseBITMAP_D field is updated to "00001". Since the SN of the imported data is one less than the BaseSN field, the new BITMAP field is updated with the ORed value between the existing BITMAP field and the BaseBITMAP field shifted to the right by one. The update results are as follows (see Example 3).

<예 3><Example 3>

Flag <= '0';Flag <= '0';

PacketNo <= '2';PacketNo <= '2';

BaseBITMAP_D <= "00001"; BaseBITMAP_D <= "00001";

BaseBITMAP <= "000010"; BaseBITMAP <= "000010";

BITMAP <= "000110"; BITMAP <= "000110";

BaseSN <= RTP Sequence Number of IncomingData;BaseSN <= RTP Sequence Number of Incoming Data;

FirstRxSN <= RTP Sequence Number of IncomingData;FirstRxSN <= RTP Sequence Number of Incoming Data;

RoundCount <= RoundCount of Descriptor;RoundCount <= RoundCount of Descriptor;

PacketNo 필드값이 '2'인 상태에서 새로운 데이터가 유입되면, 앞서 유입된 2개의 데이터 SN과 비교하여 제일 작은 SN을 가지는 데이터가 BaseSN/FirstRxSN 필드가 되고, 버퍼 판독이 가능함을 알려주는 Flag 비트는 '1'로 설정된다. 만약 순차적인 SN을 가지는 데이터가 유입되면, 업데이트 결과는 다음과 같다 (예 4 참조).When new data is introduced while the PacketNo field value is '2', the data with the smallest SN becomes the BaseSN / FirstRxSN field compared to the two data SNs introduced earlier, and the Flag bit indicating that the buffer can be read is Is set to '1'. If data with sequential SNs is introduced, the update result is as follows (see Example 4).

<예 4><Example 4>

Flag <= '1';Flag <= '1';

PacketNo <= '3';PacketNo <= '3';

BaseBITMAP_D <= "00010"; BaseBITMAP_D <= "00010";

BaseBITMAP <= "000100"; BaseBITMAP <= "000100";

BITMAP <= "011100"; BITMAP <= "011100";

BaseSN <= FirstRxSN of Descriptor;BaseSN <= FirstRxSN of Descriptor;

FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;

RoundCount <= RoundCount of Descriptor;RoundCount <= RoundCount of Descriptor;

일단 Flag 비트가 설정이 되면, BaseSN 필드보다 작은 SN을 가지고 유입되는 데이터는 폐기된다. 데이터가 저장된 위치를 알려주는 BITMAP 필드는 2번 비트를 기준으로 하여 왼쪽으로 비트가 설정되고, 마지막 5번 비트가 설정되면 다음에 유입되는 데이터는 0번 비트의 위치로 가는 방식으로 동작된다.Once the Flag bit is set, incoming data with an SN less than the BaseSN field is discarded. In the BITMAP field indicating the location where data is stored, the bit is set to the left based on bit 2, and when the last 5 bits are set, the next incoming data is operated to the location of bit 0.

버퍼의 판독 플레이아웃 시점도 알려주는 디스크립터는 연결별로 5ms마다 액세스되고, 한 번 액세스되면 RoundCount 필드가 1씩 증가된다. RoundCount 필드값이 3이 되고, Flag 비트가 '1'이 되면(s74), BaseBITMAP 필드의 위치와 같거나 왼쪽으로 가장 가까이 있는 데이터의 위치부터 판독되고, 그 차이만큼 BaseSN, BaseBITMAP, BaseBITMAP_D 필드값이 업데이트되며, RoundCount 필드는 다시 초기화된다. 만약 RoundCount 필드값이 3이고 디스크립터에서 읽은 파라미터가 위의 <예 4>의 업데이트 내용과 같을 경우, BaseBITMAP 필드의 2번 비트와 BITMAP 필드의 2번 비트가 같은 자리에 위치하므로, 2번 비트가 지시하는 버퍼의 데이터를 플레이아웃하고, 업데이트 결과는 다음과 같다 (예 5 참조).Descriptors that also indicate when the read playout of a buffer is read are accessed every 5ms per connection, and once accessed, the RoundCount field is incremented by one. If the RoundCount field value is 3 and the Flag bit is '1' (s74), the baseSN, BaseBITMAP, and BaseBITMAP_D field values are read from the position of the data that is the same as or closest to the left of the BaseBITMAP field. The RoundCount field is reinitialized. If the RoundCount field value is 3 and the parameter read from the descriptor is the same as the update contents of <Example 4>, bit 2 is indicated because bit 2 of the BaseBITMAP field and bit 2 of the BITMAP field are located in the same place. Play out the data in the buffer, and the update result is as follows (see Example 5).

<예 5><Example 5>

Flag <= '1';Flag <= '1';

PacketNo <= '2';PacketNo <= '2';

BaseBITMAP_D <= "00011"; BaseBITMAP_D <= "00011";

BaseBITMAP <= "001000"; BaseBITMAP <= "001000";

BITMAP <= "011000"; BITMAP <= "011000";

BaseSN <= FirstRxSN of Descriptor + 1;BaseSN <= FirstRxSN of Descriptor + 1;

FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;

RoundCount <= 0;RoundCount <= 0;

RoundCount 필드값이 3이고, 디스크립터에서 읽은 파라미터가 아래의 <예 6>과 같은 경우, If the RoundCount field value is 3 and the parameter read from the descriptor is as in <Example 6> below,

<예 6><Example 6>

Flag <= '1';Flag <= '1';

PacketNo <= '3';PacketNo <= '3';

BaseBITMAP_D <= "00010"; BaseBITMAP_D <= "00010";

BaseBITMAP <= "000100"; BaseBITMAP <= "000100";

BITMAP <= "111000"; BITMAP <= "111000";

BaseSN <= FirstRxSN of Descriptor;BaseSN <= FirstRxSN of Descriptor;

FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;

RoundCount <= 3;RoundCount <= 3;

BaseBITMAP 필드의 2번 비트와 왼쪽으로 가장 가까이 있는 비트는 BITMAP 필드의 3번 비트이므로, 업데이트 결과는 다음과 같다 (예 7 참조).Bit 2 of the BaseBITMAP field and the bit closest to the left are bit 3 of the BITMAP field, so the update result is as follows (see Example 7).

<예 7><Example 7>

Flag <= '1';Flag <= '1';

PacketNo <= '2';PacketNo <= '2';

BaseBITMAP_D <= "00100"; BaseBITMAP_D <= "00100";

BaseBITMAP <= "010000"; BaseBITMAP <= "010000";

BITMAP <= "110000"; BITMAP <= "110000";

BaseSN <= FirstRxSN of Descriptor + 2;BaseSN <= FirstRxSN of Descriptor + 2;

FirstRxSN <= FirstRxSN of Descriptor;FirstRxSN <= FirstRxSN of Descriptor;

RoundCount <= 0;RoundCount <= 0;

버퍼를 동적으로 제어하기 위하여, 버퍼가 가득 찬 경우(s75)에는 버퍼에 저장된 데이터를 1개가 아닌 2개를 읽어 다음에 유입될 데이터를 위한 공간을 마련할 수 있다. 버퍼에 저장된 데이터의 개수가 2 이상인 경우(s76)에는 단계(s74)와 동일한 과정으로 처리되고, 버퍼에 저장된 데이터의 개수가 1인 경우(s77)에는 해당되는 데이터는 판독하고 해당 디스크립터에 저장된 파라미터 중 V 비트를 제외한 모든 파라미터를 초기화하여 새로 데이터가 유입될 경우에는 단계(s73)부터 다시 시작한다.In order to dynamically control the buffer, when the buffer is full (s75), the data stored in the buffer may be read instead of one, thereby providing a space for data to be introduced next. If the number of data stored in the buffer is 2 or more (s76), the process is performed in the same process as in step s74. If the number of data stored in the buffer is 1 (s77), the corresponding data is read and stored in the descriptor. If all the parameters except the V bit are initialized and data is newly introduced, the process starts again from step s73.

본 발명 및 그 다양한 기능적 구성요소들은 특정 실시예들로 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성요소들 또는 이들의 서브 구성요소들로 활용 될 수 있음을 이해해야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체와 같은 머신 판독 가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있으며, 또는 캐리어 웨이브로 구체화되는 컴퓨터 데이터 신호 또는 캐리어에 의해 변조된 신호에 의해 전송 매체 또는 통신 링크를 통해 전송될 수 있다. 머신 판독 가능 매체 또는 프로세서 판독 가능 매체는 머신(예컨대, 프로세서, 컴퓨터 등)에 의해 판독되고 실행 가능한 형태로 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다.While the invention and its various functional components have been described in particular embodiments, the invention may be implemented in hardware, software, firmware, middleware, or a combination thereof, and the system, subsystem, components or sub-configurations thereof. It should be understood that they can be used as elements. If implemented in software, the elements of the invention are instructions / code segments for performing the necessary tasks. The program or code segments may be stored in a machine readable medium, such as a processor readable medium, a computer program product, or via a transmission medium or communication link by a computer data signal embodied in a carrier wave or a signal modulated by a carrier. Can be sent. Machine readable media or processor readable media may include any medium that can store or transmit information in a form readable and executable by a machine (eg, processor, computer, etc.).

이상 실시예들은 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.Although the above embodiments have been described with reference to the embodiments shown in the drawings for clarity, these are merely exemplary, and various modifications and equivalent other embodiments are possible to those skilled in the art. Will understand. Therefore, the technical protection scope of the present invention will be defined by the appended claims.

이상의 실시예들에 따르면, UDP/RTP를 사용하는 망에서 발생되는 지터를 처리하는데 있어서 동적으로 수신단의 버퍼를 동작시키고, 인터넷과 같은 네트워크를 통해 전송된 RTP 패킷의 순서를 재배열함으로써, VoIP와 같은 서비스에 적당하도록 데이터의 전송 품질을 높일 수 있다. 또한, 버퍼의 사이즈와 버퍼의 플레이아웃 문턱값을 사용자 요구에 따라 설정할 수 있도록 하여, 다양한 망 특성에 적응할 수 있다.According to the above embodiments, the processing of the jitter generated in the network using UDP / RTP dynamically operates the buffer of the receiving end, and rearranges the order of the RTP packets transmitted through the network such as the Internet, The transmission quality of data can be improved to be suitable for the same service. In addition, it is possible to set the size of the buffer and the playout threshold of the buffer according to the user's requirements, thereby adapting to various network characteristics.

Claims (17)

UDP/RTP(User Datagram Protocol/Real-time Transport Protocol)를 사용하는 네트워크에서의 지터 처리 및 패킷 순서 재배열 장치로서,Jitter processing and packet order rearrangement in a network using UDP / RTP (User Datagram Protocol / Real-time Transport Protocol), 상기 네트워크로부터 유입되는 데이터 중 제1 기준을 만족하는 데이터를 저장하고, 상기 저장된 데이터 중 제2 기준을 만족하는 데이터를 플레이아웃(play out)하는 버퍼,A buffer for storing data satisfying a first criterion among data flowing from the network, and playing out data satisfying a second criterion among the stored data; 상기 유입되는 데이터가 상기 제1 기준 및 상기 제2 기준을 만족하는지를 판단하여 상기 버퍼에 전달하는 유입 데이터 처리 블록, 및An inflow data processing block which determines whether the inflow data satisfies the first criterion and the second criterion, and transmits the inflow data to the buffer; 상기 유입 데이터 처리 블록의 상기 판단의 기준이 되는 파라미터들을 포함하여 상기 유입 데이터 처리 블록에 제공하는 디스크립터(descriptor) 블록Descriptor block provided to the inflow data processing block including the parameters that are the criteria of the determination of the inflow data processing block 을 포함하는 장치. Device comprising a. 제1항에 있어서,The method of claim 1, 상기 네트워크로부터 유입되는 데이터는 RTP 패킷 데이터인 장치.And the data coming from the network is RTP packet data. 제1항에 있어서, The method of claim 1, 상기 파라미터들은The parameters 상기 네트워크로부터 유입되는 데이터에 정상적인 연결이 설정되어 있는지를 나타내는 V 파라미터,A V parameter indicating whether a normal connection is established to data flowing from the network, 상기 버퍼를 플레이아웃할 준비가 되었는지를 나타내는 F 파라미터,An F parameter indicating whether the buffer is ready for playout, 연결당 저장된 데이터의 수를 나타내는 PacketNo 파라미터,PacketNo parameter indicating the number of data stored per connection, 상기 버퍼에 저장된 데이터의 위치를 나타내는 BITMAP 파라미터,A BITMAP parameter indicating a location of data stored in the buffer, 상기 BITMAP 파라미터에서 가장 빨리 읽어야 할 위치를 나타내는 BaseBITMAP 파라미터,A BaseBITMAP parameter indicating a position to be read fastest in the BITMAP parameter, 상기 BaseBITMAP 파라미터의 '1'의 위치를 이진수로 나타내는 BaseBITMAP_D 파라미터,A BaseBITMAP_D parameter representing a position of '1' of the BaseBITMAP parameter in binary, 상기 네트워크로부터 유입되는 데이터를 받을 것인지 폐기할 것인지를 결정하는 기준이 되는 순서 번호를 나타내는 BaseSN 파라미터,A BaseSN parameter indicating a sequence number as a reference for determining whether to receive or discard data flowing from the network; 첫번째로 플레이아웃된 데이터의 순서 번호를 나타내는 FirstRxSN 파라미터, 및A FirstRxSN parameter indicating the sequence number of the first played out data, and 소정의 시간 단위로 상기 디스크립터 블록을 몇 번 읽었는지를 나타내는 RoundCount 파라미터RoundCount parameter indicating how many times the descriptor block has been read in a predetermined time unit. 를 포함하는 장치.Device comprising a. 제1항에 있어서,The method of claim 1, 상기 파라미터들은 상기 유입 데이터 처리 블록에 의해 업데이트되는 장치.The parameters are updated by the incoming data processing block. 제1항에 있어서,The method of claim 1, 상기 버퍼의 사이즈와 상기 버퍼의 플레이아웃 문턱값은 사용자에 의해 결정 되는 장치.Wherein the size of the buffer and the playout threshold of the buffer are determined by a user. 제1항에 있어서,The method of claim 1, 상기 제1 기준은 상기 네트워크로부터 유입되는 데이터에 정상적인 연결이 설정되어 있는지 여부를 나타내는 조건인 장치.The first criterion is a condition indicating whether a normal connection is established to data flowing from the network. 제1항에 있어서,The method of claim 1, 상기 제2 기준은 상기 버퍼에 저장된 데이터의 개수가 상기 버퍼의 플레이아웃 문턱값과 같은지 여부를 나타내는 조건인 장치.And the second criterion is a condition indicating whether the number of data stored in the buffer is equal to a playout threshold of the buffer. 제3항에 있어서,The method of claim 3, 상기 제1 기준은 상기 V 파라미터에 기초하여 결정되는 장치.And the first criterion is determined based on the V parameter. 제3항에 있어서,The method of claim 3, 상기 제2 기준은 상기 F 파라미터와 상기 RoundCount 파라미터에 기초하여 결정되는 장치.And the second criterion is determined based on the F parameter and the RoundCount parameter. UDP/RTP를 사용하는 네트워크에서의 지터 처리 및 패킷 순서 재배열 방법으로서,Jitter processing and packet order rearrangement in a network using UDP / RTP, 유입 데이터 처리 블록이 디스크립터를 판독하여 상기 네트워크로부터 유입 된 데이터의 연결이 유효한지 확인하는 단계,Checking, by the incoming data processing block, the descriptor to confirm that the connection of the incoming data from the network is valid; 상기 유입된 데이터의 연결이 유효하면, 상기 유입 데이터 처리 블록이 버퍼에 저장된 데이터의 개수가 허용 범위 내인지를 확인하는 단계,If the incoming data connection is valid, checking, by the incoming data processing block, whether the number of data stored in the buffer is within an allowable range; 상기 버퍼에 저장된 데이터가 허용 범위 내이면, 상기 유입 데이터 처리 블록이 상기 유입된 데이터의 수를 상기 버퍼의 플레이아웃 문턱값과 비교하는 단계,If the data stored in the buffer is within an allowable range, the inflow data processing block comparing the number of the inflow data with a playout threshold of the buffer; 상기 비교 결과에 따라 상기 유입 데이터 처리 블록이 상기 디스크립터를 업데이트하는 단계, 및Updating the descriptor by the incoming data processing block according to the comparison result, and 상기 유입된 데이터의 수가 상기 버퍼의 상기 플레이아웃 문턱값과 같으면, 상기 유입된 데이터의 타임스탬프 값에 따라 상기 버퍼로부터 데이터를 플레이아웃하고, 그에 따라 상기 디스크립터를 업데이트하는 단계If the number of incoming data is equal to the playout threshold of the buffer, playing out data from the buffer according to the timestamp value of the incoming data, and updating the descriptor accordingly 를 포함하는 방법.How to include. 제10항에 있어서,The method of claim 10, 상기 버퍼의 사이즈와 상기 버퍼의 상기 플레이아웃 문턱값은 사용자에 의해 결정되는 방법.And the size of the buffer and the playout threshold of the buffer are determined by a user. 제10항에 있어서,The method of claim 10, 상기 유입된 데이터의 연결이 유효하지 않으면, 상기 유입 데이터 처리 블록이 상기 유입된 데이터를 폐기하는 단계를 더 포함하는 방법.If the connection of the incoming data is not valid, further including the inflowing data processing block discarding the incoming data. 제10항에 있어서,The method of claim 10, 상기 버퍼에 저장된 데이터의 개수가 허용 범위를 벗어나면, 상기 유입 데이터 처리 블록이 상기 유입된 데이터를 폐기하는 단계를 더 포함하는 방법.And if the number of data stored in the buffer is outside the allowable range, discarding the introduced data by the incoming data processing block. 제10항에 있어서,The method of claim 10, 상기 유입된 데이터의 수가 상기 버퍼의 상기 플레이아웃 문턱값과 같아지면, 상기 유입 데이터 처리 블록은 소정의 기준 순서 번호보다 작은 순서 번호를 가지고 유입되는 데이터를 폐기하는 단계를 더 포함하는 방법.If the number of incoming data is equal to the playout threshold of the buffer, the incoming data processing block further includes discarding incoming data with an order number less than a predetermined reference sequence number. 제10항에 있어서,The method of claim 10, 상기 버퍼에 저장된 데이터의 개수가 상기 버퍼의 사이즈와 같으면, 상기 버퍼에 저장된 데이터를 2개 플레이아웃하고, 그에 따라 상기 디스크립터를 업데이트하는 단계를 더 포함하는 방법.If the number of data stored in the buffer is equal to the size of the buffer, playing out two data stored in the buffer and updating the descriptor accordingly. 제10항에 있어서,The method of claim 10, 상기 버퍼에 저장된 데이터의 개수가 1이면, 해당 데이터는 플레이아웃하고, 해당 디스크립터에서 연결의 유효 여부를 나타내는 파라미터를 제외한 모든 파라미터들을 초기화하는 단계를 더 포함하는 방법.And if the number of data stored in the buffer is 1, the data is played out and initializing all parameters except parameters indicating whether the connection is valid in the descriptor. 제10항 내지 제16항 중의 어느 하나의 방법을 실행하는 컴퓨터 수행가능 명 령어들을 저장하는 컴퓨터 판독 가능 저장매체.A computer readable storage medium storing computer executable instructions for executing the method of claim 10.
KR1020060120334A 2006-12-01 2006-12-01 Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp KR100847168B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060120334A KR100847168B1 (en) 2006-12-01 2006-12-01 Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060120334A KR100847168B1 (en) 2006-12-01 2006-12-01 Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp

Publications (2)

Publication Number Publication Date
KR20080049876A true KR20080049876A (en) 2008-06-05
KR100847168B1 KR100847168B1 (en) 2008-07-17

Family

ID=39805410

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060120334A KR100847168B1 (en) 2006-12-01 2006-12-01 Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp

Country Status (1)

Country Link
KR (1) KR100847168B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189487A (en) * 2021-11-09 2022-03-15 宜通世纪物联网研究院(广州)有限公司 Data reordering method, system, equipment and medium based on RTP
CN114189487B (en) * 2021-11-09 2024-05-14 广东宜通联云智能信息有限公司 RTP-based data reordering method, system, equipment and medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102195069B1 (en) 2014-08-06 2020-12-24 삼성전자주식회사 Packet transmitter and interface device including the same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3075246B2 (en) 1998-01-26 2000-08-14 日本電気株式会社 Voice packet transmitting / receiving method and apparatus
JP3506960B2 (en) * 1999-08-03 2004-03-15 シャープ株式会社 Packet processing device and storage medium recording packet processing program
JP3872311B2 (en) 2001-04-03 2007-01-24 日本電信電話株式会社 NETWORK QUALITY MANAGEMENT METHOD, ITS DEVICE, ITS PROGRAM, AND MEDIUM CONTAINING THE PROGRAM
JP3636348B2 (en) 2001-09-12 2005-04-06 日本電気株式会社 Voice packet delay fluctuation absorbing apparatus and absorbing method
KR100798920B1 (en) * 2005-11-18 2008-01-29 한국전자통신연구원 Method for Congestion Control of VoIP Network Systems Using Extended RED Algorithm and Apparatus for thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189487A (en) * 2021-11-09 2022-03-15 宜通世纪物联网研究院(广州)有限公司 Data reordering method, system, equipment and medium based on RTP
CN114189487B (en) * 2021-11-09 2024-05-14 广东宜通联云智能信息有限公司 RTP-based data reordering method, system, equipment and medium

Also Published As

Publication number Publication date
KR100847168B1 (en) 2008-07-17

Similar Documents

Publication Publication Date Title
US7336678B2 (en) State-based jitter buffer and method of operation
US7477661B2 (en) Method, system, and computer program product for managing jitter
RU2423009C1 (en) Method and device to measure synchronisation of talk spurts reproduction within sentence without impact at audibility
US20020031125A1 (en) Packet transfer communication apparatus, packet transfer communication method, and storage medium
US7126957B1 (en) Media flow method for transferring real-time data between asynchronous and synchronous networks
US8306015B2 (en) Technique for identifying RTP based traffic in core routing switches
US6977948B1 (en) Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks
KR20080014840A (en) A proactive congestion control scheme for voip traffic on ip routers
US7321557B1 (en) Dynamic latency assignment methodology for bandwidth optimization of packet flows
US7450593B2 (en) Clock difference compensation for a network
US20070009071A1 (en) Methods and apparatus to synchronize a clock in a voice over packet network
US7769054B2 (en) Method of conducting a communications session using incorrect timestamps
US7035250B2 (en) System for organizing voice channel data for network transmission and/or reception
US6721825B1 (en) Method to control data reception buffers for packetized voice channels
JP2002077245A (en) Ip gateway device
US8238341B2 (en) Apparatus and method for processing voice over internet protocol packets
JP2001203749A (en) Device and system for high efficiency data transmission
KR100847168B1 (en) Apparatus and method for rearranging packet sequence for processing jitter in network based on udp/rtp
RU2459373C1 (en) Method to determine length of voice signal codec transmission frame based on linear prediction in networks with packet switching based on ip-protocol
CA2427633C (en) Latency management for a network
JP2007259374A (en) Network transmitter/receiver
CN108200481B (en) RTP-PS stream processing method, device, equipment and storage medium
KR20160123562A (en) Receiver for processing data packet and data packet processing method of receiver
KR100279619B1 (en) Real time data processing method of internet phone
WO2015003557A1 (en) Method and device for data packet reassembly

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee