Compatible Packet Separation for Communication Networks
By adopting block adaptive recoding technology in multi-hop wireless networks, the pseudo-interleaver depth is calculated and the recoding packet generation is generated, the problems of wireless link unreliability and burst packet loss in traditional methods are solved, and network throughput and reliability are improved.
Patent Information
- Application Number
- CN202110354424.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-04-01
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2041-04-01
AI Technical Summary
In multi-hop wireless networks, traditional networking methods are difficult to effectively solve the unreliability problem of wireless links, especially burst packet loss, resulting in a decrease in network reliability.
Block adaptive recoding technology is adopted to calculate the pseudo-interleaver depth of each batch of data, perform block adaptive recoding, generate multiple recoding packets, and use these packets to generate transmission sequences to improve the throughput and reliability of the network.
It improves the throughput and reliability of multi-hop wireless networks, can effectively reduce the impact of burst packet loss, and is compatible with existing devices, avoiding the need for device upgrades.
Smart Images

Figure CN115189802B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of packet communication networks, and more particularly, to systems and methods for compatible packet separation in communication networks. Background Art
[0002] In the era of the Internet of Things, multi-hop wireless networks have become popular in smart city applications. Different from wired links, wireless links may not be reliable because they are vulnerable to interference from other wireless signals and environmental factors. Packet loss, especially burst packet loss, is a common phenomenon on wireless links. Since a packet can only reach its destination when it is successfully transmitted on all links, and its success probability decreases exponentially with the increase in the number of hops, traditional networking methods based on forwarding and end-to-end retransmission may not perform well in multi-hop wireless networks.
[0003] Thus, new systems, new methods, and other technologies for improving the reliability of wireless networks are needed. Summary of the Invention
[0004] An overview of various embodiments of the present invention is provided in the form of an example list below. As used below, any reference to a series of embodiments should be understood as referring to each of those embodiments separately (e.g., "Embodiments 1-4" should be understood as "Embodiments 1, 2, 3, or 4").
[0005] Example 1 is a computer-implemented method, including: receiving a block including a plurality of packets to be transmitted on a network, where the block includes a set of bulk data, and where the plurality of packets are distributed among the set of bulk data; calculating the pseudo-interleaver depth of each bulk data in the set of bulk data to generate a set of pseudo-interleaver depths; using the set of pseudo-interleaver depths to perform block adaptive recoding to generate multiple recoded packets for each bulk data in the set of bulk data; and using the multiple recoded packets for each bulk data in the set of bulk data to generate a transmission sequence.
[0006] Example 2 is the computer-implemented method of Example 1, further including: interleaving the plurality of packets using the transmission sequence.
[0007] Example 3 is the computer-implemented method of Examples 1-2, further including: outputting the transmission sequence.
[0008] Example 4 is the computer-implemented method of Examples 1-3, further including: calculating the dispersion efficiency of the transmission sequence; and determining whether the dispersion efficiency is the maximum dispersion efficiency.
[0009] Example 5 is the computer-implemented method of Examples 1-4, where performing block adaptive recoding using a set of pseudo-interleaver depths includes: calculating the channel model of each bulk data in the set of bulk data.
[0010] Example 6 is a computer-implemented method of Example 5, wherein performing block adaptive recoding using a set of pseudo-interleaver depths further includes: using the channel model of each batch of data in a set of batches of data to solve the block adaptive recoding optimization problem.
[0011] Example 7 is a computer-implemented method of Examples 1-6, wherein the pseudo-interleaver depth of a specific batch of data in a set of batches of data is calculated based on the average interval between consecutive packets of the specific batch of data.
[0012] Example 8 is a non-transitory computer-readable medium including instructions that, when executed by one or more processors, cause the one or more processors to perform operations including: receiving a block including a plurality of packets to be transmitted over a network, wherein the block includes a set of batches of data and wherein the plurality of packets are distributed among the set of batches of data; calculating a pseudo-interleaver depth for each batch of data in the set of batches of data to produce a set of pseudo-interleaver depths; performing block adaptive recoding using the set of pseudo-interleaver depths to produce a plurality of recoded packets for each batch of data in the set of batches of data; and using the plurality of recoded packets for each batch of data in the set of batches of data to produce a transmission sequence.
[0013] Example 9 is the non-transitory computer-readable medium of Example 8, wherein the operations further include: interleaving the plurality of packets using the transmission sequence.
[0014] Example 10 is the non-transitory computer-readable medium of Examples 8-9, wherein the operations further include: outputting the transmission sequence.
[0015] Example 11 is the non-transitory computer-readable medium of Examples 8-10, wherein the operations further include: calculating the dispersion efficiency of the transmission sequence; and determining whether the dispersion efficiency is the maximum dispersion efficiency.
[0016] Example 12 is the non-transitory computer-readable medium of Examples 8-11, wherein performing block adaptive recoding using a set of pseudo-interleaver depths includes: calculating the channel model of each batch of data in the set of batches of data.
[0017] Example 13 is the non-transitory computer-readable medium of Example 12, wherein performing block adaptive recoding using a set of pseudo-interleaver depths further includes: using the channel model of each batch of data in the set of batches of data to solve the block adaptive recoding optimization problem.
[0018] Example 14 is the non-transitory computer-readable medium of Examples 8-13, wherein the pseudo-interleaver depth of a specific batch of data in the set of batches of data is calculated based on the average interval between consecutive packets of the specific batch of data.
[0019] Embodiment 15 is a system, including: one or more processors and a computer-readable medium including instructions, which when executed by the one or more processors cause the one or more processors to perform operations, the operations including: receiving a block including a plurality of packets to be transmitted over a network, where the block includes a set of bulk data, and where the plurality of packets are distributed among the set of bulk data; calculating a pseudo-interleaver depth for each bulk data in the set of bulk data to generate a set of pseudo-interleaver depths; performing block adaptive recoding using the set of pseudo-interleaver depths to generate a plurality of recoded packets for each bulk data in the set of bulk data; and generating a transmission sequence using the plurality of recoded packets for each bulk data in the set of bulk data.
[0020] Example 16 is the system of Example 15, where the operations further include: interleaving the plurality of packets using the transmission sequence.
[0021] Example 17 is the system of Examples 15-16, where the operations further include: outputting the transmission sequence.
[0022] Embodiment 18 is the system of Embodiments 15-17, where the operations further include: calculating a dispersion efficiency of the transmission sequence; and determining whether the dispersion efficiency is the maximum dispersion efficiency.
[0023] Example 19 is the system of Examples 15-18, where performing block adaptive recoding using the set of pseudo-interleaver depths includes: calculating a channel model for each bulk data in the set of bulk data.
[0024] Example 20 is the system of Example 19, where performing block adaptive recoding using the set of pseudo-interleaver depths further includes: solving a block adaptive recoding optimization problem using the channel model for each bulk data in the set of bulk data. Description of the Drawings
[0025] The drawings are included in this specification and form a part of the specification, to provide a further understanding of the present disclosure. The drawings illustrate embodiments of the present disclosure and, together with the detailed description, are used to explain the principles of the present disclosure. It is not intended to show the structural details of the present disclosure in more detail than is necessary for a basic understanding of the present disclosure and the various ways in which the present disclosure can be practiced.
[0026] Figure 1 An exemplary network including a plurality of nodes is shown.
[0027] Figure 2A and Figure 2B An example of how an in-block interleaver can be applied to a block of packets is shown.
[0028] Figure 3An exemplary line network showing various combinations of upgraded nodes and non-upgraded nodes is shown.
[0029] Figure 4 An exemplary system for performing block adaptive recoding on an in-block interleaver is shown.
[0030] Figure 5 An exemplary method that can be performed after solving a linear programming problem is shown.
[0031] Figure 6 An exemplary algorithm that can be performed by a packet separator to approximate a transmission sequence is shown.
[0032] Figure 7 An exemplary algorithm that can be performed to fine-tune a permutation is shown.
[0033] Figure 8 An exemplary method that can be performed by a packet separator is shown.
[0034] Figure 9 An exemplary method that can be performed by a decision maker is shown.
[0035] Figure 10 A method for performing compatible packet separation on a communication network is shown.
[0036] Figure 11 An exemplary computer system including various hardware elements is shown.
[0037] In the drawings, similar components and / or features may have the same reference numerals. Additionally, various components of the same type can be distinguished by adding a letter after the reference numeral, or by adding a dash followed by a second numerical reference numeral for distinguishing similar components and / or features after the reference numeral. If only the first reference numeral is used in the specification, the description can apply to any one of the similar components and / or features having the same first reference numeral, regardless of the suffix. Detailed Description
[0038] In many scenarios, network capacity with packet loss can be achieved by using random linear network coding (RLNC). The simplest RLNC scheme is that the source node transmits a random linear combination of input packets, and each intermediate node transmits a random linear combination of the packets it has received. Once the destination node has received enough coded packets with linearly independent coding vectors, the destination node can decode the input packets. The network code itself acts as an end-to-end erasure correction code. However, some complexity issues need to be considered when implementing the RLNC scheme in an actual system, and these issues include: (1) the computational cost of encoding and decoding; (2) the storage cost and computational cost at intermediate nodes; (3) the overhead for transmitting coefficient vectors.
[0039] One way to address these issues is to apply network coding to a small subset of the coded packets generated from the input packets. This approach is known as batched network coding (BNC). The encoder of BNC generates batches of data, where each batch of data contains a set of coded packets. At each intermediate node, network coding is applied to the packets belonging to the same batch of data. The network coding operation performed at the intermediate node is called re-coding.
[0040] To distinguish different batches of data for re-coding, a batch data ID can be appended to each packet in the BNC protocol. The design of the minimal protocol of BNC is a basic building block for other protocols. In this protocol, once a node receives packets of the next batch of data (it is possible to skip this batch of data), the intermediate node starts re-coding the packets of the current batch of data. During re-coding, the same number of re-coded packets is generated for each batch of data. This way of re-coding is called baseline re-coding.
[0041] The application of an interleaver in this protocol can be called the interleaved minimal protocol. One reason for applying an interleaver is that burst packet losses reduce the throughput of BNC. In this interleaved protocol, once a node receives packets of a batch of data from the next block (it is possible to skip blocks), the intermediate node starts re-coding, where a block contains multiple batches of data. Similarly, a block ID can be applied to distinguish different blocks. The block ID can be calculated from the batch data ID so that the packet design remains unchanged. Although this protocol uses baseline re-coding, it is still effective when a node receives any permutation of the packets within a block.
[0042] However, baseline re-coding may not be optimal in terms of throughput. For example, adaptive re-coding (adapting to decide the number of re-coded packets for each batch of data) can outperform baseline re-coding. A previous advanced protocol has been discussed, which combines adaptive re-coding, minimizes the transmission delay caused by the interleaver, and interleaves the packets of the batch of data evenly. However, this advanced protocol does not adopt the concept of blocks, making it incompatible with the interleaved minimal protocol. This means that in order to use the new protocol, all deployed devices need to be upgraded. In fact, it may not be feasible to upgrade all devices simultaneously, and some devices may not be able to be upgraded. Therefore, it may be important to consider the hybrid use of protocols.
[0043] Some embodiments of the present disclosure may include adopting adaptive block-by-block re-encoding and designing an interleaver under a minimum protocol framework. The interleaver may use a dynamic interleaver depth for grouping bulk data in a block, i.e., it may allow the grouping belonging to the same bulk data to be unevenly scattered. The throughput of the BNC can be improved through this interleaver. Since the interleaver only permutes the packets within a block and is compatible with the minimum protocol, it works well with those devices that cannot be upgraded. This interleaver may be referred to as an in-block interleaver.
[0044] As described above, since the interleaver can be used together with adaptive re-encoding under a minimum protocol framework, it is compatible with existing devices deployed with the minimum protocol of interleaving. In some embodiments, this design may be considered to consist of three components. The first component, called a block-by-block adaptive re-encoder, may apply adaptive re-encoding with a pseudo-interleaver depth to determine the number of re-encoded packets to be generated for each bulk data in a block. The second component, called a packet separator, may determine the permutation of the packets applied to the current block according to the number of re-encoded packets given by the first component. The third component, called a decision maker, may select an optimized transmission sequence based on the dispersion efficiency of the calculated permutation and may also calculate the pseudo-interleaver depth for subsequent iterations of the three components.
[0045] In the following description, various examples will be described. For illustrative purposes, specific configurations and details are set forth to provide a thorough understanding of the examples. However, it will be apparent to those skilled in the art that the examples may be practiced without specific details. Additionally, well-known features may be omitted or simplified so as not to obscure the described embodiments.
[0046] Figure 1 An exemplary network 100 including multiple nodes is shown according to some embodiments of the present disclosure. Network 100 is an example of a three-hop network including a source node 102, a first intermediate node 104-1, a second intermediate node 104-2, and a destination node 106. Figure 1 A set of exemplary operations performed by the nodes is also shown, and the set of exemplary operations includes an encoding operation performed by the source node 102, a first re-encoding operation performed by the intermediate node 104-1, a second re-encoding operation performed by the intermediate node 104-2, and a decoding operation performed by the destination node 106. For example, during the operation of network 100, the source node 102 may encode multiple packets 108, the intermediate node 104-1 may re-encode the packets 108, the intermediate node 104-2 may re-encode the packets 108, and the destination node 106 may decode the packets 108.
[0047] Figure 2A and Figure 2BAn example is shown of how an in-block interleaver is applied to block 210 of packet 208 according to some embodiments of the present disclosure. In the example shown, block 210 consists of three batches of data 212. Packets 208 of the first batch of data 212-1 are represented by circles, packets 208 of the second batch of data 212-2 are represented by squares, and packets 208 of the third batch of data 212-3 are represented by triangles. Figure 2A The transmission sequence of packets 208 without interleaving is shown.
[0048] Figure 2B The transmission sequence of packets 208 with the in-block interleaver applied is shown. It can be observed that the dispersion of the packets can be non-uniform and the distance between any two consecutive packets of the same batch of data can be different. As used herein, applying an in-block interleaver can include arranging a plurality of packets while being restricted within the same block. Applying an in-block interleaver at a network node can include finding a suitable transmission sequence that gives a particular arrangement of the packets.
[0049] Figure 3 An exemplary line network 300 is shown having all four combinations of a link upgrade node 303 and a non-upgrade node 305 according to some embodiments of the present disclosure. In the example shown, the non-upgrade node 305 can only use a block interleaver, while the upgrade node 303 can use a batch data stream interleaver or an in-block interleaver. Since the described technology is compatible with the minimum protocol of interleaving, the advantage of the embodiments of the present disclosure is that it allows such non-upgrade nodes 305 to use an in-block interleaver.
[0050] Figure 4 An exemplary system 400 for performing compatible packet separation in a communication network according to some embodiments of the present disclosure is shown. The operations shown and the corresponding data can be generated / executed for each received packet block. In the example shown, system 400 includes a decision maker 402 that generates a pseudo-interleaver depth 416 and provides it to a block adaptive re-encoder 404. The block adaptive re-encoder 404 generates a plurality of re-encoded packets 418 and provides them to a packet separator 406. The packet separator 406 generates a transmission sequence 420 (an arrangement of the packets) and provides it to the decision maker 402. The decision maker 402 also selects and / or generates an optimized transmission sequence 422.
[0051] Adaptive recoding is a recoding strategy aimed at enhancing system throughput by optimizing the number of recoded packets based on the rank and channel conditions of batch data, where the rank of batch data is a measure of the amount of information carried by the batch data. In practice, due to the changes in the random environment, the channel conditions may vary and be unpredictable. One way to obtain the channel conditions is to perform short-term observations from time to time. In other words, a certain number of batch data are grouped into blocks, and the number of recoded packets of these batch data within the block is optimized through adaptive recoding. This method can be called block adaptive recoding.
[0052] After receiving a block of packets, the process starts from the decision maker 402. Initially, the pseudo-interleaver depth 416 of the batch data is set to 1 and then passed to the block adaptive recoder 404 that performs block adaptive recoding. For each iteration after the first iteration, after receiving the transmission sequence 420 from the packet separator 406, the decision maker 402 calculates the dispersion efficiency of the transmission sequence 420 and records the transmission sequence 420 if its dispersion efficiency is higher than all previously received transmission sequences of the current block. Then, the pseudo-interleaver depth 416 of the newly received transmission sequence 420 is calculated and passed to the block adaptive recoder 404.
[0053] In some embodiments, the decision maker 402 records the transmission sequence 420 (permutation of packets) with the highest dispersion efficiency among the N iterations provided by the packet separator 406. After N iterations, the decision maker 402 interrupts the loop and outputs the recorded transmission sequence 420 as the optimized transmission sequence 422. Then, the recoded packets of the batch data in the block can be transmitted according to the optimized transmission sequence 422.
[0054] In some embodiments, the channel conditions observed by each batch data are mimicked from the permutation of the packets in the block, so that the number of recoded packets of the batch data in the block can be re-optimized. As used herein, the pseudo-interleaver depth of a specific batch data may refer to the average interval between consecutive packets of the batch data. If there is only one packet in the batch data or if it is unknown, the pseudo-interleaver depth can be defined as 1. This depth (not necessarily an integer) represents the idle time before retransmitting the packets of the same batch data, i.e., it is an estimate of the channel conditions of the batch data. This depth can be calculated according to a given permutation of the packets in the block.
[0055] The number of recoded packets to be transmitted for each batch of data in a block can be used to maximize the average expected rank of the batch of data in the block at the next node. When calculating the expected rank of a batch of data at the next node, the pseudo-interleaver depth of the batch of data is used as the channel condition for transmission. The constraint of the optimization problem is that the total number of recoded packets to be transmitted for each batch of data is equal to the number of packets that can be transmitted in the block. This optimization problem is a concave integer programming problem. The mathematical formula of the problem is
[0056]
[0057]
[0058] where is the block (a group of batches of data), r b and t b are respectively the rank and the number of recoded packets of the batch of data b, t max is the total number of packets in the block, and E b (r b ,t b ) is the expected rank of the batch of data b at the next hop when using the pseudo-interleaver depth of the batch of data and transmitting t b recoded packets of the batch of data.
[0059] Due to the discrete nature of the objective function, this problem may not be solvable by the common solvers for concave optimization. The following is a new mathematical formula for block adaptive recoding. This formula is a linear programming problem, making it solvable by an optimization solver:
[0060]
[0061]
[0062]
[0063] In some embodiments, the block adaptive recoder 404 can perform the following operations for each iteration. First, the block adaptive recoder 404 can receive the pseudo-interleaving depth of each batch of data in the block. Next, the block adaptive recoder 404 can calculate the channel model of each batch of data and calculate E b (r b ,t b ). Next, the block adaptive recoder 404 can solve the optimization problem of block adaptive recoding. Finally, the block adaptive recoder 404 can output multiple recoded packets for each batch of data.
[0064] Figure 5Illustrates an exemplary method 500 according to some embodiments of the present disclosure, which can be executed after solving the above linear programming problem to ensure that the number t of recoded packets b is an integer. Method 500 includes, in step 502, collecting batch data with a non-integer number of recoded packets into a set S. Method 500 further includes, in step 504, calculating the sum R of the fractional parts of the number of recoded packets of the batch data in S. Method 500 further includes, in step 506, removing the fractional part of the number of recoded packets for each batch data in S. Method 500 further includes, in step 508, randomly selecting R batch data from S and adding one recoded packet to each of these batch data.
[0065] Figure 6 Illustrates an exemplary algorithm 600 for approximating a transmission sequence according to some embodiments of the present disclosure. Given the number of recoded packets to be transmitted for each batch data in a block, the aim is to find a permutation of the packets such that each consecutive pair of packets in the batch data is separated as much as possible. The dispersion efficiency is a score for how well the packets are separated in the permutation. The goal is to find a permutation that gives a high dispersion efficiency.
[0066] There can be different formulas for dispersion efficiency. For example, it can be the sum of the interval scores of all consecutive pairs of packets in the batch data, or the sum of the interval scores of all pairs of packets in the batch data. The interval score is a measure of the interval between two packets in the permutation. Some examples of the formula for the interval score include the negative reciprocal of the interval between the packets or the logarithm of the interval between the packets.
[0067] The problem of finding the optimal permutation is a combinatorial optimization problem. A near-optimal permutation can be efficiently approximated in two stages. Let L be the number of batch data in the block, and let t i be the number of recoded packets to be transmitted for the i-th batch data. Without loss of generality, the batch data can be sorted in descending order of t i to obtain t 1 ≥ t 2 ≥ … ≥ t L . T is the number of packets in the block. The first stage is to run algorithm 600 that gives an approximation of the permutation. This permutation is called the transmission sequence in the algorithm.
[0068] In this algorithm, the sliding function is defined by
[0069]
[0070] where
[0071]
[0072]
[0073] The idea of this algorithm is that for batch data with the largest number of recoded packets, the distance between packets should be minimized. To spread these packets as far as possible, the first index and the last index of the transmission sequence are assigned.
[0074] This algorithm collects batch data that sends the same number of recoded packets as a bundle. In each bundle, the batch data therein has the same priority, so that the interval between packets is not biased. The variable gap gives the target interleaver depth of the batch data (for spreading the packets evenly), but this gap can be non-integer. If the target index is calculated through the variable gap, a non-integer index or an index assigned to other batch data can be obtained. The sliding function is to find the closest unassigned index from the target index. The sliding indexes for the bundle are collected as a set of variables pos, and then the batch data is sequentially assigned to the indexes represented by pos.
[0075] Figure 7 An exemplary algorithm 700 according to some embodiments of the present disclosure is shown, which can optionally be executed to further fine-tune the permutation given by algorithm 600 to achieve better spreading efficiency, where Eff(f) is the spreading efficiency of the permutation f. In some embodiments, algorithm 700 is considered a fine-tuning algorithm. After running algorithm 700, the permutation is close to optimal. This permutation can be used as the initial configuration of other combinatorial search algorithms (such as simulated annealing) to further enhance the interval, but this additional fine-tuning step is also optional. Then, the permutation obtained through the above stages can be used as the interleaver for the packets in the block.
[0076] Figure 8 An exemplary method 800 that can be executed by a packet separator (e.g., packet separator 406) in combination with algorithm 600 and algorithm 700 according to some embodiments of the present disclosure is shown. In step 802, each batch of data receives a plurality of recoded packets 818 and runs algorithm 600 to generate an approximate transmission sequence. In step 804, the approximate transmission sequence is received and algorithm 700 is run to generate a fine-tuned transmission sequence. In step 806, the input (if step 804 is executed, it is the approximate transmission sequence or the fine-tuned transmission sequence) is used as the initial configuration to run other combinations of search algorithms, and the transmission sequence 820 is output.
[0077] Figure 9Illustrates an exemplary method that can be performed by a decider (e.g., decider 402) according to some embodiments of the present disclosure. At step 902, a transmission sequence 920 is received from a packet splitter, and the dispersion efficiency 924 of the transmission sequence 920 is calculated. At step 904, if the dispersion efficiency 924 of the transmission sequence 920 is the maximum / highest dispersion efficiency among all received transmission sequences, the transmission sequence 920 is recorded. At step 906, it is determined whether a sufficient number of iterations have been performed. If it is determined that a sufficient number of iterations have not been performed, method 900 proceeds to step 908, where the pseudo-interleaver depth 916 (one for each batch of data) of all batch data is calculated. If it is determined that a sufficient number of iterations have been performed, method 900 proceeds to step 910, where the recorded transmission sequence with the highest dispersion efficiency is output as the optimized transmission sequence 922.
[0078] Figure 10 Illustrates a method 1000 for performing compatible packet separation on a communication network according to some embodiments of the present disclosure. One or more steps of method 1000 may be omitted during the execution of method 1000, and the steps of method 1000 may be performed in any order and / or in parallel. Method 1000 may be implemented as a computer-readable medium or a computer program product including instructions that, when executed by one or more computers, cause the one or more computers to perform the steps of method 1000. Such a computer program product may be transmitted via a wired or wireless network in a data carrier signal carrying the computer program product.
[0079] At step 1002, a block (e.g., block 210) including a plurality of packets (e.g., packets 108, 208) to be transmitted over a network (e.g., network 100, 300) is received. In some embodiments, the block includes a set of batch data (e.g., batch data 212). In some embodiments, the plurality of packets are distributed among a set of batch data. In some cases, each of the plurality of packets may include a batch data identifier identifying which set of batch data the packet belongs to.
[0080] At step 1004, the pseudo-interleaver depth (e.g., pseudo-interleaver depths 416, 916) of each batch data in a set of batch data is calculated to produce a set of pseudo-interleaver depths. In some embodiments, the pseudo-interleaver depth of a particular batch data in a set of batch data may be calculated based on the average interval between consecutive packets of the particular batch data. In some embodiments, step 1004 may be performed by a decider (e.g., decider 402).
[0081] In step 1006, block adaptive recoding is performed using a set of pseudo - interleaver depths to produce multiple recoded packets (e.g., multiple recoded packets 418, 818) for each batch of data in a set of batches of data. In some embodiments, performing block adaptive recoding using a set of pseudo - interleaver depths includes calculating a channel model for each batch of data in a set of batches of data. In some embodiments, performing block adaptive recoding using a set of pseudo - interleaver depths further includes using the channel model of each batch of data in a set of batches of data to solve a block adaptive recoding optimization problem. In some embodiments, step 1006 may be performed by a block adaptive recoder (e.g., block adaptive recoder 404).
[0082] In step 1008, a transmission sequence (e.g., transmission sequences 420, 820, 920) is produced using the multiple recoded packets for each batch of data in a set of batches of data. In some embodiments, step 1008 may be performed by a packet separator (e.g., packet separator 406).
[0083] In step 1010, the dispersion efficiency of the transmission sequence (e.g., dispersion efficiency 924) is calculated. In some embodiments, step 1010 may be performed by a decision maker.
[0084] In step 1012, it is determined whether the dispersion efficiency is the maximum dispersion efficiency. In some embodiments, if it is determined that the dispersion efficiency is the maximum dispersion efficiency, the transmission sequence is recorded and / or stored in a storage device. In some embodiments, step 1012 may include determining whether the dispersion efficiency is the maximum among all previously calculated dispersion efficiencies. In some embodiments, step 1012 may be performed by a decision maker. After step 1012, method 1000 may return to step 1004 to perform another iteration through steps 1004 to 1012, or method 1000 may proceed to step 1014.
[0085] In step 1014, multiple packets are interleaved using an optimized transmission sequence (e.g., optimized transmission sequences 422, 922). In some embodiments, the optimized transmission sequence may be a transmission sequence having the maximum dispersion efficiency.
[0086] Figure 11 An exemplary computer system 1100 including various hardware elements is shown in accordance with some embodiments of the present disclosure. Computer system 1100 may be incorporated into or integrated with the devices described herein, and / or may be configured to perform some or all of the steps of the methods provided by various embodiments. For example, in various embodiments, computer system 1100 may be incorporated into system 400 and / or may be configured to perform method 900. It should be noted that Figure 11This only means providing a general description of the various components, and any or all of the components can be used appropriately. Thus, Figure 11 it is shown broadly how the individual system elements can be implemented in a relatively independent or relatively more integrated manner.
[0087] In the example shown, the computer system 1100 includes a communication medium 1102, one or more processors 1104, one or more input devices 1106, one or more output devices 1108, a communication subsystem 1110, and one or more storage devices 1112. The computer system 1100 can be implemented using various hardware implementation methods and embedded system technologies. For example, one or more elements of the computer system 1100 can be implemented as a field programmable gate array (FPGA) (such as or LATTICE commercially available FPGAs), system on a chip (SoC), application specific integrated circuit (ASIC), application specific standard product (ASSP), microcontroller, and / or hybrid devices such as SoC FPGAs, etc.
[0088] The various hardware elements of the computer system 1100 can be coupled via the communication medium 1102. Although the communication medium 1102 is shown as a single connection for clarity, it should be understood that the communication medium 1102 can include various amounts and types of communication media for transferring data between the hardware elements. For example, the communication medium 1102 can include one or more wires (e.g., conductive traces, paths, or leads on a printed circuit board (PCB) or integrated circuit (IC), microstrip, stripline, coaxial cable), one or more optical waveguides (e.g., optical fiber, ribbon waveguide), and / or one or more wireless connections or links (e.g., infrared wireless communication, radio communication, microwave wireless communication, and other possibilities.
[0089] In some embodiments, communication medium 1102 may include one or more buses that connect the pins of the hardware components of computer system 1100. For example, communication medium 1102 may include a bus that connects processor 1104 to main memory 1114 (referred to as the system bus), and a bus that connects main memory 1114 to input device 1106 or output device 1108 (referred to as the expansion bus). The system bus may include several elements of an address bus, a data bus, and a control bus. The address bus may transfer a memory address from processor 1104 to the address bus circuitry associated with main memory 1114 so that the data bus can access the data contained at the memory address and transfer it back to processor 1104. The control bus may carry commands from processor 1104 and return status signals from main memory 1114. Each bus may include multiple wires for carrying multiple bits of information, and each bus may support serial or parallel transmission of data.
[0090] Processor 1104 may include one or more central processing units (CPUs), graphics processing units (GPUs), neural network processors or accelerators, digital signal processors (DSPs), etc. The CPU may take the form of a microprocessor fabricated on a single IC chip with a metal-oxide-semiconductor field-effect transistor (MOSFET) structure. Processor 1104 may include one or more multi-core processors, where each core may read and execute program instructions simultaneously with other cores.
[0091] Input device 1106 may include one or more of various user input devices, such as a mouse, keyboard, microphone, and various sensor input devices, such as an image capture device, pressure sensors (e.g., barometer, tactile sensor), temperature sensors (e.g., thermometer, thermocouple, thermistor), motion sensors (e.g., accelerometer, gyroscope. tilt sensor), light sensors (e.g., photodiode, photodetector, charge-coupled device), etc. Input device 1106 may also include a device for reading and / or receiving a removable storage device or other removable media. Such removable media may include optical discs (e.g., Blu-ray disc, DVD, CD), memory cards (e.g., compact flash card, secure digital (SD) card, memory stick), floppy disks, universal serial bus (USB) flash drives, external hard disk drives (HDD), or solid state drives (SSD), etc.
[0092] The output device 1108 may include one or more of various devices that convert information into a human-readable form, such as, but not limited to, display devices, speakers, printers, etc. The output device 1108 may also include a device for writing to a removable storage device or other removable media, such as those described with reference to the input device 1106. The output device 1108 may also include various actuators for causing physical movement of one or more components. Such actuators may be hydraulic, pneumatic, electric, and may be provided with control signals by the computer system 1100.
[0093] The communication subsystem 1110 may include hardware components for connecting the computer system 1100 to systems or devices located external to the computer system 1100, such as via a computer network. In various embodiments, the communication subsystem 1110 may include a wired communication device (e.g., Universal Asynchronous Receiver-Transmitter (UART)) coupled to one or more input / output ports, an optical communication device (e.g., optical modem), an infrared communication device, a radio communication device (e.g., wireless network interface controller, Bluetooth device, IEEE 802.11 device, Wi-Fi device, Wi-Max device (cellular device), and other possibilities.
[0094] The storage device 1112 may include various data storage devices of the computer system 1100. For example, the storage device 1112 may include various types of computer memories with various response times and capacities, from memories with faster response times and lower capacities (such as processor registers and caches (e.g., L0, L1, L2)), to memories with medium response times and medium capacities (such as random access memory), to memories with lower response times and lower capacities (such as solid state drives and hard disk drive disks). Although the processor 1104 and the storage device 1112 are shown as separate elements, it should be understood that the processor 1104 may include different levels of on-processor memory, such as processor registers and caches that may be used by a single processor or shared among multiple processors.
[0095] The storage device 1112 may include a main memory 1114 that can be directly accessed by the processor 1104 via the memory bus of the communication medium 1102. For example, the processor 1104 may continuously read and execute instructions stored in the main memory 1114. Thus, various software elements may be loaded into the main memory 1114 to be read and executed by the processor 1104, as Figure 11As shown. Generally, the main memory 1114 is a volatile memory that loses all data when power is turned off, so power is required to preserve the stored data. The main memory 1114 may also include a small portion of non-volatile memory that contains software (such as BIOS firmware, for example) for reading other software stored in the storage device 1112 into the main memory 1114. In some embodiments, the volatile memory of the main memory 1114 is implemented as random access memory (RAM) (such as dynamic RAM (DRAM)), and the non-volatile memory of the main memory 1114 is implemented as read-only memory (ROM) (such as flash memory, erasable programmable read-only memory (EPROM), or electrically erasable programmable read-only memory (EEPROM)).
[0096] The computer system 1100 may include software elements shown as currently residing within the main memory 1114, and the software elements may include an operating system, device drivers, firmware, compilers, and / or other code (such as one or more applications that may include computer programs provided by various embodiments of the present disclosure). By way of example only, one or more steps described with respect to any of the above methods may be implemented as instructions 1116 that may be executed by the computer system 1100. In one example, such instructions 1116 may be received by the computer system 1100 using the communication subsystem 1110 (e.g., via a wireless or wired signal carrying the instructions 1116), carried by the communication medium 1102 to the storage device 1112, stored within the storage device 1112, read into the main memory 1114, and run by the processor 1104 to execute one or more steps of the method. In another example, the instructions 1116 may be received by the computer system 1100 using the input device 1106 (e.g., via a reader for removable media), carried by the communication medium 1102 to the storage device 1112, stored within the storage device 1112, read into the main memory 1114, and run by the processor 1104 to execute one or more steps of the method.
[0097] In some embodiments of the present disclosure, the instructions 1116 are stored on a computer-readable storage medium, or simply stored on a computer-readable medium. Such a computer-readable medium may be non-transitory, and thus may be referred to as a non-transitory computer-readable medium. In some cases, the non-transitory computer-readable medium may be incorporated within the computer system 1100. For example, as Figure 11 shown, the non-transitory computer-readable medium may be one of the storage devices 1112, and the instructions 1116 are stored in the storage device 1112. In some cases, the non-transitory computer-readable medium may be separate from the computer system 1100. In one example, as Figure 11As shown, the non-transitory computer-readable medium can be a removable medium provided to the input device 1106, such as those described with reference to the input device 1106, and the instructions 1116 are provided to the input device 1106. In another example, as Figure 11 shown, the non-transitory computer-readable medium can be a component of a remote electronic device such as a mobile phone, which can wirelessly transmit a data signal carrying the instructions 1116 to the computer system 1100 using the communication subsystem 1110, and the instructions 1116 are provided to the communication subsystem 1110.
[0098] The instructions 1116 can take any suitable form to be read and / or executed by the computer system 1100. For example, the instructions 1116 can be source code (written in a human-readable programming language such as Java, C, C++, C#, Python), object code, assembly language, machine code, microcode, executable code, etc. In one example, the instructions 1116 are provided to the computer system 1100 in the form of source code, and a compiler is used to convert the instructions 1116 from source code to machine code, which can then be read into the main memory 1114 to be executed by the processor 1104. As another example, the instructions 1116 are provided to the computer system 1100 in the form of an executable file with machine code, and the machine code can be immediately read into the main memory 1114 to be executed by the processor 1104. In various examples, the instructions 1116 can be provided to the computer system 1100 in encrypted or unencrypted form, compressed or uncompressed form, as an installation package or for initialization of a broader software deployment and other possibilities.
[0099] In one aspect of the present disclosure, a system (e.g., the computer system 1100) is provided to perform the methods according to various embodiments of the present disclosure. For example, some embodiments can include a system that includes one or more processors (e.g., the processor 1104) communicatively coupled to a non-transitory computer-readable medium (e.g., the storage device 1112 or the main memory 1114). The non-transitory computer-readable medium can have instructions (e.g., the instructions 1116) stored therein, which when executed by the one or more processors cause the one or more processors to perform the methods described in the various embodiments.
[0100] In another aspect of the present disclosure, a computer program product including instructions (e.g., the instructions 1116) is provided to perform the methods according to various embodiments of the present disclosure. The computer program product can be tangibly embodied in a non-transitory computer-readable medium (e.g., the storage device 1112 or the main memory 1114). The instructions can be configured to cause one or more processors (e.g., the processor 1104) to perform the methods described in the various embodiments.
[0101] In another aspect of the present disclosure, a non-transitory computer-readable medium (e.g., storage device 1112 or main memory 1114) is provided. The non-transitory computer-readable medium may have instructions (e.g., instructions 1116) stored therein that, when executed by one or more processors (e.g., processor 1104), cause the one or more processors to perform the methods described in the various embodiments.
[0102] The methods, systems, and devices discussed above are examples. Various configurations may appropriately omit, replace, or add various processes or components. For example, in an alternative configuration, the method may be performed in a different order than described, and / or various stages may be added, omitted, and / or combined. Additionally, the features described with respect to certain configurations may be combined into various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Additionally, technology is constantly evolving, so many elements are examples and do not limit the scope of the present disclosure or the claims.
[0103] Specific details are given in the description to provide a thorough understanding of the exemplary configurations including the implementations. However, the configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary details to avoid obscuring the configurations. This description only provides exemplary configurations and does not limit the scope, application, or configuration of the claims. Instead, the previous description of the configurations will provide those skilled in the art with an enabling description for implementing the techniques. Various changes may be made to the function and arrangement of the elements without departing from the spirit or scope of the present disclosure.
[0104] Some exemplary configurations have been described. Various modifications, alternative constructions, and equivalent forms may be used without departing from the spirit of the present disclosure. For example, the above elements may be components of a larger system, where other rules may take precedence over the application of the technology, or otherwise modify the application of the technology. Additionally, multiple steps may be taken before, during, or after considering the above elements. Therefore, the above description does not limit the scope of protection of the claims.
[0105] As used herein and in the appended claims, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Thus, for example, a reference to "a user" includes a reference to one or more such users, and a reference to "a processor" includes a reference to one or more processors and equivalent forms known to those skilled in the art, and so on.
[0106] In addition, as used in this specification and the appended claims, the words "comprise", "comprising", "contains", "containing", "include", "including", and "includes" are intended to specify the presence of the stated features, integers, components, or steps, but do not preclude the presence or addition of one or more other features, integers, components, steps, operations, or groups.
[0107] It should also be understood that the examples and embodiments described herein are for illustrative purposes only and that various modifications or changes will be suggested to those skilled in the art and that such modifications or changes will be within the spirit and scope of this application and the scope of the appended claims.
Claims
1. A computer-implemented method, comprising: receiving a block comprising a plurality of packets to be transmitted over a network, wherein the block comprises a set of bulk data, and wherein the plurality of packets are distributed among the set of bulk data and each bulk data in the set of bulk data comprises at least one packet; calculating a pseudo-interleaver depth for each bulk data in the set of bulk data to produce a set of pseudo-interleaver depths; performing block adaptive recoding using the set of pseudo-interleaver depths to produce a plurality of recoded packets for each bulk data in the set of bulk data; and using the plurality of recoded packets for each bulk data in the set of bulk data to produce a transmission sequence.
2. The computer-implemented method according to claim 1, further comprising: interleaving the plurality of packets using the transmission sequence.
3. The computer-implemented method according to claim 1, further comprising: outputting the transmission sequence.
4. The computer-implemented method according to claim 1, further comprising: calculating a dispersion efficiency of the transmission sequence; and determining whether the dispersion efficiency is a maximum dispersion efficiency.
5. The computer-implemented method according to claim 1, wherein, performing the block adaptive recoding using the set of pseudo-interleaver depths comprises: calculating a channel model for each bulk data in the set of bulk data.
6. The computer-implemented method according to claim 5, wherein, performing the block adaptive recoding using the set of pseudo-interleaver depths further comprises: solving a block adaptive recoding optimization problem using the channel model for each bulk data in the set of bulk data.
7. The computer-implemented method according to claim 1, wherein, the pseudo-interleaver depth of a particular bulk data in the set of bulk data is calculated based on an average interval between consecutive packets of the particular bulk data.
8. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the operations comprising: receiving a block comprising a plurality of packets to be transmitted over a network, wherein the block comprises a set of bulk data, and wherein the plurality of packets are distributed among the set of bulk data and each bulk data in the set of bulk data comprises at least one packet; calculating a pseudo-interleaver depth for each bulk data in the set of bulk data to produce a set of pseudo-interleaver depths; performing block adaptive recoding using the set of pseudo-interleaver depths to produce a plurality of recoded packets for each bulk data in the set of bulk data; and using the plurality of recoded packets for each bulk data in the set of bulk data to produce a transmission sequence.
9. The non-transitory computer-readable medium according to claim 8, wherein, the operations further comprise: interleaving the plurality of packets using the transmission sequence.
10. The non-transitory computer-readable medium according to claim 8, wherein, the operations further comprise: outputting the transmission sequence.
11. The non-transitory computer-readable medium according to claim 8, wherein, the operations further include: calculating a dispersion efficiency of the transmission sequence; and determining whether the dispersion efficiency is a maximum dispersion efficiency.
12. The non-transitory computer-readable medium according to claim 8, wherein, performing the block adaptive recoding using the set of pseudo-interleaver depths includes: calculating a channel model for each batch data in the set of batch data.
13. The non-transitory computer-readable medium according to claim 12, wherein, performing the block adaptive recoding using the set of pseudo-interleaver depths further includes: solving a block adaptive recoding optimization problem using the channel model for each batch data in the set of batch data.
14. The non-transitory computer-readable medium according to claim 8, wherein, the pseudo-interleaver depth of a specific batch data in the set of batch data is calculated based on an average interval between consecutive packets of the specific batch data.
15. A system, comprising: one or more processors; and a computer-readable medium including instructions that, when executed by the one or more processors, cause the one or more processors to perform operations, the operations including: receiving a block including a plurality of packets to be transmitted over a network, wherein the block includes a set of batch data, and wherein the plurality of packets are distributed among the set of batch data and each batch data in the set of batch data includes at least one packet; calculating a pseudo-interleaver depth for each batch data in the set of batch data to generate a set of pseudo-interleaver depths; performing block adaptive recoding using the set of pseudo-interleaver depths to generate a plurality of recoded packets for each batch data in the set of batch data; and generating a transmission sequence using the plurality of recoded packets for each batch data in the set of batch data.
16. The system according to claim 15, wherein, the operations further include: interleaving the plurality of packets using the transmission sequence.
17. The system according to claim 15, wherein, the operations further include: outputting the transmission sequence.
18. The system according to claim 15, wherein, the operations further include: calculating a dispersion efficiency of the transmission sequence; and determining whether the dispersion efficiency is a maximum dispersion efficiency.
19. The system according to claim 15, wherein, performing the block adaptive recoding using the set of pseudo-interleaver depths includes: calculating a channel model for each batch data in the set of batch data.
20. The system according to claim 19, wherein, performing the block adaptive recoding using the set of pseudo-interleaver depths further includes: solving a block adaptive recoding optimization problem using the channel model for each batch data in the set of batch data.
Citation Information
Patent Citations
Subset coding for communication systems
CN103250463A
Loss-resilient protocols for communication networks
CN107040334A