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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000005540 biological transmission Effects 0.000 claims abstract description 120
- 238000007726 management method Methods 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 29
- 230000010365 information processing Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000003491 array Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
- H04L1/1628—List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
Abstract
Description
본 개시는 데이터 정보 관리 방법에 관한 것으로, 더욱 상세하게 말하자면, 고속의 데이터 재전송을 위한 데이터 정보 관리 방법 및 장치에 관한 것이다. 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
본 개시의 데이터 버퍼(10)는 패킷 블록 정보 유닛(U) 즉, SDUBlockInfo를 노드로 갖는 링크드 리스트이다. 구체적으로, 데이터 버퍼(10)는 복수의 SDUBlockInfo를 포함하며, 각각의 SDUBlockInfo가 하나의 노드로 기능하면서 이들 SDUBlockInfo들이 순차적으로 연결된 링크드 리스트이다. 도 2에서는 데이터 버퍼(10)가 3개의 SDUBlockInfo(3개의 SDUInfo 어레이)(U1~U3)를 포함하는 링크드 리스트 형태로 구현되고, 각 SDUBlockInfo를 구성하는 SDUInfo 어레이가 5개의 엘리먼트를 포함하는 것을 예로 들었으며, 본 개시는 이에 한정되지 않는다. The
한편, 패킷 블록 정보 유닛인 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
도 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
데이터 버퍼(10)는 위에 기술된 바와 같이, SDUBlockInfo를 노드로 갖는 링크드 리스트이며, 패킷의 정보를 저장하도록 구성된다. The
패킷 버퍼(20)는 전송하고자 하는 패킷이 저장되는 버퍼이다. The
정보 처리부(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
송신 처리부(40)는 패킷의 전송 처리를 수행하도록 구성되며, 또한 패킷의 재전송 처리를 수행하도록 구성된다. The
피드백 수신 처리부(50)는 전송된 패킷에 대한 피드백 메시지를 수신측으로부터 수신하도록 구성된다. 피드백 메시지는 도 1에 도시된 바와 같은 포맷으로 구성될 수 있다. The feedback receiving
이러한 구조로 이루어지는 데이터 정보 관리 장치를 기반으로, 본 개시의 실시 예에 따른 데이터 정보 관리 방법에 대해 설명한다. 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
먼저, 도 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
구체적으로, 데이터 정보 관리 장치(1)는 데이터 버퍼(10)의 가장 마지막 노드의 비어 있는 엘리먼트의 개수를 확인한다(S110). 예를 들어, 도 2의 데이터 버퍼(10)에서 가장 마지막 노드인 SDUBlockInfo(U3)의 필드 중에서 Empty num 필드를 확인하여, SDUBlockInfo(U3)의 비어 있는 엘리먼트의 개수를 확인한다. Specifically, the data
가장 마지막 노드인 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
이와 같이, 전송해야 할 패킷의 정보를 데이터 버퍼(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
한편, 단계(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
이러한 단계들을 통해, 전송해야 할 패킷의 정보를 데이터 버퍼(10)에 저장 및 관리한다. Through these steps, the information of the packet to be transmitted is stored and managed in the
다음에는 도 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
수신측으로부터 피드백 메시지 즉, 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
패킷의 전송 성공 여부를 확인한 후, 전송 성공으로 확인된 패킷의 상태 정보를 업데이트한다. 구체적으로, 해당 패킷이 저장된 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
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
이후, 데이터 정보 관리 장치(1)는 NACK로 식별되는 패킷의 SDUInfo의 정보를 기반으로 재전송 처리가 이루어지도록 한다(S400). 이를 위해, 정보 처리부(30)가 NACK로 식별되는 패킷의 SDUInfo의 정보(예를 들어, 패킷이 저장되어 있는 실제 메모리 주소)를 송신 처리부(40)로 전달하고, 송신 처리부(40)는 패킷 버퍼(20)에 해당 메모리 주소에 저장된 패킷에 대한 재전송 처리를 수행한다. Thereafter, the data
반면, 단계(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
한편, 데이터 정보 관리 장치(1)는 데이터 버퍼(10)의 SDUBlockInfo 내에 있는 패킷이 모두 전송에 성공하게 되면, 패킷 버퍼(20)로부터 해당 SDUBlockInfo에 대응하는 패킷들을 삭제하고, 데이터 버퍼(10)에서 해당 SDUBlockInfo를 제거한다. On the other hand, the data
도 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
위에서 살펴본 바와 같이, 고속 데이터 스트림의 경우, 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
컴퓨팅 장치(100)는 프로세서(110), 메모리(120), 입력 인터페이스 장치(130), 출력 인터페이스 장치(140), 저장 장치(150) 및 네트워크 인터페이스 장치(160) 중 적어도 하나를 포함할 수 있다. 각각의 구성 요소들은 버스(bus)(170)에 의해 연결되어 서로 통신을 수행할 수 있다. 또한, 각각의 구성 요소들은 공통 버스(170)가 아니라, 프로세서(110)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다.The
프로세서(110)는 AP(Application Processor), CPU(Central Processing Unit), GPU(Graphic Processing Unit) 등과 같은 다양한 종류들로 구현될 수 있으며, 메모리(120) 또는 저장 장치(150)에 저장된 명령을 실행하는 임의의 반도체 장치일 수 있다. 프로세서(110)는 메모리(120) 및 저장 장치(150) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 이러한 프로세서(110)는 위의 도 1 내지 도 7을 토대로 설명한 기능 및 방법들을 구현하도록 구성될 수 있다. 예를 들어, 프로세서(110)는 정보 처리부의 기능을 수행하도록 구현될 수 있다. The
메모리(120) 및 저장 장치(150)는 다양한 형태의 휘발성 또는 비 휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(read-only memory)(121) 및 RAM(random access memory)(122)를 포함할 수 있다. 본 개시의 실시 예에서 메모리(120)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 메모리(120)는 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다. 메모리(120) 및/또는 저장 장치(150)는 일 구현 예로, 데이터 버퍼, 패킷 버퍼의 기능을 수행하도록 구성될 수 있다. The
입력 인터페이스 장치(130)는 데이터를 프로세서(110)로 제공하도록 구성되며, 출력 인터페이스 장치(140)는 프로세서(110)로부터의 데이터를 출력하도록 구성된다.
네트워크 인터페이스 장치(160)는 유선 네트워크 또는 무선 네트워크를 통해 다른 디바이스와 신호를 전송 또는 수신할 수 있다. 예를 들어, 네트워크 인터페이스 장치(160)는 송신 처리부 및 피드백 수신 처리부의 기능을 수행하도록 구성될 수 있다. The
입력 인터페이스 장치(130), 출력 인터페이스 장치(140) 및 네트워크 인터페이스 장치(160)를 포괄하여 “인터페이스 장치”라고도 명명할 수 있다. The
이러한 구조로 이루어지는 컴퓨팅 장치(100)는 데이터 정보 관리 장치로 명명되어, 본 개시의 일 실시 예에 따른 위의 방법들을 구현할 수 있다. The
또한, 본 개시의 일 실시 예에 따른 방법 중 적어도 일부는 컴퓨팅 장치(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
또한, 본 개시의 일 실시 예에 따른 방법 중 적어도 일부는 컴퓨팅 장치(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
본 개시의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 개시의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 개시가 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.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.
상기 데이터 버퍼에 저장하는 단계는
상기 데이터 버퍼의 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트의 개수를 확인하는 단계; 및
상기 비어 있는 엘리먼트의 개수가 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.
상기 데이터 버퍼에 저장하는 단계는,
상기 비어 있는 엘리먼트의 개수가 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.
상기 데이터 버퍼는 복수의 비트를 포함하는 마스크 필드를 포함하고, 상기 마스크 필드의 각 비트는 대응하는 위치에 정보가 저장된 패킷의 전송 성공 여부를 지시하는 전송 상태 정보를 나타내는, 관리 방법.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.
상기 패킷의 정보를 업데이트하는 단계는,
상기 데이터 버퍼의 마스크 필드에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 업데이트하는 단계
를 포함하는, 관리 방법.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.
상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 업데이트하는 단계에서,
상기 전송 성공으로 확인되는 패킷이 둘 이상의 연속된 패킷인 경우, 상기 마스크 필드에서 상기 전송 성공으로 확인되는 연속된 패킷들에 대응하는 비트들의 값을 업데이트하는 과정을 통해, 상기 연속된 패킷들의 정보가 별도의 검색 과정 없이, 한번에 업데이트되는, 관리 방법.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.
상기 데이터 버퍼의 마스크 필드의 각 비트는 기본적으로 해당 패킷이 전송 실패한 것을 나타내는 제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.
상기 패킷의 전송 성공 여부를 확인하는 단계 이후에,
전송 실패로 확인되는 패킷에 대해서, 기준 인덱스를 계산하는 단계;
상기 데이터 버퍼의 패킷 블록 정보 유닛의 엘리먼트들 중에서 상기 기준 인덱스를 가지는 엘리먼트부터 검색하여, 상기 전송 실패로 확인되는 패킷의 정보를 획득하는 단계
를 더 포함하는 관리 방법.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.
상기 데이터 버퍼는 최초 전송이 이루어진 패킷에 대한 정보를 포함하는 최초 전송 정보 필드 및 마지막 전송이 이루어진 패킷에 대한 정보를 포함하는 마지막 전송 정보 필드를 포함하며,
상기 최초 전송 정보 필드는 상기 최초 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 시작 인덱스, 상기 최초 전송이 이루어진 패킷의 시퀀스 번호인 시작 시퀀스 번호를 포함하고,
상기 마지막 정보 전송 필드는 상기 마지막 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 종료 인덱스, 상기 마지막 전송이 이루어진 패킷의 시퀀스 번호인 종료 시퀀스 번호를 포함하는, 관리 방법.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.
상기 기준 인덱스는 상기 전송 실패로 확인되는 패킷의 시퀀스 번호에서 상기 시작 시퀀스 번호를 감산한 값인, 관리 방법.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.
상기 기준 인덱스를 계산하는 단계는,
상기 전송 실패로 확인되는 패킷의 시퀀스 번호가 상기 시작 인덱스와 상기 종료 시퀀스 번호 사이의 값인 경우에, 상기 기준 인덱스를 계산하는, 관리 방법.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.
상기 전송 실패로 확인되는 패킷의 정보를 기반으로, 상기 전송 실패로 확인된 패킷의 재전송이 수행되는 단계
를 더 포함하며,
상기 패킷의 정보는 패킷이 저장되어 있는 메모리 주소, 패킷의 정보가 저장되어 있는 메모리 주소를 포함하며, 상기 패킷의 정보는 선태적으로, 패킷의 도착 시간, 패킷의 길이, 패킷의 시퀀스 번호, 패킷의 전송 상태 정보, 정보가 저장된 엘리먼트의 인덱스 중 적어도 하나를 더 포함하는, 관리 방법.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.
상기 정보 처리부는 구체적으로,
상기 패킷의 정보를 데이터 버퍼에 저장하는 동작 수행시,
상기 데이터 버퍼의 마지막 패킷 블록 정보 유닛의 비어 있는 엘리먼트의 개수를 확인하고;
상기 비어 있는 엘리먼트의 개수가 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.
상기 데이터 버퍼는 복수의 비트를 포함하는 마스크 필드를 포함하고, 상기 마스크 필드의 각 비트는 대응하는 위치에 정보가 저장된 패킷의 전송 성공 여부를 지시하는 전송 상태 정보를 나타내는, 관리 장치.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.
상기 데이터 버퍼는 최초 전송이 이루어진 패킷에 대한 정보를 포함하는 최초 전송 정보 필드 및 마지막 전송이 이루어진 패킷에 대한 정보를 포함하는 마지막 전송 정보 필드를 포함하며,
상기 최초 전송 정보 필드는 상기 최초 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 시작 인덱스, 상기 최초 전송이 이루어진 패킷의 시퀀스 번호인 시작 시퀀스 번호를 포함하고,
상기 마지막 정보 전송 필드는 상기 마지막 전송이 이루어진 패킷이 저장된 엘리먼트의 인덱스인 종료 인덱스, 상기 마지막 전송이 이루어진 패킷의 시퀀스 번호인 종료 시퀀스 번호를 포함하는, 관리 장치.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.
상기 데이터 버퍼는 상기 패킷 블록 정보 유닛의 엘리먼트 중에서 비어 있는 엘리먼트 중 가장 작은 인덱스를 포함하는 비어 있는 인덱스 필드 및 상기 비어 있는 엘리먼트들의 개수를 포함하는 비어 있는 개수 필드를 더 포함하는, 관리 장치.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.
상기 정보 처리부는 상기 패킷의 정보를 업데이트하는 동작 수행시,
상기 데이터 버퍼의 마스크 필드에서, 상기 전송 성공으로 확인되는 패킷에 대응하는 비트의 값을 제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.
상기 정보 처리부는 추가로, 전송 실패로 확인되는 패킷에 대해서, 기준 인덱스를 계산하고, 상기 데이터 버퍼의 패킷 블록 정보 유닛의 각 엘리먼트들 중에서 상기 기준 인덱스를 가지는 엘리먼트부터 검색하여, 상기 전송 실패로 확인되는 패킷의 정보를 획득하도록 구성되는, 관리 장치.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.
상기 전송 실패로 확인되는 패킷의 정보를 기반으로, 상기 전송 실패로 확인된 패킷의 재전송을 수행하도록 구성되는 송신 처리부
를 더 포함하고,
상기 기준 인덱스는 상기 전송 실패로 확인되는 패킷의 시퀀스 번호에서 상기 시작 시퀀스 번호를 감산한 값인, 관리 장치.
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.
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) |
-
2022
- 2022-09-30 KR KR1020220125314A patent/KR20230047926A/en unknown
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 |