[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101236231B1 - Rtp packet transmitting and receiving method and system - Google Patents

Rtp packet transmitting and receiving method and system Download PDF

Info

Publication number
KR101236231B1
KR101236231B1 KR1020120033865A KR20120033865A KR101236231B1 KR 101236231 B1 KR101236231 B1 KR 101236231B1 KR 1020120033865 A KR1020120033865 A KR 1020120033865A KR 20120033865 A KR20120033865 A KR 20120033865A KR 101236231 B1 KR101236231 B1 KR 101236231B1
Authority
KR
South Korea
Prior art keywords
rtp packet
queue
pointer value
transmission
rtp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR1020120033865A
Other languages
Korean (ko)
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 KR1020120033865A priority Critical patent/KR101236231B1/en
Application granted granted Critical
Publication of KR101236231B1 publication Critical patent/KR101236231B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • 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/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 RTP 패킷의 송수신 방법 및 시스템에 관한 것으로서, 보다 상세하게는 RTP 패킷을 큐에서 판독하고 큐에 기록하는 것을 간단하게 처리할 수 있는 RTP 패킷의 송수신 방법 및 시스템에 관한 것이다.
본 발명의 실시예에 따른 RTP 패킷의 송수신 방법은 송신단에서 실시간 데이터를 상기 RTP 패킷으로 변환하는 단계; 상기 RTP 패킷의 시퀀스 번호를 체크하고, 송신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하는 단계; 상기 기록 포인터 값에 해당하는 송신 큐에 상기 RTP 패킷을 저장하는 단계; 수신단으로부터 상기 송신 큐에 저장된 RTP 패킷의 송신이 요청될 때마다 상기 송신 큐의 판독 포인터 값을 상기 송신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하는 단계; 상기 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 상기 수신단으로 송신하는 단계; 상기 수신단으로 상기 RTP 패킷이 수신될 때마다 상기 RTP 패킷의 시퀀스 번호를 체크하고, 수신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하는 단계; 및 상기 수신 큐의 기록 포인터 값에 해당하는 수신 큐에 상기 RTP 패킷을 저장하는 단계를 포함한다.
The present invention relates to a method and system for transmitting and receiving RTP packets, and more particularly, to a method and system for transmitting and receiving RTP packets that can easily process reading and writing RTP packets to and from the queue.
According to an embodiment of the present invention, a method for transmitting and receiving an RTP packet includes converting real-time data into the RTP packet at a transmitting end; Checking a sequence number of the RTP packet and updating a write pointer value of a transmission queue with the sequence number of the RTP packet; Storing the RTP packet in a transmission queue corresponding to the write pointer value; Updating a read pointer value of the transmission queue in order of sequence numbers of the RTP packets stored in the transmission queue each time a transmission of the RTP packets stored in the transmission queue is requested from a receiving end; Transmitting an RTP packet stored in a transmission queue corresponding to the read pointer value to the receiving end; Checking the sequence number of the RTP packet each time the RTP packet is received by the receiving end, and updating a write pointer value of the reception queue with the sequence number of the RTP packet; And storing the RTP packet in a receive queue corresponding to a record pointer value of the receive queue.

Description

RTP 패킷의 송수신 방법 및 시스템{RTP packet transmitting and receiving method and system}RTP packet transmitting and receiving method and system

본 발명은 RTP 패킷의 송수신 방법 및 시스템에 관한 것으로서, 보다 상세하게는 RTP 패킷을 큐에서 판독하고 큐에 기록하는 것을 간단하게 처리할 수 있는 RTP 패킷의 송수신 방법 및 시스템에 관한 것이다.
The present invention relates to a method and system for transmitting and receiving RTP packets, and more particularly, to a method and system for transmitting and receiving RTP packets that can easily process reading and writing RTP packets to and from the queue.

인터넷 프로토콜(Internet Protocol : IP)망을 기반으로 패킷을 통해 음성 통화를 구현하는 기술인 VoIP(Voice over Internet Protocol)나 인터넷 프로토콜(Internet Protocol : IP)망을 통해 방송 프로그램을 비롯한 멀티미디어 컨텐츠를 제공하는 서비스인 IPTV(Internet Protocol TV) 등과 같은 실시간 데이터 서비스에는 UDP(User Datagram Protocol)에 기초한 RTP/RTCP(Real-time Transport Protocol/Real-time Transport Control Protocol)가 널리 이용되고 있다.A service that provides multimedia content including broadcast programs through Voice over Internet Protocol (VoIP) or Internet Protocol (IP) network, a technology that implements voice calls through packets based on the Internet Protocol (IP) network. For real-time data services such as Internet Protocol TV (IPTV), a Real-time Transport Protocol / Real-time Transport Control Protocol (RTP / RTCP) based on User Datagram Protocol (UDP) is widely used.

UDP는 인터넷상에서 서로 데이터를 주고받을 때 데이터를 송신한다는 신호나 수신한다는 신호 절차를 거치지 않고, 송신단에서 일방적으로 데이터를 전달하는 통신 프로토콜이다. 송신단에서는 수신단이 데이터를 수신하였는지 확인할 수 없고, 또 확인할 필요도 없도록 만들어진 프로토콜을 말한다. 인터넷 아이콘을 누르는 것과 동시에 자동적으로 중앙 컴퓨터 서버와 연결되어 데이터를 송신하는 송신단과 수신하는 수신단이 서로 의사 소통을 할 수 있도록 설계된 통신 프로토콜인 TCP(transmission control protocol)와 상대되는 개념이다. 예를 들어, 이메일을 주고 받을 때 '수신 확인'을 통해 상대방이 메일을 읽었는지 읽지 않았는지를 알 수 있는 것은 송수신단이 서로 데이터를 주고받을 수 있기 때문이다. 이처럼 송수신단이 서로 데이터를 주고받는 방식이 TCP이고, 수신단이 데이터를 보든 상관없이 송신단에서 데이터만 전달하면 되는 방식이 UDP이다. 즉, UDP는 수신단과 접속 절차를 거치지 않고 송신단에서 일방적으로 데이터를 보내는 방식이다.UDP is a communication protocol that transmits data unilaterally at the transmitting end without going through a signal for transmitting data or a signal procedure for receiving data when exchanging data with each other on the Internet. In the transmitting end, it means that the receiving end can not confirm whether or not the data has been received. The concept is opposed to TCP (transmission control protocol), which is a communication protocol designed to communicate with a central computer server and simultaneously send and receive data by pressing an Internet icon. For example, when sending and receiving e-mails, 'receipt confirmation' shows whether the other party has read or not read the e-mail because the transmitting and receiving end can exchange data with each other. As such, the method of transmitting and receiving data to and from each other is TCP, and the method of transmitting data only from the transmitting end is UDP regardless of whether the receiving end sees data. In other words, UDP is a method of sending data unilaterally from the transmitting end without going through the receiving procedure.

따라서, UDP는 TCP와 달리 데이터의 수신에 대한 책임을 지지 않는다. 이는 송신자는 정보를 보냈지만, 정보가 수신자에게 제때에 도착했는지 또는 정보 내용이 서로 뒤바뀌었는지에 관해서 송신자는 상관할 필요가 없다는 말이다. 또 TCP보다 안정성면에서는 떨어지지만, 속도는 훨씬 빠르다. 일반적으로, 만약 프로세스가 작은 메시지를 보내고자 하고 신뢰성에 대해 걱정하지 않는다면, TCP보다 UDP를 사용한다.Thus, unlike TCP, UDP is not responsible for the reception of data. This means that the sender sent the information, but the sender does not need to care about whether the information arrived at the receiver in time or the information contents were reversed. It's also less reliable than TCP, but much faster. In general, if a process wants to send a small message and not worry about reliability, use UDP rather than TCP.

RTP는 실시간으로 데이터를 송수신하기 위한 전송 계층 통신 규약으로서, RFC 1889에 RTCP와 함께 규정되어 있다. RSVP(Resource Reservation Protocol)과는 달리 라우터 등의 통신망 기기에 의지하지 않고 단말 간에 실행되는 것이 특징이다. RTP는 보통 UDP의 상위 통신 규약으로 이용된다. RTP is a transport layer communication protocol for transmitting and receiving data in real time, and is defined together with RTCP in RFC 1889. Unlike RSVP (Resource Reservation Protocol), it is executed between terminals without relying on communication network devices such as routers. RTP is usually used as a higher communication protocol of UDP.

RTCP는 인터넷을 통한 영상이나 음성의 스트리밍용 프로토콜인 RTP를 제어하기 위한 프로토콜이다. RFC 1889에 RTP와 함께 규정되어 있으며, 인터넷 엔지니어링 태스크 포스(IETF) 표준으로 되어 있다. 전송 지연 등을 점검해서 RTP를 이용하는 응용 프로그램에 이러한 정보를 알리는 기능을 실현한다.RTCP is a protocol for controlling RTP, a protocol for streaming video or voice over the Internet. It is specified in conjunction with RTP in RFC 1889 and is an Internet Engineering Task Force (IETF) standard. It checks for transmission delays and makes this information available to applications using RTP.

도 1은 UDP에 기초하여 RTP/RTCP를 이용하는 VoIP망에서의 음성 데이터의 흐름을 설명하기 위한 도면이다.1 is a diagram for explaining the flow of voice data in a VoIP network using RTP / RTCP based on UDP.

도 1에 도시된 바와 같이, 마이크와 같은 음성 입력 장치를 통해 입력된 아날로그 음성 데이터는 코덱(codec)에서 디지털 음성 데이터로 변환된다. 변환된 디지털 음성 데이터는 압축되고, 압축된 음성 데이터는 RTP 패킷으로 변화되어 인터넷망을 통해 수신단으로 전달된다. 수신단에서는 인터넷망을 통해 전달된 RTP 패킷을 버퍼에 저장하고, 버퍼에 저장된 RTP 패킷을 복원하여 스피커와 같은 음성 출력 장치를 통해 아날로그 음성 데이터를 출력한다. As shown in FIG. 1, analog voice data input through a voice input device such as a microphone is converted into digital voice data by a codec. The converted digital voice data is compressed, and the compressed voice data is converted into RTP packets and transmitted to the receiver through the Internet. The receiving end stores the RTP packet transmitted through the Internet network in a buffer, restores the RTP packet stored in the buffer, and outputs analog voice data through a voice output device such as a speaker.

이와 같은 방법으로 RTP 패킷을 송수신하는 과정에서 RTP 패킷을 큐(Queue)에서 판독하고 큐에 기록하는 작업이 지속적으로 수행되게 되는데, 이러한 작업을 보다 간단하게 처리할 수 있는 방안이 필요한 실정이다.
In this way, the RTP packet is read from the queue and written to the queue in the process of transmitting and receiving the RTP packet. However, there is a need for a method for simpler processing.

본 발명은 상기한 종래 기술의 사정을 감안하여 이루어진 것으로, RTP 패킷을 큐에서 판독하고 큐에 기록하는 것을 간단하게 처리할 수 있는 RTP 패킷의 송수신 방법 및 시스템을 제공하는 데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made in view of the above-described prior art, and an object thereof is to provide a method and a system for transmitting / receiving an RTP packet that can easily process reading and writing an RTP packet to a queue.

그러나 본 발명의 목적들은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
However, the objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 RTP 패킷의 송수신 방법은 송신단에서 실시간 데이터를 상기 RTP 패킷으로 변환하는 단계; 상기 RTP 패킷의 시퀀스 번호를 체크하고, 송신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하는 단계; 상기 기록 포인터 값에 해당하는 송신 큐에 상기 RTP 패킷을 저장하는 단계; 수신단으로부터 상기 송신 큐에 저장된 RTP 패킷의 송신이 요청될 때마다 상기 송신 큐의 판독 포인터 값을 상기 송신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하는 단계; 상기 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 상기 수신단으로 송신하는 단계; 상기 수신단으로 상기 RTP 패킷이 수신될 때마다 상기 RTP 패킷의 시퀀스 번호를 체크하고, 수신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하는 단계; 및 상기 수신 큐의 기록 포인터 값에 해당하는 수신 큐에 상기 RTP 패킷을 저장하는 단계를 포함한다. In order to achieve the above object, the RTP packet transmission and reception method according to an embodiment of the present invention comprises the steps of converting the real-time data to the RTP packet at the transmitting end; Checking a sequence number of the RTP packet and updating a write pointer value of a transmission queue with the sequence number of the RTP packet; Storing the RTP packet in a transmission queue corresponding to the write pointer value; Updating a read pointer value of the transmission queue in order of sequence numbers of the RTP packets stored in the transmission queue each time a transmission of the RTP packets stored in the transmission queue is requested from a receiving end; Transmitting an RTP packet stored in a transmission queue corresponding to the read pointer value to the receiving end; Checking the sequence number of the RTP packet each time the RTP packet is received by the receiving end, and updating a write pointer value of the reception queue with the sequence number of the RTP packet; And storing the RTP packet in a receive queue corresponding to a record pointer value of the receive queue.

그리고, 상기 수신 큐에 저장된 RTP 패킷의 판독이 요청될 때마다 상기 수신 큐의 판독 포인터 값을 상기 수신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하는 단계; 및 상기 수신 큐의 판독 포인터 값에 해당하는 수신 큐에 저장된 RTP 패킷을 출력하는 단계를 더 포함하는 것이 바람직하다.And each time a read request of the RTP packet stored in the receive queue is requested, updating the read pointer value of the receive queue in the sequence number of the RTP packet stored in the receive queue; And outputting an RTP packet stored in a reception queue corresponding to a read pointer value of the reception queue.

또한, 상기 수신단에서 상기 RTP 패킷을 수신하는 동안 상기 RTP 패킷의 오류 여부를 검출하는 단계; 상기 오류가 검출되면 에러 처리하고 상기 송신단으로 오류가 검출된 RTP 패킷의 재송신을 요청하는 단계; 상기 재송신을 요청받은 송신단에서 상기 송신 큐의 판독 포인터 값을 상기 오류가 검출된 RTP 패킷의 시퀀스 번호로 갱신하는 단계; 및 상기 송신 큐의 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 재송신하는 단계를 더 포함하는 것이 바람직하다.The method may further include detecting an error of the RTP packet while receiving the RTP packet at the receiving end; Error processing if the error is detected and requesting the transmitting end to retransmit the detected RTP packet; Updating a read pointer value of the transmission queue with a sequence number of the RTP packet in which the error is detected, at the transmitting end receiving the retransmission request; And retransmitting an RTP packet stored in a transmission queue corresponding to a read pointer value of the transmission queue.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 RTP 패킷의 송수신 시스템은, 상기 RTP 패킷을 송신하는 송신단; 및 상기 송신단으로부터 상기 RTP 패킷을 수신하는 수신단을 포함하고, 상기 송신단은 실시간 데이터를 상기 RTP 패킷으로 변환하는 RTP 패킷 생성부와, 상기 수신단으로 송신될 상기 RTP 패킷을 저장하는 송신 큐와, 상기 RTP 패킷의 시퀀스 번호를 체크하고, 상기 송신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하며, 상기 기록 포인터 값에 해당하는 송신 큐에 상기 RTP 패킷을 저장하는 한편, 상기 수신단으로부터 상기 송신 큐에 저장된 RTP 패킷의 송신이 요청될 때마다 상기 송신 큐의 판독 포인터 값을 상기 송신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하고, 상기 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 상기 수신단으로 송신하는 송신 처리부를 포함하고, 상기 수신단은 상기 송신단으로부터 수신된 RTP 패킷을 저장하는 수신 큐와, 상기 RTP 패킷이 수신될 때마다 상기 RTP 패킷의 시퀀스 번호를 체크하고, 상기 수신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하며, 상기 수신 큐의 기록 포인터 값에 해당하는 수신 큐에 상기 RTP 패킷을 저장하는 수신 처리부를 포함한다.In order to achieve the above object, the RTP packet transmission and reception system according to an embodiment of the present invention, a transmitting end for transmitting the RTP packet; And a receiving end for receiving the RTP packet from the transmitting end, wherein the transmitting end includes an RTP packet generation unit for converting real time data into the RTP packet, a transmission queue for storing the RTP packet to be transmitted to the receiving end, and the RTP packet. Checks the sequence number of the packet, updates the write pointer value of the transmission queue with the sequence number of the RTP packet, stores the RTP packet in a transmission queue corresponding to the write pointer value, and transmits the transmission queue from the receiving end. Whenever the transmission of the RTP packet stored in the RTP packet is requested, the read pointer value of the transmission queue is updated in the sequence number of the RTP packet stored in the transmission queue, and the RTP packet stored in the transmission queue corresponding to the read pointer value is updated. And a transmission processing unit for transmitting the RTP packet received from the transmitting end. A check queue and a sequence number of the RTP packet each time the RTP packet is received, update the write pointer value of the receive queue with the sequence number of the RTP packet, And a receiving processor for storing the RTP packet in a corresponding receiving queue.

그리고, 상기 수신 처리부는 상기 수신 큐에 저장된 RTP 패킷의 판독이 요청될 때마다 상기 수신 큐의 판독 포인터 값을 상기 수신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하고, 상기 수신 큐의 판독 포인터 값에 해당하는 수신 큐에 저장된 RTP 패킷을 출력하는 것이 바람직하다.The reception processing unit updates the read pointer value of the reception queue in sequence of the sequence number of the RTP packet stored in the reception queue whenever a read request for the RTP packet stored in the reception queue is requested, and the read pointer value of the reception queue is updated. It is preferable to output the RTP packet stored in the reception queue corresponding to the.

또한, 상기 수신 처리부는 상기 RTP 패킷을 수신하는 동안 상기 RTP 패킷의 오류 여부를 검출하고, 상기 오류가 검출되면 에러 처리하고 상기 송신단으로 오류가 검출된 RTP 패킷의 재송신을 요청하며, 상기 송신 처리부는 상기 송신 큐의 판독 포인터 값을 상기 오류가 검출된 RTP 패킷의 시퀀스 번호로 갱신하고, 상기 송신 큐의 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 재송신하는 것이 바람직하다.
The reception processor detects whether the RTP packet is in error while receiving the RTP packet, processes the error if the error is detected, and requests retransmission of the RTP packet in which the error is detected. Preferably, the read pointer value of the transmission queue is updated with the sequence number of the RTP packet in which the error is detected, and the RTP packet stored in the transmission queue corresponding to the read pointer value of the transmission queue is retransmitted.

상기한 바와 같이 본 발명에 의한 RTP 패킷의 송수신 방법 및 시스템에 따르면, RTP 패킷을 큐에서 판독하고 큐에 기록하는 것을 간단하게 처리할 수 있는 효과가 있다.
As described above, according to the method and system for transmitting and receiving an RTP packet according to the present invention, there is an effect that the RTP packet can be easily read from the queue and written to the queue.

도 1은 UDP에 기초하여 RTP/RTCP를 이용하는 VoIP망에서의 음성 데이터의 흐름을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 RTP 패킷의 송수신 시스템의 구성도이다.
도 3은 RTP 패킷 헤더의 포맷을 나타낸 도면이다.
도 4는 UDP로 캡슐레이션된 데이터의 포맷을 나타낸 도면이다.
도 5 및 도 6은 본 발명의 실시예에 따른 RTP 패킷의 송수신 방법을 나타낸 흐름도이다.
1 is a diagram for explaining the flow of voice data in a VoIP network using RTP / RTCP based on UDP.
2 is a block diagram of a system for transmitting and receiving an RTP packet according to an embodiment of the present invention.
3 is a diagram illustrating a format of an RTP packet header.
4 is a diagram illustrating a format of data encapsulated in UDP.
5 and 6 are flowcharts illustrating a method of transmitting and receiving an RTP packet according to an embodiment of the present invention.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있으며, 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.Specific details of other embodiments are included in the detailed description and drawings, and the advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings.

그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

이하, 첨부된 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명의 실시예에 따른 RTP 패킷의 송수신 방법 및 시스템에 대해 설명하도록 한다. Hereinafter, a method and a system for transmitting / receiving an RTP packet according to an embodiment of the present invention will be described with reference to the accompanying block diagrams or drawings.

이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. At this point, it will be understood that each block of the flowchart illustrations and combinations of flowchart illustrations may be performed by computer program instructions.

이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. Since these computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, those instructions executed through the processor of the computer or other programmable data processing equipment may be described in flow chart block (s). It creates a means to perform the functions.

이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in the flowchart block (s). The computer program instructions It is also possible to mount on a computer or other programmable data processing equipment, so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer-executed process to perform a computer or other programmable data processing equipment May also provide steps for performing the functions described in the flowchart block (s).

또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다. In addition, each block may represent a portion of a module, segment, or code that includes one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative implementations, the functions mentioned in the blocks may occur out of order. For example, the two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the corresponding function.

도 2는 본 발명의 실시예에 따른 RTP 패킷의 송수신 시스템의 구성도이고, 도 3은 RTP 패킷 헤더의 포맷을 나타낸 도면이며, 도 4는 UDP로 캡슐레이션된 데이터의 포맷을 나타낸 도면이다. 2 is a block diagram of a system for transmitting and receiving an RTP packet according to an embodiment of the present invention, FIG. 3 is a diagram illustrating a format of an RTP packet header, and FIG. 4 is a diagram showing a format of data encapsulated by UDP.

도 2에 도시된 바와 같이, 본 발명의 실시예에 따른 RTP 패킷의 송수신 시스템은, RTP 패킷을 송신하는 송신단(100) 및 RTP 패킷을 수신하는 수신단(200)을 포함한다. As shown in FIG. 2, an RTP packet transmission / reception system according to an embodiment of the present invention includes a transmitter 100 transmitting an RTP packet and a receiver 200 receiving an RTP packet.

송신단(100)은 실시간 데이터를 RTP 패킷으로 변환하는 RTP 패킷 생성부(110)와, 수신단(200)으로 송신될 RTP 패킷을 저장하는 송신 큐(120)와, RTP 패킷을 처리하는 송신 처리부(130)와, 수신단(200)과 무선 혹은 유선으로 접속하기 위한 접속부(140)를 포함한다.The transmitter 100 may include an RTP packet generator 110 for converting real-time data into an RTP packet, a transmission queue 120 for storing an RTP packet to be transmitted to the receiver 200, and a transmission processor 130 for processing the RTP packet. ), And a connection unit 140 for connecting to the receiving terminal 200 by wireless or wired.

도 3을 참조하면, RTP 패킷 생성부(110)에 의해 생성되는 RTP 패킷의 헤더는 고정된 크기를 가지며, 헤더 뒤에 특정 정보 및 데이터가 따른다. Referring to FIG. 3, the header of the RTP packet generated by the RTP packet generator 110 has a fixed size, followed by specific information and data.

RTP 패킷 헤더의 각 필드를 간단히 설명하면, V(Version) 필드는 버전 필드이며, P(Padding) 필드는 32비트 단위로 패킷을 구성하기 위해 사용된다. X(Header Extention) 필드는 헤더의 확장 여부를 표시한다. CC(CSRC Count) 필드는 CSRC 식별자(Contributing Source Identifier)의 개수를 가리킨다. M(Marker) 필드는 멀티미디어 데이터에 대한 프레임 영역을 나타낸다. 즉, 패킷 안에서 음성과 영상 데이터 등을 구별하는 데 사용된다. PT(RTP Payload Type) 필드는 RFC 1890에서 정의된 프로파일의 RTP 페이로드의 양식을 지칭하고, 응용 프로그램에 의해서 해석된다. 시퀀스 번호(Sequence Number) 필드는 RTP 패킷의 순서를 나타내는데, 초기값은 랜덤하게 선택되고, RTP 패킷을 송신할 때마다 1씩 증가된다. 따라서, 수신단(200)에서는 시퀀스 번호를 기초로 패킷 손실이나 순서 역전을 알아낼 수 있다. 타임 스탬프(Time Stamp) 필드는 RTP 패킷의 첫번째 옥텟(Octec)이 샘플링된 시점을 나타낸다. SSRC 식별자(Synchronization Source Identifier) 필드는 카메라 또는 마이크 등의 데이터 원천지의 식별자를 의미한다. CSRC 식별자(Contributing Source Identifier) 필드는 RTP 패킷이 중간 시스템에서 혼합된 경우에 그 소스들을 구별할 수 있는 식별자를 나타낸다. Briefly describing each field of the RTP packet header, the V (Version) field is a version field, and the P (Padding) field is used to construct a packet in units of 32 bits. The X (Header Extention) field indicates whether the header is extended. The CC (CSRC Count) field indicates the number of CSRC Contributing Source Identifiers. The M (Marker) field represents a frame area for multimedia data. That is, it is used to distinguish between audio and video data in the packet. The PT (RTP Payload Type) field indicates the form of the RTP payload of the profile defined in RFC 1890 and is interpreted by the application. The Sequence Number field indicates the order of the RTP packets. The initial value is randomly selected and incremented by one each time the RTP packet is transmitted. Therefore, the receiver 200 can detect packet loss or reversal of order based on the sequence number. The Time Stamp field indicates the point in time when the first octet of the RTP packet is sampled. The Synchronization Source Identifier (SSRC) field means an identifier of a data source such as a camera or a microphone. A CSRC Contributing Source Identifier field indicates an identifier that can distinguish the sources when the RTP packets are mixed in the intermediate system.

RTP 패킷의 헤더 뒤에는 UDP 패킷으로 포맷된 데이터가 위치한다. 도 4에는 UDP로 캡슐레이션된 데이터의 포맷이 도시되어 있다. 도 4를 참조하면, UDP 패킷은 IP 헤더, UDP 헤더 및 UDP 데이터로 구성된다. IP 헤더에는 데이터의 소스 및 목적지의 주소, 상위계층 프로토콜, 첵섬 등이 기록된다. UDP 헤더에는 소스 및 목적지의 포트 번호, UDP 헤더와 데이터의 크기, UDP 첵섬 등이 기록된다. UDP 데이터는 전송될 데이터이다. UDP 헤더와 UDP 데이터를 UDP 데이터그램이라 칭하며, IP 헤더와 UDP 데이터그램을 IP 데이터그램이라 칭한다. 따라서, RTP 패킷은 RTP 헤더와 IP 데이터그램으로 구성된다.Behind the header of the RTP packet is data formatted as a UDP packet. 4 shows the format of data encapsulated in UDP. Referring to FIG. 4, a UDP packet is composed of an IP header, a UDP header, and UDP data. In the IP header, the data source and destination addresses, higher layer protocols, checksums, and the like are recorded. In the UDP header, the port number of the source and destination, the size of the UDP header and data, and the UDP checksum are recorded. UDP data is data to be transmitted. The UDP header and UDP data are called UDP datagrams, and the IP header and UDP datagrams are called IP datagrams. Thus, an RTP packet consists of an RTP header and an IP datagram.

한편, 큐(Queue)란, 컴퓨터 내의 주기억장치에서 연속적인 공간을 배정하여 데이터를 저장하고 필요시 검색하여 사용할 수 있도록 한 순서 리스트와 같은 자료구조로서, 자료의 삽입은 한 쪽 끝에서, 출력은 다른 쪽 끝에서 일어난다. A queue is a data structure like an ordered list that allocates contiguous space in main memory in a computer so that data can be stored, retrieved, and used when needed. It happens at the other end.

송신 큐(120)는 배열의 처음과 끝이 연결되어 있는 원형 큐일 수 있다. RTP 패킷의 시퀀스 번호와 동일한 어드레스(address)의 송신 큐(120)에 해당 RTP 패킷이 저장된다. 예를 들면, 시퀀스 번호 #1의 RTP 패킷은 송신 큐(120)의 어드레스 #1에 저장되며, 시퀀스 번호 #2의 RTP 패킷은 송신 큐(120)의 어드레스 #2에 저장된다. The transmit queue 120 may be a circular queue to which the beginning and end of the arrangement are connected. The RTP packet is stored in the transmission queue 120 at the same address as the sequence number of the RTP packet. For example, an RTP packet of sequence number # 1 is stored at address # 1 of transmission queue 120, and an RTP packet of sequence number # 2 is stored at address # 2 of transmission queue 120.

송신 처리부(130)는 RTP 패킷 생성부(110)로부터 RTP 패킷이 생성될 때마다 RTP 패킷의 시퀀스 번호를 체크하고, 송신 큐(120)의 기록 포인터 값을 생성된 RTP 패킷의 시퀀스 번호로 갱신한다. 그리고, 송신 처리부(130)는 송신 큐(120)의 기록 포인터 값에 해당하는 송신 큐(120)에 RTP 패킷을 저장한다. 즉, 전술한 바와 같이 송신 큐(120)에는 RTP 패킷의 시퀀스 번호와 동일한 어드레스에 해당 RTP 패킷이 저장된다. The transmission processor 130 checks the sequence number of the RTP packet whenever the RTP packet is generated from the RTP packet generator 110 and updates the write pointer value of the transmission queue 120 with the sequence number of the generated RTP packet. . The transmission processor 130 stores the RTP packet in the transmission queue 120 corresponding to the record pointer value of the transmission queue 120. That is, as described above, the RTP packet is stored in the transmission queue 120 at the same address as the sequence number of the RTP packet.

그리고, 수신단(200)으로부터 송신 큐(120)에 저장된 RTP 패킷의 송신이 요청될 때마다, 송신 처리부(130)는 송신 큐(120)의 판독 포인터 값을 송신 큐(120)에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하며, 해당 판독 포인터 값의 송신 큐(120)에 저장된 RTP 패킷을 접속부(140)를 통해 수신단(200)으로 송신한다. Whenever the transmission of the RTP packet stored in the transmission queue 120 is requested from the receiving end 200, the transmission processing unit 130 sends a read pointer value of the transmission queue 120 to the RTP packet stored in the transmission queue 120. The sequence number is updated in order, and the RTP packet stored in the transmission queue 120 of the read pointer value is transmitted to the receiver 200 through the connection unit 140.

송신 처리부(130)는 수신단(200)으로부터 RTP 패킷의 재송신이 요청되면 송신 큐(120)의 판독 포인터 값을 재송신 요청된 RTP 패킷의 시퀀스 번호로 갱신한다. 그리고, 송신 처리부(130)는 송신 큐(120)의 판독 포인터 값에 해당하는 송신 큐(120)에 저장된 RTP 패킷을 재송신한다.When retransmission of the RTP packet is requested from the receiver 200, the transmission processor 130 updates the read pointer value of the transmission queue 120 with the sequence number of the retransmission requested RTP packet. The transmission processor 130 retransmits the RTP packet stored in the transmission queue 120 corresponding to the read pointer value of the transmission queue 120.

수신단(200)은 송신단(100)과 무선 혹은 유선으로 접속하기 위한 접속부(210)와, 송신단(100)으로부터 수신된 RTP 패킷을 저장하는 수신 큐(220)와, RTP 패킷을 처리하는 수신 처리부(230)를 포함한다.The receiving end 200 includes a connection unit 210 for wirelessly or wired connection with the transmitting end 100, a receiving queue 220 storing an RTP packet received from the transmitting end 100, and a receiving processing unit which processes the RTP packet ( 230).

수신 큐(220)는 배열의 처음과 끝이 연결되어 있는 원형 큐일 수 있다. 수신 큐(220)에는 접속부(210)를 통해 수신된 RTP 패킷이 저장된다. 이 때, RTP 패킷의 시퀀스 번호와 동일한 어드레스의 수신 큐(220)에 해당 RTP 패킷이 저장된다. 예를 들면, 시퀀스 번호 #1의 RTP 패킷은 수신 큐(220)의 어드레스 #1에 저장되며, 시퀀스 번호 #2의 RTP 패킷은 수신 큐(220)의 어드레스 #2에 저장된다. Receive queue 220 may be a circular queue is connected to the beginning and end of the array. The reception queue 220 stores the RTP packet received through the connection unit 210. At this time, the RTP packet is stored in the reception queue 220 having the same address as the sequence number of the RTP packet. For example, the RTP packet of sequence number # 1 is stored at address # 1 of receive queue 220, and the RTP packet of sequence number # 2 is stored at address # 2 of receive queue 220.

수신 처리부(230)는 접속부(210)를 통해 RTP 패킷이 수신될 때마다 RTP 패킷의 시퀀스 번호를 체크하고, 수신 큐(220)의 기록 포인터 값을 수신된 RTP 패킷의 시퀀스 번호로 갱신한다. 그리고, 수신 처리부(230)는 수신 큐(220)의 기록 포인터 값에 해당하는 수신 큐(220)에 RTP 패킷을 저장한다. 즉, 전술한 바와 같이 RTP 패킷의 시퀀스 번호와 동일한 어드레스의 수신 큐(220)에 해당 RTP 패킷이 저장된다. The reception processor 230 checks the sequence number of the RTP packet whenever the RTP packet is received through the access unit 210, and updates the write pointer value of the reception queue 220 with the sequence number of the received RTP packet. The reception processor 230 stores the RTP packet in the reception queue 220 corresponding to the recording pointer value of the reception queue 220. That is, as described above, the RTP packet is stored in the reception queue 220 at the same address as the sequence number of the RTP packet.

한편, RTP 패킷의 송신 과정에서 도착 지연되거나, 중간에 소실되거나, 순서가 바뀌어 도착되는 경우가 빈번하다. On the other hand, the arrival of the RTP packet is often delayed, lost in the middle, or out of order frequently arrive.

이를 해결하기 위해, 수신 처리부(230)는 RTP 패킷을 수신하는 동안 RTP 패킷의 오류 여부를 검출한다. 여기서, RTP 패킷의 오류 여부 검출은 RTP 패킷의 시퀀스 번호에 기초하여 이루어진다. 수신 처리부(230)는 RTP 패킷의 오류가 검출된 경우 에러 처리하고 송신단(100)으로 해당 RTP 패킷의 재송신을 요청한다. 예를 들어, 시퀀스 번호가 #1001에서 시작하여 200개의 RTP 패킷을 수신하였는데, 시퀀스 번호를 확인한 결과 #1020, #1021, #1026, #1027, #1028의 순서로 번호가 나타나면 #1022, #1023, #1024, #1025, 즉 4개의 패킷이 소실된 것이다. 따라서, 수신단(200)에서는 소실된 4개의 패킷(#1022, #1023, #1024, #1025)에 대하여 송신단(100)에 재송신을 요청하게 된다.To solve this problem, the reception processor 230 detects whether an RTP packet is in error while receiving the RTP packet. Here, the detection of the error of the RTP packet is made based on the sequence number of the RTP packet. If an error of the RTP packet is detected, the reception processor 230 processes the error and requests the transmitter 100 to retransmit the corresponding RTP packet. For example, if you received 200 RTP packets starting with # 1001 and the sequence number was checked, the numbers appear in the order of # 1020, # 1021, # 1026, # 1027, and # 1028. , # 1024, # 1025, that is, 4 packets lost. Therefore, the receiver 200 requests retransmission to the transmitter 100 for the four lost packets # 1022, # 1023, # 1024, and # 1025.

수신 처리부(230)는 수신 큐(220)에 저장된 RTP 패킷의 판독이 요청될 때마다 수신 큐(220)의 판독 포인터 값을 수신 큐(220)에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하고, 수신 큐(220)의 판독 포인터 값에 해당하는 수신 큐(220)에 저장된 RTP 패킷을 출력한다. 여기서, 수신 큐(220)에 저장된 RTP 패킷의 판독이 요청되는 시점은 RTP 패킷의 타임 스탬프에 표시된 상대적인 타이밍에 따른다. The reception processor 230 updates the read pointer value of the reception queue 220 in the order of the sequence number of the RTP packets stored in the reception queue 220 each time a reading of the RTP packets stored in the reception queue 220 is requested. The RTP packet stored in the reception queue 220 corresponding to the read pointer value of the queue 220 is output. Here, the time point at which the read of the RTP packet stored in the reception queue 220 is requested depends on the relative timing indicated in the time stamp of the RTP packet.

도 5 및 도 6은 본 발명의 실시예에 따른 RTP 패킷의 송수신 방법을 나타낸 흐름도이다.5 and 6 are flowcharts illustrating a method of transmitting and receiving an RTP packet according to an embodiment of the present invention.

먼저, RTP 패킷 생성부(110)는 실시간 데이터를 RTP 패킷으로 변환한다(S110). First, the RTP packet generation unit 110 converts real time data into an RTP packet (S110).

송신 처리부(130)는 RTP 패킷 생성부(110)로부터 RTP 패킷이 생성될 때마다 RTP 패킷의 시퀀스 번호를 체크하고, 송신 큐(120)의 기록 포인터 값을 생성된 RTP 패킷의 시퀀스 번호로 갱신한다(S120). The transmission processor 130 checks the sequence number of the RTP packet whenever the RTP packet is generated from the RTP packet generator 110 and updates the write pointer value of the transmission queue 120 with the sequence number of the generated RTP packet. (S120).

그리고, 송신 처리부(130)는 송신 큐(120)의 기록 포인터 값에 해당하는 송신 큐(120)에 RTP 패킷을 저장한다(S130). The transmission processor 130 stores the RTP packet in the transmission queue 120 corresponding to the recording pointer value of the transmission queue 120 (S130).

그 후, 수신단(200)으로부터 송신 큐(120)에 저장된 RTP 패킷의 송신이 요청될 때마다(S140), 송신 처리부(130)는 송신 큐(120)의 판독 포인터 값을 송신 큐(120)에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신한다(S150). 그리고, 송신 처리부(130)는 해당 판독 포인터 값의 송신 큐(120)에 저장된 RTP 패킷을 접속부(140)를 통해 수신단(200)으로 송신한다(S160). Thereafter, whenever a transmission of the RTP packet stored in the transmission queue 120 is requested from the reception terminal 200 (S140), the transmission processing unit 130 transmits the read pointer value of the transmission queue 120 to the transmission queue 120. The sequence number of the stored RTP packet is updated in order (S150). The transmission processor 130 transmits the RTP packet stored in the transmission queue 120 of the read pointer value to the receiving terminal 200 through the connection unit 140 (S160).

수신 처리부(230)는 접속부(210)를 통해 RTP 패킷이 수신될 때마다 RTP 패킷의 시퀀스 번호를 체크하고, 수신 큐(220)의 기록 포인터 값을 수신된 RTP 패킷의 시퀀스 번호로 갱신한다(S170).The reception processor 230 checks the sequence number of the RTP packet each time an RTP packet is received through the access unit 210 and updates the write pointer value of the reception queue 220 with the sequence number of the received RTP packet (S170). ).

수신단(200)에서 RTP 패킷을 수신하는 동안, 수신 처리부(230)가 RTP 패킷의 시퀀스 번호에 기초하여 RTP 패킷의 오류를 검출하지 못하면, 수신 처리부(230)는 수신 큐(220)의 기록 포인터 값에 해당하는 수신 큐(220)에 RTP 패킷을 저장한다(S180, S190). If the receiving processor 230 does not detect an error of the RTP packet based on the sequence number of the RTP packet while the receiving terminal 200 receives the RTP packet, the receiving processor 230 writes a record pointer value of the receiving queue 220. The RTP packet is stored in the reception queue 220 corresponding to the received queues (S180 and S190).

만약, 수신단(200)에서 RTP 패킷을 수신하는 동안, 수신 처리부(230)가 RTP 패킷의 시퀀스 번호에 기초하여 RTP 패킷의 오류를 검출하면 에러 처리하고 송신단(100)으로 해당 RTP 패킷의 재송신을 요청한다(S180, S200). 여기서, 에러 처리로서 수신 큐(220)에 0xFF를 기록할 수 있다. 그리고, 전송 대기시간(latency) 안에 송신단(100)에서 재송신 요청을 받지 못하는 경우가 발생할 수 있으므로, 재송신 요청은 기설정된 횟수만큼 이루어질 수 있다. If the receiver 200 detects an error of the RTP packet based on the sequence number of the RTP packet while receiving the RTP packet, the receiver 200 processes the error and requests the transmitter 100 to retransmit the corresponding RTP packet. (S180, S200). Here, 0xFF can be written to the reception queue 220 as an error process. In addition, since a case in which the retransmission request is not received by the transmitter 100 within a transmission latency may occur, the retransmission request may be made a predetermined number of times.

수신단(200)으로부터 RTP 패킷의 재송신을 요청받은 송신 처리부(130)는 송신 큐(120)의 판독 포인터 값을 재송신 요청된 RTP 패킷의 시퀀스 번호로 갱신한다(S210). 그리고, 송신 처리부(130)는 송신 큐(120)의 판독 포인터 값에 해당하는 송신 큐(120)에 저장된 RTP 패킷을 재송신한다(S160).The transmission processor 130 receiving the request for retransmission of the RTP packet from the receiver 200 updates the read pointer value of the transmission queue 120 with the sequence number of the RTP packet requested for retransmission (S210). Then, the transmission processor 130 retransmits the RTP packet stored in the transmission queue 120 corresponding to the read pointer value of the transmission queue 120 (S160).

한편, 수신단(200)에서는 전송 대기시간(latency) 안에 해당 RTP 패킷을 재수신하지 못할 경우에는 에러 처리하는 한편, 재수신할 경우에는 에러 표시를 해제한다.On the other hand, the receiver 200 processes an error when the RTP packet cannot be re-received within the transmission latency, and releases an error indication when it receives again.

수신 처리부(230)는 RTP 패킷의 타임 스탬프에 표시된 상대적인 타이밍에 따라 수신 큐(220)에 저장된 RTP 패킷의 판독이 요청될 때마다 수신 큐(220)의 판독 포인터 값을 수신 큐(220)에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신한다(S220, S230). 그리고, 수신 큐(220)의 판독 포인터 값에 해당하는 수신 큐(220)에 저장된 RTP 패킷을 출력한다(S240). The reception processor 230 stores the read pointer value of the reception queue 220 in the reception queue 220 whenever a read of the RTP packet stored in the reception queue 220 is requested according to the relative timing indicated in the time stamp of the RTP packet. The sequence numbers of the RTP packets are updated in order (S220 and S230). The RTP packet stored in the reception queue 220 corresponding to the read pointer value of the reception queue 220 is output (S240).

한편, 전술한 실시예에서 송신 큐(120) 및 수신 큐(220)는 RTP 패킷 크기로 가변적으로 운용할 수 있다.Meanwhile, in the above-described embodiment, the transmission queue 120 and the reception queue 220 may be variably operated with an RTP packet size.

이와 같이, 본 발명은 송신 큐 및 수신 큐의 기록/판독 포인터 값을 RTP 패킷의 시퀀스 번호와 동일하게 설정함으로써, RTP 패킷을 큐에서 판독하고 큐에 기록하는 것을 간단하게 처리할 수 있다.As described above, the present invention can easily process reading the RTP packet from the queue and writing the queue by setting the write / read pointer values of the transmission queue and the reception queue equal to the sequence numbers of the RTP packets.

이상과 같이 예시된 도면을 참조로 하여, 본 발명에 따른 RTP 패킷의 송수신 방법 및 시스템에 대하여 설명하였으나, 본 발명은 본 명세서에 개시된 실시예와 도면에 의해 한정되지 않으며, 그 발명의 기술사상 범위 내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
Although the method and system for transmitting and receiving an RTP packet according to the present invention have been described with reference to the drawings illustrated as above, the present invention is not limited to the embodiments and drawings disclosed herein, and the technical scope of the present invention. Of course, various modifications can be made by those skilled in the art.

100: 송신단 200: 수신단
110: RTP 패킷 생성부 120: 송신 큐
130: 송신 처리부 140, 210: 접속부
220: 수신 큐 230: 수신 처리부
100: transmitting end 200: receiving end
110: RTP packet generation unit 120: transmission queue
130: transmission processing unit 140, 210: connection unit
220: reception queue 230: reception processing unit

Claims (6)

RTP 패킷의 송수신 방법에 있어서,
송신단에서 실시간 데이터를 상기 RTP 패킷으로 변환하는 단계;
상기 RTP 패킷의 시퀀스 번호를 체크하고, 송신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하는 단계;
상기 기록 포인터 값에 해당하는 송신 큐에 상기 RTP 패킷을 저장하는 단계;
수신단으로부터 상기 송신 큐에 저장된 RTP 패킷의 송신이 요청될 때마다 상기 송신 큐의 판독 포인터 값을 상기 송신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하는 단계;
상기 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 상기 수신단으로 송신하는 단계;
상기 수신단으로 상기 RTP 패킷이 수신될 때마다 상기 RTP 패킷의 시퀀스 번호를 체크하고, 수신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하는 단계; 및
상기 수신 큐의 기록 포인터 값에 해당하는 수신 큐에 상기 RTP 패킷을 저장하는 단계를 포함하는 RTP 패킷의 송수신 방법.
In the method of transmitting and receiving the RTP packet,
Converting real-time data into the RTP packet at a transmitting end;
Checking a sequence number of the RTP packet and updating a write pointer value of a transmission queue with the sequence number of the RTP packet;
Storing the RTP packet in a transmission queue corresponding to the write pointer value;
Updating a read pointer value of the transmission queue in order of sequence numbers of the RTP packets stored in the transmission queue each time a transmission of the RTP packets stored in the transmission queue is requested from a receiving end;
Transmitting an RTP packet stored in a transmission queue corresponding to the read pointer value to the receiving end;
Checking the sequence number of the RTP packet each time the RTP packet is received by the receiving end, and updating a write pointer value of the reception queue with the sequence number of the RTP packet; And
And storing the RTP packet in a receive queue corresponding to a record pointer value of the receive queue.
제1항에 있어서,
상기 수신 큐에 저장된 RTP 패킷의 판독이 요청될 때마다 상기 수신 큐의 판독 포인터 값을 상기 수신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하는 단계; 및
상기 수신 큐의 판독 포인터 값에 해당하는 수신 큐에 저장된 RTP 패킷을 출력하는 단계를 더 포함하는 RTP 패킷의 송수신 방법.
The method of claim 1,
Updating the read pointer value of the receive queue in sequence order of the RTP packet stored in the receive queue whenever a read of the RTP packet stored in the receive queue is requested; And
And outputting an RTP packet stored in a reception queue corresponding to a read pointer value of the reception queue.
제2항에 있어서,
상기 수신단에서 상기 RTP 패킷을 수신하는 동안 상기 RTP 패킷의 오류 여부를 검출하는 단계;
상기 오류가 검출되면 에러 처리하고 상기 송신단으로 오류가 검출된 RTP 패킷의 재송신을 요청하는 단계;
상기 재송신을 요청받은 송신단에서 상기 송신 큐의 판독 포인터 값을 상기 오류가 검출된 RTP 패킷의 시퀀스 번호로 갱신하는 단계; 및
상기 송신 큐의 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 재송신하는 단계를 더 포함하는 RTP 패킷의 송수신 방법.
The method of claim 2,
Detecting whether the RTP packet is error while receiving the RTP packet at the receiving end;
Error processing if the error is detected and requesting the transmitting end to retransmit the detected RTP packet;
Updating a read pointer value of the transmission queue with a sequence number of the RTP packet in which the error is detected, at the transmitting end receiving the retransmission request; And
Retransmitting the RTP packet stored in the transmission queue corresponding to the read pointer value of the transmission queue.
RTP 패킷의 송수신 시스템에 있어서,
상기 RTP 패킷을 송신하는 송신단; 및
상기 송신단으로부터 상기 RTP 패킷을 수신하는 수신단을 포함하고,
상기 송신단은 실시간 데이터를 상기 RTP 패킷으로 변환하는 RTP 패킷 생성부와, 상기 수신단으로 송신될 상기 RTP 패킷을 저장하는 송신 큐와, 상기 RTP 패킷의 시퀀스 번호를 체크하고, 상기 송신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하며, 상기 기록 포인터 값에 해당하는 송신 큐에 상기 RTP 패킷을 저장하는 한편, 상기 수신단으로부터 상기 송신 큐에 저장된 RTP 패킷의 송신이 요청될 때마다 상기 송신 큐의 판독 포인터 값을 상기 송신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하고, 상기 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 상기 수신단으로 송신하는 송신 처리부를 포함하고,
상기 수신단은 상기 송신단으로부터 수신된 RTP 패킷을 저장하는 수신 큐와, 상기 RTP 패킷이 수신될 때마다 상기 RTP 패킷의 시퀀스 번호를 체크하고, 상기 수신 큐의 기록 포인터 값을 상기 RTP 패킷의 시퀀스 번호로 갱신하며, 상기 수신 큐의 기록 포인터 값에 해당하는 수신 큐에 상기 RTP 패킷을 저장하는 수신 처리부를 포함하는 RTP 패킷의 송수신 시스템.
In a system for transmitting and receiving RTP packets,
A transmitter for transmitting the RTP packet; And
A receiving end receiving the RTP packet from the transmitting end,
The transmitting end checks a RTP packet generation unit for converting real time data into the RTP packet, a transmission queue storing the RTP packet to be transmitted to the receiving end, a sequence number of the RTP packet, and a write pointer value of the transmission queue. Is updated with the sequence number of the RTP packet, the RTP packet is stored in a transmission queue corresponding to the record pointer value, and each time a transmission of the RTP packet stored in the transmission queue is requested from the receiving end, A transmission processor for updating a read pointer value in sequence of the sequence numbers of the RTP packets stored in the transmission queue, and transmitting the RTP packet stored in the transmission queue corresponding to the read pointer value to the receiving end;
The receiving end checks a receiving queue storing an RTP packet received from the transmitting end, a sequence number of the RTP packet each time the RTP packet is received, and writes a write pointer value of the receiving queue to the sequence number of the RTP packet. And a reception processing unit for updating and storing the RTP packet in a reception queue corresponding to a record pointer value of the reception queue.
제4항에 있어서,
상기 수신 처리부는 상기 수신 큐에 저장된 RTP 패킷의 판독이 요청될 때마다 상기 수신 큐의 판독 포인터 값을 상기 수신 큐에 저장된 RTP 패킷의 시퀀스 번호 순서대로 갱신하고, 상기 수신 큐의 판독 포인터 값에 해당하는 수신 큐에 저장된 RTP 패킷을 출력하는 RTP 패킷의 송수신 시스템.
5. The method of claim 4,
The reception processing unit updates the read pointer value of the reception queue in sequence of the sequence number of the RTP packet stored in the reception queue whenever a read of the RTP packet stored in the reception queue is requested, and corresponds to the read pointer value of the reception queue. RTP packet transmission and reception system for outputting the RTP packet stored in the reception queue.
제5항에 있어서,
상기 수신 처리부는 상기 RTP 패킷을 수신하는 동안 상기 RTP 패킷의 오류 여부를 검출하고, 상기 오류가 검출되면 에러 처리하고 상기 송신단으로 오류가 검출된 RTP 패킷의 재송신을 요청하며,
상기 송신 처리부는 상기 송신 큐의 판독 포인터 값을 상기 오류가 검출된 RTP 패킷의 시퀀스 번호로 갱신하고, 상기 송신 큐의 판독 포인터 값에 해당하는 송신 큐에 저장된 RTP 패킷을 재송신하는 RTP 패킷의 송수신 시스템.
The method of claim 5,
The receiving processor detects whether the RTP packet is an error while receiving the RTP packet, processes the error if the error is detected, and requests the transmitting end to retransmit the detected RTP packet,
The transmission processing unit transmits and receives an RTP packet transmitting / receiving system that updates the read pointer value of the transmission queue with the sequence number of the RTP packet in which the error is detected, and retransmits the RTP packet stored in the transmission queue corresponding to the read pointer value of the transmission queue. .
KR1020120033865A 2012-04-02 2012-04-02 Rtp packet transmitting and receiving method and system Expired - Fee Related KR101236231B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120033865A KR101236231B1 (en) 2012-04-02 2012-04-02 Rtp packet transmitting and receiving method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120033865A KR101236231B1 (en) 2012-04-02 2012-04-02 Rtp packet transmitting and receiving method and system

Publications (1)

Publication Number Publication Date
KR101236231B1 true KR101236231B1 (en) 2013-02-22

Family

ID=47900018

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120033865A Expired - Fee Related KR101236231B1 (en) 2012-04-02 2012-04-02 Rtp packet transmitting and receiving method and system

Country Status (1)

Country Link
KR (1) KR101236231B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050076693A (en) * 2004-01-20 2005-07-26 소니 가부시끼 가이샤 Transmission/reception system, transmitter and transmitting method, receiver and receiving method, recording medium, and program
KR100557107B1 (en) * 1998-12-30 2006-05-16 삼성전자주식회사 How to Recover Lost Packets of Data for On-Demand Video Services
KR20110048120A (en) * 2009-11-02 2011-05-11 주식회사 케이티 Communication billing device and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100557107B1 (en) * 1998-12-30 2006-05-16 삼성전자주식회사 How to Recover Lost Packets of Data for On-Demand Video Services
KR20050076693A (en) * 2004-01-20 2005-07-26 소니 가부시끼 가이샤 Transmission/reception system, transmitter and transmitting method, receiver and receiving method, recording medium, and program
KR20110048120A (en) * 2009-11-02 2011-05-11 주식회사 케이티 Communication billing device and method

Similar Documents

Publication Publication Date Title
US7263644B2 (en) Data transmitting/receiving system and method thereof
US8260935B2 (en) Error control terminal discovery and updating
US7562277B2 (en) Data transmitting/receiving system and method thereof
JP5588019B2 (en) Method and apparatus for analyzing a network abstraction layer for reliable data communication
TWI388170B (en) Streaming data content in a network
KR100987421B1 (en) Data communication system, data transmission device, data reception device, data communication method and computer readable recording medium
RU2634908C2 (en) Method and device for mediadata delivery management
US8175036B2 (en) Multimedia wireless distribution systems and methods
KR20160135200A (en) Transport accelerator implementing extended transmission control functionality
JP2007143113A (en) Transmission / reception system, transmission apparatus, and transmission method
US20060259845A1 (en) Method and apparatus for acknowledging a bitwise data chunk in wireline and wireless communication systems
JP2010518740A (en) Improved retransmission method and apparatus
CN114979793A (en) Live broadcast data transmission method, device, system, equipment and medium
KR20160123562A (en) Receiver for processing data packet and data packet processing method of receiver
US8238341B2 (en) Apparatus and method for processing voice over internet protocol packets
KR101236231B1 (en) Rtp packet transmitting and receiving method and system
CN115348335B (en) Common transport architecture for heterogeneous data streams
CN114640724B (en) RUDP-based data transmission method, device, equipment and computer storage medium
JP4808227B2 (en) Data transmission apparatus, computer program, and data transmission method
US20230117443A1 (en) Systems and Methods for Selective Storing of Data Included in a Corrupted Data Packet
EP3829134B1 (en) Method for transferring large amounts of data through a telematic network in an efficient and reliable manner and at high-speed
JP2006304138A (en) Selective retransmission type communication device
JP2013157706A (en) Radio communication device and communication control method
JP2008092346A (en) Transmitting apparatus and receiving apparatus
KR20060133344A (en) Improved JP Proxy with JP-TCC Support

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20120402

PA0201 Request for examination
A302 Request for accelerated examination
PA0302 Request for accelerated examination

Patent event date: 20120403

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20120402

Patent event code: PA03021R01I

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20120712

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20130213

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20130218

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20130218

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20161212

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20161212

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20171211

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20171211

Start annual number: 6

End annual number: 6

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20191201