KR20230047926A - Method and apparatus for managing data information for fast data retransmission - Google Patents

Method and apparatus for managing data information for fast data retransmission Download PDF

Info

Publication number
KR20230047926A
KR20230047926A KR1020220125314A KR20220125314A KR20230047926A KR 20230047926 A KR20230047926 A KR 20230047926A KR 1020220125314 A KR1020220125314 A KR 1020220125314A KR 20220125314 A KR20220125314 A KR 20220125314A KR 20230047926 A KR20230047926 A KR 20230047926A
Authority
KR
South Korea
Prior art keywords
packet
information
transmission
data buffer
index
Prior art date
Application number
KR1020220125314A
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 한국전자통신연구원
Publication of KR20230047926A publication Critical patent/KR20230047926A/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
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • 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
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management

Abstract

Provided are a method and a device for managing data information for fast data retransmission. If a packet to be transmitted arrives, the device stores the information of the packet in a data buffer, wherein the data buffer includes at least one packet block information unit and is composed in the form of a linked list having the packet block information unit as a node, and the packet block information unit includes a plurality of elements. If a feedback message is received from a receiver after the transmission of the packet, the device checks, from the feedback message, whether the transmission of the packet is successful, and updates the information of the packet stored in the data buffer for the packet of which the transmission is confirmed to be successful.

Description

고속의 데이터 재전송을 위한 데이터 정보 관리 방법 및 장치{Method and apparatus for managing data information for fast data retransmission} Method and apparatus for managing data information for fast data retransmission

본 개시는 데이터 정보 관리 방법에 관한 것으로, 더욱 상세하게 말하자면, 고속의 데이터 재전송을 위한 데이터 정보 관리 방법 및 장치에 관한 것이다. The present disclosure relates to a data information management method, and more particularly, to a data information management method and apparatus for high-speed data retransmission.

무선접속 시스템에서 무선 구간 채널의 전송오류를 극복하기 위해 HARQ(Hybrid Automatic Repeat and request)를 사용할 뿐만 아니라 무선 링크 프로토콜(Radio Link Protocol)을 통해 패킷 단위의 ARQ 기능을 지원한다. ARQ 방식은 송신측에서 패킷마다 SN(sequence number)을 부여하여 전송하고, 수신측에서는 수신에 성공한 패킷의 SN 정보와 수신에 실패한 패킷의 SN 정보를 송신측에 피드백한다. 송신측은 전송한 패킷의 수신 성공이 확인되기 전까지 패킷을 버퍼에 저장하고 있어야 하며, 수신측으로부터 피드백되는 수신에 성공한 패킷의 SN 정보와 수신에 실패한 패킷의 SN 정보를 기반으로 패킷의 재전송 여부를 판단하고, 판단 결과 전송에 성공한 패킷은 버퍼에서 삭제하고 실패한 패킷은 재전송한다. In order to overcome a transmission error of a radio section channel in a wireless access system, not only HARQ (Hybrid Automatic Repeat and Request) is used, but also an ARQ function in units of packets is supported through a radio link protocol. In the ARQ scheme, the transmitting side assigns a sequence number (SN) to each packet and transmits them, and the receiving side feeds back SN information of successfully received packets and SN information of unsuccessfully received packets to the transmitting side. The sending side must store the packet in the buffer until the successful reception of the transmitted packet is confirmed, and based on the SN information of the successfully received packet and the SN information of the unsuccessfully received packet, which are fed back from the receiving side, it is determined whether or not to retransmit the packet. As a result of the judgment, packets that have been successfully transmitted are deleted from the buffer and packets that have failed are retransmitted.

이러한 ARQ 전송에서, 3GPP 5G NR(new radio) RLC(radio link control) 프로토콜에서 피드백 메시지로서 RLC 스테이터스(Status) PDU를 사용한다. 기가급의 데이터 전송 속도를 제공하는 환경에서, Status PDU를 수신했을 때 송신측에서 처리해야 하는 패킷의 개수가 수천 내지 수만 개가 발생할 수 있다. 제한 시간내에 수천 내지 수만개의 패킷을 처리하는 것은 통상적인 방법으로는 어려운 일이다. 실제로 채널 상태는 가변적이고, 경우에 따라 Status PDU의 전송 간격이 수백 ms가 될 수도 있으며, Status PDU의 전송 간격이 길어질수록 처리해야 하는 패킷의 개수는 그 배만큼 증가될 수 있다. In this ARQ transmission, an RLC Status (Status) PDU is used as a feedback message in the 3GPP 5G new radio (NR) radio link control (RLC) protocol. In an environment that provides a giga-class data transmission speed, thousands or tens of thousands of packets may occur in the sending side when a Status PDU is received. Processing thousands or tens of thousands of packets within a limited time is difficult with conventional methods. In reality, the channel state is variable, and the status PDU transmission interval may be hundreds of ms in some cases. As the status PDU transmission interval becomes longer, the number of packets to be processed may increase by a factor of that.

본 개시가 해결하고자 하는 과제는 패킷의 정보 처리에 소요되는 시간을 감소시켜, 고속으로 데이터 전송을 수행할 수 있는 패킷 정보 관리 방법 및 장치를 제공하는 것이다. An object of the present disclosure is to provide a method and apparatus for managing packet information capable of performing data transmission at high speed by reducing the time required for processing packet information.

일 실시 예에 따르면, 데이터 정보 관리 방법이 제공된다. 상기 방법은, 관리 장치가, 전송해야 할 패킷이 도착되면, 상기 패킷의 정보를 데이터 버퍼에 저장하는 단계 - 상기 데이터 버퍼는 적어도 하나의 패킷 블록 정보 유닛을 포함하고, 상기 패킷 블록 정보 유닛을 노드로 갖는 링크드 리스트 형태로 이루어지며, 상기 패킷 블록 정보 유닛은 복수의 엘리먼트를 포함함 -; 상기 관리 장치가, 상기 패킷이 전송된 후 수신측으로부터 피드백 메시지가 수신되면, 상기 피드백 메시지로부터 패킷의 전송 성공 여부를 확인하는 단계; 및 전송 성공으로 확인되는 패킷에 대해, 상기 데이터 버퍼에 저장된 상기 패킷의 정보를 업데이트하는 단계를 포함한다. According to an embodiment, a data information management method is provided. The method includes, by a management device, storing information of the packet in a data buffer when a packet to be transmitted arrives, wherein the data buffer includes at least one packet block information unit, and the packet block information unit is stored as a node. It is made in the form of a linked list having, wherein the packet block information unit includes a plurality of elements; checking, by the management device, whether packet transmission is successful from the feedback message when a feedback message is received from a receiving side after the packet is transmitted; and updating information of the packet stored in the data buffer for the packet confirmed to be transmitted successfully.

일 구현에서, 상기 데이터 버퍼에 저장하는 단계는, 상기 데이터 버퍼의 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트의 개수를 확인하는 단계; 및 상기 비어 있는 엘리먼트의 개수가 0이 아닌 경우에, 상기 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트들 중에서 가장 낮은 인덱스를 갖는 엘리먼트에, 상기 패킷의 정보를 저장하는 단계를 포함할 수 있다. In one implementation, the storing in the data buffer may include: checking the number of empty elements of the last packet block information unit of the data buffer; and if the number of empty elements is not 0, storing the information of the packet in an element having the lowest index among empty elements of the last packet block information unit.

일 구현에서, 상기 데이터 버퍼에 저장하는 단계는, 상기 비어 있는 엘리먼트의 개수가 0인 경우에, 신규 패킷 블록 정보 유닛을 생성하고, 상기 마지막 패킷 블록 정보 유닛에 상기 신규 패킷 블록 정보 유닛을 링크드시키는 단계; 및 상기 신규 패킷 블록 정보 유닛의 엘리먼트들 중에서 가장 낮은 인덱스를 갖는 엘리먼트에, 상기 패킷의 정보를 저장하는 단계를 더 포함할 수 있다. In one implementation, the storing in the data buffer includes generating a new packet block information unit when the number of empty elements is 0, and linking the new packet block information unit to the last packet block information unit. step; and storing the information of the packet in an element having the lowest index among elements of the new packet block information unit.

일 구현에서, 상기 데이터 버퍼는 복수의 비트를 포함하는 마스크 필드를 포함하고, 상기 마스크 필드의 각 비트는 대응하는 위치에 정보가 저장된 패킷의 전송 성공 여부를 지시하는 전송 상태 정보를 나타낼 수 있다. In one implementation, the data buffer may include a mask field including a plurality of bits, and each bit of the mask field may indicate transmission status information indicating success or failure of transmission of a packet in which information is stored in a corresponding location.

일 구현에서, 상기 패킷의 정보를 업데이트하는 단계는, 상기 데이터 버퍼의 마스크 필드에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 업데이트하는 단계를 포함할 수 있다. In one implementation, updating the information of the packet may include updating a value of a bit corresponding to the packet confirmed to have been transmitted successfully in a mask field of the data buffer.

일 구현에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 업데이트하는 단계에서, 상기 전송 성공으로 확인되는 패킷이 둘 이상의 연속된 패킷인 경우, 상기 마스크 필드에서 상기 전송 성공으로 확인되는 연속된 패킷들에 대응하는 비트들의 값을 업데이트하는 과정을 통해, 상기 연속된 패킷들의 정보가 별도의 검색 과정 없이, 한번에 업데이트될 수 있다. In one implementation, in the step of updating the value of the bit corresponding to the packet identified as successful transmission, if the packet identified as successful transmission is two or more consecutive packets, the sequence identified as successful transmission in the mask field. Through the process of updating the value of bits corresponding to the packets, the information of the consecutive packets can be updated at once without a separate search process.

일 구현에서, 상기 데이터 버퍼의 마스크 필드의 각 비트는 기본적으로 해당 패킷이 전송 실패한 것을 나타내는 제1 값으로 기록될 수 있다. 이 경우, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 업데이트하는 단계는, 상기 마스크 필드에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 제1 값을, 해당 패킷이 전송 성공한 것을 나타내는 제2 값으로 업데이트하는 단계를 포함할 수 있다. In one implementation, each bit of the mask field of the data buffer may be basically recorded as a first value indicating transmission failure of the corresponding packet. In this case, the step of updating the value of the bit corresponding to the packet identified as successful transmission may include, in the mask field, a first value of a bit corresponding to the packet identified as successful transmission, indicating that the corresponding packet has been successfully transmitted. It may include updating to the second value indicated.

일 구현에서, 상기 패킷의 전송 성공 여부를 확인하는 단계 이후에, 전송 실패로 확인되는 패킷에 대해서, 기준 인덱스를 계산하는 단계; 상기 데이터 버퍼의 패킷 블록 정보 유닛의 엘리먼트들 중에서 상기 기준 인덱스를 가지는 엘리먼트부터 검색하여, 상기 전송 실패로 확인되는 패킷의 정보를 획득하는 단계를 더 포함할 수 있다. In one implementation, after the step of checking whether the transmission of the packet is successful, for the packet confirmed to be transmission failure, calculating a reference index; The method may further include acquiring information of the packet identified as the transmission failure by searching for an element having the reference index among elements of the packet block information unit of the data buffer.

일 구현에서, 상기 데이터 버퍼는 최초 전송이 이루어진 패킷에 대한 정보를 포함하는 최초 전송 정보 필드 및 마지막 전송이 이루어진 패킷에 대한 정보를 포함하는 마지막 전송 정보 필드를 포함하며, 상기 최초 전송 정보 필드는 상기 최초 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 시작 인덱스, 상기 최초 전송이 이루어진 패킷의 시퀀스 번호인 시작 시퀀스 번호를 포함하고, 상기 마지막 정보 전송 필드는 상기 마지막 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 종료 인덱스, 상기 마지막 전송이 이루어진 패킷의 시퀀스 번호인 종료 시퀀스 번호를 포함할 수 있다. In one implementation, the data buffer includes an initial transmission information field including information on a first transmitted packet and a last transmission information field including information on a last transmitted packet, wherein the first transmission information field includes the first transmission information field. It includes a start index, which is an index of an element in which the first transmitted packet is stored, and a start sequence number, which is a sequence number of the first transmitted packet, and the last information transmission field is an index of an element in which the last transmitted packet is stored. It may include an index and an end sequence number, which is the sequence number of the last transmitted packet.

일 구현에서, 상기 기준 인덱스는 상기 전송 실패로 확인되는 패킷의 시퀀스 번호에서 상기 시작 시퀀스 번호를 감산한 값일 수 있다. In one implementation, the reference index may be a value obtained by subtracting the starting sequence number from the sequence number of the packet identified as the transmission failure.

일 구현에서, 상기 기준 인덱스를 계산하는 단계는, 상기 전송 실패로 확인되는 패킷의 시퀀스 번호가 상기 시작 인덱스와 상기 종료 시퀀스 번호 사이의 값인 경우에, 상기 기준 인덱스를 계산할 수 있다. In one implementation, the calculating of the reference index may include calculating the reference index when the sequence number of the packet identified as the transmission failure is between the start index and the end sequence number.

일 구현에서, 상기 방법은, 상기 전송 실패로 확인되는 패킷의 정보를 기반으로, 상기 전송 실패로 확인된 패킷의 재전송이 수행되는 단계를 더 포함할 수 있다. 여기서, 상기 패킷의 정보는 패킷이 저장되어 있는 메모리 주소, 패킷의 정보가 저장되어 있는 메모리 주소를 포함하며, 상기 패킷의 정보는 선태적으로, 패킷의 도착 시간, 패킷의 길이, 패킷의 시퀀스 번호, 패킷의 전송 상태 정보, 정보가 저장된 엘리먼트의 인덱스 중 적어도 하나를 더 포함할 수 있다. In one implementation, the method may further include performing retransmission of the packet identified as transmission failure based on information on the packet identified as transmission failure. Here, the information of the packet includes a memory address where the packet is stored and a memory address where the packet information is stored, and the information of the packet optionally includes the arrival time of the packet, the length of the packet, and the sequence number of the packet. , packet transmission status information, and an index of an element in which information is stored.

다른 실시 예에 따르면, 데이터 정보 관리 장치가 제공된다. 상기 장치는, 전송해야 할 패킷이 저장된 패킷 버퍼; 패킷의 정보를 저장하는 데이터 버퍼 - 상기 데이터 버퍼는 적어도 하나의 패킷 블록 정보 유닛을 포함하고, 상기 패킷 블록 정보 유닛을 노드로 갖는 링크드 리스트 형태로 이루어지며, 상기 패킷 블록 정보 유닛은 복수의 엘리먼트를 포함함 -; 전송된 패킷에 대해 수신측으로부터 피드백 메시지를 수신하도록 구성된 피드백 수신 처리부; 및 상기 패킷 버퍼에 전송해야 할 패킷이 도착되면, 상기 패킷의 정보를 데이터 버퍼에 저장하고, 상기 피드백 메시지로부터 패킷의 전송 성공 여부를 확인하고, 전송 성공으로 확인되는 패킷에 대해, 상기 데이터 버퍼에 저장된 상기 패킷의 정보를 업데이트하도록 구성된 정보 처리부를 포함한다. According to another embodiment, a data information management device is provided. The apparatus includes a packet buffer in which packets to be transmitted are stored; A data buffer for storing packet information - the data buffer includes at least one packet block information unit and is formed in the form of a linked list having the packet block information unit as a node, wherein the packet block information unit includes a plurality of elements contains -; a feedback receiving processing unit configured to receive a feedback message from a receiving side for the transmitted packet; and when a packet to be transmitted arrives in the packet buffer, the information of the packet is stored in the data buffer, whether the transmission of the packet is successful or not is checked from the feedback message, and for the packet confirmed as transmission success, the data buffer and an information processing unit configured to update information of the stored packet.

일 구현에서, 상기 정보 처리부는 구체적으로, 상기 패킷의 정보를 데이터 버퍼에 저장하는 동작 수행시, 상기 데이터 버퍼의 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트의 개수를 확인하고; 상기 비어 있는 엘리먼트의 개수가 0이 아닌 경우에, 상기 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트들 중에서 가장 낮은 인덱스를 갖는 엘리먼트에, 상기 패킷의 정보를 저장하며; 상기 비어 있는 엘리먼트의 개수가 0인 경우에, 신규 패킷 블록 정보 유닛을 생성하고, 상기 데이터 버퍼의 상기 마지막 패킷 블록 정보 유닛에 상기 신규 패킷 블록 정보 유닛을 링크드시키고; 그리고 상기 신규 패킷 블록 정보 유닛의 엘리먼트들 중에서 가장 낮은 인덱스를 갖는 엘리먼트에, 상기 패킷의 정보를 저장하도록 구성될 수 있다. In one implementation, the information processing unit specifically checks the number of empty elements of the last packet block information unit of the data buffer when performing an operation of storing the information of the packet in the data buffer; if the number of empty elements is not 0, store information of the packet in an element having the lowest index among empty elements of the last packet block information unit; if the number of empty elements is 0, create a new packet block information unit, and link the new packet block information unit to the last packet block information unit in the data buffer; And it may be configured to store the information of the packet in an element having the lowest index among elements of the new packet block information unit.

일 구현에서, 상기 데이터 버퍼는 복수의 비트를 포함하는 마스크 필드를 포함하고, 상기 마스크 필드의 각 비트는 대응하는 위치에 정보가 저장된 패킷의 전송 성공 여부를 지시하는 전송 상태 정보를 나타낼 수 있다. In one implementation, the data buffer may include a mask field including a plurality of bits, and each bit of the mask field may indicate transmission status information indicating success or failure of transmission of a packet in which information is stored in a corresponding location.

일 구현에서, 상기 데이터 버퍼는 최초 전송이 이루어진 패킷에 대한 정보를 포함하는 최초 전송 정보 필드 및 마지막 전송이 이루어진 패킷에 대한 정보를 포함하는 마지막 전송 정보 필드를 포함하며, 상기 최초 전송 정보 필드는 상기 최초 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 시작 인덱스, 상기 최초 전송이 이루어진 패킷의 시퀀스 번호인 시작 시퀀스 번호를 포함하고, 상기 마지막 정보 전송 필드는 상기 마지막 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 종료 인덱스, 상기 마지막 전송이 이루어진 패킷의 시퀀스 번호인 종료 시퀀스 번호를 포함할 수 있다. In one implementation, the data buffer includes an initial transmission information field including information on a first transmitted packet and a last transmission information field including information on a last transmitted packet, wherein the first transmission information field includes the first transmission information field. It includes a start index, which is an index of an element in which the first transmitted packet is stored, and a start sequence number, which is a sequence number of the first transmitted packet, and the last information transmission field is an index of an element in which the last transmitted packet is stored. It may include an index and an end sequence number, which is the sequence number of the last transmitted packet.

일 구현에서, 상기 데이터 버퍼는 상기 패킷 블록 정보 유닛의 엘리먼트 중에서 비어 있는 엘리먼트 중 가장 작은 인덱스를 포함하는 비어 있는 인덱스 필드 및 상기 비어 있는 엘리먼트들의 개수를 포함하는 비어 있는 개수 필드를 더 포함할 수 있다. In one implementation, the data buffer may further include an empty index field including the smallest index of empty elements among elements of the packet block information unit and an empty number field including the number of empty elements. .

일 구현에서, 상기 정보 처리부는 상기 패킷의 정보를 업데이트하는 동작 수행시, 상기 데이터 버퍼의 마스크 필드에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 제1 값에서, 해당 패킷이 전송 성공한 것을 나타내는 제2 값으로 업데이트하도록 구성될 수 있다. 여기서, 상기 전송 성공으로 확인되는 패킷이 둘 이상의 연속된 패킷인 경우, 상기 마스크 필드에서 상기 전송 성공으로 확인되는 연속된 패킷들에 대응하는 비트들의 값을 업데이트하는 과정을 통해, 상기 연속된 패킷들의 정보가 별도의 검색 과정 없이, 한번에 업데이트될 수 있다. In one implementation, when the information processing unit performs the operation of updating the information of the packet, in the mask field of the data buffer, the value of the bit corresponding to the packet confirmed as successful transmission is set to a first value, and the corresponding packet is transmitted. It may be configured to update to a second value indicating success. Here, when the packets identified as successful transmission are two or more consecutive packets, through a process of updating the values of bits corresponding to the consecutive packets identified as successful transmission in the mask field, Information can be updated at once without a separate search process.

일 구현에서, 상기 정보 처리부는 추가로, 전송 실패로 확인되는 패킷에 대해서, 기준 인덱스를 계산하고, 상기 데이터 버퍼의 패킷 블록 정보 유닛의 각 엘리먼트들 중에서 상기 기준 인덱스를 가지는 엘리먼트부터 검색하여, 상기 전송 실패로 확인되는 패킷의 정보를 획득하도록 구성될 수 있다. In one implementation, the information processing unit further calculates a reference index for a packet identified as transmission failure, and searches from among elements having the reference index among elements of a packet block information unit of the data buffer, It may be configured to obtain information of packets identified as transmission failures.

일 구현에서, 상기 장치는, 상기 전송 실패로 확인되는 패킷의 정보를 기반으로, 상기 전송 실패로 확인된 패킷의 재전송을 수행하도록 구성되는 송신 처리부를 더 포함할 수 있으며, 상기 기준 인덱스는 상기 전송 실패로 확인되는 패킷의 시퀀스 번호에서 상기 시작 시퀀스 번호를 감산한 값일 수 있다. In one implementation, the apparatus may further include a transmission processing unit configured to perform retransmission of the packet identified as transmission failure based on information on the packet identified as transmission failure, wherein the reference index is the transmission failure. It may be a value obtained by subtracting the starting sequence number from the sequence number of a packet identified as failure.

실시 예들에 따르면, 고속 데이터 스트림을 전송하는 환경에서, 전송되는 패킷들의 정보를 효율적으로 저장하는 데이터 버퍼를 제공하고, 데이터 버퍼를 기반으로 전송된 정보를 저장 및 관리함으로써, 고속의 데이터 재전송 처리가 가능하다. According to embodiments, in an environment of transmitting a high-speed data stream, high-speed data retransmission processing is performed by providing a data buffer that efficiently stores information of transmitted packets and storing and managing the transmitted information based on the data buffer. possible.

특히 데이터 버퍼의 마스크 필드를 기반으로 ACK로 식별되는 연속되는 패킷들이 정보 업데이트 처리가 한번에 이루어짐으로써, 처리 시간을 감소시킬 수 있다. 또한 NACK로 식별되는 패킷의 정보를 보다 빠르게 찾을 수 있으므로, 고속 데이터 재전송이 수행될 수 있다. In particular, since information update processing is performed at one time for successive packets identified as ACK based on the mask field of the data buffer, processing time can be reduced. In addition, since information of a packet identified by NACK can be found more quickly, high-speed data retransmission can be performed.

도 1은 피드백 메시지의 포맷을 나타낸 도이다.
도 2는 본 개시의 실시 예에 따른 데이터 정보 관리를 위한 데이터 버퍼의 구조를 나타낸 도이다.
도 3은 본 개시의 실시 예에 따른 데이터 정보 관리 장치의 구조를 나타낸 도이다.
도 4는 본 개시의 실시 예에 따른 데이터 정보 관리 방법의 흐름도이다.
도 5a 및 도 5b는 본 개시의 실시 예에 따른 데이터 정보 관리 방법의 다른 흐름도이다.
도 6은 본 개시의 실시 예에 따른 데이터 버퍼의 패킷의 정보 업데이트를 나타낸 예시도이다.
도 7은 본 개시의 실시 예에 따른 데이터 버퍼의 삭제 처리 과정을 나타낸 예시도이다.
도 8은 본 개시의 실시 예에 따른 방법을 구현하기 위한 컴퓨팅 장치를 설명하기 위한 구조도이다.
1 is a diagram illustrating a format of a feedback message.
2 is a diagram showing the structure of a data buffer for data information management according to an embodiment of the present disclosure.
3 is a diagram showing the structure of a data information management device according to an embodiment of the present disclosure.
4 is a flowchart of a data information management method according to an embodiment of the present disclosure.
5A and 5B are other flowcharts of a data information management method according to an embodiment of the present disclosure.
6 is an exemplary view illustrating information update of a packet of a data buffer according to an embodiment of the present disclosure.
7 is an exemplary diagram illustrating a process of deleting a data buffer according to an embodiment of the present disclosure.
8 is a structural diagram illustrating a computing device for implementing a method according to an embodiment of the present disclosure.

아래에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, embodiments of the present disclosure will be described in detail so that those skilled in the art can easily carry out the present disclosure. However, the present disclosure may be implemented in many different forms and is not limited to the embodiments described herein. And in order to clearly describe the present disclosure in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification, when a certain component is said to "include", it means that it may further include other components without excluding other components unless otherwise stated.

본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.Expressions written in the singular in this specification may be interpreted in the singular or plural unless an explicit expression such as “one” or “single” is used.

또한, 본 개시의 실시 예에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.Also, terms including ordinal numbers such as first and second used in the embodiments of the present disclosure may be used to describe components, but components should not be limited by the terms. Terms are used only to distinguish one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present disclosure.

또한 본 명세서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다.Also in the present specification, "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C", and " Each of the phrases such as “at least one of A, B, or C” may include any one of the items listed together in that phrase, or all possible combinations thereof.

이하, 도면을 참조하여 본 개시의 실시 예에 따른 데이터 재전송을 위한 데이터 정보 관리 방법 및 장치에 대하여 설명한다. Hereinafter, a data information management method and apparatus for data retransmission according to an embodiment of the present disclosure will be described with reference to the drawings.

도 1은 피드백 메시지의 포맷을 나타낸 도이다. 1 is a diagram illustrating a format of a feedback message.

ARQ Automatic Repeat and request) 전송에서, 3GPP 5G NR(new radio) RLC(radio link control) 프로토콜에서 피드백 메시지로서 RLC 스테이터스(Status) PDU를 사용한다. 도 1에서는 18비트 SN(sequence number)을 사용하는 경우의 Status PDU의 포맷을 나타낸다. In ARQ Automatic Repeat and request) transmission, an RLC Status PDU is used as a feedback message in the 3GPP 5G new radio (NR) radio link control (RLC) protocol. 1 shows a format of a Status PDU in the case of using an 18-bit sequence number (SN).

도 1의 Status PDU에서, ACK_SN은 ACK(Acknowledgment) 또는 NACK(Negative Acknowledgment) 정보를 포함하는 가장 큰 SN를 나타낸다. 송신측은 ACK_SN보다 작은 SN를 갖는 패킷에 대한 피드백 정보가 Status PDU에 포함된 것으로 인식한다. 즉, 수신되는 Status PDU가 ACK_SN 이전의 패킷들에 대한 피드백 정보인 것으로 인식한다. 뒤이어 NACK_SN 정보들이 포함될 수 있는데, ACK_SN보다 작은 SN을 갖는 패킷 중에 NACK 패킷의 정보만을 전달한다. NACK 정보는 연속적인 NACK_SN을 한번에 표현할 수 있도록 NACK_range로 나타낼 수 있다. 세그먼트화된 패킷 즉, SDU 세그먼트(Segment)의 NACK 정보를 포함하기 위해 SOstart와 SOend 필드가 사용될 수 있다. In the Status PDU of FIG. 1, ACK_SN represents the largest SN including acknowledgment (ACK) or negative acknowledgment (NACK) information. The transmitting side recognizes that the status PDU includes feedback information about packets with SN smaller than ACK_SN. That is, it recognizes that the received Status PDU is feedback information for packets prior to ACK_SN. Subsequently, NACK_SN information may be included, and among packets having an SN smaller than ACK_SN, only NACK packet information is delivered. NACK information can be represented by NACK_range so that consecutive NACK_SNs can be expressed at once. SOstart and SOend fields may be used to include NACK information of a segmented packet, that is, an SDU segment.

송신측은 Status PDU에 포함된 정보를 기반으로, 수신에 실패한 패킷의 정보를 처리한 후 나머지 패킷(ACK_SN 보다 SN이 작은 패킷들)은 모두 ACK를 수신한 패킷으로 간주한다. 도 1에서, E1 필드가 1인 경우, 이는 다음 번의 NACK 정보(NACK_SN, E1, E2, E3를 포함)가 뒤따라 포함됨을 나타낸다. E1 필드가 0인 경우, 이는 더 이상 NACK 정보가 포함되지 않고 Status PDU의 끝을 의미한다. E2 필드와 E3 필드는 각각 SOstart/SOend 필드와 NACK range 필드가 뒤따라 포함되는지의 여부를 나타낸다. 수신측에서 NACK 정보로서, NACK_SN 및 SOstart/SOend이 순차적으로 삽입되어야 한다. Based on the information included in the Status PDU, the sender processes the information of the failed packet and regards all remaining packets (packets with SN smaller than ACK_SN) as ACK-received packets. In FIG. 1 , when the E1 field is 1, it indicates that the next NACK information (including NACK_SN, E1, E2, and E3) is subsequently included. If the E1 field is 0, it means the end of the Status PDU without any more NACK information. The E2 field and the E3 field respectively indicate whether the SOstart/SOend field and the NACK range field are subsequently included. As NACK information at the receiving side, NACK_SN and SOstart/SOend should be sequentially inserted.

고속의 데이터 전송을 위해서 TB(transport block) (또는 MAC(medium access control) PDU(packet data unit))의 크기가 커지고, 하나의 TB에서 전송될 수 있는 패킷(RLC PDU)의 개수가 많아 짐에 따라, Status PDU를 수신했을 때 ACK 또는 NACK를 처리해야 하는 패킷의 개수도 현저히 증가하였다. 따라서, 기가급의 데이터 전송 속도를 제공하는 환경에서, Status PDU를 수신했을 때 송신측에서 처리해야 하는 패킷의 개수가 수천 내지 수만 개가 발생할 수 있다. 예를 들어, HARQ 재전송 지연을 고려하여 RLC 설정 파라미터(예를 들어, 재조립 가능한 타이머(reassemble timer) 등)를 설정하게 되는데, 이때 수십 ms의 간격으로 Status PDU가 전달될 수 있다. For high-speed data transmission, the size of a transport block (TB) (or medium access control (MAC) packet data unit (PDU)) increases and the number of packets (RLC PDUs) that can be transmitted in one TB increases. Accordingly, the number of packets for which ACK or NACK must be processed when a Status PDU is received has also significantly increased. Therefore, in an environment that provides a giga-class data transmission speed, thousands or tens of thousands of packets may occur in the transmitting side when a status PDU is received. For example, RLC setting parameters (eg, a reassemble timer, etc.) are set in consideration of HARQ retransmission delay, and at this time, Status PDUs may be delivered at intervals of several tens of ms.

무선 접속 시스템 프로토콜의 경우, 그 기능에 따라 시한부적인(time critical) 기능 블록과 그렇지 않은 기능 블록이 있을 수 있다. 트래픽 전송 기능을 담당하는 RLC 프로토콜 블록과 MAC 기능 블록은 PHY(Physical) 계층 블록과 함께 슬롯(또는 TTI(Transmission Time Interval))마다 물리적인 동기를 맞추어 기능을 수행해야 한다. 프로토콜이 탑재되는 하드웨어의 성능에 따라 ARQ 기능을 포함한 소프트웨어 블록의 수행 시간이 달라질 수는 있으나, mmWave와 같이 슬롯의 길이가 짧은 시스템의 경우, 그 제한 시간내에 수천 내지 수만개의 패킷을 처리하는 것이 매우 어렵다. 채널 상태는 가변적이고 때에 따라서 Status PDU의 전송 간격이 수백 ms가 될 수도 있으며, Status PDU의 전송 간격이 길어질수록 처리해야 하는 패킷의 개수는 그 배만큼 증가될 수 있다.In the case of a radio access system protocol, there may be time critical functional blocks and non-time critical functional blocks according to their functions. The RLC protocol block and the MAC function block, which are in charge of the traffic transmission function, must perform their functions in physical synchronization for each slot (or TTI (Transmission Time Interval)) together with the PHY (Physical) layer block. Although the execution time of the software block including the ARQ function may vary depending on the performance of the hardware on which the protocol is mounted, in the case of a system with a short slot length such as mmWave, it is very difficult to process thousands or tens of thousands of packets within the limited time. difficult. The channel state is variable, and the transmission interval of the Status PDU may be hundreds of ms depending on the case. As the transmission interval of the Status PDU becomes longer, the number of packets to be processed may increase by a factor of that.

본 개시의 실시 예에서는 고속 데이터 ARQ 재전송을 위해 패킷 관련된 데이터 정보를 관리하고 처리하는 방법 및 장치를 제공한다. An embodiment of the present disclosure provides a method and apparatus for managing and processing packet-related data information for high-speed data ARQ retransmission.

도 2는 본 개시의 실시 예에 따른 데이터 정보 관리를 위한 데이터 버퍼의 구조를 나타낸 도이다. 2 is a diagram showing the structure of a data buffer for data information management according to an embodiment of the present disclosure.

본 개시의 실시 예에서는 고속 데이터 ARQ 재전송을 위해 패킷 관련된 데이터 정보를 관리하고 처리하기 위해 도 2에 도시된 바와 같은 데이터 버퍼를 사용한다. In an embodiment of the present disclosure, a data buffer as shown in FIG. 2 is used to manage and process packet-related data information for high-speed data ARQ retransmission.

데이터 버퍼(10)는 전송해야 할 패킷이 도착하였을 경우, 순차적으로 패킷의 정보를 저장하고 관리하며, SDUBLK 버퍼라고도 명명된다. 데이터 버퍼(10)는 패킷의 정보를 저장하기 위한 패킷 블록 정보 유닛(U)을 포함한다. 패킷 블록 정보 유닛(U)은 SDUBlockInfo라고도 명명된다. 패킷 블록 정보 유닛(U)은 패킷의 정보를 저장하는 엘리먼트(정보 엘리먼트라고도 명명됨)를 포함하며, 정보 엘리먼트는 SDUInfo라고도 명명된다. 즉, 패킷 블록 정보 유닛(U)인 SDUBlockInfo는 N개의 SDUInfo를 포함하며, N개의 SDUInfo가 어레이 형태로 포함된다. 예를 들어, SDUInfo[0]에서부터 SDUInfo[N-1]까지가 어레이 형태로 포함되며, 이 어레이를 SDUInfo 어레이라고도 명명하며, SDUInfo 어레이를 구성하는 N개의 엘리먼트에 패킷의 정보인 SDUInfo가 저장된다. When a packet to be transmitted arrives, the data buffer 10 sequentially stores and manages packet information, and is also called an SDUBLK buffer. The data buffer 10 includes a packet block information unit (U) for storing information of packets. The packet block information unit (U) is also named SDUBlockInfo. The packet block information unit (U) includes an element (also named information element) for storing information of a packet, and the information element is also named SDUInfo. That is, SDUBlockInfo, which is a packet block information unit (U), includes N pieces of SDUInfo, and the N pieces of SDUInfo are included in an array form. For example, SDUInfo[0] to SDUInfo[N-1] are included in an array form, and this array is also called an SDUInfo array, and SDUInfo, which is packet information, is stored in N elements constituting the SDUInfo array.

본 개시의 데이터 버퍼(10)는 패킷 블록 정보 유닛(U) 즉, SDUBlockInfo를 노드로 갖는 링크드 리스트이다. 구체적으로, 데이터 버퍼(10)는 복수의 SDUBlockInfo를 포함하며, 각각의 SDUBlockInfo가 하나의 노드로 기능하면서 이들 SDUBlockInfo들이 순차적으로 연결된 링크드 리스트이다. 도 2에서는 데이터 버퍼(10)가 3개의 SDUBlockInfo(3개의 SDUInfo 어레이)(U1~U3)를 포함하는 링크드 리스트 형태로 구현되고, 각 SDUBlockInfo를 구성하는 SDUInfo 어레이가 5개의 엘리먼트를 포함하는 것을 예로 들었으며, 본 개시는 이에 한정되지 않는다. The data buffer 10 of the present disclosure is a linked list having a packet block information unit (U), that is, SDUBlockInfo as a node. Specifically, the data buffer 10 includes a plurality of SDUBlockInfo, and each SDUBlockInfo functions as one node and is a linked list in which these SDUBlockInfos are sequentially connected. In FIG. 2, the data buffer 10 is implemented in the form of a linked list including three SDUBlockInfo (three SDUInfo arrays) (U1 to U3), and the SDUInfo array constituting each SDUBlockInfo includes 5 elements as an example. and the present disclosure is not limited thereto.

한편, 패킷 블록 정보 유닛인 SDUBlockInfo(U)는 패킷의 상태 정보를 식별하는 마스크 필드를 포함한다. 구체적으로, 마스크 필드는 FBmask 필드라고도 명명되며, FBmask 필드는 N 비트로 구성되며, 각각의 1 비트는 패킷의 상태 정보 즉, 패킷이 전송에 성공했는지 아닌지를 나타낸다. 이러한 1비트 정보가 예를 들어, "0"인 경우, 이는 해당 패킷의 전송이 성공했음을 나타내며, "1"인 경우 이는 해당 패킷의 전송이 성공하지 못했음을 나타낸다. FBmask 필드에서 N 비트 중 n번째 비트는 SDUBlockInfo(U)에 포함된 SDUInfo들 중에서 n번째 SDUInfo의 패킷 상태 정보를 나타낸다. On the other hand, SDUBlockInfo (U), which is a packet block information unit, includes a mask field identifying state information of a packet. Specifically, the mask field is also referred to as the FBmask field, and the FBmask field is composed of N bits, and each 1 bit represents status information of a packet, that is, whether the packet is successfully transmitted or not. When this 1-bit information is, for example, "0", it indicates that the transmission of the corresponding packet was successful, and when it is "1", it indicates that the transmission of the corresponding packet was not successful. The nth bit among N bits in the FBmask field represents packet status information of the nth SDUInfo among SDUInfos included in SDUBlockInfo(U).

SDUBlockInfo(U)는 또한 다음과 같은 정보를 포함할 수 있다. SDUBlockInfo (U) may also include the following information.

- Start index/start SN: Start index는 시작 인덱스라고도 명명되며, 이는 SDUBlockInfo에 저장되어 있는 패킷 중에 최초 전송이 이루어진 패킷이 저장된 SDUInfo 어레이의 인덱스를 나타낸다. start SN는 시작 시퀀스 번호라고도 명명되며, 이는 최초 전송이 이루어진 패킷의 시퀀스 번호(Sequence number, SN)를 나타낸다. - Start index/start SN: Start index is also called the start index, which indicates the index of the SDUInfo array in which the first transmitted packet is stored among the packets stored in SDUBlockInfo. The start SN is also referred to as the start sequence number, and represents the sequence number (SN) of the first transmitted packet.

- End index/end SN: End index는 종료 인덱스라고도 명명되며, 이는 SDUBlockInfo에 저장되어 있는 패킷 중에 가장 마지막에 전송이 이루어진 패킷의 패킷 정보가 저장되어 있는 SDUInfo 어레이의 인덱스를 나타낸다. end SN는 종료 시퀀스 번호라고도 명명되며, 이는 가장 마지막에 전송이 이루어진 패킷의 시퀀스 번호를 나타낸다. - End index/end SN: End index is also called end index, which indicates the index of the SDUInfo array in which packet information of the last transmitted packet among the packets stored in SDUBlockInfo is stored. The end SN is also called the end sequence number, and indicates the sequence number of the last transmitted packet.

- Next index: Next index는 다음 인덱스라고도 명명되며, 이는 SDUBlockInfo 내 SDUInfo 어레이 내 비어 있는 SDUInfo 엘리먼트의 가장 작은 인덱스를 나타낸다. 예를 들어, 도 2의 3개의 SDUInfo 어레이 중에서 세 번째 SDUInfo 어레이(U3)의 엘리먼트 중에서 비어 있는(empty) SDUInfo 엘리먼트(U3_E2)의 인덱스를 나타낸다. - Next index: Next index is also called the next index, which indicates the smallest index of an empty SDUInfo element in the SDUInfo array in SDUBlockInfo. For example, it indicates the index of an empty SDUInfo element (U3_E2) among the elements of the third SDUInfo array (U3) among the three SDUInfo arrays of FIG.

- Empty num: 비어 있는 엘리먼트의 개수라고도 명명하며, 이는 SDUBlockInfo 내 SDUInfo array 내 비어 있는 SDUInfo 엘리먼트들의 개수를 나타낸다. - Empty num: Also named as the number of empty elements, which indicates the number of empty SDUInfo elements in the SDUInfo array in SDUBlockInfo.

이러한 정보들은 SDUBlockInfo(U)의 필드별로 저장될 수 있다. 이 경우, SDUBlockInfo(U)는 FBmask 필드(마스크 필드라고도 명명됨), Start index/start SN 필드(최초 전송 정보 필드라고도 명명됨), End index/end SN 필드(마지막 전송 정보 필드라고도 명명됨), Next index 필드(비어 있는 인덱스 필드라고도 명명됨), Empty num 필드(비어 있는 개수 필드라고도 명명됨)를 포함할 수 있다. Such information may be stored for each field of SDUBlockInfo(U). In this case, SDUBlockInfo (U) includes FBmask field (also named mask field), Start index/start SN field (also named first transmission information field), End index/end SN field (also named last transmission information field), It may include a Next index field (also named an empty index field) and an Empty num field (also named an empty count field).

한편, SDUBlockInfo(U)의 SDUInfo 어레이 내 각 엘리먼트인, SDUInfo는 패킷의 구체적인 정보를 저장하며, 저장되는 정보는 다음과 같은 정보를 포함할 수 있다.Meanwhile, SDUInfo, which is each element in the SDUInfo array of SDUBlockInfo (U), stores specific information of a packet, and the stored information may include the following information.

- 패킷의 도착 시간- packet arrival time

- 패킷의 길이- packet length

- 패킷의 시퀀스 번호- sequence number of the packet

- 패킷의 전송 상태 정보 (NO TX, NO RX, ACK, NACK, pNACK 등)- Packet transmission status information (NO TX, NO RX, ACK, NACK, pNACK, etc.)

- 패킷이 저장되어 있는 실제 메모리 주소- Physical memory address where the packet is stored

- SDUInfo 어레이 내 해당 패킷의 정보가 저장된 엘리먼트의 인덱스- The index of the element in the SDUInfo array where the information of the packet is stored

- SDUBlockInfo가 저장된 메모리 주소- Memory address where SDUBlockInfo is stored

본 개시의 실시 예에서는 위에 기술된 바와 같이, SDUBlockInfo를 노드로 갖는 링크드 리스트인 데이터 버퍼(10)를 이용하여 전송되는 패킷의 정보를 관리한다. As described above, in the embodiment of the present disclosure, information of a transmitted packet is managed using the data buffer 10, which is a linked list having SDUBlockInfo as a node.

도 3은 본 개시의 실시 예에 따른 데이터 정보 관리 장치의 구조를 나타낸 도이다. 3 is a diagram showing the structure of a data information management device according to an embodiment of the present disclosure.

본 개시의 실시 예에 따른 데이터 정보 관리 장치(1)는 도 3에서와 같이, 데이터 버퍼(10), 패킷 버퍼(20), 정보 처리부(30)를 포함하며, 송신 처리부(40) 및 피드백 수신 처리부(50)를 포함한다. As shown in FIG. 3, the data information management apparatus 1 according to an embodiment of the present disclosure includes a data buffer 10, a packet buffer 20, and an information processing unit 30, and includes a transmission processing unit 40 and feedback reception. It includes a processing unit (50).

데이터 버퍼(10)는 위에 기술된 바와 같이, SDUBlockInfo를 노드로 갖는 링크드 리스트이며, 패킷의 정보를 저장하도록 구성된다. The data buffer 10, as described above, is a linked list having SDUBlockInfo as a node, and is configured to store information of packets.

패킷 버퍼(20)는 전송하고자 하는 패킷이 저장되는 버퍼이다. The packet buffer 20 is a buffer in which packets to be transmitted are stored.

정보 처리부(30)는 전송하고자 하는 패킷이 도착하면(예를 들어, 전송하고자 하는 패킷이 패킷 버퍼(20)에 저장되면), 해당 패킷의 정보를 데이터 버퍼(10)에 저장하도록 구성된다. 또한 정보 처리부(30)는 피드백 수신 처리부(40)에 의해 수신되는 피드백 메시지의 정보를 기반으로 데이터 버퍼(10)에 저장된 이미 전송 처리된 패킷에 대한 정보를 업데이트하도록 구성된다. When a packet to be transmitted arrives (for example, when the packet to be transmitted is stored in the packet buffer 20), the information processing unit 30 is configured to store the information of the corresponding packet in the data buffer 10. Also, the information processing unit 30 is configured to update information about packets that have already been processed and stored in the data buffer 10 based on the information of the feedback message received by the feedback receiving processing unit 40 .

송신 처리부(40)는 패킷의 전송 처리를 수행하도록 구성되며, 또한 패킷의 재전송 처리를 수행하도록 구성된다. The transmission processing unit 40 is configured to perform packet transmission processing, and is also configured to perform packet retransmission processing.

피드백 수신 처리부(50)는 전송된 패킷에 대한 피드백 메시지를 수신측으로부터 수신하도록 구성된다. 피드백 메시지는 도 1에 도시된 바와 같은 포맷으로 구성될 수 있다. The feedback receiving processing unit 50 is configured to receive a feedback message for the transmitted packet from a receiving side. The feedback message may be configured in a format as shown in FIG. 1 .

이러한 구조로 이루어지는 데이터 정보 관리 장치를 기반으로, 본 개시의 실시 예에 따른 데이터 정보 관리 방법에 대해 설명한다. Based on the data information management device having this structure, a data information management method according to an embodiment of the present disclosure will be described.

도 4, 도 5a 및 도 5b는 본 개시의 실시 예에 따른 데이터 정보 관리 방법의 흐름도이다. 4, 5a and 5b are flowcharts of a data information management method according to an embodiment of the present disclosure.

여기서는 설명의 편의를 위해, 본 개시의 실시 예에 따른 데이터 버퍼(10)가 도 2에서와 같은 구조로 이루어지는 것을 예로 들어, 데이터 정보 관리 방법을 설명한다. 도 2에서는, 데이터 버퍼(10)에 3개의 SDUBlockInfo(U1~U3)가 링크드 리스트 형태로 포함되어 있으며, 각각의 SDUBlockInfo는 5개의 SDUInfo 엘리먼트(예를 들어, SDUInfo[0] ~SDUInfo[4])를 포함하며, 마지막 노드인 SDUBlockInfo(U3)에는 하나의 패킷 정보만 저장되어 있고 4개의 SDUInfo가 비어 있는 것을 예로 사용한다. 마지막 노드인 SDUBlockInfo(U3)는 테일((tail)이라고도 명명된다. 도 2에서는, 예를 들어, 시퀀스 번호가 N인 패킷부터 N+6인 패킷까지 한번씩만 전송되고, 전송된 패킷들 중에서 N+1번째 패킷만 ACK를 수신한 경우가 예시되어 있다. Here, for convenience of explanation, the data information management method will be described by taking the data buffer 10 according to the embodiment of the present disclosure having the structure shown in FIG. 2 as an example. In FIG. 2, three SDUBlockInfo (U1 to U3) are included in the data buffer 10 in the form of a linked list, and each SDUBlockInfo includes 5 SDUInfo elements (eg, SDUInfo[0] to SDUInfo[4]). , and only one packet information is stored in SDUBlockInfo (U3), the last node, and four SDUInfo are empty. SDUBlockInfo (U3), which is the last node, is also named tail. In FIG. 2, for example, packets with sequence numbers N to N+6 are transmitted only once, and among the transmitted packets, N+ A case in which only the first packet receives an ACK is exemplified.

먼저, 도 4를 기반으로 패킷 전송에 따른 데이터 정보 관리 방법에 대해 설명한다. First, a data information management method according to packet transmission will be described based on FIG. 4 .

첨부한 도 4에서와 같이, 전송해야 할 패킷이 도착하면(S100), 데이터 정보 관리 장치(1)는 해당 패킷의 정보를 데이터 버퍼(10)에 저장한다.As shown in FIG. 4, when a packet to be transmitted arrives (S100), the data information management device 1 stores the information of the corresponding packet in the data buffer 10.

구체적으로, 데이터 정보 관리 장치(1)는 데이터 버퍼(10)의 가장 마지막 노드의 비어 있는 엘리먼트의 개수를 확인한다(S110). 예를 들어, 도 2의 데이터 버퍼(10)에서 가장 마지막 노드인 SDUBlockInfo(U3)의 필드 중에서 Empty num 필드를 확인하여, SDUBlockInfo(U3)의 비어 있는 엘리먼트의 개수를 확인한다. Specifically, the data information management device 1 checks the number of empty elements of the last node of the data buffer 10 (S110). For example, among the fields of SDUBlockInfo (U3), which is the last node in the data buffer 10 of FIG. 2, an Empty num field is checked to check the number of empty elements of SDUBlockInfo (U3).

가장 마지막 노드인 SDUBlockInfo 내 비어 있는 엘리먼트의 개수가 "0"이 아닌 경우, 데이터 정보 관리 장치(1)는 가장 마지막 노드인 SDUBlockInfo의 비어 있는 엘리먼트 중에서 가장 작은 인덱스를 가지는 SDUInfo 엘리먼트에, 전송해야 할 패킷의 정보 SDUInfo를 저장한다(S120, S130). 예를 들어, 도 2의 데이터 버퍼(10)에서 가장 마지막 노드인 SDUBlockInfo(U3)의 필드 중에서 Next index 필드를 확인하여 인덱스를 획득하고, SDUBlockInfo(U3)의 비어 있는 엘리먼트들 중에서 획득된 인덱스에 대응하는 엘리먼트 즉, 비어 있는 SDUInfo 엘리먼트들 중에서 가장 작은 인덱스에 대응하는 엘리먼트에, 전송해야 할 패킷의 정보 SDUInfo를 저장한다.If the number of empty elements in SDUBlockInfo, which is the last node, is not "0", the data information management device 1 sends the packet to be transmitted to the SDUInfo element having the smallest index among the empty elements of SDUBlockInfo, which is the last node. Stores the information SDUInfo of (S120, S130). For example, in the data buffer 10 of FIG. 2, an index is obtained by checking the Next index field among the fields of SDUBlockInfo (U3), which is the last node, and corresponds to the obtained index among empty elements of SDUBlockInfo (U3). SDUInfo information of a packet to be transmitted is stored in an element corresponding to the smallest index among empty SDUInfo elements.

이와 같이, 전송해야 할 패킷의 정보를 데이터 버퍼(10)에 저장한 후, 데이터 정보 관리 장치(1)는 패킷의 정보가 저장된 SDUBlockInfo의 정보를 업데이트한다(S140). 예를 들어, 도 2에서, 전송해야 할 패킷이 저장된 가장 마지막 노드인 SDUBlockInfo(U3)의 Next index 필드의 next index를 1만큼 증가시키고, Empty num 필드의 empty num을 1만큼 감소시킨다. In this way, after storing the information of the packet to be transmitted in the data buffer 10, the data information management device 1 updates the information of SDUBlockInfo in which the information of the packet is stored (S140). For example, in FIG. 2, the next index of the Next index field of SDUBlockInfo (U3), which is the last node where the packet to be transmitted is stored, is increased by 1, and empty num of the Empty num field is decreased by 1.

한편, 단계(S130)에서 데이터 버퍼(10)의 가장 마지막 노드의 비어 있는 엘리먼트의 개수가 "0"인 경우, 신규 SDUBlockInfo 노드를 생성하고(S150), 새로이 생성된 신규 SDUBlockInfo를 구성하는 엘리먼트 중 가장 낮은 인덱스를 가지는 엘리먼트에, 전송해야 할 패킷의 정보를 저장한다(S160). 예를 들어, 도 2에서, 가장 마지막 노드인 SDUBlockInfo(U3)의 비어 있는 엘리먼트의 개수가 "0"이면, 신규 SDUBlockInfo(U4)(도시되지 않음)를 추가로 생성하여 SDUBlockInfo(U3)에 연결시키고, SDUBlockInfo(U4)의 가장 낮은 인덱스를 가지는 SDUInfo 엘리먼트(예를 들어, SDUInfo[0])에, 전송해야 할 패킷의 정보를 저장한다.On the other hand, if the number of empty elements of the last node of the data buffer 10 is "0" in step S130, a new SDUBlockInfo node is created (S150), and among the elements constituting the newly created new SDUBlockInfo, the most In an element having a low index, information of a packet to be transmitted is stored (S160). For example, in FIG. 2, if the number of empty elements of SDUBlockInfo (U3), which is the last node, is “0”, a new SDUBlockInfo (U4) (not shown) is additionally created and connected to SDUBlockInfo (U3) , In the SDUInfo element (eg, SDUInfo[0]) having the lowest index of SDUBlockInfo (U4), information on a packet to be transmitted is stored.

이러한 단계들을 통해, 전송해야 할 패킷의 정보를 데이터 버퍼(10)에 저장 및 관리한다. Through these steps, the information of the packet to be transmitted is stored and managed in the data buffer 10 .

다음에는 도 5a 및 도 5b를 기반으로 패킷 전송 이후에 수신측으로부터 피드백 메시지를 수신한 경우에 수행되는 데이터 정보 관리 방법에 대해 설명한다. Next, based on FIGS. 5A and 5B, a data information management method performed when a feedback message is received from a receiver after packet transmission will be described.

첨부한 도 5a에 도시된 바와 같이, 송신측에서 패킷이 수신측으로 전송되고, 그에 대한 피드백 메시지가 수신되면, 데이터 정보 관리 장치(1)는 피드백 메시지에 대응하는 전송한 패킷의 정보를 업데이트한다. As shown in FIG. 5A, when a packet is transmitted from the transmitting side to the receiving side and a feedback message is received, the data information management device 1 updates information of the transmitted packet corresponding to the feedback message.

수신측으로부터 피드백 메시지 즉, Status PDU가 수신되면(S300), 데이터 정보 관리 장치(1)는 Status PDU로부터 패킷의 시퀀스 번호를 식별하고(S310), 식별된 시퀀스 번호를 가지는 패킷의 전송 성공 여부를 확인한다(S320).When a feedback message, that is, a Status PDU is received from the receiving side (S300), the data information management device 1 identifies a sequence number of a packet from the Status PDU (S310), and determines whether the transmission of the packet having the identified sequence number is successful or not. Check (S320).

패킷의 전송 성공 여부를 확인한 후, 전송 성공으로 확인된 패킷의 상태 정보를 업데이트한다. 구체적으로, 해당 패킷이 저장된 SDUBlockInfo의 FB ask 필드(마스크 필드)를 업데이트한다. 즉, FB mask 필드의 비트 중에서, Status PDU로부터 전송 성공 즉, ACK로 식별되는 패킷에 대응하는 비트를 "0"으로 처리하여 상태 정보를 업데이트한다(S330, S340). After confirming whether the transmission of the packet was successful, the state information of the packet confirmed as successful transmission is updated. Specifically, the FB ask field (mask field) of SDUBlockInfo in which the corresponding packet is stored is updated. That is, among the bits of the FB mask field, the status information is updated by processing the bit corresponding to the packet identified as successful transmission, that is, ACK, from the Status PDU as “0” (S330 and S340).

도 6은 본 개시의 실시 예에 따른 데이터 버퍼의 패킷의 정보 업데이트를 나타낸 예시도이다. 6 is an exemplary view illustrating information update of a packet of a data buffer according to an embodiment of the present disclosure.

예를 들어, SN이 x+2인 패킷부터 SN이 y인 연속적인 패킷들이 ACK로 식별되는 경우, 도 6의 우측에 도시된 바와 같이, FB mask 필드 내 대응하는 위치의 비트들을 모두 "0""으로 마스킹(masking)한다. 한편, FB mask 필드의 각 비트는 예를 들어, 기본적으로 "1"로 설정되어 대응하는 패킷의 전송이 성공하지 않은 것으로 기록하고, 피드백 메시지 수신 이후에 전송 성공으로 확인되면 위에 기술된 바와 같이 "0"으로 업데이트될 수 있다. 물론, 본 개시는 이에 한정되지 않는다. For example, when successive packets with SN of y are identified as ACK from a packet with SN of x+2, as shown on the right side of FIG. 6, all bits at corresponding positions in the FB mask field are set to “0” On the other hand, each bit of the FB mask field is basically set to "1", for example, to record that the transmission of the corresponding packet was not successful, and after receiving the feedback message, the transmission is successful If confirmed, it may be updated to “0” as described above. Of course, the present disclosure is not limited to this.

이러한 처리를 통해, ACK로 식별되는 패킷들이 연속되는 패킷들인 경우에는 SDUBlockInfo 내 FB mask 필드를 한번 업데이트하는 것에 의해, 처리가 종료된다. 다시 말해서, ACK로 식별되는 연속되는 n개의 패킷에 대해, SDUBlockInfo 내 SDUInfo를 각각 찾아서 SDUInfo의 정보를 각각 업데이트하는 n번의 업데이트 과정이 생략된다. 그러므로 처리 시간이 감소될 수 있다. Through this process, when the packets identified by ACK are consecutive packets, the process ends by updating the FB mask field in SDUBlockInfo once. In other words, for n consecutive packets identified by ACK, n times of updating process of finding SDUInfo in SDUBlockInfo and updating SDUInfo information respectively is omitted. Therefore, processing time can be reduced.

반면에, 전송 실패로 확인된 패킷에 대해서는, 해당 패킷의 SDUInfo를 찾아서 정보를 업데이트하고 재전송을 준비한다. 단계(S330)에서, Status PDU로부터 전송 실패 즉, NACK로 식별되는 패킷에 대해서는 해당 패킷의 SN을 기반으로 해당 패킷의 SDUInfo를 찾는다. On the other hand, for packets confirmed as transmission failure, SDUInfo of the corresponding packet is found, information is updated, and retransmission is prepared. In step S330, for a packet identified as transmission failure, that is, NACK, from the Status PDU, SDUInfo of the corresponding packet is searched based on the SN of the corresponding packet.

첨부한 도 5b에 도시된 바와 같이, 데이터 정보 관리 장치(1)는 Status PDU로부터 NACK로 식별되는 패킷의 SN과 데이터 버퍼(10)의 SDUBlockInfo의 시작 인덱스와 종료 시퀀스 번호를 비교한다. 구체적으로, SDUBlockInfo의 Start index/start SN 필드로부터 시작 인덱스 즉, Start index(최초 전송이 이루어진 패킷이 저장된 SDUInfo 어레이의 인덱스)를 획득하고, End index/end SN 필드로부터 종료 시퀀스 번호 즉, end SN(가장 마지막에 초전송이 이루어진 패킷의 SN)을 획득하고(S350), 이들을 NACK로 식별되는 패킷의 SN과 비교한다(S360). As shown in FIG. 5B, the data information management device 1 compares the SN of the packet identified as NACK from the Status PDU with the start index and end sequence number of SDUBlockInfo of the data buffer 10. Specifically, the start index, that is, Start index (the index of the SDUInfo array in which the first transmitted packet is stored) is obtained from the Start index/start SN field of SDUBlockInfo, and the end sequence number, that is, end SN ( The SN of the last first transmitted packet is obtained (S350) and compared with the SN of the packet identified as NACK (S360).

NACK로 식별되는 패킷의 SN이 Start index과 end SN 사이의 값이면, SDUBlockInfo 내 SDUInfo 어레이의 엘리먼트들 중에서 기준 인덱스를 계산하고, 기준 인덱스에 대응하는 엘리먼트의 SDUInfo를 검색한다(S370~S390). 여기서, 기준 인덱스 = (NACK로 식별되는 패킷의 SN - start SN)을 기반으로 계산된다. If the SN of the packet identified as NACK is a value between the start index and the end SN, a reference index is calculated among elements of the SDUInfo array in SDUBlockInfo, and SDUInfo of an element corresponding to the reference index is searched (S370 to S390). Here, it is calculated based on reference index = (SN of the packet identified as NACK - start SN).

데이터 정보 관리 장치(1)는 SDUBlockInfo 내 SDUInfo 어레이의 엘리먼트들을 모두 검색하지 않고, 기준 인덱스에 대응하는 엘리먼트부터 검색함으로써, NACK로 식별되는 패킷의 SDUInfo를 보다 빠르게 찾을 수 있다. The data information management device 1 may more quickly find SDUInfo of a packet identified as NACK by searching for an element corresponding to a reference index instead of searching for all elements of the SDUInfo array in SDUBlockInfo.

이후, 데이터 정보 관리 장치(1)는 NACK로 식별되는 패킷의 SDUInfo의 정보를 기반으로 재전송 처리가 이루어지도록 한다(S400). 이를 위해, 정보 처리부(30)가 NACK로 식별되는 패킷의 SDUInfo의 정보(예를 들어, 패킷이 저장되어 있는 실제 메모리 주소)를 송신 처리부(40)로 전달하고, 송신 처리부(40)는 패킷 버퍼(20)에 해당 메모리 주소에 저장된 패킷에 대한 재전송 처리를 수행한다. Thereafter, the data information management device 1 performs retransmission processing based on the SDUInfo information of the packet identified as NACK (S400). To this end, the information processing unit 30 transfers SDUInfo information (eg, the actual memory address where the packet is stored) of the packet identified as NACK to the transmission processing unit 40, and the transmission processing unit 40 transmits the packet buffer In (20), a retransmission process for the packet stored in the corresponding memory address is performed.

반면, 단계(S370)에서, NACK로 식별되는 패킷의 SN이 Start index과 end SN 사이의 값이 아니면, 데이터 정보 관리 장치(1)는 해당 SDUBlockInfo에 해당 패킷 (NACK로 처리해야 하는 SN을 갖고 있는 패킷)이 없는 것으로 간주한다. 이후, 데이터 정보 관리 장치(1)는 단계(S350)로 리턴하여 데이터 버퍼(10)에서 다음으로 저장되어 있는 SDUBlockInfo의 Start index와 end SN를 획득하여 이후의 단계들을 반복한다. On the other hand, in step S370, if the SN of the packet identified as NACK is not a value between the start index and the end SN, the data information management device 1 includes the corresponding SDUBlockInfo in the corresponding packet (having an SN to be processed as NACK) packet) is assumed to be missing. Thereafter, the data information management device 1 returns to step S350 to acquire the start index and end SN of SDUBlockInfo next stored in the data buffer 10 and repeats subsequent steps.

한편, 데이터 정보 관리 장치(1)는 데이터 버퍼(10)의 SDUBlockInfo 내에 있는 패킷이 모두 전송에 성공하게 되면, 패킷 버퍼(20)로부터 해당 SDUBlockInfo에 대응하는 패킷들을 삭제하고, 데이터 버퍼(10)에서 해당 SDUBlockInfo를 제거한다. On the other hand, the data information management device 1 deletes the packets corresponding to the corresponding SDUBlockInfo from the packet buffer 20 when all packets in the SDUBlockInfo of the data buffer 10 succeed in transmission, and in the data buffer 10 Remove the corresponding SDUBlockInfo.

도 7은 본 개시의 실시 예에 따른 데이터 버퍼의 삭제 처리 과정을 나타낸 예시도이다. 7 is an exemplary diagram illustrating a process of deleting a data buffer according to an embodiment of the present disclosure.

예를 들어, 도 7에 예시된 바와 같이, 도 2와 같은 구조의 데이터 버퍼(10)에서, SDUBlockInfo(U1)에 대응하는 패킷이 모두 전송에 성공한 것으로 확인되면, SDUBlockInfo(U1)를 삭제한다. 이에 따라, 데이터 버퍼(10)의 헤드(head)가 SDUBlockInfo(U2)로 변경된다. For example, as illustrated in FIG. 7, in the data buffer 10 having the same structure as in FIG. 2, when it is confirmed that all packets corresponding to SDUBlockInfo(U1) have been successfully transmitted, SDUBlockInfo(U1) is deleted. Accordingly, the head of the data buffer 10 is changed to SDUBlockInfo (U2).

위에서 살펴본 바와 같이, 고속 데이터 스트림의 경우, Status PDU를 수신하였을 때 처리해야 하는 패킷의 개수가 수천 내지 수만개일 수 있다. 이런 경우, ACK와 NACK의 발생 패턴이 블록(block) 형태(연속적인 ACK 패킷들 또는 연속적인 NACK 패킷들)로 나타나기 쉽고, 일반적으로 채널 상태에 따른 적응적 전송 기술을 사용하기 때문에 NACK에 비해 ACK의 블록 크기가 크고 빈도도 높다. 따라서, 본 개시의 실시 예에 따라, ACK로 식별되는 패킷들이 연속되는 패킷들인 경우에는 SDUBlockInfo 내 FB mask 필드를 한번 업데이트하는 것에 의해 처리가 종료됨으로써, SDUBlockInfo 내 SDUInfo 어레이(도 4의 어레이 참조)의 크기가 충분히 크면 처리 시간을 그에 비례해서 감소시킬 수 있다. 또한 NACK로 식별되는 패킷의 SDUInfo를 보다 빠르게 찾을 수 있으므로, 고속 데이터 재전송이 수행될 수 있다. As described above, in the case of a high-speed data stream, the number of packets to be processed when a Status PDU is received may range from thousands to tens of thousands. In this case, since the pattern of ACK and NACK occurrence tends to appear in the form of a block (consecutive ACK packets or consecutive NACK packets), and an adaptive transmission technique according to the channel condition is generally used, ACK is more efficient than NACK. The block size is large and the frequency is high. Therefore, according to an embodiment of the present disclosure, when the packets identified by ACK are consecutive packets, the process is terminated by updating the FB mask field in SDUBlockInfo once, thereby If the size is large enough, processing time can be reduced proportionally. In addition, since SDUInfo of a packet identified as NACK can be found more quickly, high-speed data retransmission can be performed.

그럼에도 불구하고 NACK의 빈도도 높은 경우에는, Status PDU 정보를 저장해 두었다가 다음 슬롯의 전송을 완료하고 나머지 NACK 패킷을 처리하여 부하를 제어할 수 있다. 이때, 처음 시작되는 Status PDU의 식별자와 Status PDU에서 마지막으로 몇번째 NACK 엘리먼트(IE)를 처리하였는지의 인덱스를 저장하여 부하 제어를 수행할 수 있다. Nevertheless, if the NACK frequency is also high, the load can be controlled by storing Status PDU information, completing transmission of the next slot, and processing the remaining NACK packets. At this time, load control can be performed by storing the identifier of the first Status PDU and the index of the last NACK element (IE) processed in the Status PDU.

이러한 본 개시의 실시 예에는 무선 접속 시스템 L2 프로토콜 구현 시에 적용되어, 데이터 버퍼 구조 및 ARQ 동작 처리 과정의 효율적인 방법을 제공하여 고속데이터 서비스를 가능하게 할 수 있다. This embodiment of the present disclosure is applied when implementing the L2 protocol in a wireless access system, and provides an efficient method for processing a data buffer structure and an ARQ operation, thereby enabling high-speed data service.

도 8은 본 개시의 실시 예에 따른 방법을 구현하기 위한 컴퓨팅 장치를 설명하기 위한 구조도이다. 8 is a structural diagram illustrating a computing device for implementing a method according to an embodiment of the present disclosure.

첨부한 도 8에 도시되어 있듯이, 본 개시의 일 실시 예에 따른 방법(데이터 정보 관리 방법)은 컴퓨팅 장치(100)를 이용하여 구현될 수 있다. As illustrated in FIG. 8 , the method (data information management method) according to an embodiment of the present disclosure may be implemented using the computing device 100 .

컴퓨팅 장치(100)는 프로세서(110), 메모리(120), 입력 인터페이스 장치(130), 출력 인터페이스 장치(140), 저장 장치(150) 및 네트워크 인터페이스 장치(160) 중 적어도 하나를 포함할 수 있다. 각각의 구성 요소들은 버스(bus)(170)에 의해 연결되어 서로 통신을 수행할 수 있다. 또한, 각각의 구성 요소들은 공통 버스(170)가 아니라, 프로세서(110)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다.The computing device 100 may include at least one of a processor 110, a memory 120, an input interface device 130, an output interface device 140, a storage device 150, and a network interface device 160. . Each component may be connected by a bus 170 to communicate with each other. In addition, each of the components may be connected through individual interfaces or individual buses centering on the processor 110 instead of the common bus 170 .

프로세서(110)는 AP(Application Processor), CPU(Central Processing Unit), GPU(Graphic Processing Unit) 등과 같은 다양한 종류들로 구현될 수 있으며, 메모리(120) 또는 저장 장치(150)에 저장된 명령을 실행하는 임의의 반도체 장치일 수 있다. 프로세서(110)는 메모리(120) 및 저장 장치(150) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 이러한 프로세서(110)는 위의 도 1 내지 도 7을 토대로 설명한 기능 및 방법들을 구현하도록 구성될 수 있다. 예를 들어, 프로세서(110)는 정보 처리부의 기능을 수행하도록 구현될 수 있다. The processor 110 may be implemented in various types such as an application processor (AP), a central processing unit (CPU), a graphic processing unit (GPU), and the like, and executes commands stored in the memory 120 or the storage device 150. It may be any semiconductor device that The processor 110 may execute a program command stored in at least one of the memory 120 and the storage device 150 . Such a processor 110 may be configured to implement the functions and methods described above based on FIGS. 1 to 7 . For example, the processor 110 may be implemented to perform the function of an information processing unit.

메모리(120) 및 저장 장치(150)는 다양한 형태의 휘발성 또는 비 휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(read-only memory)(121) 및 RAM(random access memory)(122)를 포함할 수 있다. 본 개시의 실시 예에서 메모리(120)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 메모리(120)는 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다. 메모리(120) 및/또는 저장 장치(150)는 일 구현 예로, 데이터 버퍼, 패킷 버퍼의 기능을 수행하도록 구성될 수 있다. The memory 120 and the storage device 150 may include various types of volatile or non-volatile storage media. For example, the memory may include read-only memory (ROM) 121 and random access memory (RAM) 122 . In an embodiment of the present disclosure, the memory 120 may be located inside or outside the processor 110, and the memory 120 may be connected to the processor 110 through various known means. The memory 120 and/or the storage device 150 may be configured to perform functions of a data buffer and a packet buffer, as an example of implementation.

입력 인터페이스 장치(130)는 데이터를 프로세서(110)로 제공하도록 구성되며, 출력 인터페이스 장치(140)는 프로세서(110)로부터의 데이터를 출력하도록 구성된다. Input interface device 130 is configured to provide data to processor 110 , and output interface device 140 is configured to output data from processor 110 .

네트워크 인터페이스 장치(160)는 유선 네트워크 또는 무선 네트워크를 통해 다른 디바이스와 신호를 전송 또는 수신할 수 있다. 예를 들어, 네트워크 인터페이스 장치(160)는 송신 처리부 및 피드백 수신 처리부의 기능을 수행하도록 구성될 수 있다. The network interface device 160 may transmit or receive signals with other devices through a wired network or a wireless network. For example, the network interface device 160 may be configured to perform functions of a transmission processing unit and a feedback reception processing unit.

입력 인터페이스 장치(130), 출력 인터페이스 장치(140) 및 네트워크 인터페이스 장치(160)를 포괄하여 “인터페이스 장치”라고도 명명할 수 있다. The input interface device 130 , the output interface device 140 , and the network interface device 160 may be collectively referred to as “interface devices”.

이러한 구조로 이루어지는 컴퓨팅 장치(100)는 데이터 정보 관리 장치로 명명되어, 본 개시의 일 실시 예에 따른 위의 방법들을 구현할 수 있다. The computing device 100 having such a structure is called a data information management device and can implement the above methods according to an embodiment of the present disclosure.

또한, 본 개시의 일 실시 예에 따른 방법 중 적어도 일부는 컴퓨팅 장치(100)에서 실행되는 프로그램 또는 소프트웨어로 구현될 수 있고, 프로그램 또는 소프트웨어는 컴퓨터로 판독 가능한 매체에 저장될 수 있다.In addition, at least some of the methods according to an embodiment of the present disclosure may be implemented as a program or software executed on the computing device 100, and the program or software may be stored in a computer-readable medium.

또한, 본 개시의 일 실시 예에 따른 방법 중 적어도 일부는 컴퓨팅 장치(100)와 전기적으로 접속될 수 있는 하드웨어로 구현될 수도 있다.In addition, at least some of the methods according to an embodiment of the present disclosure may be implemented as hardware that can be electrically connected to the computing device 100 .

본 개시의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 개시의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 개시가 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.Embodiments of the present disclosure are not implemented only through the devices and/or methods described above, and may be implemented through a program for realizing functions corresponding to the configuration of the embodiments of the present disclosure, a recording medium on which the program is recorded, and the like. Also, such an implementation can be easily implemented by an expert in the art to which the present disclosure belongs based on the description of the above-described embodiment.

이상에서 본 개시의 실시 예에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속하는 것이다.Although the embodiments of the present disclosure have been described in detail above, the scope of the present disclosure is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present disclosure defined in the following claims are also included in the present disclosure. that fall within the scope of the right.

Claims (20)

데이터 정보 관리 방법으로서,
관리 장치가, 전송해야 할 패킷이 도착되면, 상기 패킷의 정보를 데이터 버퍼에 저장하는 단계 - 상기 데이터 버퍼는 적어도 하나의 패킷 블록 정보 유닛을 포함하고, 상기 패킷 블록 정보 유닛을 노드로 갖는 링크드 리스트 형태로 이루어지며, 상기 패킷 블록 정보 유닛은 복수의 엘리먼트를 포함함 -;
상기 관리 장치가, 상기 패킷이 전송된 후 수신측으로부터 피드백 메시지가 수신되면, 상기 피드백 메시지로부터 패킷의 전송 성공 여부를 확인하는 단계; 및
전송 성공으로 확인되는 패킷에 대해, 상기 데이터 버퍼에 저장된 상기 패킷의 정보를 업데이트하는 단계
를 포함하는 관리 방법.
As a data information management method,
When a packet to be transmitted arrives, by a management device, storing information of the packet in a data buffer, wherein the data buffer includes at least one packet block information unit, and a linked list having the packet block information unit as a node It is made in the form, wherein the packet block information unit includes a plurality of elements;
checking, by the management device, whether the transmission of the packet is successful from the feedback message when a feedback message is received from a receiving side after the packet is transmitted; and
Updating information of the packet stored in the data buffer for the packet confirmed as successful transmission.
A management method comprising a.
제1항에 있어서
상기 데이터 버퍼에 저장하는 단계는
상기 데이터 버퍼의 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트의 개수를 확인하는 단계; 및
상기 비어 있는 엘리먼트의 개수가 0이 아닌 경우에, 상기 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트들 중에서 가장 낮은 인덱스를 갖는 엘리먼트에, 상기 패킷의 정보를 저장하는 단계
를 포함하는, 관리 방법.
According to claim 1
Storing the data in the buffer
checking the number of empty elements of the last packet block information unit of the data buffer; and
If the number of empty elements is not 0, storing information of the packet in an element having the lowest index among empty elements of the last packet block information unit.
Including, management method.
제2항에 있어서
상기 데이터 버퍼에 저장하는 단계는,
상기 비어 있는 엘리먼트의 개수가 0인 경우에, 신규 패킷 블록 정보 유닛을 생성하고, 상기 마지막 패킷 블록 정보 유닛에 상기 신규 패킷 블록 정보 유닛을 링크드시키는 단계; 및
상기 신규 패킷 블록 정보 유닛의 엘리먼트들 중에서 가장 낮은 인덱스를 갖는 엘리먼트에, 상기 패킷의 정보를 저장하는 단계
를 더 포함하는, 관리 방법.
According to claim 2
The step of storing in the data buffer,
if the number of empty elements is 0, generating a new packet block information unit and linking the new packet block information unit to the last packet block information unit; and
storing information of the packet in an element having the lowest index among elements of the new packet block information unit;
Further comprising a, management method.
제1항에 있어서
상기 데이터 버퍼는 복수의 비트를 포함하는 마스크 필드를 포함하고, 상기 마스크 필드의 각 비트는 대응하는 위치에 정보가 저장된 패킷의 전송 성공 여부를 지시하는 전송 상태 정보를 나타내는, 관리 방법.
According to claim 1
The data buffer includes a mask field including a plurality of bits, and each bit of the mask field indicates transmission status information indicating whether transmission success of a packet storing information in a corresponding location is successful.
제4항에 있어서
상기 패킷의 정보를 업데이트하는 단계는,
상기 데이터 버퍼의 마스크 필드에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 업데이트하는 단계
를 포함하는, 관리 방법.
According to claim 4
Updating the information of the packet,
In the mask field of the data buffer, updating a value of a bit corresponding to the packet confirmed as successful transmission.
Including, management method.
제5항에 있어서
상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 업데이트하는 단계에서,
상기 전송 성공으로 확인되는 패킷이 둘 이상의 연속된 패킷인 경우, 상기 마스크 필드에서 상기 전송 성공으로 확인되는 연속된 패킷들에 대응하는 비트들의 값을 업데이트하는 과정을 통해, 상기 연속된 패킷들의 정보가 별도의 검색 과정 없이, 한번에 업데이트되는, 관리 방법.
According to claim 5
In the step of updating the value of the bit corresponding to the packet confirmed by the transmission success,
When the packets identified as successful transmission are two or more consecutive packets, information on the consecutive packets is obtained through a process of updating the values of bits corresponding to the consecutive packets identified as successful transmission in the mask field. A management method that is updated at once, without a separate search process.
제4항에 있어서
상기 데이터 버퍼의 마스크 필드의 각 비트는 기본적으로 해당 패킷이 전송 실패한 것을 나타내는 제1 값으로 기록되고,
상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 업데이트하는 단계는,
상기 마스크 필드에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 제1 값을, 해당 패킷이 전송 성공한 것을 나타내는 제2 값으로 업데이트하는 단계
를 포함하는, 관리 방법.
According to claim 4
Each bit of the mask field of the data buffer is basically recorded as a first value indicating that the transmission of the corresponding packet has failed,
Updating the value of the bit corresponding to the packet confirmed as successful transmission,
In the mask field, updating a first value of a bit corresponding to the packet confirmed as successful transmission to a second value indicating that the corresponding packet is successfully transmitted.
Including, management method.
제1항에 있어서
상기 패킷의 전송 성공 여부를 확인하는 단계 이후에,
전송 실패로 확인되는 패킷에 대해서, 기준 인덱스를 계산하는 단계;
상기 데이터 버퍼의 패킷 블록 정보 유닛의 엘리먼트들 중에서 상기 기준 인덱스를 가지는 엘리먼트부터 검색하여, 상기 전송 실패로 확인되는 패킷의 정보를 획득하는 단계
를 더 포함하는 관리 방법.
According to claim 1
After the step of checking whether the transmission of the packet was successful,
Calculating a reference index for packets identified as transmission failures;
Searching for the element having the reference index among the elements of the packet block information unit of the data buffer to obtain information of the packet identified as the transmission failure.
A management method further comprising a.
제8항에 있어서
상기 데이터 버퍼는 최초 전송이 이루어진 패킷에 대한 정보를 포함하는 최초 전송 정보 필드 및 마지막 전송이 이루어진 패킷에 대한 정보를 포함하는 마지막 전송 정보 필드를 포함하며,
상기 최초 전송 정보 필드는 상기 최초 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 시작 인덱스, 상기 최초 전송이 이루어진 패킷의 시퀀스 번호인 시작 시퀀스 번호를 포함하고,
상기 마지막 정보 전송 필드는 상기 마지막 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 종료 인덱스, 상기 마지막 전송이 이루어진 패킷의 시퀀스 번호인 종료 시퀀스 번호를 포함하는, 관리 방법.
According to claim 8
The data buffer includes a first transmission information field containing information on a first transmitted packet and a last transmission information field including information on a last transmitted packet,
The first transmission information field includes a start index, which is an index of an element in which the initially transmitted packet is stored, and a start sequence number, which is a sequence number of the first transmitted packet;
The last information transmission field includes an end index, which is an index of an element in which the last transmitted packet is stored, and an end sequence number, which is a sequence number of the last transmitted packet.
제9항에 있어서
상기 기준 인덱스는 상기 전송 실패로 확인되는 패킷의 시퀀스 번호에서 상기 시작 시퀀스 번호를 감산한 값인, 관리 방법.
According to claim 9
The reference index is a value obtained by subtracting the starting sequence number from the sequence number of the packet identified as the transmission failure.
제9항에 있어서
상기 기준 인덱스를 계산하는 단계는,
상기 전송 실패로 확인되는 패킷의 시퀀스 번호가 상기 시작 인덱스와 상기 종료 시퀀스 번호 사이의 값인 경우에, 상기 기준 인덱스를 계산하는, 관리 방법.
According to claim 9
Calculating the reference index,
The management method of calculating the reference index when the sequence number of the packet identified as the transmission failure is a value between the start index and the end sequence number.
제8항에 있어서
상기 전송 실패로 확인되는 패킷의 정보를 기반으로, 상기 전송 실패로 확인된 패킷의 재전송이 수행되는 단계
를 더 포함하며,
상기 패킷의 정보는 패킷이 저장되어 있는 메모리 주소, 패킷의 정보가 저장되어 있는 메모리 주소를 포함하며, 상기 패킷의 정보는 선태적으로, 패킷의 도착 시간, 패킷의 길이, 패킷의 시퀀스 번호, 패킷의 전송 상태 정보, 정보가 저장된 엘리먼트의 인덱스 중 적어도 하나를 더 포함하는, 관리 방법.
According to claim 8
Performing retransmission of the packet identified as transmission failure based on information on the packet identified as transmission failure
Including more,
The information of the packet includes a memory address where the packet is stored and a memory address where the packet information is stored. Optionally, the information of the packet includes the arrival time of the packet, the length of the packet, the sequence number of the packet, and the packet information. Further comprising at least one of transmission state information of and an index of an element in which information is stored, the management method.
데이터 정보 관리 장치로서,
전송해야 할 패킷이 저장된 패킷 버퍼;
패킷의 정보를 저장하는 데이터 버퍼 - 상기 데이터 버퍼는 적어도 하나의 패킷 블록 정보 유닛을 포함하고, 상기 패킷 블록 정보 유닛을 노드로 갖는 링크드 리스트 형태로 이루어지며, 상기 패킷 블록 정보 유닛은 복수의 엘리먼트를 포함함 -;
전송된 패킷에 대해 수신측으로부터 피드백 메시지를 수신하도록 구성된 피드백 수신 처리부; 및
상기 패킷 버퍼에 전송해야 할 패킷이 도착되면, 상기 패킷의 정보를 데이터 버퍼에 저장하고, 상기 피드백 메시지로부터 패킷의 전송 성공 여부를 확인하고, 전송 성공으로 확인되는 패킷에 대해, 상기 데이터 버퍼에 저장된 상기 패킷의 정보를 업데이트하도록 구성된 정보 처리부
를 포함하는 관리 장치.
As a data information management device,
A packet buffer in which packets to be transmitted are stored;
A data buffer for storing packet information - the data buffer includes at least one packet block information unit, and is formed in the form of a linked list having the packet block information unit as a node, wherein the packet block information unit includes a plurality of elements contains -;
a feedback receiving processing unit configured to receive a feedback message from a receiving side for the transmitted packet; and
When a packet to be transmitted arrives in the packet buffer, information on the packet is stored in the data buffer, whether or not packet transmission is successful is checked from the feedback message, and for packets confirmed as transmission success, stored in the data buffer Information processing unit configured to update information of the packet
A management device comprising a.
제13항에 있어서
상기 정보 처리부는 구체적으로,
상기 패킷의 정보를 데이터 버퍼에 저장하는 동작 수행시,
상기 데이터 버퍼의 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트의 개수를 확인하고;
상기 비어 있는 엘리먼트의 개수가 0이 아닌 경우에, 상기 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트들 중에서 가장 낮은 인덱스를 갖는 엘리먼트에, 상기 패킷의 정보를 저장하며;
상기 비어 있는 엘리먼트의 개수가 0인 경우에, 신규 패킷 블록 정보 유닛을 생성하고, 상기 데이터 버퍼의 상기 마지막 패킷 블록 정보 유닛에 상기 신규 패킷 블록 정보 유닛을 링크드시키고; 그리고
상기 신규 패킷 블록 정보 유닛의 엘리먼트들 중에서 가장 낮은 인덱스를 갖는 엘리먼트에, 상기 패킷의 정보를 저장하도록 구성되는, 관리 장치.
According to claim 13
The information processing unit specifically,
When performing the operation of storing the information of the packet in the data buffer,
check the number of empty elements of the last packet block information unit of the data buffer;
if the number of empty elements is not 0, store information of the packet in an element having the lowest index among empty elements of the last packet block information unit;
if the number of empty elements is 0, create a new packet block information unit, and link the new packet block information unit to the last packet block information unit in the data buffer; and
and store information of the packet in an element having a lowest index among elements of the new packet block information unit.
제13항에 있어서
상기 데이터 버퍼는 복수의 비트를 포함하는 마스크 필드를 포함하고, 상기 마스크 필드의 각 비트는 대응하는 위치에 정보가 저장된 패킷의 전송 성공 여부를 지시하는 전송 상태 정보를 나타내는, 관리 장치.
According to claim 13
The data buffer includes a mask field including a plurality of bits, and each bit of the mask field indicates transmission status information indicating whether transmission success of a packet in which information is stored in a corresponding location is successful.
제15항에 있어서
상기 데이터 버퍼는 최초 전송이 이루어진 패킷에 대한 정보를 포함하는 최초 전송 정보 필드 및 마지막 전송이 이루어진 패킷에 대한 정보를 포함하는 마지막 전송 정보 필드를 포함하며,
상기 최초 전송 정보 필드는 상기 최초 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 시작 인덱스, 상기 최초 전송이 이루어진 패킷의 시퀀스 번호인 시작 시퀀스 번호를 포함하고,
상기 마지막 정보 전송 필드는 상기 마지막 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 종료 인덱스, 상기 마지막 전송이 이루어진 패킷의 시퀀스 번호인 종료 시퀀스 번호를 포함하는, 관리 장치.
According to claim 15
The data buffer includes a first transmission information field containing information on a first transmitted packet and a last transmission information field including information on a last transmitted packet,
The first transmission information field includes a start index, which is an index of an element in which the initially transmitted packet is stored, and a start sequence number, which is a sequence number of the first transmitted packet;
The last information transmission field includes an end index, which is an index of an element in which the last transmitted packet is stored, and an end sequence number, which is a sequence number of the last transmitted packet.
제15항에 있어서,
상기 데이터 버퍼는 상기 패킷 블록 정보 유닛의 엘리먼트 중에서 비어 있는 엘리먼트 중 가장 작은 인덱스를 포함하는 비어 있는 인덱스 필드 및 상기 비어 있는 엘리먼트들의 개수를 포함하는 비어 있는 개수 필드를 더 포함하는, 관리 장치.
According to claim 15,
wherein the data buffer further comprises an empty index field containing a smallest index of empty elements among elements of the packet block information unit and an empty number field containing the number of the empty elements.
제15항에 있어서
상기 정보 처리부는 상기 패킷의 정보를 업데이트하는 동작 수행시,
상기 데이터 버퍼의 마스크 필드에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 제1 값에서, 해당 패킷이 전송 성공한 것을 나타내는 제2 값으로 업데이트하도록 구성되며,
상기 전송 성공으로 확인되는 패킷이 둘 이상의 연속된 패킷인 경우, 상기 마스크 필드에서 상기 전송 성공으로 확인되는 연속된 패킷들에 대응하는 비트들의 값을 업데이트하는 과정을 통해, 상기 연속된 패킷들의 정보가 별도의 검색 과정 없이, 한번에 업데이트되는, 관리 장치.
According to claim 15
When the information processing unit performs an operation of updating information of the packet,
In the mask field of the data buffer, the value of the bit corresponding to the packet confirmed as successful transmission is configured to update from a first value to a second value indicating that the corresponding packet is successfully transmitted,
When the packets identified as successful transmission are two or more consecutive packets, information on the consecutive packets is obtained through a process of updating the values of bits corresponding to the consecutive packets identified as successful transmission in the mask field. A management device that is updated at once without a separate search process.
제16항에 있어서
상기 정보 처리부는 추가로, 전송 실패로 확인되는 패킷에 대해서, 기준 인덱스를 계산하고, 상기 데이터 버퍼의 패킷 블록 정보 유닛의 각 엘리먼트들 중에서 상기 기준 인덱스를 가지는 엘리먼트부터 검색하여, 상기 전송 실패로 확인되는 패킷의 정보를 획득하도록 구성되는, 관리 장치.
According to claim 16
The information processing unit further calculates a reference index for a packet identified as transmission failure, searches for an element having the reference index among elements of a packet block information unit of the data buffer, and identifies the transmission failure. A management device, configured to obtain information of a packet to be configured.
제19항에 있어서
상기 전송 실패로 확인되는 패킷의 정보를 기반으로, 상기 전송 실패로 확인된 패킷의 재전송을 수행하도록 구성되는 송신 처리부
를 더 포함하고,
상기 기준 인덱스는 상기 전송 실패로 확인되는 패킷의 시퀀스 번호에서 상기 시작 시퀀스 번호를 감산한 값인, 관리 장치.











According to claim 19
A transmission processing unit configured to retransmit the packet identified as transmission failure based on information on the packet identified as transmission failure.
Including more,
The reference index is a value obtained by subtracting the starting sequence number from the sequence number of the packet identified as the transmission failure.











KR1020220125314A 2021-10-01 2022-09-30 Method and apparatus for managing data information for fast data retransmission KR20230047926A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210131166 2021-10-01
KR1020210131166 2021-10-01

Publications (1)

Publication Number Publication Date
KR20230047926A true KR20230047926A (en) 2023-04-10

Family

ID=85984532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220125314A KR20230047926A (en) 2021-10-01 2022-09-30 Method and apparatus for managing data information for fast data retransmission

Country Status (1)

Country Link
KR (1) KR20230047926A (en)

Similar Documents

Publication Publication Date Title
JP4160642B2 (en) Network data transfer method
US7487424B2 (en) Bitmap manager, method of allocating a bitmap memory, method of generating an acknowledgement between network entities, and network entity implementing the same
KR100772528B1 (en) Method and apparatus for efficient packet retransmission in wired/wireless network
US20060245430A1 (en) Method and Apparatus of a Procedure for Receiving Window Size Reconfiguration in a Communication System
US20050152350A1 (en) System and method for transmitting/receiving automatic repeat request
TWI646814B (en) Data transmission method and related equipment
CN104104479A (en) Method and apparatus to transmit and/or receive data via wireless network and wireless device
US10461886B2 (en) Transport layer identifying failure cause and mitigation for deterministic transport across multiple deterministic data links
EP3941007A1 (en) Content addressable memory (cam) based hardware architecture for datacenter networking
US20120063463A1 (en) Packet aligning apparatus and packet aligning method
EP2190240B1 (en) Method and system for transmit data blocking in a wireless communications network
KR20230047926A (en) Method and apparatus for managing data information for fast data retransmission
CN114499777B (en) Data transmission method for cluster unmanned system
EP3672189B1 (en) Data transmission method, device and system
KR100612654B1 (en) Apparatus and method for generating frame for automatic repeat request
CN111756645B (en) Ad hoc network elastic transmission control method based on block chain security attribute
JP2778618B2 (en) Transmission control method
EP4271081A1 (en) Transmission station and reception station
WO2022144961A1 (en) Transmitting station and receiving station
CN107888341B (en) Data transmission method and device
US11722253B2 (en) Data packet transmission method and device, storage medium and terminal
US20230112796A1 (en) Method and apparatus of reporting automatic repeat request status in a communication system
US20220382783A1 (en) High Bandwidth Content Addressable Memory (CAM) Based Hardware Architecture For Datacenter Networking
CN110881008B (en) Method for synchronously forwarding database
CN112235826A (en) Data deleting and synchronizing method, transmitting and receiving terminal, electronic device and storage medium