This Application claims priority of CN Patent Application No. 202111051955.6, filed on Sep. 8, 2021, the entirety of which is incorporated by reference herein.
The invention generally relates to a wireless communication technology, and more particularly, to an out-of-order packets managing technology.
GSM/GPRS/EDGE technology is also called 2G cellular technology, WCDMA/CDMA-2000/TD-SCDMA technology is also called 3G cellular technology, and LTE/LTE-A/TD-LTE technology is also called 4G cellular technology. These cellular technologies have been adopted for use in various telecommunication standards to provide a common protocol that enables different wireless devices to communicate on a municipal, national, regional, and even global level. An example of an emerging telecommunication standard is the 5G New Radio (NR). The 5G NR is a set of enhancements to the LTE mobile standard promulgated by the Third Generation Partnership Project (3GPP). It is designed to better support mobile broadband Internet access by improving spectral efficiency, reducing costs, and improving services.
In the 5G NR, the packets will be pushed to the Packet Data Convergence Protocol (PDCP) layer as long as the Radio Link Control (RLC) layer reassembles a complete RLC SDU. Therefore, the RLC Service Data Units (SDUs) appearing in PDCP layer may be out of order. Therefore, a reorder timer is introduced into the PDCP layer to make these out-of-order packets in order. However, the packets pushed to the PDCP layer do not carry any application information. Therefore, even if an application has lower requirement for the order of packets, the packets for this application can be pushed to the application layer in PDCP layer only when all packets are in order or the reorder timer is expired. This mechanism may cause harm to some latency-sensitive applications (e.g. games). On the other hand, if the reorder timer is turned off, the order-sensitive applications (e.g. FTP files) will get poor performance.
User equipment (UE) and method for managing out-of-order packets are provided to overcome the problems mentioned above.
An embodiment of the invention provides user equipment (UE) for managing out-of-order packets. The UE may comprise a radio frequency (RF) signal processing device, a management module, a filter module and a multi-reorder queue circuit. The RF signal processing device may receive a plurality of packets from a network node. The management module may collect network information of the network node and application information and generate a plurality of filter rules according to the network information and the application information. The filter module may receive the filter rules from the management module and allocate a plurality of out-of-order packets to different reorder queues according to the filter rules, wherein each reorder queue corresponds to a different reorder timer. The multi-reorder queue circuit comprises the reorder queues. The multi-reorder queue circuit determines how to push each out-of-order packet to its corresponding application through a TCP/IP stack.
In some embodiments of the invention, the network information comprises operator information, a network type, signal strength, latency, an out-or-order rate and a packet loss rate and so on.
In some embodiments of the invention, the application information comprises types of applications, 5-tuple information of applications, and process ID of applications and so on.
In some embodiments of the invention, the management module comprises a recorder, a collector and a reorder timer setting module. The recorder may record an application list, types of applications in the application list and default reorder timers corresponding to applications in the application list. The collector collects the network information and the application information, wherein the collector collects the application information corresponding to the applications in the application list. The reorder timer setting module receives the network information and the application information from the collector, receives the default reorder timers from the recorder, and generates the filter rules according to the network information, the application information and the default reorder timers, wherein the filter rules comprise the expiration value of the reorder timers of the reorder queues. In some embodiments of the invention, the reorder timer setting module updates the filter rules according to new network information and new application information collected by the collector.
In some embodiments of the invention, the filter module comprises a storage device and a checker. The storage device stores a multi-reorder queue table, wherein the multi-reorder queue table is established based on the filter rules from the management module. The checker allocates the out-of-order packets to different reorder queues according to the multi-reorder queue table. In some embodiments of the invention, the packets are classified into three types. In some embodiments of the invention, for one type, if the packets are in order, the checker directly pushes the packets to its corresponding application through the stack. In some embodiments of the invention, for another two types, if a first out-of-order packet of the out-of-order packets matches with one filter rule in the multi-reorder queue table, the checker allocates the first out-of-order packet to its corresponding reorder queue of the multi-reorder queue circuit, and if a second out-of-order packet of the out-of-order packets does not match with any filter rule in the multi-reorder queue table, the checker allocates the second out-of-order packet to a normal queue of the multi-reorder queue circuit.
In some embodiments of the invention, before a reorder timer corresponding to one reorder queue of the multi-reorder queue circuit is not expired, if a bitmap is complete, the multi-reorder queue circuit pushes the packets in the reorder queue to its corresponding application through the TCP/IP stack, wherein the bitmap may be used for determining whether the lost packets of the packets in the queue have been waited.
In some embodiments of the invention, when a reorder timer corresponding to one reorder queue of the multi-reorder queue circuit is expired and a bitmap is not complete, the multi-reorder queue circuit pushes the packets in the reorder queue to the TCP/IP stack.
In some embodiments of the invention, the multi-reorder queue circuit checks high level sequence numbers of the out-of-order packets, wherein the high level sequence numbers are supported by a higher layer protocol, such as TCP.
In some embodiments of the invention, if the high level sequence numbers of the out-of-order packets are continuous, the multi-reorder queue circuit pushes the out-of-order packets to its corresponding application through the TCP/IP stack.
An embodiment of the invention provides a method for managing out-of-order packets. The method is applied to a user equipment (UE). The method comprises the following steps: a radio frequency (RF) signal processing device of the UE receives a plurality of packets from a network node; a management module of the UE collects network information of the network node and application information; the management module of the UE generates a plurality of filter rules according to the network information and the application information; a filter module of the UE receives the filter rules from the management module; the filter module of the UE allocates a plurality of out-of-order packets of the packets to different reorder queues of a multi-reorder queue circuit of the UE according to the filter rules, wherein each reorder queue corresponds to a different reorder timer; and the multi-reorder queue circuit determines how to push each out-of-order packet to its corresponding application through a TCP/IP stack.
Other aspects and features of the invention will become apparent to those with ordinary skill in the art upon review of the following descriptions of specific embodiments of the UE and method for managing out-of-order packets.
The invention will become more fully understood by referring to the following detailed description with reference to the accompanying drawings, wherein:
The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
In the embodiments, the network node 120 may be a base station, a gNodeB (gNB), a NodeB (NB) an eNodeB (eNB), an access point, an access terminal, but the invention should not be limited thereto. In the embodiments, the UE 110 may communicate with the network node 120 through the fifth generation (5G) communication technology or 5G New Radio (NR) communication technology, but the invention should not be limited thereto.
As shown in
In the embodiments of the invention, the UE 110 may be a smartphone, Personal Data Assistant (PDA), pager, laptop computer, desktop computer, wireless handset, or any computing device that includes a wireless communications interface.
The RF signal processing device 112 may receive RF signals via the antenna and process the received RF signals to convert the received RF signals to baseband signals to be processed by the baseband signal processing device 111, or receive baseband signals from the baseband signal processing device 211 and convert the received baseband signals to RF signals to be transmitted to a peer communications apparatus. The RF signal processing device 112 may comprise a plurality of hardware elements to perform radio frequency conversion. For example, the RF signal processing device 112 may comprise a power amplifier, a mixer, analog-to-digital converter (ADC)/digital-to-analog converter (DAC), etc.
The baseband signal processing device 111 may further process the baseband signals to obtain information or data transmitted by the peer communications apparatus. The baseband signal processing device 111 may also comprise a plurality of hardware elements to perform baseband signal processing.
The processor 113 may control the operations of the baseband signal processing device 111 and the RF signal processing device 112. According to an embodiment of the invention, the processor 113 may also be arranged to execute the program codes of the software module(s) of the corresponding baseband signal processing device 111 and/or the RF signal processing device 112. The program codes accompanied by specific data in a data structure may also be referred to as a processor logic unit or a stack instance when being executed. Therefore, the processor 113 may be regarded as being comprised of a plurality of processor logic units, each for executing one or more specific functions or tasks of the corresponding software modules.
The memory device 114 may store the software and firmware program codes, system data, user data, etc. of the UE 110. The memory device 114 may be a volatile memory such as a Random Access Memory (RAM); a non-volatile memory such as a flash memory or Read-Only Memory (ROM); a hard disk; or any combination thereof.
According to an embodiment of the invention, the RF signal processing device 112 and the baseband signal processing device 111 may collectively be regarded as a radio module capable of communicating with a wireless network to provide wireless communications services in compliance with a predetermined Radio Access Technology (RAT). Note that, in some embodiments of the invention, the UE 110 may be extended further to comprise more than one antenna and/or more than one radio module, and the invention should not be limited to what is shown in
According to an embodiment of the invention, the baseband signal processing device 111 and the RF signal processing device 112 may be configured in a modem of the UE 110, and the processor 113 may be configured in an application processor (AP) of the UE 110. According to an embodiment of the invention, the management module 115, the filter module 116 and the MRQ circuit 117 may be configured in the modem. According to another embodiment of the invention, the management module 115, the filter module 116 and the MRQ circuit 117 may be configured in the application processor. In an embodiment of the invention, the management module 115 may be configured in the application processor and the filter module 116 and the MRQ circuit 117 may be configured in the modem. According to the embodiments of the invention, the application processor may further comprise a network interface card (NIC) driver and a TCP/IP stack 118.
In addition, according to an embodiment of the invention, the management module 115, the filter module 116 and the MRQ circuit 117 may be software modules executed by the modem or the application processor. According to another embodiment of the invention, the management module 115, the filter module 116 and the MRQ circuit 117 may be hardware (e.g. circuits) configured in the modem or the application processor.
According to the embodiments of the invention, the management module 115 may be configured to collect the network information of the network node 120 and application information and generate a plurality of filter rules according to the network information and the application information.
The recorder 210 may record an application list, types of applications in the application list and default reorder timers corresponding to applications in the application list. The application list may record the applications currently operated. The types of applications may comprise a latency-sensitive type or an order-sensitive type, but the invention should not be limited thereto. The values of the default reorder timers may be historical timer setting values of the applications.
The collector 220 may collect the network information of the network node 120. In addition, the collector 220 may collect the application information corresponding to the applications in the application list. According to an embodiment of the invention, the network information may comprise an operator information (i.e. the network operator providing service to the UE 110), a network type (e.g. 4G or 5G, but the invention should not be limited thereto), a signal strength of the current network, a latency of the current network, an out-or-order rate of the current network and packet loss rate of the current network, but the invention should not be limited thereto. According to an embodiment of the invention, the application information may comprise the types of applications (e.g. latency-sensitive type or order-sensitive type), the 5-tuple information (i.e. source IP address, destination IP address, source port number, destination port number and protocol in use) of applications, and process ID of applications, but the invention should not be limited thereto.
The reorder timer setting module 230 may receive the network information and the application information from the collector 220. In addition, the reorder timer setting module 230 may receive the default reorder timers from the recorder 210. According to the embodiments of the invention, the reorder timer setting module 230 may generate the filter rules according to the default reorder timers, or according to the network information, the application information and the default reorder timers. Then, the reorder timer setting module 230 may transmit the filter rules to the filter module 116.
According to an embodiment of the invention, in an initial state or an operator switching state, the reorder timer setting module 230 may generate the filter rules according to the default reorder timers from the recorder 210.
According to another embodiment of the invention, in normal state, the reorder timer setting module 230 may generate the filter rules according to the network information, the application information and the default reorder timers. In the embodiment, the information (i.e. the network information and the application information) collected by the collector 220 and the default reorder timers from the recorder 210 may correspond to different weights. When the reorder timer setting module 230 determines values of the reorder timers in the filter rules, the reorder timer setting module 230 may multiply the information collected by the collector 220 by its corresponding weight and multiply the default reorder timers from the recorder 210 by its corresponding weight.
According to an embodiment of the invention, each filter rule may comprise its corresponding application, its corresponding 5-tuple information (i.e. source IP address, destination IP address, source port number, destination port number and protocol in use) of its corresponding application, its corresponding type of service (ToS) information, its corresponding differentiated services code point (DSCP) information, its corresponding reorder queue ID, its corresponding reorder timer value, and its corresponding priority, but the invention should not be limited thereto.
According to an embodiment of the invention, the reorder timer setting module 230 may update the filter rules according to new network information and new application information collected by the collector 220. Then, the reorder timer setting module 230 may transmit the updated filter rules to the filter module 116.
According to an embodiment of the invention, the reorder timer setting module 230 may analyze a current network quality based on the current network information from the collector 220. When the network quality becomes worse, the reorder timer setting module 230 may adjust the reorder timer values, e.g. the reorder timer setting module 230 may increase the reorder timer value corresponding to the application with the latency-sensitive type; and when the network quality becomes better, the reorder timer setting module 230 may also adjust the reorder timer values, e.g. the reorder timer setting module 230 may reduce the reorder timer value corresponding to the application with the latency-sensitive type. In an embodiment, when the reorder timer setting module 230 adjusts the reorder timer values based on the current network quality, the reorder timer setting module 230 may refer to a lookup table to find a reorder timer value (such as, the golden value of reorder timer) based on the current network quality. In another embodiment, when the reorder timer setting module 230 adjusts the reorder timer values based on the current network quality, the reorder timer setting module 230 may use a smart learning algorithm (e.g. a neural network algorithm or model) to find a reorder timer value (such as, the golden value of reorder timer) based on the current network quality.
According to the embodiments of the invention, the RF signal processing device 112 may receive a plurality of packets from the network node 120. The filter module 116 may receive the filter rules from the management module 115 and receive the packets in the RLC(Radio Link Control) SDU (Service Data Unit) from the RLC layer. The filter module 116 may allocate the out-of-order packets of the packets from the RLC layer to different reorder queues of the MRQ circuit 117 according to the filter rules. Each reorder queue of the MRQ circuit 117 may correspond to a different filter rule (i.e. correspond to a different reorder timer).
According to an embodiment of the invention, the storage device may store a multi-reorder queue (MRQ) table. The MRQ table is established based on the filter rules from the management module 115. When the filter rules are updated, the MRQ table may be updated according to the updated filter rules. If the number of updated filter rules is over a threshold, the filter rule with lower priority may be moved to a normal queue of MRQ circuit 117.
The checker 320 may allocate the out-of-order packets of the packets to different reorder queues of the MRQ circuit 117 according to the information of the multi-reorder queue table. According to an embodiment of the invention, if the packets are in order (i.e. continuous packets), the checker 320 may directly push the packets to its corresponding application through the TCP/IP stack 118. According to an embodiment of the invention, if an out-of-order packet of the out-of-order packets can match with one filter rule in the multi-reorder queue table, the checker 320 may allocates this out-of-order packet to its corresponding reorder queue of the MRQ circuit 117. In addition, if an out-of-order packet of the out-of-order packets does not match with any filter rule in the multi-reorder queue table, the checker 320 may allocate this out-of-order packet to a normal queue of the MRQ circuit 117.
According to the embodiments of the invention, the MRQ circuit 117 may comprise a normal queue and a plurality of reorder queues. The MRQ circuit 117 may determine how to push each out-of-order packet to its corresponding application through the TCP/IP stack 118. Details are illustrated below via
According to an embodiment, the MRQ circuit 117 may comprise a bitmap (as the bitmap 450 shown in
According to an embodiment, before a reorder timer corresponding to one reorder queue (e.g. reorder queues 420-440) of the MRQ circuit 117 has not been expired, if a bitmap is complete (e.g. all fields of bitmap 450 have been set to “1”, or part of the continuous fields at the front have been set to “1”, but the invention should not be limited thereto), the MRQ circuit 117 may push the out-of-order packets in the reorder queue to its corresponding application through the TCP/IP stack 118, wherein the complete bitmap may include all or part of continuous fields of the bitmap.
According to an embodiment, when a reorder timer corresponding to one reorder queue (e.g. reorder queues 420˜440) of the MRQ circuit 117 has been expired and a bitmap is still not complete (e.g. some fields of bitmap 450 have not been set to “1”, but the invention should not be limited thereto), the MRQ circuit 117 may push the out-of-order packets in the reorder queue to the TCP/IP stack 118. In the embodiment, the packets pushed to the TCP/IP stack 118 may be allocated to applications through the higher layer protocol.
According to an embodiment, the MRQ circuit 117 may check high level sequence numbers of the out-of-order packets, wherein the high level sequence numbers are supported by a higher layer protocol (e.g. layer 4 protocol). If the high level sequence number of an out-of-order packet is continuous with the prior packet, the MRQ circuit 117 may directly push these out-of-order packets to its corresponding application through the TCP/IP stack 118 without waiting the expiration of the reorder timer.
In step S620, a management module of the UE 110 collects network information of the network node and application information.
In step S630, the management module of the UE 110 generates a plurality of filter rules according to the network information and the application information.
In step S640, a filter module of the UE 110 receives the filter rules from the management module of the UE 110.
In step S650, the filter module of the UE 110 allocates a plurality of out-of-order packets of the packets to different reorder queues of a multi-reorder queue circuit of the UE 110 according to the filter rules, wherein each reorder queue corresponds to a different reorder timer.
In step S660, the multi-reorder queue circuit of the UE 110 determines how to push each out-of-order packet to its corresponding application through a TCP/IP stack.
In some embodiments of the invention, in the method for managing out-of-order packets, the network information comprises operator information, a network type, signal strength, latency, an out-or-order rate and a packet loss rate and so on.
In some embodiments of the invention, in the method for managing out-of-order packets, the application information comprises types of applications, 5-tuple information of applications, and process ID of applications and so on.
In some embodiments of the invention, in the method for managing out-of-order packets, the management module may comprise a recorder, a collector and a reorder timer setting module. The recorder may record an application list, types of applications in the application list and default reorder timers corresponding to applications in the application list. In step S620, the collector collects the network information and the application information, wherein the collector collects the application information corresponding to the applications in the application list. In step S630, the reorder timer setting module receives the network information and the application information from the collector, receives the default reorder timers from the recorder, and generates the filter rules according to the network information, the application information and the default reorder timers. The filter rules comprise the expiration value of the reorder timers of the reorder queues. In some embodiments of the invention, in the method, the reorder timer setting module updates the filter rules according to new network information and new application information collected by the collector.
In some embodiments of the invention, in the method for managing out-of-order packets, the filter module comprises a storage device and a checker. The storage device stores a multi-reorder queue table, wherein the multi-reorder queue table is established based on the filter rules from the management module. In step S650, the checker allocates the out-of-order packets of the packets to different reorder queues according to the multi-reorder queue table. In some embodiments of the invention, the packets are classified into three types. In some embodiments of the invention, for one type, the method further comprises that if the packets are in order, the checker directly pushes the packets to its corresponding application through the stack. In some embodiments of the invention, for another two types, the method further comprises that if a first out-of-order packet of the out-of-order packets matches with one filter rule in the multi-reorder queue table, the checker allocates the first out-of-order packet to its corresponding reorder queue of the multi-reorder queue circuit, and if a second out-of-order packet of the out-of-order packets does not match with any filter rule in the multi-reorder queue table, the checker allocates the second out-of-order packet to a normal queue of the multi-reorder queue circuit.
In some embodiments of the invention, the method further comprises that before a reorder timer corresponding to one reorder queue of the multi-reorder queue circuit is not expired, if a bitmap is complete, the multi-reorder queue circuit pushes the packets in the reorder queue to its corresponding application through the TCP/IP stack.
In some embodiments of the invention, the method further comprises that when a reorder timer corresponding to one reorder queue of the multi-reorder queue circuit is expired and a bitmap is not complete, the multi-reorder queue circuit pushes the packets in the reorder queue to the TCP/IP stack.
In some embodiments of the invention, the method further comprises that the multi-reorder queue circuit checks high level sequence numbers of the out-of-order packets, wherein the high level sequence numbers are supported by a higher layer protocol, such as TCP. If the high level sequence numbers of the out-of-order packets are continuous, the multi-reorder queue circuit pushes the out-of-order packets to its corresponding application through the TCP/IP stack.
In the method for managing out-of-order packets provided in the invention, multiple reorder queues and multiple reorder timers are introduced into the PDCP layer of the UE. Therefore, the mechanism in the method for managing out-of-order packets provided in the invention will provide more flexibility for managing or allocating the out-of-order packets of different types of applications.
The steps of the method described in connection with the aspects disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module (e.g., including executable instructions and related data) and other data may reside in a data memory such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer-readable storage medium known in the art. A sample storage medium may be coupled to a machine such as, for example, a computer/processor (which may be referred to herein, for convenience, as a “processor”) such that the processor can read information (e.g., code) from and write information to the storage medium. A sample storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in user equipment. In the alternative, the processor and the storage medium may reside as discrete components in user equipment. Moreover, in some aspects, any suitable computer-program product may comprise a computer-readable medium comprising codes relating to one or more of the aspects of the disclosure. In some aspects, a computer software product may comprise packaging materials.
It should be noted that although not explicitly specified, one or more steps of the methods described herein can include a step for storing, displaying and/or outputting as required for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or output to another device as required for a particular application. While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention can be devised without departing from the basic scope thereof. Various embodiments presented herein, or portions thereof, can be combined to create further embodiments. The above description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
The above paragraphs describe many aspects. Obviously, the teaching of the invention can be accomplished by many methods, and any specific configurations or functions in the disclosed embodiments only present a representative condition. Those who are skilled in this technology will understand that all of the disclosed aspects in the invention can be applied independently or be incorporated.
While the invention has been described by way of example and in terms of preferred embodiment, it should be understood that the invention is not limited thereto. Those who are skilled in this technology can still make various alterations and modifications without departing from the scope and spirit of this invention. Therefore, the scope of the present invention shall be defined and protected by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
202111051955.6 | Sep 2021 | CN | national |
Number | Name | Date | Kind |
---|---|---|---|
10027593 | Zhang et al. | Jul 2018 | B2 |
10397754 | Vajapeyam et al. | Aug 2019 | B2 |
11387945 | Bathwal | Jul 2022 | B1 |
20120155438 | Shin | Jun 2012 | A1 |
20140301188 | Koskinen | Oct 2014 | A1 |
20160315868 | Zhang | Oct 2016 | A1 |
20170171060 | Liu | Jun 2017 | A1 |
20200403928 | Amend | Dec 2020 | A1 |
20210400537 | Zhang | Dec 2021 | A1 |
20220209903 | Zhang | Jun 2022 | A1 |
Number | Date | Country |
---|---|---|
106063324 | Oct 2016 | CN |
107852768 | Mar 2018 | CN |
Entry |
---|
Chinese language office action dated Apr. 25, 2022, issued in application No. TW 110142329. |
Number | Date | Country | |
---|---|---|---|
20230073796 A1 | Mar 2023 | US |