PDCP SDU reordering method and device

文档序号:1398608 发布日期:2020-03-03 浏览:6次 中文

阅读说明:本技术 一种pdcp sdu重排序方法和装置 (PDCP SDU reordering method and device ) 是由 万欢根 于 2018-08-22 设计创作,主要内容包括:本申请提供了一种PDCP SDU重排序方法和装置,该方法包括:将接收去PDCP头后得到的PDCP SDU存到缓存中时,当确定COUNT不等于RX_DELIV时,使用深度包检测技术对所述PDCP SDU所包含的IP系列头进行TCP协议头解析处理;若确定该PDCP SDU为TCP报文,且匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCP SDU向上层提交。该方法在出现乱序的时候,能够不依赖于COUNT的一直连续增长进行提交。(The application provides a PDCP SDU reordering method and a device, wherein the method comprises the following steps: when the PDCP SDU obtained after receiving the PDCP header is removed is stored in a cache, when the fact that the COUNT is not equal to RX _ DELIV is determined, a deep packet inspection technology is used for carrying out TCP protocol header analysis processing on an IP series header contained in the PDCP SDU; if the PDCP SDU is determined to be a TCP message and matched with the corresponding tuple information, determining whether a TCP SN in a header of the PDCP SDU is the same as a TCP NEXT SN corresponding to the tuple information, and if so, submitting the PDCP SDU to an upper layer; otherwise, the PDCP SDU is not submitted to an upper layer. The method can carry out submission without depending on the continuous increase of the COUNT when the disorder occurs.)

1. A packet data convergence protocol PDCP service data unit SDU reordering method is characterized in that the method comprises the following steps:

when the PDCP SDU obtained after the PDCP header is removed is stored in a cache, the COUNT corresponding to the PDCP SDU is determined;

comparing the sizes of COUNT and RX _ DELIV; wherein RX _ DELIV is the COUNT corresponding to the first PDCP SDU which is not yet submitted to the upper layer and is still waiting to be received due to the out-of-order COUNT value;

when the COUNT is determined not to be equal to the RX _ DELIV, performing Transmission Control Protocol (TCP) protocol header parsing processing on the PDCP SDU by using a deep packet inspection technology;

if the PDCP SDU is determined to be a TCP message, acquiring tuple information in the PDCP SDU, and matching in a stored binding relationship by using the tuple information; wherein, the binding relationship is the mapping relationship between tuple information and TCP NEXT serial number SN; the TCP NEXT SN is the TCP SN expected to be received currently;

when the corresponding tuple information is matched, determining whether a TCP SN in a header of the PDCP SDU is the same as a TCP NEXT SN corresponding to the tuple information, and if so, submitting the PDCP SDU to an upper layer; otherwise, the PDCP SDU is not submitted to an upper layer.

2. The method of claim 1, further comprising:

and when the corresponding tuple information is not matched or the PDCP SDU is determined not to be a TCP message, not submitting the PDCP SDU to an upper layer.

3. The method as claimed in claim 1, wherein when submitting the PDCP SDU to an upper layer, the method further comprises:

recording the COUNT carried by the PDCP SDU into a priority submission list;

when determining that the sum of 1 of the COUNT carried by the PDCP SDU submitted to the upper layer at present is the same as the minimum value in the priority submission list, deleting the minimum value in the priority submission list and a value continuously increasing from the minimum value; and updating RX _ DELIV to the deleted maximum in the priority commit list plus 1;

and when determining that the COUNT plus 1 carried by the PDCP SDU currently submitted to the upper layer is not the same as the minimum value in the priority submission list, updating RX _ DELIV to the COUNT plus 1.

4. The method of claim 1, wherein when it is determined that COUNT is not equal to RX _ DELIV, the method further comprises:

if the Reordering t-Reordering timer is determined not to be started currently, starting the t-Reordering timer; and updating RX _ REORD to COUNT plus 1;

stopping the t-Reordering timer if RX _ DELIV is not less than RX _ REORD while the t-Reordering timer is running;

when the t-Reordering timer is timed out, if the PDCP SDUs with the COUNT larger than the RX _ DELIV exist in the cache, the PDCP SDUs with the COUNT larger than the RX _ DELIV are submitted to an upper layer.

5. The method of claim 1, wherein when determining that the TCP SN in the header of the PDCP SDU is the same as the TCP NEXT SN corresponding to the tuple information, the method further comprises:

adding the TCP SN of the PDCP SDU and the load length of the TCP message corresponding to the PDCP SDU to obtain a TCP NEXTSN, and updating the TCP NEXT SN corresponding to the tuple information by using the calculated TCP NEXT SN;

and when the TCP SN in the header of the PDCP SDU is determined to be different from the TCP NEXT SN corresponding to the tuple information, not updating the TCP NEXT SN.

6. The method of claim 1, further comprising:

submitting the PDCP SDU to an upper layer when it is determined that COUNT is equal to RX _ DELIV;

carrying out TCP protocol head analysis processing on the PDCP SDU by using a DPI technology, if the PDCP SDU is determined to be a TCP message, acquiring tuple information in the PDCP SDU, and matching in a binding relation stored by using the tuple information;

when the corresponding tuple information is matched, adding the TCP SN of the PDCP SDU and the load length of the TCP message corresponding to the PDCP SDU to obtain a TCP NEXT SN, and updating the TCP NEXT SN corresponding to the tuple information by using the TCP NEXT SN obtained by calculation;

and when the corresponding tuple information is not matched, storing the binding relationship between the tuple information and the calculated TCP NEXT SN.

7. The method of claim 6, wherein when COUNT is equal to RX _ DELIV and it is determined that the pdcp sdu is submitted to an upper layer, the method further comprises:

determining whether the buffer memory has a PDCP SDU of which the COUNT is the COUNT plus 1 corresponding to the PDCP SDU submitted to an upper layer currently;

when the COUNT exists in the cache and is the PDCP SDU which is added with 1 by the COUNT corresponding to the PDCP SDU submitted to the upper layer currently, submitting the PDCP SDU in the cache to the upper layer; repeating the steps until no PDCP SDU with continuously increasing COUNT exists in the buffer;

when no PDCP SDU with continuously increasing COUNT corresponding to the PDCP SDU exists in the buffer memory, determining whether the value of the added 1 of the COUNT carried by the PDCP SDU submitted to the upper layer at present is the same as the minimum value in the priority submission list;

when determining that the sum of 1 of the COUNT carried by the PDCP SDU submitted to the upper layer at present is the same as the minimum value in the priority submission list, deleting the minimum value in the priority submission list and a value continuously increasing from the minimum value; and updating RX _ DELIV to the deleted maximum in the priority commit list plus 1;

and when determining that the COUNT plus 1 carried by the PDCP SDU currently submitted to the upper layer is not the same as the minimum value in the priority submission list, updating RX _ DELIV to the COUNT plus 1.

8. The method according to any one of claims 1-7, wherein the method further comprises:

when the COUNT is determined to be not less than the RX _ NEXT, updating the RX _ NEXT to the COUNT plus 1 corresponding to the PDCP SDU;

when it is determined that COUNT is less than RX _ NEXT, RX _ NEXT is not updated.

9. The method according to any one of claims 1-7, wherein the method further comprises:

when the COUNT is determined to be equal to RX _ DELIV, updating RX _ DELIV to the COUNT plus 1 corresponding to the PDCP SDU;

when it is determined that COUNT is not equal to RX _ DELIV, RX _ DELIV is not updated.

10. The method according to any one of claims 1 to 7,

when the determined TCP packet is a (initiate connection SYN, acknowledge ACK) packet, the tuple information includes: an internet protocol, IP, address and port number pair;

when the determined TCP packet is a (close connection FIN, ACK), (reset connection RST), (RST, ACK) packet, the tuple information includes: an IP address and port number pair;

when the determined TCP packet is a TCP packet carrying service data, the tuple information includes: IP address and port number pairs.

11. A packet data convergence protocol PDCP service data unit, SDU, reordering apparatus, comprising: the device comprises a cache unit, a determination unit, a comparison unit and a processing unit;

the buffer unit is used for storing the PDCP SDU obtained after the PDCP header is removed into a buffer;

the determining unit is configured to determine the COUNT corresponding to the PDCP SDU in the buffer unit;

the comparison unit is used for comparing the COUNT determined by the determination unit with the size of the recorded RX _ DELIV; wherein RX _ DELIV is the COUNT corresponding to the first PDCP SDU which is not yet submitted to the upper layer and is still waiting to be received due to the out-of-order COUNT value;

the processing unit is used for performing TCP header parsing processing on the PDCP SDU by using a deep packet inspection technology when the comparing unit determines that the COUNT is not equal to the RX _ DELIV; if the PDCP SDU is determined to be a transmission control protocol TCP message, acquiring tuple information in the PDCP SDU, and matching in a stored binding relationship by using the tuple information; wherein, the binding relationship is the mapping relationship between tuple information and TCP NEXT SN; wherein, the TCP NEXT SN is the TCP SN expected to be received currently; when the corresponding tuple information is matched, determining whether a TCP SN in a header of the PDCP SDU is the same as a TCP NEXT SN corresponding to the tuple information, and if so, submitting the PDCP SDU to an upper layer; otherwise, the PDCP SDU is not submitted to an upper layer.

12. The apparatus of claim 11,

the processing unit is further configured to submit the PDCP SDU to an upper layer when the comparing unit determines that COUNT is equal to RX _ DELIV; carrying out TCP protocol head analysis processing on the PDCP SDU by using a DPI technology, if the PDCP SDU is determined to be a TCP message, acquiring tuple information in the PDCP SDU, and matching in a binding relation stored by using the tuple information; when the corresponding tuple information is matched, adding the TCP SN of the PDCP SDU and the load length of the TCP message corresponding to the PDCP SDU to obtain a TCP NEXT SN, and updating the TCP NEXT SN corresponding to the tuple information by using the TCP NEXT SN obtained by calculation; and when the corresponding tuple information is not matched, storing the binding relationship between the tuple information and the calculated TCP NEXTSN.

Technical Field

The present invention relates to the field of communications technologies, and in particular, to a method and an apparatus for reordering Service Data Units (SDUs) in a Packet Data Convergence Protocol (PDCP).

Background

For the user plane, the major services and functions of the PDCP layer are as follows:

maintaining PDCP SN number;

header compression and decompression: only ROHC is supported;

forwarding user data;

reordering and repeat checking;

PDCP SDU retransmission;

encryption, decryption, and integrity protection;

PDCP SDU discarding;

PDCP re-establishment and RLC AM data recovery.

The 5G NR air interface user plane L2 protocol comprises SDAP, PDCP, RLC and MAC protocols; in the PDCP protocol, a PDCP sending entity maintains a PDCP Sequence Number (SN) number, when a PDU head of PDCP data PDU is assembled, a PDCP SN field is filled, and when the PDCP is started from zero, the PDCP SN is increased by 1 when one PDCP data PDU is sent; the PDCP receiving entity carries out reordering processing according to a PDCP numerical value (COUNT) value corresponding to a PDCP SN field analyzed and obtained from the received PDCP data PDU.

The RLC receiving entity firstly carries out demultiplexing and tandem connection processing on the received data packet RLC PDU, then the data packet RLC PDU is delivered to the PDCP receiving entity as long as a complete PDCP PDU is obtained, and reordering processing is not carried out; then, the sequence of the PDCP PDUs received by the PDCP receiving entity may not be consistent with the sequence of the PDCP PDUs transmitted by the opposite PDCP entity, so that the received PDCP PDUs need to be reordered to ensure reliable data transmission processing of the LTE system.

The specific implementation process is as follows:

the PDCP receiving entity delivers data packets to a high layer according to a continuous ascending order of a PDCP COUNT value, if the discontinuous condition of the COUNT value occurs, the data packets are stopped being delivered to the high layer, a reordering timer is started to monitor the arrival condition of the missing data packets, if the missing PDCP PDU arrives before the reordering timer is overtime, the data packets are normally delivered to the high layer according to the continuous ascending order of the COUNT value until the next missing PDCP PDU, if the missing PDCP PDU still does not arrive when the reordering timer is timed out, the PDCP PDU is skipped, all PDCP PDUs with the continuous COUNT value thereafter are delivered to the high layer, the reordering timer is restarted, and the time length of the reordering timer is unequal to several ms to 3000 ms.

In the 5G terminal, for downlink data transmission, if the RLC delivers data packets to the PDCP out of order, the PDCP SDU reordering process may cause some data packets to be not delivered to the upper layer in time, and for a service data packet of the TCP/IP protocol, the time taken for downlink data transmission is increased, which may cause TCP connection establishment delay and increase of the RTT time of the TCP connection, thereby affecting the downlink transmission rate.

Disclosure of Invention

In view of this, the present application provides a PDCP SDU reordering method and apparatus, which can submit without relying on the continuous increase of COUNT when out of order occurs, reduce RTT delay of TCP connection, accelerate TCP connection establishment speed, and improve TCP transmission speed.

In order to solve the technical problem, the technical scheme of the application is realized as follows:

a PDCP SDU reordering method, comprising:

when the PDCP SDU obtained after the PDCP header is removed is stored in a cache, the COUNT corresponding to the PDCP SDU is determined;

comparing the sizes of COUNT and RX _ DELIV; wherein RX _ DELIV is the COUNT corresponding to the first PDCP SDU which is not yet submitted to the upper layer and is still waiting to be received due to the out-of-order COUNT value;

when the COUNT is determined not to be equal to the RX _ DELIV, performing Transmission Control Protocol (TCP) protocol header parsing processing on the PDCP SDU by using a deep packet inspection technology;

if the PDCP SDU is determined to be a TCP message, acquiring tuple information in the PDCP SDU, and matching in a stored binding relationship by using the tuple information; wherein, the binding relationship is the mapping relationship between tuple information and TCP NEXT serial number SN; the TCP NEXT SN is the TCP SN expected to be received currently;

when the corresponding tuple information is matched, determining whether a TCP SN in a header of the PDCP SDU is the same as a TCP NEXT SN corresponding to the tuple information, and if so, submitting the PDCP SDU to an upper layer; otherwise, the PDCPSDU is not submitted to an upper layer.

A packet data convergence protocol PDCP service data unit, SDU, reordering device, comprising: the device comprises a cache unit, a determination unit, a comparison unit and a processing unit;

the buffer unit is used for storing the PDCP SDU obtained after the PDCP header is removed into a buffer;

the determining unit is configured to determine the COUNT corresponding to the PDCP SDU in the buffer unit;

the comparison unit is used for comparing the COUNT determined by the determination unit with the size of the recorded RX _ DELIV; wherein RX _ DELIV is the COUNT corresponding to the first PDCP SDU which is not yet submitted to the upper layer and is still waiting to be received due to the out-of-order COUNT value;

the processing unit is used for performing TCP header parsing processing on the PDCP SDU by using a deep packet inspection technology when the comparing unit determines that the COUNT is not equal to the RX _ DELIV; if the PDCP SDU is determined to be a transmission control protocol TCP message, acquiring tuple information in the PDCP SDU, and matching in a stored binding relationship by using the tuple information; wherein, the binding relationship is the mapping relationship between tuple information and TCP NEXT SN; wherein, the TCP NEXT SN is the TCP SN expected to be received currently; when the corresponding tuple information is matched, determining whether a TCP SN in a header of the PDCP SDU is the same as a TCP NEXT SN corresponding to the tuple information, and if so, submitting the PDCP SDU to an upper layer; otherwise, the PDCPSDU is not submitted to an upper layer.

According to the technical scheme, when the COUNT value corresponding to the PDCP SDU submitted to an upper layer is discontinuous, different TCP connections are detected and identified by virtue of a DPI technology, the context of the TCP connections and the context state information are maintained, the PDCP SDU with continuous TCP SN serial numbers can be preferentially submitted without waiting for a reordering timer to arrive, so that the reordering processing process is improved, and the process of reordering and submitting TCP messages is accelerated; when the method is out of order, submission can be carried out without depending on the continuous increase of the COUNT, the RTT time delay of the TCP connection can be reduced, the TCP connection establishment speed is accelerated, and the TCP transmission speed is increased.

Drawings

FIG. 1 is a diagram illustrating a PDCP SDU reordering process in an embodiment of the present application;

fig. 2 is a schematic diagram illustrating reception after handing over PDCP SDUs with COUNT of 5 in this embodiment;

fig. 3 is a diagram illustrating reception of PDCP SDUs with COUNT 10 according to the embodiment of the present application;

fig. 4 is a diagram illustrating reception of PDCP SDUs with COUNT 6 according to the embodiment of the present application;

fig. 5 is a diagram illustrating reception of PDCP SDUs with COUNT of 7 according to the embodiment of the present application;

fig. 6 is a schematic structural diagram of an apparatus applied to the above-described technology in the embodiment of the present application.

Detailed Description

In order to make the objects, technical solutions and advantages of the present invention more clearly apparent, the technical solutions of the present invention are described in detail below with reference to the accompanying drawings and examples.

When the COUNT value corresponding to the PDCP SDU submitted to an upper layer is discontinuous, different TCP connections are detected and identified by virtue of a DPI technology, the context of the TCP connection and the context state information are maintained, the PDCP SDU with continuous TCP SN serial numbers can be preferentially submitted without waiting until a reordering timer is up, so that the reordering processing process is improved, and the process of reordering and submitting TCP messages is accelerated; when the method is out of order, submission can be carried out without depending on the continuous increase of the COUNT, the RTT time delay of the TCP connection can be reduced, the TCP connection establishment speed is accelerated, and the TCP transmission speed is increased.

The subject performing all operations in the embodiments of the present application is a PDCP receiving entity, which is hereinafter referred to as a processing device for convenience of description.

The PDCP SDU reordering process in the embodiment of the present application will be described in detail with reference to the accompanying drawings.

Referring to fig. 1, fig. 1 is a schematic diagram of a PDCP SDU reordering process in the embodiment of the present application. The method comprises the following specific steps:

step 101, when the processing device stores the PDCP SDU obtained after the PDCP header is removed into the buffer, it determines the COUNT corresponding to the PDCP SDU.

The processing device initially sets RX _ NEXT to be 0 and RX _ DELIV to be 0, wherein RX _ DELIV is the COUNT corresponding to the PDCP SDU which is first not submitted to the upper layer due to the disorder of the COUNT value and is still waiting for receiving; RX _ NEXT is the NEXT COUNT expected to be received, e.g., PDCP SDUs with COUNT 0-5 and PDCP SDUs with COUNT 7, 8 are submitted, then RX _ DELIV is 6; if a PDCP SDU with COUNT 8 is received and a PDCP SDU with COUNT larger than 8 is not received again, RX _ NEXT is 9.

In the embodiment of the present application, when receiving a PDCP SDU, whether the PDCP SDU is stored in the buffer is briefly described as follows, as in the conventional implementation:

when receiving a PDCP data PDU from the lower layer, the PDCP receiving entity determines the COUNT of the received PDCP data PDU, i.e., RCVD _ COUNT, as follows:

when RCVD _ SN < SN (RX _ DELIV) -Window _ Size:

RCVD_HFN=HFN(RX_DELIV)+1;

otherwise, when RCVD _ SN > ═ SN (RX _ DELIV) + Window _ Size:

RCVD_HFN=HFN(RX_DELIV)-1;

otherwise:

RCVD_HFN=HFN(RX_DELIV);

RCVD_COUNT=[RCVD_HFN,RCVD_SN]。

after determining that the COUNT value of the received PDCP data PDU is equal to RCVD _ COUNT, the PDCP receiving entity is to:

decrypting and integrity verifying the PDCP data PDU using COUNT _ RCVD _ COUNT;

if the integrity verification fails:

indicating integrity failure to an upper layer;

discarding the PDCP data PDU;

if RCVD _ COUNT < RX _ DELIV; or

If the COUNT of the PDCP data PDU is received before RCVD _ COUNT:

discarding the PDCP data PDU;

if the received PDCP data PDU carrying the COUNT value of RCVD _ COUNT is not discarded on the upper surface, after the PDCP header is removed, the obtained PDCP SDU is stored in a receiving buffer area

In the specific implementation of the present application, the process of determining the COUNT corresponding to the PDCP SDU is related to RCVD _ SN and RCVD _ HFN, as in the conventional implementation.

In step 102, the processing device compares the COUNT and RX _ DELIV sizes.

The following two cases exist for the comparison result of step 102:

the first method comprises the following steps:

and (3) comparing the results: the COUNT is equal to RX _ DELIV, which is the case where no out-of-order condition occurs, the COUNT value receives PDCP SDUs incrementally in succession, or, the PDCP SDUs corresponding to the first out-of-order uncommitted COUNT are received with out-of-order.

In this case, the PDCP SDU is directly submitted to the upper layer.

In this case, the PDCP SDU to be submitted to the upper layer needs to be processed as follows:

using DPI technology to analyze the TCP protocol head of the PDCP SDU, if the PDCP SDU is determined to be a TCP message, obtaining tuple information in the PDCP SDU, and using the tuple information to match in a stored binding relationship;

when the corresponding tuple information is matched, adding the TCP SN of the PDCP SDU and the load length of the TCP message corresponding to the PDCP SDU to obtain a TCP NEXT SN, and updating the TCPNEXT SN corresponding to the tuple information by using the TCP NEXT SN obtained by calculation;

and when the corresponding tuple information is not matched, storing the binding relationship between the tuple information and the calculated TCPNEXT SN.

As for the PDCP SDUs stored in the buffer, the situation that the COUNT is smaller than the RX _ DELIV and is filtered when the PDCP SDUs are stored in the buffer does not occur.

After submitting the PDCP SDU to the upper layer, the following further steps are performed:

firstly, whether the COUNT exists in a cache is determined as the PDCP SDU of which the COUNT is added with 1 and which corresponds to the PDCP SDU submitted to an upper layer currently;

when a PDCP SDU with continuously increasing COUNT corresponding to the PDCP SDU exists in the cache, submitting the PDCP SDU in the cache to an upper layer; and the like until PDCP SDUs with continuously increasing COUNT do not exist in the buffer.

When there is no PDCP SDU in which the COUNT corresponding to the PDCP SDU is continuously increased in the cache, that is, the PDCP SDU corresponding to the currently submitted PDCP SDU and added with 1 is not included (the currently submitted PDCP SDU includes the PDCP SDU which is just stored in the cache and the PDCP SDU which is not submitted currently in the cache), the following operations are executed:

determining whether the COUNT plus 1 carried by the current PDCP SDU submitted to the upper layer is the same as the minimum value in the priority submission list:

when determining that the sum of 1 of the COUNT carried by the PDCP SDU submitted to the upper layer at present is the same as the minimum value in the priority submission list, deleting the minimum value in the priority submission list and a value continuously increasing from the minimum value; and updating RX _ DELIV to the deleted maximum in the priority commit list plus 1;

and when determining that the COUNT plus 1 carried by the PDCP SDU currently submitted to the upper layer is not the same as the minimum value in the priority submission list, updating RX _ DELIV to the COUNT plus 1.

And the second method comprises the following steps:

and (3) comparing the results: the COUNT is not equal to RX _ DELIV, which is the case when the out-of-order occurs and the PDCP SDU with the larger COUNT value than the first out-of-order non-uploaded PDCP SDU is received, or the out-of-order occurs for the first time.

This case includes two cases: out-of-order occurs, a PDCP SDU with a larger COUNT value than the PDCP SDU which is not uploaded in the out-of-order is received, and the out-of-order occurs for the first time; determining which case is specific according to whether a t-Reordering timer is started or not:

when the t-Reordering timer is not started, determining that the disorder condition occurs for the first time, and executing step 103; when the t-Reordering timer is not started and the PDCP SDUs larger than the COUNT value corresponding to the first out-of-order non-uploaded PDCP SDU are determined to be received, the following steps are executed:

at this time, it needs to determine whether to submit the PDCP SDU to the upper layer by the DPI technology, and the specific processing procedure is as follows:

using DPI technology to analyze the TCP protocol head of the PDCP SDU, if the PDCP SDU is determined to be a TCP message, obtaining tuple information in the PDCP SDU, and using the tuple information to store the binding relationship for matching;

when the corresponding tuple information is matched, using whether the TCP SN of the PDCP SDU is the same as the TCP NEXT SN bound by the tuple information, if so, submitting the PDCP SDU to an upper layer; adding the TCP SN of the PDCP SDU with the load length of the TCP message corresponding to the PDCP SDU to obtain a TCP NEXT SN, and updating the TCP NEXT SN corresponding to the tuple information by using the calculated TCP NEXT SN; otherwise, the PDCP SDU is not submitted to the upper layer, and the TCPNEXT SN is not updated.

When the corresponding tuple information is not matched, the PDCP SDU is kept in a buffer memory, and the PDCP SDU is not submitted to an upper layer.

And step 103, when the processing equipment determines that the COUNT is not equal to the RX _ DELIV, performing TCP protocol header resolution processing on the PDCPSDU by using a DPI technology.

In this step, when it is determined that COUNT is not equal to RX _ DELIV and the t-Reordering timer is not started, further performing operations including: starting a t-Reordering timer; and updating RX _ REORD to the COUNT plus 1 corresponding to the currently received PDCPSDU; the t-Reordering timer is a Reordering timer, which is the same as the Reordering timer in the existing implementations.

Stopping the t-Reordering timer if RX _ DELIV is not less than RX _ REORD while the t-Reordering timer is running;

when the t-Reordering timer is timed out, if PDCP SDUs with the COUNT larger than RX _ DELIV exist in the cache, the PDCP SDUs with the COUNT larger than RX _ DELIV are submitted to an upper layer.

Step 104, if the processing device determines that the PDCP SDU is a TCP packet, the processing device obtains tuple information in the PDCP SDU, and matches the tuple information in a binding relationship stored in the tuple information; wherein, the binding relationship is the mapping relationship between the tuple information and the TCPNEXT SN.

Wherein, the TCP NEXT SN is the TCP SN expected to be received currently.

When the PDCP SDU is identified as a TCP message, analyzing a header (a source Internet Protocol (IP) address, a target IP address, a source port number and a target port number) as an identification number group, distinguishing message types according to a mark field in the TCP header, and respectively processing:

if the message is a (connection initiation (SYN), Acknowledgement (ACK)) message, establishing a TCP connection context by taking (IP address + port number pair) as an identifier;

if the messages are (connection closing (FIN)), (FIN, ACK), (connection Resetting (RST)), (RST, ACK), the TCP connection context is searched and deleted by taking the (IP address + port number pair) as the identifier;

if the TCP message is other TCP messages carrying service data, the TCP connection context is searched by taking the (IP address + port number pair) as the identifier.

All tuple information can also be used as information for identifying the TCP context, and in specific implementation, a unique identifier can be allocated to each TCP context, or the tuple information can be directly matched without allocating the TCP context identifier.

Step 105, when matching the corresponding tuple information, the processing device determines whether the TCP SN in the header of the PDCP SDU is the same as the TCP NEXT SN corresponding to the tuple information, if so, submits the PDCP SDU to an upper layer; otherwise, the PDCP SDU is not submitted to an upper layer.

For both cases of the second case, when it is determined to submit the PDCP SDU to the upper layer, the COUNT carried by the PDCP SDU is recorded in the priority submission list.

In the embodiment of the present application, for the second case, when the corresponding tuple information is not matched, or it is determined that the PDCP SDU is not a TCP packet, the PDCP SDU is not submitted to the upper layer; the PDCP SDU is submitted to an upper layer only until the COUNT value is continuously increased or the t-Reordering timer is finished.

For all cases in the embodiment of the present application, if it is determined that the PDCP SDU is not a TCP packet, the relevant binding information is not stored.

In the implementation of the above two cases (the first case and the second case), when it is determined that COUNT is not less than RX _ NEXT, RX _ NEXT is updated to COUNT plus 1 corresponding to the PDCP SDU; namely, the value of RX _ NEXT is updated to be the COUNT plus 1 corresponding to the PDCP SDU stored in the buffer, and the largest COUNT plus 1 in the COUNT corresponding to the PDCP SDU which is still currently in the buffer or is submitted to the upper layer is taken as the currently recorded RX _ NEXT.

When it is determined that COUNT is less than RX _ NEXT, RX _ NEXT is not updated.

When the COUNT is determined to be equal to RX _ DELIV, updating RX _ DELIV to the COUNT plus 1 corresponding to the PDCP SDU;

when it is determined that COUNT is not equal to RX _ DELIV, RX _ DELIV is not updated.

The following describes in detail a specific procedure for implementing PDCP SDU reordering in the embodiments of the present application with reference to examples.

Assuming that 10 PDCP PDUs are to be transmitted, PDCP PDUs having COUNT values of 0, 3, 6, and 7 correspond to one TCP connection, PDCP PDUs having COUNT values of 1, 4, 8, 9, and 10 correspond to one TCP connection, and PDCP PDUs having COUNT values of 2 and 5 correspond to one TCP connection.

In a specific implementation, the binding of the corresponding tuple information is used as the unique identification TCP connection.

Initially setting RX _ NEXT to 0, RX _ DELIV to 0 and RX _ REORD to 0; the t-Reordering timer is not running.

Assuming that the PDCP SDU with COUNT of 0 is received and stored in the buffer, which is the first case mentioned above, the PDCP SDU in the buffer is directly submitted to the upper layer; and performs the following operations:

and analyzing a TCP protocol header of the PDCP SDU, identifying the PDCP SDU as a TCP message, continuously establishing a TCP connection context 1 according to a source IP address, a target IP address, a source port number and a target port number in the header as identifiers, calculating to obtain a TCP NEXTSN, and binding and recording the TCP NEXTSN and tuple information of the PDCP SDU.

Wherein, the TCP NEXT SN is the sum of the SN of the TCP message corresponding to the PDCP SDU and the length of the TCP message load.

RX _ NEXT needs to be updated to 1; RX _ DELIV is updated to 1, and RX _ REORD is unchanged; the t-Reordering timer is not running.

Next, PDCP PDUs with COUNT values of 1, 2, 3, 4, and 5 are received, and the processing procedure is similar to that of the PDCP PDUs with COUNT value of 1, and is not described one by one here.

After submitting PDCP SDU with the COUNT value of 5 to an upper layer, the values of all variables are as follows:

RX _ NEXT is 6, RX _ DELIV is 6, RX _ REORD is 0, and the t-Reordering timer is not running.

Referring to fig. 2, fig. 2 is a schematic diagram illustrating the reception of PDCP SDUs with COUNT of 5 handed over in the embodiment of the present application.

Fig. 2 is a diagram illustrating the reception of PDCP SDUs having COUNTs from 0 to 5, and shows PDCP SDUs without chaotic reordering.

If the COUNT corresponding to the PDCP SDU stored in the buffer is 8 after the PDCP SDU with COUNT 5 is reported, in the second case where the t-Reordering timer is not started, RX _ NEXT is updated to 9, that is, COUNT (8) is not equal to RX _ DELIV (6), and the t-Reordering timer is not started.

At this time, a t-Reordering timer needs to be started, and RX _ REORD is updated to 9;

and need to use DPI technology to carry on the analysis of TCP agreement head to said PDCP SDU;

if the PDCP SDU is determined to be a TCP message, acquiring tuple information in the PDCP SDU, and matching in a binding relation stored by using the tuple information;

when the corresponding tuple information is matched, determining whether a TCP SN in a header of the PDCP SDU is the same as a TCP NEXT SN corresponding to the tuple information, and if so, submitting the PDCP SDU to an upper layer; otherwise, the PDCP SDU is not submitted to an upper layer.

Because the PDCPU SDU with the COUNT of 8 and the PDCPU SDU with the COUNT of 4 correspond to the same TCP connection and no other PDCP SDU exists between the PDCPU SDUs, when the corresponding tuple information is finally determined to be matched, and the TCP SN in the header of the PDCP SDU is determined to be the same as the TCP NEXT SN corresponding to the tuple information, the PDCP SDU is submitted to the upper layer, RX _ NEXT is updated to be 9, and RX _ DELIV is still 6; and calculating and updating TCPNEXT SN corresponding to the tuple information.

And recording the COUNT 8 corresponding to the PDCP SDU into a priority submission list.

Assuming that PDCP SDUs with COUNT 9 and 10 are received thereafter, the processing procedure is the same as that for PDCP SDU with COUNT 8.

After submitting the PDCP SDU with the COUNT of 10 to an upper layer, updating the values of the state variables as follows:

RX _ NEXT is 11, RX _ DELIV is 6, RX _ REORD is 9, and during the operation of the t-Reordering timer, the COUNT recorded in the priority commit list is 8, 9, 10.

Referring to fig. 3, fig. 3 is a schematic diagram illustrating the reception of PDCP SDUs with COUNT 10 in this embodiment.

In fig. 3, PDCP SDUs with COUNT 6 and 7 are shown not received, while PDCP SDUs with COUNT 8, 9 and 10 are received preferentially.

Assuming that a PDCP SDU with a COUNT of 6 is received after submitting a PDCP SDU with a COUNT of 10, determining a comparison result: COUNT (6) is equal to RX _ DELIV (6), which is the first case described above.

In this case, the PDCP SDU is directly submitted to the upper layer.

For this case, the following process is also performed for the PDCP SDU submitted to the upper layer:

using DPI technology to analyze the TCP protocol head of the PDCP SDU, if the PDCP SDU is determined to be a TCP message, obtaining tuple information in the PDCP SDU, and using the tuple information to store the binding relationship for matching;

when the corresponding tuple information is matched, adding the TCP SN of the PDCP SDU and the load length of the TCP message corresponding to the PDCP SDU to obtain a TCP NEXT SN, and updating the TCP NEXT SN corresponding to the tuple information by using the TCP NEXT SN obtained by calculation;

and when the corresponding tuple information is not matched, storing the binding relationship between the tuple information and the calculated TCPNEXT SN.

Since COUNT 6 and COUNT 3 correspond to the same TCP connection and there are no other pdcp sdus on the TCP connection therebetween, the determination result is: and matching the corresponding tuple information, adding the TCP SN of the PDCP SDU and the load length of the TCP message corresponding to the PDCP SDU to obtain a TCP NEXT SN, and updating the TCP NEXT SN corresponding to the tuple information by using the TCP NEXT SN obtained by calculation.

For this case, after submitting the PDCP SDU to the upper layer, the following process is further performed:

firstly, whether the COUNT exists in a cache is determined as the PDCP SDU of which the COUNT is added with 1 and which corresponds to the PDCP SDU submitted to an upper layer currently; i.e. whether there is a pdcp sdu with COUNT of 7 in the cache.

If so, submitting the PDCP SDU in the buffer to an upper layer; and the like until PDCP SDUs with continuously increasing COUNT do not exist in the buffer.

When no PDCP SDU with continuously increasing COUNT corresponding to the PDCP SDU exists in the buffer memory, the following operations are executed:

determining whether the COUNT plus 1 carried by the current PDCP SDU submitted to the upper layer is the same as the minimum value in the priority submission list:

when determining that the sum of 1 of the COUNT carried by the PDCP SDU submitted to the upper layer at present is the same as the minimum value in the priority submission list, deleting the minimum value in the priority submission list and a value continuously increasing from the minimum value; and updating RX _ DELIV to the deleted maximum in the priority commit list plus 1;

and when determining that the COUNT plus 1 carried by the PDCP SDU currently submitted to the upper layer is not the same as the minimum value in the priority submission list, updating RX _ DELIV to the COUNT plus 1.

In this embodiment, it is finally determined that there is no PDCP SDU with COUNT of 7 in the cache, and it is determined that there is no record with COUNT of 7 in the priority submission list, and the update related variables are as follows:

RX _ DELIV update to 7; RX _ NEXT is still 11; RX _ REORD is still 9, and the t-Reordering timer is running.

Fig. 4 shows a received PCDU SDP, and fig. 4 is a schematic diagram of receiving a PDCP SDU with COUNT 6 in this embodiment of the present application.

In fig. 4, PDCP SDUs with COUNT 7 are shown not received, but PDCP SDUs with COUNT 8, 9, and 10 are received preferentially.

Assuming that after submitting PDCP SDUs with COUNT 6, receiving PDCP SDUs with COUNT 7, the processing procedure is similar to the processing procedure of receiving COUNT 6, except that it is finally determined that there are no PDCP SDUs with continuously increasing COUNT values in the buffer, and PDCP SDUs with COUNT 8, 9, and 10 exist in the priority submission list, then updating each state variable as:

RX _ NEXT is 11, RX _ DELIV is 11, RX _ REORD is 9, and t-Reordering timer is in expired state.

Referring to fig. 5, fig. 5 is a schematic diagram illustrating reception of PDCP SDUs with COUNT of 7 in this embodiment of the present application.

In FIG. 5, PDCP SDUs with COUNT 0-10 are shown as received.

Stopping the t-Reordering timer if RX _ DELIV is not less than RX _ REORD while the t-Reordering timer is running;

when the t-Reordering timer is timed out, if PDCP SDUs with the COUNT larger than RX _ DELIV exist in the cache, the PDCP SDUs with the COUNT larger than RX _ DELIV are submitted to an upper layer. In the embodiment of the present application, it is taken as an example that no related PDCP SDU exists in the buffer.

It is assumed that in practical applications, when the PDCP SDU with COUNT 6 is not received and the PDCP SDU with COUNT 7 is received, the second case is the above case, and will not be described in detail here.

Based on the same inventive concept, the application also provides a PDCP SDU reordering device. Referring to fig. 6, fig. 6 is a schematic structural diagram of an apparatus applied to the above technology in the embodiment of the present application. The device includes: a buffer unit 601, a determination unit 602, a comparison unit 603, and a processing unit 604;

a buffer unit 601, configured to store the PDCP SDU obtained after the PDCP header is removed in a buffer;

a determining unit 602, configured to determine the COUNT corresponding to the PDCP SDU in the buffer unit 601;

a comparing unit 603 for comparing the COUNT determined by the determining unit 602 and the size of RX _ DELIV recorded; wherein RX _ DELIV is the COUNT corresponding to the first PDCP SDU which is not yet submitted to the upper layer and is still waiting to be received due to the out-of-order COUNT value;

a processing unit 604, configured to perform TCP header parsing on the PDCP SDU using a deep packet inspection technique when the comparing unit 603 determines that COUNT is not equal to RX _ DELIV; if the PDCP SDU is determined to be a transmission control protocol TCP message, acquiring tuple information in the PDCP SDU, and matching in a stored binding relationship by using the tuple information; wherein, the binding relationship is the mapping relationship between tuple information and TCP NEXT SN; wherein, the TCP NEXT SN is the TCPSN expected to be received currently; when the corresponding tuple information is matched, determining whether a TCP SN in a header of the PDCP SDU is the same as a TCP NEXT SN corresponding to the tuple information, and if so, submitting the PDCP SDU to an upper layer; otherwise, the PDCPSDU is not submitted to an upper layer.

Wherein the content of the first and second substances,

and when the corresponding tuple information is not matched or the PDCP SDU is determined not to be a TCP message, not submitting the PDCP SDU to an upper layer.

When submitting the PDCP SDU to an upper layer, recording the COUNT carried by the PDCP SDU into a priority submission list;

when determining that the sum of 1 of the COUNT carried by the PDCP SDU submitted to the upper layer at present is the same as the minimum value in the priority submission list, deleting the minimum value in the priority submission list and a value continuously increasing from the minimum value; and updating RX _ DELIV to the deleted maximum in the priority commit list plus 1;

and when determining that the COUNT plus 1 carried by the PDCP SDU currently submitted to the upper layer is not the same as the minimum value in the priority submission list, updating RX _ DELIV to the COUNT plus 1.

When the COUNT is determined not to be equal to the RX _ DELIV, if the Reordering t-Reordering timer is determined not to be started currently, the t-Reordering timer is started; and updating RX _ REORD to COUNT plus 1;

stopping the t-Reordering timer if RX _ DELIV is not less than RX _ REORD while the t-Reordering timer is running;

when the t-Reordering timer is timed out, if PDCP SDUs with the COUNT larger than RX _ DELIV exist in the cache, the PDCP SDUs with the COUNT larger than RX _ DELIV are submitted to an upper layer.

When the TCP SN in the header of the PDCP SDU is determined to be the same as the TCPNEXT SN corresponding to the tuple information, the TCP SN of the PDCP SDU is added with the load length of the TCP message corresponding to the PDCP SDU to obtain the TCPNEXT SN, and the TCP NEXT SN corresponding to the tuple information is updated by the calculated TCP NEXT SN;

and when the TCP SN in the header of the PDCP SDU is determined to be different from the TCP NEXTSN corresponding to the tuple information, not updating the TCP NEXTSN.

Preferably, the first and second liquid crystal films are made of a polymer,

a processing unit 604, further configured to submit the pdcp sdu to an upper layer when the comparing unit 603 determines that COUNT is equal to RX _ DELIV; carrying out TCP protocol head analysis processing on the PDCP SDU by using a DPI technology, if the PDCP SDU is determined to be a TCP message, acquiring tuple information in the PDCP SDU, and matching in a binding relation stored by using the tuple information; when the corresponding tuple information is matched, adding the TCP SN of the PDCP SDU and the load length of the TCP message corresponding to the PDCP SDU to obtain a TCP NEXT SN, and updating the TCP NEXT SN corresponding to the tuple information by using the TCP NEXT SN obtained by calculation; and when the corresponding tuple information is not matched, storing the binding relationship between the tuple information and the calculated TCP NEXTSN.

When the COUNT is equal to RX _ DELIV and the PDCP SDU is determined to be submitted to an upper layer, determining whether the buffer memory has the PDCP SDU of which the COUNT is the COUNT plus 1 corresponding to the PDCP SDU submitted to the upper layer currently;

when the COUNT exists in the cache and is the PDCP SDU which is added with 1 by the COUNT corresponding to the PDCP SDU submitted to the upper layer currently, submitting the PDCP SDU in the cache to the upper layer; and so on until no PDCPSDU with continuously increasing COUNT exists in the cache;

when no PDCP SDU with continuously increasing COUNT corresponding to the PDCP SDU exists in the cache, determining whether the value of the added 1 of the COUNT carried by the PDCP SDU submitted to an upper layer at present is the same as the minimum value in a priority submission list;

when determining that the sum of 1 of the COUNT carried by the PDCP SDU submitted to the upper layer at present is the same as the minimum value in the priority submission list, deleting the minimum value in the priority submission list and a value continuously increasing from the minimum value; and updating RX _ DELIV to the deleted maximum in the priority commit list plus 1;

and when determining that the COUNT plus 1 carried by the PDCP SDU currently submitted to the upper layer is not the same as the minimum value in the priority submission list, updating RX _ DELIV to the COUNT plus 1.

The units of the above embodiments may be integrated into one body, or may be separately deployed; may be combined into one unit or further divided into a plurality of sub-units.

To sum up, the application identifies different TCP connections by DPI technology detection when the COUNT values corresponding to the PDCP SDUs submitted to the upper layer are discontinuous, maintains the context of the TCP connections and the context state information, and can submit the PDCP SDUs with continuous TCP SN serial numbers preferentially without waiting for the arrival of a reordering timer, so as to improve the reordering processing process and accelerate the process of reordering and submitting TCP messages; when the method is out of order, submission can be carried out without depending on the continuous increase of the COUNT, the RTT time delay of the TCP connection can be reduced, the TCP connection establishment speed is accelerated, and the TCP transmission speed is increased.

The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents, improvements and the like made within the spirit and principle of the present invention should be included in the scope of the present invention.

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:视频处理方法、装置、系统、分析服务器及转码服务器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类