KR101243502B1 - Data receiving method and apparatus - Google Patents

Data receiving method and apparatus Download PDF

Info

Publication number
KR101243502B1
KR101243502B1 KR1020110112292A KR20110112292A KR101243502B1 KR 101243502 B1 KR101243502 B1 KR 101243502B1 KR 1020110112292 A KR1020110112292 A KR 1020110112292A KR 20110112292 A KR20110112292 A KR 20110112292A KR 101243502 B1 KR101243502 B1 KR 101243502B1
Authority
KR
South Korea
Prior art keywords
data
chunk
sublist
lost
type
Prior art date
Application number
KR1020110112292A
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 KR1020110112292A priority Critical patent/KR101243502B1/en
Application granted granted Critical
Publication of KR101243502B1 publication Critical patent/KR101243502B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

PURPOSE: A data reception method and an apparatus thereof are provided to improve the efficiency of a retransmission request by dynamically changing space between the re-transmission requests. CONSTITUTION: A loss chunk management unit(260) generates a first re-transmission request message. The first re-transmission request message requests transmission of first loss chunk data again. The loss chunk management unit transmits the first re-transmission request message to a data transmission apparatus. A re-transmission request point calculating unit(270) generates a message for requesting the re-transmission of the second loss chunk data and the requested message. The re-transmission request point calculating unit dynamically calculates the re-transmission request point transmitted to the data transmission apparatus. [Reference numerals] (100) Data transmission device; (110) Disk reader; (120) Chuck data transmission unit; (130) Transmission cycle control unit; (140) Loss chunk control unit; (150,250) RTT measurement unit; (200) Data reception unit; (210) Chunk data reception unit; (220) Disk writer; (230) Control information transmission unit; (260) Loss chunk management unit; (261) List writing unit; (263) Packet generation unit; (265) Message type determination unit; (267) Message transmission unit; (270) Re-transmission request point calculating unit; (AA) Chunk data, loss chunk data; (BB) Control information; (CC) Transmission cycle; (DD) Re-transmission request message

Description

데이터 수신 방법 및 장치{Data Receiving Method and Apparatus}Data Receiving Method and Apparatus}

본 발명은 데이터 수신 방법 및 장치에 관한 것으로, 보다 상세하게는 데이터 전송 시 유실된 데이터의 재전송 요청 간격을 동적으로 조절하고, 메모리 사용 효율을 높이는 재전송 요청 메시지를 사용하는 데이터 수신 방법 및 장치에 관한 것이다.The present invention relates to a data receiving method and apparatus, and more particularly, to a data receiving method and apparatus for dynamically adjusting a retransmission request interval of lost data during data transmission and using a retransmission request message to increase memory usage efficiency. will be.

송신자가 수신자에게 데이터를 전송할 때, 네트워크 상황 및 그 외 여러 가지 이유로 전송 도중 패킷이 유실될 수 있다. 이러한 경우, 유실 데이터의 복원을 위해 수신자는 송신자에게 데이터의 재전송을 요청한다.  재전송을 요청하는 메시지를 전송하는 시점은, 데이터 전송 시스템이 설치된 네트워크 환경 및 송수신 시스템의 응답 및 처리 속도 등을 고려하여 결정된다. 만약, 이러한 변수들을 고려하지 않고 재전송 요청 주기를 산정하는 경우, 데이터의 중복 재전송이 발생하여 네트워크를 불필요하게 사용하거나, 재전송 패킷 처리가 지연되어 데이터가 제대로 활용되지 못할 수 있으며, 송신자와 수신자에게도 과도한 프로세스 부하를 줄 수 있다.When a sender sends data to a receiver, packets may be lost during transmission for network conditions and many other reasons. In this case, to recover lost data, the receiver requests the sender to retransmit the data. The time point for transmitting the message requesting retransmission is determined in consideration of the network environment in which the data transmission system is installed and the response and processing speed of the transmission and reception system. If the retransmission request period is calculated without considering these variables, redundant retransmission of data may occur, causing unnecessary use of the network, delayed retransmission packet processing, and ineffective use of the data. Can put process load

본 발명적 개념의 예시적 실시예에 따르면, 유선 또는 무선 네트워크 환경에 최적화된 재전송 요청 간격을 적용하고, 네트워크 환경을 고려하여 재전송 요청 간격을 동적으로 변화시킴으로써 재전송 요청의 효율성을 향상시킬 수 있는 데이터 수신 방법 및 장치를 제공하고자 한다.According to an exemplary embodiment of the present invention, data that can improve the efficiency of the retransmission request by applying the retransmission request interval optimized for the wired or wireless network environment, and dynamically changing the retransmission request interval in consideration of the network environment It is intended to provide a receiving method and apparatus.

또한, 본 발명적 개념의 예시적 실시예에 따르면, 유실 데이터의 정보를 송신자에게 보다 정확히 제공하면서, 유실 데이터의 재전송에 사용되는 메모리의 불필요한 사용을 막고 메모리의 사용 효율성을 높이는 재전송 요청 메시지를 이용하는 데이터 수신 방법 및 장치를 제공하고자 한다.Further, according to an exemplary embodiment of the inventive concept, a retransmission request message is used, which provides the sender with information of the lost data more accurately, while preventing unnecessary use of the memory used for retransmission of the lost data and increasing the use efficiency of the memory. The present invention provides a method and apparatus for receiving data.

본 발명적 개념의 다른 예시적 실시 예에 따르면, 데이터 전송 장치로부터 수신된 제1청크 데이터들 중 제1유실 청크데이터들을 확인하고, 상기 확인된 제1유실 청크데이터들의 재전송을 요청하는 제1재전송 요청 메시지를 생성하여 상기 데이터 전송 장치로 전송하는 유실 청크 관리부; 및 제2재전송 요청 메시지-상기 제1재전송 요청 메시지가 전송된 이후 상기 데이터 전송 장치로부터 수신될 제2청크데이터들 중 제2유실 청크데이터들의 재전송을 요청하기 위한 메시지-를 생성하여 상기 데이터 전송 장치로 전송할 재전송 요청 시점을 미리 동적으로 산출하는 재전송 요청 시점 산출부;를 포함하는 것을 특징으로 하는 데이터 수신 장치가 제공될 수 있다.According to another exemplary embodiment of the inventive concept, a first retransmission check is performed on the first lost chunk data among the first chunk data received from the data transmission device and requests retransmission of the identified first lost chunk data. A lost chunk manager for generating a request message and transmitting the generated request message to the data transmission device; And a second retransmission request message-a message for requesting retransmission of second lost chunk data among second chunk data to be received from the data transmission apparatus after the first retransmission request message is transmitted. And a retransmission request point calculator which dynamically calculates a retransmission request point to be transmitted in advance.

한편, 본 발명적 개념의 다른 예시적 실시 예에 따르면, 데이터 전송 장치로부터 수신된 제1청크 데이터들 중 제1유실 청크데이터들을 확인하는 단계; 상기 확인된 제1유실 청크데이터들의 재전송을 요청하는 제1재전송 요청 메시지를 생성하여 상기 데이터 전송 장치로 전송하는 단계; 및 제2재전송 요청 메시지-상기 제1재전송 요청 메시지가 전송된 이후 상기 데이터 전송 장치로부터 수신될 제2청크데이터들 중 제2유실 청크데이터들의 재전송을 요청하기 위한 메시지-를 생성하여 상기 데이터 전송 장치로 전송할 재전송 요청 시점을 미리 동적으로 산출하는 단계;를 포함하는 것을 특징으로 하는 데이터 수신 방법이 제공될 수 있다.Meanwhile, according to another exemplary embodiment of the inventive concept, the method may further include: verifying first lost chunk data among first chunk data received from a data transmission device; Generating and transmitting a first retransmission request message requesting retransmission of the identified first lost chunk data to the data transmission apparatus; And a second retransmission request message-a message for requesting retransmission of second lost chunk data among second chunk data to be received from the data transmission apparatus after the first retransmission request message is transmitted. Dynamically calculating a retransmission request time point to be transmitted to the data in advance; may be provided with a data receiving method comprising a.

본 발명적 개념의 하나 이상의 예시적 실시 예에 따르면, 데이터 전송 시스템이 설치된 네트워크 환경에 최적화된 재전송 요청 간격을 미리 동적으로 산출하고, 유실된 데이터의 회복을 위한 재전송 요청 메시지의 타입을 정의하고, 동적으로 산출되는 주기에 따라 재전송 요청 메시지를 전송함으로써 네트워크 사용 효율성, 재전송 요청의 효율성 및 컴퓨팅 리소스 활용도를 향상시킬 수 있다.According to one or more example embodiments of the inventive concept, a retransmission request interval optimized for a network environment in which a data transmission system is installed is dynamically calculated in advance, a type of a retransmission request message for recovering lost data is defined, Sending retransmission request messages at dynamically calculated intervals can improve network utilization, retransmission efficiency, and computing resource utilization.

또한, 본 발명적 개념의 하나 이상의 예시적 실시 예에 따르면, 유실된 데이터에 대한 정보를 포함하는 재전송 요청 메시지를 데이터 전송 장치가 수신하면, 데이터 전송 장치는 재전송 요청 메시지로부터 수신이 완료된 데이터를 청크단위로 확인하고, 메모리에서 해당 데이터를 해지함으로써, 메모리 활용도를 높일 수 있다.Further, according to one or more exemplary embodiments of the inventive concept, when the data transmission device receives a retransmission request message that includes information about lost data, the data transmission device chunks the data that has been received from the retransmission request message. By checking in units and revoking the corresponding data in the memory, the memory utilization can be increased.

도 1은 본 발명적 개념의 예시적 실시예에 따른 고속 데이터 송수신 시스템을 도시한 도면,
도 2는 유실 청크데이터에 대한 재전송을 요청하는 일련의 과정을 보여주는 도면,
도 3은 새로운 전송 주기를 이용하여 유실 청크데이터에 대한 재전송을 요청하는 일련의 과정을 보여주는 도면,
도 4는 디스크 리더가 파일의 데이터를 메모리에 로드할 때 사용하는 메모리 구조를 설명하기 위한 도면,
도 5는 유실 청크 제어부가 재전송 요청 메시지를 이용하여 수신이 완료된 청크데이터를 판단하는 방법을 설명하기 위한 도면,
도 6은 데이터 수신 장치에서 사용되는 메모리 구조를 설명하기 위한 도면,
도 7은 제1유실 청크 리스트로부터 복수 개의 서브리스트 패킷들이 생성되는 일 예를 보여주는 도면,
도 8은 본 발명적 개념의 예시적 실시예에 따른 패킷 생성부에서 생성되는 서브리스트 패킷 또는 리스트 패킷의 포맷을 도시한 도면,
도 9a는 청크데이터 전송부에서 사용하는 메모리 구조 중 30개의 청크로 이루어지는 하나의 파일블록을 도시한 도면,
도 9b는 유실 청크 리스트와 서브 패킷들의 일 예를 도시한 도면,
도 9c는 유실 청크 리스트와 리스트 패킷의 일 예를 도시한 도면,
도 10은 본 발명적 개념의 예시적 실시예에 따른 패킷 생성부가 유실 청크데이터들을 중복적용하는 과정의 일 예를 설명하기 위한 도면, 그리고,
도 11 및 도 12는 본 발명적 개념의 예시적 실시예에 따른 데이터 수신 방법을 설명하기 위한 흐름도이다.
1 is a diagram illustrating a high speed data transmission / reception system according to an exemplary embodiment of the inventive concept;
2 is a diagram illustrating a series of processes for requesting retransmission of lost chunk data;
3 is a diagram illustrating a series of processes for requesting retransmission of lost chunk data using a new transmission period;
4 is a diagram for describing a memory structure used when a disk reader loads data of a file into a memory;
FIG. 5 is a diagram for describing a method of determining, by a lost chunk controller, a chunk data of which reception has been completed using a retransmission request message; FIG.
6 is a view for explaining a memory structure used in the data receiving apparatus;
7 is a diagram illustrating an example in which a plurality of sublist packets are generated from a first lost chunk list;
8 is a diagram illustrating a format of a sublist packet or a list packet generated by a packet generator according to an exemplary embodiment of the inventive concept;
FIG. 9A illustrates one file block including 30 chunks of a memory structure used by the chunk data transmitter;
9B illustrates an example of a lost chunk list and subpackets;
9C illustrates an example of a lost chunk list and a list packet;
10 is a view for explaining an example of a process in which a packet generation unit overlaps lost chunk data according to an exemplary embodiment of the inventive concept; and
11 and 12 are flowcharts illustrating a data receiving method according to an exemplary embodiment of the inventive concept.

이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features, and advantages of the present invention will become more readily apparent from the following description of preferred embodiments with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described herein but may be embodied in other forms. Rather, the embodiments disclosed herein are provided so that the disclosure can be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.

본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다.In this specification, when an element is referred to as being on another element, it may be directly formed on another element, or a third element may be interposed therebetween.

본 명세서에서 제1, 제2 등의 용어가 구성요소들을 기술하기 위해서 사용된 경우, 이들 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안 된다. 이들 용어들은 단지 어느 구성요소를 다른 구성요소와 구별시키기 위해서 사용되었을 뿐이다. 여기에 설명되고 예시되는 실시예들은 그것의 상보적인 실시예들도 포함한다.Where the terms first, second, etc. are used herein to describe components, these components should not be limited by such terms. These terms have only been used to distinguish one component from another. The embodiments described and exemplified herein also include their complementary embodiments.

또한, 제1 엘리먼트 (또는 구성요소)가 제2 엘리먼트(또는 구성요소) 상(ON)에서 동작 또는 실행된다고 언급될 때, 제1 엘리먼트(또는 구성요소)는 제2 엘리먼트(또는 구성요소)가 동작 또는 실행되는 환경에서 동작 또는 실행되거나 또는 제2 엘리먼트(또는 구성요소)와 직접 또는 간접적으로 상호 작용을 통해서 동작 또는 실행되는 것으로 이해되어야 할 것이다.In addition, when it is mentioned that a first element (or component) is operated or executed on a second element (or component), the first element (or component) is a second element (or component). It is to be understood that the operation or execution in the environment in which the operation or the execution is performed or the operation or execution is performed through direct or indirect interaction with the second element (or component).

어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다.It is to be understood that when an element, component, apparatus, or system is referred to as comprising a program or a component made up of software, it is not explicitly stated that the element, component, (E.g., memory, CPU, etc.) or other programs or software (e.g., drivers necessary to drive an operating system or hardware, etc.)

또한 어떤 엘리먼트(또는 구성요소)가 구현됨에 있어서 특별한 언급이 없다면, 그 엘리먼트(또는 구성요소)는 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어 어떤 형태로도 구현될 수 있는 것으로 이해되어야 할 것이다.It is also to be understood that the elements (or components) may be implemented in software, hardware, or any form of software and hardware, unless the context clearly dictates otherwise.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. The terms "comprises" and / or "comprising" used in the specification do not exclude the presence or addition of one or more other elements.

이하, 도면을 참조하여 본 발명적 개념을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명적 개념을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명적 개념을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명적 개념을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명적 개념을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다. Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. In describing the specific embodiments below, various specific details are written to more specifically explain and help understand the inventive concept. However, a person skilled in the art that can understand the inventive concept can recognize that it can be used without these various specific details. In some cases, it is mentioned in advance that parts of the invention which are commonly known in the description of the inventive concept and which are not highly related to the invention are not described in order to prevent confusion for no reason.

도 1은 본 발명적 개념의 예시적 실시예에 따른 고속 데이터 송수신 시스템을 도시한 도면이다.1 is a diagram illustrating a high speed data transmission / reception system according to an exemplary embodiment of the inventive concept.

도 1을 참조하면, 고속 데이터 송수신 시스템은 데이터 전송 장치(100)와 데이터 재전송 요청 장치(240)를 포함하는 데이터 수신 장치(200)를 포함한다.Referring to FIG. 1, the high speed data transmission / reception system includes a data reception device 200 including a data transmission device 100 and a data retransmission request device 240.

데이터 전송 장치(100)는 디스크 리더(110), 청크데이터 전송부(120), 전송주기 제어부(130), 유실 청크 제어부(140) 및 RTT(Round Trip Time) 측정부(150)를 포함할 수 있다.The data transmission apparatus 100 may include a disk reader 110, a chunk data transmitter 120, a transmission cycle controller 130, a lost chunk controller 140, and a round trip time (RTT) measurer 150. have.

디스크 리더(110)는 HDD(Hard Disk Drive)와 같은 기록매체(미도시)에 기록된 파일을 파일블록 단위로 읽어와 메모리(미도시)에 로딩하여 청크(chunk) 단위로 기록할 수 있다. 본 명세서에서 ‘청크’는 일정 크기를 가진 데이터 전송 단위로서, 전송되는 데이터 패킷에서 헤더를 제외한 순수 데이터 부분을 의미한다. ‘청크데이터’는 청크 단위로 기록된 데이터이다. ‘파일블록’은 파일을 전송하기 위해 기록할 때 사용되는 메모리 단위로서, 청크 크기의 특정 양수 배의 크기를 갖는다.The disk reader 110 may read a file recorded on a recording medium (not shown) such as a hard disk drive (HDD) in file block units, load the file in a memory (not shown), and record the data in chunks. In the present specification, 'chunk' is a data transmission unit having a predetermined size, and refers to a pure data portion excluding a header in a transmitted data packet. 'Chunk data' is data recorded in chunks. A 'file block' is a unit of memory used to record a file for transferring. The file block has a certain positive multiple of the chunk size.

청크데이터 전송부(120)는 데이터가 기록된 파일블록을 청크 단위로 데이터 수신 장치(200)로 전송할 수 있다. The chunk data transmitter 120 may transmit the file block in which data is recorded to the data receiving apparatus 200 in chunk units.

전송주기 제어부(130)는 데이터 수신 장치(200)의 컨트롤 정보 전송부(230)로부터 주기적으로 컨트롤 정보를 수신하고, 수신된 컨트롤 정보를 기초로 청크데이터들 간의 전송 주기(td, delay time)을 조절할 수 있다. 청크데이터들이 제1청크데이터와 제2청크데이터를 포함하는 경우, 전송 주기는 제1청크데이터를 전송한 후 제2청크데이터를 전송하기까지의 텀(term)을 의미한다. 또한, 전송주기 제어부(130)는 컨트롤 정보를 기초로 조절된 전송 주기를 주기적으로 컨트롤 정보의 애크에 담아 유실 청크 관리부(260)로 전송할 수 있다. The transmission period controller 130 periodically receives control information from the control information transmitter 230 of the data receiving apparatus 200, and transmits a transmission period (td, delay time) between chunk data based on the received control information. I can regulate it. When the chunk data includes the first chunk data and the second chunk data, the transmission period means a term from transmitting the first chunk data to transmitting the second chunk data. In addition, the transmission period controller 130 may periodically transmit the adjusted transmission period based on the control information to the lost chunk manager 260 in the acknowledgment of the control information.

청크데이터 전송부(120)는 전송주기 제어부(130)에서 조절되는 전송 주기를 참조하여 청크데이터를 데이터 수신 장치(200)로 전송할 수 있다. 따라서, 청크데이터들 간의 전송 주기에 따라 청크데이터 전송부(120)의 데이터 전송률이 변경될 수 있다.The chunk data transmitter 120 may transmit the chunk data to the data receiving apparatus 200 with reference to the transmission period adjusted by the transmission period controller 130. Therefore, the data rate of the chunk data transmitter 120 may be changed according to the transmission period between the chunk data.

유실 청크 제어부(140)는 청크데이터를 전송하는 중 유실된 청크데이터(즉, 유실된 패킷)의 정보를 유실 청크 관리부(260)로부터 수신하고, 유실된 청크데이터의 정보로부터 유실 청크데이터와 수신이 완료된 청크데이터를 확인할 수 있다. The lost chunk control unit 140 receives the lost chunk data (ie, lost packets) from the lost chunk manager 260 while transmitting the chunk data, and the lost chunk data and the received chunk data are received from the lost chunk data. You can check the completed chunk data.

유실 청크 제어부(140)는 확인된 유실 청크데이터의 정보를 디스크 리더(110)에게 제공하면서, 유실 청크데이터의 재전송을 디스크 리더(110)에게 요청할 수 있다. 이에 의해, 디스크 리더(110)는 유실 청크데이터의 정보에 대응하는 유실 청크데이터를 기록매체로부터 읽어와 청크 단위로 메모리에 기록하며, 청크데이터 전송부(120)는 유실 청크데이터를 청크 단위로 청크데이터 수신부(210)에게 재전송할 수 있다. 청크데이터 전송부(120)는 유실 청크데이터를 유실 청크데이터의 고유번호 순서대로 재전송할 수 있다. 유실 청크데이터의 고유번호는 도 4를 참조하여 후술한다.The lost chunk control unit 140 may request the disk reader 110 to retransmit the lost chunk data while providing the identified information of the lost chunk data to the disk reader 110. As a result, the disc reader 110 reads the lost chunk data corresponding to the information of the lost chunk data from the recording medium and writes them to the memory in chunk units, and the chunk data transmitter 120 chunks the lost chunk data in chunk units. The data receiver 210 may retransmit the data. The chunk data transmitter 120 may retransmit the lost chunk data in the order of a unique number of the lost chunk data. The unique number of the lost chunk data will be described later with reference to FIG. 4.

RTT 측정부(150)는 데이터 전송 장치(100)와 데이터 수신 장치(200)의 연결이 설정되면, 청크데이터의 전송 시작부터 전송 종료까지 주기적으로 RTT 측정용 패킷을 주고받아 현재 시점의 RTT를 구한다.When the connection between the data transmission device 100 and the data reception device 200 is established, the RTT measurement unit 150 exchanges the RTT measurement packet periodically from the start of transmission of the chunk data to the end of the transmission to obtain an RTT at the present time. .

한편, 데이터 수신 장치(200)는 청크데이터 수신부(210), 디스크 라이터(220), 컨트롤 정보 전송부(230), 데이터 재전송 요청 장치(240) 및 RTT 측정부(250)를 포함할 수 있다. The data receiving apparatus 200 may include a chunk data receiver 210, a disc writer 220, a control information transmitter 230, a data retransmission request apparatus 240, and an RTT measuring unit 250.

청크데이터 수신부(210)는 청크데이터 전송부(120)로부터 수신된 청크데이터를 파일블록에 저장한다. The chunk data receiver 210 stores the chunk data received from the chunk data transmitter 120 in a file block.

디스크 라이터(220)는 수신 완료된 파일블록을 기록매체(미도시)에 기록할 수 있다. 예를 들어, 하나의 파일블록이 10개의 청크로 구분되는 경우, 파일블록에 10개의 청크데이터가 저장되면, 디스크 라이터(220)는 해당 파일블록을 수신 완료된 파일블록으로 판단한다.The disc writer 220 may record the received file block on a recording medium (not shown). For example, when one file block is divided into ten chunks, when ten chunk data are stored in the file block, the disc writer 220 determines that the file block is a received file block.

컨트롤 정보 전송부(230)는 주기적으로 전송주기 제어부(130)로 데이터 수신 장치(200)의 컨트롤 정보를 전송할 수 있다. 컨트롤 정보는 파일의 전송을 위해 데이터 전송 장치(100)와 데이터 수신 장치(200)가 공유하는 정보일 수 있다. The control information transmitter 230 may periodically transmit the control information of the data receiving apparatus 200 to the transmission period controller 130. The control information may be information shared by the data transmission apparatus 100 and the data receiving apparatus 200 for file transmission.

컨트롤 정보는 전송할 파일의 파일명, 파일 사이즈, 스트림의 개수, 디스크 버퍼 사이즈, 전체 블록 개수, IP 주소, 포트 정보 및 세션 ID(identification) 등의 정보를 포함한다. 파일이 병렬 TCP(Transmission Control Protocol) 스트림방식으로 전송되는 경우, 스트림의 개수는 파일 전송에 사용될 수 있는 스트림의 최대 연결 개수이고, 디스크 버퍼 사이즈는 기록매체에 데이터를 쓰기 위해 버퍼에 할당된 파일블록의 크기, IP 주소는 데이터 전송에 사용되는 IP의 주소, 포트 정보는 데이터 전송에 사용되는 포트의 정보, 세션 ID는 각 스트림의 ID이다.The control information includes information such as a file name of a file to be transmitted, a file size, a number of streams, a disk buffer size, a total number of blocks, an IP address, a port information, and a session ID. When files are transferred in parallel Transmission Control Protocol (TCP) streams, the number of streams is the maximum number of connections in the stream that can be used for file transfers, and the disk buffer size is the file blocks allocated to the buffers for writing data to the record carrier. The size of, IP address is the IP address used for data transmission, port information is the port information used for data transmission, session ID is the ID of each stream.

데이터 재전송 요청 장치(240)는 유실 청크 관리부(260)와 재전송 요청 시점 산출부(270)는 수신된 데이터 중 유실된 데이터의 재전송을 요청하는 로 동작할 수 있다.The data retransmission request apparatus 240 may operate as a request for retransmission of lost data from the lost chunk manager 260 and the retransmission request time calculator 270.

유실 청크 관리부(260)는 수신된 청크데이터들 중 유실된 청크데이터(이하, ‘유실 청크데이터’라 한다)의 정보를 유실 청크 제어부(140)로 전송할 수 있다. 보다 자세히는, 유실 청크 관리부(260)는 유실 청크데이터의 재전송을 요청하기 위해, 청크데이터 전송부(120)로부터 수신된 청크데이터들 중 유실 청크데이터들의 정보를 확인하고, 확인된 유실 청크데이터들의 정보를 이용하여 재전송 요청 메시지를 생성하여 유실 청크 제어부(140)로 전송할 수 있다. 유실 청크데이터의 정보는 유실 청크데이터의 고유번호, 즉, ID(identification)일 수 있다.The lost chunk manager 260 may transmit the lost chunk data (hereinafter, referred to as "lost chunk data") among the received chunk data to the lost chunk controller 140. In more detail, the lost chunk manager 260 checks the information of the lost chunk data among the chunk data received from the chunk data transmitter 120 to request retransmission of the lost chunk data, and checks the lost chunk data. The retransmission request message may be generated using the information and transmitted to the lost chunk controller 140. The information of the lost chunk data may be a unique number of the lost chunk data, that is, identification.

재전송 요청 시점 산출부(270)는 최초로 재전송 요청메시지를 생성하여 전송하는 시점에서, 다음에 재전송 요청메시지를 생성할 다음 재전송 요청 시점을 미리 산출할 수 있다. The retransmission request point calculator 270 may calculate, in advance, the next retransmission request point for generating a next retransmission request message at a point in time of generating and transmitting the retransmission request message for the first time.

재전송 요청 시점 산출부(270)는 RTT 측정부(250)에서 측정된 RTT, 전송주기 제어부(130)로부터 수신되는 전송 주기 및 일정 기간 동안 수집된 유실 청크데이터의 개수를 이용하여 재전송 요청 시점을 미리 산출할 수 있다. 따라서, 재전송 요청 시점 산출부(270)는 네트워크 환경에 따라 동적으로 재전송 요청 시점을 미리 산출하고, 유실 청크 관리부(260)는 미리 산출된 재전송 요청 시점이 되면, 일정 기간 동안 수집된 유실 청크데이터들에 대한 재전송 요청 메시지를 생성하여 유실 청크 제어부(140)에게 전송할 수 있다.The retransmission request timing calculator 270 pre-remits the retransmission request timing by using the RTT measured by the RTT measurement unit 250, the transmission period received from the transmission period controller 130, and the number of lost chunk data collected for a predetermined period. Can be calculated. Therefore, the retransmission request point calculator 270 dynamically calculates a retransmission request point in advance according to a network environment, and the lost chunk manager 260 may collect lost chunk data collected for a predetermined period when the retransmission request point arrives in advance. It may generate a retransmission request message for the lost chunk control unit 140.

RTT 측정부(250)는 데이터 전송 장치(100)와 데이터 수신 장치(200)의 연결이 설정되면, 청크데이터의 전송 시작부터 전송 종료까지 주기적으로 RTT 측정용 패킷을 주고받아 현재 시점의 RTT를 구한다. RTT 측정부(250)에서 측정된 RTT는 유실 청크 관리부(260)에서 재전송 요청 간격을 산출할 때 사용될 수 있다.When the connection between the data transmission device 100 and the data reception device 200 is established, the RTT measurement unit 250 periodically exchanges RTT measurement packets from the start of transmission of the chunk data to the end of the transmission to obtain an RTT at the present time. . The RTT measured by the RTT measuring unit 250 may be used when calculating the retransmission request interval in the lost chunk manager 260.

이하에서는, 본 발명적 개념의 예시적 실시예에 따른 재전송 요청 시점 산출부(270)가 재전송 요청 시점을 산출하는 동작을 도 2 및 도 3을 참조하여 자세히 설명한다.Hereinafter, an operation of calculating a retransmission request point in time by the retransmission request point calculator 270 according to an exemplary embodiment of the inventive concept will be described in detail with reference to FIGS. 2 and 3.

도 2는 유실 청크데이터에 대한 재전송을 요청하는 일련의 과정을 보여주는 도면이다.2 is a diagram illustrating a series of processes for requesting retransmission of lost chunk data.

도 2를 참조하면, 청크데이터 전송부(120)는 S1시점에서 제1청크데이터들의 전송을 시작하며(①), 청크데이터 수신부(210)는 R1시점에서 제1청크데이터들 중 첫 번째 제1청크데이터를 수신한다. 청크데이터 전송부(120)는 전송주기 제어부(130)에서 산출된 제1전송 주기(td1)에 기초하여, 즉, 제1전송 주기 간격으로 제1청크데이터들을 전송할 수 있다. 첫 번째 제1청크데이터가 전송되어 수신되기까지의 시간은 RTT/2일 수 있다. Referring to FIG. 2, the chunk data transmitter 120 starts the transmission of the first chunk data at a point S1 (①), and the chunk data receiver 210 is the first first of the first chunk data at the point R1. Receive chunk data. The chunk data transmitter 120 may transmit the first chunk data based on the first transmission period t d1 calculated by the transmission period controller 130, that is, at intervals of the first transmission period. The time until the first first chunk data is transmitted and received may be RTT / 2.

유실 청크 관리부(260)는 최초로 제1청크데이터를 수신한 R1부터 사전에 정해진 초기값 K 시간만큼 대기 후, 즉, R2(R2=R1+K) 시점에서 K 시간 동안 수신한 제1청크데이터들을 조사하여 제1유실 청크데이터들을 확인할 수 있다. 그리고, 유실 청크 관리부(260)는 확인된 제1유실 청크데이터들의 재전송을 요청하는 제1재전송 요청메시지를 생성하여 유실 청크 제어부(140)로 전송할 수 있다(②). 제1재전송 요청메시지가 유실 청크 제어부(140)로 도달하기까지의 시간은 RTT/2일 수 있다. The lost chunk manager 260 waits for a predetermined initial value K hours from R1 when the first chunk data is first received, that is, the first chunk data received for K hours at a time R2 (R2 = R1 + K). The first lost chunk data can be checked by examining. The lost chunk manager 260 may generate a first retransmission request message requesting retransmission of the identified first lost chunk data and transmit it to the lost chunk controller 140 (②). The time until the first retransmission request message reaches the lost chunk controller 140 may be RTT / 2.

또한, 제1재전송 요청메시지를 생성하여 전송할 때, 재전송 요청 시점 산출부(270)는 제2재전송 요청메시지를 생성하여 전송할 재전송 요청 시점을 R2 시점에 미리 산출할 수 있다. 제2재전송 요청메시지는 제1재전송 요청 메시지가 전송된 이후 청크데이터 전송부(120)로부터 R2 시점부터 수신될 제2청크데이터들 중 제2유실 청크데이터들의 재전송을 요청하기 위한 메시지이다.In addition, when generating and transmitting the first retransmission request message, the retransmission request timing calculator 270 may calculate the retransmission request timing to be transmitted by generating the second retransmission request message in advance at the R2 time point. The second retransmission request message is a message for requesting retransmission of the second lost chunk data among the second chunk data to be received from the chunk data transmitter 120 from the R2 time point after the first retransmission request message is transmitted.

재전송 요청 시점 산출부(270)는 다음 [수학식 1]을 이용하여 다음 재전송 요청 시점을 미리 산출할 수 있다.The retransmission request timing calculator 270 may calculate the next retransmission request timing in advance by using Equation 1 below.

Figure 112011085507988-pat00001
Figure 112011085507988-pat00001

[수학식 1]에서, T2는 산출되는 재전송 요청 시점, T1은 제1재전송 요청 메시지가 생성된 시점, RTT는 RTT 측정부(250)에서 가장 최근에 측정된 Round Trip Time, N은 R2 시점에서 확인된 제1유실 청크데이터들의 개수, td1은 청크데이터 전송부(120)에서 제1유실 청크데이터들을 재전송할 때의 제1전송 주기이다. [수학식 1]에서 T1은 도 2의 R2이고, T2는 R4이다.In Equation 1, T2 is a calculated retransmission request time point, T1 is a time point when the first retransmission request message is generated, RTT is the most recent round trip time measured by the RTT measurement unit 250, and N is the time point at R2. The number of confirmed first lost chunk data, t d1, is the first transmission period when the chunk data transmitter 120 retransmits the first lost chunk data. In Equation 1, T1 is R2 in FIG. 2, and T2 is R4.

[수학식 1]에 의해 재전송 요청 시점이 산출되면, 유실 청크 관리부(260)는 T1(또는 R2)으로부터 (RTT+(N×td1))만큼의 시간이 경과하는 시점(T2 또는 R4)에서 제2재전송 요청 메시지를 생성하여 유실 청크 제어부(140)로 전송할 수 있다. 이때, 유실 청크 관리부(260)는 R2 시점부터 R3 시점까지 수신된 제2청크데이터들 중 유실된 청크데이터들과, R3 시점부터 R4 시점까지 수신된 제2청크데이터들(또는 제1유실 청크데이터들) 중 유실된 청크데이터들로부터 제2재전송 요청 메시지를 생성할 수 있다. When the retransmission request time is calculated by Equation 1, the lost chunk manager 260 generates a first time at a time T2 or R4 after a time elapsed from T1 (or R2) by (RTT + (N × t d1 )). 2 may be generated and sent to the lost chunk control unit 140. At this time, the lost chunk manager 260 may be missing chunk data among the second chunk data received from the R2 time point to the R3 time point, and second chunk data (or the first lost chunk data received from the R3 time point to the R4 time point). May generate a second retransmission request message from the lost chunk data.

[수학식 1]에서 산출되는 재전송 요청 시점은 제1재전송 요청 메시지가 유실 청크 제어부(140)로 전달되는 시간(RTT/2)과, 청크데이터 전송부(120)에서 N개의 제1유실 청크데이터를 모두 전송하기까지 필요한 시간 (N×td1)과, 제1유실 청크데이터들 중 마지막 데이터가 청크데이터 수신부(210)로 도착하기까지의 시간(RTT/2)을 합한 결과이다. 재전송 요청 시점 산출부(270)가 이러한 [수학식 1]을 사용하는 것은 청크데이터 전송부(120)가 제1유실 청크데이터들을 중복해서 전송하는 것을 방지하기 위함이다. 다시 말하면, [수학식 1]은 재전송 요청 시점 산출부(270)에서 다음 번 전송할 제2재전송 요청 메시지를 생성하여 전송할 때까지의 시간을 최적화하기 위한 것으로서, 이전에 요청한 제2유실 청크데이터들이 모두 청크데이터 수신부(210)로 재전송되어 도착할 때까지 소요될 시간을 고려한 것이다.The retransmission request time point calculated in Equation 1 includes a time (RTT / 2) at which the first retransmission request message is transmitted to the lost chunk controller 140, and the N first lost chunk data in the chunk data transmitter 120. It is the result of adding up the time required to transmit all (N × t d1 ) and the time until the last data of the first lost chunk data arrives to the chunk data receiver 210 (RTT / 2). The use of Equation 1 by the retransmission request point calculator 270 is to prevent the chunk data transmitter 120 from repeatedly transmitting the first lost chunk data. In other words, [Equation 1] is for optimizing the time from the retransmission request time calculation unit 270 to generate and transmit the second retransmission request message to be transmitted next, and all the second lost chunk data previously requested Considering the time required to arrive by the chunk data receiving unit 210 is retransmitted.

디스크 리더(110)는 수신된 제1재전송 요청메시지에 기초하여 제1유실 청크 데이터들을 청크단위로 메모리에 기록하고, 청크데이터 전송부(120)는 S2 시점에서 제1유실 청크데이터들 중 첫 번째 데이터를 재전송하기 시작하며, N×td1 동안 제1유실 청크 데이터들을 재전송할 수 있다(③).The disk reader 110 records the first lost chunk data in the chunk unit based on the received first retransmission request message in the chunk unit, and the chunk data transmitter 120 is the first of the first lost chunk data at the time S2. The data starts to be retransmitted, and the first lost chunk data can be retransmitted during N × t d1 (③).

청크데이터 전송부(120)는 마지막 제1유실 청크데이터를 S3 시점에서 전송하고(④), 청크데이터 수신부(210)는 R4 시점에서 마지막 제1유실 청크데이터를 수신할 수 있다.The chunk data transmitter 120 may transmit the last first lost chunk data at time S3 (④), and the chunk data receiver 210 may receive the last first lost chunk data at time R4.

한편, R4에서 전송한 제2재전송 요청 메시지가 유실되면(⑤), 유실 청크 관리부(260)는 R4로부터 RTT가 경과하는 시점(R5)에 제2재전송 요청 메시지를 유실 청크 제어부(140)로 재전송할 수 있다. 이는, 만약, 청크데이터 수신부(210)가 제2재전송 요청 메시지를 전송한 시점(R4)에서 RTT가 지난 시점까지 제2재전송 요청 메시지에 포함된 제2유실 청크데이터들을 수신하지 못하게 되면(⑥), 유실 청크 관리부(260)는 R4 시점에서 전송한 제2재전송 요청 메시지가 유실된 것으로 판단할 수 있기 때문이다. 따라서, 유실 청크 관리부(260)는 N×td1 시간을 추가로 기다리지 않고 R5 시점에서 즉시 제2재전송 요청 메시지를 재전송하거나, R4에서 R5동안 수신한 제3청크데이터들 중 유실된 제3유실 청크데이터들과 제2유실 청크데이터들을 포함하는 새로운 제3재전송 요청 메시지를 생성하여 유실 청크 제어부(140)로 전달할 수 있다(⑦).On the other hand, if the second retransmission request message transmitted from R4 is lost (⑤), the lost chunk manager 260 retransmits the second retransmission request message to the lost chunk controller 140 at a time point R5 from R4. can do. This is because if the chunk data receiving unit 210 does not receive the second lost chunk data included in the second retransmission request message from the time point R4 at which the second retransmission request message is transmitted (R4) (6). This is because the lost chunk manager 260 may determine that the second retransmission request message transmitted at the R4 time point is lost. Accordingly, the lost chunk manager 260 retransmits the second retransmission request message immediately at R5 without additionally waiting for N × t d1 time, or the third lost chunk lost among the third chunk data received during R5 at R4. A new third retransmission request message including the data and the second lost chunk data may be generated and transmitted to the lost chunk control unit 140 (⑦).

도 3은 새로운 전송 주기를 이용하여 유실 청크데이터에 대한 재전송을 요청하는 일련의 과정을 보여주는 도면이다.3 is a diagram illustrating a series of processes for requesting retransmission of lost chunk data using a new transmission period.

도 3을 참조하면, 제1청크데이터의 전송이 시작하면서 제1유실 청크 데이터를 재전송하기까지의 과정(①~③)은 도 2의 과정(①~③)과 동일하다. 전송주기 제어부(130)는 수신된 컨트롤 정보에 기초하여 새로운 전송 주기(td2)가 S3 시점에서 산출되면, 새로운 전송 주기(td2)를 유실 청크 관리부(260)로 전송할 수 있다(④).Referring to FIG. 3, a process (① to ③) of retransmitting the first lost chunk data while the first chunk data starts to be transmitted is the same as the process (① to ③) of FIG. If a new transmission period t d2 is calculated at time S3 based on the received control information, the transmission period controller 130 may transmit the new transmission period t d2 to the lost chunk manager 260 (④).

유실 청크 관리부(260)는 [수학식 1]에 의해 산출된 다음 재전송 요청 시점을 기다리는 동안, 또는, 청크데이터 전송부(120)로부터 제1유실 청크데이터들이 수신되는 동안, 전송주기 제어부(130)로부터 새로운 전송 주기(td2, new Delay Time)를 수신할 수 있다(R5). 이러한 경우, 재전송 요청 시점 산출부(270)는 새로운 전송 주기(td2)를 고려하여 재전송 요청 시점을 재산출할 수 있다. 즉, 재전송 요청 시점 산출부(270)는 R2 시점에서 산출된 재전송 요청 시점에 따라 R4까지 대기한 후 제2재전송 요청 메시지를 생성하도록 예약되어 있는 상황에서, R5 시점에서 새로운 전송 주기(td2)를 수신하면 [수학식 2] 및 [수학식 3]을 이용하여 새로운 재전송 요청 시점을 R5 시점에서 산출할 수 있다.The lost chunk manager 260 waits for the next retransmission request time calculated by Equation 1, or while the first lost chunk data is received from the chunk data transmitter 120, the transmission period controller 130. A new transmission period (t d2 , new Delay Time) can be received from (R5). In this case, the retransmission request timing calculator 270 may recalculate the retransmission request timing in consideration of the new transmission period t d2 . That is, the retransmission request time calculation unit 270 is scheduled to generate a second retransmission request message after waiting until R4 according to the retransmission request time calculated at the R2 time point, and a new transmission period t d2 at the time R5. When receiving the Equation (2) and [Equation 3] can be calculated at the time of the new retransmission request R5.

Figure 112011085507988-pat00002
Figure 112011085507988-pat00002

Figure 112011085507988-pat00003
Figure 112011085507988-pat00003

[수학식 2] 및 [수학식 3]에서, M은 전송 주기(td1)로 청크데이터 전송부(120)로부터 재수신된 제1유실 청크데이터들의 개수, Tnd는 새로운 전송 주기(td2)가 수신된 시점, Tc1은 재수신된 제1유실 청크데이터들 중 첫 번째 제1유실 청크데이터가 수신된 시점, T3는 산출된 재전송 요청 시점, td2는 새로운 전송 주기이다. [수학식 2] 및 [수학식 3]에서 Tc1은 도 3의 R3이고, Tnd는 R5이고, T3는 R6이다.In [Equation 2] and [Equation 3], M is the number of the first lost chunk data re-received from the chunk data transmitter 120 in the transmission period (t d1 ), T nd is a new transmission period (t d2) ) Is received, T c1 is the first received lost chunk data of the first lost chunk data received, T3 is the calculated retransmission request time, t d2 is a new transmission period. In Equations 2 and 3, T c1 is R3 in FIG. 3, T nd is R5, and T3 is R6.

도 3을 참조하면, 청크데이터 전송부(120)는 첫 번째 제1청크데이터를 전송한 S2부터 S6까지(즉, R3부터 R5)는 이전의 전송 주기(td1)로 제1유실 청크데이터들을 M개 재전송하였다. 따라서, 재전송 요청 시점 산출부(270)는 Tc1(또는 R3)과 Tnd(또는 R5)을 알고 있으므로, [수학식 2]를 이용하여 M을 산출할 수 있다. Referring to FIG. 3, the chunk data transmitter 120 transmits the first lost chunk data in a previous transmission period t d1 from S2 to S6 (that is, R3 to R5) that transmitted the first first chunk data. M retransmissions. Therefore, since the retransmission request timing calculator 270 knows T c1 (or R3) and T nd (or R5), it is possible to calculate M using Equation 2.

M을 산출하면, 재전송 요청 시점 산출부(270)는 청크데이터 전송부(120)가 새로운 전송 주기(td2)를 이용하여 전송할 제1유실 청크데이터들의 개수 (N-M)을 알 수 있다. 따라서, 재전송 요청 시점 산출부(270)는 R5 시점에서, (N-M)과 이미 알고 있는 R5(또는 Tnd) 및 새로운 전송 주기(td2)를 이용하여 재전송 요청 시점(T3 또는 R6)을 새로 산출할 수 있다. 도 3은 새로운 전송 주기(td2)가 이전 전송 주기(td1)보다 작은 경우를 예로 든 것으로서, 새로운 전송 주기(td2)가 이전 전송 주기(td1)보다 크면 R6는 R4보다 큰 값을 갖는다.When M is calculated, the retransmission request time calculator 270 may know the number NM of first lost chunk data to be transmitted by the chunk data transmitter 120 using a new transmission period t d2 . Accordingly, the retransmission request time calculation unit 270 newly calculates the retransmission request time T3 or R6 by using (NM), R5 (or T nd ) and a new transmission period t d2 which are already known at the time of R5. can do. 3 illustrates an example in which the new transmission period t d2 is smaller than the previous transmission period t d1 . If the new transmission period t d2 is larger than the previous transmission period t d1 , R6 is greater than R4. Have

따라서, 새로운 전송 주기(td2)가 수신되면, 유실 청크 관리부(260)는 R5(또는 Tnd)로부터 ((N-M) × td2)만큼의 시간이 경과하는 R6 시점에서 제2재전송 요청 메시지를 생성하여 유실 청크 제어부(140)로 전송할 수 있다(⑤). 청크데이터 전송부(120)는 S7 시점에서 제2유실 청크데이터들을 재전송하기 시작한다(⑥).
Therefore, when a new transmission period t d2 is received, the lost chunk manager 260 sends a second retransmission request message from R5 (or T nd ) at R6 at a time elapsed by ((NM) × t d2 ). It can be generated and transmitted to the lost chunk controller 140 (⑤). The chunk data transmitter 120 starts to retransmit the second lost chunk data at step S7 (6).

이하에서는 도 4 내지 도 6을 참조하여 데이터 전송 장치(100)와 데이터 수신 장치(200)에서 사용되는 메모리 구조에 대해 설명한다.Hereinafter, a memory structure used in the data transmission apparatus 100 and the data receiving apparatus 200 will be described with reference to FIGS. 4 to 6.

유실 청크 관리부(260)는 상술한 바와 같이 유실 청크데이터들의 재전송을 요청하기 위해 재전송 요청 메시지를 생성하여 데이터 전송 장치(100)로 보낼 수 있다. 재전송 요청 메시지와 관련된 자세한 설명 이전에 데이터 전송 장치(100)와 데이터 수신 장치(200)가 사용하는 메모리에 대해 먼저 설명한다.As described above, the lost chunk manager 260 may generate a retransmission request message and request the retransmission of the lost chunk data to the data transmission apparatus 100. Before the detailed description related to the retransmission request message, a memory used by the data transmission apparatus 100 and the data reception apparatus 200 will be described.

먼저, 데이터 전송 장치(100)의 메모리 사용에 대해 설명한다. 데이터 전송에 사용되는 컴퓨팅 메모리는 한정된 자원으로써, 특히 대용량 파일을 다루는 시스템에서 메모리 운영 및 재사용은 중요한 이슈에 해당한다. 본 발명의 예시적 일 실시예에서는 메모리 사용 방법으로, 전송할 파일의 데이터를 일부분만 메모리에 로드시킨 후 전송하는 방법을 사용하고 있으며, 디스크 리더(110)는 데이터를 메모리에 파일블록 단위로 로드시켜 청크 단위로 저장하고, 청크데이터 전송부(120)는 메모리에 있는 데이터를 청크 단위로 전송한다. 청크데이터를 전송하기 이전에 메모리에 데이터를 로딩하는 작업은, 청크데이터를 전송하는 중간에 기록매체에서 직접 파일을 읽음으로써 발생하는 속도 저하를 방지할 수 있다.First, the memory use of the data transmission device 100 will be described. Computing memory used for data transfer is a limited resource, and memory operation and reuse are important issues, especially in systems that handle large files. In an exemplary embodiment of the present invention, as a memory usage method, a part of data of a file to be transmitted is loaded into a memory and then transmitted, and the disk reader 110 loads data into a memory in units of file blocks. The chunk data transmitter 120 transmits the data in the memory in chunk units. Loading the data into the memory prior to transferring the chunk data can prevent the slowdown caused by reading the file directly from the recording medium in the middle of transferring the chunk data.

도 4는 디스크 리더(110)가 파일의 데이터를 메모리에 로드할 때 사용하는 메모리 구조를 설명하기 위한 도면이다.4 is a diagram for describing a memory structure used when the disk reader 110 loads data of a file into a memory.

도 4를 참조하면, 전송할 파일의 데이터는 S개의 파일블록으로 이루어지고, 각 파일블록은 K개의 청크데이터들로 이루어질 수 있으며, 마지막 파일블록은 파일크기에 따라 K개 이하의 청크데이터들을 가질 수 있으므로, K’(K’≤K)개의 청크데이터들 포함할 수 있다. 청크데이터의 고유 번호는, 청크가 존재하는 파일블록의 위치(=파일블록의 ID=(S-1)K)와 그 파일블록 내에서 몇 번째 청크인지를 나타내는 정보(K’)를 알려줄 수 있다. 이하에서는 청크데이터의 고유 번호를 청크데이터의 ID라 한다.Referring to FIG. 4, data of a file to be transmitted includes S file blocks, each file block may include K chunk data, and the last file block may have K chunk data of K or less according to the file size. Therefore, it may include K '(K'≤ K) chunk data. The unique number of the chunk data may inform the position of the file block in which the chunk exists (= ID of the file block (S-1) K) and information K 'indicating the number of chunks in the file block. . Hereinafter, the unique number of the chunk data is referred to as the chunk data ID.

디스크 리더(110)는 도 4에 도시된 바와 같이 첫 번째 파일블록(파일블록1)의 첫 번째 청크데이터부터 순서대로 ID(즉, 고유번호)를 할당함으로써, ID의 범위에 따라 청크데이터가 어떤 블록의 몇 번째 청크인지를 알 수 있도록 한다. As shown in FIG. 4, the disk reader 110 assigns IDs (ie, unique numbers) from the first chunk data of the first file block (file block 1) in order, thereby allowing the chunk data to be changed according to the range of IDs. Make sure you know which chunk is in the block.

한편, 본 발명의 예시적 실시예에서는, 유실 청크 제어부(140)가 수신 완료된 청크데이터들을 알기 위한 방법으로서 유실 청크 관리부(260)로부터 수신되는 재전송 요청 메시지를 이용할 수 있다. 재전송 요청 메시지는 수신되지 못한 청크데이터들(즉, 유실 청크데이터들)의 ID로 구성되며, 이는 유실 청크데이터들을 제외한 나머지는 수신된 것을 의미한다. 따라서, 유실 청크 제어부(140)는 재전송 요청 메시지에 기재된 유실 청크데이터들의 ID를 이용하여 청크데이터들의 수신 여부를 판단(또는 확인)할 수 있다. Meanwhile, in the exemplary embodiment of the present invention, the lost chunk controller 140 may use the retransmission request message received from the lost chunk manager 260 as a method for knowing the received chunk data. The retransmission request message is composed of IDs of chunk data (ie, lost chunk data) that have not been received, which means that all but the lost chunk data are received. Therefore, the lost chunk controller 140 may determine (or confirm) whether to receive the chunk data using the IDs of the lost chunk data described in the retransmission request message.

유실 청크 제어부(140)에 의해 수신 완료된 청크데이터들의 판단되면, 유실 청크 제어부(140)는 청크데이터들이 로딩된 메모리로부터 수신이 완료된 청크데이터를 곧바로 삭제할 수 있다. 이는, 디스크 리더(110)가 파일블록 단위로 메모리를 할당하는 것과는 달리, 유실 청크 제어부(140)는 파일블록보다 작은 청크 단위의 메모리도 신속하게 해지(즉, 청크데이터를 삭제)하여 메모리를 재활용할 수 있도록 하는 것을 의미한다.When the chunk data received by the lost chunk controller 140 is determined, the lost chunk controller 140 may immediately delete the received chunk data from the memory in which the chunk data are loaded. Unlike the disk reader 110 allocating memory in units of file blocks, the lost chunk control unit 140 also rapidly releases (ie, deletes chunk data) the memory in chunk units smaller than the file blocks and recycles the memory. It means to be able to.

도 5는 유실 청크 제어부(140)가 재전송 요청 메시지를 이용하여 수신이 완료된 청크데이터를 판단하는 방법을 설명하기 위한 도면이다.FIG. 5 is a diagram for describing a method in which the lost chunk controller 140 determines the received chunk data by using a retransmission request message.

도 5에서, 재전송 요청 메시지를 이루는 유실 청크 리스트는 각각 2, 3, 9, 14, 15, 20 및 25라는 ID를 가지는 유실 청크데이터들의 정보를 포함한다. 유실 청크 리스트는 유실 청크 관리부(260) 또는 후술할 리스트 작성부(261)에서 작성될 수 있다. In FIG. 5, the lost chunk list forming the retransmission request message includes information of lost chunk data having IDs of 2, 3, 9, 14, 15, 20, and 25, respectively. The lost chunk list may be created by the lost chunk manager 260 or the list generator 261 to be described later.

유실 청크 제어부(140)는 수신된 재전송 요청 메시지로부터 2, 3, 9, 14, 15, 20 및 25라는 ID를 가지는 청크데이터들이 유실되었음을 알 수 있다. 이로써, 유실 청크 제어부(140)는 3과 9 사이의 4, 5, 6, 7 및 8이라는 ID를 가지는 청크데이터들과, 9와 14 사이의 10, 11, 12 및 13에 해당하는 청크데이터들은 수신된 것으로 판단할 수 있다. 이는 16과 20 사이의 청크데이터들과 20과 25 사이의 청크데이터들에 대해서도 동일하다. The lost chunk controller 140 may recognize that chunk data having an ID of 2, 3, 9, 14, 15, 20, and 25 has been lost from the received retransmission request message. As a result, the lost chunk controller 140 includes chunk data having IDs of 4, 5, 6, 7 and 8 between 3 and 9, and chunk data corresponding to 10, 11, 12, and 13 between 9 and 14. It may be determined that it has been received. The same is true for chunk data between 16 and 20 and chunk data between 20 and 25.

유실 청크 제어부(140)는 수신 완료된 것으로 판단된 청크데이터들의 ID를 바탕으로, 해당 청크데이터가 로딩되었던 메모리를 해지할 수 있다. 따라서, 기존에는 일정량 이상의 메모리가 확보되는 시점(즉, 파일블록 하나에 해당하는 메모리양이 해지되었을 때)에 메모리 해지를 한 번에 수행하는 반면, 본 실시예서는 신속한 메모리 재사용을 위해 청크 단위의 메모리 해지를 수행하며, 디스크 리더(110)는 해지된 메모리의 크기가 파일블록만큼 확보될 때마다 파일블록 단위로 새로운 데이터를 읽어 메모리에 로딩시킬 수 있다.The lost chunk controller 140 may release the memory on which the chunk data has been loaded based on the IDs of the chunk data determined to have been received. Therefore, while conventionally performing memory release at a time when a certain amount of memory is secured (that is, when the amount of memory corresponding to one file block is released), the present embodiment uses chunk units for fast memory reuse. Memory cancellation is performed, and the disk reader 110 may read new data in units of file blocks and load them into the memory whenever the size of the canceled memory is secured by file blocks.

도 6은 데이터 수신 장치(200)에서 사용되는 메모리 구조를 설명하기 위한 도면이다.FIG. 6 is a diagram for describing a memory structure used in the data receiving apparatus 200.

도 6을 참조하면, 데이터 수신 장치(200)에서 사용되는 메모리의 구조는 도 4와 같이 데이터 전송 장치(100)에서 사용되는 구조와 유사하다. 디스크 라이터(220)는 청크데이터가 수신되는 순서대로 파일블록 중 청크데이터의 ID에 해당하는 위치에 청크데이터를 로딩시키고, 파일블록이 모두 채워지면 기록매체에 청크데이터들을 기록한다. 다만, 데이터 전송 장치(100)는 청크데이터를 전송하기 이전부터 청크데이터들을 가용 메모리를 모두 이용하여 로딩시켜 놓는 반면, 데이터 수신 장치(200)에서는 청크데이터가 수신되는 중에 청크데이터를 로딩할 메모리를 생성하는 점이 서로 다르다. 따라서, 데이터 수신 장치(200)에서 사용되는 메모리양은 가용 메모리가 모두 활용되는 것이 아니므로, 사용하는 메모리양이 상대적으로 작을 수 있다. Referring to FIG. 6, the structure of the memory used in the data receiving apparatus 200 is similar to that used in the data transmitting apparatus 100 as shown in FIG. 4. The disc writer 220 loads the chunk data at a position corresponding to the ID of the chunk data among the file blocks in the order in which the chunk data is received, and records the chunk data on the recording medium when the file blocks are all filled. However, the data transmission apparatus 100 loads the chunk data using all available memories before transmitting the chunk data, while the data receiving apparatus 200 selects a memory to load the chunk data while the chunk data is received. It is different from each other. Therefore, the amount of memory used in the data receiving apparatus 200 does not utilize all of the available memory, and thus the amount of memory used may be relatively small.

이하에서는 도 7 내지 도 9를 참조하여, 본 발명의 예시적 일 실시예에 따른 유실 청크 관리부(260)가 재전송 요청 메시지를 생성하는 일련의 동작에 대해 설명한다.Hereinafter, with reference to FIGS. 7 to 9, a series of operations in which the lost chunk manager 260 generates a retransmission request message according to an exemplary embodiment of the present invention will be described.

재전송 요청 메시지를 작성하기 위해, 유실 청크 관리부(260)는 리스트 작성부(261), 패킷 생성부(263), 메시지 타입 결정부(265) 및 메시지 전송부(267)를 포함할 수 있다.In order to compose the retransmission request message, the lost chunk manager 260 may include a list generator 261, a packet generator 263, a message type determiner 265, and a message transmitter 267.

리스트 작성부(261)는 메모리를 청크 단위로 확인하여, 수신된 제1청크데이터들이 메모리의 해당 위치에 로딩되어 있는지에 따라 제1청크데이터의 수신 여부를 확인할 수 있다. 도 6과 같은 메모리의 파일블록에 기재된 ID의 제1청크데이터는 수신이 된 것을 의미하며, 청크데이터 전송부(120)와 청크데이터 수신부(210)에서 사용하는 파일블록의 크기는 동일하므로, 이로부터 리스트 작성부(261)는 제1유실 청크데이터들을 확인할 수 있다. 즉, 리스트 작성부(261)는 파일블록 중 확인되지 않은 ID의 제1청크데이터들은 유실된 것으로 판단하고, 판단된 제1유실 청크데이터들의 ID를 조합하여 제1유실 청크 리스트를 작성할 수 있다. 제1유실 청크데이터들의 ID들은 각각 유실 청크 정보를 의미한다.The list generator 261 may check the memory in chunk units, and may determine whether the first chunk data is received according to whether the received first chunk data is loaded at a corresponding position in the memory. Since the first chunk data of the ID described in the file block of the memory as shown in FIG. 6 is received, the size of the file block used by the chunk data transmitter 120 and the chunk data receiver 210 is the same. The list generator 261 may check the first lost chunk data. That is, the list creation unit 261 may determine that the first chunk data of the unidentified ID in the file block is lost, and create the first lost chunk list by combining the determined IDs of the first lost chunk data. IDs of the first lost chunk data mean lost chunk information, respectively.

패킷 생성부(263)는 최대 전송 단위(MTU: Maximum Transmission Unit)를 기준으로 제1유실 청크 리스트를 복수 개의 서브리스트들로 나누어 복수 개의 서브리스트 패킷들을 생성할 수 있다. MTU는 네트워크 통신 환경에서 사용되는 전송 패킷의 최대 크기이다.The packet generator 263 may generate a plurality of sublist packets by dividing the first lost chunk list into a plurality of sublists based on a maximum transmission unit (MTU). MTU is the maximum size of a transport packet used in a network communication environment.

도 7은 제1유실 청크 리스트로부터 복수 개의 서브리스트 패킷들이 생성되는 일 예를 보여주는 도면이다.7 is a diagram illustrating an example in which a plurality of sublist packets are generated from a first lost chunk list.

도 7을 참조하면, 패킷 생성부(263)는 제1유실 청크 리스트를 MTU보다 작은 크기를 가지는 복수 개의 서브리스트들로 분할하고, 복수 개의 서브리스트들에 헤더 정보를 추가하여 MTU보다 작거나 같은 크기의 서브리스트 패킷들을 생성할 수 있다. 복수 개의 서브리스트 패킷들은 MTU 단위로 유실 청크 제어부(140)로 전송될 수 있다. 또한, 패킷 생성부(263)는 제1유실 청크 리스트와 헤더 정보를 합한 크기가 MTU 이하이면, 하나의 리스트 패킷을 생성할 수도 있다.Referring to FIG. 7, the packet generator 263 divides the first lost chunk list into a plurality of sublists having a size smaller than the MTU, and adds header information to the plurality of sublists to be smaller than or equal to the MTU. It is possible to generate sublist packets of size. The plurality of sublist packets may be transmitted to the lost chunk controller 140 in MTU units. In addition, the packet generation unit 263 may generate one list packet when the size of the sum of the first lost chunk list and the header information is MTU or less.

도 8은 본 발명적 개념의 예시적 실시예에 따른 패킷 생성부(263)에서 생성되는 서브리스트 패킷 또는 리스트 패킷의 포맷을 도시한 도면이다.8 is a diagram illustrating a format of a sublist packet or a list packet generated by the packet generator 263 according to an exemplary embodiment of the inventive concept.

도 8을 참조하면, 서브리스트 패킷 또는 리스트 패킷은 ID, 메시지 타입(Msg Type) 및 최대 번호(Max No)를 포함하는 헤더와 유실 청크 정보를 포함하는 페이로드로 이루어질 수 있다. ID는 서브리스트 패킷 또는 리스트 패킷의 고유 식별정보, 메시지 타입은 메시지 타입 결정부(265)에서 결정된 메시지 타입, 최대 번호는 유실 청크데이터의 확인 작업이 시작되었을 때 청크데이터 수신부(210)에 마지막으로 도착한 청크데이터의 ID이며, 유실 청크 정보는 하나의 서브리스트에 포함된 유실 청크데이터들의 ID들이다. 최대 번호는 모든 타입의 메시지에 기재될 수 있으며, 메시지 타입이 후술할 타입 C, D인 경우 사용된다. 패킷 생성부(263)는 ID, 메시지 타입 및 유실 청크 정보를 해당 패킷에 기재할 수 있다.Referring to FIG. 8, the sublist packet or list packet may include a header including an ID, a message type (Msg Type) and a maximum number (Max No), and a payload including missing chunk information. The ID is the unique identification information of the sublist packet or the list packet, the message type is the message type determined by the message type determining unit 265, and the maximum number is the last in the chunk data receiving unit 210 when the checking operation of the lost chunk data is started. It is the ID of the chunk data that has arrived, and the lost chunk information is the IDs of the lost chunk data included in one sublist. The maximum number may be described in all types of messages and is used when the message types are types C and D to be described later. The packet generator 263 may write ID, message type, and lost chunk information in the corresponding packet.

메시지 타입 결정부(265)는 복수 개의 서브리스트 패킷들이 제1유실 청크 리스트에 속하는 위치에 따라 복수 개의 서브리스트 패킷들의 메시지 타입을 결정하고, 결정된 메시지 타입을 복수 개의 서브리스트 패킷들에 기재할 수 있다.The message type determination unit 265 may determine a message type of the plurality of sublist packets according to a position where the plurality of sublist packets belong to the first lost chunk list, and may write the determined message type in the plurality of sublist packets. have.

메시지 타입 결정부(265)는, 복수 개의 서브리스트 패킷들 중 하나인 제1서브리스트 패킷이 제1유실 청크 리스트의 첫 번째 패킷이면, 제1서브리스트 패킷의 메시지 타입을 타입 A로 결정할 수 있다. If the first sublist packet, which is one of the plurality of sublist packets, is the first packet of the first lost chunk list, the message type determination unit 265 may determine the message type of the first sublist packet as type A. .

또한, 메시지 타입 결정부(265)는 제1서브리스트 패킷이 제1유실 청크 리스트의 처음과 마지막을 제외한 서브리스트 패킷들 중 하나이면 제1서브리스트 패킷의 메시지 타입을 타입 B로 결정할 수 있다. Also, if the first sublist packet is one of the sublist packets except for the first and the last of the first lost chunk list, the message type determination unit 265 may determine the message type of the first sublist packet as type B.

또한, 메시지 타입 결정부(265)는 제1서브리스트 패킷이 제1유실 청크 리스트의 마지막 패킷이면, 제1서브리스트 패킷의 메시지 타입을 타입 C로 결정할 수 있다. In addition, if the first sublist packet is the last packet of the first lost chunk list, the message type determination unit 265 may determine the message type of the first sublist packet as type C.

하나의 제1유실 청크 리스트로부터 생성되는 복수 개의 서브리스트 패킷들에서, 타입 A와 타입 C는 각각 한 개씩 존재하며, 타입 B는 한 개 이상 존재할 수 있다.In the plurality of sublist packets generated from one first lost chunk list, one type A and one type C exist, and one or more type B may exist.

패킷 생성부(263)가 제1유실 청크 리스트의 크기가 작아 하나의 리스트 패킷으로 생성이 가능한 경우, 메시지 타입 결정부(265)는 리스트 패킷의 메시지 타입을 타입 D로 결정할 수 있다. 즉, 메시지 타입 결정부(265)는 하나의 리스트 패킷으로 재전송 요청 메시지가 생성되는 경우, 리스트 패킷의 메시지 타입을 타입 D로 결정할 수 있다.When the packet generator 263 is able to generate one list packet because the size of the first lost chunk list is small, the message type determiner 265 may determine the message type of the list packet as type D. That is, when the retransmission request message is generated as one list packet, the message type determination unit 265 may determine the message type of the list packet as type D.

메시지 전송부(267)는 메시지 타입이 기재된 복수 개의 서브리스트 패킷들을 제1재전송 요청 메시지로서 유실 청크 제어부(140)로 전송할 수 있다. 제1재전송 요청 메시지는 복수 개의 서브리스트 패킷들의 묶음을 의미한다. 따라서, 제1재전송 요청 메시지가 전송된다는 것은 복수 개의 서브리스트 패킷들이 전송되는 것을 의미할 수 있다.The message transmitter 267 may transmit the plurality of sublist packets including the message type to the lost chunk controller 140 as the first retransmission request message. The first retransmission request message means a bundle of a plurality of sublist packets. Accordingly, the transmission of the first retransmission request message may mean that a plurality of sublist packets are transmitted.

한편, 메시지 타입이 기재된 복수 개의 서브리스트 패킷들을 수신한 유실 청크 제어부(140)는 메시지 타입을 참조하여 제1청크데이터들 중 수신완료된 데이터를 판단하고, 제1청크데이터들을 전송할 때 사용한 메모리에서 수신완료된 것으로 판단된 데이터를 삭제할 수 있다. 다만, 이러한 메모리 해지는 복수 개의 서브리스트 패킷들이 순서대로 유실 청크 제어부(140)에 수신된 경우 수행될 수 있다. Meanwhile, the lost chunk control unit 140 having received the plurality of sublist packets in which the message type is described determines the received data among the first chunk data with reference to the message type, and receives the received chunk from the memory used when transmitting the first chunk data. Data determined to be completed can be deleted. However, this memory cancellation may be performed when the plurality of sublist packets are received in the lost chunk controller 140 in order.

[표 1]은 각 메시지 타입이 가지는 특징 또는 정보를 정리한 테이블이다. [Table 1] is a table listing characteristics or information of each message type.

메시지 타입Message type 특징 또는 정보Features or information 타입 AType A - 유실 청크 리스트로부터 분할된 복수 개의 서브리스트들 중 첫 서브리스트의 패킷임을 나타냄.
- 하나의 유실 청크 리스트에 한 개만 존재함.
- 서브리스트 패킷의 첫 번째 유실 청크데이터의 ID보다 작은 ID를 가지는 청크데이터들 중 유실 청크 확인작업을 거친 청크데이터들은 수신이 완료되었음을 의미함.
A packet of the first sublist among the plurality of sublists divided from the lost chunk list.
Only one exists in one lost chunk list.
-Among the chunk data having an ID smaller than the ID of the first lost chunk data of the sublist packet, the chunk data that have undergone the lost chunk checking operation is completed.
타입 BType B - 유실 청크 리스트로부터 분할된 복수 개의 서브리스트들 중 처음과 마지막 서브리스트를 제외한 서브리스트들의 패킷임을 나타냄.
- 하나의 유실 청크 리스트에 한 개 이상 존재함.
A packet of sublists except the first and last sublists among the plurality of sublists divided from the lost chunk list.
More than one in the missing chunk list.
타입 CType C - 유실 청크 리스트로부터 분할된 복수 개의 서브리스트들 중 마지막 서브리스트의 패킷임을 나타냄.
- 하나의 유실 청크 리스트에 한 개만 존재함.
- 서브리스트 패킷의 마지막에 위치하는 유실 청크데이터의 ID보다 큰 ID를 가지는 청크데이터들 중 유실 청크 확인작업을 거친 최대 ID의 청크데이터들은 모두 수신 완료 되었음을 의미함.
A packet of the last sublist among the plurality of sublists divided from the lost chunk list.
Only one exists in one lost chunk list.
-Among the chunk data having an ID larger than the ID of the lost chunk data positioned at the end of the sublist packet, the chunk data of the maximum ID that has undergone the lost chunk checking operation is all received.
타입 DType D - 유실 청크 리스트와 헤더정보를 포함하는 크기가 MTU이하이므로, 하나의 유실 청크 리스트로부터 그대로 생성된 리스트 패킷임을 나타냄.
- 타입 A와 타입 C가 가지는 정보를 모두 포함하고 있음.
-Since the size including the lost chunk list and the header information is less than the MTU, it indicates that the list packet is generated as it is from one lost chunk list.
Contains both type A and type C information

[표 1]에서, 유실 청크 확인작업은 수신된 청크데이터들의 ID들을 확인하고, 누락된 ID에 해당하는 청크데이터는 유실된 것으로 판단하는 작업을 의미한다.In [Table 1], the lost chunk checking operation means checking the IDs of the received chunk data and determining that the chunk data corresponding to the missing ID is lost.

이하에서는 도 9a 내지 도 9c를 참조하여 각 메시지 타입이 제공하는 정보에 대해 자세히 설명한다.Hereinafter, the information provided by each message type will be described in detail with reference to FIGS. 9A to 9C.

도 9a는 청크데이터 전송부(120)에서 사용하는 메모리 구조 중 30개의 청크로 이루어지는 하나의 파일블록(910)을 도시한 도면, 도 9b는 유실 청크 리스트(920)와 서브 패킷들(931, 932, 933)의 일 예를 도시한 도면, 도 9c는 유실 청크 리스트(920)와 리스트 패킷(940)의 일 예를 도시한 도면이다.FIG. 9A illustrates one file block 910 including 30 chunks of a memory structure used by the chunk data transmitter 120. FIG. 9B illustrates a lost chunk list 920 and subpackets 931 and 932. 933 is a diagram illustrating an example of a lost chunk list 920 and a list packet 940.

도 9a를 참조하면, 하나의 파일블록(910)은 30개의 청크로 이루어지므로 K=30이며, 각 청크에 기재되는 청크데이터의 ID는 1~30이다. 청크데이터 전송부(120)는 파일블록(910)을 청크 단위로 청크데이터 수신부(210)로 전송하며, 청크데이터 수신부(210)는 이 청크데이터들을 수신할 수 있다.Referring to FIG. 9A, since one file block 910 is composed of 30 chunks, K = 30, and IDs of chunk data described in each chunk are 1 to 30. The chunk data transmitter 120 transmits the file block 910 to the chunk data receiver 210 in chunk units, and the chunk data receiver 210 may receive the chunk data.

리스트 작성부(261)는 수신된 청크데이터들의 정보를 이용하여, 유실 청크데이터들의 ID를 수집할 수 있다. 그리고, 리스트 작성부(261)는 재전송 요청 시점 산출부(270)에서 산출된 재전송 요청 시점에 도달하면, 일정 기간(예를 들어, 도 2의 R2에서 R4 사이)동안 수집된 유실 청크데이터들의 ID를 이용하여 유실 청크 리스트(920)를 작성할 수 있다. 유실 청크 리스트(920)에 의하면, 파일블록(910)에 포함된 청크데이터들 중 ID가 2, 3, 9, 14, 15, 20 및 25인 청크데이터들이 유실 청크데이터들임을 알 수 있다.The list generator 261 may collect IDs of the lost chunk data by using the received information of the chunk data. When the list creation unit 261 reaches the retransmission request time calculated by the retransmission request time calculation unit 270, the list creating unit 261 includes IDs of the lost chunk data collected for a predetermined period (for example, between R2 and R4 in FIG. 2). The lost chunk list 920 may be created using the. According to the lost chunk list 920, it can be seen that chunk data having IDs of 2, 3, 9, 14, 15, 20, and 25 among the chunk data included in the file block 910 are lost chunk data.

패킷 생성부(263)는 유실 청크 리스트(920)를 MTU를 기준으로 제1 내지 제3서브리스트들(921, 922, 923)로 나누고, 제1 내지 제3서브리스트들(921, 922, 923) 각각에 해당하는 제1 내지 제3서브리스트 패킷들(931, 932, 933)을 생성할 수 있다. The packet generator 263 divides the lost chunk list 920 into first to third sublists 921, 922, and 923 based on the MTU, and first to third sublists 921, 922, and 923. ) May generate first to third sublist packets 931, 932, and 933 respectively.

메시지 타입 결정부(265)는 제1 내지 제3서브리스트 패킷들(931, 932, 933)의 메시지 타입을 각각 타입 A, 타입 B 및 타입 C로 결정하여 제1 내지 제3서브리스트 패킷들(931, 932, 933)에 기재할 수 있다.The message type determination unit 265 determines the message types of the first to third sublist packets 931, 932, and 933 as type A, type B, and type C, respectively, to determine the first to third sublist packets ( 931, 932, 933).

패킷 생성부(263)에서 유실 청크 리스트(920)를 그대로 하나의 리스트 패킷(940)으로 생성하는 경우, 리스트 패킷의 메시지 타입은 타입 D로 결정된다. 리스트 패킷(940)은 MTU가 청크데이터를 7개 이상 기록할 수 있는 크기로 정의되어 있는 것을 의미한다.When the packet generator 263 generates the lost chunk list 920 as one list packet 940 as it is, the message type of the list packet is determined as type D. The list packet 940 means that the MTU is defined as a size capable of recording seven or more chunk data.

모든 메시지 타입들은 공통적으로 서브리스트 패킷 또는 리스트 패킷에 연속적으로 기재된 ID들 사이에 누락된 ID가 있으면, 누락된 ID의 청크데이터가 수신완료된 청크데이터임을 알 수 있도록 한다. 예를 들어, 제1서브리스트 패킷(931)에서 3과 9가 연속적으로 기재되어 있으므로, 유실 청크 제어부(140)는 3과 9 사이의 4, 5, 6, 7, 8을 ID로 가지는 청크데이터들이 청크데이터 수신부(210)에서 수신완료되었음을 알 수 있다. All the message types make it possible to know that the chunk data of the missing ID is the received chunk data if there is a missing ID among the IDs consecutively listed in the sublist packet or the list packet. For example, since 3 and 9 are continuously described in the first sublist packet 931, the lost chunk control unit 140 has chunk data having 4, 5, 6, 7, 8 between 3 and 9 as IDs. It can be seen that the reception is completed by the chunk data receiving unit 210.

또한, 타입 A가 기재된 제1서브리스트 패킷(931)을 수신한 유실 청크 제어부(140)는, 제1서브리스트 패킷(931)에 기재된 ID들 중 가장 작은 ID를 확인하고, 청크데이터들 중 가장 작은 ID(예를 들어, 2)보다 작은 ID를 가지는 청크데이터는 수신 완료된 것으로 판단할 수 있다. 예를 들어, 타입 A가 기재된 제1서브리스트 패킷(931)은 유실 청크 리스트(920)에서 한 개 존재하며, 2번 청크데이터가 제1서브리스트 패킷(931)의 처음에 위치한다. 따라서, 제1서브리스트 패킷(931)은 유실 청크 확인작업에서 처음 확인된 1번 청크데이터도 수신완료되었다는 정보를 유실 청크 제어부(140)에게 제공할 수 있다. 유실 청크 제어부(140)는 1, 4, 5, 6, 7, 8을 ID로 가지는 청크데이터들을 파일블록(910)으로부터 삭제할 수 있다.In addition, the lost chunk control unit 140 having received the first sublist packet 931 describing the type A checks the smallest ID among the IDs described in the first sublist packet 931, and checks the smallest of the chunk data. Chunk data having an ID smaller than the small ID (for example, 2) may be determined to have been received. For example, there is one first sublist packet 931 in which type A is described, and the second chunk data is located at the beginning of the first sublist packet 931. Accordingly, the first sublist packet 931 may provide the lost chunk control unit 140 with information indicating that the first chunk data first confirmed in the lost chunk checking operation is also received. The lost chunk controller 140 may delete chunk data having 1, 4, 5, 6, 7, 8 as IDs from the file block 910.

이러한 예는, 유실 청크 확인작업이 파일블록(910)의 1번 청크데이터부터 시작되었다는 가정을 필요로 한다. 유실 청크 확인작업의 시작 지점은 구현 방법에 따라 달라질 수 있으며, 수신이 완료되지 않은 파일블록의 첫 청크데이터, 수신이 완료된 연속된 청크데이터의 ID 바로 다음부터일 수도 있다.This example requires the assumption that the lost chunk checking operation started with chunk data of file block 910. The starting point of the lost chunk checking operation may vary depending on the implementation method, and may be immediately after the ID of the first chunk data of the file block in which reception is not completed and the consecutive chunk data in which reception is completed.

타입 B가 기재된 제2서브리스트 패킷(932)은 유실 청크 리스트(920)의 크기에 따라 복수 개 존재할 수 있다. 따라서, 유실 청크 제어부(140)는 수신된 제2서브리스트 패킷(932)의 처음에 기재된 ID의 앞과 마지막에 기재된 ID의 뒤로 유실 청크데이터가 더 있다는 정보를 획득할 수 있다. 또한, 제2서브리스트 패킷(932)을 수신한 유실 청크 제어부(140)는 15와 20 사이의 16, 17, 18, 19를 ID로 가지는 청크데이터들이 청크데이터 수신부(210)에서 수신완료되었음을 알 수 있다. 유실 청크 제어부(140)는 16, 17, 18, 19를 ID로 가지는 청크데이터들을 파일블록(910)으로부터 삭제할 수 있다.There may be a plurality of second sublist packets 932 describing the type B according to the size of the lost chunk list 920. Accordingly, the lost chunk controller 140 may obtain information that there is more lost chunk data before the ID described at the beginning of the received second sublist packet 932 and after the ID described at the end. In addition, the lost chunk controller 140 receiving the second sublist packet 932 recognizes that the chunk data having 16, 17, 18, and 19 between 15 and 20 as an ID is received by the chunk data receiver 210. Can be. The lost chunk controller 140 may delete chunk data having 16, 17, 18, and 19 as IDs from the file block 910.

타입 C가 기재된 제3서브리스트 패킷(933)을 수신한 유실 청크 제어부(140)는, 제3서브리스트 패킷(933)에 기재된 유실 청크데이터들의 ID들 중 가장 큰 ID를 확인하고, 제3서브리스트 패킷(933)에 기재된 가장 큰 ID보다 큰 ID의 데이터이면서 최대 번호(Max No)까지의 청크데이터들은 수신 완료된 것으로 판단할 수 있다. 예를 들어, 타입 C가 기재된 제3서브리스트 패킷(933)은 유실 청크 리스트(920)에서 한 개 존재하며, 25번 청크데이터가 제3서브리스트 패킷(933)의 마지막에 위치하므로 25보다 큰 ID를 가지는 청크데이터들 중 유실 청크 확인작업을 마친 마지막 청크데이터까지 수신되었다는 정보를 유실 청크 제어부(140)에게 제공할 수 있다. 도 9a와 도 9b를 예로 들면, 파일블록(910)에서 29번 청크데이터까지 유실 청크 확인작업을 거친 후 유실 청크 리스트(920)가 작성된 경우, 제3서브리스트 패킷(933)은 최대 번호(Max No)가 29인 경우, ‘26, 27, 28, 29’을 ID로 가지는 청크데이터들이 수신완료되었다는 정보를 추가로 유실 청크 제어부(140)에게 제공할 수 있다. 유실 청크 제어부(140)는 ‘26, 27, 28, 29’를 ID로 가지는 청크데이터들을 파일블록(910)으로부터 삭제할 수 있다. The lost chunk control unit 140 having received the third sublist packet 933 describing the type C confirms the largest ID among the IDs of the lost chunk data described in the third sublist packet 933, and then checks the third sublist packet. It is determined that the chunk data up to the maximum number Max No, which is data of an ID larger than the largest ID described in the list packet 933, is received. For example, there is one third sublist packet 933 described with type C in the lost chunk list 920, and is larger than 25 because chunk number 25 is located at the end of the third sublist packet 933. The lost chunk controller 140 may provide information indicating that the chunk data having the ID has been received up to the last chunk data of the lost chunk checking operation. 9A and 9B, when the lost chunk list 920 is created after the lost chunk checking operation is performed from the file block 910 to the chunk data 29, the third sublist packet 933 is the maximum number (Max). If No) is 29, the chunk data having '26, 27, 28, 29 'as an ID may be additionally provided to the lost chunk controller 140. The lost chunk controller 140 may delete chunk data having '26, 27, 28, 29 'as an ID from the file block 910.

타입 D가 기재된 리스트 패킷(940)은 타입 A와 타입 C에서 제공하는 정보를 모두 제공할 수 있다. 따라서, 타입 D가 기재된 리스트 패킷(940)을 수신한 유실 청크 제어부(140)는, 리스트 패킷(940)에 기재된 타입 D로부터 청크데이터들 중 리스트 패킷(940)에 기재된 ID들 외의 ID이면서 최대 번호(Max No)까지의 ID를 가진 청크데이터들을 가지는 데이터는 모두 수신완료된 것으로 판단할 수 있다.The list packet 940 describing the type D may provide both the information provided by the type A and the type C. Therefore, the lost chunk control unit 140 having received the list packet 940 having type D described therein is the maximum number of IDs other than the IDs described in the list packet 940 among the chunk data from the type D described in the list packet 940. All data having chunk data having an ID up to (Max No) may be determined to have been received.

한편, 도 9a 내지 도 9c를 참조하여 상술한 메모리 해지, 즉, 파일블록(910)으로부터 수신이 완료된 청크데이터를 삭제하는 동작은 제1 내지 제3서브리스트 패킷들(931, 932, 933)이 유실 청크 제어부(140)로 각 서브리스트 패킷(931, 932, 933)의 ID에 맞춰 순서대로 연속적으로 수신되었을 경우 수행될 수 있다. 즉, 제1 내지 제3서브리스트 패킷들(931, 932, 933)이 도착되는 순서가 일정하지 않은 경우에는 ‘10, 11, 12, 13’의 ID를 가지는 청크데이터들의 수신 여부를 확인할 수 없는 경우가 발생할 수 있다. On the other hand, the operation of canceling the memory described above with reference to FIGS. 9A to 9C, that is, deleting the chunk data received from the file block 910 is performed by the first to third sublist packets 931, 932, and 933. It may be performed when the lost chunk controller 140 is continuously received in order according to the IDs of the respective sublist packets 931, 932, and 933. That is, when the order of arrival of the first to third sublist packets 931, 932, and 933 is not constant, it is not possible to confirm whether or not the chunk data having the ID of '10, 11, 12, 13 'is received. Cases may occur.

본 발명적 개념의 예시적 실시예에서는 이러한 문제를 해결하기 위해, 즉, 제1 내지 제3서브리스트 패킷들(931, 932, 933)로부터 수신이 완료된 청크데이터들에 대한 정보를 정확히 획득하기 위해 유실 청크데이터들의 중복 적용 방식을 사용할 수 있다. 즉, 패킷 생성부(263)는 제1 내지 제3서브리스트 패킷들(931, 932, 933)의 메시지 타입이 각각 타입 A, 타입 B 및 타입 C이면, 타입 A와 타입 B를 가지는 제1 및 제2서브리스트 패킷들(931, 932)의 마지막에 기재된 ID들을 각각 타입 B와 타입 C를 가지는 제2 및 제3서브리스트 패킷들(932, 933)의 처음에 중복 기재할 수 있다.In an exemplary embodiment of the inventive concept, to solve this problem, that is, to correctly obtain information on the received chunk data from the first to third sublist packets 931, 932, and 933. Redundant application of lost chunk data can be used. That is, if the message types of the first to third sublist packets 931, 932, and 933 are Type A, Type B, and Type C, respectively, the packet generation unit 263 may include first and second types having Type A and Type B; The IDs listed at the end of the second sublist packets 931 and 932 may be duplicated at the beginning of the second and third sublist packets 932 and 933 having type B and type C, respectively.

유실 청크 제어부(140)는 중복 적용 방식이 적용된 복수 개의 서브리스트 패킷들을 랜덤하게 수신하여도, 복수 개의 서브리스트 패킷들에 기재된 ID만을 이용하여 수신이 완료된 청크데이터들에 대한 정보를 획득할 수 있다. 따라서, 중복 적용 방식을 적용하는 경우, 유실 청크 제어부(140)는 유실 청크 리스트가 제공하는 수신이 완료된 청크데이터의 정보를 모두 정확하게 알 수 있으며, 단일 패킷 당 더 많은 정보를 획득함으로써, 더 많은 양의 메모리를 신속하게 해지할 수 있다. The lost chunk controller 140 may obtain information on the received chunk data by using only the IDs described in the plurality of sublist packets even when the plurality of sublist packets to which the overlapping application scheme is applied are randomly received. . Therefore, when applying the redundant application method, the lost chunk control unit 140 can accurately know all the information of the received chunk data provided by the lost chunk list, and by obtaining more information per single packet, Can quickly free up memory.

도 10은 본 발명적 개념의 예시적 실시예에 따른 패킷 생성부(263)가 유실 청크데이터들을 중복적용하는 과정의 일 예를 설명하기 위한 도면이다.10 is a diagram for explaining an example of a process in which the packet generator 263 overlaps lost chunk data according to an exemplary embodiment of the inventive concept.

도 10을 참조하면, 패킷 생성부(263)는 제1서브리스트(1010)의 마지막에 기재된 유실 청크데이터의 ID ‘9’를 제2서브리스트(1020)의 처음에 중복 기재하고, 제2서브리스트(1020)의 마지막에 기재된 ID ‘15’를 제3서브리스트(1030)의 처음에 중복 기재한다. 그리고, 패킷 생성부(263)는 제1 내지 제3서브리스트들(1010, 1020, 1030)을 각각 제1 내지 제3서브리스트 패킷들(1011, 1021, 1031)로 생성할 수 있다.Referring to FIG. 10, the packet generation unit 263 duplicates the ID '9' of the lost chunk data described at the end of the first sublist 1010 at the beginning of the second sublist 1020, and the second sublist. The ID '15' described at the end of the list 1020 is duplicated at the beginning of the third sublist 1030. The packet generator 263 may generate the first to third sublists 1010, 1020, and 1030 as the first to third sublist packets 1011, 1021, and 1031, respectively.

유실 청크 제어부(140)는 제1 내지 제3서브리스트 패킷들(1011, 1021, 1031)을 랜덤한 순서로 수신한 경우, ‘9’가 중복기재되어 있으므로 ID가 9인 청크데이터는 유실되었고, 9와 14 사이의 ID들을 가지는 청크데이터들은 수신이 완료되었음을 알 수 있다. 또한, 유실 청크 제어부(140)는 ‘15’가 중복기재되어 있으므로 ID가 15인 청크데이터는 유실되었고, 15와 20 사이의 ID들을 가지는 청크데이터들은 수신이 완료되었음을 알 수 있다.When the lost chunk controller 140 receives the first to third sublist packets 1011, 1021, and 1031 in a random order, the chunk data having an ID of 9 is lost because '9' is repeatedly described. The chunk data having IDs between 9 and 14 may know that reception is completed. In addition, the lost chunk controller 140 may recognize that the chunk data having an ID of 15 is lost since the '15' is repeatedly described, and that the chunk data having the IDs between 15 and 20 are completed.

도 11 및 도 12는 본 발명적 개념의 예시적 실시예에 따른 데이터 수신 방법을 설명하기 위한 흐름도이다.11 and 12 are flowcharts illustrating a data receiving method according to an exemplary embodiment of the inventive concept.

도 11 및 도 12의 데이터 수신 방법을 수행하는 데이터 전송 장치와 데이터 수신 장치는 도 1을 참조하여 설명한 데이터 전송 장치(100)와 데이터 수신 장치(200)일 수 있으며, 따라서, 메시지 재전송 요청 및 메시지 타입, 재전송 요청 메시지 등과 관련된 자세한 설명은 생략한다.The data transmission device and the data reception device performing the data reception method of FIGS. 11 and 12 may be the data transmission device 100 and the data reception device 200 described with reference to FIG. 1, thus, a message retransmission request and a message. Detailed descriptions related to types, retransmission request messages, etc. will be omitted.

먼저, 도 11을 참조하면, 데이터 전송 장치는 파일블록에 청크 단위로 기록된 제1청크데이터들을 데이터 수신 장치로 전송할 수 있다(S1100). S1100단계에서, 데이터 전송 장치는 제1청크데이터들의 고유번호, 즉, ID를 함께 전송한다.First, referring to FIG. 11, the data transmission device may transmit first chunk data recorded in chunk units in a file block to the data reception device in operation S1100. In operation S1100, the data transmission apparatus transmits unique numbers of the first chunk data, that is, IDs.

데이터 수신 장치는 수신된 제1청크데이터들을 기록매체에 기록할 수 있다(S1105).The data receiving apparatus may record the received first chunk data on the recording medium (S1105).

데이터 수신 장치는 제1청크데이터들이 순차적으로 수신되는 동안 제1유실 청크데이터들을 수집할 수 있다(S1110). 데이터 수신 장치는 수신되는 제1청크데이터들의 ID로부터 누락된 제1유실 청크데이터를 수집할 수 있다.The data receiving device may collect the first lost chunk data while the first chunk data are sequentially received (S1110). The data receiving apparatus may collect the first lost chunk data missing from the IDs of the received first chunk data.

S1100단계에 의해 처음으로 제1청크데이터가 수신된 시점부터 사전에 정의 시간 K가 경과하면, 데이터 수신 장치는 K 시간 동안 수집된 제1유실 청크데이터들로부터 제1유실 청크 리스트를 작성할 수 있다(S1115).When the definition time K has elapsed since the first time the first chunk data is received in step S1100, the data receiving apparatus may create a first lost chunk list from the first lost chunk data collected for K hours ( S1115).

데이터 수신 장치는 MTU를 기준으로 제1유실 청크 리스트를 복수 개의 서브리스트들로 나누어 복수 개의 서브리스트 패킷들을 생성하고, 각 서브리스트 패킷의 메시지 타입을 결정할 수 있다(S1120). 메시지 타입은 복수 개의 서브리스트 패킷들이 제1유실 청크 리스트에 속하는 위치에 따라 결정될 수 있으며, 도 9a 내지 도 9c를 참조하여 설명한 것처럼, 타입 A 내지 D를 가질 수 있다.The data receiving apparatus may generate a plurality of sublist packets by dividing the first lost chunk list into a plurality of sublists based on the MTU, and may determine a message type of each sublist packet (S1120). The message type may be determined according to a location where a plurality of sublist packets belong to the first lost chunk list, and may have types A to D, as described with reference to FIGS. 9A to 9C.

그리고, 데이터 수신 장치는 S1120단계에서 생성된 복수 개의 서브리스트 패킷들을 제1재전송 요청 메시지로서 데이터 전송 장치로 전송할 수 있다(S1125).In operation S1125, the data receiving apparatus may transmit the plurality of sublist packets generated in operation S1120 as a first retransmission request message.

S1125단계가 수행되면, 데이터 수신 장치는 다음에 재전송 요청 메시지를 전송할 재전송 요청 시점을 미리 산출한다(S1130). S1130단계에서 데이터 수신 장치는 [수학식 1]을 참조하여 설명한 방식을 이용하여 재전송 요청 시점을 산출할 수 있다.When step S1125 is performed, the data receiving apparatus calculates in advance a retransmission request time point for transmitting a next retransmission request message (S1130). In operation S1130, the data receiving apparatus may calculate a retransmission request time using the method described with reference to [Equation 1].

이와 함께, 제1재전송 요청 메시지를 수신한 데이터 전송 장치는 제1재전송 요청 메시지를 이루는 복수 개의 서브리스트 패킷들에 기재된 유실 청크 정보(즉, 제1유실 청크데이터들의 ID)로부터 수신이 완료된 제1청크데이터를 확인할 수 있다(S1135).In addition, the data transmission apparatus that has received the first retransmission request message may include a first received reception from the lost chunk information (that is, the IDs of the first lost chunk data) described in the plurality of sublist packets forming the first retransmission request message. Chunk data can be confirmed (S1135).

데이터 전송 장치는 S1100단계에서 전송된 제1청크데이터들 중 수신이 완료된 것으로 확인된 제1청크데이터들을, 해당 메모리 영역에서 삭제할 수 있다(S1140). 즉, 데이터 전송 장치는 메모리에 기재된 제1청크데이터들 중 수신이 완료된 제1청크데이터들을 청크 단위로 삭제할 수 있다.In operation S1140, the data transmission apparatus may delete the first chunk data, from which the reception of the first chunk data transmitted in step S1100, has been received, in the corresponding memory area. That is, the data transmission device may delete the first chunk data of the first chunk data described in the memory in chunk units.

데이터 전송 장치는 S1140단계에 의해 비어있는 메모리 영역에 제1유실 청크데이터를 기재할 수 있다(S1145).In operation S1140, the data transmission device may write the first lost chunk data in the empty memory area (S1145).

데이터 전송 장치는 S1145단계에 의해 메모리에 기재된 제1유실 청크데이터들 및 제2청크데이터들을 데이터 수신 장치로 전송할 수 있다(S1150). 제2청크데이터는 제1유실 청크데이터들이 전송된 후 전송되는 청크데이터로서, 예를 들어, 도 2의 S3시점부터 전송되는 데이터일 수 있다.The data transmission device may transmit the first lost chunk data and the second chunk data described in the memory to the data reception device in operation S1145 (S1150). The second chunk data is chunk data transmitted after the first lost chunk data are transmitted. For example, the second chunk data may be data transmitted from the time S3 of FIG. 2.

데이터 수신 장치는 수신된 제2유실 청크데이터들과 제2청크데이터들을 기록매체에 기록할 수 있다(S1155).The data receiving apparatus may record the second lost chunk data and the second chunk data on the recording medium (S1155).

데이터 수신 장치는 S1155단계에서 기록되는 청크데이터들로부터 제2유실 청크데이터들을 수집할 수 있다(S1160).The data receiving device may collect second lost chunk data from the chunk data recorded in step S1155 (S1160).

S1150단계 내지 S1160단계는 S1130단계에서 산출된 재전송 요청 시점에 도달할 때까지 지속적으로 수행될 수 있다. Steps S1150 to S1160 may be continuously performed until the retransmission request time calculated in step S1130 is reached.

S1130단계에서 산출된 재전송 요청 시점에 도달하면(S1165-N), 데이터 수신 장치는 제2재전송 요청 메시지를 생성할 수 있다(S1170). S1170단계는 S1110단계 내지 S1120단계와 유사하게 동작한다.When the retransmission request time calculated in step S1130 is reached (S1165-N), the data reception device may generate a second retransmission request message (S1170). Step S1170 operates similarly to steps S1110 to S1120.

데이터 수신 장치는 S1170단계에서 생성되는 제2재전송 요청 메시지를 데이터 전송 장치에게 전송하고(S1175), 다음 재전송 요청 시점을 다시 [수학식 1]을 참조하여 미리 산출한다(S1180).The data receiving apparatus transmits the second retransmission request message generated in operation S1170 to the data transmission apparatus (S1175), and calculates the next retransmission request time point in advance with reference to [Equation 1] (S1180).

S1175단계에 의해 제2재전송 요청 메시지를 수신한 데이터 전송 장치는 S1135단계 내지 S1150단계와 유사한 동작을 수행하여 데이터 수신 장치에게 제2유실 청크데이터들을 전송할 수 있다.The data transmission device that receives the second retransmission request message in operation S1175 may perform operations similar to operations S1135 to S1150 to transmit second lost chunk data to the data reception device.

데이터 전송 장치로부터 제2유실 청크데이터들이 수신되면(S1185-Y), 데이터 수신 장치는 제2유실 청크데이터들을 기록매체에 기록한다(S1190).When the second lost chunk data is received from the data transmission apparatus (S1185-Y), the data receiving apparatus records the second lost chunk data on the recording medium (S1190).

반면, 데이터 전송 장치로부터 수신되는 제2유실 청크데이터가 없으면(S1185-N), 데이터 수신 장치는 S1175단계에서 제2재전송 요청 메시지를 전송한 시점부터 RTT가 경과할 때까지 제2유실 청크데이터가 수신되지 않은 경우(S1195-Y), 제2재전송 요청 메시지를 재전송하거나 또는 제3재전송 요청 메시지를 전송할 수 있다(S1197). 제3재전송 요청 메시지는 RTT가 경과할 때까지 기다리는 동안 수신된 제3청크데이터들이 있는 경우, 제3청크데이터들 중 유실된 제3유실 청크데이터들과 수신되지 않은 제2유실 청크데이터들의 재전송을 요청하는 메시지일 수 있다. On the other hand, if there is no second lost chunk data received from the data transmission apparatus (S1185-N), the data receiving apparatus returns the second lost chunk data from the time when the second retransmission request message is transmitted in step S1175 until the RTT elapses. If not received (S1195-Y), the second retransmission request message may be retransmitted or the third retransmission request message may be transmitted (S1197). The third retransmission request message indicates retransmission of the third lost chunk data and the second lost chunk data that are not received among the third chunk data when there are third chunk data received while waiting for the RTT to elapse. It may be a requesting message.

도 12를 참조하면, S1200단계 내지 S1260단계는 도 11을 참조하여 설명한 S1100단계 내지 S1160단계와 동일하므로 생략한다.Referring to FIG. 12, steps S1200 to S1260 are the same as steps S1100 to S1160 described with reference to FIG. 11 and thus will be omitted.

S1260단계에서 제2유실 청크데이터들을 수집하는 동안 데이터 전송 장치로부터 새로운 전송 주기가 수신되면(S1265), 데이터 수신 장치는 이전의 전송 주기로 데이터 전송 장치로부터 재수신된 제2유실 청크데이터들의 개수인 M을 [수학식 2]를 이용하여 산출할 수 있다(S1270). 새로운 전송 주기는 데이터 전송 장치가 청크데이터들을 전송하는 간격이다.If a new transmission period is received from the data transmission device while collecting the second lost chunk data in step S1260 (S1265), the data receiving device M is the number of second lost chunk data re-received from the data transmission device in the previous transmission period. It can be calculated using [Equation 2] (S1270). The new transmission period is the interval at which the data transmission device transmits the chunk data.

데이터 수신 장치는 산출된 M과 [수학식 3]을 이용하여 제2재전송 요청 메시지를 전송할 새로운 재전송 요청 시점을 다시 산출한다(S1275). The data receiving apparatus calculates a new retransmission request time point for transmitting the second retransmission request message using the calculated M and Equation 3 (S1275).

S1275단계에서 재산출된 재전송 요청 시점에 도달하면(S1280-Y), 데이터 수신 장치는 제2재전송 요청 메시지를 생성하여 데이터 전송 장치에게 전송할 수 있다(S1285, S1290). S1285단계는 제1재전송 요청 메시지를 생성하는 것과 동일한 방식을 이용하여 제2재전송 요청 메시지를 생성할 수 있다.When the retransmission request time point recalculated in step S1275 is reached (S1280-Y), the data reception device may generate a second retransmission request message and transmit it to the data transmission device (S1285 and S1290). In operation S1285, the second retransmission request message may be generated using the same method as that of generating the first retransmission request message.

S1175단계에 의해 제2재전송 요청 메시지를 수신한 데이터 전송 장치는 S1135단계 내지 S1150단계와 유사한 동작을 수행하여 데이터 수신 장치에게 제2유실 청크데이터들을 전송할 수 있다.The data transmission device that receives the second retransmission request message in operation S1175 may perform operations similar to operations S1135 to S1150 to transmit second lost chunk data to the data reception device.

상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been described with reference to the particular embodiments and drawings, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. This is possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

100: 데이터 전송 장치 110: 디스크 리더
120: 청크데이터 전송부 130: 전송주기 제어부
140: 유실 청크 제어부 150: RTT 측정부
200: 데이터 수신 장치 210: 청크데이터 수신부
220: 디스크 라이터 230: 컨트롤 정보 전송부
240: 데이터 재전송 요청 장치 250: RTT 측정부
260: 유실 청크 관리부 270: 재전송 요청 시점 산출부
100: data transmission device 110: disk reader
120: chunk data transmission unit 130: transmission period control unit
140: lost chunk control unit 150: RTT measurement unit
200: data receiving apparatus 210: chunk data receiving unit
220: disc writer 230: control information transmission unit
240: data retransmission request device 250: RTT measurement unit
260: lost chunk management unit 270: retransmission request time calculation unit

Claims (28)

데이터 전송 장치로부터 수신된 제1청크 데이터들 중 제1유실 청크데이터들을 확인하고, 상기 확인된 제1유실 청크데이터들의 재전송을 요청하는 제1재전송 요청 메시지를 생성하여 상기 데이터 전송 장치로 전송하는 유실 청크 관리부; 및
제2재전송 요청 메시지-상기 제1재전송 요청 메시지가 전송된 이후 상기 데이터 전송 장치로부터 수신될 제2청크데이터들 중 제2유실 청크데이터들의 재전송을 요청하기 위한 메시지-를 생성하여 상기 데이터 전송 장치로 전송할 재전송 요청 시점을 미리 동적으로 산출하는 재전송 요청 시점 산출부;를 포함하며,
상기 재전송 요청 시점 산출부는, 상기 제1재전송 요청 메시지가 생성된 시점, RTT(Round Trip Time), 상기 확인된 제1유실 청크데이터들의 개수 및 상기 데이터 전송 장치에서 상기 제1유실 청크데이터들을 재전송할 때의 전송 주기를 이용하여 상기 재전송 요청 시점을 산출하는 것을 특징으로 하는 데이터 수신 장치.
Checking the first lost chunk data among the first chunk data received from the data transmission device, and generates a first retransmission request message requesting the retransmission of the identified first lost chunk data to transmit to the data transmission device Chunk management; And
A second retransmission request message, a message for requesting retransmission of second lost chunk data among second chunk data to be received from the data transmission apparatus after the first retransmission request message is transmitted, to the data transmission apparatus; And a retransmission request point calculator for dynamically calculating a retransmission request point to be transmitted in advance.
The retransmission request timing calculator is configured to retransmit the first lost chunk data when the first retransmission request message is generated, a round trip time (RTT), the number of the identified first lost chunk data, and the data transmission device. And the retransmission request time point is calculated using the transmission period at the time.
삭제delete 제1항에 있어서,
상기 재전송 요청 시점에서 전송한 상기 제2재전송 요청 메시지가 유실되면, 상기 유실 청크 관리부는 상기 재전송 요청 시점으로부터 상기 RTT가 경과하는 시점에 상기 제2재전송 요청 메시지를 재전송하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 1,
If the second retransmission request message transmitted at the retransmission request point is lost, the lost chunk manager retransmits the second retransmission request message at a time point when the RTT elapses from the retransmission request point. .
제1항에 있어서,
상기 데이터 전송 장치로부터 상기 제1유실 청크데이터들이 수신되는 동안 또는 상기 재전송 요청 시점을 기다리는 동안, 상기 데이터 전송 장치로부터 새로운 전송 주기가 수신되면, 상기 재전송 요청 시점 산출부는 상기 새로운 전송 주기를 고려하여 상기 재전송 요청 시점을 재산출하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 1,
When a new transmission period is received from the data transmission device while the first lost chunk data are received from the data transmission device or while waiting for the retransmission request time, the retransmission request time calculation unit is configured to consider the new transmission period. A data receiving device, characterized in that the retransmission request time point is recalculated.
제4항에 있어서,
상기 재전송 요청 시점 산출부는, 상기 새로운 전송 주기가 수신된 시점, 상기 전송 주기로 상기 데이터 전송 장치로부터 재수신된 제1유실 청크데이터들의 개수 및 상기 데이터 전송 장치로부터 수신된 새로운 전송 주기를 이용하여 상기 재전송 요청 시점을 재산출하는 것을 특징으로 하는 데이터 수신 장치.
5. The method of claim 4,
The retransmission request timing calculator is configured to perform the retransmission using a time point when the new transmission period is received, the number of first lost chunk data re-received from the data transmission device in the transmission period, and a new transmission period received from the data transmission device. A data receiving device, characterized in that the request time is recalculated.
제5항에 있어서,
상기 새로운 전송 주기가 수신되면, 상기 유실 청크 관리부는, 상기 상기 새로운 전송 주기가 수신된 시점으로부터 ((상기 확인된 제1유실 청크데이터들의 개수-상기 전송 주기로 상기 데이터 전송 장치로부터 재수신된 제1유실 청크데이터들의 개수)×새로운 전송 주기)만큼의 시간이 경과하는 시점에서 상기 제2재전송 요청 메시지를 생성하여 상기 데이터 전송 장치로 전송하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 5,
When the new transmission period is received, the lost chunk manager is configured to determine the number of the first lost chunk data (the first re-received from the data transmission apparatus in the transmission period from the time point when the new transmission period is received. And generating the second retransmission request message to the data transmission apparatus at a time elapsed by the number of lost chunk data) x new transmission cycle).
제1항에 있어서,
상기 유실 청크 관리부는,
상기 확인된 제1유실 청크데이터들의 고유번호를 조합하여 제1유실 청크 리스트를 작성하는 리스트 작성부;
최대 전송 단위(MTU: Maximum Transmission Unit)를 기준으로 상기 제1유실 청크 리스트를 복수 개의 서브리스트들로 나누어 복수 개의 서브리스트 패킷들을 생성하는 패킷 생성부;
상기 복수 개의 서브리스트 패킷들이 상기 제1유실 청크 리스트에 속하는 위치에 따라 상기 복수 개의 서브리스트 패킷들의 메시지 타입을 결정하고, 상기 결정된 메시지 타입을 상기 복수 개의 서브리스트 패킷들에 기재하는 메시지 타입 결정부; 및
상기 메시지 타입이 기재된 복수 개의 서브리스트 패킷들을 상기 제1재전송 요청 메시지로서 상기 데이터 전송 장치로 전송하는 메시지 전송부;를 포함하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 1,
The lost chunk manager,
A list creation unit for creating a first lost chunk list by combining the unique numbers of the identified first lost chunk data;
A packet generator configured to generate a plurality of sublist packets by dividing the first lost chunk list into a plurality of sublists based on a maximum transmission unit (MTU);
The message type determination unit determines a message type of the plurality of sublist packets according to a position where the plurality of sublist packets belong to the first lost chunk list, and writes the determined message type in the plurality of sublist packets. ; And
And a message transmitter configured to transmit the plurality of sublist packets in which the message type is described, to the data transmission apparatus as the first retransmission request message.
제7항에 있어서,
상기 메시지 타입 결정부는, 제1서브리스트 패킷-상기 복수 개의 서브리스트 패킷들 중 하나-이 상기 제1유실 청크 리스트의 첫 번째 패킷이면 상기 제1서브리스트 패킷의 메시지 타입을 타입 A로 결정하고, 상기 제1서브리스트 패킷이 상기 제1유실 청크 리스트의 처음과 마지막을 제외한 패킷들 중 하나이면 상기 제1서브리스트 패킷의 메시지 타입을 타입 B로 결정하고, 상기 제1서브리스트 패킷이 상기 제1유실 청크 리스트의 마지막 패킷이면, 상기 제1서브리스트 패킷의 메시지 타입을 타입 C로 결정하며,
상기 타입 A와 상기 타입 B는 각각 한 개씩 존재하며, 상기 타입 B는 한 개 이상 존재하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 7, wherein
The message type determination unit, if the first sublist packet, one of the plurality of sublist packets, is the first packet of the first lost chunk list, determines the message type of the first sublist packet as type A, If the first sublist packet is one of the packets except for the first and the last of the first lost chunk list, the message type of the first sublist packet is determined as type B, and the first sublist packet is the first sublist packet. If the last packet of the lost chunk list, the message type of the first sublist packet is determined as type C,
And one type A and one type B, and at least one type B.
제8항에 있어서,
상기 메시지 타입 결정부는, 상기 수신된 제1청크데이터들 중 가장 큰 고유번호를 상기 타입 C로 결정된 제1서브리스트 패킷에 더 기재하는 것을 특징으로 하는 데이터 수신 장치.
9. The method of claim 8,
And the message type determination unit further writes the largest unique number among the received first chunk data in the first sublist packet determined as the type C.
제8항에 있어서,
상기 메시지 타입이 기재된 복수 개의 서브리스트 패킷들을 수신한 데이터 전송 장치는, 상기 메시지 타입을 참조하여 상기 제1청크데이터들 중 수신완료된 데이터를 판단하고, 상기 제1청크데이터들을 전송할 때 사용한 메모리에서 상기 수신완료된 것으로 판단된 데이터를 삭제하는 것을 특징으로 하는 데이터 수신 장치.
9. The method of claim 8,
The data transmission device receiving the plurality of sublist packets in which the message type is described, determines the received data among the first chunk data with reference to the message type, and in the memory used when transmitting the first chunk data. And deleting data determined to have been received.
제10항에 있어서,
상기 타입 A가 기재된 제1서브리스트 패킷을 수신한 데이터 전송 장치는, 상기 제1서브리스트 패킷에 기재된 고유번호들 중 가장 작은 고유번호를 확인하고, 상기 제1청크데이터들 중 상기 가장 작은 고유번호보다 작은 고유번호의 데이터는 수신 완료된 것으로 판단하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 10,
The data transmission device receiving the first sublist packet in which the type A is described, checks the smallest unique number among the unique numbers described in the first sublist packet, and the smallest unique number among the first chunk data. Data receiving device, characterized in that for determining the smaller unique data is received.
제10항에 있어서,
상기 타입 B가 기재된 제1서브리스트 패킷을 수신한 데이터 전송 장치는, 상기 제1청크데이터들 중 상기 제1서브리스트 패킷에 기재된 고유번호들보다 크거나 작은 고유번호를 가지는 제1유실 청크데이터가 있는 것으로 판단하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 10,
The data transmission device receiving the first sublist packet in which the type B is described may include first lost chunk data having a unique number greater than or smaller than the unique numbers described in the first sublist packet among the first chunk data. It is determined that there is a data receiving device.
제10항에 있어서,
상기 타입 C가 기재된 제1서브리스트 패킷을 수신한 데이터 전송 장치는, 상기 제1서브리스트 패킷에 기재된 상기 제1유실 청크데이터들 중 가장 큰 고유번호보다 크면서 상기 수신된 제1청크데이터들 중 가장 큰 고유번호까지의 데이터는 수신 완료된 것으로 판단하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 10,
The data transmission device receiving the first sublist packet in which the type C is described is greater than the largest unique number among the first lost chunk data described in the first sublist packet and is among the received first chunk data. And data up to the largest unique number are determined to have been received.
제10항에 있어서,
상기 패킷 생성부는 상기 제1유실 청크 리스트의 크기가 상기 MTU 이하이면 상기 제1유실 청크 리스트를 하나의 리스트 패킷으로 생성하고, 상기 메시지 타입 결정부는 상기 생성된 리스트 패킷의 메시지 타입을 타입 D로 결정하며,
상기 타입 D가 기재된 리스트 패킷을 수신한 데이터 전송 장치는, 상기 리스트 패킷에 기재된 타입 D로부터 상기 제1청크데이터들 중 상기 리스트 패킷에 기재된 고유번호들 외의 고유번호를 가지는 데이터는 모두 수신완료된 것으로 판단하는 것을 특징으로 하는 데이터 수신 장치.
The method of claim 10,
If the size of the first lost chunk list is less than or equal to the MTU, the packet generator generates the first lost chunk list as one list packet, and the message type determiner determines the message type of the generated list packet as type D. ,
Receiving the list packet described in the type D, the data transmission device determines that all data having a unique number other than the unique numbers described in the list packet among the first chunk data are received from the type D described in the list packet. Data receiving apparatus, characterized in that.
제8항에 있어서,
상기 패킷 생성부는, 상기 복수 개의 서브리스트 패킷들의 메시지 타입이 상기 타입 A, 타입 B 및 타입 C를 포함하면, 상기 타입 A와 상기 타입 B를 가지는 서브리스트 패킷들의 마지막에 기재된 고유번호들을 각각 상기 타입 B와 상기 타입 C를 가지는 서브리스트 패킷들의 처음에 중복 기재하는 것을 특징으로 하는 데이터 수신 장치.
9. The method of claim 8,
If the message type of the plurality of sublist packets includes the type A, the type B, and the type C, the packet generator may include the unique numbers listed at the end of the sublist packets having the type A and the type B, respectively. And repeating the writing of sublist packets having the B and the type C at the beginning.
데이터 수신 장치의 데이터 수신 방법에 있어서,
상기 데이터 수신 장치가, 데이터 전송 장치로부터 수신된 제1청크 데이터들 중 제1유실 청크데이터들을 확인하는 단계;
상기 데이터 수신 장치가, 상기 확인된 제1유실 청크데이터들의 재전송을 요청하는 제1재전송 요청 메시지를 생성하여 상기 데이터 전송 장치로 전송하는 단계; 및
상기 데이터 수신 장치가, 제2재전송 요청 메시지-상기 제1재전송 요청 메시지가 전송된 이후 상기 데이터 전송 장치로부터 수신될 제2청크데이터들 중 제2유실 청크데이터들의 재전송을 요청하기 위한 메시지-를 생성하여 상기 데이터 전송 장치로 전송할 재전송 요청 시점을 미리 동적으로 산출하는 단계;를 포함하며,
상기 산출하는 단계에서, 상기 데이터 수신 장치는, 상기 제1재전송 요청 메시지가 생성된 시점, RTT(Round Trip Time), 상기 확인된 제1유실 청크데이터들의 개수 및 상기 데이터 전송 장치에서 상기 제1유실 청크데이터들을 재전송할 때의 전송 주기를 이용하여 상기 재전송 요청 시점을 산출하는 것을 특징으로 하는 데이터 수신 방법.
In the data receiving method of the data receiving apparatus,
Confirming, by the data receiving apparatus, first lost chunk data among the first chunk data received from the data transmitting apparatus;
Generating, by the data receiving device, a first retransmission request message requesting retransmission of the identified first lost chunk data to the data transmission device; And
The data receiving apparatus generates a second retransmission request message-a message for requesting retransmission of second lost chunk data among second chunk data to be received from the data transmission apparatus after the first retransmission request message is transmitted. And dynamically calculating a retransmission request time point to be transmitted to the data transmission device in advance.
In the calculating step, the data receiving apparatus, the time when the first retransmission request message is generated, RTT (Round Trip Time), the number of the identified first lost chunk data and the first loss in the data transmission apparatus And calculating the retransmission request time point using a transmission period when retransmitting chunk data.
삭제delete 제16항에 있어서,
상기 재전송 요청 시점에서 전송한 상기 제2재전송 요청 메시지가 유실되면, 상기 데이터 수신 장치가, 상기 재전송 요청 시점으로부터 상기 RTT가 경과하는 시점에 상기 제2재전송 요청 메시지를 재전송하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 수신 방법.
17. The method of claim 16,
Retransmitting, by the data receiving apparatus, the second retransmission request message when the RTT elapses from the retransmission request time when the second retransmission request message transmitted at the retransmission request time is lost; Data receiving method, characterized in that.
제16항에 있어서,
상기 데이터 전송 장치로부터 새로운 전송 주기가 수신되면, 상기 데이터 수신 장치가, 상기 수신된 새로운 전송 주기를 고려하여 상기 재전송 요청 시점을 재산출하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 수신 방법.
17. The method of claim 16,
And recalculating, by the data receiving device, the retransmission request point in consideration of the received new transmission period when the new transmission period is received from the data transmission device.
제19항에 있어서,
상기 재산출하는 단계는, 상기 데이터 수신 장치가, 상기 새로운 전송 주기가 수신된 시점, 상기 전송 주기로 상기 데이터 전송 장치로부터 재수신된 제1유실 청크데이터들의 개수 및 상기 데이터 전송 장치로부터 수신된 새로운 전송 주기를 이용하여 상기 재전송 요청 시점을 재산출하는 것을 특징으로 하는 데이터 수신 방법.
20. The method of claim 19,
The retrieving may include: at the data receiving device, a time point when the new transmission period is received, the number of first lost chunk data re-received from the data transmission device in the transmission period, and a new transmission received from the data transmission device. And recalculating the retransmission request time using a period.
제20항에 있어서,
상기 새로운 전송 주기가 수신되면, 상기 데이터 수신 장치는, 상기 새로운 전송 주기가 수신된 시점으로부터 ((상기 확인된 제1유실 청크데이터들의 개수-상기 전송 주기로 상기 데이터 전송 장치로부터 재수신된 제1유실 청크데이터들의 개수)×새로운 전송 주기)만큼의 시간이 경과하는 시점에서 상기 제2재전송 요청 메시지를 생성하여 상기 데이터 전송 장치로 전송하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 수신 방법.
21. The method of claim 20,
When the new transmission period is received, the data receiving apparatus starts from the time point when the new transmission period is received ((the number of the first lost chunk data identified-the first loss re-received from the data transmission apparatus in the transmission period). And generating the second retransmission request message to the data transmission device at a time elapsed by the number of chunk data) x new transmission cycle).
제16항에 있어서,
상기 제1재전송 요청 메시지를 생성하여 전송하는 단계는,
상기 데이터 수신 장치가, 상기 확인된 제1유실 청크데이터들의 고유번호를 조합하여 제1유실 청크 리스트를 작성하는 단계;
상기 데이터 수신 장치가, 최대 전송 단위(MTU: Maximum Transmission Unit)를 기준으로 상기 제1유실 청크 리스트를 복수 개의 서브리스트들로 나누어 복수 개의 서브리스트 패킷들을 생성하는 단계;
상기 데이터 수신 장치가, 상기 복수 개의 서브리스트 패킷들이 상기 제1유실 청크 리스트에 속하는 위치에 따라 상기 복수 개의 서브리스트 패킷들의 메시지 타입을 결정하는 단계;
상기 데이터 수신 장치가, 상기 결정된 메시지 타입을 상기 복수 개의 서브리스트 패킷들에 기재하는 단계; 및
상기 데이터 수신 장치가, 상기 메시지 타입이 기재된 복수 개의 서브리스트 패킷들을 상기 제1재전송 요청 메시지로서 상기 데이터 전송 장치로 전송하는 단계;를 포함하는 것을 특징으로 하는 데이터 수신 방법.
17. The method of claim 16,
Generating and transmitting the first retransmission request message includes:
Generating, by the data receiving apparatus, a first lost chunk list by combining unique numbers of the identified first lost chunk data;
Generating, by the data receiving apparatus, the plurality of sublist packets by dividing the first lost chunk list into a plurality of sublists based on a maximum transmission unit (MTU);
Determining, by the data receiving apparatus, a message type of the plurality of sublist packets according to a position where the plurality of sublist packets belong to the first lost chunk list;
Writing, by the data receiving apparatus, the determined message type in the plurality of sublist packets; And
And transmitting, by the data receiving apparatus, the plurality of sublist packets in which the message type is described, to the data transmitting apparatus as the first retransmission request message.
제22항에 있어서,
상기 메시지 타입을 결정하는 단계는, 상기 데이터 수신 장치가, 제1서브리스트 패킷-상기 복수 개의 서브리스트 패킷들 중 하나-이 상기 제1유실 청크 리스트의 첫 번째 패킷이면 상기 제1서브리스트 패킷의 메시지 타입을 타입 A로 결정하고, 상기 제1서브리스트 패킷이 상기 제1유실 청크 리스트의 처음과 마지막을 제외한 패킷들 중 하나이면 상기 제1서브리스트 패킷의 메시지 타입을 타입 B로 결정하고, 상기 제1서브리스트 패킷이 상기 제1유실 청크 리스트의 마지막 패킷이면, 상기 제1서브리스트 패킷의 메시지 타입을 타입 C로 결정하는 것을 특징으로 하는 데이터 수신 방법.
The method of claim 22,
The determining of the message type may include: determining, by the data receiving apparatus, if a first sublist packet, one of the plurality of sublist packets, is the first packet of the first lost chunk list. A message type is determined as type A. If the first sublist packet is one of packets except for the first and last parts of the first lost chunk list, the message type of the first sublist packet is determined as type B. And if the first sublist packet is the last packet of the first lost chunk list, determining the message type of the first sublist packet as type C.
제23항에 있어서,
상기 메시지 타입이 기재된 복수 개의 서브리스트 패킷들을 수신한 데이터 전송 장치는, 상기 메시지 타입을 참조하여 상기 제1청크데이터들 중 수신완료된 데이터를 판단하고, 상기 제1청크데이터들을 전송할 때 사용한 메모리에서 상기 수신완료된 것으로 판단된 데이터를 삭제하는 것을 특징으로 하는 데이터 수신 방법.
24. The method of claim 23,
The data transmission device receiving the plurality of sublist packets in which the message type is described, determines the received data among the first chunk data with reference to the message type, and in the memory used when transmitting the first chunk data. And deleting the data determined to have been received.
제24항에 있어서,
상기 타입 A가 기재된 제1서브리스트 패킷을 수신한 데이터 전송 장치는, 상기 제1서브리스트 패킷에 기재된 고유번호들 중 가장 작은 고유번호를 확인하고, 상기 제1청크데이터들 중 상기 가장 작은 고유번호보다 작은 고유번호의 데이터는 수신 완료된 것으로 판단하는 것을 특징으로 하는 데이터 수신 방법.
25. The method of claim 24,
The data transmission device receiving the first sublist packet in which the type A is described, checks the smallest unique number among the unique numbers described in the first sublist packet, and the smallest unique number among the first chunk data. Data receiving method characterized in that the smaller unique number of the data is determined to have been received.
제24항에 있어서,
상기 타입 C가 기재된 제1서브리스트 패킷을 수신한 데이터 전송 장치는, 상기 제1서브리스트 패킷에 기재된 상기 제1유실 청크데이터들 중 가장 큰 고유번호보다 크면서, 상기 수신된 제1청크데이터들 중 가장 큰 고유번호까지의 데이터는 수신 완료된 것으로 판단하는 것을 특징으로 하는 데이터 수신 방법.
25. The method of claim 24,
The data transmission device receiving the first sublist packet in which the type C is described is greater than the largest unique number among the first lost chunk data described in the first sublist packet, and the received first chunk data. Data to the largest unique number of the data receiving method characterized in that it is determined that the reception is complete.
제24항에 있어서,
상기 데이터 수신 장치가, 상기 제1유실 청크 리스트의 크기가 상기 MTU 이하이면 상기 제1유실 청크 리스트를 하나의 리스트 패킷으로 생성하는 단계;를 더 포함하며,
상기 메시지 타입을 결정하는 단계는 상기 데이터 수신 장치가, 상기 생성된 리스트 패킷의 메시지 타입을 타입 D로 결정하고,
상기 타입 D가 기재된 리스트 패킷을 수신한 데이터 전송 장치는, 상기 타입 D로부터 상기 제1청크데이터들 중 상기 리스트 패킷에 기재된 고유번호들 외의 고유번호를 가지는 데이터는 모두 수신완료된 것으로 판단하는 것을 특징으로 하는 데이터 수신 방법.
25. The method of claim 24,
And generating, by the data receiving apparatus, the first lost chunk list as one list packet when the size of the first lost chunk list is less than or equal to the MTU.
The determining of the message type may include: determining, by the data receiving apparatus, a message type of the generated list packet as type D,
The data transmission device receiving the list packet in which the type D is described, determines that all data having a unique number other than the unique numbers described in the list packet among the first chunk data are received from the type D. How to receive data.
제23항에 있어서,
상기 기재하는 단계는, 상기 복수 개의 서브리스트 패킷들의 메시지 타입이 상기 타입 A, 타입 B 및 타입 C를 포함하면, 상기 데이터 수신 장치가, 상기 타입 A와 상기 타입 B를 가지는 서브리스트 패킷들의 마지막에 기재된 고유번호들을 각각 상기 타입 B와 상기 타입 C를 가지는 서브리스트 패킷들의 처음에 중복 기재하는 것을 특징으로 하는 데이터 수신 방법.
24. The method of claim 23,
The describing may include: when the message type of the plurality of sublist packets includes the type A, type B, and type C, the data receiving apparatus, at the end of the sublist packets having the type A and the type B; And repeating the above-described unique numbers at the beginning of the sublist packets having the type B and the type C, respectively.
KR1020110112292A 2011-10-31 2011-10-31 Data receiving method and apparatus KR101243502B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110112292A KR101243502B1 (en) 2011-10-31 2011-10-31 Data receiving method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110112292A KR101243502B1 (en) 2011-10-31 2011-10-31 Data receiving method and apparatus

Publications (1)

Publication Number Publication Date
KR101243502B1 true KR101243502B1 (en) 2013-03-20

Family

ID=48181867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110112292A KR101243502B1 (en) 2011-10-31 2011-10-31 Data receiving method and apparatus

Country Status (1)

Country Link
KR (1) KR101243502B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150027459A (en) * 2013-09-03 2015-03-12 삼성전자주식회사 Content transmission method and apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005136547A (en) 2003-10-29 2005-05-26 Sony Corp Communication system, receiving apparatus and method, transmission apparatus and method, recording medium, and program
WO2006071866A2 (en) * 2004-12-24 2006-07-06 Aspera, Inc. Bulk data transfer
KR20100078563A (en) * 2008-12-30 2010-07-08 엘지노텔 주식회사 Apparatus and method for processing packets in mobile communication system
KR20100077418A (en) * 2008-12-29 2010-07-08 경북대학교 산학협력단 Pr-sctp based real-time multimedia data transmission for qos enhancement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005136547A (en) 2003-10-29 2005-05-26 Sony Corp Communication system, receiving apparatus and method, transmission apparatus and method, recording medium, and program
WO2006071866A2 (en) * 2004-12-24 2006-07-06 Aspera, Inc. Bulk data transfer
KR20100077418A (en) * 2008-12-29 2010-07-08 경북대학교 산학협력단 Pr-sctp based real-time multimedia data transmission for qos enhancement
KR20100078563A (en) * 2008-12-30 2010-07-08 엘지노텔 주식회사 Apparatus and method for processing packets in mobile communication system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150027459A (en) * 2013-09-03 2015-03-12 삼성전자주식회사 Content transmission method and apparatus
KR102109883B1 (en) * 2013-09-03 2020-05-12 삼성전자주식회사 Content transmission method and apparatus

Similar Documents

Publication Publication Date Title
KR100635012B1 (en) Method for creating feedback message for ARQ in mobile communication system
US10986653B2 (en) Method and system for sending and receiving data
TWI454096B (en) System for efficient recovery of node-b buffered data following mac layer reset
TWI381676B (en) Transmitting apparatus and method thereof
JP4923849B2 (en) Wireless receiver
CN108282273B (en) Method and device for segment retransmission
JP6094357B2 (en) COMMUNICATION METHOD, COMMUNICATION SYSTEM, AND COMMUNICATION DEVICE
CN110460412A (en) Method and RDMA network interface card for data transmission
JP2016518749A (en) Method and apparatus for using more transmission opportunities in a distributed network topology with limited HARQ processes
JP2019106697A (en) Method for dynamically managing message retransmission delay in interconnection network and device
US9509623B2 (en) Information processing device, information processing system, and method for processing packets from transmitting devices
JP5664646B2 (en) Packet alignment apparatus, packet alignment method, and storage medium
CN109120385B (en) Data transmission method, device and system based on data transmission system
KR101243502B1 (en) Data receiving method and apparatus
CN102238206A (en) Image file packet retransmission method
WO2012081117A1 (en) Wireless communication device and wireless communication device control method
KR100896507B1 (en) Hierachical Header Format and Method of data transmission for Communication System
KR100977043B1 (en) Method and Apparatus for Transmitting/Receiving of Data with ARQ in Mobile Communication System
JP5454545B2 (en) Wireless receiver
KR101139989B1 (en) Method and apparatus for allocating medium access control memory of a user equipment in a high speed downlink packet access system
CN107888341B (en) Data transmission method and device
RU2721230C1 (en) Network transport protocol controller
JP4739080B2 (en) Retransmission control configuration in data communication system
CN117692109A (en) Data retransmission method for remote direct memory access and related equipment
CN116114199A (en) Message retransmission method and device

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
FPAY Annual fee payment

Payment date: 20151228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171213

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200121

Year of fee payment: 8