CN113543206B - Method, system and device for data transmission - Google Patents
Method, system and device for data transmission Download PDFInfo
- Publication number
- CN113543206B CN113543206B CN202010316063.3A CN202010316063A CN113543206B CN 113543206 B CN113543206 B CN 113543206B CN 202010316063 A CN202010316063 A CN 202010316063A CN 113543206 B CN113543206 B CN 113543206B
- Authority
- CN
- China
- Prior art keywords
- node
- transmission
- transmission path
- data packet
- paths
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/18—Negotiating wireless communication parameters
- H04W28/20—Negotiating bandwidth
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The application provides a data transmission method, a data transmission system and a data transmission device, which are beneficial to improving the transmission success rate of coded data packets and reducing the transmission time delay of the coded data packets. The method comprises the following steps: under the condition that congestion occurs in the current transmission path, the first node determines at least two candidate transmission paths, wherein the at least two candidate transmission paths take the first node as a starting point and take a destination node as an end point; the first node determining at least one transmission path from the at least two candidate transmission paths based on the remaining delay of the encoded data packet, the reception bandwidth of the encoded data packet, and the information of the at least two candidate transmission paths; the first node transmits the encoded data packet over the at least one transmission path.
Description
Technical Field
The present application relates to the field of communications, and more particularly, to a method, system, and apparatus for data transmission in the field of communications.
Background
The channel coding technology can send the source code and the error correction code generated according to the source code from the source end to the receiving end in the transmission process, and information loss or error can be generated in the transmission process, for example, bit loss or error can be generated on a wireless air interface due to electromagnetic interference, or data packet loss can be caused by congestion or flash of router equipment responsible for forwarding on the internet. When the receiving end receives a part of source codes and error correction codes processed by the channel coding technology, the receiving end can try to recover the source codes according to the information, but the receiving end can recover transmission damage with different degrees due to the difference of the channel coding technology.
Batch sparse coding (batched sparse codes, BATS codes) is a coding scheme designed for the existence of packet loss phenomena in the network. BATS combines the advantages of traditional coding technology, and can recover transmission damage in multi-hop network with economic redundant bandwidth and calculation difficulty by combining low density parity check code (low density parity check, LDPC) and run-length coding (RNLC) coding technology. However, when batch sparse coding is transmitted in a network, bandwidth-limited scenarios, such as congestion, packet loss, etc., may be encountered, resulting in failure of coded data transmission.
Disclosure of Invention
The application provides a data transmission method, a data transmission system and a data transmission device, which are beneficial to improving the transmission success rate of coded data packets and reducing the transmission time delay of the coded data packets.
In a first aspect, a method for data transmission is provided, including: under the condition that congestion occurs in a current transmission path, a first node determines at least two candidate transmission paths, wherein the at least two candidate transmission paths take the first node as a starting point and take a destination node as an end point; the first node determines at least one transmission path from the at least two candidate transmission paths based on the remaining time delay of the encoded data packet, the receiving bandwidth of the encoded data packet, and the information of the at least two candidate transmission paths; the first node transmits the encoded data packet over the at least one transmission path.
According to the data transmission method, after the first node determines that congestion occurs in the current transmission path, the transmission path is reselected based on the residual time delay of the coded data packet, the receiving bandwidth of the coded data packet and the information of at least two candidate transmission paths, and data transmission is performed through the new transmission path, so that the transmission success rate of the coded data packet is improved, and the transmission time delay of the coded data packet is reduced.
It should be understood that the first node may be a source node or an intermediate node on the current transmission path, which is not limited in the embodiment of the present application.
The congestion of the current transmission path may be a bandwidth-limited scenario, such as congestion, packet loss, or both congestion and packet loss, i.e., the current transmission path has a bottleneck, and cannot resist packet loss damage by adding redundancy, resulting in failure of encoded data transmission. Illustratively, the occurrence of congestion on the current transmission path may refer to: the bandwidth of the current transmission path is limited, the coded data packet is sent according to the original transmission matrix H, and the coded data packet with the number greater than or equal to rank (GH) cannot be received at the destination node, so that decoding failure is caused. In this case, that is, the first node determines that the current transmission path is congested or is in a bandwidth limited state, the first node may reselect the transmission path by using the method according to the embodiment of the present application, so that the encoded data packet is successfully transmitted to the destination node.
With reference to the first aspect, in certain implementation manners of the first aspect, the information of the at least two candidate transmission paths includes at least one of the following information: transmission delay between nodes on each of the at least two candidate transmission paths; recoding time delay of the nodes on each candidate transmission path; the available bandwidth of each candidate transmission path; or, the packet loss rate between the nodes on each candidate transmission path.
It should be understood that, the first node in the embodiment of the present application may select the at least one transmission path from the at least two candidate transmission paths based on at least one of the information such as the transmission delay, the recoding delay, the available bandwidth, and the packet loss rate. The above information may be collectively referred to as information of a transmission path, or path information, or other names, and is not limited herein. The information may be pre-acquired by the first node. Illustratively, after the network topology is established, the first node may obtain path information in all transmission paths associated with the first node, including, for example, a list of nodes, transmission delays between nodes, packet loss rates between nodes, and so forth.
With reference to the first aspect, in certain implementation manners of the first aspect, the at least one transmission path includes a first transmission path, where the first transmission path satisfies the following condition: the sum of transmission delays between nodes on the first transmission path is less than or equal to the remaining delay of the encoded data packet; the available bandwidth of the first transmission path is greater than or equal to the receiving bandwidth of the coded data packet; the packet loss rate between the nodes on the first transmission path is smaller than or equal to the encoded packet loss recovery rate.
The transmission delay may include a forwarding delay, or may include a forwarding delay and a recoding delay, which is not limited by the embodiment of the present application. If the transmission delay includes only the forwarding delay, the condition that the sum of the transmission delays between the nodes on the first transmission path is less than or equal to the remaining delay of the encoded data packet may be replaced by that the sum of the transmission delay and the recoding delay between the nodes on the first transmission path is less than or equal to the remaining delay of the encoded data packet. The "available bandwidth of the first transmission path" described above may be replaced with the minimum value of the available bandwidth between nodes on the first transmission path. The "packet loss rate between nodes on the first transmission path is less than or equal to the encoded packet loss recovery rate" may be replaced by that the maximum value of the packet loss rate between nodes on the first transmission path is less than or equal to the encoded packet loss recovery rate. The encoded data packet to be transmitted includes an original data packet and a redundant data packet, and the encoded packet loss recovery rate in the embodiment of the present application refers to a ratio of the number of redundant data packets to be transmitted to the number of original data packets. For example, the number of original data packets is 10, and in order to resist packet loss damage, the number of coded data packets to be transmitted is 15, and at this time, the recovery rate of coded packet loss is 50%.
In the embodiment of the application, the first node cannot send enough coded data packets to the next node due to the limited bandwidth, so that the destination node cannot obtain enough coded data packets to finish decoding. In addition, part of the nodes can be set as non-coding nodes, namely simple forwarding nodes, and the nodes of the new transmission path finish forwarding and recoding of the coded data packet according to the path information indicated in the coded data packet and the processing type of the nodes. By the processing, the transmission of the coded packet can be completed with smaller bandwidth on the premise of meeting the time delay requirement, so that the problem that the coded data packet cannot be transmitted on the original path is solved. In other words, the embodiment of the application combines the principle of BATS coding, and utilizes sacrifice time delay (still meeting the service requirement) to obtain certain bandwidth gain, thereby solving the problem of bandwidth limitation.
With reference to the first aspect, in certain implementation manners of the first aspect, the at least one transmission path includes at least two second transmission paths, where the at least two second transmission paths satisfy the following conditions: the sum of the transmission delays between the nodes on the at least two second transmission paths is smaller than or equal to the residual delay of the coded data packet; the sum of the available bandwidths of the at least two second paths is greater than or equal to the receiving bandwidth of the coded data packet; and the packet loss rate between the nodes in the at least two second paths is smaller than or equal to the encoded packet loss recovery rate.
It should be appreciated that the transmission delay may include a forwarding delay, or may include a forwarding delay and a recoding delay, which is not limited by the embodiment of the present application. If the transmission delay only includes the forwarding delay, the condition that the sum of the transmission delays between the nodes on the at least two second transmission paths is smaller than or equal to the remaining delay of the encoded data packet may be replaced by that the sum of the transmission delay between the nodes on the at least two second transmission paths and the recoding delay is smaller than or equal to the remaining delay of the encoded data packet. The "packet loss rate between nodes on the at least two second transmission paths is less than or equal to the encoded packet loss recovery rate" may be replaced by that the maximum value of the packet loss rate between nodes on the at least two second transmission paths is less than or equal to the encoded packet loss recovery rate. The encoded data packets to be transmitted may include an original data packet and a redundant data packet, and the encoded packet loss recovery rate in the embodiment of the present application refers to a ratio of the number of redundant data packets to be transmitted to the number of original data packets.
With reference to the first aspect, in certain implementation manners of the first aspect, before the first node sends the encoded data packet on the at least one transmission path, the method further includes: the first node distributes the coded data packets to the at least two second transmission paths according to the available bandwidth of each second transmission path in the at least two second transmission paths and the transmission delay between the nodes on each second transmission path; the first node transmitting the encoded data packet over the at least one transmission path, comprising: the first node transmits the encoded data packets on the at least two second transmission paths, respectively.
Further, the first node may use the packet loss rates of the at least two second transmission paths as parameters for distributing the encoded data packets between the paths.
The embodiment of the application solves the problem that the original path cannot support the transmission of the coded packet and other single transmission paths cannot meet the transmission requirement through the selection of the composite path, but has the scene that the composite path meets the transmission of the coded packet, thereby improving the flexibility of data transmission.
With reference to the first aspect, in some implementations of the first aspect, the at least one transmission path is a path with a largest number of nodes among paths satisfying the condition among the at least two candidate transmission paths.
In the case where at least one transmission path includes one transmission path (i.e., a first transmission path), the first node may exemplarily determine one candidate transmission path including the largest number of nodes as the above-described first transmission path. Thus, a larger bandwidth can be obtained, and the transmission reliability of the coded data packet is ensured. For example, the first node may determine one candidate transmission path including the least number of nodes as the above-described first transmission path. Thus, smaller transmission delay can be obtained, and the data transmission efficiency is improved.
In the case that the at least one transmission path includes at least two transmission paths, the first node may determine each of all the at least two candidate transmission paths, and select a combination of the at least two candidate transmission paths that satisfies the condition. For example, the first node may determine a set of candidate transmission paths including the largest number of nodes as the at least two transmission paths. Thus, a larger bandwidth can be obtained, and the transmission reliability of the coded data packet is ensured. For example, the first node may determine a set of candidate transmission paths including the least number of nodes as the at least two transmission paths. Thus, smaller transmission delay can be obtained, and the data transmission efficiency is improved.
With reference to the first aspect, in certain implementation manners of the first aspect, before the first node sends the encoded data packet on the at least one transmission path, the method further includes: the first node determines a processing type of a node on the at least one transmission path according to the information of the at least one transmission path, wherein the processing type comprises at least one of forwarding, recoding or decoding; the first node transmitting the encoded data packet over the at least one transmission path, comprising: the first node sends the coded data packet on the at least one transmission path, wherein the coded data packet carries the processing type of the node on the at least one transmission path.
Illustratively, to further improve the efficiency of data transmission, the first node may determine the processing type of the node on the at least one transmission path after selecting the at least one transmission path. For example, the first node may determine the role assumed by the node on at least one transmission path according to the information such as delay, packet loss rate, available bandwidth on at least one transmission path, and set a processing type (handle type) of each node in the encoded data packet, that is, determine the processing type of the node.
With reference to the first aspect, in certain implementation manners of the first aspect, the encoded data packet carries at least one of the following information: service requirement information for indicating the time delay requirement of the data transmission; information of the at least one transmission path for indicating a node on the at least one transmission path; and the processing type is used for indicating a next hop node receiving the coded data packet to perform at least one of forwarding, recoding or decoding on the coded data packet.
In a second aspect, there is provided an apparatus for data transmission for performing the method in any one of the possible implementations of the first aspect. In particular, the apparatus comprises means for performing the method in any one of the possible implementations of the first aspect described above.
In a third aspect, there is provided another apparatus for data transmission, comprising a processor coupled to a memory, operable to execute instructions in the memory to implement a method as in any one of the possible implementations of the first aspect. Optionally, the apparatus further comprises a memory. Optionally, the apparatus further comprises a communication interface, the processor being coupled to the communication interface.
In one implementation, the means for data transmission is a transmission node. When the means for data transmission is a transmission node, the communication interface may be a transceiver, or an input/output interface.
In another implementation, the means for data transmission is a chip configured in the transmission node. When the means for data transmission is a chip arranged in a transmission node, the communication interface may be an input/output interface.
In a fourth aspect, there is provided a processor comprising: input circuit, output circuit and processing circuit. The processing circuitry is configured to receive signals via the input circuitry and to transmit signals via the output circuitry such that the processor performs the method of any one of the possible implementations of the first aspect described above.
In a specific implementation process, the processor may be a chip, the input circuit may be an input pin, the output circuit may be an output pin, and the processing circuit may be a transistor, a gate circuit, a trigger, various logic circuits, and the like. The input signal received by the input circuit may be received and input by, for example and without limitation, a receiver, the output signal may be output by, for example and without limitation, a transmitter and transmitted by a transmitter, and the input circuit and the output circuit may be the same circuit, which functions as the input circuit and the output circuit, respectively, at different times. The embodiment of the application does not limit the specific implementation modes of the processor and various circuits.
In a fifth aspect, a processing device is provided that includes a processor and a memory. The processor is configured to read instructions stored in the memory and to receive signals via the receiver and to transmit signals via the transmitter to perform the method of any one of the possible implementations of the first aspect.
Optionally, the processor is one or more and the memory is one or more.
Alternatively, the memory may be integrated with the processor or the memory may be separate from the processor.
In a specific implementation process, the memory may be a non-transient (non-transitory) memory, for example, a Read Only Memory (ROM), which may be integrated on the same chip as the processor, or may be separately disposed on different chips.
It should be appreciated that the related data interaction process, for example, transmitting the indication information, may be a process of outputting the indication information from the processor, and the receiving the capability information may be a process of receiving the input capability information by the processor. Specifically, the data output by the processing may be output to the transmitter, and the input data received by the processor may be from the receiver. Wherein the transmitter and receiver may be collectively referred to as a transceiver.
The processing means in the fifth aspect may be a chip, and the processor may be implemented by hardware or by software, and when implemented by hardware, the processor may be a logic circuit, an integrated circuit, or the like; when implemented in software, the processor may be a general-purpose processor, implemented by reading software code stored in a memory, which may be integrated in the processor, or may reside outside the processor, and exist separately.
In a sixth aspect, there is provided a computer program product comprising: a computer program (which may also be referred to as code, or instructions) which, when executed, causes a computer to perform the method of any one of the possible implementations of the first aspect.
In a seventh aspect, a computer readable storage medium is provided, which stores a computer program (which may also be referred to as code, or instructions) which, when run on a computer, causes the computer to perform the method of any one of the possible implementations of the first aspect.
In an eighth aspect, a communication system is provided, comprising the first node and the destination node as described above.
Drawings
Fig. 1 shows a schematic diagram of a communication system according to an embodiment of the application.
Fig. 2 shows a schematic diagram of a code transmission process of batch sparse coding.
Fig. 3 shows a schematic flow chart of a method of data transmission according to an embodiment of the application.
Fig. 4 shows a schematic flow chart of a method of another data transmission of an embodiment of the application.
Fig. 5 shows a schematic block diagram of an apparatus for data transmission according to an embodiment of the application.
Fig. 6 shows a schematic block diagram of another data transmission apparatus of an embodiment of the application.
Detailed Description
The technical scheme of the application will be described below with reference to the accompanying drawings.
The technical scheme of the embodiment of the application can be applied to various communication systems, such as: global system for mobile communications (global system for mobile communications, GSM), code division multiple access (code division multiple access, CDMA) system, wideband code division multiple access (wideband code division multiple access, WCDMA) system, general packet radio service (general packet radio service, GPRS), long term evolution (long term evolution, LTE) system, LTE frequency division duplex (frequency division duplex, FDD) system, LTE time division duplex (time division duplex, TDD), universal mobile telecommunications system (universal mobile telecommunication system, UMTS), worldwide interoperability for microwave access (worldwide interoperability for microwave access, wiMAX) communication system, future fifth generation (5th generation,5G) system, or New Radio (NR), etc.
It should also be understood that the technical solution of the embodiment of the present application may also be applied to various communication systems based on non-orthogonal multiple access technologies, such as a sparse code multiple access (sparse code multiple access, SCMA) system, although SCMA may also be referred to by other names in the communication field; further, the technical solution of the embodiment of the present application may be applied to a multi-carrier transmission system using a non-orthogonal multiple access technology, for example, an orthogonal frequency division multiplexing (orthogonal frequency division multiplexing, OFDM), a filter bank multi-carrier (FBMC), a general frequency division multiplexing (generalized frequency division multiplexing, GFDM), a filtered orthogonal frequency division multiplexing (F-OFDM) system, and the like using a non-orthogonal multiple access technology.
The technical scheme of the embodiment of the application can be widely applied to satellite communication networks, wireless sensor networks, internet of things (internet of things, ioT) systems and the like.
The nodes (including the source node, the intermediate node and the destination node) in the embodiment of the application can be terminal equipment or network equipment.
The terminal device may refer to a user equipment, an access terminal, a subscriber unit, a subscriber station, a mobile station, a remote terminal, a mobile device, a user terminal, a wireless communication device, a user agent, or a user equipment. The terminal device may also be a cellular telephone, a cordless telephone, a session initiation protocol (session initiation protocol, SIP) phone, a wireless local loop (wireless local loop, WLL) station, a personal digital assistant (personal digital assistant, PDA), a handheld device with wireless communication capabilities, a computing device or other processing device connected to a wireless modem, an in-vehicle device, a wearable device, a terminal device in a future 5G network or a terminal device in a future evolved public land mobile network (public land mobile network, PLMN), etc., as embodiments of the present application are not limited in this respect.
The above network device may be a device for communicating with a terminal device, which may be a base station (base transceiver station, BTS) in a global system for mobile communications (global system for mobile communications, GSM) system or code division multiple access (code division multiple access, CDMA), a base station (NodeB, NB) in a wideband code division multiple access (wideband code division multiple access, WCDMA) system, an evolved NodeB (eNB or eNodeB) in an LTE system, a wireless controller in a cloud wireless access network (cloud radio access network, CRAN) scenario, or a relay station, an access point, a vehicle device, a wearable device, a network device in a future 5G network, or a network device in a future evolved PLMN network, etc., which is not limited by the embodiment of the present application.
In the embodiment of the application, the terminal equipment or the network equipment comprises a hardware layer, an operating system layer running on the hardware layer and an application layer running on the operating system layer. The hardware layer includes hardware such as a central processing unit (central processing unit, CPU), a memory management unit (memory management unit, MMU), and a memory (also referred to as a main memory). The operating system may be any one or more computer operating systems that implement business processes through processes (processes), such as a Linux operating system, a Unix operating system, an Android operating system, an iOS operating system, or a windows operating system. The application layer comprises applications such as a browser, an address book, word processing software, instant messaging software and the like. Further, the embodiment of the present application is not particularly limited to the specific structure of the execution body of the method provided by the embodiment of the present application, as long as the communication can be performed by the method provided according to the embodiment of the present application by running the program recorded with the code of the method provided by the embodiment of the present application, and for example, the execution body of the method provided by the embodiment of the present application may be a terminal device or a network device, or a functional module in the terminal device or the network device that can call the program and execute the program.
Furthermore, various aspects or features of the application may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term "article of manufacture" as used herein encompasses a computer program accessible from any computer-readable device, carrier, or media. For example, computer-readable media can include, but are not limited to, magnetic storage devices (e.g., hard disk, floppy disk, or magnetic strips, etc.), optical disks (e.g., compact disk, CD, digital versatile disk, digital versatile disc, DVD, etc.), smart cards, and flash memory devices (e.g., erasable programmable read-only memory, EPROM), cards, sticks, or key drives, etc. Additionally, various storage media described herein can represent one or more devices and/or other machine-readable media for storing information. The term "machine-readable medium" can include, without being limited to, wireless channels and various other media capable of storing, containing, and/or carrying instruction(s) and/or data.
To facilitate an understanding of embodiments of the present application, a communication system suitable for use in embodiments of the present application will be described in detail with reference to fig. 1. Fig. 1 shows a schematic diagram of a communication system suitable for use in an embodiment of the application. As shown in fig. 1, the communication system 100 may include a source node, a destination node, and an intermediate node, where nodes 1-6 are all intermediate nodes. In the present application, a source node may also be referred to as a transmitting node or a transmitting end, and a destination node may also be referred to as a receiving node or a receiving end.
It should be appreciated that fig. 1 illustrates 8 nodes, alternatively, the network architecture 100 may include other numbers of nodes (the number of nodes may be greater than 8, or less than 8), and that other network topologies may be provided between the nodes, which are not limited by the embodiments of the present application.
In the communication system shown in fig. 1, there are a plurality of candidate transmission paths for one source node and one destination node. Specifically, there are intermediate nodes (node 1, node 2, node 3, node 4, node 5, node 6) between the source node and the destination node, which constitute the following multiple paths from the source node to the destination node:
path 1: source node- > intermediate node 1- > destination node;
path 2: source node 1-intermediate node 2-intermediate node 3-destination node;
path 3: source node 1-intermediate node 3-destination node;
path 4: source node 2-intermediate node 3-destination node;
path 5: source node 6-intermediate node 5-intermediate node 4-destination node;
path 6: source node 6-intermediate node 2-intermediate node 5-intermediate node 3-intermediate node 4-destination node.
The 6 paths described above are merely exemplary, and other paths exist between the source node and the destination node shown in fig. 1, which are not listed here.
For ease of understanding, the batch sparse coding according to embodiments of the present application will be described first.
Batch sparse coding (batched sparse codes, BATS codes) is a coding scheme designed for the existence of packet loss phenomena in the network. The BATS code combines the advantages that fountain codes do not need feedback, network codes allow intermediate nodes to participate in data processing, and the cost of combining coefficient vectors is reduced. Compared with a general linear network coding scheme, the BATS code has smaller coding and decoding complexity, smaller data packet heads and fewer caches needed by network intermediate nodes. Compared to low complexity random linear network codes, such as EC codes, gamma codes, L-chunked codes, the bat codes have higher transmission rates and are code-rate-free.
The coding and decoding principle of batch sparse coding is described first. The batch sparse coding comprises three processes of transmitting end coding, intermediate node recoding and receiving end decoding. Fig. 2 shows a schematic diagram of batch sparse coding.
1. Encoding
All symbols and operations in the BATS codec are performed over a finite field Fq (q is typically 256). Assuming that the number of packets to be encoded is K and the number of batches (latches) is n, each batch contains M encoded packets. The number of the data packet to be coded (i.e. the original data packet) is 1-K, the set B= (1, …, K) represents the set of all data packets, the set Bi [ ]B, i=1, …, n represents a set of partial packets. After coding, n batches are obtained as X 1 ,X 2 ,…,X n It is expressed as:
X i =B i G i
wherein let d i =|B i I, i.e. B i Comprises d i The original data packet is called d i Is batch X i I=1, …, n, d i Is an independent random variable with the same distribution, which is called distribution ψ= (ψ) 1 ,…,Ψ k ) For the degree distribution (degree distribution), pr { d i =k}=Ψ k 。G i Is d i The x M random matrix is called a generator matrix. Theoretically, the number of encoded latches n can be infinite.
The BATS coding transmission process can be as shown in FIG. 2, and a matrix G is generated i The dashed boxes at the locations represent the generated latches, and the solid squares within the dashed boxes represent the M encoded data packets within each latch.
2. Transmission of
When the source node or the intermediate node transmits the data packets, the number of the data packets that each batch arrives at the intermediate node may be less than M due to the packet loss phenomenon, and the intermediate node may use network coding to the data packets that belong to the same batch, regenerate M data packets, and forward the data packets to the next node, as shown in fig. 2. The ith batch to reach the destination node may be expressed as:
Y i =X i H i =B i G i H i
here, H i Is a random matrix of M rows, called the transmission matrix. H i The number of columns of packets that the ith batch reaches the destination node is equal to, the value is not necessarily the same for different packets, but is necessarily less than M. Transmission matrix H, let H k E Pr { rank (H) =k }, called h= (H) 0 ,…,h M ) For rank distribution of the transmission matrix, simply referred to as rank distribution, the rank distribution may reflect packet loss characteristics of the network.
3. Decoding
Common decoding methods for BATS are belief transmission (belief propagation, BP) decoding and inactivity (inactivity) decoding. After coding and transmission, the receiving end receivesThe information is: n batch Y i I=1, …, n, and a transmission matrix H included in the packet header information, and a generating matrix G obtained by negotiation by the transceiver. The decoding information that can be used by the decoder is then (Y i ,G i H i ) I=1, …, n, i.e. corresponds to solving a system of linear equations. For a batch, the batch can be solved when its generation matrix G and transmission matrix H, rank (GH) are equal to the number of original packets contained in the batch. The original packet contained in the resolvable batch is referred to as a resolvable packet.
BP decoding involves multiple iterations, each of which may select a resolvable packet to be put into an associated and insoluble batch. After the packet is brought in, the packet is marked as having been parsed, at which point the unsolvable batch may become resolvable. And then proceeds to the next iteration. When there is no resolvable packet, decoding ends.
When BP decoding cannot be performed, the rest batch can be decoded by a Gaussian elimination method, but the decoding complexity of the Gaussian elimination method is too high. The active decoding is a decoding mode with lower computational complexity based on BP decoding. The decoding process is that when BP decoding cannot be carried out, a data packet which is not yet decoded is randomly selected and used as a resolvable data packet, the data packet which is associated with the resolvable data packet is called as "put active", and the data packet is represented by the data packet. The BP decoding iteration is then continued until all original data packets have been decompressed or otherwise deactivated. Finally, the gaussian elimination method is used for decoding the live data packets. The number of packets that are put on may be referred to as the put count when decoding the put on. The more the number of lives, the more packets are difficult to be resolved, and the more the amount of computation is performed by the gaussian elimination method.
Illustratively, table one lists information carried by the above encoded data packet, including information such as a source node IP address (source IP address), a destination node IP address (destination IP address), a next hop node IP address (next hop IP address), a source packet length (packet size), a source packet number (packet ID), an encoded packet number (batch ID), the number of encoded packets M in each batch, the number of packets K, a transmission matrix vector (vector), and a payload (payload) of the encoded packet.
List one
When the coded packets of the batch sparse coding are transmitted in a network, bandwidth-limited scenes, such as congestion, packet loss, or congestion and packet loss coexistence, can be encountered, namely, the current transmission path has a bottleneck, the packet loss damage can not be resisted by adding redundancy, and the coded data transmission fails. For example, in the communication system shown in fig. 1, assuming that the source node selects the path 1 for transmission, when congestion occurs between the node 1 and the destination node, the bandwidth required for encoding cannot be satisfied, that is, the number of encoded packets received by the destination node is less than rank (GH), the encoding transmission cannot be continuously performed on the path 1, and the transmission fails.
In view of this, the present application provides a method, a system and a device for data transmission, which are favorable for improving the transmission success rate of the encoded data packet and reducing the transmission delay of the encoded data packet.
Before describing the method provided by the embodiment of the present application, the following description is made.
First, in the embodiments shown below, terms and english abbreviations, such as receiving bandwidth of encoded data packets, recovery rate of encoded lost packets, etc., are given as exemplary examples for convenience of description, and should not be construed as limiting the present application in any way. The present application does not exclude the possibility of defining other terms in existing or future protocols that perform the same or similar functions.
Second, the first, second and various numerical numbers in the embodiments shown below are merely for convenience of description and are not intended to limit the scope of the embodiments of the present application. For example, different nodes, different transmission paths, etc.
Third, "at least one" means one or more, "at least two" and "a plurality" means two or more. "and/or", describes an association relationship of an association object, and indicates that there may be three relationships, for example, a and/or B, and may indicate: a alone, a and B together, and B alone, wherein a, B may be singular or plural. The character "/" generally indicates that the context-dependent object is an "or" relationship. "at least one of" or the like means any combination of these items, including any combination of single item(s) or plural items(s). For example, at least one (one) of a, b, and c may represent: a, b, or c, or a and b, or a and c, or b and c, or a, b and c, wherein a, b and c can be single or multiple.
The method, system and apparatus for data transmission provided by the present application will be described in detail below with reference to the accompanying drawings.
Fig. 3 shows a schematic flow chart of a method 300 of data transmission provided by an embodiment of the application. The method may be applied to the communication system shown in fig. 1, but the embodiment of the present application is not limited thereto. The method 300 includes:
s310, under the condition that congestion occurs in the current transmission path, a first node determines at least two candidate transmission paths, wherein the at least two candidate transmission paths take the first node as a starting point and take a destination node as an end point.
S320, the first node determines at least one transmission path from the at least two candidate transmission paths based on the remaining delay of the encoded data packet, the receiving bandwidth of the encoded data packet, and the information of the at least two candidate transmission paths.
S330, the first node sends the coded data packet on the at least one transmission path.
Illustratively, in the embodiment of the present application, at least one transmission path includes a first transmission path, and a next-hop node of the first node on the first transmission path is an intermediate node 1, so that the first node sends a coded data packet to the intermediate node 1, and correspondingly, the intermediate node 1 receives the coded data packet.
According to the data transmission method, after the first node determines that congestion occurs in the current transmission path, the transmission path is reselected based on the residual time delay of the coded data packet, the receiving bandwidth of the coded data packet and the information of at least two candidate transmission paths, and data transmission is performed through the new transmission path, so that the transmission success rate of the coded data packet is improved, and the transmission time delay of the coded data packet is reduced.
It should be understood that the first node may be a source node or an intermediate node on the current transmission path, which is not limited in the embodiment of the present application.
The congestion of the current transmission path may be a bandwidth-limited scenario, such as congestion, packet loss, or both congestion and packet loss, i.e., the current transmission path has a bottleneck, and cannot resist packet loss damage by adding redundancy, resulting in failure of encoded data transmission. Illustratively, the occurrence of congestion on the current transmission path may refer to: the bandwidth of the current transmission path is limited, the coded data packet is sent according to the original transmission matrix H, and the coded data packet with the number greater than or equal to rank (GH) cannot be received at the destination node, so that decoding failure is caused. In this case, that is, the first node determines that the current transmission path is congested or is in a bandwidth limited state, the first node may reselect the transmission path by using the method according to the embodiment of the present application, so that the encoded data packet is successfully transmitted to the destination node.
The remaining delay may be calculated by the first node according to the service requirement of the current data transmission, and illustratively, the service requirement information of the current data transmission carries the delay of the current data transmission, and the first node may calculate the remaining delay of the encoded data packet based on the delay and the delay already consumed in the transmission process before the first node. It should be understood that if the first node is the source node, the remaining delay of the encoded data packet is equal to the delay of the current data transmission.
The receiving bandwidth of the encoded data packet refers to the bandwidth of the encoded data packet that the destination node can receive when the encoded data packet arrives at the destination node. Similar to the delay of the present data transmission, the receiving bandwidth of the encoded data packet may also be carried in the service requirement information of the present data transmission, but the embodiment of the present application is not limited thereto.
After determining the at least one transmission path, the first node may generate a coded data packet carrying the following information and send the coded data packet to a next hop node on the at least one transmission path. Optionally, the encoded data packet carries at least one of the following information:
service requirement information for indicating the time delay requirement of the data transmission;
information of the at least one transmission path for indicating a node on the at least one transmission path;
and the processing type is used for indicating a next hop node receiving the coded data packet to perform at least one of forwarding, recoding or decoding on the coded data packet.
The second table lists information carried by the encoded data packet according to the embodiment of the present application, which includes information such as a source node IP address (source IP address), a destination node IP address (destination IP address), a source packet number (packet ID), a source packet length (packet size), an encoded packet number (batch ID), the number M of encoded packets in each batch, the number K of packets, encoded information, the number of nodes, a processing type (handle type), a node ID, a transmission matrix vector (vector), and a payload (payload) of the encoded packet.
Watch II
The IP address may also be replaced by a media access control (media access control, MAC) address, or other addresses, the encoded information may include information such as a first-test timestamp of the encoded data bar, an end-to-end delay requirement, a bandwidth requirement, etc., the number of nodes refers to the number of subsequent nodes on the selected transmission path (i.e., at least one transmission path), and the processing type includes at least forwarding, recoding, decoding, etc. The node ID refers to an identification of a node on at least one transmission path, and may be, for example, a node number.
The at least two candidate transmission paths may be transmission paths from the first node to the destination node, and may include a current transmission path. The information of the at least two candidate transmission paths may be, for example, a path table of the first node to the destination node, including information of a next hop node of each node on the transmission path.
Taking fig. 1 as an example, if the first node is a source node, the at least two candidate transmission paths may include the following paths:
path 1: source node- > intermediate node 1- > destination node;
path 2: source node 1-intermediate node 2-intermediate node 3-destination node;
Path 3: source node 1-intermediate node 3-destination node;
path 4: source node 2-intermediate node 3-destination node;
path 5: source node 6-intermediate node 5-intermediate node 4-destination node;
path 6: source node 6-intermediate node 2-intermediate node 5-intermediate node 3-intermediate node 4-destination node.
If the current transmission path is a source node- > intermediate node 1- > destination node, the first node may be intermediate node 1, and the at least two candidate transmission paths may include the following paths:
path 1: intermediate node 1— destination node;
path 2: intermediate node 1— intermediate node 3— destination node;
path 3: intermediate node 1- > intermediate node 3- > intermediate node 4- > destination node.
It should be appreciated that the first node may also be other intermediate nodes, e.g. node 2, node 3, etc., depending on the current transmission path, which is not described here in detail.
As an alternative embodiment, the information of the at least two candidate transmission paths includes at least one of the following information:
transmission delay between nodes on each of the at least two candidate transmission paths;
Recoding time delay of the nodes on each candidate transmission path;
the available bandwidth of each candidate transmission path; or alternatively, the first and second heat exchangers may be,
and the packet loss rate between the nodes on each candidate transmission path.
It should be understood that, the first node in the embodiment of the present application may select the at least one transmission path from the at least two candidate transmission paths based on at least one of the information such as the transmission delay, the recoding delay, the available bandwidth, and the packet loss rate. The above information may be collectively referred to as information of a transmission path, or path information, or other names, and is not limited herein. The information may be pre-acquired by the first node. Illustratively, after the network topology is established, the first node may obtain path information in all transmission paths associated with the first node, including, for example, a list of nodes, transmission delays between nodes, packet loss rates between nodes, and so forth.
In the embodiment of the present application, the at least one transmission path selected by the first node may be one transmission path, or may be multiple transmission paths (or referred to as a composite transmission path), which is not limited in the embodiment of the present application. Next, the above-described at least one transmission path will be described in some cases.
In case one, the at least one transmission path includes one transmission path, referred to as a first transmission path.
In this case, the first transmission path may optionally satisfy the following condition:
1. the sum of transmission delays between nodes on the first transmission path is less than or equal to the remaining delay of the encoded data packet;
2. the available bandwidth of the first transmission path is greater than or equal to the receiving bandwidth of the coded data packet;
3. the packet loss rate between nodes on the first transmission path is smaller than or equal to the encoded packet loss recovery rate.
The transmission delay may include a forwarding delay, or may include a forwarding delay and a recoding delay, which is not limited by the embodiment of the present application. If the transmission delay includes only the forwarding delay, the above condition 1 may be replaced by that the sum of the transmission delay and the recoding delay between the nodes on the first transmission path is less than or equal to the remaining delay of the coded data packet. The "available bandwidth of the first transmission path" described above may be replaced with the minimum value of the available bandwidth between nodes on the first transmission path. The "packet loss rate between nodes on the first transmission path is less than or equal to the encoded packet loss recovery rate" may be replaced by that the maximum value of the packet loss rate between nodes on the first transmission path is less than or equal to the encoded packet loss recovery rate. The encoded data packet to be transmitted includes an original data packet and a redundant data packet, and the encoded packet loss recovery rate in the embodiment of the present application refers to a ratio of the number of redundant data packets to be transmitted to the number of original data packets. For example, the number of original data packets is 10, and in order to resist packet loss damage, the number of coded data packets to be transmitted is 15, and at this time, the recovery rate of coded packet loss is 50%.
Specifically, the first node may perform screening from the determined at least two candidate transmission paths, and select a first transmission path satisfying the above condition. In one possible implementation, the first node may determine one by one, and once a candidate transmission path satisfying the above condition is determined, determine the candidate transmission path as the first transmission path. In another possible implementation manner, the first node may determine all candidate transmission paths in the at least two candidate transmission paths respectively, screen out candidate transmission paths that meet the above condition, and if there is one candidate transmission path that meets the above condition, the first node may determine the candidate transmission path as the first transmission path; if there are a plurality of candidate transmission paths satisfying the above condition, the first node may select one candidate transmission path from the plurality of candidate transmission paths satisfying the condition as the first transmission path. For example, the first node may determine one candidate transmission path including the largest number of nodes as the first transmission path. Thus, a larger bandwidth can be obtained, and the transmission reliability of the coded data packet is ensured. For example, the first node may determine one candidate transmission path including the least number of nodes as the first transmission path. Thus, smaller transmission delay can be obtained, and the data transmission efficiency is improved.
Illustratively, the first node is assumed to be a source node in the communication system shown in fig. 1, and the first transmission path is a source node, an intermediate node 1, an intermediate node 3, and a destination node. The intermediate node 1 is a forwarding node, i.e. does not re-encode the received encoded data packet, and forwards the received encoded data packet directly. The intermediate node 2 is a coding node, and can recode the received coded data packet, compensate the previous packet loss and forward the packet. The first transmission path meets the above conditions, that is, the sum of the transmission delay from the source node to the intermediate node 1, the transmission delay from the intermediate node 1 to the intermediate node 3, the recoding delay from the intermediate node 3, and the transmission delay from the intermediate node 3 to the destination node is less than or equal to the remaining delay of the encoded data packet, the available bandwidth of the transmission path is greater than or equal to the receiving bandwidth of the encoded data packet, and the packet loss rate from the source node to the intermediate node 1, the packet loss rate from the intermediate node 1 to the intermediate node 3, and the packet loss rate from the intermediate node 3 to the destination node are all less than the encoded packet loss recovery rate.
Optionally, the method may further comprise the steps of:
s340, the intermediate node 1 directly forwards the coded data packet to the intermediate node 3; correspondingly, the intermediate node 3 receives the encoded data packet.
Illustratively, the intermediate node 1 receives the encoded data packet, where the processing type in the encoded data packet indicates "forwarding", that is, the intermediate node 1 is a forwarding node, and the intermediate node 1 may determine, according to the information shown in the table two above, the IP address of the next-hop node (that is, the intermediate node 3) of the intermediate node 1 on the first transmission path, and forward the encoded data packet to the next-hop node (that is, the intermediate node 3).
Alternatively, the intermediate node 1 needs to update the node information in the encoded data packet as shown in table two, for example, delete the processing type and ID of the intermediate node 1, reduce the number of nodes by 1, and then send the updated encoded data packet to the intermediate node 3.
S350, the intermediate node 3 recodes the coded data packet to obtain a new coded data packet.
Illustratively, the intermediate node 3 receives an encoded data packet, and the processing type in the encoded data packet indicates "recoding+forwarding", that is, the intermediate node 3 is an encoding node, and the intermediate node 3 may select a transmission matrix to recode the received data packet according to a packet loss rate between the intermediate node 3 and a destination node. The intermediate node 3 may determine the IP address of the next-hop node (i.e. the destination node) of the intermediate node 3 on the first transmission path according to the information shown in the table two, and forward the recoded data packet to the next-hop node (i.e. the destination node).
Optionally, the intermediate node 3 needs to update the node information in the encoded data packet as shown in table two, for example, delete the processing type and ID of the intermediate node 3, reduce the number of nodes by 1, and then send the updated encoded data packet to the destination node.
S360, the intermediate node 3 sends a new encoded data packet to the destination node, and correspondingly, the destination node receives the new encoded data packet.
And S370, the destination node decodes the new coded data packet.
Specifically, the receiving node receives the encoded data packet, may attempt decoding according to the "decoding" indicated by the processing type, and when receiving the encoded data packet greater than or equal to rank (GH), the destination node may succeed in decoding.
In the embodiment of the application, the first node cannot send enough coded data packets to the next node due to the limited bandwidth, so that the destination node cannot obtain enough coded data packets to finish decoding. In addition, part of the nodes can be set as non-coding nodes, namely simple forwarding nodes, and the nodes of the new transmission path finish forwarding and recoding of the coded data packet according to the path information indicated in the coded data packet and the processing type of the nodes. By the processing, the transmission of the coded packet can be completed with smaller bandwidth on the premise of meeting the time delay requirement, so that the problem that the coded data packet cannot be transmitted on the original path is solved. In other words, the embodiment of the application combines the principle of BATS coding, and utilizes sacrifice time delay (still meeting the service requirement) to obtain certain bandwidth gain, thereby solving the problem of bandwidth limitation.
In case two, the at least one transmission path includes a plurality of transmission paths, which are called at least two second transmission paths.
In this case, optionally, the at least one transmission path includes at least two second transmission paths, and the at least two second transmission paths satisfy the following conditions:
1. the sum of the transmission delays between the nodes on at least two second transmission paths is smaller than or equal to the residual delay of the coded data packet;
2. the sum of the available bandwidths of the at least two second paths is greater than or equal to the receiving bandwidth of the coded data packet;
3. the packet loss rate between the nodes in the at least two second paths is smaller than or equal to the encoded packet loss recovery rate.
The transmission delay may include a forwarding delay, or may include a forwarding delay and a recoding delay, which is not limited by the embodiment of the present application. If the transmission delay includes only the forwarding delay, the above condition 1 may be replaced by that the sum of the transmission delay and the recoding delay between the nodes on at least two second transmission paths is less than or equal to the remaining delay of the coded data packet. The "packet loss rate between nodes on the at least two second transmission paths is less than or equal to the encoded packet loss recovery rate" may be replaced by that the maximum value of the packet loss rate between nodes on the at least two second transmission paths is less than or equal to the encoded packet loss recovery rate. The encoded data packet to be transmitted includes an original data packet and a redundant data packet, and the encoded packet loss recovery rate in the embodiment of the present application refers to a ratio of the number of redundant data packets to be transmitted to the number of original data packets.
Specifically, the first node may perform screening from the determined at least two candidate transmission paths, and select at least two second transmission paths satisfying the above condition, which may be referred to as a set of transmission paths. In one possible implementation, the first node may make a judgment one by one, and once a set of candidate transmission paths satisfying the above condition is determined, the set of candidate transmission paths is determined as at least two second transmission paths. In another possible implementation manner, the first node may determine all candidate transmission paths in the at least two candidate transmission paths respectively, screen out a combination of the at least two candidate transmission paths that satisfies the above condition, and if there is a group of candidate transmission paths that satisfies the above condition, the first node may determine the group of candidate transmission paths as at least two second transmission paths; if there are multiple sets of candidate transmission paths satisfying the above condition, the first node may select a set of candidate transmission paths from the multiple sets of candidate transmission paths satisfying the condition, and use the selected set of candidate transmission paths as at least two second transmission paths. For example, the first node may determine a set of candidate transmission paths including the largest number of nodes as at least two second transmission paths. Thus, a larger bandwidth can be obtained, and the transmission reliability of the coded data packet is ensured. For example, the first node may determine a set of candidate transmission paths including the least number of nodes as at least two second transmission paths. Thus, smaller transmission delay can be obtained, and the data transmission efficiency is improved.
Illustratively, assuming that the first node is an intermediate node 1 in the communication system shown in fig. 1, fig. 4 shows a schematic flow chart of another data transmission method according to an embodiment of the present application. S410-S420 are the same as S310-S320 described above, and are not described here again.
In fig. 4, the at least two second transmission paths may include the following two transmission paths:
path 1: intermediate node 1— destination node;
path 2: intermediate node 1- > intermediate node 3- > destination node.
In this case, the encoding node of the intermediate node 1, having a path reselection function, can reselect the transmission path according to the flow shown in the above-described method 300. The sum of the available bandwidths of the path 1 and the path 2 is larger than or equal to the receiving bandwidth of the encoded data packet, the sum of the transmission delay and the recoding delay of the path 1 and the path 2 is smaller than or equal to the residual delay of the encoded data packet, and the packet loss rate between the nodes of the path 1 and the path 2 is smaller than or equal to the encoded packet loss recovery rate.
Optionally, the method may further comprise the steps of:
s430, the intermediate node 1 sends a part of coded data packets to the destination node; correspondingly, the destination node receives the encoded data packet.
S440, the intermediate node 1 transmits another part of coded data packet to the intermediate node 3; correspondingly, the intermediate node 3 receives the encoded data packet.
As an alternative embodiment, the intermediate node 1 may allocate the encoded data packets to at least two second transmission paths according to the available bandwidth of each of the at least two second transmission paths and the transmission delay between the nodes on each second transmission path; the intermediate node 1 transmits the encoded data packets on at least two second transmission paths, respectively.
Illustratively, the intermediate node 1 performs allocation between the path 1 and the path 2 according to the ratio of available bandwidths and inverse transmission delay for the coded data packet to be transmitted, for example, the available bandwidth of the path 1: available bandwidth of path 2 = 3:2, transmission delay of path 1: transmission delay of path 2 = 3:4, the encoded data packets of path 1 and path 2 may be according to 3/3:2/4, i.e. according to 2: 1. The intermediate node 1 recodes the encoded data packet, and the recoded encoded data packet is recorded according to 2: the ratio of 1 is assigned to path 1 and path 2.
Further, the packet loss rate of the at least two second transmission paths may be used as a parameter for distributing the encoded data packets between the paths. Illustratively, the intermediate node 1 may consider that the packet loss rate is proportional to the allocated encoded data packet while satisfying other conditions. Assuming that the packet loss rate of the path 1 is 20%, the available bandwidth is 10%, the packet loss rate of the path 2 is 10%, the available bandwidth is 10%, and the reception bandwidth of the encoded data packet is 15. The coded data packet is required to be processed according to the packet loss rate in the path 1 and the path 2 and the following steps are 2:1, and the available bandwidth limits the allocated amount, and by considering the constraint conditions comprehensively, the intermediate node 1 can send 10 coded data packets on the path 1, the destination node can receive 8 coded data packets, and send 8 coded data packets on the path 2, and the destination node can receive 7 coded data packets, so that the total receiving bandwidth can reach 15.
And S450, the intermediate node 3 recodes the coded data packet to obtain a new coded data packet.
Illustratively, the intermediate node 3 receives an encoded data packet, and the processing type in the encoded data packet indicates "recoding+forwarding", that is, the intermediate node 3 is an encoding node, and the intermediate node 3 may select a transmission matrix to recode the received data packet according to a packet loss rate between the intermediate node 3 and a destination node. The intermediate node 3 may determine the IP address of the next-hop node (i.e. the destination node) of the intermediate node 3 on the path 2 according to the information shown in the above table two, and forward the recoded data packet to the next-hop node (i.e. the destination node).
Optionally, the intermediate node 3 needs to update the node information in the encoded data packet as shown in table two, for example, delete the processing type and ID of the intermediate node 3, reduce the number of nodes by 1, and then send the updated encoded data packet to the destination node.
S460, the intermediate node 3 sends a new encoded data packet to the destination node, and correspondingly, the destination node receives the new encoded data packet.
And S470, the destination node decodes the new coded data packet.
Specifically, the receiving node receives the encoded data packets through the multiple transmission paths, may aggregate the received encoded data packets, may attempt decoding according to the "decoding" indicated by the processing type, and when receiving the encoded data packets greater than or equal to rank (GH), the destination node may succeed in decoding.
It should be understood that the first node in the first case is a source node, and the first node in the second case is an intermediate node 1, which is merely for illustrative illustration for easy understanding, and in other implementations, the first node may be another intermediate node, which is not limited in the embodiments of the present application.
In one possible implementation manner, the first node may first determine whether there is one transmission path that satisfies the condition of the condition one, and if there is not one transmission path that satisfies the condition one, the first node determines whether there are at least two transmission paths that satisfy the condition of the condition two.
The embodiment of the application solves the problem that the original path cannot support the transmission of the coded packet and other single transmission paths cannot meet the transmission requirement through the selection of the composite path, but has the scene that the composite path meets the transmission of the coded packet, thereby improving the flexibility of data transmission.
As an alternative embodiment, before the first node sends the encoded data packet on the at least one transmission path, the method further comprises:
the first node determines a processing type of a node on the at least one transmission path according to the information of the at least one transmission path, wherein the processing type comprises at least one of forwarding, recoding or decoding;
The first node transmitting the encoded data packet over the at least one transmission path, comprising:
the first node sends the coded data packet on the at least one transmission path, wherein the coded data packet carries the processing type of the node on the at least one transmission path.
Illustratively, to further improve the efficiency of data transmission, the first node may determine the processing type of the node on the at least one transmission path after selecting the at least one transmission path. For example, the first node may determine the role assumed by the node on at least one transmission path according to the information such as delay, packet loss rate, available bandwidth on at least one transmission path, and set a processing type (handle type) of each node in the encoded data packet, that is, determine the processing type of the node in the table two. Assuming that at least one transmission path is a transmission path and is composed of a source node- > intermediate node 1- > intermediate node 3- > destination node, the available bandwidth of the source node- > intermediate node 1 is k bps, the packet loss rate is 10%, the available bandwidth of the intermediate node 1- > intermediate node 3 is m bps, the packet loss rate is 30%, the available bandwidth of the intermediate node 3- > destination node is k bps, the packet loss rate is 10%, the recoding delay of the intermediate node 1 and the intermediate node 3 is 5ms, and the forwarding delay is 1ms. Therefore, the first node needs to consider to resist 30% packet loss, and needs to have a coding bandwidth of n bps, n < k, and n < m. If the residual delay of the coded data packet does not exceed 20ms, the first node may set the intermediate node 1 and the intermediate node 3 to be recoding nodes, because the total delay meets the requirement; if the remaining delay of the encoded data packet does not exceed 10ms, the first node may choose to recode the intermediate node 1, forward only the intermediate node 3, or forward only the intermediate node 1, and recode the intermediate node 3, so that the total delay meets the requirement.
It should be understood that the sequence numbers of the above processes do not mean the order of execution, and the execution order of the processes should be determined by the functions and internal logic of the processes, and should not be construed as limiting the implementation process of the embodiments of the present application.
The method of data transmission according to the embodiment of the present application is described in detail above with reference to fig. 1 to 4, and the apparatus of data transmission according to the embodiment of the present application will be described in detail below with reference to fig. 5 and 6.
Fig. 5 shows an apparatus 500 for data transmission according to an embodiment of the present application. In one design, the apparatus 500 may be the first node described above, or a chip in the first node. The apparatus 500 includes: a processing unit 510 and a transceiver unit 520.
In a possible implementation manner, the apparatus 500 is configured to perform each flow and step corresponding to the first node in the above method embodiment.
The processing unit 510 is configured to: under the condition that congestion occurs in the current transmission path, determining at least two candidate transmission paths, wherein the at least two candidate transmission paths take the device as a starting point and take a destination node as an end point; and determining at least one transmission path from the at least two candidate transmission paths based on the remaining delay of the encoded data packet, the reception bandwidth of the encoded data packet, and the information of the at least two candidate transmission paths; the transceiver unit 520 is configured to: and transmitting the coded data packet on the at least one transmission path.
Optionally, the information of the at least two candidate transmission paths includes at least one of the following information: transmission delay between nodes on each of the at least two candidate transmission paths; recoding time delay of the nodes on each candidate transmission path; the available bandwidth of each candidate transmission path; or, the packet loss rate between the nodes on each candidate transmission path.
Optionally, the at least one transmission path includes a first transmission path, and the first transmission path satisfies the following condition: the sum of transmission delays between nodes on the first transmission path is less than or equal to the remaining delay of the encoded data packet; the available bandwidth of the first transmission path is greater than or equal to the receiving bandwidth of the coded data packet; the packet loss rate between the nodes on the first transmission path is smaller than or equal to the encoded packet loss recovery rate.
Optionally, the at least one transmission path includes at least two second transmission paths, and the at least two second transmission paths satisfy the following conditions: the sum of the transmission delays between the nodes on the at least two second transmission paths is smaller than or equal to the residual delay of the coded data packet; the sum of the available bandwidths of the at least two second paths is greater than or equal to the receiving bandwidth of the coded data packet; and the packet loss rate between the nodes in the at least two second paths is smaller than or equal to the encoded packet loss recovery rate.
Optionally, the processing unit 510 is specifically configured to: distributing the coded data packets to at least two second transmission paths according to the available bandwidth of each second transmission path in the at least two second transmission paths and the transmission delay between nodes on each second transmission path; the transceiver unit 520 is specifically configured to: and transmitting the coded data packets on the at least two second transmission paths respectively.
Optionally, the at least one transmission path is a path with the largest number of nodes among paths satisfying the condition among the at least two candidate transmission paths.
Optionally, the processing unit 510 is further configured to: determining a processing type of a node on the at least one transmission path according to the information of the at least one transmission path, wherein the processing type comprises at least one of forwarding, recoding or decoding; the transceiver unit 520 is configured to: and transmitting the coded data packet on the at least one transmission path, wherein the coded data packet carries the processing type of the node on the at least one transmission path.
Optionally, the encoded data packet carries at least one of the following information: service requirement information for indicating the time delay requirement of the data transmission; information of the at least one transmission path for indicating a node on the at least one transmission path; and the processing type is used for indicating a next hop node receiving the coded data packet to perform at least one of forwarding, recoding or decoding on the coded data packet.
It should be understood that the apparatus 500 herein is embodied in the form of functional units. The term "unit" herein may refer to an application specific integrated circuit (application specific integrated circuit, ASIC), an electronic circuit, a processor (e.g., a shared, dedicated, or group processor, etc.) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that support the described functionality. In an alternative example, it will be understood by those skilled in the art that the apparatus 500 may be specifically configured as the first node in the foregoing embodiment, and the apparatus 500 may be configured to perform each flow and/or step corresponding to the first node in the foregoing method embodiment, which is not described herein for avoiding repetition.
The apparatus 500 of each of the above embodiments has a function of implementing the corresponding step performed by the first node in the above method; the above functions may be implemented by hardware, or may be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the functions described above. For example, the transceiver unit 510 may include a transmitting unit and a receiving unit, where the transmitting unit may be configured to implement respective steps and/or procedures for performing a transmitting action corresponding to the transceiver unit, and the receiving unit may be configured to implement respective steps and/or procedures for performing a receiving action corresponding to the transceiver unit. The transmitting unit may be replaced by a transmitter and the receiving unit may be replaced by a receiver, performing the transceiving operations and the associated processing operations in the respective method embodiments, respectively.
In an embodiment of the present application, the apparatus 500 in fig. 5 may also be a chip or a chip system, for example: system on chip (SoC). Correspondingly, the transceiver unit 510 may be a transceiver circuit of the chip, which is not limited herein.
Fig. 6 illustrates another data transmission apparatus 600 provided by an embodiment of the present application. The apparatus 600 includes a processor 610, a transceiver 620, and a memory 630. Wherein the processor 610, the transceiver 620 and the memory 630 communicate with each other through an internal connection path, the memory 630 is used for storing instructions, and the processor 610 is used for executing the instructions stored in the memory 630 to control the transceiver 620 to transmit signals and/or receive signals.
Wherein the processor 610 is configured to: under the condition that congestion occurs in the current transmission path, determining at least two candidate transmission paths, wherein the at least two candidate transmission paths take the device as a starting point and take a destination node as an end point; and determining at least one transmission path from the at least two candidate transmission paths based on the remaining delay of the encoded data packet, the reception bandwidth of the encoded data packet, and the information of the at least two candidate transmission paths; the transceiver 620 is configured to: and transmitting the coded data packet on the at least one transmission path.
It should be understood that the apparatus 600 may be embodied as the first node in the above-described embodiments, and may be configured to perform the steps and/or flows corresponding to the first node in the above-described method embodiments. The memory 630 may optionally include read-only memory and random access memory and provide instructions and data to the processor. A portion of the memory may also include non-volatile random access memory. For example, the memory may also store information of the device type. The processor 610 may be configured to execute instructions stored in a memory, and when the processor 610 executes instructions stored in the memory, the processor 610 is configured to perform the steps and/or flows of the method embodiments described above corresponding to the terminal device or network device. The transceiver 620 may include a transmitter that may be used to implement the steps and/or processes for performing the transmitting actions corresponding to the transceiver and a receiver that may be used to implement the steps and/or processes for performing the receiving actions corresponding to the transceiver.
It should be appreciated that in embodiments of the present application, the processor of the apparatus described above may be a central processing unit (central processing unit, CPU), which may also be other general purpose processors, digital Signal Processors (DSPs), application Specific Integrated Circuits (ASICs), field Programmable Gate Arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
In implementation, the steps of the above method may be performed by integrated logic circuits of hardware in a processor or by instructions in the form of software. The steps of the method disclosed in connection with the embodiments of the present application may be embodied directly in a hardware processor for execution, or in a combination of hardware and software elements in the processor for execution. The software elements may be located in a random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers, etc. as well known in the art. The storage medium is located in a memory, and the processor executes instructions in the memory to perform the steps of the method described above in conjunction with its hardware. To avoid repetition, a detailed description is not provided herein.
Those of ordinary skill in the art will appreciate that the various method steps and elements described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both, and that the steps and components of the various embodiments have been described generally in terms of functionality in the foregoing description to clearly illustrate this interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Those of ordinary skill in the art may implement the described functionality using different approaches for each particular application, but such implementation is not considered to be beyond the scope of the present application.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, and are not repeated herein.
In the several embodiments provided by the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the above-described division of units is merely a logical function division, and there may be another division manner in actual implementation, for example, a plurality of units or components may be combined or may be integrated into another system, or some features may be omitted, or not performed. In addition, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices, or elements, or may be an electrical, mechanical, or other form of connection.
The units described above as separate components may or may not be physically separate, and components shown as units may or may not be physical units, may be located in one place, or may be distributed over a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the embodiment of the present application.
In addition, each functional unit in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software functional units.
The integrated units described above, if implemented in the form of software functional units and sold or used as stand-alone products, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application is essentially or a part contributing to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium, comprising several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a read-only memory (ROM), a random access memory (random access memory, RAM), a magnetic disk, or an optical disk, or other various media capable of storing program codes.
While the application has been described with respect to the preferred embodiments, it will be apparent to those skilled in the art that various modifications and substitutions can be made without departing from the scope of the application. Therefore, the protection scope of the application is subject to the protection scope of the claims.
Claims (11)
1. A method of data transmission, comprising:
under the condition that congestion occurs in a current transmission path, a first node determines at least two candidate transmission paths, wherein the at least two candidate transmission paths take the first node as a starting point and take a destination node as an end point;
the first node determines at least one transmission path from the at least two candidate transmission paths based on the remaining time delay of the encoded data packet, the receiving bandwidth of the encoded data packet, and the information of the at least two candidate transmission paths;
the first node transmits the encoded data packet over the at least one transmission path.
2. The method of claim 1, wherein the information of the at least two candidate transmission paths comprises at least one of:
Transmission delay between nodes on each of the at least two candidate transmission paths;
recoding time delay of the nodes on each candidate transmission path;
the available bandwidth of each candidate transmission path; or alternatively, the first and second heat exchangers may be,
and the packet loss rate between the nodes on each candidate transmission path.
3. The method of claim 2, wherein the at least one transmission path comprises a first transmission path that satisfies the following condition:
the sum of transmission delays between nodes on the first transmission path is less than or equal to the remaining delay of the encoded data packet;
the available bandwidth of the first transmission path is greater than or equal to the receiving bandwidth of the coded data packet;
the packet loss rate between the nodes on the first transmission path is smaller than or equal to the encoded packet loss recovery rate.
4. The method of claim 2, wherein the at least one transmission path comprises at least two second transmission paths, the at least two second transmission paths satisfying the following condition:
the sum of the transmission delays between the nodes on the at least two second transmission paths is smaller than or equal to the residual delay of the coded data packet;
The sum of the available bandwidths of the at least two second paths is greater than or equal to the receiving bandwidth of the coded data packet;
and the packet loss rate between the nodes in the at least two second paths is smaller than or equal to the encoded packet loss recovery rate.
5. The method of claim 4, wherein prior to the first node transmitting the encoded data packet over the at least one transmission path, the method further comprises:
the first node distributes the coded data packets to the at least two second transmission paths according to the available bandwidth of each second transmission path in the at least two second transmission paths and the transmission delay between the nodes on each second transmission path;
the first node transmitting the encoded data packet over the at least one transmission path, comprising:
the first node transmits the encoded data packets on the at least two second transmission paths, respectively.
6. The method according to any one of claims 3 to 5, wherein the at least one transmission path is a path having the largest number of nodes among paths satisfying the condition among the at least two candidate transmission paths.
7. The method according to any of claims 1 to 6, wherein before the first node transmits the encoded data packet over the at least one transmission path, the method further comprises:
the first node determines a processing type of a node on the at least one transmission path according to the information of the at least one transmission path, wherein the processing type comprises at least one of forwarding, recoding or decoding;
the first node transmitting the encoded data packet over the at least one transmission path, comprising:
the first node sends the coded data packet on the at least one transmission path, wherein the coded data packet carries the processing type of the node on the at least one transmission path.
8. The method according to any of claims 1 to 7, wherein the encoded data packet carries at least one of the following information:
service requirement information for indicating the time delay requirement of the data transmission;
information of the at least one transmission path for indicating a node on the at least one transmission path;
and the processing type is used for indicating a next hop node receiving the coded data packet to perform at least one of forwarding, recoding or decoding on the coded data packet.
9. An apparatus for data transmission, comprising: a processor coupled to a memory for storing a program that, when executed by the processor, causes the apparatus to perform the method of any of the preceding claims 1 to 8.
10. A system for data transmission, comprising: the apparatus of claim 9 and a destination node that is an endpoint of at least two candidate transmission paths determined by the apparatus in the event that congestion occurs in a current transmission path.
11. A computer readable storage medium storing a computer program, characterized in that the computer program comprises instructions for implementing the method of any of the preceding claims 1 to 8.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010316063.3A CN113543206B (en) | 2020-04-21 | 2020-04-21 | Method, system and device for data transmission |
PCT/CN2021/087213 WO2021213227A1 (en) | 2020-04-21 | 2021-04-14 | Data transmission method, system and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010316063.3A CN113543206B (en) | 2020-04-21 | 2020-04-21 | Method, system and device for data transmission |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113543206A CN113543206A (en) | 2021-10-22 |
CN113543206B true CN113543206B (en) | 2023-08-22 |
Family
ID=78123786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010316063.3A Active CN113543206B (en) | 2020-04-21 | 2020-04-21 | Method, system and device for data transmission |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113543206B (en) |
WO (1) | WO2021213227A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116647330A (en) * | 2022-02-16 | 2023-08-25 | 华为技术有限公司 | Data transmission method and device |
CN114745750A (en) * | 2022-03-29 | 2022-07-12 | 国网河南省电力公司 | Method and device for detecting congestion link under network slice and electronic equipment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357068A (en) * | 2015-11-03 | 2016-02-24 | 华中科技大学 | OpenFlow network flow control method for QoS assurance of application |
CN106533960A (en) * | 2016-12-23 | 2017-03-22 | 重庆邮电大学 | Data center network routing method based on Fat-Tree structure |
WO2018082655A1 (en) * | 2016-11-04 | 2018-05-11 | 华为技术有限公司 | Method and device for determining data transmission path |
CN109802889A (en) * | 2017-11-17 | 2019-05-24 | 华为技术有限公司 | A kind of information transferring method and device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150046558A1 (en) * | 2013-03-15 | 2015-02-12 | Google Inc. | System and method for choosing lowest latency path |
CN105099908B (en) * | 2014-05-08 | 2019-02-05 | 华为技术有限公司 | The method of path computing, the method for message response and relevant device |
CN109039897B (en) * | 2018-07-20 | 2020-12-01 | 南京邮电大学 | Software defined backhaul network routing method based on service awareness |
-
2020
- 2020-04-21 CN CN202010316063.3A patent/CN113543206B/en active Active
-
2021
- 2021-04-14 WO PCT/CN2021/087213 patent/WO2021213227A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357068A (en) * | 2015-11-03 | 2016-02-24 | 华中科技大学 | OpenFlow network flow control method for QoS assurance of application |
WO2018082655A1 (en) * | 2016-11-04 | 2018-05-11 | 华为技术有限公司 | Method and device for determining data transmission path |
CN106533960A (en) * | 2016-12-23 | 2017-03-22 | 重庆邮电大学 | Data center network routing method based on Fat-Tree structure |
CN109802889A (en) * | 2017-11-17 | 2019-05-24 | 华为技术有限公司 | A kind of information transferring method and device |
Also Published As
Publication number | Publication date |
---|---|
CN113543206A (en) | 2021-10-22 |
WO2021213227A1 (en) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10523368B2 (en) | Polar code processing method and communications device | |
US9762352B2 (en) | Decoding method and receiving apparatus in wireless communication system | |
US10484137B2 (en) | Polar code hybrid automatic repeat request method and apparatus | |
US11133829B2 (en) | Communciation method using polar code, and wireless device | |
CN107800510B (en) | Method and device for coding polarized Polar code | |
KR102048758B1 (en) | Information transmission method, apparatus and device | |
CN113543206B (en) | Method, system and device for data transmission | |
EP3618320B1 (en) | Rate matching method and apparatus for polar codes | |
CN112134647B (en) | Data transmission method and sending end equipment | |
CN107210845A (en) | Transmit the method and communication equipment of information | |
US11190213B2 (en) | Coding method, wireless device, and chip | |
CN106416166B (en) | Method and communication device for processing data | |
CN110391874B (en) | Rate matching and rate de-matching method and device for polar code | |
EP4109766A1 (en) | Encoding method and device | |
US11044046B2 (en) | Data processing method and apparatus | |
CN110622426A (en) | Puncturing polar codes with complementary sequences | |
US11057052B2 (en) | Data processing method and apparatus to restore mother code sequences with different code lengths by using an indication sequence and a basic sequence | |
Li et al. | Systematic network coding for two-hop lossy transmissions | |
CN114070457A (en) | Data transmission method, system and device | |
CN116074891A (en) | Communication method and related device | |
Wyrembelski et al. | On the capacity of bidirectional relaying with unknown varying channels | |
EP4277133A2 (en) | Channel encoding method and apparatus | |
CN115242254A (en) | Encoding and decoding method and device | |
CN117917869A (en) | Decoding method, encoding device and readable storage medium for polarization code | |
CN115190080A (en) | Congestion control method and device and communication equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |