CN110120853B - Data transmitting and receiving device and method under multilink environment - Google Patents

Data transmitting and receiving device and method under multilink environment Download PDF

Info

Publication number
CN110120853B
CN110120853B CN201910440933.5A CN201910440933A CN110120853B CN 110120853 B CN110120853 B CN 110120853B CN 201910440933 A CN201910440933 A CN 201910440933A CN 110120853 B CN110120853 B CN 110120853B
Authority
CN
China
Prior art keywords
link
data
data packets
data packet
module
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
Application number
CN201910440933.5A
Other languages
Chinese (zh)
Other versions
CN110120853A (en
Inventor
周旭
覃毅芳
王浩宇
任勇毛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Computer Network Information Center of CAS
Original Assignee
Computer Network Information Center of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Computer Network Information Center of CAS filed Critical Computer Network Information Center of CAS
Priority to CN201910440933.5A priority Critical patent/CN110120853B/en
Publication of CN110120853A publication Critical patent/CN110120853A/en
Application granted granted Critical
Publication of CN110120853B publication Critical patent/CN110120853B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The data transmitting device in the multilink environment provided by the invention comprises: the local data packet capturing module is used for capturing a plurality of first data packets; the plurality of first data packets are sent one by one through a first link; the FEC encoding buffer module is used for grouping a plurality of first data packets captured by the local data packet capturing module by taking N data packets as units; n is a natural number greater than 1; the FEC encoding module is used for encoding the grouped first data packets to obtain M second data packets, and the second data packets are redundant error correction data packets corresponding to the first data packets; m is a natural number greater than 1; and the far-end data packet sending module is used for sending the grouping information and the plurality of second data packets through the second link. High quality data transmission is achieved at a lower cost without increasing the transmission bandwidth of the first link.

Description

Data transmitting and receiving device and method under multilink environment
Technical Field
The present invention relates to the field of network communication technologies, and in particular, to a data transmitting and receiving apparatus and a data transmitting and receiving method in a multilink environment.
Background
With the development of cloud computing technology, more and more users tend to deploy services using cloud servers. However, the bandwidth of the cloud server is limited, and generally cannot provide effective link quality assurance. Therefore, phenomena such as high packet loss and unstable time delay of the link are often pain points faced by the user during the use of the cloud server. In order to solve the problem, a cloud service provider provides a bandwidth resource reservation service, so that a high-quality link guarantee can be provided for a cloud server within a service validity period, and packet loss caused by a busy link is avoided. However, this approach is costly for the user to pay for the high service cost.
A common method for solving the link packet loss is to use Forward Error Correction (FEC) coding. Conventional FEC techniques are often developed based on a single link, and the generated redundant error correction packets and the original data packets are transmitted simultaneously in the original link. Therefore, the transmission of the redundant error correction data packet occupies the original bandwidth of the server. Under the condition that the bandwidth of the cloud server is limited, the solution of the traditional FEC technical mode is not ideal in the aspect of effective data transmission.
Disclosure of Invention
In view of this, the present disclosure provides a data transmitting and receiving apparatus and a data transmitting and receiving method in a multilink environment.
In a first aspect, an embodiment of the present application provides a data sending apparatus in a multilink environment, including:
the local data packet capturing module is used for capturing a plurality of first data packets; the plurality of first data packets are sent one by one through a first link;
the FEC encoding buffer module is used for grouping a plurality of first data packets captured by the local data packet capturing module by taking N data packets as units; n is a natural number greater than 1;
the FEC encoding module is used for encoding the grouped first data packets to obtain M second data packets, and the second data packets are redundant error correction data packets corresponding to the first data packets; wherein M is a natural number greater than 1;
and the far-end data packet sending module is used for sending the grouping information and the plurality of second data packets through the second link.
In an alternative embodiment, the local data capture module supports filtering that captures only first data packets for a specified application or excludes first data packets for a specified application.
In an optional embodiment, the grouping information includes: group number, intra-group number, load length, flag.
In an optional embodiment, the FEC encoding buffer is provided with a timer, and when the FEC encoding buffer stores the first data packet, timing is started; and triggering the FEC encoding module when the FEC encoding buffer does not store a certain number of first data packets and the timer is overtime.
In a second aspect, an embodiment of the present application provides a data receiving apparatus in a multilink environment, including:
the local data packet capturing module is used for capturing a plurality of first data packets;
the remote data packet receiving module is used for receiving a plurality of second data packets and grouping information;
the FEC decoding buffer module is used for grouping and storing a plurality of first data packets and second data packets according to grouping information; when the total number of the first data packets and the second data packets in any marshalling in the FEC encoding buffer module reaches a certain number, triggering the FEC decoding module to decode;
the FEC decoding module decodes the grouped first data packet and the second data packet, and generates a recovery data packet of the first data packet lost in the first transmission link after decoding;
and the local data packet sending module is used for acquiring the recovery data packet of the first data packet lost in the first transmission link from the FEC decoding module and sending the acquired recovery data packet of the first data packet to the application program.
In an optional embodiment, the decoding the grouped first data packet and second data packet includes: and recovering the first data packet lost in the transmission process of the first link by using a Reed-Solomon algorithm.
In a third aspect, an embodiment of the present application provides a data sending method in a multilink environment, where the method includes:
capturing a plurality of first data packets, copying the first data packets and acquiring a second link IP address; wherein the plurality of first data packets are transmitted one by one through a first link;
grouping a plurality of first data packets by taking N data packets as units; wherein N is a natural number greater than 1;
encoding the grouped first data packets, and calculating M second data packets, wherein the M second data packets are redundant error correction data packets of the N first data packets; wherein M is a natural number greater than 1;
and transmitting the grouping information and the M second data packets through a second link.
In an optional embodiment, the obtaining the second link IP address includes: and reading the corresponding relation of the IP addresses from the configuration file according to the destination IP address of the copied first data packet, and finding out the second link IP address of the receiving end.
In a fourth aspect, an embodiment of the present application provides a method for receiving data in a multilink environment, where the method includes:
receiving a plurality of first data packets sent by a first link;
receiving grouping information and a plurality of second data packets which are sent by a second link and take N first data packets as units; the second data packet is a redundant data packet of the first data packet, and N is a natural number greater than 1;
decoding the plurality of first and second data packets;
and checking and filtering the decoded first data packet, retaining the recovery data packet of the first data packet lost in the first link transmission, and sending the recovery data packet to an application program.
In an optional embodiment, the decoding of the plurality of first data packets and the second data packet adopts a reed-solomon algorithm, and recovers N first data packets according to any N data packets in the M + N data packets.
The embodiment of the application has the following beneficial effects:
the invention applies to a data sending and receiving device and a data sending and receiving method under a multilink environment, and combines a first link with high bandwidth and low quality to transmit an original data packet and a second link with low bandwidth and high quality to transmit grouping information and a redundant error correction packet under a possible condition, so as to realize data transmission with low packet loss rate. The method can realize high-quality data transmission with lower cost under the condition of not increasing the transmission bandwidth of the first link.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings needed to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
FIG. 1 is a diagram illustrating data transmission in a multi-link environment according to the present application;
FIG. 2 is a schematic diagram illustrating a data transmission apparatus in a multi-link environment according to the present application;
FIG. 3 is a schematic diagram illustrating a data receiving apparatus in a multilink environment according to the present application;
FIG. 4 is a flow chart illustrating a data transmission method in a multilink environment according to the present application;
FIG. 5 is a flow chart of a data receiving method in a multilink environment according to the present application;
fig. 6 shows a schematic diagram of an embodiment of the present application.
Detailed Description
The present application is described in further detail below with reference to specific examples, but the present application is not limited thereto. In the following description, different "one embodiment" or "an embodiment" refers to not necessarily the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Fig. 1 shows a schematic diagram of data transmission in a multi-link environment according to the present application.
Referring to fig. 1, the transmitting device and the receiving device are connected to the first link through a network card 0, and connected to the second link through a network card 1. For the same transmitting device or the same receiving device, the IP address of the network card 0 and the IP address of the network card 1 have a one-to-one correspondence relationship, and the correspondence relationship is recorded in the relevant configuration file.
Preferably, the first link may use a high bandwidth low quality underlying internet link. The second link may use a higher quality private link of lower bandwidth. The two links are combined for data transmission, and high-quality data transmission guarantee is achieved at low cost under the condition that the bandwidth of the basic internet is not increased.
The first link and the second link may be collectively referred to as an acceleration link, and in a general situation, both sides of the acceleration link need to deploy a sending unit program and a receiving unit program to meet a requirement of data interaction between servers. In the data transmission process, a first data packet (data to be accelerated and data not to be accelerated) is transmitted through the basic internet, and a second data packet is transmitted through a high-quality link (such as a private link) provided by a cloud server provider. Under the condition of low packet loss rate, the number of the second data packets is far smaller than that of the first data packets, so that the second data packets can be transmitted through a high-quality link with lower bandwidth, thereby meeting the requirements of applications with higher network quality requirements.
Fig. 2 is a schematic structural diagram of a data transmitting apparatus in a multilink environment according to an embodiment of the present invention. Referring to fig. 2, the data transmission apparatus according to the embodiment of the present invention includes: a local data packet capturing module 201, an FEC encoding buffer module 202, an FEC encoding module 203, and a far-end data packet transmitting module 204.
The local packet capture module 201 is responsible for copying the plurality of first packets sent by the application program to the network card 0 into the FEC encoding buffer module 202. The local packet capture module 201 also supports filtering of the first plurality of packets. Specifically, filtering based on a message five-tuple (source address, source port, destination address, destination port, transport layer protocol) or string filtering of a berkeley packet filtering rule is supported, and filtering of a first packet that captures only some applications or excludes only some applications is supported. When the first data packet is captured, the IP address correspondence is read from the configuration file according to the destination IP address of the first data packet, the second link IP address of the corresponding receiving end is found, and the address is sent to the remote data packet sending module 204.
The FEC encoding buffer module 202 is responsible for temporarily storing the plurality of first data packets captured by the local data packet capturing module 201, grouping the plurality of first data packets with N data packets as a unit, and performing marking, so as to record a group number, an intra-group number, a load length, and a flag of each first data packet. The flag is a hash value of the UDP load in the first data packet, and N is a natural number greater than 1.
Further, there is a timer in the FEC encoding buffer module 202. When the local packet capture module 201 puts the first packet, a timer is started. When a certain number of first packets in the buffer is reached, this module will inform the FEC encoding module 203 to encode, and cancel the timer. If the timer is out of time and there are not enough first data packets for FEC encoding, the FEC encoding buffer module 202 may also notify the FEC encoding module 203 to perform encoding, which solves the problem that the FEC encoding module 203 cannot be triggered to encode the first data packets because the first data packets in the buffer are not enough.
The FEC encoding module 203 is configured to read the first data packet grouped in the FEC encoding buffer module 202, and fill 0 in the tail of the other first data packets according to the length of the longest first data packet in the current buffer. And after the first data packet messages to be coded are supplemented, performing FEC calculation on the first data packets to obtain second data packets, wherein the second data packets are redundant error correction data packets corresponding to the first data packets.
The remote data packet sending module 204 is configured to assemble the grouping information, such as the group number, the intra-group number, the load length, the flag, and the like, in the FEC encoding buffer module 202 into an information packet, and send the information packet to the receiving end through the second link. The second data packet calculated by the FEC encoding module 203 is then sent to the receiving end through the second link.
Fig. 3 is a schematic structural diagram of a data receiving apparatus in a multilink environment according to an embodiment of the present invention. Referring to fig. 3, the data receiving apparatus according to the embodiment of the present invention includes: a local data packet capturing module 301, a far-end data packet receiving module 302, an FEC decoding buffer module 303, an FEC decoding module 304, and a local data packet transmitting module 305.
The local packet capturing module 301 is responsible for copying the plurality of first packets transmitted from the first link to the network card 0 of the receiving end into the FEC decoding buffer module 303. The local packet capturing module 301 supports filtering the first packet, such as quintuple filtering or filtering of BPF filtering strings, capturing the first packet of only some applications or excluding the first packet of only some applications.
The far-end packet receiving module 302 is responsible for receiving a plurality of second packets and grouping information sent by the sending end, and passing the FEC parameters in the grouping information to the FEC decoding module 304 for FEC decoding calculation. The grouping information is also passed to the FEC decoding buffer module 303 to assist the FEC decoding buffer in grouping the first data packets.
The FEC decoding buffer module 303 is responsible for temporarily storing the plurality of first data packets captured by the local data packet capturing module 301 and the plurality of second data packets received by the remote data packet receiving module 302. The FEC decoding buffer module 303 further needs to calculate a flag of the first data packet, that is, calculate a hash value for the UDP load portion, and group and store the first data packet according to the grouping information received by the remote data packet receiving module 302. And for the second data packet, grouping and storing can be directly carried out according to grouping information in the data packet. When the total number of the first data packet and the second data packet in a certain grouping satisfies a certain number, the FEC decoding module 304 is notified to decode.
Specifically, the threshold value of each group is set to i. The FEC decoding buffer module 303 stores the received first data packets and the second data packets in a group. When the number of the first data packets in a certain grouping reaches i, it is indicated that no packet is lost on the first link, and the first data packets do not need to be decoded. When the number of the first data packets in a certain grouping does not reach i, the second data packets need to be continuously waited. When the sum of the number of the first data packets and the second data packets reaches i, the FEC decoding module 304 is triggered to decode the first data packets and the second data packets in the group. When the sum of the number of the first data packets and the number of the second data packets in a certain grouping does not reach i, the FEC decoding module 304 is prohibited from being triggered to decode the first data packets or the second data packets in the certain grouping.
The FEC decoding module 304 is responsible for decoding. Specifically, a forward error correction coding algorithm is used to recover a first data packet that is accidentally lost during transmission of a first link. The FEC decoding module 304 needs to delete the tail-padded 0 in the recovered first data packet to recover the length of the first data packet.
The local packet sending module 305 is responsible for sending the first packet, which is recovered by the FEC decoding module 304 and has an unexpected packet loss during the transmission of the first link, to the application program. Specifically, the local packet sending module 305 needs to forge information such as a source IP address and a source port of a packet header according to different sending ends, so that the application program considers that all packets are from the same sending end.
Fig. 4 is a flowchart of a data transmission method in a multilink environment, and details of the data transmission method in the multilink environment are described with reference to fig. 4, where the data transmission method includes:
step S401, encapsulating the original data sent to the system protocol stack into a first data packet.
The application program sends the original data to be sent to a system protocol stack through the network socket, and the system protocol stack encapsulates the original data into a first data packet.
Step S402, a first data packet is sent through a first link (network card 0).
Step S403, capturing a plurality of first data packets, copying the plurality of first data packets, and acquiring a second link IP address.
And capturing the first data packets sent by the network card 0, and copying the captured N first data packets. And reading the IP address corresponding relation from the configuration file according to the IP address of the copied first data packet, and finding out the corresponding IP address of the receiving end.
Step S404, with N first data packets as a unit, grouping and encoding the plurality of first data packets, and calculating M second data packets corresponding to the N first data packets.
And storing the copied first data packet in an FEC encoding buffer area, wherein the FEC encoding buffer area is an array with a fixed length and can temporarily store the copied first data packet. Grouping the first data packets in the FEC buffer area, marking, realizing the record of the group number, the load length and the mark of each first data packet, and gathering the records into grouping information.
Further, a timer is set in the FEC buffer, and the timer is started when the first packet enters the buffer. When the FEC encoding buffer receives enough first data packets or the timer times out, the FEC encoding module 203 is notified to perform FEC encoding calculation. The FEC encoding module 203 counts the maximum length of the first data packet in the current FEC encoding buffer and performs padding operation on other first data packets according to the length, that is, padding byte 0 is padded at the tail of the first data packet. Then, FEC encoding is performed, and the calculated second data packet is sent to the far-end data packet sending module 204. The second packet includes: redundant flag bit, group number, intra-group number, redundant error correction data.
In particular, the FEC encoding may employ a Reed-Solomon (RS) algorithm. The reed-solomon algorithm is a common forward error correction coding algorithm, and m second data packets with the length of l can be obtained by performing certain operation on n first data packets with the length of l. Meanwhile, as long as any n data packets in the n + m data packets exist, the n first data packets can be recovered. After FEC encoding is carried out, even if unexpected packet loss occurs in the transmission process, the original data can be recovered as long as the number of the packet loss does not exceed m, and the reliability of a network link is improved.
Step S405, sending the grouping information of the plurality of first data packets and the M second data packets through the second link (network card 1).
The grouping information of the first data packet and the second data packet are transmitted through the remote data packet transmission module 204.
In one possible embodiment, the far-end packet transmission is primarily via the UDP protocol. The grouping information mainly includes a grouping flag, a group number, a source address, a destination address, a source port, a destination port, FEC parameters (the number of the first data packets, the number of the second data packets, and the FEC length), and a hash value of each first data packet and a length of the first data packet in the grouping. In this embodiment, the hash value of the first packet is the first four bytes of MD5 in the UDP payload portion of the first packet, and each first packet is distinguished by its hash value and grouped.
Fig. 5 is a flowchart of a data transmission method in a multilink environment, and a detailed description is given to a data reception method in the multilink environment with reference to fig. 5, where the data reception method includes:
step S501, receiving a plurality of first data packets sent by a first link, grouping information of the plurality of first data packets sent by a second link, and M second data packets. The M second data packets are redundant error correction data packets of the N first data packets.
The application and local packet capturing module 301 monitors the network card 0 connected to the first link, and the remote packet receiving module 302 monitors the network card 1 connected to the second link. When a plurality of first data packets sent by a sender reach the network card 0, the system protocol stack of the first data packets is directly sent to the application program, and meanwhile, the local data packet capturing module 301 duplicates a copy of the first data packets and sends the duplicated first data packets to the FEC decoding buffer module 303.
Step S502, a plurality of first data packets are stored into corresponding groups according to the grouping information.
The FEC decoding buffer module 303 performs hash calculation on the load of the first data packet and finds whether the hash value is already in the received grouping information. If the first data packet is not in the grouping information, the first data packet is cached. Otherwise, the first data packet is stored in the corresponding grouping according to the grouping information.
For the buffered ungrouped first packet. After the remote data packet receiving module 302 receives the grouping information, the grouping information is transmitted to the FEC decoding buffer module 303, and the FEC decoding buffer module 303 groups the previously buffered non-grouped first data packet according to the received grouping information.
Step S503, the first data packet is decoded and checked.
When the number of packets in a certain grouping in the FEC decoding buffer module 303 reaches or exceeds a certain threshold, the FEC decoding buffer module 303 may notify the FEC decoding module 304 to perform a decoding operation, so as to repair the first packet lost during the transmission of the first link. The FEC decoding algorithm is the same algorithm as the FEC encoding module 203. Specifically, a reed-solomon algorithm may be employed. The FEC decoding module 304 checks the decoded data and deletes the data of byte 0 additionally filled in the tail. And filtering the first data packets passing the verification, and discarding the first data packets not passing the verification.
Step S504, filtering the decoded first data packet, retaining the recovered data packet of the first data packet lost in the transmission process, and sending the recovered data packet of the lost first data packet to the application program.
The FEC decoding module 304 may filter the decoded original data and retain the recovered data packet of the first data packet lost during the first internet transmission. The FEC decoding module 304 sends the recovered packets of the first data packets lost during transmission to the local data packet sending module 305. The local packet sending module 305 reassembles the recovered first packet into a new IP packet by establishing an original socket, and sends the new IP packet to the port corresponding to the application program.
Specifically, an IP _ HDRINCL flag is set in the socket configuration, so that the IP header information of the IP packet can be customized. Filling the source IP address of the first data packet into the source IP address field of the IP head of the new data packet; and filling the source port information of the first data packet into the source port field of the UDP header of the new data packet, thus forging a normal data packet and sending the data packet to the corresponding application program through the sendto function.
Referring to fig. 6, in one possible embodiment, a data transmission unit 200 is installed on a first host and a data reception unit 300 is installed on a second host. The first host and the second host are connected through two gigabit network lines (a first connection link and a second connection link respectively), wherein the first connection link is connected to the lost packet generator first, and then is connected to the second host from the lost packet generator, the packet loss rate is set to be 5%, and the time delay is set to be 10 ms. The parameters of the network coding are 20:10, i.e. a set of 20 original data, and 10 redundant data are generated.
The data transmission unit 200 on the first host transmits 2000 packets of 1KB in length through the network card 0. The local data packet capturing module 201 monitors the network card 0 in real time, and when it is monitored that a first data packet is sent, a PF _ RING technology is used for acquiring the data packet. The PF _ RING creates a RING buffer queue in the core, copies the first data packet to be sent in the network card to the RING buffer queue, and the sending unit reads the first data packet in the RING buffer queue through the corresponding user mode API, and temporarily stores the first data packet in the FEC encoding buffer 202.
The FEC encoding buffer groups the received first data packets into 20 groups, that is, 2000 first data packets are encoded into 100 groups in the FEC encoding buffer. When the FEC encoding module receives the first data packet, a timer is started. When the number of the received first data packets reaches the number of one grouping, namely 20, the FEC encoding module is triggered to encode the grouped first data packets. When the number of the received first data packets does not reach the number of one group, i.e. 20 data packets, but the timer is over time, the FEC encoding module also needs to be triggered to encode the first data packets of the group.
The FEC encoding module 203 obtains 1000 parts of a second data packet with a length of lKB by using Reed-Solomon (RS) algorithm on 2000 parts of first data packets with a length of lKB, where the second data packet is a redundant error correction data packet corresponding to the first data. The second data packet is transmitted to the remote data transmitting module 204, and is transmitted to the receiving unit 300 together with the grouping information in the remote data transmitting module 204 through the second connection link.
And a capture module 301 and a far-end data packet receiving module 302 in the second host monitor the network card 0 and the network card 1 in real time. When a data packet is detected, the local data packet capturing module 301 copies the first data packet sent to the application program in the network card 0, and temporarily stores the first data packet in the FEC decoding buffer 303. The remote data packet receiving module 302 receives the grouping information of the first data packet and the second data packet transmitted by the second connection link, and temporarily stores the grouping information and the second data packet in the FEC decoding buffer 303.
The FEC decoding buffer 303 temporarily stores all the received data packets (including the first data packet and the second data packet) in the ring buffer, and groups the first data packet and the second data packet according to the grouping information. When the sum of the first data packet and the second data packet in any one of the groups in the FEC decoding buffer 303 is not less than 20, the FEC decoding module is triggered to decode the first data packet in the group.
FEC decoding module 304 employs a reed-solomon algorithm. When the number of the first data and the second data packets received in any one of the groups is not less than 20 (the number of the first data packets and the second data packets in any one of the groups is 20+10 to 30 without loss), the 20 first data packets in the group can be recovered by using the reed-solomon algorithm. The FEC encoding module deletes the recovered byte 0 data filled in the tail of the first data packet lost during transmission and sends the first data packet to the application program through the local data packet sending module 305.
In the embodiment of the application, the sending unit sends 2000 data packets with the length of 1KB in total, the receiving unit receives 2351 data packets (including a part of redundant data packets), and after verification, all the data packets are not damaged and have no packet loss.
In a possible embodiment, a session management module may be added to the data sending device and the data receiving device to manage communication between the devices.
It should be noted that, in the several embodiments provided in the present application, it should be understood that the disclosed unit modules may be implemented in other manners. The described embodiments of the apparatus are merely illustrative, and for example, the division of the units is only one type of division of logical functions, and there may be other divisions when actually implementing, 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 implemented. In addition, in the present embodiment, only two links are used for description, and a single link or multiple links may be used for actual implementation.
The above-mentioned embodiments, objects, technical solutions and advantages of the present invention are further described in detail, it should be understood that the above-mentioned embodiments are only exemplary embodiments of the present invention, and are not intended to limit the scope of the present invention, and any modifications, equivalent substitutions, improvements and the like made on the basis of the technical solutions of the present invention should be included in the scope of the present invention.

Claims (10)

1. A data transmission apparatus in a multilink environment, comprising:
the local data packet capturing module is used for capturing a plurality of first data packets; the plurality of first data packets are sent one by one through a first link;
the FEC encoding buffer module is used for grouping a plurality of first data packets captured by the local data packet capturing module by taking N data packets as units; n is a natural number greater than 1;
the FEC encoding module is used for encoding the grouped first data packets to obtain M second data packets, and the second data packets are redundant error correction data packets corresponding to the first data packets; wherein M is a natural number greater than 1;
the remote data packet sending module is used for sending the grouping information and a plurality of second data packets through a second link;
the first link is a basic internet link, and the second link is a private link; the bandwidth of the first link is greater than that of the second link, and the data transmission quality of the first link is less than that of the second link.
2. The data transmission apparatus according to claim 1, wherein the local packet capturing module supports filtering for capturing only the first packet of the designated application or excluding the first packet of the designated application.
3. The data transmission apparatus according to claim 1, wherein the grouping information includes: group number, intra-group number, load length, flag.
4. The data transmission apparatus according to claim 1, wherein the FEC encoding buffer is provided with a timer, and when the first data packet is stored in the FEC encoding buffer, the timer is started; and triggering the FEC encoding module when the FEC encoding buffer does not store a certain number of first data packets and the timer is overtime.
5. A data receiving apparatus in a multilink environment, comprising:
the local data packet capturing module is used for capturing a plurality of first data packets sent by the first link;
the far-end data packet receiving module is used for receiving a plurality of second data packets and grouping information sent by a second link;
the FEC decoding buffer module is used for grouping and storing a plurality of first data packets and second data packets according to grouping information; when the total number of the first data packets and the second data packets in any marshalling in the FEC encoding buffer module reaches a certain number, triggering the FEC decoding module to decode;
the FEC decoding module decodes the grouped first data packet and second data packet, and generates a recovery data packet of the first data packet lost in the first transmission link after decoding;
a local data packet sending module, configured to obtain, from the FEC decoding module, a recovery data packet of the first data packet lost in the first transmission link, and send the obtained recovery data packet of the first data packet to the application program;
the first link is a basic internet link, and the second link is a private link; the bandwidth of the first link is greater than that of the second link, and the data transmission quality of the first link is less than that of the second link.
6. The receiving device of claim 5, wherein the decoding the grouped first and second data packets comprises: and recovering the first data packet lost in the transmission process of the first link by using a Reed-Solomon algorithm.
7. A data transmission method in a multilink environment comprises the following steps:
capturing a plurality of first data packets, copying the first data packets and acquiring a second link IP address; wherein the plurality of first data packets are transmitted one by one through a first link;
grouping a plurality of first data packets by taking N data packets as units; wherein N is a natural number greater than 1;
encoding the grouped first data packets, and calculating M second data packets, wherein the M second data packets are redundant error correction data packets of the N first data packets; wherein M is a natural number greater than 1;
transmitting the grouping information and a plurality of second data packets through a second link;
the first link is a basic internet link, and the second link is a private link; the bandwidth of the first link is greater than that of the second link, and the data transmission quality of the first link is less than that of the second link.
8. The sending method of claim 7, wherein the obtaining the second link IP address comprises: and reading the corresponding relation of the IP addresses from the configuration file according to the destination IP address of the copied first data packet, and finding out the second link IP address of the receiving end.
9. A data receiving method in a multilink environment comprises the following steps:
receiving a plurality of first data packets sent by a first link;
receiving grouping information and a plurality of second data packets which are sent by a second link and take N first data packets as units; the second data packet is a redundant data packet of the first data packet, and N is a natural number greater than 1;
decoding the plurality of first and second data packets;
checking and filtering the decoded first data packet, retaining a recovery data packet of the first data packet lost in the first link transmission, and sending the recovery data packet to an application program;
the first link is a basic internet link, and the second link is a private link; the bandwidth of the first link is greater than that of the second link, and the data transmission quality of the first link is less than that of the second link.
10. The method of receiving of claim 9, wherein the decoding of the first plurality of packets and the second plurality of packets uses a reed-solomon algorithm to recover N first packets from any N of the M + N packets.
CN201910440933.5A 2019-05-24 2019-05-24 Data transmitting and receiving device and method under multilink environment Active CN110120853B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910440933.5A CN110120853B (en) 2019-05-24 2019-05-24 Data transmitting and receiving device and method under multilink environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910440933.5A CN110120853B (en) 2019-05-24 2019-05-24 Data transmitting and receiving device and method under multilink environment

Publications (2)

Publication Number Publication Date
CN110120853A CN110120853A (en) 2019-08-13
CN110120853B true CN110120853B (en) 2021-12-10

Family

ID=67523234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910440933.5A Active CN110120853B (en) 2019-05-24 2019-05-24 Data transmitting and receiving device and method under multilink environment

Country Status (1)

Country Link
CN (1) CN110120853B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111385062B (en) * 2020-03-25 2022-05-20 京信网络***股份有限公司 Data transmission method, device, system and storage medium based on WDM
CN114449621B (en) * 2020-10-30 2023-03-24 极米科技股份有限公司 Method, device and storage medium for saving electric quantity consumption of multilink terminal

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017112744A1 (en) * 2015-12-21 2017-06-29 University Of Florida Research Foundation, Incorporated Improved joint fountain coding and network coding for loss-tolerant information spreading
CN107222404A (en) * 2017-07-06 2017-09-29 重庆邮电大学 The parallel route retransmission method of redundancy encoding is carried in WOBAN
CN109041154A (en) * 2018-07-11 2018-12-18 国网重庆市电力公司电力科学研究院 Hookup routing algorithm in deep space communication based on random linear network encoding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6930983B2 (en) * 2000-03-15 2005-08-16 Texas Instruments Incorporated Integrated circuits, systems, apparatus, packets and processes utilizing path diversity for media over packet applications
CN102970111B (en) * 2012-11-23 2015-02-04 南京邮电大学 Redundant-coding-based multi-channel access method for satellite network communication
JP2017175495A (en) * 2016-03-25 2017-09-28 日本電気株式会社 Transmitter, receiver, communication system, method and program
CN107276722B (en) * 2017-06-21 2020-01-03 北京奇艺世纪科技有限公司 Data transmission method and system based on UDP
CN108075861B (en) * 2017-09-28 2020-09-22 河北工程大学 Multipath-based network coding transmission method in software defined FiWi network
CN108964849A (en) * 2018-07-03 2018-12-07 深圳睿云网络人工智能技术有限公司 Data transmission method, electronic equipment and storage medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017112744A1 (en) * 2015-12-21 2017-06-29 University Of Florida Research Foundation, Incorporated Improved joint fountain coding and network coding for loss-tolerant information spreading
CN107222404A (en) * 2017-07-06 2017-09-29 重庆邮电大学 The parallel route retransmission method of redundancy encoding is carried in WOBAN
CN109041154A (en) * 2018-07-11 2018-12-18 国网重庆市电力公司电力科学研究院 Hookup routing algorithm in deep space communication based on random linear network encoding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fault-Tolerant Real-Time Streaming with FEC thanks to Capillary Multi-Path Routing;Emin Gabrielyan;《International Conference on Communications, Circuits and Systems》;20060628;全文 *
无线传感网络中混合纠错技术的研究;周毅;《中国优秀硕士学位论文全文数据库》;20150215;全文 *

Also Published As

Publication number Publication date
CN110120853A (en) 2019-08-13

Similar Documents

Publication Publication Date Title
US8009696B2 (en) System and method for achieving accelerated throughput
CN110943800B (en) Data packet sending method, device and system, storage medium and electronic device
KR101610715B1 (en) One-way data transmission and reception system, and one-way data transmission and reception method
US6445717B1 (en) System for recovering lost information in a data stream
CA2576038C (en) System and method for higher throughput through a transportation network
EP2437421B1 (en) Method, device and communication system for retransmitting based on forward error correction
RU2009134145A (en) REDUCING THE INFLUENCE OF LOSS OF PACKAGES IN VIDEO TRANSMISSIONS
KR20040023568A (en) Forward error correction system and method for packet based communication systems
CN110120853B (en) Data transmitting and receiving device and method under multilink environment
CN110708397B (en) Apparatus and method for data delivery in Delay Tolerant Networks (DTNs)
CN103959722A (en) System to improve Ethernet network
JP2006211632A (en) Detection method of crc inspection error out of range
JP3886811B2 (en) Communication system, communication method, transmission terminal, reception terminal, and relay device
CN108769000B (en) High-efficiency streaming media transmission method for deep space environment
JP5682292B2 (en) Video distribution apparatus and video distribution method
JP5592235B2 (en) Multicast pre-delivery method, system, and apparatus
US8250450B2 (en) Method and system for using redundancy to exchange data in a multicast or one way environment
KR20100026721A (en) Apparatus and method for providing network interface information in stream control transmission protocol
Hilt et al. A light-weight repair protocol for the loss-free recording of MBone sessions
CN111200761A (en) Method for packet loss retransmission in real-time streaming media transmission system
Amin et al. Incorporating Small Length Data Cells in TCP Frame to Reduce Retransmission of Corrupted Packets
JP2011234268A (en) Communication control device and communication control method
Marsic Performance and Quality of Service
JP2000105730A (en) Transfer method for image data

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