Data transmission method and related apparatus

By dividing the data into sub-data and adding check data to the transmission path, the problem of data loss caused by failure of multiple transmission paths is solved, and lossless data transmission recovery is achieved.

CN122120190APending Publication Date: 2026-05-29HUAWEI TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2024-11-28
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

Existing technologies cannot achieve lossless protection of data transmission when multiple transmission paths fail, especially when more than two transmission paths fail, making it impossible to recover lost data.

Method used

The data to be transmitted is divided into multiple sub-data, and two check data are transmitted on each transmission path. The check data are used to verify the sub-data of other transmission paths from two aspects, and a relation is constructed to recover the lost data.

Benefits of technology

It achieves lossless data protection in the event of failure of multiple transmission paths and can recover data lost due to transmission path failure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122120190A_ABST
    Figure CN122120190A_ABST
Patent Text Reader

Abstract

The embodiment of the present application provides a data transmission method and related device, the data to be transmitted is divided into multiple sub data by multiple transmission paths, and the multiple sub data are transmitted by the multiple transmission paths; each transmission path is used for transmitting the sub data, the first check data and the second check data, the first check data and the second check data transmitted by each transmission path are used for checking the sub data transmitted by other transmission paths, and the first check data and the second check data transmitted by the multiple transmission paths check all the sub data from two aspects. When one or two transmission paths fail and the data transmitted by the transmission paths is lost, the data lost due to the failure of the transmission path can be recovered according to the check relationship between the check data and the sub data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a data transmission method and related apparatus. Background Technology

[0002] With the development of communication technology, data transmission is increasingly used in communication networks. Often, it is necessary to protect critical data without loss, such as through protection switching (PS). Protection switching addresses network failures by switching between primary and backup transmission paths. For example, if data is transmitted through three transmission paths—two primary and one backup—and one primary path fails (e.g., the cable breaks), causing data loss, the data transmitted on that primary path can be recovered using data transmitted through the other two paths (e.g., one primary and one backup).

[0003] However, if many transmission paths fail, such as two out of five transmission paths, then the above method cannot achieve lossless protection of the transmitted data. Summary of the Invention

[0004] This application provides a data transmission method and related apparatus. If the data to be transmitted is transmitted through multiple transmission paths, each transmission path is used not only to transmit the data to be transmitted, but also to transmit two verification data. The two verification data are used to verify the data transmitted by other transmission paths. If any two or one of the multiple transmission paths fails, resulting in the loss of transmitted data, the lost data can be recovered based on the verification data and the data it verifies, thus achieving lossless protection of data transmission. The calculation method is simple and the calculation delay is small.

[0005] To achieve the above objectives, this application adopts the following technical solution:

[0006] In a first aspect, a data transmission method is provided, the method comprising: dividing data to be transmitted into M sub-data, where M = N*(N-2), N is the number of transmission paths used to transmit the data to be transmitted, and N is a positive integer greater than 2; allocating paths to the M sub-data based on the N transmission paths, resulting in N-2 sub-data transmitted by each transmission path; determining N first check data and N second check data according to the M sub-data, wherein each transmission path is further used to transmit one first check data and one second check data; the first check data transmitted by each transmission path is used to check K first sub-data among the M sub-data. The K first sub-data items are transmitted by at least N-2 other transmission paths, and the N transmission paths transmit N first verification data items to verify the M sub-data items, where K is a positive integer greater than or equal to N-2; the second verification data transmitted by each transmission path is used to verify K second sub-data items among the M sub-data items, and the K second sub-data items are transmitted by at least N-2 other transmission paths, and the N transmission paths transmit N second verification data items to verify the M sub-data items; the first verification data and the second verification data transmitted by the same transmission path are used to verify at least 2 (N-2) sub-data items transmitted by N-1 other transmission paths.

[0007] Using the above implementation, the data to be transmitted is transmitted through multiple transmission paths, dividing the data into multiple sub-data. Each transmission path is used to transmit N-2 sub-data, as well as a first checksum and a second checksum. Since the two checksums transmitted on each transmission path are used to check at least N-2 sub-data transmitted on other transmission paths, and these at least N-2 sub-data are transmitted by at least N-2 other transmission paths, the N checksums transmitted on N transmission paths can be used to check M sub-data transmitted on N transmission paths. Because the first and second checksums transmitted on the same transmission path are used to check different sub-data, the two checksums transmitted on each transmission path check at least N-2 sub-data transmitted on other transmission paths from two perspectives; the two checksums transmitted on N transmission paths check M sub-data from two perspectives. The two checksums transmitted on each transmission path are used to check the sub-data transmitted on N-1 other transmission paths. If two transmission paths fail, 2N data (i.e., 2(N-2) sub-data and four checksums) will fail to be transmitted. Then, a relational formula can be constructed based on the relationship between the 2N verification data and their verification sub-data, resulting in 2N relational formulas. These 2N relational formulas can be solved to obtain the 2N data that failed to be transmitted, thereby realizing the recovery of lost data and achieving lossless protection of transmitted data.

[0008] In some implementations of the first aspect, if K = N-2, the sub-data verified by the first verification data transmitted through different transmission paths are also different, and the sub-data verified by the second verification data transmitted through different transmission paths are also different; the sub-data verified by the first verification data and the second verification data transmitted through the same transmission path are also different.

[0009] Thus, each transmission path, in addition to transmitting N-2 sub-data, is also used to transmit a first checksum and a second checksum. Since the two checksums transmitted on each path are used to check N-2 sub-data transmitted on other transmission paths, and these N-2 sub-data are transmitted by N-2 other transmission paths, the N checksums transmitted on N paths can be used to check M sub-data transmitted on N paths. Because the first and second checksums transmitted on the same path are used to check different sub-data, the two checksums transmitted on each path check the N-2 sub-data transmitted on other paths from two perspectives; the 2N checksums transmitted on N paths check the M sub-data from two perspectives. The two checksums transmitted on each path are also used to check sub-data transmitted on N-1 other transmission paths. If two of the N transmission paths fail, 2N data transmissions will fail. Then, a relational expression can be constructed based on the relationship between the 2N check data and its check sub-data, resulting in 2N relational expressions. These 2N relational expressions can be solved to obtain 2N data that failed to be transmitted (i.e., 2(N-2) sub-data and four check data), thereby realizing the recovery of lost data.

[0010] In some implementations of the first aspect, determining N first check data and N second check data based on the M sub-data includes: constructing an (N-2)×N target matrix based on the M sub-data, wherein the N column vectors of the target matrix correspond to sub-data transmitted by N transmission paths respectively; determining K first sub-data and K second sub-data corresponding to each column vector; determining first check data based on the K first sub-data; and determining second check data based on the K second sub-data. Thus, by constructing a target matrix based on the M sub-data, constructing the row and column relationships of the M sub-data using the target matrix, determining K first sub-data and K second sub-data from the M sub-data based on the row and column relationships of the M sub-data, and determining the first and second check data based on the K first sub-data and K second sub-data.

[0011] In some implementations of the first aspect, if K = N-2, then determining the K first sub-data and K second sub-data corresponding to each column vector includes: one of the K first sub-data and K second sub-data includes: the element in the (X+1)th row and (Y+1)th column of the target matrix, where N-3 ≥ X ≥ 0, Y is the remainder of (P+X+2) divided by N, P is the column where the column vector is located, and N-1 ≥ P ≥ 0; the other includes: the element in the (X+1)th row and (Z+1)th column of the target matrix, where Z is the remainder of (PX-2+N) divided by N. The K first sub-data and K second sub-data in the target matrix are obtained through two different rules, and the K first sub-data and K second sub-data are verified by first and second check data transmitted through the same transmission path, respectively, thereby realizing two methods of verifying the sub-data.

[0012] In some implementations of the first aspect, the method further includes: performing a first operation on the K first sub-data to obtain first verification data; and performing a first operation on the K second sub-data to obtain second verification data. Thus, the first verification data is used to verify the K first sub-data, and the first verification data is determined based on the K first sub-data; the second verification data is used to verify the K second sub-data, and the second verification data is determined based on the K second sub-data.

[0013] In some implementations of the first aspect, the first operation includes any one of the XOR operation, AND operation, and field multiplication operation.

[0014] In some implementations of the first aspect, each transmission path transmits N-2 sub-data, first check data, and second check data corresponding to the transmission path at N time points. Each transmission path transmits the data to be transmitted (such as sub-data, first check data, and second check data) at multiple time points, thereby protecting the data to be transmitted from a temporal perspective.

[0015] Secondly, a data transmission method is provided, applied to a receiver, the method comprising: receiving P data groups sent by a sender, wherein the sender sends the N data groups to the receiver through N transmission paths, each data group is transmitted by one of the transmission paths, each data group includes N-2 sub-data, first check data, and second check data, where N is a positive integer greater than 2; the first check data transmitted by each transmission path is used to check K first sub-data among the M sub-data, the K first sub-data are transmitted by at least N-2 other transmission paths, and the N first check data transmitted by the N transmission paths are used to check the M sub-data, where K is greater than or equal to N-2. A positive integer; the second check data transmitted through each of the transmission paths is used to check K second sub-data in the M sub-data, the K second sub-data being transmitted by at least N-2 other transmission paths, and N second check data transmitted through the N transmission paths being used to check the M sub-data; the first check data and the second check data transmitted through the same transmission path are used to check at least 2 (N-2) sub-data transmitted through N-1 other transmission paths, where P is N-2 or N-1; based on the P data groups, the relationship between the first check data and the first sub-data it checks, and the relationship between the second check data and the second sub-data it checks, one or two data groups that the receiver has not successfully received are determined.

[0016] Thirdly, a network device is provided, comprising: a memory including computer-readable instructions; and a processor communicating with the memory, the processor being configured to execute the computer-readable instructions, causing the network device to perform the data transmission method described in any one of the first aspects.

[0017] Fourthly, a computer-readable storage medium is provided, including a program or instructions that, when executed by a processor, implement the data transmission method as described in any one of the first aspects.

[0018] Fifthly, a chip is provided, including a processor for retrieving and executing instructions stored in a memory, causing a network device on which the chip is installed to perform the data transmission method described in any one of the first aspects.

[0019] In a sixth aspect, a computer program product is provided, the computer program product comprising instructions that, when executed by a computer, implement the method as described in any one of the first aspects.

[0020] The beneficial effects of each possible implementation of the data transmission method provided in the second aspect, the network device provided in the third aspect, the computer-readable storage medium provided in the fourth aspect, the chip provided in the fifth aspect, and the computer program product provided in the sixth aspect of the embodiments of this application can be referred to the descriptions of the various possible implementations in the first aspect, and will not be repeated here. Attached Figure Description

[0021] Figure 1 This is a schematic diagram of a data transmission scenario;

[0022] Figure 2 A flowchart illustrating a data transmission method provided in an embodiment of this application;

[0023] Figure 3 A flowchart illustrating a data transmission method provided in an embodiment of this application;

[0024] Figure 4 This is a schematic diagram of the structure of a network device provided in an embodiment of this application. Detailed Implementation

[0025] The technical solutions in this application will now be described with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments in this specification, and not all of them.

[0026] Please participate Figure 1 , Figure 1 This is a schematic diagram of a data transmission scenario. Figure 1 The sending node sends data to the receiving node, and there are three transmission paths between the sending node and the receiving node: A, B, and C.

[0027] The sending node divides the data to be transmitted into two parts. One part is transmitted via transmission path A, and the other part is transmitted via transmission path B. Verification data for both parts of the data is transmitted via transmission path C. The verification data is used to verify the data transmitted via transmission path A and transmission path B.

[0028] If a failure occurs in one of the transmission paths, resulting in some data not being successfully transmitted, the data that was not successfully transmitted due to the transmission path failure can be recovered based on the verification relationship between the verification data and the data successfully transmitted on the other transmission path.

[0029] For example, if a sending node transmits data D via transmission path A, data E via transmission path B, and checksum data F via transmission path C, then the checksum relationship between the checksum data and the transmitted data determines that F = D⊕E, meaning F can be obtained by performing an XOR operation (XOR) on D and E. If a failure occurs on transmission path A, causing data D to fail to be transmitted, the receiving node can obtain data D based on the received data F and data E, and the checksum relationship, i.e., data D = F⊕E = D⊕E⊕E = D.

[0030] However, in real-world scenarios, due to the large amount of data to be transmitted, sending nodes often transmit the data through multiple transmission paths, such as five or eight. If two of the transmission paths fail, resulting in the loss of data transmitted through those two paths, the data lost due to the transmission path failure cannot be recovered using the above-mentioned technical solutions.

[0031] To address the aforementioned technical problems, this application provides a data transmission method. Data to be transmitted is routed via multiple transmission paths. The sender divides the data into multiple sub-data segments, which are then transmitted through multiple transmission paths. Each transmission path, in addition to transmitting the sub-data segments, also transmits two checksums. These two checksums verify the sub-data segments transmitted via other transmission paths from two perspectives. If one or two transmission paths fail, resulting in data loss, the receiver can recover the data lost due to the transmission path failure using the successfully transmitted sub-data segments and the checksums, thus achieving lossless data transmission protection.

[0032] Optionally, the data transmission method provided in this application can be applied to scenarios where the sender transmits data to the receiver via an optical transport network (OTN) or a synchronous digital hierarchy (SDH); in which case the transmission path between the sender and the receiver can be an optical fiber link or an optical channel. It can also be applied to multi-service stream transmission on a backplane, such as the transmission of multiple service streams carried by physical layer protocols or multiple service streams carried by protocol layer protocols; in which case the transmission path between the sender and the receiver can be multiple channels or multiple interfaces on the backplane, such as the backplane being designed with copper or optical fiber conductors, each conductor corresponding to a physical channel, and each physical channel corresponding to a transmission path. It can also be applied to the transmission of multiple data streams in a Field Programmable Gate Array (FPGA); in which case the transmission path between the sender and the receiver can be the logic units, programmable interconnects, and input / output interfaces within the FPGA.

[0033] Optionally, the sender and receiver in this embodiment can be network devices with data transmission capabilities, such as routers, switches, and access points. The sender and receiver can be two different electronic devices, for example, two routers with data transmission capabilities; or they can be the same electronic device, for example, two modules in a backplane.

[0034] Please see Figure 2 , Figure 2 This is a flowchart illustrating a data transmission method provided in an embodiment of this application. Figure 2 The data transmission methods include: S201 to S203.

[0035] S201. The sender divides the data to be transmitted into M sub-data, M = N*(N-2), where N is the number of transmission paths used to transmit the data to be transmitted, and N is a positive integer greater than 2.

[0036] Optionally, the data to be transmitted is sent from the sender to the receiver, and there are N transmission paths between the sender and receiver, used to transmit the data. After the sender obtains the data, it can divide it into M sub-data, where each sub-data can be a data block or other storage type. For example, if there are 5 transmission paths and the data to be transmitted is 300Mb, then the data to be transmitted can be divided into 15 data blocks, each 20Mb in size. Of course, it can also be divided according to other rules, such as percentiles, dividing the data into 15 sub-data, each containing the same percentage. Alternatively, it can be based on clustering to divide the data into 15 clusters. It can also be based on time or space methods; this application does not limit this.

[0037] S202. The sender allocates paths to M sub-data based on N transmission paths, resulting in N-2 sub-data transmitted on each transmission path.

[0038] Optionally, the sender allocates paths for the M sub-data, with each transmission path transmitting N-2 sub-data. In this case, the N transmission paths are used to transmit the M sub-data. Alternatively, the M sub-data can be allocated to N transmission paths for transmission, with each transmission path transmitting N-2 of the M sub-data. The sub-data transmitted by different transmission paths are completely different. For example, transmission path 1 transmits 5 sub-data, which are sub-data 1 to sub-data 5; transmission path 2 transmits 5 sub-data, which are sub-data 6 to sub-data 10.

[0039] S203. The sender determines N first check data and N second check data based on M sub-data. Each transmission path is also used to transmit one first check data and one second check data.

[0040] The first check data transmitted by each transmission path is used to check K first sub-data in M ​​sub-data. The K first sub-data are transmitted by at least N-2 other transmission paths. The N first check data transmitted by the N transmission paths are used to check M sub-data. K is a positive integer greater than or equal to N-2.

[0041] The second check data transmitted by each transmission path is used to check K second sub-data in M ​​sub-data. The K second sub-data are transmitted by at least N-2 other transmission paths, and the N second check data transmitted by the N transmission paths are used to check M sub-data.

[0042] The first and second check data transmitted along the same transmission path are used to check at least 2(N-2) sub-data transmitted along N-1 other transmission paths.

[0043] Optionally, the sender determines N first check data and N second check data based on the M sub-data. Then, each transmission path is used to transmit N-2 sub-data, as well as one first check data and one second check data. That is, each transmission path is used to transmit N data, and the M sub-data and 2N check data are allocated to the N transmission paths to protect the data to be transmitted in the spatial dimension.

[0044] Optionally, the first verification data is used to verify K first sub-data items out of M sub-data items, and the second verification data is used to verify K second sub-data items out of M sub-data items. The sender can then determine the first verification data based on the K first sub-data items and the K second sub-data items. For example, the sender can obtain the relationship between the verification data and the sub-data items it verifies, and determine the verification data based on this relationship and the corresponding sub-data items.

[0045] Optionally, the sender may perform a first operation on the K first sub-data to obtain first check data; and perform a first operation on the K second sub-data to obtain second check data. After determining that the K first sub-data and K second sub-data are valid, the first check data or the second check data can be determined by performing the first operation.

[0046] Optionally, the first operation can be an XOR operation, an AND operation, or a field multiplication operation. XOR, AND, or field multiplication operations are convenient for the sender's logic implementation or chip implementation.

[0047] In other implementations, the first operation can also be implemented in other ways, such as constructing an equation between K sub-data and check data, and describing the relationship between the K sub-data and check data (first check data or second check data) through the equation.

[0048] For example, if the first operation is an XOR operation, and the K first sub-data include A(1), A(2), and A(3); and the K second sub-data include A(4), A(5), and A(6), then the first check data... Second verification data

[0049] Optionally, the sender performs a first operation on the K first sub-data to obtain the first check data. Then, based on the relationship between the K first sub-data and the first check data, the sender can obtain the relational formula corresponding to each first check data, for example... Accordingly, the sender performs a first operation on the K second sub-data to obtain the second check data. Then, based on the relationship between the K second sub-data and the second check data, the sender can obtain the relational formula corresponding to each second check data, for example...

[0050] Optionally, after S203, the method further includes: the sender sending the data to be transmitted to the receiver through N transmission paths, each transmission path transmitting N-2 sub-data, first check data and second check data corresponding to the transmission path.

[0051] Optionally, the check data transmitted on each transmission path is used to check at least N-2 sub-data transmitted on other transmission paths. Each transmission path can transmit 2 check data, and these 2 check data can complete the check of at least 2(N-2) sub-data. Furthermore, at least 2(N-2) sub-data are transmitted by N-1 other transmission paths. Therefore, the N first check data and N second check data transmitted on N transmission paths can complete the check of M sub-data from two aspects. If two transmission paths fail, resulting in the loss of 2(N-2) sub-data and 4 check data (i.e., 2N data loss), the receiver can construct 2N relational expressions based on the relationship between the check data and the sub-data it checks. By solving these 2N relational expressions for the 2N data, the lost data can be recovered.

[0052] Optionally, the method further includes: the receiver receiving N data groups transmitted by the sender through N transmission paths, each data group being transmitted by a corresponding transmission path, and each data group including N-2 sub-data, first check data, and second check data; then the receiver determines the data to be transmitted based on the N data groups received from the N transmission paths.

[0053] Optionally, the method includes: receiving P data groups sent by a sender, wherein the sender sends N data groups to the receiver through N transmission paths, each data group is transmitted by one of the transmission paths, and each data group includes N-2 sub-data, a first checksum, and a second checksum, where N is a positive integer greater than 2; P is N-2 or N-1; the receiver determines one or two data groups that it has not successfully received based on the relationship between the P data groups, the first checksum, and the first sub-data it checks, and the relationship between the second checksum and the second sub-data it checks. Since the sender sends N data groups and the receiver receives P data groups, the receiver has not successfully received one or two data groups. The first verification data is used to verify K first sub-data points out of M sub-data points, and the second verification data is used to verify K second sub-data points out of M sub-data points. Thus, the first verification data and the corresponding K first sub-data points have a relationship or verification relationship; the second verification data and the corresponding K second sub-data points have a relationship or verification relationship; the relationship between 2N verification data points and their corresponding sub-data points can solve for 2N unknowns, thereby realizing the recovery of lost data.

[0054] Optionally, the method further includes: the receiver receiving N-2 data groups transmitted by the sender through N-2 transmission paths, each data group being transmitted by a corresponding transmission path, and each data group including N-2 sub-data, first check data, and second check data; thus, the receiver receives N-2 data groups transmitted through N-2 transmission paths; that is, (N-2)*(N-2) sub-data and 2(N-2) check data. The receiver then determines 2N relational expressions based on the relationship between the check data and the sub-data it checks. Based on these 2N relational expressions, (N-2)*(N-2) sub-data, and 2(N-2) check data, the lost data can be recovered. If the sender transmits data to be transmitted through N transmission paths, and two transmission paths fail, the receiver receives data transmitted through N-2 transmission paths. The receiver can then recover the data lost due to the failure of the two transmission paths based on the relationship between the received data, the check data, and the checked sub-data.

[0055] Optionally, the method further includes: the receiver receiving N-1 data groups transmitted by the sender through N-1 transmission paths, each data group being transmitted by a corresponding transmission path, and each data group including N-2 sub-data, first check data, and second check data; thus, the receiver receives N-1 data groups transmitted through N-1 transmission paths; that is, (N-1)*(N-2) sub-data and 2(N-1) check data. The receiver then determines 2N relational expressions based on the relationship between the check data and the sub-data it checks. Based on the 2N relational expressions, (N-1)*(N-2) sub-data, and 2(N-1) check data, the data lost due to a failure of one transmission path can be recovered. The sender transmits data to be transmitted through N transmission paths. If one transmission path fails, the receiver receives data transmitted through N-1 transmission paths. The receiver can then recover the data lost due to a failure of one transmission path based on the relationship between the received data, the check data, and the checked sub-data.

[0056] Optionally, if K ≥ N-1, meaning the first check data is used to check K first sub-data points and the second check data is used to check K second sub-data points, then the sub-data points checked by the first check data transmitted through different transmission paths are not completely identical. That is, at least N-2 of the K sub-data points checked by the first check data transmitted through any two transmission paths are completely different. For example, if N = 5 and K = 4, the first check data transmitted through transmission path 1 is used to check D01, D02, D13, and D24; the first check data transmitted through transmission path 2 is used to check D01, D03, D12, and D21. The sub-data points checked by the first check data transmitted through the two transmission paths are not completely identical. Of the four sub-data points, three are completely different and one is the same. The sub-data points checked by the second check data transmitted through different transmission paths are also not completely different; that is, at least N-2 of the K sub-data points checked by the second check data transmitted through any two transmission paths are completely different. For example, if N=5 and K=4, the second check data transmitted through transmission path 1 is used to check D01, D02, D13, and D24; the second check data transmitted through transmission path 2 is used to check D01, D03, D12, and D21. Of the four sub-data points checked by the second check data transmitted through the two transmission paths, three are completely different and one is the same. Similarly, at least N-2 of the K sub-data points checked by the first check data and the K sub-data points checked by the second check data transmitted through the same transmission path are completely different. For example, N=5, K=4, the first check data transmitted by transmission path 1 is used to check D01, D02, D13, and D24; the second check data transmitted by transmission path 1 is used to check D01, D03, D12, and D21. Among the four sub-data verified by the first and second check data transmitted by transmission path 1, three sub-data are completely different and one sub-data is the same.

[0057] Optionally, if K = N-2, meaning the first and second check data are used to check N-2 sub-data respectively, then the sub-data checked by the first check data transmitted through different transmission paths will also be different. That is, the N-2 sub-data checked by the first check data transmitted through any two transmission paths will be completely different. For example, if N = 5 and K = 3, the first check data transmitted through transmission path 1 is used to check D02, D13, and D24; the first check data transmitted through transmission path 2 is used to check D03, D12, and D21. The three sub-data checked by the first check data transmitted through the two transmission paths are completely different. Similarly, the sub-data checked by the second check data transmitted through different transmission paths will also be different. That is, the N-2 sub-data checked by the second check data transmitted through any two transmission paths will be completely different. For example, if N = 5 and K = 3... The first check data transmitted via transmission path 1 is used to check D02, D13, and D24; the second check data transmitted via transmission path 1 is used to check D03, D12, and D21. The three sub-data points checked by the second check data transmitted via transmission path 1 are completely different. The sub-data points checked by the first check data and the second check data transmitted via the same transmission path are also different. The N-2 sub-data points checked by the first check data and the N-2 sub-data points checked by the second check data transmitted via the same transmission path are completely different. For example, if N=5 and K=3, the first check data transmitted via transmission path 1 is used to check D02, D13, and D24; the second check data transmitted via transmission path 1 is used to check D03, D12, and D21. The three sub-data points checked by the first check data and the second check data transmitted via transmission path 1 are completely different. Since the two check data transmitted on each transmission path are used to check N-2 sub-data respectively, N transmission paths can be used to check N(N-2) sub-data, that is, to complete the check of all sub-data. Moreover, the first check data and the second check data transmitted on the same transmission path check different sub-data. The first check data and the second check data transmitted on N transmission paths can both complete the check of N(N-2) sub-data, and the two check data transmitted on the same transmission path check different sub-data. That is, the two check data complete the check of N(N-2) sub-data from two different aspects.

[0058] For example, if the number of transmission paths used to transmit the data to be transmitted is 5, and the 5 transmission paths are: transmission path 1 to transmission path 5, then the data to be transmitted can be divided into 15 parts: D00, D01, D02, D03, D04, D10, D11, D12, D13, D14, D20, D21, D22, D23, D24;

[0059] If the first check data and the second check data are used to check three sub-data respectively, then the first check data transmitted by transmission path 1 is used to check D02, D13, and D24; the second check data transmitted by transmission path 1 is used to check D03, D12, and D21; that is, the sub-data checked by the two check data transmitted by the same transmission path are completely different.

[0060] The first check data transmitted via transmission path 2 is used to check D03, D14, and D20; the second check data transmitted via transmission path 2 is used to check D04, D13, and D22.

[0061] The first check data transmitted through transmission path 3 is used to check D04, D10, and D21; the second check data transmitted through transmission path 3 is used to check D00, D14, and D23.

[0062] The first check data transmitted through transmission path 4 is used to check D00, D11, and D22; the second check data transmitted through transmission path 4 is used to check D01, D10, and D24.

[0063] The first checksum transmitted via transmission path 5 is used to check D01, D12, and D23; the second checksum transmitted via transmission path 5 is used to check D02, D11, and D20. The sub-data checked by the first checksum transmitted via different transmission paths are completely different, and the sub-data checked by the second checksum transmitted via different transmission paths are also completely different.

[0064] Optionally, each transmission path, in addition to transmitting N-2 sub-data, also transmits a first checksum and a second checksum. Since the two checksums transmitted on each transmission path are used to check N-2 sub-data transmitted on other transmission paths, and these N-2 sub-data are transmitted by N-2 other transmission paths, the N checksums transmitted on N transmission paths can be used to check M sub-data transmitted on N transmission paths. Because the first and second checksums transmitted on the same transmission path are used to check different sub-data, the two checksums transmitted on each transmission path check the N-2 sub-data transmitted on other transmission paths from two perspectives; the two checksums transmitted on N transmission paths check the M sub-data from two perspectives. The two checksums transmitted on each transmission path are used to check the sub-data transmitted on N-1 other transmission paths. If one or two of the N transmission paths fail, the sub-data transmission will fail. The receiver can construct a relational expression based on the 2N check data and their corresponding sub-data, and obtain 2N relational expressions. The receiver can solve the 2N relational expressions to obtain 2N data that failed to be transmitted (i.e., 2(N-2) sub-data and four check data), thereby realizing the recovery of lost data.

[0065] Optionally, the first check data transmitted along each transmission path is used to check N-2 first sub-data items, and the second check data is used to check N-2 second sub-data items. The N-2 first sub-data items and N-2 second sub-data items are transmitted via N-1 other transmission paths. That is, the N-2 first sub-data items checked by the first check data are transmitted via N-2 other transmission paths, and the N-2 second sub-data items checked by the second check data are transmitted via N-2 other transmission paths. For example, the 3 first sub-data items checked by the first check data transmitted along transmission path 5 are transmitted via 3 transmission paths: 1, 2, and 3; the 3 second sub-data items checked by the second check data transmitted along transmission path 5 are transmitted via 3 transmission paths: 4, 2, and 3; therefore, the 3 first sub-data items and 3 second sub-data items are transmitted via four different transmission paths: 1, 2, 3, and 4.

[0066] During data transmission, the data to be transmitted is divided into multiple sub-data, which are then distributed to multiple transmission paths for transmission. Multiple checksums are determined based on these sub-data. Therefore, each transmission path is used not only to transmit sub-data but also to transmit two checksums. Since the checksums transmitted by one path are used to check the sub-data transmitted by other paths, and different checksums are used to check different sub-data, if one or two transmission paths fail, resulting in the loss of sub-data transmitted on that path, the lost sub-data can be recovered by using the successfully transmitted checksums.

[0067] In some embodiments, see Figure 3 , Figure 3 This is a flowchart illustrating a data transmission method provided in an embodiment of this application. Figure 3 The data transmission methods include: S301 to S304. Figure 2 Based on M sub-data, N first check data and N second check data are determined, including:

[0068] S301. The sender constructs a (N-2)×N target matrix based on M sub-data. The N column vectors of the target matrix correspond to the sub-data, which are transmitted by N transmission paths respectively.

[0069] Optionally, the sender constructs a target matrix based on M sub-data points. The (N-2)×N elements of the target matrix then correspond to the M sub-data points. Alternatively, the M sub-data points can be placed within the target matrix, with each element of the target matrix corresponding to one sub-data point. Since each transmission path is used to transmit N-2 sub-data points, and each column vector of the target matrix has N-2 elements, each transmission path can be used to transmit the corresponding N-2 elements (or sub-data points) of the column vector of the target matrix.

[0070] S302. The sender determines the K first sub-data and K second sub-data corresponding to each column vector of the target matrix.

[0071] Since the sub-data corresponding to each element of each column vector is transmitted through one of the transmission paths, that transmission path is also used to transmit first check data and second check data. The first check data is used to check the K first sub-data corresponding to the column vector, and the second check data is used to check the K second sub-data corresponding to the column vector. Because each transmission path transmits first check data to check N-2 sub-data transmitted through other transmission paths, and each transmission path transmits second check data to check N-2 sub-data transmitted through other transmission paths, the N-2 sub-data checked by the first check data transmitted by each transmission path belong to the other N-2 column vectors, and the N-2 sub-data checked by the second check data transmitted by each transmission path belong to the other N-2 column vectors. The N-2 sub-data checked by the first check data corresponding to the same column vector and the N-2 sub-data checked by the second check data corresponding to the same column vector belong to the other N-1 column vectors.

[0072] Optionally, if K = N-2, then the K first sub-data points or the K second sub-data points are located in N-2 rows and N-2 columns of the target matrix, respectively. The K first sub-data points and the K second sub-data points are located in N-2 rows and N-1 columns of the target matrix, respectively.

[0073] Optionally, the K first sub-data points and K second sub-data points corresponding to the same column vector are completely different. For example, if K is 3, the 3 first sub-data points and 3 second sub-data points are completely different.

[0074] S303, The sender determines the first verification data based on K first sub-data;

[0075] S304. The sender determines the second verification data based on K second sub-data.

[0076] Thus, the sender constructs a target matrix based on the M sub-data, constructs the row and column relationships of the M sub-data through the target matrix, determines K first sub-data and K second sub-data from the M sub-data based on the row and column relationships of the M sub-data, and determines the first check data and the second check data based on the K first sub-data and the K second sub-data.

[0077] Optionally, in order to obtain N first check data and N second check data, the sender determines K first sub-data and K second sub-data corresponding to each column vector in the N column vectors. Then, the sender can obtain N first check data and N second check data based on the obtained N sets of K first sub-data and N sets of K second sub-data.

[0078] In some embodiments, if K = N-2, the sender determines K first sub-data and K second sub-data corresponding to each column vector of the target matrix, including: one of the K first sub-data and K second sub-data includes: the element in the (X+1)th row and (Y+1)th column of the target matrix, where N-3 ≥ X ≥ 0, and Y is the remainder of (P+X+2) divided by N; the other includes: the element in the (X+1)th row and (Z+1)th column of the target matrix, where Z is the remainder of (PX-2+N) divided by N. Since K = N-2, the N-2 first sub-data are located in the N-2 rows and N-2 columns of the target matrix, respectively; the N-2 second sub-data are located in the N-2 rows and N-2 columns of the target matrix, respectively; and the N-2 first sub-data and N-2 second sub-data are located in the N-2 rows and N-1 columns of the target matrix, respectively.

[0079] For example, if the number of transmission paths used to transmit the data to be transmitted is 5, and the 5 transmission paths are: transmission path 1 to transmission path 5, then the data to be transmitted can be divided into 15 sub-data, and a 3×5 target matrix can be constructed based on the 15 sub-data. Then, the three sub-data verified by the first check data transmitted by the transmission path corresponding to the first column are (P+X+2) in the target matrix, and the three sub-data verified by the second check data are (PX-2+N) in the target matrix. The three sub-data verified by the first check data are located in the 1st row and 3rd column, the 2nd row and 4th column, and the 3rd row and 5th column of the target matrix, respectively; the three sub-data verified by the second check data are located in the 1st row and 4th column, the 2nd row and 34th column, and the 3rd row and 2nd column of the target matrix, respectively.

[0080] Optionally, each transmission path, in addition to transmitting its corresponding N-2 sub-data, is also used to transmit first check data and second check data. The first check data is used to check the N-2 first sub-data. Since the N-2 first sub-data are transmitted by N-2 other transmission paths, the N first check data corresponding to the N transmission paths can check N*(N-2) different sub-data. Correspondingly, the second check data is used to check the N-2 second sub-data. Since the N-2 second sub-data are transmitted by N-2 other transmission paths, the N second check data corresponding to the N transmission paths can check N*(N-2) different sub-data. Thus, by using N first check data and N second check data, M sub-data can be checked from two aspects.

[0081] For example, if there are 5 transmission paths between the sender and receiver: transmission path 1 to transmission path 5, then the sender divides the data to be transmitted into 5×3 sub-data; then the path is allocated, and each transmission path transmits 3 sub-data.

[0082] The sender then constructs a 3×5 target matrix, which is:

[0083]

[0084] The elements corresponding to the five column vectors in the target matrix are transmitted by five transmission paths. That is, each transmission path transmits the sub-data corresponding to one column vector in the target matrix. For example, the sub-data transmitted by transmission path 1 are: D00, D10, D20; the sub-data transmitted by transmission path 2 are: D01, D11, D21; the sub-data transmitted by transmission path 3 are: D02, D22, D22; the sub-data transmitted by path 4 are: D03, D13, D23; and the sub-data transmitted by transmission path 5 are: D04, D14, D24.

[0085] Then the sender determines the three first sub-data and three second sub-data corresponding to the column vector of column P, where 4 ≥ P ≥ 0. If the three first sub-data are located in the (X+1)th row and (Y+1)th column of the target matrix respectively, Y is the value of (P+X+2) modulo N; and the three second sub-data are located in the (X+1)th row and (Z+1)th column of the target matrix respectively, Z is the value of (PX-2+N) modulo N.

[0086] The three first sub-data points corresponding to the column vector of the first column (i.e., P=0) are: D02, D13, and D24; the three second sub-data points corresponding to the column vector of the first column (i.e., P=0) are: D03, D13, and D21.

[0087] The three first sub-data points corresponding to the column vector of the second column (i.e., P=1) are: D03, D14, D20; the three second sub-data points corresponding to the column vector of the second column (i.e., P=1) are: D04, D13, D22.

[0088] The three first sub-data points corresponding to the column vector of the third column (i.e., P=2) are: D04, D10, and D21; the three second sub-data points corresponding to the column vector of the third column (i.e., P=2) are: D00, D14, and D23.

[0089] The three first sub-data points corresponding to the column vector of the fourth column (i.e., P=3) are: D00, D11, and D22; the three second sub-data points corresponding to the column vector of the fourth column (i.e., P=3) are: D01, D10, and D24.

[0090] The three first sub-data points corresponding to the column vector of the fifth column (i.e., P=4) are: D01, D12, and D23; the three second sub-data points corresponding to the column vector of the fifth column (i.e., P=4) are: D02, D11, and D20.

[0091] Then the sender performs an XOR operation on the three first sub-data to obtain the corresponding first check data, and performs an XOR operation on the three second sub-data to obtain the second check data. Therefore:

[0092] The first checksum C30 corresponding to the column vector of the first column (i.e., P=0) is: The second checksum C40 corresponding to the column vector of the first column (i.e., P=0) is:

[0093] The first checksum C31 corresponding to the column vector of the second column (i.e., P=1) is: The second checksum C41 corresponding to the column vector of the second column (i.e., P=1) is:

[0094] The first checksum C32 corresponding to the column vector of the third column (i.e., P=2) is: The second checksum C42 corresponding to the column vector of the third column (i.e., P=2) is:

[0095] The first checksum C33 corresponding to the column vector of the fourth column (i.e., P=3) is: The second checksum C43 corresponding to the column vector of the fourth column (i.e., P=3) is:

[0096] The first checksum C34 corresponding to the column vector of the fifth column (i.e., P=4) is: The second checksum C44 corresponding to the column vector of the fifth column (i.e., P=4) is:

[0097] Please refer to Table 1, which illustrates the data transmitted through the five transmission paths. Each transmission path is used to transmit three sub-data items and two checksum data items.

[0098] Table 1

[0099] Transmission path 1 Transmission path 2 Transmission path 3 Transmission path 4 Transmission path 5 D00 D01 D02 D03 D04 D10 D11 D12 D13 D14 D20 D21 D22 D23 D24 C30 C31 C32 C33 C34 C40 C41 C42 C43 C44

[0100] As shown in Table 1, the sender transmits the data to be transmitted to the receiver through five transmission paths. Specifically, transmission path 1 is used to transmit: D00, D10, D20, C30, C40; transmission path 2 is used to transmit: D01, D11, D21, C31, C41; transmission path 3 is used to transmit: D02, D22, D22, C32, C42; transmission path 4 is used to transmit: D03, D13, D23, C33, C43; and transmission path 5 is used to transmit: D04, D14, D24, C34, C44.

[0101] If transmission path 1 and transmission path 2 fail, resulting in D00, D10, D20, C30, C40, D01, D11, D21, C31, and C41, where the sub-data related to the data to be transmitted includes D00, D10, D20, C30, C40, D01, D11, D21, C31, and C41, that is, there are 10 unknown data, the receiver determines 10 relational expressions based on 10 check data:

[0102]

[0103] Then, based on the ten relationships above, the receiver can calculate the ten unknown data points, thereby achieving the recovery of the lost data.

[0104] Optionally, after determining the data to be transmitted along each transmission path, the sender may cause each transmission path to transmit N-2 sub-data, first check data, and second check data at N different times. Since each transmission path needs to transmit N data, the transmission path transmits N different data at N different times.

[0105] Table 2

[0106] Transmission path 1 Transmission path 2 Transmission path 3 Transmission path 4 Transmission path 5 Time 0 D00 D01 D02 D03 D04 Time 1 D10 D11 D12 D13 D14 Time 2 D20 D21 D22 D23 D24 Time 3 C30 C31 C32 C33 C34 Time 4 C40 C41 C42 C43 C44

[0107] Table 2 illustrates the data transmission and time correspondence of one transmission path. The five transmission paths transmit data at time 0 as follows: D00, D01, D02, D03, and D04; at time 1 as follows: D10, D11, D12, D13, and D14; at time 2 as follows: D20, D21, D22, D23, and D24; at time 3 as follows: D30, D31, D32, D33, and D34; and at time 4 as follows: D40, D41, D42, D43, and D44.

[0108] In this way, each transmission path transmits the data to be transmitted (such as sub-data, first check data, and second check data) at multiple different times, thereby protecting the data to be transmitted from the perspective of time.

[0109] It should be understood that the above description is merely to help those skilled in the art better understand the embodiments of this application, and is not intended to limit the scope of the embodiments of this application. Based on the examples given above, those skilled in the art can obviously make various equivalent modifications or changes. For example, some steps in the various methods described above may be unnecessary, or new steps may be added. Alternatively, any combination of two or more of the above embodiments may be used. Such modifications, changes, or combinations also fall within the scope of the embodiments of this application.

[0110] It should also be understood that the methods, situations, categories, and classifications of embodiments in this application are for the convenience of description only and should not constitute a special limitation. Various methods, categories, situations, and features in embodiments can be combined without contradiction.

[0111] It should also be understood that the various numerical designations used in the embodiments of this application are merely for descriptive convenience and are not intended to limit the scope of the embodiments of this application. The order of the process numbers described above does not imply the order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0112] It should also be understood that the above description of the embodiments of this application focuses on highlighting the differences between the various embodiments. Any similarities or differences not mentioned can be referred to each other. For the sake of brevity, they will not be repeated here.

[0113] The above combination Figures 1-3 The embodiments of the methods and systems provided in this application have been described. The network device provided in the embodiments of this application is described below.

[0114] This embodiment can divide the network device into functional modules according to the above method. For example, it can be divided into functional modules corresponding to each function, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware. It should be noted that the module division in this embodiment is illustrative and only represents one logical functional division; other division methods may be used in actual implementation.

[0115] It should be noted that the relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here.

[0116] The network device provided in this application embodiment is used to execute the data transmission method provided in the above method embodiment, and thus can achieve the same effect as the above implementation method.

[0117] In other embodiments, when using integrated units, the network device may include a processing module, a storage module, and a communication module. The processing module can be used to control and manage the operations of the network device. For example, it can be used to support the network device in executing the steps performed by the processing unit. The storage module can be used to store program code and data, etc. The communication module can be used to support communication between the network device and other network devices.

[0118] The processing module can be a processor or a controller. It can implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of digital signal processing (DSP) and a microprocessor, etc. The storage module can be a memory. The communication module can specifically be a radio frequency circuit, a Bluetooth chip, a Wi-Fi chip, or other devices that interact with other network devices.

[0119] Based on the same concept, embodiments of this application also provide a network device, see [link to relevant documentation]. Figure 4 , Figure 4 A schematic diagram of the structure of an exemplary network device of this application is shown. Figure 4 The network device shown can execute the steps of any of the data transmission methods performed by the sender or receiver provided in the embodiments of this application.

[0120] The network device 400 includes at least one processor 401, a memory 403, and at least one network interface 404.

[0121] Processor 401 may be, for example, a general-purpose CPU, a digital signal processor (DSP), a network processor (NP), a GPU, a neural network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits or application-specific integrated circuits (ASICs) used to implement the solutions of this application, a programmable logic device (PLD), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A PLD may be, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in conjunction with the disclosure of this application. A processor may also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.

[0122] Optionally, network device 400 also includes bus 402. Bus 402 is used to transmit information between the components of network device 400. Bus 402 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. Bus 402 can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 4 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0123] Memory 403 may be, for example, read-only memory (ROM) or other types of storage devices capable of storing static information and instructions; random access memory (RAM) or other types of dynamic storage devices capable of storing information and instructions; electrically erasable programmable read-only memory (EEPROM); compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital versatile optical discs, Blu-ray discs, etc.); magnetic disk storage media or other magnetic storage devices; or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. Memory 403 may exist independently and be connected to processor 401 via bus 402. Memory 403 may also be integrated with processor 401.

[0124] Network interface 404 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), or wireless local area network (WLAN). Network interface 404 can include wired network interfaces and wireless network interfaces. Specifically, network interface 404 can be an Ethernet interface, such as Fast Ethernet (FE), Gigabit Ethernet (GE), Asynchronous Transfer Mode (ATM), WLAN, cellular network, or combinations thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In some embodiments of this application, network interface 404 can be used for network device 400 to communicate with other devices.

[0125] In specific implementations, as some embodiments, processor 401 may include one or more CPUs. Each of these processors may be a single-core processor or a multi-core processor. Here, "processor" may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).

[0126] In specific implementations, as some methods, network device 400 may include multiple processors. Each of these processors may be a single-core processor or a multi-core processor. Here, a processor may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0127] In some embodiments, memory 403 is used to store program instructions for executing the present application solution, and processor 401 can execute the program instructions stored in memory 403. That is, network device 400 can implement the method provided in the above embodiments through processor 401 and program instructions in memory 403. The program instructions may include one or more software modules. Optionally, processor 401 itself may also store program instructions for executing the present application solution.

[0128] In specific implementation, the processor 401 in the network device 400 of this application reads instructions from the memory 403, causing... Figure 4 The network device 400 shown can perform all or part of the steps in the data transmission method performed by the network device in the above embodiments.

[0129] In the above embodiments, each step of the method is implemented through integrated logic circuits in the hardware of the processor of the network device 400 or through software instructions. The steps of the method embodiments disclosed in this application can be directly implemented by the hardware processor, or implemented by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. Since the storage medium is located in memory, the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method embodiments; to avoid repetition, these will not be described in detail here.

[0130] It should be understood that the aforementioned processor can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting the Advanced Reduced Instruction Set Computing (RISC) machine (ARM) architecture.

[0131] Furthermore, in an alternative embodiment, the memory described above may include read-only memory and random access memory, and provide instructions and data to the processor. The memory may also include non-volatile random access memory. For example, the memory may also store device type information.

[0132] The memory can be volatile or non-volatile, or may include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which serves as an external cache. Many forms of RAM are available by way of example, but not limitation. Examples include static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0133] The network device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, so they will not be described again here.

[0134] This application also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the methods described in the above-described method embodiments.

[0135] This application also provides a computer program product that, when run on a network device, enables the network device to implement the methods described in the above-described method embodiments.

[0136] This application provides a chip, including a processor, for calling and executing instructions stored in a memory, causing a communication device with the chip installed to execute the method described in the above-described method embodiments of any network device provided in this application.

[0137] This application also provides a chip system including a processor coupled to a memory. The processor executes a computer program stored in the memory to implement the method described in the above-described method embodiments. The chip system may be a single chip or a chip module composed of multiple chips.

[0138] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, or magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).

[0139] Those skilled in the art will understand that implementing all or part of the processes in the above embodiments can be accomplished by a computer program instructing related hardware. This program can be stored in a computer-readable storage medium, and when executed, it can include the processes described in the above method embodiments. The aforementioned storage medium can include various media capable of storing program code, such as ROM or random access memory (RAM), magnetic disks, or optical disks.

[0140] The naming or numbering of steps in this application does not imply that the steps in the method flow must be executed in the time / logical order indicated by the naming or numbering. The execution order of the named or numbered process steps can be changed according to the technical purpose to be achieved, as long as the same or similar technical effect can be achieved.

[0141] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0142] In the embodiments provided in this application, it should be understood that the disclosed apparatus / devices and methods can be implemented in other ways. For example, the apparatus / device embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0143] It should be understood that in the description of this application and the appended claims, the terms "comprising," "including," "having," and any variations thereof are intended to cover a non-exclusive inclusion and mean "including but not limited to," unless otherwise specifically emphasized. For example, a process, method, system, product, or apparatus that includes a series of steps or modules is not necessarily limited to those steps or modules that are explicitly listed, but may include other steps or modules that are not explicitly listed or that are inherent to such process, method, product, or apparatus.

[0144] In the description of this application, unless otherwise stated, " / " indicates that the objects before and after are in an "or" relationship. For example, A / B can mean A or B. "And / or" in this application is used to describe the relationship between the related objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. A and B can be singular or plural.

[0145] Furthermore, in the description of this application, unless otherwise stated, "multiple" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0146] As used in this application specification and the appended claims, the term "if" may be interpreted, depending on the context, as "when," "once," "in response to determination," or "in response to detection." Similarly, the phrase "if determined" or "if detected [the described condition or event]" may be interpreted, depending on the context, as meaning "once determined," "in response to determination," "once detected [the described condition or event]," or "in response to detection [the described condition or event]."

[0147] Furthermore, in the description of this application and the appended claims, the terms "first," "second," etc., are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence, nor should they be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein; features defined as "first" or "second" may explicitly or implicitly include at least one of those features.

[0148] In the embodiments of this application, the words "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplarily" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design solutions. Specifically, the use of the words "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner.

[0149] References to "one embodiment" or "some embodiments" in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized.

[0150] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

Claims

1. A data transmission method, characterized in that, The method includes: The data to be transmitted is divided into M sub-data, where M = N*(N-2), N is the number of transmission paths used to transmit the data to be transmitted, and N is a positive integer greater than 2; Based on the N transmission paths, the M sub-data are path-assigned to obtain N-2 sub-data transmitted by each transmission path; Based on the M sub-data, N first check data and N second check data are determined, and each transmission path is also used to transmit one first check data and one second check data; The first verification data transmitted by each of the transmission paths is used to verify K first sub-data in the M sub-data. The K first sub-data are transmitted by at least N-2 other transmission paths. The N first verification data transmitted by the N transmission paths are used to verify the M sub-data. K is a positive integer greater than or equal to N-2. The second verification data transmitted through each of the transmission paths is used to verify K second sub-data items among the M sub-data items, the K second sub-data items being transmitted by at least N-2 other transmission paths, and the N second verification data items transmitted through the N transmission paths being used to verify the M sub-data items; The first and second verification data transmitted along the same transmission path are used to verify at least 2 (N-2) sub-data transmitted along N-1 other transmission paths.

2. The method according to claim 1, characterized in that, If K = N-2, then the sub-data verified by the first verification data transmitted through different transmission paths will also be different, and the sub-data verified by the second verification data transmitted through different transmission paths will also be different. The sub-data verified by the first verification data and the second verification data transmitted through the same transmission path are also different.

3. The method according to claim 1 or 2, characterized in that, The step of determining N first verification data and N second verification data based on the M sub-data includes: Based on the M sub-data, a (N-2)×N target matrix is ​​constructed, and the N column vectors of the target matrix correspond to the sub-data, which are transmitted by N transmission paths respectively; Determine K first sub-data points and K second sub-data points corresponding to each column vector; The first verification data is determined based on the K first sub-data; The second verification data is determined based on the K second sub-data.

4. The method according to claim 3, characterized in that, If K = N-2, then determining the K first sub-data and K second sub-data corresponding to each column vector includes: Of the K first sub-data and the K second sub-data, one of them includes: the element corresponding to the (X+1)th row and (Y+1)th column in the target matrix, where N-3≥X≥0, Y is the value of (P+X+2) modulo N, P is the column where the column vector is located, and N-1≥P≥0; The other includes: the element in the (X+1)th row and (Z+1)th column of the target matrix, where Z is the remainder of (PX-2+N) divided by N.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: Perform a first operation on the K first sub-data to obtain the first verification data; Perform a first operation on the K second sub-data to obtain the second verification data.

6. The method according to claim 5, characterized in that, The first operation includes any one of the XOR operation, AND operation, and field multiplication operation.

7. The method according to any one of claims 1 to 6, characterized in that, Each of the transmission paths transmits N-2 sub-data, the first check data, and the second check data corresponding to the transmission path at N time points.

8. A data transmission method, characterized in that, Applied to the receiver, the method includes: The receiver receives P data groups sent by a sender, wherein the sender sends N data groups to the receiver through N transmission paths. Each data group is transmitted by one of the transmission paths. Each data group includes N-2 sub-data, first check data, and second check data, where N is a positive integer greater than 2. The first check data transmitted by each transmission path is used to verify K first sub-data among the M sub-data. The K first sub-data are transmitted by at least N-2 other transmission paths. The N first check data transmitted by the N transmission paths are... The verification data is used to verify the M sub-data, where K is a positive integer greater than or equal to N-2; the second verification data transmitted through each of the transmission paths is used to verify K second sub-data among the M sub-data, the K second sub-data being transmitted by at least N-2 other transmission paths, and the N second verification data transmitted through the N transmission paths are used to verify the M sub-data; the first verification data and the second verification data transmitted through the same transmission path are used to verify at least 2(N-2) sub-data transmitted through N-1 other transmission paths, where P is N-2 or N-1; Based on the relationship between the P data groups, the first verification data and its verified first sub-data, and the relationship between the second verification data and its verified second sub-data, it is determined that the receiver has failed to receive one or two data groups.

9. A network device, characterized in that, include: The memory includes computer-readable instructions; A processor communicating with the memory, the processor being configured to execute the computer-readable instructions, causing the network device to perform the data transmission method of any one of claims 1-8.

10. A computer-readable storage medium, characterized in that, Includes a program or instructions that, when executed by a processor, implement the data transfer method as described in any one of claims 1-8.

11. A computer program product, characterized in that, The computer program product includes instructions that, when executed by a computer, implement the data transmission method as described in any one of claims 1-8.