A data packet transmission method and apparatus, a terminal device, and a storage medium
By performing dual forward error correction encoding and decoding on data packets, the problem of unstable network signals in multi-card link image transmission devices is solved, improving the stability and efficiency of data transmission.
Patent Information
- Application Number
- CN202111271749.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-10-29
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2041-10-29
AI Technical Summary
In multi-card link image transmission equipment, the network signal is unstable due to the independent movement signals of each network card during data packet transmission, which easily leads to packet loss and low transmission efficiency.
A dual forward error correction coding method is adopted, which performs first and second forward error correction coding on the data packets and configures them according to the preset bandwidth information of each link. The sending device performs dual forward error correction coding on the data packets and then sends them, and the receiving device performs corresponding dual forward error correction decoding.
It improves link stability during data transmission, reduces packet loss and retransmission rates, and enhances the reliability of data transmission.
Smart Images

Figure CN114142968B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of coding, and in particular to a data packet transmission method and device, a terminal device and a storage medium. BACKGROUND
[0002] In the prior art, when a multi-card link diagram transmission device is used for data packet transmission in a mobile environment / field environment, the multi-card link diagram transmission device includes multiple network cards, and the network cards use mobile signals for data packet transmission, which can be 3G, 4G, 5G or satellite link signals, etc.
[0003] If large code flow data packets need to be transmitted, the large code flow data packets are sent through each network card respectively. Since the mobile signals of each network card are independent of each other and have no internal relationship, the state values of each mobile signal at the same time, such as real-time preset bandwidth information or state values (peak, trough, frequency) within a certain period of time, are different. Therefore, during the data packet transmission process, due to the influence of network signals, the problems of data packet loss or reception delay may occur, the link is unstable, packet loss may easily occur, and the transmission efficiency is not high. SUMMARY
[0004] In view of the above problems, the present application embodiments are proposed to provide a data packet transmission method, device, terminal device and storage medium which can overcome the above problems or at least partially solve the above problems.
[0005] In a first aspect, the present application embodiments provide a data packet transmission method applied to a sending end device, and a plurality of links are arranged between the sending end device and a receiving end device, and the method comprises:
[0006] obtaining a first fragmented data packet to be sent;
[0007] performing first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet;
[0008] configuring the second fragmented data packet according to preset bandwidth information of each link;
[0009] performing second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet, and sending the target fragmented data packet to the receiving end device.
[0010] Optionally, the first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet comprises:
[0011] respectively, the first n pieces of first split data packets are subjected to first forward error correction coding to obtain m pieces of second split data packets, the second split data packets comprising second serial numbers; n and m are natural numbers greater than 0, and n is less than m;
[0012] Correspondingly, the second split data packets on each link are subjected to second forward error correction coding to obtain target split data packets, comprising:
[0013] The second split data packets on each link are subjected to second forward error correction coding to obtain target split data packets, the target split data packets comprising third serial numbers, and a correspondence table of the third serial numbers and the second serial numbers and the second serial numbers and the first serial numbers of the first split data packets.
[0014] Optionally, the first split data packets to be transmitted are obtained, comprising:
[0015] The data packets to be transmitted are obtained, and a preset target byte number of each link for transmitting data packets is determined;
[0016] According to the preset target byte number, the first encoding packet header and the second encoding packet header, a split byte number is determined;
[0017] The data packets to be transmitted are split according to the split byte number to obtain the first split data packets.
[0018] In a second aspect, an embodiment of the present application provides a data packet transmission method, the method being applied to a receiving end device, a plurality of links being set between a sending end device and the receiving end device, and comprising:
[0019] The target split data packets transmitted by the sending end device through the plurality of links are received;
[0020] The target split data packets on each link are subjected to first forward error correction decoding to determine second split data packets of second serial numbers, and whether the second split data packets have packet loss is determined according to the second serial numbers;
[0021] If the second split data packets have packet loss, the second split data packets are subjected to second forward error correction decoding to obtain first split data packets, the first split data packets comprising first serial numbers, and the second forward error correction decoding corresponding to the first forward error correction coding;
[0022] If the first serial numbers do not have packet loss, data packets to be transmitted are determined according to the first split data packets.
[0023] Optionally, the target split data packets on each link are subjected to first forward error correction decoding to determine second split data packets of second serial numbers, comprising:
[0024] respectively, first forward error correction decoding is performed on the target fragmented data packet on each link to obtain a third serial number;
[0025] According to the third serial number, a second fragmented data packet corresponding to the second serial number of the third serial number is determined;
[0026] According to the second serial number, it is determined whether the second fragmented data packet has a packet loss phenomenon;
[0027] According to the second serial number, the second fragmented data packet is sorted to obtain a sorted second fragmented data packet;
[0028] The sorted second fragmented data packet is determined.
[0029] Optionally, the method further comprises:
[0030] If the first serial number has a packet loss, the packet sequence and quantity of the packet loss are determined according to the first fragmented data packet sequence.
[0031] In a third aspect, an embodiment of the present application provides a data packet transmission device applied to a sending end device, a plurality of links are arranged between the sending end device and a receiving end device, and the device comprises:
[0032] The acquisition module is configured to acquire a first fragmented data packet to be sent.
[0033] The first encoding module is configured to perform first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet.
[0034] The configuration module is configured to configure the second fragmented data packet according to preset bandwidth information of each link.
[0035] The second encoding module is configured to perform second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet, and send the target fragmented data packet to the receiving end device.
[0036] Optionally, the first encoding module is configured to:
[0037] First forward error correction encoding is performed on n first fragmented data packets to obtain m second fragmented data packets, the second fragmented data packet comprises a second serial number; n and m are natural numbers greater than 0, and n is less than m.
[0038] Correspondingly, the second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet comprises:
[0039] performing second forward error correction coding on the second split data packet on the link to obtain a target split data packet, the target split data packet comprising a third sequence number, and a correspondence relationship table between the third sequence number and the second sequence number and the second sequence number and the first sequence number of the first split data packet.
[0040] Optionally, the obtaining module is configured to:
[0041] obtain a data packet to be transmitted, and determine a preset target byte number of data packets transmitted by each link;
[0042] determine a split byte number according to the preset target byte number, the first encoded packet header and the second encoded packet header;
[0043] split the data packet to be transmitted according to the split byte number to obtain the first split data packet.
[0044] In a fourth aspect, an embodiment of the present application provides a data packet transmission device, applied to a receiving end device, a plurality of links being arranged between a sending end device and the receiving end device, and the device comprising:
[0045] a receiving module configured to receive target split data packets transmitted by the sending end device through the plurality of links;
[0046] a first decoding module configured to perform first forward error correction decoding on the target split data packets on each link respectively, to determine a second split data packet of a second sequence number, and to determine whether the second split data packet has a packet loss phenomenon according to the second sequence number;
[0047] a second decoding module configured to, if the second split data packet has a packet loss, perform second forward error correction decoding on the second split data packet to obtain a first split data packet, the first split data packet comprising a first sequence number, the second forward error correction decoding corresponding to the first forward error correction coding;
[0048] a splicing module configured to, if the first sequence number does not have a packet loss, determine a data packet to be transmitted according to the first split data packet.
[0049] Optionally, the first decoding module is configured to:
[0050] perform first forward error correction decoding on the target split data packets on each link respectively to obtain a third sequence number;
[0051] determine a second split data packet of a second sequence number corresponding to the third sequence number according to the third sequence number;
[0052] The first decoding module is further configured to:
[0053] According to the second serial number, the second fragmented data packet is sorted to obtain a sorted second fragmented data packet.
[0054] The sorted second fragmented data packet is judged.
[0055] Optionally, the apparatus further comprises a retransmission module configured to:
[0056] If there is a packet loss in the first serial number, the packet sequence and quantity of the packet loss are determined according to the first fragmented data packet sequence.
[0057] In a third aspect, an embodiment of the present application provides a terminal device, comprising at least one processor and a memory.
[0058] The memory stores a computer program, and the at least one processor executes the computer program stored in the memory to implement the data packet transmission method provided in the first aspect.
[0059] In a fourth aspect, an embodiment of the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed to implement the data packet transmission method provided in the first aspect.
[0060] In a fifth aspect, an embodiment of the present application provides a terminal device, comprising at least one processor and a memory.
[0061] The memory stores a computer program, and the at least one processor executes the computer program stored in the memory to implement the data packet transmission method provided in the first aspect.
[0062] In a sixth aspect, an embodiment of the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed to implement the data packet transmission method provided in the first aspect.
[0063] Embodiments of the present application have the following advantages:
[0064] The data packet transmission method, apparatus, terminal device and storage medium provided by the embodiments of the present application obtain the first fragmented data packet to be sent, perform first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet, configure the second fragmented data packet according to preset bandwidth information of each link, perform second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet, and send the target fragmented data packet to a receiving end device. Through double forward error correction encoding on the data packet to be transmitted and data transmission according to the bandwidth information of each link, the link stability in the transmission process is increased, and the retransmission rate is reduced. BRIEF DESCRIPTION OF DRAWINGS
[0065] Figure 1 is a step flow chart of an embodiment of the data packet transmission method of the present application;
[0066] Figure 2 is a step flow chart of another embodiment of the data packet transmission method of the present application;
[0067] Figure 3 is a step flow chart of an embodiment of the data packet transmission method of the present application;
[0068] Figure 4 is a step flow chart of another embodiment of the data packet transmission method of the present application;
[0069] Figure 5 is a schematic diagram of an embodiment of the data packet transmission method of the present application;
[0070] Figure 6 is a further schematic diagram of an embodiment of the data packet transmission method of the present application;
[0071] Figure 7 is a structural block diagram of an embodiment of the data packet transmission device of the present application;
[0072] Figure 8 is a structural block diagram of an embodiment of the data packet transmission device of the present application;
[0073] Figure 9 is a structural schematic diagram of a terminal device of the present application;
[0074] Figure 10 is a structural schematic diagram of a terminal device of the present application. DETAILED DESCRIPTION
[0075] In order to make the above objectives, features and advantages of the present application more apparent, further detailed description will be given to the present application in combination with the drawings and specific embodiments.
[0076] The following are the explanations of the terms:
[0077] Multi-network card aggregation terminal: a terminal product capable of simultaneous transmission by multi-network card link.
[0078] FEC: (Forward Error Correction, forward error correction), also called forward error correction code, is an error control method, which refers to that the signal is pre-processed according to a certain algorithm before being sent into the transmission channel, and the redundant code with the characteristics of the signal itself is added, and the received signal is decoded at the receiving end according to the corresponding algorithm, so as to find out the error code generated in the transmission process and correct it; it can increase the reliability of data communication. In a one-way communication channel, once an error is found, the receiver will have no right to request transmission. FEC is a method of transmitting redundant information using data. When an error occurs in transmission, the receiver will be allowed to rebuild the data.
[0079] Original packet: refers to the packet body encapsulating the real data of the media.
[0080] Redundant packet: refers to the new packet body formed by the real data through the FEC algorithm. It is not real media data, but an information packet body used to recover the media data.
[0081] n-order FEC: refers to the ability of the FEC algorithm to recover real data. The higher the order, the greater the ability, the more redundant data generated, and the greater the bandwidth consumption. Currently, FEC basically has one order, two orders and three orders.
[0082] An embodiment of the present application provides a data packet transmission method for transmitting data after double forward error correction encoding.
[0083] Referring to Figure 1 , a step flowchart of an embodiment of a data packet transmission method of the present application is shown, which is applied to a sending end device, and a plurality of links are arranged between the sending end device and a receiving end device. The method can specifically include the following steps:
[0084] S101, obtaining first fragmented data packets to be sent;
[0085] Specifically, a plurality of links are arranged between the sending end device and the receiving end device in the embodiment of the present application, wherein the sending end device contains a plurality of network cards, and the sending end device communicates data with the receiving end device through the plurality of network cards. The sending end device can be a multi-network card aggregation terminal, which includes a plurality of network cards. The network card can be a 3G network card, a 4G network card or a 5G network card, which can be set according to actual conditions, and is not specifically limited in the embodiment of the present application.
[0086] Exemplarily, the sending terminal device can be a 4G multi-card link diagram transmission device, which is a transmission device for a VR360 panoramic camera. The code stream is usually 12M-15M. The 12M-15M code stream is carried by multiple 4G cards, and the data is sent together. The receiving terminal device can be a terminal device or a server. The sending terminal device and the receiving terminal device can be devices of different operators.
[0087] The links between the sending terminal device and the receiving terminal device are established in advance. For example, the sending terminal device includes three network cards. The sending terminal device and the receiving terminal device can establish three links, and data is sent through the three links.
[0088] Since the bandwidth of each link that can transmit data can be the same or different, in either case, the bandwidth will affect the data transmission. Thus, during the transmission process, packet loss occurs, and the receiving terminal device cannot receive complete data packets. Based on this, the embodiment of the application provides a data transmission method. The sending terminal device obtains the preset bandwidth value of each link, that is, the preset target byte number of the data packet sent by each link, that is, the byte number of the data that can be sent by each network card at a time.
[0089] Specifically, the sending terminal device obtains a data packet to be transmitted, splits the data packet to be transmitted according to the preset target byte number, and obtains a first split data packet. The first split data packet includes a first serial number.
[0090] For example, the preset target byte number is 1024 bytes, that is, the byte number of the data packet sent by the sending terminal at a time is 1024 bytes. Since the last data packet to be sent is a data packet encoded by double forward error correction, 4 bytes are added after each encoding. Therefore, from back to front, the byte number of the data packet to be split should be the preset target byte number minus the byte number added by each encoding. For example, the preset target byte number of the last data packet to be sent is 1024. When pushed forward, it is 1016 bytes. Therefore, the data packet to be transmitted is split according to 1016 bytes, and a first split data packet is obtained. Each first split data packet includes a first serial number, for example, the first serial numbers are A1, A2, A3, and the like.
[0091] S102, a first split data packet is encoded by first forward error correction to obtain a second split data packet;
[0092] Specifically, when the first slice data packet is generally first forward error correction encoding, it can be encoded for any first slice data packet, for example, each first slice data packet is encoded to obtain an original packet and a redundant packet, if it is many first slice data packets, it will occupy more bandwidth in the process of transmission; Therefore, in order to save bandwidth, it can be encoded for 4 or 4 times of first slice data packet, for example, 4 first slice data packets are first forward error correction encoded, 6 encoded data packets, i.e. second slice data packets, are generated, which reduces the bandwidth occupied in data transmission, wherein the second slice data packet includes the first slice data packet and the first redundant packet.
[0093] S103, according to the preset bandwidth information of each link, the second slice data packet is configured;
[0094] Specifically, the sending end device first forward error correction encodes the first slice data packet to obtain the encoded data packet, i.e. the second slice data packet, and then distributes a plurality of second slice data packets according to the preset bandwidth information of each link, and a certain number of second slice data packets are distributed on each link.
[0095] S104, for the second slice data packet on each link, second forward error correction encoding is performed to obtain the target slice data packet, and the target slice data packet is sent to the receiving end device.
[0096] Specifically, the sending end device second forward error correction encodes a certain number of second slice data packets on each network card to obtain the target slice data packet;
[0097] Exemplarily, the sending end device first forward error correction encodes every 4 first slice data packets to obtain 6 encoded data packets, wherein 4 data packets are original data packets, i.e. first slice data packets, and 2 data packets are redundant data packets, and each encoded data packet increases 4 bytes, which includes data block type, packet sequence, profile and frame sequence, wherein the data block type is original packet or redundant packet, and the profile is the position of the first slice data packet in the entire data packet.
[0098] The sending end device distributes the encoded data packets according to the preset bandwidth information, and second forward error correction encodes the encoded data packets distributed on each network card to obtain the target slice data packet, wherein the target data packet also includes original data packet and redundant data packet, and 4 bytes are further added on the basis of the first forward encoded data packet.
[0099] Exemplarily, the 6 encoded data packets on the first link are second forward error correction encoded to obtain the target slice data packet.
[0100] The sending end device sends the target fragment data packet to the receiving end device through each link, and the receiving end device performs secondary forward error correction decoding after receiving the target fragment data packet to obtain the original to-be-transmitted data packet, and performs data transmission through twice forward error correction encoding and decoding and according to the bandwidth information of each link, thereby increasing the link stability in the transmission process, and reducing the packet loss rate and retransmission rate through encoding and decoding.
[0101] The data packet transmission method provided by the embodiment of the application comprises the following steps: obtaining a first fragment data packet to be sent; performing first forward error correction encoding on the first fragment data packet to obtain a second fragment data packet; configuring the second fragment data packet according to preset bandwidth information of each link; performing second forward error correction encoding on the second fragment data packet on each link to obtain a target fragment data packet, and sending the target fragment data packet to a receiving end device, thereby increasing the link stability in the transmission process and reducing the retransmission rate through double forward error correction encoding on the to-be-transmitted data packet and data transmission according to the bandwidth information of each link.
[0102] The embodiment of the application further supplements the data packet transmission method provided in the above embodiment.
[0103] As shown in Figure 2 The data packet transmission method comprises the following steps:
[0104] S201, determining preset target byte numbers of data packets sent by each link;
[0105] S202, determining a split byte number according to the preset target byte number, a first encoding packet header and a second encoding packet header;
[0106] Specifically, the preset target byte number is the maximum byte number that can be transmitted in the link, for example, 1024 bytes, and the embodiment of the application needs to split the to-be-transmitted data, and then perform twice encoding, each encoding adding 4 bytes, and the added bytes are respectively stored in the first encoding packet header and the second encoding packet header, that is, the first encoding packet header is 4 bytes, and the second encoding packet header is 4 bytes.
[0107] Exemplarily, the preset target byte number is 1024 bytes, that is, the number of bytes of the data packet sent by the sending terminal each time is 1024 bytes, since the last sent data packet is a data packet encoded by double forward error correction, 4 bytes are added after each encoding, so from back to front, the number of bytes of the data packet to be transmitted after splitting should be the preset target byte number minus the number of bytes added each time encoding, for example, the preset target byte number of the last sent is 1024, and the number of bytes is 1016 after pushing forward, therefore, the data packet to be transmitted is split according to 1016 bytes, and the first split data packet is obtained, each first split data packet includes a first serial number, for example, the first serial numbers are A1, A2, A3, ….
[0108] S203, splitting the data packet to be transmitted according to the split byte number to obtain a first split data packet.
[0109] S204, first forward error correction encoding is performed on the n first split data packets respectively to obtain m second split data packets, the second split data packet includes a second serial number; n and m are natural numbers greater than 0, and n is less than m.
[0110] Exemplarily, when the first forward error correction encoding is performed on the first split data packet, any number of first split data packets can be encoded, for example, each first split data packet is encoded to obtain an original packet and a redundant packet, if there are many first split data packets, more bandwidth will be occupied during transmission; therefore, in order to save bandwidth, 4 or a multiple of 4 first split data packets can be encoded, for example, the first forward error correction encoding is performed on 4 first split data packets, and 6 encoded data packets, that is, second split data packets, are generated, so that the bandwidth occupied during data transmission is reduced, wherein the second split data packet includes the first split data packet and the first redundant packet.
[0111] In the embodiment of the application, the forward error correction encoding can be first-order, second-order or third-order, that is, several-order encoding, that is, several redundant packets are generated on the basis of the original data packet. In the embodiment of the application, no specific limitation is made.
[0112] Exemplarily, the sending terminal device performs first forward error correction encoding on 4 first split data packets respectively to obtain 6 second split data packets, and the generated second split data packets need to be re-encoded, that is, the second serial number is generated.
[0113] S205, configuring the plurality of second split data packets according to the preset bandwidth information of each link.
[0114] Specifically, the sending end device configures the plurality of second fragmented data packets according to preset bandwidth information of each link, that is, allocates the first fragmented data packet and the first redundant packet.
[0115] S206, performing second forward error correction coding on the second fragmented data packet on the link to obtain a target fragmented data packet, the target fragmented data packet including a third sequence number, and a correspondence table of the third sequence number and the second sequence number and the second sequence number and the first sequence number of the first fragmented data packet.
[0116] Specifically, the sending end device respectively performs second forward error correction coding on the second fragmented data packet on each link to obtain a target fragmented data packet, the target fragmented data packet including the first fragmented data packet and the second redundant packet.
[0117] S207, sending the target fragmented data packet to the receiving end device.
[0118] Specifically, the sending end device sends the generated target fragmented data packet to the receiving end device through each link.
[0119] Referring to Figure 3 , a step flowchart of an embodiment of a data packet transmission method of the application is shown, applied to a receiving end device, a plurality of links are set between a sending end device and the receiving end device, the receiving end device can be a multi-card device or a server, the method can specifically include the following steps:
[0120] S301, receiving a target fragmented data packet sent by the sending end device through the plurality of links;
[0121] Specifically, the receiving end device can be a multi-network card aggregation terminal, or a server, that is, the sending end device can communicate with the multi-network card aggregation terminal of the receiving end, or the sending end device can communicate with the server.
[0122] If the multi-network card aggregation terminal of the sending end communicates with the multi-network card aggregation terminal of the receiving end, a communication link is established between the network cards, that is, 4G network cards communicate with each other for data transmission, 5G network cards communicate with each other for data transmission, etc.
[0123] If the sending end device communicates with the server, the sending end device establishes a communication link with the server through each network card.
[0124] The sending end device sends the target fragmented data packet through each network card, and the receiving end device receives the target fragmented data packet.
[0125] S302, respectively, on each link target slice packet first forward error correction decoding, determine the second number of second slice data packet, and according to the second number to determine whether the second slice data packet exists packet loss phenomenon;
[0126] Specifically, the receiving end device first judges the number of target slice data packets received on each network card. Since the forward error correction algorithm has FEC error correction capability, that is, the product of the total number of transmission data packets and the error correction capability, if the number of data packets lost exceeds the product of the total number of transmission data packets and the error correction capability, it cannot be recovered, and if the number of lost data packets is less than the product of the total number of transmission data packets and the error correction capability, the lost data packets can be recovered.
[0127] The receiving end device respectively decodes the target slice data packet on each network card for the first time to obtain the third sequence number of the decoded data packet, and then determines the second slice data packet corresponding to the second sequence number according to the third sequence number.
[0128] S303, if the second slice data packet exists packet loss, the second slice data packet is decoded for the second time, and the first slice data packet is obtained, the first slice data packet includes the first sequence number, the first forward error correction decoding corresponds to the second forward error correction decoding;
[0129] Specifically, the receiving end device respectively decodes the target slice data packet received on each network card for the first time to obtain the second slice data packet, judges whether packet loss occurs according to the second slice data packet, if packet loss occurs, the second slice data packet is decoded for the second time to obtain the first slice data packet, and the first sequence number of the first slice data packet is obtained, and the lost data packet is recovered through the second forward error correction decoding.
[0130] S304, if the first sequence number does not exist packet loss, the first slice data packet is used to determine the data packet to be transmitted.
[0131] Specifically, the receiving end device judges the first sequence number, if there is no packet loss, the first slice data packet is spliced to obtain the original data packet to be transmitted. The embodiment of the application can recover the lost data packet through double forward error correction encoding and double forward error correction decoding, and reduce the data retransmission rate.
[0132] The data packet transmission method provided in this embodiment of the invention obtains a first fragmented data packet to be sent; performs a first forward error correction coding on the first fragmented data packet to obtain a second fragmented data packet; configures the second fragmented data packet according to the preset bandwidth information of each link; performs a second forward error correction coding on the second fragmented data packet on each link to obtain a target fragmented data packet, and sends the target fragmented data packet to the receiving end device. By performing double forward error correction coding on the data packet to be transmitted and transmitting data according to the bandwidth information of each link, the link stability during transmission is increased and the retransmission rate is reduced.
[0133] Another embodiment of the present invention further supplements the data packet transmission method provided in the above embodiments.
[0134] like Figure 4 The diagram illustrates a flowchart of another embodiment of the data packet transmission method of the present invention, which includes:
[0135] S401, Receive target fragmented data packets sent by the sending device through multiple links;
[0136] S402. Perform the first forward error correction decoding on the target fragment data packets on each link to obtain the third sequence number. The first forward error correction decoding corresponds to the second forward error correction encoding.
[0137] Specifically, the receiving device first determines the number of target fragmented data packets received on each network card. Since the forward error correction algorithm has FEC error correction capability, which is the product of the total number of transmitted data packets and the error correction capability, if more data packets than the product of the total number of transmitted data packets and the error correction capability are lost, they cannot be recovered. If the number of lost data packets is less than the product of the total number of transmitted data packets and the error correction capability, the lost data packets can be recovered.
[0138] For example, if the error correction capability is 25% and the total number of transmitted data packets is 100, then 100 * 25% = 4. That is to say, if the number of lost data packets is less than or equal to 4, the lost data packets can be recovered. If the number of lost data packets is greater than 4, the lost data packets cannot be recovered through FEC decoding.
[0139] S403. Based on the third sequence number, determine the second fragment data packet with the second sequence number corresponding to the third sequence number;
[0140] Specifically, the receiving device performs the first forward error correction decoding on each network card for the target fragmented data packet, obtains the third sequence number of the decoded data packet, and then determines the second fragmented data packet with the second sequence number corresponding to the third sequence number based on the third sequence number.
[0141] S404. Sort the second fragment data packet according to the second sequence number to obtain the sorted second fragment data packet; make a judgment on the sorted second fragment data packet.
[0142] Specifically, the receiving device sorts the second fragment data packets on all network cards and determines whether packets have been lost based on the sorted packet order.
[0143] S405. If packet loss occurs, perform a second forward error correction decoding on the sorted second fragment data packet to obtain the first fragment data packet. The first fragment data packet includes the first sequence number. The second forward error correction decoding corresponds to the first forward error correction encoding.
[0144] Specifically, if the receiving device determines that there is packet loss after the first forward error correction decoding, it needs to perform a second forward error correction decoding on the sorted second fragment data packet to continue to retrieve the lost data packet and obtain the first fragment data packet, which includes the first sequence number.
[0145] S406. If there is no packet loss in the first sequence number, then the data packet to be transmitted is determined based on the first fragment data packet.
[0146] S407. If there is packet loss in the first sequence number, determine the packet sequence and number of lost packets based on the packet sequence of the first fragment data.
[0147] Figure 5 This is a schematic diagram of an embodiment of the data packet transmission method of the present invention, as shown below. Figure 5 As shown, the data packet transmission method includes:
[0148] In the following embodiments, the single-layer FEC algorithm encoding is identified by ①, the double-layer FEC algorithm encoding is identified by ②, the single-layer FEC algorithm decoding is identified by ③, and the double-layer FEC algorithm decoding is identified by ④.
[0149] 1. The data bytes entering ① are the audio and video data collected by the acquisition card of the sending device, i.e., the data to be transmitted. The data block to be transmitted is often quite long, so it needs to be split in ①.
[0150] Set the RTP packet data payload size, i.e. the preset target number of bytes, to 1024 bytes, then ① split the data with 1016 bytes, and generate a series of data blocks with a payload length of 1020 bytes (including original data blocks and ① redundant data blocks) after algorithm. Each packet increases 4 bytes to represent the data block type, packet sequence, profile, and frame sequence. The last data is split in slice (data to be transmitted) units, and the data block that is not full is filled with data. The sending device records the relevant association information of the second fragment data packet obtained from ①, which includes the slice number, frame number, data block number, start position, end position, length, padding identifier, and padding length. This association information is used for quick positioning, extracting data block data, and retransmission.
[0151] (2) Distribute according to the predicted bandwidth of each link in combination with the second fragment data; since the distribution according to the capacity is for bytes, and the second fragment data packet after ① encoding is a fixed payload data block that cannot be split again, an integer rounding and zero discarding strategy is adopted to ensure that the real-time sending amount is less than or equal to the predicted value.
[0152] (3) After the distribution in (2), the total data amount, i.e. all the second fragment data packets, is distributed to each inter-network link, and each link processes ② the series of data blocks with a payload length of 1020 bytes. This time, the second fragment data packet does not need to be split, and the original data output and redundant data generation are directly performed. A series of data blocks with a payload length of 1024 bytes, i.e. target fragment data packets (including original data blocks and ② redundant data blocks), are formed. Each packet increases 4 bytes to represent the new type of data block, packet sequence, profile, and frame sequence.
[0153] (4) The data blocks obtained after (3) can be directly processed by RTP packet and sent.
[0154] (5) The receiving end device receives the RTP data packets through each inter-network link, determines whether the packets are lost and whether the lost packets can be recovered according to the FEC decoding based on the number of received data packets. For example, if the FEC error correction capability is set to 25%, a maximum of m = (one frame data block * 25%) data blocks can be deleted, and m includes original data blocks and redundant data blocks.
[0155] (6) The receiving end device checks and recovers each link respectively. The receiving end device performs the first FEC decoding on the data packets on each link, judges whether the original data block is lost based on the second number of the decoded second fragment data packet;
[0156] If there is no loss, the original data block enters (7);
[0157] If there is a loss, it is judged whether the number of lost packets can be recovered by ④.
[0158] If the first fragment data packet can be found back, go to (7) to perform the second FEC decoding on the second fragment data packet to obtain the first fragment data packet;
[0159] If the first fragment data packet cannot be found back, go to (7) to extract the incomplete original data block;
[0160] (7) After (6), the data blocks of all the network links, i.e. the first fragment data packet, are collected to perform the second rearrangement, and it is determined whether the original data block is lost;
[0161] If not, the original data block goes to (8);
[0162] If yes, it is determined whether the number of the lost data blocks can be found back through (3);
[0163] If yes, go to (3) to obtain the complete original data block;
[0164] If not, the minimum number of the retransmission data blocks is calculated, and the retransmission is applied according to the frame sequence and the packet sequence in the historical record of the sending end device to obtain the retransmission packet, which goes to (8);
[0165] (8) At this time, the data block is complete, and the related audio and video data decoding work can be performed.
[0166] Figure 6 is another schematic view of the embodiment of the data packet transmission method of the application, as shown in Figure 6 , wherein the numbers in the figure represent the sequence numbers of the data packets;
[0167] 1. The sending end device splits the data packet to be transmitted according to 1016 bytes to obtain the first fragment data packet, and then performs the first FEC encoding on a plurality of first fragment data packets to obtain the second fragment data packets with sequence numbers of 1-16, i.e. the second fragment data packets include the second sequence numbers;
[0168] 2. The sending end device distributes the second fragment data packets according to the bandwidth of each network card link, for example, the second fragment data packets with the second sequence numbers of 1, 3, 5 and 8 are distributed to the first network card, the second fragment data packets with the second sequence numbers of 2, 6, 7 and 14 are distributed to the second network card, the second fragment data packets with the second sequence numbers of 4, 9, 12 and 15 / 16 are distributed to the third network card, and the second fragment data packets with the second sequence numbers of 10, 11 and 13 are distributed to the fourth network card;
[0169] 3. The sending end device re-encodes the second fragment data packets of each network card, i.e. the sequence numbers 1, 2, 3 and 4 corresponding to 1, 3, 5 and 8 in the figure, and performs the second FEC encoding on the re-numbered second fragment data packets with the sequence numbers of 1, 2, 3 and 4 to obtain the target fragment data packets with the sequence numbers of 1, 2, 3, 4, 5 and 6.
[0170] 4、the receiving end device loses 3 and 5 in the process of receiving the target fragment data packets 1, 2, 3, 4, 5, 6, since the transmission data packets are 16 and the error correction capability value is 25%, thus less than 4 data packets can be retrieved through FEC decoding, as shown in the first decoding, the third sequence number 1, 2, 4, 6 becomes the third sequence number 1, 2, 3, 4, 5, 6, according to the third sequence number, the second sequence number corresponding to the third sequence number is obtained, that is, the second sequence number 1, 3, 5, 8 is obtained;
[0171] 5、each network card is operated as described above, and the second sequence number 2, 6, 7, 4, 15, 10, 11, 13 is obtained;
[0172] 6、the receiving end device sorts the second sequence number, as shown in the figure, it is found that the second fragment data packet 9, the second fragment data packet 12 and the second fragment data packet 14 are lost;
[0173] 7、since the lost data packets are less than 4, the lost first fragment data packets can be retrieved through the second FEC decoding, and the specific retrieval process is the same as the above steps, which will not be described here.
[0174] It should be noted that, for the method embodiment, in order to simply describe, it is expressed as a series of action combinations, but those skilled in the art should know that the embodiment of the present application is not limited by the action sequence described, because according to the embodiment of the present application, some steps can be adopted in other order or simultaneously. Secondly, those skilled in the art should know that the embodiments described in the specification all belong to preferred embodiments, and the actions involved are not necessarily the embodiment of the present application.
[0175] The data packet transmission method provided by the embodiment of the present application acquires the first fragment data packet to be sent, performs first forward error correction encoding on the first fragment data packet to obtain the second fragment data packet, configures the second fragment data packet according to the preset bandwidth information of each link, performs second forward error correction encoding on the second fragment data packet on each link to obtain the target fragment data packet, and sends the target fragment data packet to the receiving end device. Through double forward error correction encoding on the data packet to be transmitted and data transmission according to the bandwidth information of each link, the link stability in the transmission process is increased, and the retransmission rate is reduced.
[0176] Another embodiment of the present application provides a data packet transmission device for executing the data packet transmission method provided by the above embodiment.
[0177] Reference Figure 7, a structural block diagram of an embodiment of a data packet transmission device of the application is shown, which is applied to a sending terminal device, a plurality of links are arranged between the sending terminal device and a receiving terminal device, and the device can specifically include the following modules: an acquisition module 701, a first encoding module 702, a configuration module 703, and a second encoding module 704, wherein:
[0178] The acquisition module 701 is used for acquiring a first fragmented data packet to be sent.
[0179] The first encoding module 702 is used for performing first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet.
[0180] The configuration module 703 is used for configuring the second fragmented data packet according to preset bandwidth information of each link.
[0181] The second encoding module 704 is used for performing second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet, and sending the target fragmented data packet to the receiving terminal device.
[0182] The data packet transmission device provided by the embodiment of the application acquires a first fragmented data packet to be sent, performs first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet, configures the second fragmented data packet according to preset bandwidth information of each link, performs second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet, and sends the target fragmented data packet to the receiving terminal device, so that the data packet to be transmitted is double forward error correction encoded, and data transmission is performed according to the bandwidth information of each link, thereby increasing the link stability in the transmission process and reducing the retransmission rate.
[0183] Another embodiment of the application further supplements the data packet transmission device provided in the above embodiment.
[0184] Optionally, the first encoding module is used for:
[0185] performing first forward error correction encoding on n first fragmented data packets respectively to obtain m second fragmented data packets, the second fragmented data packets including second serial numbers; n and m are natural numbers greater than 0, and n is less than m.
[0186] Correspondingly, performing second forward error correction encoding on the second fragmented data packets on each link to obtain target fragmented data packets includes:
[0187] performing second forward error correction encoding on the second fragmented data packets on a link to obtain target fragmented data packets, the target fragmented data packets including third serial numbers, and a correspondence table of the third serial numbers and the second serial numbers and the second serial numbers and first serial numbers of the first fragmented data packets.
[0188] Optionally, the obtaining module is configured to:
[0189] obtain a data packet to be transmitted, and determine a preset target byte number of the data packet transmitted by each link;
[0190] determine a split byte number according to the preset target byte number, the first encoded packet header, and the second encoded packet header;
[0191] split the data packet to be transmitted according to the split byte number to obtain a first fragmented data packet.
[0192] Another embodiment of the present application provides a data packet transmission device for executing the data packet transmission method provided by the above-described embodiments.
[0193] Referring to Figure 8 , a structural block diagram of an embodiment of a data packet transmission device of the present application is shown, which is applied to a receiving end device, and a plurality of links are arranged between a sending end device and the receiving end device. The device can specifically include the following modules: a receiving module 801, a first decoding module 802, a second decoding module 803, and a splicing module 804, wherein:
[0194] The receiving module 801 is configured to receive target fragmented data packets transmitted by the sending end device through the plurality of links.
[0195] The first decoding module 802 is configured to perform first forward error correction decoding on the target fragmented data packets on each link respectively, determine a second fragmented data packet of a second sequence number, and determine whether the second fragmented data packet has a packet loss phenomenon according to the second sequence number.
[0196] The second decoding module 803 is configured to, if the second fragmented data packet has a packet loss, perform second forward error correction decoding on the second fragmented data packet to obtain a first fragmented data packet, the first fragmented data including a first sequence number, the first forward error correction decoding corresponding to the second forward error correction decoding.
[0197] The splicing module 804 is configured to, if the first sequence number does not have a packet loss, determine a data packet to be transmitted according to the first fragmented data packet.
[0198] The data packet transmission device provided by the embodiment of the present application obtains a first fragmented data packet to be transmitted, performs first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet, configures the second fragmented data packet according to preset bandwidth information of each link, performs second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet, and transmits the target fragmented data packet to the receiving end device. Through double forward error correction encoding on the data packet to be transmitted and data transmission according to the bandwidth information of each link, the link stability in the transmission process is increased, and the retransmission rate is reduced.
[0199] Another embodiment of the present application further supplements the data packet transmission device provided in the above embodiment.
[0200] Optionally, the first decoding module is configured to:
[0201] perform first forward error correction decoding on the target fragmented data packet on each link respectively to obtain a third sequence number;
[0202] determine, according to the third sequence number, a second fragmented data packet corresponding to the second sequence number of the third sequence number;
[0203] The first decoding module is further configured to:
[0204] perform sorting on the second fragmented data packet according to the second sequence number to obtain a sorted second fragmented data packet;
[0205] perform judgment on the sorted second fragmented data packet.
[0206] Optionally, the device further comprises a retransmission module configured to:
[0207] if the first sequence number has packet loss, determine the packet sequence and quantity of the packet loss according to the first fragmented data packet sequence.
[0208] It should be noted that each implementable manner in the embodiment can be implemented alone or in any combination manner without conflict.
[0209] For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the related part can be referred to the part of the method embodiment.
[0210] The data packet transmission device provided in the embodiment of the present application obtains the first fragmented data packet to be sent, performs first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet, configures the second fragmented data packet according to the preset bandwidth information of each link, performs second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet, and sends the target fragmented data packet to a receiving end device. Through double forward error correction encoding on the data packet to be transmitted and data transmission according to the bandwidth information of each link, the link stability in the transmission process is increased, and the retransmission rate is reduced.
[0211] Another embodiment of the present application provides a terminal device configured to execute the data packet transmission method provided in the above embodiment.
[0212] Figure 9 is a structural schematic diagram of a terminal device of the present application, as Figure 9As shown, the terminal device comprises at least one processor 901 and a memory 902.
[0213] The memory stores a computer program; and the at least one processor executes the computer program stored in the memory to implement the data packet transmission method provided in the above embodiments.
[0214] The terminal device provided in the embodiment obtains a first fragmented data packet to be transmitted; performs first forward error correction encoding on the first fragmented data packet to obtain a second fragmented data packet; configures the second fragmented data packet according to preset bandwidth information of each link; performs second forward error correction encoding on the second fragmented data packet on each link to obtain a target fragmented data packet, and transmits the target fragmented data packet to a receiving terminal device. Through double forward error correction encoding on the data packet to be transmitted and data transmission according to the bandwidth information of each link, the link stability in the transmission process is increased, and the retransmission rate is reduced.
[0215] Another embodiment of the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed to implement the data packet transmission method provided in any of the above embodiments.
[0216] According to the computer readable storage medium of the embodiment, a first fragmented data packet to be transmitted is obtained; first forward error correction encoding is performed on the first fragmented data packet to obtain a second fragmented data packet; the second fragmented data packet is configured according to preset bandwidth information of each link; second forward error correction encoding is performed on the second fragmented data packet on each link to obtain a target fragmented data packet, and the target fragmented data packet is transmitted to a receiving terminal device. Through double forward error correction encoding on the data packet to be transmitted and data transmission according to the bandwidth information of each link, the link stability in the transmission process is increased, and the retransmission rate is reduced.
[0217] Still another embodiment of the present application provides a terminal device for executing the data packet transmission method provided in the above embodiments.
[0218] Figure 10 is a structural schematic diagram of a terminal device of the present application, as Figure 10 As shown, the terminal device comprises at least one processor 1001 and a memory 1002.
[0219] The memory stores a computer program; and the at least one processor executes the computer program stored in the memory to implement the data packet transmission method provided in the above embodiments.
[0220] The terminal device provided by the embodiment obtains a first fragmented data packet to be sent, performs first forward error correction coding on the first fragmented data packet to obtain a second fragmented data packet, configures the second fragmented data packet according to preset bandwidth information of each link, performs second forward error correction coding on the second fragmented data packet on each link to obtain a target fragmented data packet, and sends the target fragmented data packet to a receiving terminal device. Through double forward error correction coding on the data packet to be sent and data transmission according to the bandwidth information of each link, the link stability in the transmission process is increased, and the retransmission rate is reduced.
[0221] The computer readable storage medium stores a computer program, and the computer program is executed to implement the data packet transmission method provided in any of the above embodiments.
[0222] According to the computer readable storage medium, a first fragmented data packet to be sent is obtained, first forward error correction coding is performed on the first fragmented data packet to obtain a second fragmented data packet, the second fragmented data packet is configured according to preset bandwidth information of each link, second forward error correction coding is performed on the second fragmented data packet on each link to obtain a target fragmented data packet, and the target fragmented data packet is sent to a receiving terminal device. Through double forward error correction coding on the data packet to be sent and data transmission according to the bandwidth information of each link, the link stability in the transmission process is increased, and the retransmission rate is reduced.
[0223] Each of the embodiments in the specification is described in a progressive manner, and each embodiment focuses on the difference from other embodiments. The same or similar parts of each embodiment can be referred to each other.
[0224] Those skilled in the art should understand that the embodiments of the embodiments of the present application can be provided as a method, device, or computer program product. Therefore, the embodiments of the present application can be in the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the embodiments of the present application can be in the form of a computer program product implemented on one or more computer usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer usable program code.
[0225] The embodiments of the present application are described with reference to the flowchart illustrations and / or block diagrams of the methods, electronic apparatus (systems) and computer program products according to the embodiments of the present application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart illustrations and / or block diagrams. Figure 1 one or more functions specified in the flowchart illustrations and / or block diagrams. Figure 1 one or more functions specified in the flowchart illustrations and / or block diagrams.
[0226] These computer program instructions can also be stored in a computer- readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the functions specified in the flowchart illustrations and / or block diagrams. Figure 1 one or more functions specified in the flowchart illustrations and / or block diagrams. Figure 1 one or more functions specified in the flowchart illustrations and / or block diagrams.
[0227] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart illustrations and / or block diagrams. Figure 1 one or more functions specified in the flowchart illustrations and / or block diagrams. Figure 1 one or more functions specified in the flowchart illustrations and / or block diagrams.
[0228] While the preferred embodiments of the application have been described, additional variations and modifications can be made to the embodiments by those of skill in the art once they have the benefit of the present disclosure. Therefore, the appended claims are intended to cover all such variations and modifications as falling within the scope of the embodiments of the present application.
[0229] Finally, it needs to be pointed out that in this document, relational terms such as first and second and the like can only be intended to distinguish one entity or operation from another entity or operation without necessarily requiring or implying any such actual relationship or order between such entities or operations. Moreover, the terms "comprising", "including", or any other variant thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or electronic device that comprises a list of elements does not include only those elements but can also include other elements not expressly listed or inherent to such process, method, article, or electronic device. Without more limitations, an element defined by the statement "comprising a" does not exclude the existence of additional identical elements in the process, method, article, or electronic device including the element.
[0230] The above describes in detail the data packet transmission method and the data packet transmission device provided by the present application. The principles and implementation manners of the present application are described by using specific examples. The above description of the examples is only used to help understand the method of the present application and its core idea. Meanwhile, for those skilled in the art, the specific implementation manners and application ranges can be changed according to the idea of the present application. In summary, the content of the present description should not be understood as a limitation of the present application.
Claims
1. A method of data packet transmission, characterized by, The method is applied to a sending end device, a plurality of links are arranged between the sending end device and a receiving end device, and the method comprises the following steps: Obtaining a first split data packet to be sent; the first split data packet comprises a first serial number; First forward error correction coding is performed on the first split data packet to obtain a second split data packet; the second split data packet comprises a second serial number; The second split data packet is configured according to preset bandwidth information of each link; Second forward error correction coding is performed on the second split data packet on each link to obtain a target split data packet, and the target split data packet is sent to the receiving end device; the target split data packet comprises a third serial number, a correspondence table of the third serial number and the second serial number, and the second serial number and the first serial number of the first split data packet; so that the receiving end device receives the target split data packet, first forward error correction decoding is performed on the target split data packet on each link respectively to obtain the third serial number, the second split data packet of the second serial number corresponding to the third serial number is determined according to the third serial number, second forward error correction decoding is performed on the second split data packet according to the second serial number to obtain the first split data packet, and a data packet to be transmitted is determined according to the first split data packet; the data packet to be transmitted comprises a lost data packet; the second split data packet is used for judging whether a packet loss occurs; the second forward error correction decoding is used for determining the lost data packet.
2. The data packet transmission method of claim 1, wherein, The first forward error correction coding is performed on the first split data packet to obtain the second split data packet, which comprises the following steps: n first forward error correction codings are performed on n first split data packets respectively to obtain m second split data packets; the second split data packet comprises a second serial number; n and m are natural numbers greater than 0, and n is less than m; Correspondingly, the second forward error correction coding is performed on the second split data packet on each link to obtain the target split data packet, which comprises the following steps: The second forward error correction coding is performed on the second split data packet on one link to obtain the target split data packet.
3. The data packet transmission method of claim 2, wherein, The first split data packet to be sent is obtained, which comprises the following steps: Obtaining a data packet to be transmitted, and determining preset target byte numbers of data packets sent by each link; Determination of split byte numbers is performed according to the preset target byte numbers, a first coding packet header and a second coding packet header; The data packet to be transmitted is split according to the split byte numbers to obtain the first split data packet.
4. A method of packet transmission, characterized by, The method is applied to a receiving end device, a plurality of links are arranged between a sending end device and the receiving end device, and the method comprises the following steps: receive target fragment data packets sent by the sending terminal device through multiple links; the target fragment data packets are obtained by the sending terminal device from first fragment data to be sent, first forward error correction encoding is performed on the first fragment data packets to obtain second fragment data packets, the second fragment data packets are configured according to preset bandwidth information of each link, second forward error correction encoding is performed on the second fragment data packets on each link to obtain target fragment data packets; the first fragment data packets include first serial numbers; the second fragment data packets include second serial numbers; the target fragment data packets include third serial numbers, and a correspondence table of the third serial numbers and the second serial numbers and the second serial numbers and the first serial numbers of the first fragment data packets; first forward error correction decoding is performed on the target fragment data packets on each link respectively to obtain third serial numbers, the second fragment data packets corresponding to the third serial numbers are determined according to the third serial numbers, and it is judged whether the second fragment data packets exist packet loss according to the second serial numbers; if the second fragment data packets exist packet loss, second forward error correction decoding is performed on the second fragment data packets to obtain the first fragment data packets, the first fragment data includes the first serial numbers, and the second forward error correction decoding corresponds to the first forward error correction encoding; if the first serial numbers do not exist packet loss, data packets to be transmitted are determined according to the first fragment data packets.
5. The data packet transmission method of claim 4, wherein, the judging whether the second fragment data packets exist packet loss according to the second serial numbers includes: the second fragment data packets are sorted according to the second serial numbers to obtain sorted second fragment data packets; the sorted second fragment data packets are judged.
6. The data packet transmission method of claim 4, wherein, the method further includes: if the first serial numbers exist packet loss, packet orders and quantities of the packet loss are determined according to packet orders of the first fragment data.
7. A data packet transmission apparatus characterized by comprising: application to a sending terminal device, multiple links are arranged between the sending terminal device and a receiving terminal device, and the device includes: an acquisition module configured to acquire first fragment data packets to be sent; the first fragment data packets include first serial numbers; a first encoding module configured to perform first forward error correction encoding on the first fragment data packets to obtain second fragment data packets; the second fragment data packets include second serial numbers; a configuration module configured to configure the second fragment data packets according to preset bandwidth information of each link; The second encoding module is configured to perform second forward error correction encoding on the second split data packets on each link to obtain target split data packets, and send the target split data packets to the receiving end device; the target split data packets comprise a third serial number, a correspondence table of the third serial number and the second serial number, and the second serial number and the first serial number of the first split data packets; so that the receiving end device receives the target split data packets, performs first forward error correction decoding on the target split data packets on each link respectively to obtain the third serial number, determines the second split data packets corresponding to the third serial number according to the third serial number, performs second forward error correction decoding on the second split data packets according to the second serial number to obtain the first split data packets, and determines the data packets to be transmitted according to the first split data packets; the data packets to be transmitted comprise lost data packets; the second split data packets are used to determine whether packet loss occurs; and the second forward error correction decoding is used to determine the lost data packets.
8. A data packet transmission apparatus characterized by comprising: The application is applied to a receiving end device, and a plurality of links are arranged between a sending end device and the receiving end device; the device comprises: A receiving module is configured to receive target split data packets sent by the sending end device through the plurality of links; the target split data packets are obtained by the sending end device from first split data packets to be sent, first forward error correction encoding is performed on the first split data packets to obtain second split data packets, the second split data packets are configured according to preset bandwidth information of each link, and second forward error correction encoding is performed on the second split data packets on each link to obtain target split data packets; the first split data packets comprise first serial numbers; the second split data packets comprise second serial numbers; and the target split data packets comprise third serial numbers, a correspondence table of the third serial numbers and the second serial numbers, and the second serial numbers and the first serial numbers of the first split data packets; A first decoding module is configured to perform first forward error correction decoding on the target split data packets on each link respectively to obtain third serial numbers, determine the second split data packets corresponding to the third serial numbers according to the third serial numbers, and determine whether the second split data packets have packet loss according to the second serial numbers; A second decoding module is configured to perform second forward error correction decoding on the second split data packets to obtain first split data packets if the second split data packets have packet loss; the first split data packets comprise first serial numbers, and the second forward error correction decoding corresponds to the first forward error correction encoding; A splicing module is configured to determine data packets to be transmitted according to the first split data packets if the first serial numbers do not have packet loss.
9. A terminal device, comprising: comprise: at least one processor and a memory; the memory stores a computer program; the at least one processor executes the computer program stored in the memory to implement the data packet transmission method in any one of claims 1-3 or 4-6.
10. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program, and the computer program is executed to implement the data packet transmission method in any one of claims 1-3 or 4-6.
Citation Information
Patent Citations
Method for generating forward error correction packet in multimedia system and method and apparatus for transmitting and receiving forward error correction packet
CN103650432A
Data link aggregation method based on satellite communication, router and server
CN113489645A