Data transmission method and communication device

By using a delayed transmission information mechanism in the P2P network, the data transmission time is determined based on the response of the second end node, which solves the problem of data redundant transmission, reduces network load and improves resource utilization and data transmission reliability.

CN114553886BActive Publication Date: 2025-01-10HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202011249398.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-11-10
Publication Date
2025-01-10
Estimated Expiration
2040-11-10

AI Technical Summary

Technical Problem

In P2P networks, data transmission based on distributed transmission schemes has data redundant transmission problems, increasing network load, and a method is needed to reduce redundant transmission to reduce network load.

Method used

By sending delay transmission information during data transmission, the first end node determines the target time to send data according to the response of the second end node, or cancels the transmission to reduce redundant transmission.

Benefits of technology

It effectively reduces redundant data transmission, reduces network load, and improves resource utilization and data transmission reliability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114553886B_ABST
    Figure CN114553886B_ABST
Patent Text Reader

Abstract

The embodiment of the present application discloses a data transmission method and a communication device, which can be applied to data transmission or data distribution scenarios in a peer-to-peer P2P network. The method includes: a first end node sends delayed transmission information to a second end node; the delayed transmission information indicates time information for the first end node to delay sending first data to the second end node; when the first end node determines that the second end node accepts the delayed transmission information, the first end node alleviates its own load by delaying the sending of the first data to the second end node, which can solve the network congestion problem caused by large-scale concurrent data requests; or, when the first end node determines that the second end node rejects the delayed transmission information, the first end node cancels the transmission of the first data, which can reduce redundant data transmission and reduce its own load.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data transmission, and in particular to a data transmission method and a communication device. Background Art

[0002] Peer to Peer (P2P) is an Internet system without a central server and relying on user groups (peers) to exchange information. Its role is to reduce the end nodes in previous network transmissions to reduce the risk of data loss. Unlike a central network system with a central server (corresponding to a centralized architecture), each user end of a peer-to-peer network is both an end node and a server. In a peer-to-peer network, users (i.e., terminals) can communicate directly, share resources, and work together, and terminal resources can be fully utilized.

[0003] Compared with the centralized architecture, the step-by-step architecture based on P2P transmission technology can avoid single point failures, avoid triangular routing, achieve higher reliability and better scalability, and is easier to deploy. A currently used distributed transmission scheme based on P2P transmission technology is as follows: the requesting end node broadcasts data requests to neighboring end nodes. When multiple data source end nodes (i.e., the end nodes storing the data corresponding to the data request) receive the data request, they will send the data to the requesting end node at the same time. In this transmission scheme, redundant data transmission will occur, increasing the network burden. Therefore, it is necessary to study how to reduce redundant data transmission to reduce network load. Summary of the invention

[0004] The embodiments of the present application disclose a data transmission method and a communication device, which are a transmission scheme that can reduce redundant data transmission to reduce network load.

[0005] In a first aspect, an embodiment of the present application provides a data transmission method, the method comprising: a first end node sends delayed transmission information to a second end node; the delayed transmission information indicates that the first end node will send first time information of first data to the second end node; the first end node determines that the second end node accepts the delayed transmission information; the first end node sends the first data to the second end node at a target time according to the first time information, and the target time is determined according to the first time information; or, the first end node determines that the second end node rejects the delayed transmission information, and the first end node cancels the transmission of the first data.

[0006] The first time information may be a time point (corresponding to absolute time) or a duration (corresponding to relative time). For example, the first time information is the time point (i.e., a moment) at which the first end node estimates that the first data will be sent to the second end node. For another example, the first time information is a duration, which is the duration between the moment when the second end node receives the delayed transmission information (corresponding to the moment when the first end node sends the delayed transmission information) and the moment when the first end node sends the first data to the second end node. The target time may be the time point at which the first data is to be sent to the second end node determined according to the first time information. The first end node determining that the second end node accepts the delayed transmission information can be understood as the first end node determining that the second end node agrees that the first end node agrees that the first end node sends the first data to the second end node. The first end node determining that the second end node rejects the delayed transmission information can be understood as the first end node determining that the second end node rejects the first end node from sending the first data to the second end node. The first end node determines whether the second end node accepts or rejects the transmission delay information. Specifically, the first end node determines whether the second end node accepts or rejects the transmission delay information according to the preset interaction strategy. For example, it can be specifically manifested as receiving a rejection message sent by the second end node, it is considered that the transmission delay information is rejected, and receiving a notification message sent by the second end node notifying that it has been received or explicitly informing that it agrees to receive, it is considered that the transmission delay information is accepted. It can also be other strategies. For example, if no response message is received from the second end node within a preset time, it is considered that the second end node accepts the transmission delay information, or if no response message is received from the second end node within a preset time, it is considered that the second end node rejects the transmission delay information. The specific strategy can be specifically set according to the implementation of the scheme to determine whether the second end node accepts or rejects the judgment logic. When the first end node determines that the second end node rejects the first data sent by the first end node, it cancels the transmission of the first data, which can reduce redundant data transmission. When the first end node determines that the second end node accepts the first data sent by the first end node, it delays sending the first data to the second end node, which can reduce the load and improve resource utilization.

[0007] In an embodiment of the present application, when the first end node determines that the second end node accepts delayed transmission information, the first end node sends the first data to the second end node at the target time, which can reduce the load; when the first end node determines that the second end node refuses to delay transmission information, the first end node cancels the transmission of the first data; redundant transmission of data can be reduced and its own load can be reduced.

[0008] In a possible implementation, before the first end node cancels the transmission of the first data, the method further includes: the first end node creates a sending task to send the first data to the second end node; the first end node cancels the transmission of the first data including: the first end node cancels the sending task.

[0009] The first end node canceling the sending task may be that the first end node deletes the sending task. Optionally, after receiving a data request from the second end node, the first end node creates a sending task to send the first data to the second end node, and the data request is used to obtain the first data. That is to say, after receiving a data request from the second end node, the first end node will create a sending task to send the data requested by the data request to the second end node; the first end node cancels the sending task when it determines that the second end node refuses to delay the transmission information; wherein the delayed transmission information indicates the time information of the first end node sending the data requested by the data request to the second end node. In this implementation, after receiving a data request, the first end node creates a sending task to send the data requested by the data request; if it is determined that the data requested by the data request is not to be sent, the sending task is deleted, otherwise, the sending task is executed (i.e., the data requested by the data request is sent). It should be understood that in this implementation, as long as the first end node receives a data request, it will create a sending task to send the data requested by the data request, that is, receiving a data request defaults to creating a sending task to send the data requested by the data request.

[0010] In this implementation, after receiving a data request, the first end node creates a sending task for sending the data requested by the data request, rather than creating the sending task before sending the data; thus, data can be sent faster.

[0011] In a possible implementation manner, the first end node canceling the transmission of the first data includes: the first end node does not create a sending task to send the first data to the second end node.

[0012] In this implementation, after the first end node determines that the second end node accepts the delayed transmission information, it creates and executes a sending task to send the first data to the second end node. After the first end node determines that the second end node rejects the delayed transmission information, it does not create a sending task to send the first data to the second end node. In other words, after the first end node determines to send certain data (corresponding to accepting the delayed transmission information), it creates a sending task to send the data, which can reduce the operation of creating sending tasks.

[0013] In this implementation, the first end node determines that the second end node refuses to delay transmission information, and the first end node does not create a sending task to send the first data to the second end node, which can reduce the operation of creating the sending task.

[0014] In a possible implementation, the first end node determines that the second end node accepts the delayed transmission information including: the first end node receives a first message from the second end node, the first message is sent by the second end node after receiving the delayed transmission information; the first message includes first indication information, the first indication information indicates that the second end node agrees with the first end node to send the first data. It should be understood that the first indication information can be content that explicitly indicates the agreement with the first end node to send the first data, and the first indication information can be other agreed indication messages indicating agreement, for example, the first indication message can be a confirmation receipt message, when the first message received by the first end node includes a message confirming that the delayed transmission information is received, it is considered to indicate that the second end node agrees with the first end node to send the first data.

[0015] The first message may be a confirmation message, such as an acknowledgement character (ACK), which indicates acceptance of the delayed transmission information; or an agreement message, which indicates agreement for the first end node to send the first data, such as a message agreed upon between end nodes; or other types of indication messages, which are used to instruct the first end node to send the first data, such as an indication message including a confirmation sending time of the first data, an identifier of the second end node, etc. The confirmation sending time of the first data may be the time indicated by the second end node for the first end node to send the first data.

[0016] In this implementation, the first end node can quickly and accurately determine that the second end node accepts the delayed transmission information based on the first message.

[0017] In one possible implementation, the first end node determines that the second end node accepts the delayed transmission information including: when the first end node does not receive a third message from the second end node within a first time period after sending the delayed transmission information, determining that the second end node accepts the delayed transmission information; and the third information includes third indication information, and the third indication information is used to instruct the second end node to reject the first data sent by the first end node.

[0018] The third message may be a negative acknowledgement message, such as a negative acknowledgement (NACK), which indicates the rejection of the delayed transmission information; or a rejection message, which indicates the rejection of the first end node to send the first data, such as a message agreed upon between end nodes; or other types of indication messages, used to indicate that the first end node does not send the first data, such as an indication message including an identifier of the delayed transmission information, an identifier of the second end node, etc. It should be understood that the third message may include content indicating that the second end node rejects the first end node from sending the first data, and the third message may also be a message agreed upon between end nodes, that is, the third message does not need to explicitly include content rejecting the first end node from sending the first data.

[0019] In this implementation, the first end node can determine that the second end node accepts the delayed transmission information without the second end node sending a message, which can reduce signaling consumption and is simple to implement.

[0020] In one possible implementation, the first end node determines that the second end node rejects the delayed transmission information including: the first end node receives a second message from the second end node, the second message is sent by the second end node after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to instruct the second end node to reject the first end node from sending the first data.

[0021] The second message may be a negative message, such as NACK, which indicates rejection of the delayed transmission information; or a rejection message, which indicates rejection of the first end node to send the first data, such as a message agreed upon between end nodes; or other types of indication messages, used to indicate that the first end node does not send the first data, such as an indication message including an identifier of the delayed transmission information, an identifier of the second end node, etc. It should be understood that the second indication information in the second message may include content indicating rejection of the first end node to send the first data, and the second indication information may also be a kind of information content agreed upon between end nodes, that is, the second message does not need to explicitly include content indicating rejection of the first end node to send the first data.

[0022] In this implementation, the first end node can quickly and accurately determine that the second end node refuses to delay transmission information based on the second message.

[0023] In one possible implementation, the first end node determines that the second end node rejects the delayed transmission information including: when the first end node does not receive a fourth message from the second end node within a second time period after sending the delayed transmission information, determining that the second end node rejects the delayed transmission information; the fourth information includes fourth indication information, and the fourth indication information is used to indicate that the second end node agrees that the first end node sends the first data.

[0024] The fourth message may be a confirmation message, such as ACK, indicating acceptance of the delayed transmission information; or an agreement message indicating agreement with the first end node to send the first data, such as a message agreed upon between end nodes; or other types of indication messages for indicating the first end node to send the first data, such as an indication message including the confirmation sending time of the first data, the identifier of the second end node, etc. The confirmation sending time of the first data may be the time indicated by the second end node for the first end node to send the first data.

[0025] In this implementation, the first end node can determine that the second end node refuses to delay transmission information without the second end node sending a message, thereby reducing signaling consumption.

[0026] In a possible implementation, the delayed transmission information is a data voucher, which indicates through the data voucher that the first end node sends the first time information of the first data to the second end node; the data voucher is also used to verify the identity of the first end node.

[0027] The second end node can verify the identity of the first end node based on the data voucher to avoid interference from malicious end nodes and improve security. In this implementation, the delayed transmission information is a data voucher, through which the identity of the first end node can be verified, which can improve the security of data transmission.

[0028] In one possible implementation, before the first end node sends delayed transmission information to the second end node, the method also includes: the first end node determines first delay time information based on the load amount; the first delay time information is obtained based on the load amount; the first end node generates the delayed transmission information based on the first delay time information; the first time information is obtained based on the first delay time information.

[0029] The load amount may be the amount of data currently to be sent by the first end node, such as the amount of data in the sending queue. The first delay time information may be a duration or a time point. The first end node determines the first delay time information based on the load amount. The first end node estimates the time point for sending the first data based on the load amount, and obtains the first delay time information, and the first delay time information indicates the time point; or the first end node calculates the delay duration based on the load amount to obtain the first delay time information; wherein the first delay time information is the delay duration, that is, the duration between the moment when the first end node sends the first data and the current moment (that is, the moment when the first delay time information is determined).

[0030] In this implementation, the first delay time information can be determined more accurately according to the load amount.

[0031] In a possible implementation, the first end node determines the calculation method of the first delay time information according to the load as follows:

[0032]

[0033] Wherein, rt1 is the first delay time information, i represents the first end node, j represents the second end node, f and f′ are the file resources of end node i (i.e., the first end node), size(f) is the data volume of the first data, size(f′) is the data volume of the queue being processed by the first end node (i.e., the current data volume to be sent), and UB i is the transmission bandwidth of end node i (i.e., the bandwidth for sending data to other end nodes), D i,j It is the data transmission delay between end node i and end node j. This parameter generally has little impact and can be used as an optional parameter.

[0034] In this implementation manner, the first delay time information can be accurately calculated.

[0035] In a possible implementation, the first end node determines the first delay time information according to the load, including: when the first end node stores the first data and the load is greater than a load threshold, determining the first delay time information according to the load.

[0036] In this implementation, when the load amount is greater than the load threshold, the sending of the first data is delayed, which can effectively reduce the load.

[0037] In one possible implementation, before the first end node sends delayed transmission information to the second end node, the method also includes: the first end node generates the delayed transmission information based on second time information; the first time information is obtained based on the second time information; and the second time information is the estimated time information of the first end node obtaining the first data.

[0038] The second time information may be the time when the first end node estimates that the first data is received from other end nodes. For example, when the first end node receives time information sent by a certain end node indicating that the first data is sent to the first end node, the first end node may estimate the second time information of receiving the first data from the end node based on the time information. The first end node may generate the delayed transmission information based on the second time information: the first end node determines the second delayed time information based on the second time information; the first end node generates the delayed transmission information based on the second delayed time information; the first time information is obtained based on the second delayed time information.

[0039] In the case where the first end node does not store the first data, the second delay time information is determined according to the second time information. The second time information may be the time point at which the first end node obtains the first data, as estimated (or obtained) by the first end node; or it may be the estimated (or obtained) duration between the current moment and the moment when the first end node receives the first data. The second delay time information may be the time point at which the first end node sends the first data, as estimated (or calculated) according to the second time information; or it may be the delay duration for sending the first data, as estimated (or calculated) by the first end node according to the second time information, that is, the duration between the moment when the first end node sends the first data and the current moment.

[0040] In this implementation, the first end node can more accurately estimate the time for sending the first data according to the second time information.

[0041] In a possible implementation, the first end node determines the second delay time information according to the second time information using the following calculation formula:

[0042]

[0043] Wherein, rt2 is the second delay time information, rt[i-1] is the estimated duration from the current moment to the moment when the first end node obtains the first data, i represents the first end node, j represents the second end node, f and f′ are the file resources of end node i, size(f) is the data volume of the first data, size(f′) is the data volume of the queue being processed by the first end node, and UBi is the sending bandwidth of end node i, D i,j is the data transmission delay between end node i and end node j. This parameter generally has little impact and can be used as an optional parameter. It should be understood that rt[i-1] can be understood as the time between the moment when the first end node determines the second delay time information and the moment when the first end node receives the first data.

[0044] In this implementation, both the time of obtaining the first data and the current load are taken into consideration, and the second delay time information can be accurately calculated.

[0045] In a possible implementation, the method further includes: the first end node receiving a data request for obtaining second data; and the first end node rejecting the data request if the second data is not stored and is not yet to be obtained.

[0046] Rejecting the data request may include ignoring the data request, that is, not performing any operation on the data request; or may include sending indication information to the end node that sent the data request, indicating that the first end node rejects the data request.

[0047] In this implementation, the first end node rejects the data request when the second data is not stored and the second data is not yet to be obtained; thus, unnecessary operations can be reduced.

[0048] In one possible implementation, the situation where the second data is not stored and is not yet to be obtained includes: the second data is not stored and the first data voucher is not stored; the first data voucher is a voucher for any end node to send the second data to the first end node.

[0049] In this implementation manner, it can be determined accurately and quickly whether the second data is to be obtained.

[0050] In a possible implementation, the first end node starts to monitor whether it has the conditions to send the first data to the second end node at a reference time, and the reference time is the time point indicated by the delayed transmission information when the first end node sends the first data to the second end node; if the first end node has the conditions to send the first data to the second end node, the first data is sent to the second end node at the reference time (corresponding to the target time); if the first end node does not have the conditions to send the first data to the second end node, the first end node continues to monitor whether it has the conditions to send the first data to the second end node, and sends the first data to the second end node when the first end node has the conditions to send the first data to the second end node (corresponding to the target time). For example, the first end node starts to monitor the end node load of the first end node when the reference time (a time point) is reached; and starts to send the first data to the first end node at the target time when the end node load of the first end node is less than the load threshold.

[0051] In order to avoid the first end node not being able to send the first data to the second end node at the reference time, the first end node may send the first data to the second end node when it is able to send the first data to the second end node, thereby ensuring the reliability of data transmission.

[0052] In a second aspect, an embodiment of the present application provides a data transmission method, the method comprising: a second end node sends a first message, the first message is sent after receiving delayed transmission information, the delayed transmission message is sent by the first end node, the delayed transmission information indicates that the first end node will send first time information of first data to the second end node, the first message includes first indication information, the first indication information indicates that the second end node agrees that the first end node sends the first data; or, the second end node sends a second message, the second message is sent after receiving the delayed transmission information; the second message includes second indication information, the second indication information is used to indicate that the second end node refuses the first end node to send the first data.

[0053] The first message may be a confirmation message, such as ACK, which indicates acceptance of the delayed transmission information; or an agreement message, which indicates agreement for the first end node to send the first data, such as a message agreed upon between end nodes; or other types of indication messages, used to instruct the first end node to send the first data, such as an indication message including the confirmation sending time of the first data, the identifier of the second end node, etc. The confirmation sending time of the first data may be the time indicated by the second end node for the first end node to send the first data.

[0054] The second message may be a negative acknowledgement message, such as NACK, which indicates rejection of the delayed transmission information; or a rejection message, which indicates rejection of the first end node to send the first data, such as a message agreed upon between end nodes; or other types of indication messages, used to indicate that the first end node does not send the first data, such as an indication message including an identifier of the delayed transmission information, an identifier of the second end node, etc. It should be understood that the second message may include content indicating rejection of the first end node to send the first data, and the second information may also be a message agreed upon between end nodes, that is, the second message does not need to explicitly include content rejecting the first end node to send the first data.

[0055] It should be understood that when the second end node determines based on the delayed transmission information that the first end node cannot provide the first data in time, it sends the second message, which can avoid the first end node sending data to it and reduce redundant data transmission; when it determines based on the delayed transmission information that the first end node can provide the first data in time, it sends the first message, so that the first data can be obtained quickly, and the data acquisition efficiency is high.

[0056] In an embodiment of the present application, the second end node sends the first message according to the delayed transmission information, so as to obtain the required data more quickly; and sends the second message according to the delayed transmission information, so as to reduce redundant transmission of data.

[0057] In a possible implementation, the delayed transmission information is a data voucher, which indicates through the data voucher that the first end node sends the first time information of the first data to the second end node; the data voucher is also used to verify the identity of the first end node.

[0058] In this implementation, the second end node can use the data credential to verify the identity of the first end node to improve security.

[0059] In one possible implementation, before the second end node sends the first message, the method also includes: when the credit value of the first end node is greater than the credit value of the third end node, the second end node determines to send the first message; the third end node is the end node agreed by the second end node to send the first data to the second end node.

[0060] The first end node may agree that one or more end nodes send the first data to it. For example, after the second end node agrees that a certain end node sends the first data to it, it may continue to agree that other end nodes send the first data to it. In a possible implementation, when the second end node has agreed that at least one end node (for example, a third end node) sends the first data to it, the second end node may determine whether to send the first message, that is, whether to agree that the first end node sends the first data to it, according to the credit value of the first end node and the at least one end node. In a possible implementation, after the second end node determines to send the first message, it sends a fifth message to the third end node; the fifth message includes third indication information, and the third indication information is used to indicate that the second end node refuses the third end node to send the first data; thus avoiding the third end node from sending the first data. It should be understood that the second end node may not notify the third end node to cancel the transmission of the first data, that is, not send the fifth message to the third end node. In this implementation, after the second end node determines to send the first message, it waits for the first end node to send the first data to it, and no longer waits for the third end node to send the first data to it. For the second end node, it is equivalent to only agreeing that the first end node sends the first data to it.

[0061] The larger the credit value of an end node, the higher the probability that the end node sends data according to the agreement. In this implementation, the second end node can compare the credit value of the first end node and the credit value of the third end node, and when the credit value of the first end node is greater than the credit value of the third end node, it determines to send the first message. In other words, the second end node can determine whether to send the first message by simply judging whether the credit value of the first end node is greater than the credit value of the third end node. When the credit value of the first end node is greater than the credit value of the third end node, the second end node's determination to send the first message can be understood as the second end node agreeing that the first end node with a higher credit value sends the first data to it, so as to increase the probability of obtaining the first data.

[0062] In one possible implementation, before the second end node sends the first message, the method also includes: when the credit value of the first end node is greater than the credit value of the third end node, and the difference between the credit value of the first end node and the credit value of the third end node is greater than a credit threshold, the second end node determines to send the first message; the third end node is the end node agreed by the second end node to send the first data to the second end node.

[0063] The credit threshold may be a real number greater than 0, and may be set according to actual conditions. The second end node may first determine whether the credit value of the first end node is greater than the credit value of the third end node; when the credit value of the first end node is greater than the credit value of the third end node, it may then determine whether the difference between the credit value of the first end node and the credit value of the third end node is greater than the credit threshold. The second end node may determine whether the difference between the credit value of the first end node and the credit value of the third end node is greater than the credit threshold, and if so, it may determine to send the first message. The difference between the credit value of the first end node and the credit value of the third end node refers to the credit value obtained by subtracting the credit value of the third end node from the credit value of the first end node. The second end node may first determine whether the absolute value of the difference between the credit value of the first end node and the credit value of the third end node is greater than the credit threshold; if so, it may then determine whether the credit value of the first end node is greater than the credit value of the third end node; when the credit value of the first end node is greater than the credit value of the third end node, it may determine to send the first message. It should be understood that the processing mechanism of the second end node can be to first determine the credit value of the first end node and the credit value of the third end node, and then determine the difference between the two credit values; it can also be to first determine the difference between the two credit values, and then determine the size of the two credit values.

[0064] In this implementation, the first end node selects an end node with a higher credit value to send the first data to it, which can improve the reliability of obtaining the first data.

[0065] In a possible implementation, before the second end node sends the first message, the method further includes: when the first time is earlier than the second time, the second end node determines to send the first message; the first time is the time when the first end node is to send the first data to the second end node, the second time is the time when the fourth end node is to send the first data to the second end node, and the fourth end node is the end node that the second end node agrees to send the first data to the second end node. The fourth end node may be the third end node or another end node.

[0066] The first time may be obtained by the second end node according to the first time information, and the second time may be obtained according to the third time information, and the third time information is the time information from the fourth end node indicating that the fourth end node sends the first data to the second end node. For example, the second end node receives the first delayed transmission information from the fourth end node, and the first delayed transmission information indicates the third time information of the fourth end node sending the first data to the second end node, and the second end node obtains the second time according to the third time information. It should be understood that the second end node obtains the first time and the second time in a similar manner. After the second end node agrees that the fourth end node sends the first data to it, when the first time that the first end node is to send the first data to it is earlier than the second time that the fourth end node is to send the first data to it, it determines to send the first message (i.e., agree that the first end node sends the first data to it); the first data can be received faster.

[0067] In one possible implementation, when the first time is earlier than the second time, the second end node determines to send the first message, including: when the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than a credit threshold, and the first time is earlier than the second time, determining to send the first message.

[0068] The second end node may first determine whether the first time is earlier than the second time, and then determine whether the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than the credit threshold; it may also first determine whether the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than the credit threshold, and then determine whether the first time is earlier than the second time.

[0069] In this implementation, when the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than the credit threshold, the second end node determines to accept the first end node with an earlier sending time, so as to obtain the required first data more quickly.

[0070] In one possible implementation, when the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than a credit threshold, and the first time is earlier than the second time, before determining to send the first message, the method also includes: the second end node obtains the credit value of the fourth end node when storing data credentials for the fourth end node to send the first data to the second end node.

[0071] It should be understood that if the second end node does not store the data voucher for any end node to send the first data to the second end node, the second end node can directly accept the first data sent to it by the first end node without obtaining the credit value of any end node. The second end node can reduce the operation of obtaining the credit value of the end node by querying whether the voucher for sending the first data to the second end node is stored.

[0072] In one possible implementation, before the second end node sends the first message, the method further includes: the second end node determines to send the first message when the second end node does not store credentials for any end node to send the first data to the second end node.

[0073] In this implementation, the second end node can promptly notify the first end node to send the first data to it.

[0074] In one possible implementation, before the second end node sends the second message, the method also includes: when the credit value of the first end node is not greater than the credit value of the fifth end node, the second end node determines to send the second message; and the fifth end node is the end node agreed by the second end node to send the first data to the second end node.

[0075] In this implementation, the first end node selects an end node with a higher credit value to send the first data to it, which can improve the reliability of obtaining the first data.

[0076] In one possible implementation, before the second end node sends the second message, the method also includes: when the credit value of the first end node is not greater than the credit value of the fifth end node, and the absolute value of the difference between the credit value of the first end node and the credit value of the third end node is greater than a credit threshold, the second end node determines to send the second message; and the fifth end node is the end node agreed by the second end node to send the first data to the second end node.

[0077] The credit threshold can be a real number greater than 0, which can be set according to actual conditions. The second end node can first determine whether the credit value of the first end node is not greater than the credit value of the fifth end node; when the credit value of the first end node is not greater than the credit value of the fifth end node, then determine whether the absolute value of the difference between the credit value of the first end node and the credit value of the fifth end node is greater than the credit threshold. The second end node can first determine whether the absolute value of the difference between the credit value of the first end node and the credit value of the fifth end node is greater than the credit threshold; if so, then determine whether the credit value of the first end node is not greater than the credit value of the fifth end node; when the credit value of the first end node is not greater than the credit value of the fifth end node, determine to send the first message. It should be understood that the processing mechanism of the second end node can be to first determine the size of the credit value of the first end node and the credit value of the fifth end node, and then determine the difference between the two credit values; it can also be to first determine the difference between the two credit values, and then determine the size of the two credit values.

[0078] In one possible implementation, before the second end node sends the second message, the method also includes: when the first time is not earlier than the third time, determining to send the second message; the first time is the time when the first end node is to send the first data to the second end node, the third time is the time when the sixth end node is to send the first data to the second end node, and the sixth end node is the end node agreed by the second end node to send the first data to the second end node.

[0079] The first time may be obtained by the second end node according to the first time information, and the fourth time may be obtained according to the fourth time information, and the fourth time information is time information from the sixth end node indicating that the sixth end node sends the first data to the second end node. For example, the second end node receives the second delayed transmission information from the sixth end node, and the second delayed transmission information indicates the fourth time information of the sixth end node sending the first data to the second end node, and the second end node obtains the third time according to the fourth time information. It should be understood that the second end node obtains the first time and the third time in a similar manner.

[0080] It can be understood that the first time is not earlier than the third time, which indicates that the time when the first end node sends the first data to the second end node is later than the time when the sixth end node sends the first data to the second end node, and the second end node determines to send the second message; redundant data transmission can be avoided.

[0081] In one possible implementation, when the first time is not earlier than the third time, determining to send the second message includes: when the absolute value of the difference between the credit value of the first end node and the credit value of the sixth end node is less than the credit threshold, and the first time is not earlier than the third time, determining to send the second message.

[0082] The second end node may first determine whether the first time is earlier than the third time, and then determine whether the absolute value of the difference between the credit value of the first end node and the credit value of the sixth end node is less than the credit threshold; it may also first determine whether the absolute value of the difference between the credit value of the first end node and the credit value of the sixth end node is less than the credit threshold, and then determine whether the first time is earlier than the third time.

[0083] In this implementation manner, the second end node can receive the first data faster.

[0084] In one possible implementation, after the second end node receives the delayed transmission information from the first end node, the method further includes: if the second end node receives the first data from the first end node within a target time period, increasing the credit value of the first end node; the target time period is obtained based on the first time information; if the second end node does not receive the first data from the first end node within the target time period, reducing the credit value of the first end node.

[0085] The start time of the target time period may be the earliest time that the second end node estimates to receive the first data from the first end node based on the first time information; the end time of the target time period may be the latest time that the second end node estimates to receive the first data from the first end node based on the first time information. For example, the first time information is the time point when the first end node sends the first data to the second end node, the start time of the target time period is the time point, and the end time of the target time period is a time point of a certain length of time (which can be set according to the actual scenario, such as 100ms) after the time point. If the second end node receives the first data from the first end node within the target time period, the second end node considers that the first end node sends the first data to it at the agreed time, and thus the credit value of the first end node can be increased. If the second end node does not receive the first data from the first end node within the target time period, the second end node considers that the first end node does not send the first data to it at the agreed time, and thus the credit value of the first end node can be reduced.

[0086] In this implementation, the second end node updates the credit value of the first end node according to whether the first end node provides data to it in a timely manner, so that the second end node can update the credit value of the first end node in a timely and accurate manner.

[0087] In a possible implementation, the credit value of the first end node satisfies the following formula:

[0088] credit=1 / (1+exp(θ-2θr));

[0089] Among them, credit represents the credit value of the first end node (corresponding to the requested end node), θ is a value set according to actual needs, for example, the default value is 8, so that the value range of credit is between 0 and 1; r is the proportion of the first end node fulfilling the agreement, that is, the ratio of the number of times the first end node sends data to the second end node at the agreed time (i.e. on time) to the number of times the second end node accepts the data certificate of the first end node (corresponding to the delayed transmission information). In practical applications, the second end node can update r in time to facilitate timely updating of the credit value of the first end node. It should be understood that if the second end node receives the first data from the first end node within the target time period, it indicates that the number of times the first end node sends data to the second end node at the agreed time (i.e. on time) increases (corresponding to r increasing). Therefore, the first end node can use the above formula to update the credit value of the first end node, that is, to increase the credit value of the first end node. If the second end node does not receive the first data from the first end node within the target time period, it indicates that the number of times the first end node does not send data to the second end node at the agreed time (i.e. not on time) increases (corresponding to r decreasing). Therefore, the first end node may use the above formula to update the credit value of the first end node, that is, to reduce the credit value of the first end node.

[0090] The proportion of the first end node fulfilling the agreement satisfies the following formula:

[0091] r=(n success +1) / (n total +1);

[0092] Among them, n total The number of times the second end node accepts the data voucher (corresponding to the delayed transmission information) of the first end node, n success The number of times the first end node sends data at the agreed time, recorded for the second end node.

[0093] In this implementation, the second end node updates the credit value of the first end node according to whether the first end node sends data at the agreed time, so as to obtain the data faster subsequently according to the credit value of the first end node.

[0094] In a third aspect, an embodiment of the present application provides a communication device, comprising: a transceiver module, used to send delayed transmission information to a second end node; the delayed transmission information indicates first time information at which the first end node sends first data to the second end node; a processing module, used to determine that the second end node accepts the delayed transmission information; the processing module is also used to send the first data to the second end node at a target time through the transceiver module according to the first time information, and the target time is determined according to the first time information; or, the processing module is used to determine that the second end node rejects the delayed transmission information and cancels the transmission of the first data.

[0095] In a possible implementation, the processing module is further used to create a sending task for sending the first data to the second end node; and the processing module is specifically used to cancel the sending task.

[0096] In a possible implementation, the processing module is specifically configured not to create a sending task for sending the first data to the second end node.

[0097] In one possible implementation, the processing module is specifically used to determine that the second end node accepts the delayed transmission information when the transceiver module receives a first message from the second end node, and the first message is sent by the second end node after receiving the delayed transmission information; the first message includes first indication information, and the first indication information indicates that the second end node agrees that the first end node sends the first data.

[0098] In one possible implementation, the processing module is specifically used to determine that the second end node accepts the delayed transmission information when the transceiver module does not receive a third message from the second end node within a first time period after the transceiver module sends the delayed transmission information; the third information includes third indication information, and the third indication information is used to instruct the second end node to reject the first end node from sending the first data.

[0099] In one possible implementation, the processing module is specifically used to determine that the second end node rejects the delayed transmission information when the transceiver module receives a second message from the second end node, and the second message is sent by the second end node after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to indicate that the second end node rejects the first end node from sending the first data.

[0100] In one possible implementation, the processing module is specifically used to determine that the second end node rejects the delayed transmission information when the transceiver module does not receive a fourth message from the second end node within a second time period after the transceiver module sends the delayed transmission information; the fourth information includes fourth indication information, and the fourth indication information is used to indicate that the second end node agrees that the first end node sends the first data.

[0101] In a possible implementation, the delayed transmission information is a data voucher, which indicates through the data voucher that the first end node sends the first time information of the first data to the second end node; the data voucher is also used to verify the identity of the first end node.

[0102] In a possible implementation, the processing module is also used to determine the first delay time information according to the load amount; generate the delayed transmission information according to the first delay time information; the first time information is obtained according to the first delay time information, and the first delay time information is obtained according to the load amount.

[0103] In a possible implementation, the processing module determines the calculation method of the first delay time information according to the load as follows:

[0104]

[0105] Wherein, rt1 is the first delay time information, i represents the first end node, j represents the second end node, f and f′ are the file resources of end node i (i.e., the first end node), size(f) is the data volume of the first data, size(f′) is the data volume of the queue being processed by the first end node (i.e., the current data volume to be sent), and UB i is the transmission bandwidth of end node i (i.e., the bandwidth for sending data to other end nodes), D i,j It is the data transmission delay between end node i and end node j. This parameter generally has little impact and can be used as an optional parameter.

[0106] In a possible implementation, the processing module is specifically configured to determine the first delay time information according to the load when the first end node stores the first data and the load is greater than a load threshold.

[0107] In a possible implementation, the processing module is also used to generate the delayed transmission information based on second time information; the first time information is obtained based on the second time information; the second time information is the estimated time information of the first end node obtaining the first data.

[0108] In a possible implementation, the processing module is specifically used to determine second delay time information according to the second time information; generate the delayed transmission information according to the second delay time information; and the first time information is obtained according to the second delay time information.

[0109] In a possible implementation, the processing module determines the calculation formula of the second delay time information according to the second time information as follows:

[0110]

[0111] Wherein, rt2 is the second delay time information, rt[i-1] is the estimated duration from the current moment to the moment when the first end node obtains the first data, i represents the first end node, j represents the second end node, f and f′ are the file resources of end node i, size(f) is the data volume of the first data, size(f′) is the data volume of the queue being processed by the first end node, and UB i is the sending bandwidth of end node i, D i,j It is the data transmission delay between end node i and end node j. This parameter generally has little impact and can be used as an optional parameter.

[0112] In a possible implementation, the transceiver module is further used to receive a data request for obtaining second data; and the processing module is further used to reject the data request if the second data is not stored and is not to be obtained.

[0113] In one possible implementation, the situation where the second data is not stored and is not yet to be obtained includes: the second data is not stored and the first data voucher is not stored; the first data voucher is a voucher for any end node to send the second data to the first end node.

[0114] Regarding the technical effects brought about by the third aspect or various possible implementation methods, reference may be made to the introduction to the technical effects of the first aspect or corresponding implementation methods.

[0115] In a fourth aspect, an embodiment of the present application provides a communication device, comprising: a transceiver module, used to receive delayed transmission information from a first end node, the delayed transmission information indicating first time information at which the first end node sends first data to a second end node; the transceiver module, further used to send a first message generated by a processing module, the first message being sent after receiving the delayed transmission information, the first message including first indication information, the first indication information indicating that the second end node agrees that the first end node sends the first data; or, the transceiver module, further used to send a second message generated by the processing module, the second message being sent after receiving the delayed transmission information; the second message including second indication information, the second indication information being used to indicate that the second end node rejects the first end node from sending the first data.

[0116] In a possible implementation, the delayed transmission information is a data voucher, which indicates through the data voucher that the first end node sends the first time information of the first data to the second end node; the data voucher is also used to verify the identity of the first end node.

[0117] In one possible implementation, the processing module is also used to determine to send the first message when the credit value of the first end node is greater than the credit value of a third end node; the third end node is the end node that the second end node agrees to send the first data to the second end node.

[0118] In one possible implementation, the processing module is also used to determine to send the first message when the credit value of the first end node is greater than the credit value of the third end node, and the difference between the credit value of the first end node and the credit value of the third end node is greater than a credit threshold; the third end node is the end node that the second end node agrees to send the first data to the second end node.

[0119] In one possible implementation, the processing module is also used to determine to send the first message when the first time is earlier than the second time; the first time is the time when the first end node is about to send the first data to the second end node, the second time is the time when the fourth end node is about to send the first data to the second end node, and the fourth end node is the end node that the second end node agrees to send the first data to the second end node.

[0120] In a possible implementation, the processing module is specifically used to determine to send the first message when the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than a credit threshold, and the first time is earlier than the second time.

[0121] In a possible implementation, the processing module is further configured to obtain the credit value of the fourth end node when data vouchers for the fourth end node to send the first data to the second end node are stored.

[0122] In a possible implementation, the processing module is further configured to determine to send the first message when no credential for any end node to send the first data to the second end node is stored.

[0123] In one possible implementation, the processing module is also used to determine to send the second message when the credit value of the first end node is not greater than the credit value of the fifth end node; the fifth end node is the end node that the second end node agrees to send the first data to the second end node.

[0124] In one possible implementation, the processing module is also used to, when the credit value of the first end node is not greater than the credit value of the fifth end node, and the absolute value of the difference between the credit value of the first end node and the credit value of the third end node is greater than a credit threshold, the second end node determines to send the second message; and the fifth end node is the end node agreed by the second end node to send the first data to the second end node.

[0125] In one possible implementation, the processing module is also used to determine to send the second message when the first time is not earlier than the third time; the first time is the time when the first end node is to send the first data to the second end node, the third time is the time when the sixth end node is to send the first data to the second end node, and the sixth end node is the end node agreed by the second end node to send the first data to the second end node.

[0126] In a possible implementation, the processing module is specifically used to determine to send the second message when the absolute value of the difference between the credit value of the first end node and the credit value of the sixth end node is less than a credit threshold, and the first time is not earlier than the third time.

[0127] In one possible implementation, the processing module is also used to increase the credit value of the first end node when the first data is received from the first end node within a target time period; the target time period is obtained based on the first time information; and to reduce the credit value of the first end node when the first data is not received from the first end node within the target time period.

[0128] In a possible implementation, the credit value of the first end node satisfies the following formula:

[0129] credit=1 / (1+exp(θ-2θr));

[0130] Among them, credit represents the credit value of the first end node (corresponding to the requested end node), θ is a value set according to actual needs, for example, the default value is 8, so that the value range of credit is between 0 and 1; r is the proportion of the first end node fulfilling the agreement, that is, the ratio of the number of times the first end node sends data to the second end node at the agreed time (i.e. on time) to the number of times the second end node accepts the data certificate of the first end node (corresponding to delayed transmission information).

[0131] The proportion of the first end node fulfilling the agreement satisfies the following formula:

[0132] r=(n success +1) / (n total +1);

[0133] Among them, n total The number of times the second end node accepts the data voucher (corresponding to the delayed transmission information) of the first end node, n success The number of times the first end node sends data at the agreed time, recorded for the second end node.

[0134] Regarding the technical effects brought about by the fourth aspect or various possible implementation methods, reference may be made to the introduction to the technical effects of the second aspect or corresponding implementation methods.

[0135] In a fifth aspect, the present application provides a communication device, which includes a processor, and the processor is used to execute computer-executable instructions stored in a memory so that the communication device performs the method shown in the above-mentioned first aspect or any possible implementation of the first aspect.

[0136] In an embodiment of the present application, in the process of executing the above method, the process of sending delayed transmission information (i.e., message), sending first data, and sending first message (hereinafter collectively referred to as information) in the above method can be understood as a process of outputting information based on the instructions of the processor. When outputting information, the processor outputs the information to the transceiver so that it can be transmitted by the transceiver. After the information is output by the processor, it may also need to be processed otherwise before it reaches the transceiver. Similarly, when the processor receives input information, the transceiver receives the information and inputs it into the processor. Furthermore, after the transceiver receives the information, the information may need to be processed otherwise before it is input into the processor.

[0137] Based on the above principle, for example, sending the delayed transmission information can be understood as outputting the delayed transmission information based on the instruction of the processor. For another example, sending the first message can be understood as sending the first message based on the instruction of the processor.

[0138] For operations such as sending and / or receiving involved by the processor, unless otherwise specified or unless they conflict with the actual function or internal logic in the relevant description, they can be generally understood as instructions output based on the processor.

[0139] During the implementation process, the processor may be a processor specifically used to execute these methods, or may be a processor that executes computer instructions in a memory to execute these methods, such as a general-purpose processor, etc. For example, the processor may also be used to execute a program stored in the memory, and when the program is executed, the communication device executes the method as shown in the first aspect or any possible implementation of the first aspect.

[0140] In a possible implementation manner, the memory is located outside the above communication device.

[0141] In a possible implementation manner, the memory is located within the above-mentioned communication device.

[0142] In the embodiment of the present application, the processor and the memory may also be integrated into one device, that is, the processor and the memory may also be integrated together.

[0143] In a possible implementation, the communication device further includes a transceiver, and the transceiver is used to receive a message or send a message, etc.

[0144] In a sixth aspect, the present application provides a communication device, which includes a processor, which can be used to execute computer-executable instructions stored in a memory so that the communication device performs the method shown in the above-mentioned second aspect or any possible implementation of the second aspect.

[0145] In the embodiment of the present application, the specific description of the processor can be referred to the description of the fifth aspect above, which will not be described in detail here.

[0146] During the implementation process, the processor may be a processor specifically used to execute these methods, or may be a processor that executes computer instructions in a memory to execute these methods, such as a general-purpose processor, etc. For example, the processor may also be used to execute a program stored in the memory, and when the program is executed, the communication device executes the method as shown in the second aspect or any possible implementation of the second aspect.

[0147] In a possible implementation manner, the memory is located outside the above communication device.

[0148] In a possible implementation manner, the memory is located within the above-mentioned communication device.

[0149] In the embodiment of the present application, the processor and the memory may also be integrated into one device, that is, the processor and the memory may also be integrated together.

[0150] In a possible implementation, the communication device further includes a transceiver, and the transceiver is used to receive a message or send a message.

[0151] In a seventh aspect, the present application provides a communication device, which includes a processing circuit and an interface circuit, wherein the interface circuit is used to acquire data or output data; the processing circuit is used to execute the corresponding method as shown in the above-mentioned first aspect or any possible implementation of the first aspect.

[0152] In an eighth aspect, the present application provides a communication device, which includes a processing circuit and an interface circuit, wherein the interface circuit is used to acquire data or output data; the processing circuit is used to execute the corresponding method as shown in the above-mentioned second aspect or any possible implementation of the second aspect.

[0153] In a ninth aspect, the present application provides a computer-readable storage medium for storing a computer program, which, when executed on a computer, enables the method shown in the above-mentioned first aspect or any possible implementation of the first aspect to be executed.

[0154] In a tenth aspect, the present application provides a computer-readable storage medium for storing a computer program, which, when executed on a computer, enables the method shown in the above-mentioned second aspect or any possible implementation of the second aspect to be executed.

[0155] In an eleventh aspect, the present application provides a computer program product, which includes a computer program or a computer code, and when the computer program product is run on a computer, the method shown in the above-mentioned first aspect or any possible implementation of the first aspect is executed.

[0156] In a twelfth aspect, the present application provides a computer program product, which includes a computer program or a computer code, and when the computer program product runs on a computer, the method shown in the above-mentioned second aspect or any possible implementation of the second aspect is executed.

[0157] In a thirteenth aspect, the present application provides a computer program. When the computer program runs on a computer, the method shown in the above-mentioned first aspect or any possible implementation of the first aspect is executed.

[0158] In a fourteenth aspect, the present application provides a computer program. When the computer program runs on a computer, the method shown in the above-mentioned second aspect or any possible implementation of the second aspect is executed.

[0159] In a fifteenth aspect, the present application provides a communication system, which includes a first end node (corresponding to a requested end node) and a second end node (corresponding to a requesting end node), the first end node can be used to execute the method shown in the above-mentioned first aspect or any possible implementation of the first aspect, and the second end node can be used to execute the method shown in the above-mentioned second aspect or any possible implementation of the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0160] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the background technology, the drawings required for use in the embodiments of the present application or the background technology will be described below.

[0161] Figure 1A A schematic diagram of a distributed network provided in an embodiment of the present application;

[0162] Figure 1B A schematic diagram of another distributed network provided in an embodiment of the present application;

[0163] Figure 2 A schematic diagram of another distributed network provided in an embodiment of the present application;

[0164] Figure 3A A schematic diagram of a data distribution network provided in an embodiment of the present application;

[0165] Figure 3B A schematic diagram of another data distribution network provided in an embodiment of the present application;

[0166] Figure 4 A flow chart of a data transmission method provided in an embodiment of the present application;

[0167] Figure 5 A flow chart of another data transmission method provided in an embodiment of the present application;

[0168] Figure 6 A flow chart of another data transmission method provided in an embodiment of the present application;

[0169] Figure 7 A schematic diagram of an example of a message format used for communication between a first end node and a second end node provided in an embodiment of the present application;

[0170] Figure 8 A flow chart of another data transmission method provided in an embodiment of the present application;

[0171] Fig. 9 A flow chart of another data transmission method provided in an embodiment of the present application;

[0172] Fig.10 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;

[0173] Fig.11 A schematic diagram of the structure of another communication device provided in an embodiment of the present application;

[0174] Fig.12 A schematic diagram of the structure of another communication device provided in an embodiment of the present application;

[0175] Fig.13 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;

[0176] Fig.14 A schematic diagram of the structure of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0177] In order to make the objectives, technical solutions and advantages of the present application clearer, the present application will be further described below in conjunction with the accompanying drawings.

[0178] The terms "first" and "second" in the specification, claims and drawings of this application are only used to distinguish different objects, rather than to describe a specific order. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units that are not listed, or may optionally include other steps or units that are inherent to these processes, methods, products or devices.

[0179] The "embodiment" mentioned in this article means that the specific features, structures or characteristics described in conjunction with the embodiment can be included in at least one embodiment of the present application. The appearance of this phrase in various places in the specification does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment that is mutually exclusive with other embodiments. It can be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0180] In the present application, "at least one (item)" means one or more, "more than one" means two or more, "at least two (items)" means two or three and more than three, and "and / or" is used to describe the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following" or similar expressions refers to any combination of these items. For example, at least one of a, b or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c".

[0181] The network architecture involved in this application will be described in detail below.

[0182] Figure 1A A schematic diagram of a distributed network provided in an embodiment of the present application. Figure 1A Each circle in represents an end node, and the line between two end nodes represents the communication link between the two end nodes. Figure 1A The distributed network in the network can be a peer-to-peer (P2P) network without a central network, in which each end node can obtain services from other end nodes (such as obtaining data) and provide services to other end nodes (such as sending data). Figure 1A The distributed network in can be regarded as a distributed storage architecture. Figure 1A The end nodes in the can be mobile phones, tablet computers, desktop computers, laptop computers, smart TVs, network attached storage (NAS), smart home devices, wearable devices and other devices with data transmission and data storage functions. In some possible embodiments, Figure 1A Storage can be shared among all end nodes in the network, and each end node is identified by a unique peer identifier (PID) in the entire network, such as a hash value based on an Internet Protocol (IP) address; the stored content data is identified by a unique content identifier (CID) in the entire network, such as obtained based on a content name / file name hash.

[0183] The future mobile Internet architecture will focus on the circle of friends established based on actual social connections, such as: family members appearing in the same family network; colleagues working in the same company; tourists traveling in the same place; friends in the circle who are interested in the same topic. The decentralized architecture network based on the interaction and matching between people in the circle of friends will become a trend, and the application scenarios are Changlian, micro-network (welink), smart classroom and other scenarios. Therefore, research Figure 1A Data transmission in distributed networks is of great significance.

[0184] Figure 1B A schematic diagram of another distributed network provided in an embodiment of the present application. Figure 1B The distributed network in the embodiment adopts a client / server (C / S) structure, which includes at least two end nodes as servers and multiple end nodes as clients. Figure 1BIn this example, only two end nodes (server 1 and server 2) are used as servers and four end nodes (client 1, client 2, client 3, client 4) are used as clients. Figure 1B In a distributed network, each client can request at least two servers to obtain the same content data. In some embodiments, the content data stored on the server is identified by CID, for example, based on the content name / file name hash; each client (corresponding to the end node) is identified by PID, for example, based on the hash value of the IP address. The client / server structure is the current mainstream network architecture. In this network architecture, when a large number of clients obtain data from the server at the same time, some clients need to wait for a long time, so it is necessary to study solutions that can improve the efficiency of clients obtaining data. The distributed network in this application can be regarded as a data distribution network.

[0185] The following figures introduce some data transmission schemes in distributed networks.

[0186] Solution 1: Data transmission is based on mesh-pull. Each end node (corresponding to the requesting end node) initiates a data acquisition request to the neighboring end node. After the neighboring end node receives the data acquisition request, if the neighboring end node (corresponding to the data source end node) has the data requested by the data acquisition request stored locally, the corresponding data is returned to the requesting end node. In this application, if there is a communication link between two end nodes, the two end nodes are neighboring end nodes to each other; the data source end node refers to the end node that can provide the data requested by the requesting end node, that is, the end node that provides data to the requesting end node; the requesting end node refers to the end node that requests any data from other end nodes, that is, the end node that sends the data acquisition request; the requested end node refers to the end node that receives the data acquisition request from the requesting end node, that is, the requested end node. If a requested node can provide the data requested by a requesting node to a requesting node, then for the requesting node, the requested node is a data source node; if the requested node cannot provide the data requested by the requesting node, then for the requesting node, the requested node is not a data source node.

[0187] In solution 1, the data source node will treat the data acquisition requests of all request nodes fairly, and send the corresponding content data to each request node in sequence according to the first input first output (FIFO) order.

[0188] In solution 1, due to the limited bandwidth and / or data transmission capability of the data source end node (e.g., mobile terminal), the data source end node is easily congested during data transmission. It should be understood that when the data source end node sends a large file (i.e., a file with a large amount of data) to the request end node and / or receives a large number of data acquisition requests, the data source end node will be blocked from sending data to another part of the request end nodes because it takes too long to send data to some of the request end nodes. Figure 2 A schematic diagram of another distributed network provided in an embodiment of the present application. Figure 2 In the figure, 201 represents a data source end node, and 202 represents a plurality of request end nodes (ie, end nodes requesting data from the data source end node). Figure 2 The left side of the figure shows a scenario where multiple request-end nodes request data from a data source end node (corresponding to large-scale data acquisition requests). Figure 2 The figure on the right shows the scenario where the data source node is congested.

[0189] In addition, in solution 1, in order to ensure reliability, the requesting node will usually broadcast the data acquisition request to the neighboring node. When there are multiple neighboring nodes that have the data requested by the data acquisition request, they will all send the data to the requesting node. It can be seen that adopting solution 1 will lead to redundant transmission and increase the network burden.

[0190] Solution 2: Establish a data distribution tree in advance with the newly released file (i.e. content data), such as Figure 3A As shown, data distribution is performed according to the data distribution tree established in advance. Figure 3A A schematic diagram of a data distribution network provided in an embodiment of the present application. Figure 3A In the data distribution network, there is a data source end node 301, a plurality of sub-end nodes 302 of the data source end node 301, and a plurality of sub-end nodes 303 of the plurality of sub-end nodes 302; wherein each end node 302 represents an end node that obtains data from the data source end node 301 and provides data to its sub-end node after obtaining the data from the data source end node 301, and each end node 303 represents an end node that obtains data from the end node 302. Figure 3AIn Scheme 2, end node 302 can be regarded as a child end node of end node 301, and any end node 303 can be regarded as a child end node of a certain end node 302. In Scheme 2, after any end node 302 obtains data from end node 301, the any end node 302 can serve as a data source end node to provide data for its child end node (corresponding to end node 303). It should be understood that in Scheme 2, the data transmission task is completed by multiple end nodes together, and end node 301 does not need to process large-scale data acquisition requests, so it can balance the network load and reduce repeated requests and redundant transmissions. However, Scheme 2 has the defect of poor anti-destruction performance (i.e., low reliability). Once an end node in the data distribution tree fails or is disconnected from its parent end node, all child end nodes connected to the end node will not receive data, such as Figure 3B shown. Figure 3A It can be regarded as a data distribution tree, and each end node is an end node in the distribution tree. Figure 3B A schematic diagram of another data distribution network provided in an embodiment of the present application. Figure 3B Can be considered as Figure 3A A network after an end node 3022 (any end node 302) fails or is disconnected from its parent end node 301. Figure 3B As shown, after the end node 3022 fails or is disconnected from its parent end node 301, all child end nodes connected to the data end node 3022 cannot receive data. In addition, the disadvantages of scheme 2 are more obvious in the networking mode of mobile devices. Since the access and disconnection of each end node are more frequent than that of a fixed end node, it is more likely that the parent end node in the tree will exit, resulting in its child end nodes not receiving data, or the tree structure needs to be frequently rebuilt, resulting in a large network overhead.

[0191] The present application provides a data transmission scheme with high reliability and capable of avoiding redundant data transmission. The main principle of the data transmission scheme provided by the present application is as follows: the requested end node (corresponding to the first end node) can decide whether to delay sending the data requested by the received data acquisition request according to its own load, and estimate the sending time (for example, the expected sending time) of sending data to the requesting end node when delaying sending the data requested by the received data acquisition request. The requesting end node selects to receive the content data of the appropriate requested end node according to the expected sending time provided by each requested end node and the credit value stored or obtained by itself. The data transmission scheme provided by the embodiment of the present application is introduced below in conjunction with the accompanying drawings.

[0192] Figure 4 A flow chart of a data transmission method provided in an embodiment of the present application. Figure 4 As shown, the method includes:

[0193] 401. A first end node sends delayed transmission information to a second end node.

[0194] The delayed transmission information indicates the first time information at which the first end node sends the first data to the second end node. The first time information may be a time point (corresponding to absolute time), a duration (corresponding to relative time), or a time period. For example, the first time information is the time point (i.e., a moment) at which the first end node estimates that the first data is sent to the second end node. For another example, the first time information is a duration, which is the duration between the moment when the second end node receives the delayed transmission information (corresponding to the moment when the first end node sends the delayed transmission information) and the moment when the first end node sends the first data to the second end node. If the first time information is a time point, the duration between the time point at which the first end node actually sends the first data to the second end node and the time point is less than a threshold, such as 100ms, 10ms, etc. If the first time information is a time period, the first end node sends the first data to the second end node within the time period, and the starting time of the time period can be understood as the earliest time at which the first end node estimates that the first data is sent to the second end node, and the end time of the time period can be understood as the latest time at which the second end node estimates that the first data is sent to the second end node. For example, the current moment is the reference time point, the first end node estimates a delay of 100ms to send the first data to the second end node, the first time information represents 100ms, and the second end node parses the delayed transmission information to determine that the first data can be received approximately 100ms after receiving the delayed transmission information (corresponding to the reference time point).

[0195] In some embodiments, the first end node and the second end node may be any two different end nodes in the same distributed network (e.g., a mobile distributed network), or any two end nodes in a peer-to-peer network including multiple end nodes. A mobile distributed network may refer to a network including multiple mobile devices (e.g., mobile phones, laptops, etc.). In some embodiments, the first end node may be an end node that serves as a server in a client / server structure, and the second end node may be an end node that serves as a client in a client / server structure.

[0196] In some embodiments, the delayed transmission information is a data voucher, which indicates that the first end node sends the first time information of the first data to the second end node through the data voucher; the data voucher is also used to verify the identity of the first end node. The second end node can verify the identity of the first end node based on the data voucher to avoid interference from malicious end nodes and improve security.

[0197] In some embodiments, before sending delayed transmission information to the second end node, the first end node may also receive a data acquisition request from the second end node, where the data acquisition request is used to acquire the first data; a possible implementation method of step 401 is: the first end node sends delayed transmission information to the second end node in response to the data acquisition request.

[0198] 402. The first end node determines that the second end node accepts delayed transmission information.

[0199] A possible implementation of step 402 is as follows: the first end node receives a first message from the second end node, the first message is sent by the second end node after receiving the delayed transmission information; the first message includes first indication information, the first indication information indicates that the second end node agrees with the first end node to send the first data. It should be understood that the first message may include content indicating the agreement with the first end node to send the first data, and the first information may also be a message agreed upon between end nodes, that is, the first message does not need to explicitly include content indicating the agreement with the first end node to send the first data.

[0200] Another possible implementation of step 402 is as follows: if the first end node does not receive the third message from the second end node within the first time period after sending the delayed transmission information, it determines that the second end node accepts the delayed transmission information; the third information includes third indication information, and the third indication information is used to indicate that the second end node refuses the first end node to send the first data. The first time period can be 10ms, 30ms, 100ms, 1s, 3s, etc. It should be understood that the first end node can configure the first time period according to actual conditions.

[0201] 403. The first end node sends the first data to the second end node at the target time according to the first time information.

[0202] The above-mentioned target time may be a time point for sending the above-mentioned first data determined according to the above-mentioned first time information. In a possible implementation, the above-mentioned first time information is a target time (i.e., a time point when the first end node sends the first data). In a possible implementation, the above-mentioned first time information is a duration, and the above-mentioned target time is a time point obtained by the first end node according to the duration. For example, the moment when the first end node sends the delayed transmission information is the first moment, the second time information is the target duration (a duration), and the target time is the second moment, and the duration between the second moment and the first moment after the first moment is the target duration. In a possible implementation, the above-mentioned first time information is a time period, and the target time is included in the time period. The start time of the time period is the earliest time point estimated by the above-mentioned first end node to send the first data to the second end node, and the end time of the time period is the latest estimated time to send the first data to the second end node.

[0203] In some embodiments, the first end node may determine a reference time for sending the first data according to the first time information (which may be understood as the earliest possible time point for sending the first data); then, it starts to monitor whether it has the conditions to send the first data to the second end node, and the reference time may be the time point indicated by the delayed transmission information when the first end node sends the first data to the second end node; if the first end node has the conditions to send the first data to the second end node, it sends the first data to the second end node at the reference time (corresponding to the target time); if the first end node does not have the conditions to send the first data to the second end node, it continues to monitor whether the first end node has the conditions to send the first data to the second end node, and sends the first data to the second end node when the first end node has the conditions to send the first data to the second end node (corresponding to the target time). For example, when the first end node reaches the reference time (a time point), it starts to monitor the load of the first end node; and starts to send the first data to the first end node at the target time when the load of the first end node is less than the load threshold.

[0204] In a possible implementation, the first message also includes a confirmation sending time (corresponding to the target time) of the first data. The confirmation sending time may be the time when the first end node indicates that the second end node sends the first data. Step 402 may be replaced by: the first end node sends the first data to the second end node at the marked time according to the first message. The marked time is obtained according to the first message. For example, the first message includes a marked time (i.e., the confirmation sending time) indicating that the first end node sends the first data. The first end node sends the first data to the second end node at the marked time according to the first message. In one embodiment, the first time information is a time point, and the marked time is a time point after the time point.

[0205] Step 402 and step 403 may be replaced by: 404. The first end node determines that the second end node rejects the delayed transmission information, and the first end node cancels transmission of the first data.

[0206] A possible implementation method for the first end node to determine that the second end node rejects the delayed transmission information is as follows: the first end node receives a second message from the second end node, and the second message is sent by the second end node after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to instruct the second end node to reject the first end node from sending the first data.

[0207] Another possible implementation of the first end node determining that the second end node rejects the delayed transmission information is as follows: if the first end node does not receive a fourth message from the second end node within a second time period after sending the delayed transmission information, the second end node determines that the second end node rejects the delayed transmission information; the fourth message includes fourth indication information, and the fourth indication information is used to indicate that the second end node agrees with the first end node to send the first data. The second time period can be 10ms, 30ms, 100ms, 1s, etc. It should be understood that the first end node can configure the second time period according to actual conditions.

[0208] In a possible implementation, before the first end node cancels the transmission of the first data, the following operations are performed: the first end node creates a sending task to send the first data to the second end node; the first end node cancels the transmission of the first data may be: the first end node cancels the sending task. The first end node cancels the sending task may be that the first end node deletes the sending task. In this implementation, after receiving a data request, the first end node creates a sending task to send the data requested by the data request; if it is determined not to send the data requested by the data request, the sending task is deleted, otherwise, the sending task is executed.

[0209] In a possible implementation, the first end node canceling the transmission of the first data may be: the first end node does not create a sending task for sending the first data to the second end node. In this implementation, the first end node creates a sending task for sending the data only after determining to send certain data (corresponding to receiving delayed transmission information), which can reduce the operation of creating sending tasks.

[0210] In an embodiment of the present application, when the first end node cannot immediately send the first data to the second end node, the first end node sends delayed transmission information to the second end node to indicate the first time information of the first data to be sent to the second end node; when the first end node determines that the second end node rejects the delayed transmission information, the first end node cancels the transmission of the first data; when the first end node determines that the second end node accepts the delayed transmission information, the first end node sends the first data to the second end node. For example, the second end node sends a data acquisition request for acquiring the first data to multiple end nodes, and the multiple end nodes respectively send feedback information for the data acquisition request to the second end node, each feedback information includes the time information of the first data to be sent to the second end node estimated by one of the multiple end nodes; the second end node selects to accept the first end node among the multiple end nodes to send the first data to it according to the feedback information from the multiple end nodes; the first end node sends the first data to the second end node, and the end nodes among the multiple end nodes except the first end node do not send the first data to the second end node (corresponding to canceling the transmission of the first data). In this example, for any end node other than the first end node among the multiple end nodes, when the any end node determines that the second end node refuses the any end node to send the above-mentioned first data to the second end node, the first data is cancelled, which can avoid redundant transmission of data and reduce its own load. For the second end node, it can select an end node from the multiple end nodes (for example, the end node that sends the first data to it the earliest) to send the first data to it, which has strong reliability and can receive the first data in time (i.e., reduce waiting time). In this example, one end node or part of the end nodes among the multiple end nodes sends the first data to the second end node, and at least part of the end nodes do not need to send the first data to the second end node, which can avoid redundant transmission of data. It should be understood that when the network load is heavy, the second end node can select an end node with a lighter load to send the required content to it, which balances the end node load when transmitting data in the distributed network, improves the efficiency of obtaining data, and reduces the network load.

[0211] In an embodiment of the present application, when the first end node determines that the second end node accepts the delayed transmission information, the first end node sends the first data to the second end node at the target time, which can reduce the load; when the first end node determines that the second end node refuses to delay the transmission information, the first end node cancels the transmission of the first data; redundant transmission of data can be reduced and its own load can be reduced.

[0212] Figure 5 A flow chart of another data transmission method provided in an embodiment of the present application. Figure 5 The method flow in is Figure 4 The refinement and improvement of the method flow in Figure 5 As shown, the method includes:

[0213] 501. A first end node receives a first data acquisition request from a second end node.

[0214] The first data acquisition request is used to acquire the first data. The first data acquisition request may include the user identifier PID of the second end node and the content identifier CID of the first data. In some embodiments, the first end node receives the first data acquisition request sent by the second end node via broadcast or multicast.

[0215] 502. The first end node determines first delay time information according to the load.

[0216] The first delay time information can be a duration (for example, the duration from the current moment to the moment of sending the first data), or a time point (for example, the estimated time point of sending the first data). In some embodiments, the first delay time information is a first delay duration, and the first delay duration is positively correlated with the load, and the load is the amount of data currently to be sent by the first end node. A possible implementation of step 502 is as follows: when the first end node stores the first data and the load is greater than the load threshold, the first delay time information is determined according to the load. The load threshold can be a threshold set according to actual needs, such as 20MB, 100MB, 1GB, etc. If the load of the first end node is greater than the load threshold, it means that the first end node cannot immediately send the first data to the second end node (corresponding to the requesting end node), and needs to delay sending the first data (i.e., the content data requested by the second end node) to the second end node. An optional calculation method for the first end node to calculate the delayed sending time (repayment time) of sending the first data to the second end node according to the load is as follows:

[0217]

[0218] Wherein, rt1 represents the delayed sending time (a duration) of the first end node sending the first data to the second end node, i represents the first end node, j represents the second end node, f and f′ are the file resources of end node i, size(f) is the data volume of the first data, size(f′) is the data volume of the queue being processed by the first end node (i.e., the current data volume to be sent), and UB i is the sending bandwidth of end node i, D i,j It is the data transmission delay between end node i and end node j. This parameter generally has little impact and can be used as an optional parameter. In one possible manner, the above-mentioned first delay time information is the above-mentioned delayed sending time. In this manner, the first end node calculates the delayed sending time for sending the first data to the second end node according to the load amount, that is, determines the first delay time information. In another possible manner, the first end node can obtain the first delay time information (a time point) according to the delayed sending time and the current moment. The current moment can be the moment when the delayed sending time is obtained. For example, the first end node determines the time point of the delayed sending time (rt1) after the current moment (corresponding to the estimated time point for sending the first data) as the first delay time information.

[0219] 503. The first end node generates delayed transmission information according to the first delay time information.

[0220] The first time information is obtained based on the first delay time information. In a possible embodiment, the first delay time information is a time point (e.g., an estimated time point for sending the first data), and the first time information is the time point. In a possible embodiment, the first delay time information is a duration (e.g., the duration from the current moment to the moment when the first data is sent), and the first time information is the duration.

[0221] In a possible embodiment, the delayed transmission information is a data certificate, which indicates that the first end node sends the first time information of the first data to the second end node through the data certificate; the data certificate is also used to verify the identity of the first end node.

[0222] Step 502 and step 503 can be replaced by the following operations: when the first end node does not store the first data and is waiting to obtain the first data, the first end node determines the second delay time information according to the second time information, the second time information being the estimated time information of the first end node obtaining the first data; the first end node generates the delayed transmission information according to the second delay time information; the first time information is obtained according to the second delay time information. The second time information can be the time point of the first end node obtaining the first data estimated (or obtained) by the first end node; or it can be the estimated (or obtained) duration between the current moment and the moment when the first end node receives the first data. The second delay time information can be the time point of the first data sent by the first end node estimated (or calculated) according to the second time information; or it can be the delay duration of the first data sent by the first end node estimated (or calculated) according to the second time information, that is, the duration between the moment when the first end node sends the first data and the current moment. The situation in which the first end node is to obtain the first data may be: the first end node stores a data voucher for a certain end node to send the first data to the first end node; wherein the data voucher may indicate the time when the end node sends the first data to the second end node (corresponding to the second time information). It should be understood that if the first end node has data vouchers for other end nodes to send the first data to it, the delayed sending time (i.e., delayed sending duration) of sending the first data to the second end node may be estimated based on the data voucher and the load. Optionally, the first end node calculates (corresponding to the estimation) the delayed sending time (a duration) of sending the first data to the second end node based on the second time information as follows:

[0223]

[0224] Wherein, rt2 is the delayed sending time of the first data to the second end node, rt[i-1] is the duration between the current time estimated by the first end node and the time when the first end node obtains the first data, i represents the first end node, j represents the second end node, f and f′ are the file resources of end node i, size(f) is the data volume of the first data, size(f′) is the data volume of the queue being processed by the first end node, and UB i is the sending bandwidth of end node i, D i,jIt is the data transmission delay between end node i and end node j. This parameter generally has little impact and can be used as an optional parameter. It should be understood that rt[i-1] can be understood as the duration between the moment when the first end node calculates rt2 and the moment when the first end node receives the first data. In one possible manner, the above-mentioned second delay time information is the delayed sending time (i.e., rt2) calculated according to the second time information. In this manner, the first end node calculates the delayed sending time for sending the first data to the second end node according to the second time information, that is, determines the second delay time information. In another possible manner, the first end node can obtain the second delay time information (a time point) based on the delayed sending time and the current moment. The current moment can be the moment when the delayed sending time is obtained. For example, the first end node determines the time point of the delayed sending time (rt2) after the current moment (corresponding to the estimated time point for sending the first data) as the second delay time information.

[0225] 504. The first end node sends delayed transmission information to the second end node.

[0226] The implementation of step 504 may be the same as the implementation of step 401 .

[0227] 505. The first end node determines that the second end node accepts the delayed transmission information.

[0228] The implementation of step 505 may be the same as the implementation of step 402 .

[0229] 506. The first end node sends the first data to the second end node at a target time according to the first time information.

[0230] The target time is determined according to the first time information. The implementation of step 505 can be the same as the implementation of step 403.

[0231] Step 505 and step 506 may be replaced by: 507, the first end node determines that the second end node rejects the delayed transmission information, and the first end node cancels the transmission of the first data. The implementation of step 507 may be the same as the implementation of step 404.

[0232] In some embodiments, the first end node may also perform the following operations: the first end node receives a second data acquisition request (corresponding to a data request), and the second data acquisition request is used to acquire the second data; the first end node rejects the second data acquisition request when the second data is not stored and the second data is not yet acquired. For example, the first end node receives a second data acquisition request from the second end node (or other end node), and the rejection of the second data acquisition request by the first end node may be that the first end node cancels the transmission of the second data. The above-mentioned situation in which the second data is not stored and the second data is not yet acquired includes: the second data is not stored and the first data voucher is not stored; the first data voucher is the voucher for any end node to send the second data to the first end node. The fact that the first end node does not store the second data and does not yet acquire the second data can be understood as the first end node being unable to acquire the second data in a short period of time. The first end node rejects the second data acquisition request when the second data is not stored and is not ready to be obtained, so that the end node sending the data acquisition request obtains the second data from an end node other than the first end node, thereby increasing the speed of acquiring the second data and reducing the load of the first end node.

[0233] In some embodiments, the first end node may further perform the following operations: the first end node receives a third data acquisition request from a certain end node, the third data acquisition request being used to acquire third data; the first end node immediately sends the third data to the end node when the third data is stored and the current load is not greater than the load threshold. In other words, when the load is less than the load threshold, the first end node may immediately send corresponding data to other end nodes.

[0234] In the embodiment of the present application, when the load is large, the first end node sends delayed transmission information to the second end node to indicate delay in sending the first data to the second end node; redundant transmission of data can be reduced to reduce its own load.

[0235] Figure 6 A flow chart of another data transmission method provided in an embodiment of the present application. Figure 6 The method flow in is Figure 4 and Figure 5 The refinement and improvement of the method flow in Figure 6 As shown, the method includes:

[0236] 601. A first end node receives a first data acquisition request from a second end node.

[0237] The first data acquisition request is used to acquire the first data. The implementation of step 601 may be the same as the implementation of step 501 .

[0238] 602. The first end node queries whether the first data is stored.

[0239] If the first data is stored, execute step 603 ; if the first data is not stored, execute step 609 .

[0240] 603. The first end node determines whether the load is greater than a load threshold.

[0241] If yes, go to step 604; if no, go to step 608.

[0242] 604. The first end node determines first delay time information according to the load.

[0243] The implementation of step 604 may be the same as the implementation of step 502, and will not be described in detail here.

[0244] 605. The first end node sends delayed transmission information to the second end node.

[0245] The delayed transmission information indicates the first time information at which the first end node sends the first data to the second end node. The delayed transmission information may be a data voucher, which is also used to verify the identity of the first end node. Figure 7 A schematic diagram of an example of a message format used for communication between a first end node and a second end node provided in an embodiment of the present application. Figure 7 As shown, the message format used for communication between the first end node and the second end node (e.g., delayed transmission information) includes: user identifier (peer ID), content identifier (content ID), message type (messagetype), length field, estimated repayment time (repayment time), and content data field. Exemplarily, the user identifier occupies 128 bits, the content identifier occupies 128 bits; the message type occupies 16 bits; the length field occupies 16 bits; the estimated repayment time (corresponding to the first time information) is 32 bytes; content data field. When encapsulating data, it is determined which fields need to be included based on the message type; for example, there is no estimated repayment time rt field and content data field in the first data acquisition request; the content data field does not need to be included in the data voucher (e.g., delayed transmission information).

[0246] Optionally, considering the situation in a distributed network where there are terminal devices that do not support this feature and are mixed with terminal devices that support this feature; the requesting end node (e.g., the second end node) may carry in the data request (e.g., the first data acquisition request) the capability information of whether it supports "delayed sending" of the requested content data (e.g., the first data), and whether it has received rt information (e.g., delayed transmission information) from the content provider (e.g., the first end node), to maintain the information of terminal devices that support this feature and terminal devices that do not support this feature in the network, so that the requested end node (e.g., the first end node) can give priority to sending data to terminal devices that support this feature when sending data, thereby avoiding transmission redundancy caused by multiple content transmissions.

[0247] 606. The first end node determines whether the second end node accepts the delayed transmission information.

[0248] If yes, go to step 607; if no, go to step 611.

[0249] 607. The first end node determines whether the first time has been reached.

[0250] The first time is the time when the first end node sends the first data to the second end node (corresponding to the first time information). If yes, execute step 608; if no, continue to execute step 607. It should be understood that if the first time is not reached, it is necessary to continue to wait until the first time is reached, that is, continue to execute step 607. In some embodiments, the first time is a time point, and judging whether the first time is reached can be judging whether this time point is reached. In some embodiments, the first time is a time period, and judging whether the first time is reached can be judging whether the starting moment of the first time is reached.

[0251] 608. The first end node sends first data to the second end node.

[0252] It should be understood that it is an ideal situation that the first end node sends the first data to the second end node at the first time, which requires that the first end node has sufficient resources to send the first data to the second end node when the first time is reached. In practical applications, the first end node may send the first data to the second end node after the first time.

[0253] 609. The first end node queries whether data vouchers for other end nodes to provide the first data to the first end node are stored.

[0254] If yes, go to step 610; if no, go to step 611.

[0255] 610. The first end node determines second delay time information according to the second time information.

[0256] The second time information is the estimated time information at which the first end node obtains the first data.

[0257] 611. The first end node ignores the first data acquisition request.

[0258] If the first end node does not have data credentials of other end nodes, the first data acquisition request of the second end node may be ignored. Optionally, the first end node may send a response message to the second end node indicating that the first end node does not have the first data.

[0259] From the perspective of the entire distributed network (including multiple requesting end nodes and multiple requested end nodes), the requesting end node (such as the second end node) can select a lightly loaded end node to send the required content to it, thereby balancing the end node load when transmitting data in the distributed network, improving the efficiency of obtaining data, and reducing the network load; the requested end node (such as the first end node) can delay sending data to the requesting end node when the load is heavy, and will only send data when it is sure that the requesting end node accepts its delayed transmission, thereby reducing redundant data transmission.

[0260] In an embodiment of the present application, the first end node sends delayed transmission information to the second end node indicating the delay in sending the first data to the second end node when the current load is heavy, and immediately sends the first data to the second end node when the load is light; this can reduce redundant transmission of data and improve transmission efficiency.

[0261] The above-mentioned embodiment introduces the operations performed by the requested end node (ie, the first end node) in the data transmission scheme. The following introduces the operations performed by the requesting end node (ie, the second end node) in the data transmission scheme.

[0262] Figure 8 Another data transmission method flow chart provided in the embodiment of the present application. Figure 8 As shown, the method includes:

[0263] 801. A second end node receives delayed transmission information from a first end node.

[0264] Step 801 corresponds to step 401. The delayed transmission information indicates the first time information at which the first end node sends the first data to the second end node. In some embodiments, the delayed transmission information is a data voucher, which indicates that the first end node sends the first time information of the first data to the second end node through the data voucher; the data voucher is also used to verify the identity of the first end node. In some embodiments, the first end node and the second end node may be any two different end nodes in the same distributed network (e.g., a mobile distributed network), or any two end nodes in a peer-to-peer network including multiple end nodes. In some embodiments, the first end node may be an end node serving as a server in a client / server structure, and the second end node may be an end node serving as a client in a client / server structure.

[0265] 802. The second end node sends a first message.

[0266] The first message is sent after receiving the delayed transmission information. The first message includes first indication information. The first indication information indicates that the second end node agrees with the first end node to send the first data.

[0267] In a possible implementation, the second end node may perform the following operations before executing step 802: the second end node determines to send the first message when the difference between the credit value of the first end node and the credit value of the third end node is greater than the credit threshold. The difference between the credit value of the second end node at the first end node and the credit value of the third end node refers to the credit value obtained by subtracting the credit value of the third end node from the credit value of the first end node. The credit threshold may be a threshold set according to actual needs, such as 0.2, 0.25, 0.3, etc., and the credit value range is between 0 and 1. In some embodiments, the delayed transmission information may be a data voucher for the first data to be sent by the first end node to the second end node. When the second end node stores the data voucher for the first data to be sent by the third end node to the second end node, it may compare the credit values ​​of the first end node and the third end node and choose to accept the data voucher with higher credit. That is to say, if the second end node does not store the first data locally, but the second end node stores data vouchers of other end nodes that are about to send the first data to the second end node locally, then the two data vouchers are compared, and the data voucher of the end node with higher credit is selected to be accepted. For example, the delayed transmission information is the data voucher of the first data to be sent by the first end node to the second end node, and the second end node stores the data voucher of the third end node to send the first data to the second end node. When the difference between the credit value of the first end node and the credit value of the third end node is greater than the credit threshold, the second end node determines to accept the data voucher of the first end node (i.e., delayed transmission information). For another example, the delayed transmission information is the data voucher of the first end node to send the first data to the second end node, and the second end node stores multiple data vouchers of multiple end nodes to send the first data to the second end node. The second end node compares the credit value of the first end node with the credit value of the reference end node with the highest credit value among the multiple end nodes. If the difference between the credit value of the first end node and the credit value of the reference end node is greater than the credit threshold, the data voucher of the first end node is determined to be accepted. In this implementation, the first end node selects an end node with a higher credit value to send the first data to it, which can improve the reliability of obtaining the first data.

[0268] In another possible implementation, the second end node may perform the following operations before executing step 802: the second end node determines to send the first message when the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than the credit threshold, and the first time is earlier than the second time; the fourth end node is the end node that the second end node agrees to send the first data to the second end node, the first time is the time when the first end node is to send the first data to the second end node, and the second time is the time when the fourth end node is to send the first data to the second end node. Optionally, the second end node obtains the credit value of the fourth end node when the voucher for the fourth end node to send the first data to the second end node is stored. It should be understood that if the second end node does not store the data voucher for other end nodes to send the first data to the second end node, then it is sufficient to directly accept the delayed transmission information, so it is necessary to query whether the data voucher for other end nodes to send the first data to the second end node is stored, so as to receive the first data faster. In some embodiments, the delayed transmission information may be a data voucher for the first end node to send the first data to the second end node. When the second end node stores the data voucher for the fourth end node to send the first data to the second end node, the second end node first compares the credit value of the first end node with the credit value of the fourth end node. When the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is not greater than the credit threshold, the second end node selects the data voucher with an earlier time of sending the first data to the second end node, for example, retaining the data voucher from the first end node and deleting the data voucher from the fourth end node. In some embodiments, the data voucher of the first end node (i.e., the delayed transmission information) and the data voucher of the fourth end node both carry a delayed sending time (corresponding to the first time information), and the second end node may choose to accept the data voucher with an earlier delayed sending time. For example, the data voucher of the first end node (i.e., delayed transmission information) indicates the first time (corresponding to the first time information) at which the first end node sends the first data to the second end node, and the data voucher of the fourth end node stored in the second end node indicates the second time at which the fourth end node sends the first data to the second end node. The second end node determines to accept the data voucher of the first end node when the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is not greater than the credit threshold and the first time is earlier than the second time. In this implementation, the second end node determines to accept the first end node with an earlier sending time when the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than the credit threshold, so that the required first data can be obtained more quickly.

[0269] In another possible implementation, the second end node may perform the following operation before executing step 802: the second end node determines to send the first message when no credential of any end node is stored to send the first data to the second end node. In this implementation, the second end node may promptly notify the first end node to send the first data to it.

[0270] Step 802 can be replaced by: 803, the second end node sends a second message, and the second message is sent after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to instruct the second end node to reject the first end node from sending the first data.

[0271] In a possible implementation, the second end node may perform the following operations before executing step 803: the second end node determines to send the second message when the absolute value of the difference between the credit value of the first end node and the credit value of the fifth end node is not greater than the credit threshold and the credit value of the first end node is less than the credit value of the fifth end node; the fifth end node is the end node that the second end node agrees to send the first data to the second end node. The credit threshold may be a real number greater than 0. In this implementation, the first end node selects an end node with a higher credit value to send the first data to it, which can improve the reliability of obtaining the first data.

[0272] In another possible implementation, the second end node may perform the following operations before executing step 803: the second end node determines to send the second message based on the difference between the credit value of the first end node and the credit value of the sixth end node, as well as the first time and the third time; the sixth end node is the end node agreed by the second end node to send the first data to the second end node, the first time is the time when the first end node is to send the first data to the second end node, and the third time is the time when the sixth end node is to send the first data to the second end node. The second end node determines to send the second message based on the difference between the credit value of the first end node and the credit value of the sixth end node, as well as the first time and the third time, which may be: the second end node determines to send the second message when the absolute value of the difference between the credit value of the first end node and the credit value of the sixth end node is not greater than the credit threshold and the first time is not earlier than the third time.

[0273] In this implementation, the credit value of the end node and the time of sending the first data are comprehensively considered to select which end node to accept the first data, so that both the speed and reliability of obtaining the first data can be taken into account.

[0274] In another possible implementation, the second end node may perform the following operation before executing step 803: the second end node determines to send the second message when the first data is stored. In this implementation, the second end node does not need the first end node to send the first data to it, and the first end node can be prevented from sending the first data to it.

[0275] In an embodiment of the present application, the second end node sends the first message according to the delayed transmission information, so as to obtain the required data more quickly; and sends the second message according to the delayed transmission information, so as to reduce redundant transmission of data.

[0276] Figure 8 The method flow in the description takes the second end node as an example to introduce the method flow executed by the requesting end node. It should be understood that in a distributed network including multiple requesting end nodes (such as the second end node) and multiple requested end nodes (such as the first end node), a requesting end node (such as the second end node) can accept one or at least two requested end nodes that can provide data to it faster (such as the fastest) among the multiple requested end nodes to provide data to it, and refuse other requested end nodes to provide data to it; in this way, the requesting end node can obtain the required data faster, and the requested end node can avoid redundant transmission of data. For example, the second end node sends a first data acquisition request to multiple requested end nodes (corresponding to the first end node), and the first data acquisition request is used to obtain the first data; M requested end nodes (including the first end node) receive the first data acquisition request and send a data voucher to the second end node, and the data voucher sent by each requested end node indicates the time when each requested end node sends the first data to the second end node, and M is an integer greater than 1; the second end node can select (corresponding to acceptance) a requested end node (for example, the end node that provides the first data to it the fastest or the end node with the highest credit value) from the M requested end nodes according to multiple data vouchers to provide it with the first data; the requested end node selected by the second end node provides the first data to the second end node, and other requested end nodes do not send the first data to the second end node. From the perspective of the entire distributed network, one end node or part of the multiple requested end nodes provide the data requested by the requesting end node to the requesting end node, and other requested end nodes do not provide data to the requesting end node. It should be understood that the requesting end node may select a requested end node with a lower end node load to provide data to it, thereby balancing the end node loads of the requested end nodes and reducing the network load.

[0277] In the embodiment of the present application, the second end node determines to accept or reject the first end node sending the first data to it, so as to obtain the required data more quickly and reduce the network load.

[0278] Fig. 9A flow chart of another data transmission method provided in an embodiment of the present application. Fig. 9 The method flow in is Figure 8 The refinement and improvement of the method flow in Fig. 9 As shown, the method includes:

[0279] 901. The second end node sends a first data acquisition request to the first end node.

[0280] The first data acquisition request is used to acquire first data.

[0281] 902. The second end node receives the target data certificate from the first end node.

[0282] The above-mentioned target data certificate can be the above-mentioned delayed transmission information, and the above-mentioned target data certificate indicates the above-mentioned first time information of sending the above-mentioned first data to the above-mentioned second end node; the above-mentioned data certificate is also used to verify the identity of the above-mentioned first end node.

[0283] 903. The second end node determines whether the first data is stored.

[0284] If yes, go to step 910 ; if no, go to step 904 .

[0285] 904. The second end node queries whether the second data voucher is stored.

[0286] If yes, execute step 905; if no, execute step 908. The second data voucher is the voucher for the fourth end node to send the second data to the first end node. To improve resource utilization and prevent redundant transmission, the requesting end node (e.g., the second end node) only retains one data voucher in a scenario with higher credibility (e.g., a home network), that is, it only requests data from one end node. To improve reliability, the requesting end node (e.g., the second end node) retains multiple data vouchers indicating delayed sending of the same data in a scenario with lower credibility (e.g., a home network), that is, it accepts requests from multiple end nodes to provide the same data to them.

[0287] 905. The second end node obtains the credit value of the first end node and the credit value of the fourth end node.

[0288] 906. The second end node determines whether the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is greater than the credit threshold.

[0289] If yes, go to step 907; if no, go to step 909.

[0290] 907. The second end node determines whether the credit value of the first end node is greater than the credit value of the fourth end node.

[0291] If yes, go to step 908; if no, go to step 910.

[0292] 908. The second end node determines to accept the target data certificate.

[0293] In some embodiments, after the second end node determines to accept the target data voucher, it can restart the content timer according to the first time information indicated by the target data voucher, and wait for the first end node to send data. For example, the second data voucher indicates that the delay time of the fourth end node sending the first data to the second end node is 3s. After the second end node determines to accept the second data voucher, it starts the content timer; the first time information is the delay time of the first end node sending the first data to the second end node. After the second end node determines to accept the target data voucher, it restarts the content timer (starting from 0 or starting from 2s) to determine whether the first end node sends the first data in time, and then updates the credit value of the first end node or re-requests the first data. When the second end node stores the second data voucher (that is, the second data voucher has been accepted), the second end node accepting the target data voucher can be understood as: the second end node updates the data voucher corresponding to the first data. In some embodiments, after the second end node accepts the target data voucher, the data voucher of other end nodes sending the first data to the second end node is deleted. The second end node can update the data voucher to obtain the required data faster.

[0294] Optionally, when the requesting end node (i.e., the second end node) determines to accept or reject the target data voucher, it can choose to use the ACK / NACK message mechanism to indicate acceptance or rejection of the target data voucher. Optionally, the second end node can also indicate acceptance or rejection of the target data voucher by means of ACK+timeout. For example, after the first end node sends the target data voucher, if it receives an ACK message (corresponding to the first message) from the second end node within 30ms, it indicates that the second end node accepts the target data voucher, and the first end node can send the first data when the target time arrives; conversely, if the ACK message is not received, it indicates that the second end node rejects the target data voucher, and the first end node does not have to send the first data to the second end node. Optionally, the second end node can also indicate acceptance or rejection of the target data voucher by means of NACK+timeout. For example, after the first end node sends the data target voucher, if it does not receive a NACK message from the second end node within 30ms, it indicates that the second end node accepts the target data voucher, and the first end node can send the first data when the target time arrives; conversely, if NACK is received, it indicates that the second end node rejects the target data voucher, and the first end node does not have to send the first data. Optionally, the second end node can also use the NACK+ACK method. For example, after the first end node sends the target data voucher, if it receives a NACK message (corresponding to the second message) from the second end node within 30ms, it means that the second end node rejects the target data voucher; if it receives an ACK message (corresponding to the first message) from the second end node within 30ms, it means that the second end node accepts the target data voucher, and the first end node sends the first data when the first time arrives; if the first end node does not receive the ACK message and the NACK message, it is regarded as packet loss, and the first data may not be sent according to the default configuration.

[0295] 909. The second end node determines whether the first time is earlier than the second time.

[0296] The first time is the time when the first end node is to send the first data to the second end node, and the target data certificate indicates the first time (corresponding to the first time information). The second time is the time when the fourth end node is to send the first data to the second end node, and the second data certificate indicates the second time. If yes, execute step 908; if no, execute step 910.

[0297] 910. The second end node ignores the target data certificate.

[0298] In the embodiment of the present application, the second end node may first compare the difference between the credit value C of the first end node and the credit value C' of the fourth end node. If the difference between C and C' is less than the credit threshold r, but the estimated sending time rt (i.e., the first time) corresponding to the target data voucher V is greater than the estimated sending time rt' (i.e., the second time) corresponding to the second data voucher V', then the target data voucher V is ignored, the second data voucher V' is retained, and the timer corresponding to rt' of the original V' remains unchanged to wait for data to be sent. Exemplarily, here rt' can be the remaining waiting time for the fourth end node corresponding to V' to send the first data.

[0299] 911. The second end node determines whether the first data is received within a first reference time period.

[0300] The above-mentioned first reference time period (corresponding to the target time period) can be a period of time including the first time (a time point) indicated by the above-mentioned target data voucher, or it can be a period of time indicated by the target data voucher. For example, the first time information carried by the target data voucher is the first time (a time point), the second end node accepts the target data voucher, and the first reference time period is a period of time including the first time. For another example, the first time information carried by the target data voucher indicates the first time (a time period), the second end node accepts the target data voucher, and the first reference time period is the first time. In some embodiments, after accepting a data voucher, the second end node can start the content timer to confirm whether the corresponding data is received within the agreed time (corresponding to the first reference time point). If so, execute step 912; if not, execute step 913.

[0301] 912. The second end node increases the credit value of the end node that sends the first data.

[0302] For example, the second end node accepts the target data certificate of the first end node, that is, accepts the first end node sending the first data to the second end node at the first time. If the second end node receives the first data from the first end node within the first reference time period, the credit value of the first end node is increased.

[0303] 913. The second end node determines whether the first data is received within a second reference time period.

[0304] The second reference time period is after the first reference time period and does not overlap with the first reference time period. The first reference time period and the second reference time period are both continuous time periods, and the starting time point of the second reference time period is not earlier than the ending time point of the first reference time period. For example, the first reference time period is from the third time point (starting time point) to the fourth time point (ending time point), and the second reference time period is from the fifth time point (starting time point) to the sixth time point (ending time point), and the fifth time point is not earlier than the fourth time point. If yes, execute step 914, if no, execute step 915.

[0305] In some embodiments, the second end node accepts the target data voucher of the first end node. After the second end node sends the first data (a data block), the first end node and the second end node have established a communication connection, with the first end node (i.e., the data sender) as the parent end node and the second end node (i.e., the data receiver) as the child end node. The first end node may default to the transmission of the next data block based on the established connection. After receiving a data block (e.g., the first data), the second end node continues to request data from the end node with which the connection has been established; if the data provider exits the network, the second end node will abandon the offline end node after waiting for a preset time (e.g., 200ms), and will re-search for the data provider (i.e., the end node that provides the data), and continue to request data from the data provider until all the data is received.

[0306] 914. The second end node reduces the credit value of the end node that sends the first data.

[0307] For example, the second end node accepts the target data certificate of the first end node, that is, accepts the first end node sending the first data to the second end node at the first time. If the second end node does not receive the first data from the first end node within the first reference time period and receives the first data from the first end node within the second reference time period, the credit value of the first end node is reduced.

[0308] 915. The second end node sends a fourth data acquisition request.

[0309] The fourth data acquisition request is used to acquire the first data. When the second end node does not receive the first data in the second reference time period, the second end node re-requests the first data.

[0310] In an embodiment of the present application, on the one hand, the second end node selects to accept data provided by one of the end nodes based on the credit value of each end node and / or the expected time of sending data, which can improve data acquisition efficiency and reliability; on the other hand, the credit value of the requested end node is updated according to whether the requested end node provides data to it in a timely manner, so as to facilitate the subsequent selection of data credentials of the end node with a higher credit value.

[0311] The data transmission methods implemented by the requested end node (e.g., the first end node) and the requesting end node (e.g., the second end node) are described above. In practical applications, a communication device may only perform operations performed by the requested end node (e.g., the first end node), that is, only act as a requested end node; it may also only perform operations performed by the requesting end node (e.g., the second end node), that is, only act as a requesting end node; it may also perform both operations performed by the requested end node (e.g., the first end node and operations performed by the requesting end node (e.g., the second end node), that is, act as both a requested end node and a requesting end node. For example, the first end node may provide the first data to the second end node as a requested end node, or may request data from other end nodes as a requesting end node. For another example, the second end node may request the first data from the first end node as a requesting end node, or may provide data to other end nodes as a requested end node.

[0312] When the requesting end node (e.g., the second end node) determines whether to accept the data provided by the requested end node (i.e., whether to accept the data certificate of the requested end node), it can refer to the credit value of the requested end node, which requires the requesting end node to accurately evaluate the credit value of each requested end node. The following describes a method for the requesting end node to manage the credit value of the requested end node.

[0313] Credit evaluation is used to evaluate the credit value of the requested end node in the distributed network. In order to prevent malicious end nodes from disrupting the normal data interaction in the distributed network, and to select network end nodes with better network conditions for data interaction. Each end node in the distributed network needs to evaluate the credit value of the end node with which it interacts. The credit value of each end node is an important reference for the requesting end node to determine whether to accept the data certificate of this end node. The following takes the example of the second end node managing the credit value of the first end node to introduce how each end node evaluates the credit value of the end node with which it interacts.

[0314] Optionally, the credit value calculation method of the end node in the distributed network is as follows:

[0315] credit=1 / (1+exp(θ-2θr)) (3);

[0316] Among them, credit represents the credit value of the first end node (corresponding to the requested end node), θ is a value set according to actual needs, for example, the default value is 8, so that the value range of credit is between 0 and 1; r is the proportion of the first end node fulfilling the agreement, that is, the ratio of the number of times the first end node sends data to the second end node at the scheduled time (also called on time) to the number of times the second end node accepts the data certificate of the first end node.

[0317] The proportion of the first end node fulfilling the agreement satisfies the following formula:

[0318] r=(n success +1) / (n total +1) (4);

[0319] Among them, n total The number of times the second end node accepts the data certificate of the first end node, n success The number of times the first end node sends data at the scheduled time (corresponding to the first reference time period) is recorded for the second end node.

[0320] Furthermore, each end node creates a local ledger to record and maintain the credit value of the end node interacting with it. The structure of the local ledger of the second end node is shown in Table 1 below.

[0321] Table 1

[0322]

[0323] Exemplarily, the local ledger may include five pieces of information: the peer ID of the end node, the number of times the second end node accepts the data certificate of the first end node, the number of times the first end node sends data on time, the fulfillment ratio r and the credit value credit.

[0324] When the requesting node receives the data certificate of a requested node, it can search for the record of the requested node in the local ledger. If there is no record, a new credit record of the requested node can be created.

[0325] If there is a record of the requested node in the local account book of the requesting node, the credit value of the requested node can be directly used to compare with the credit values ​​of other nodes to decide which requested node's data certificate to accept, and modify the number of data certificate acceptances of the corresponding node in the account book.

[0326] For example, the requesting node can start a timer based on the delayed sending time rt indicated by the data voucher to wait for receiving the required content data. If the data is sent on time (that is, the timer has not expired), the number of on-time data sending times of the corresponding node is modified in the account book, for example, the number of on-time data sending times is increased by 1, and the fulfillment ratio and credit value are recalculated; if the requesting node has not received the required data sent by the requested node when the timer expires, the fulfillment ratio r and the credit value credit are updated according to the updated data voucher acceptance times.

[0327] In particular, if the requesting node receives the required content directly (immediately) sent by the requested node, the number of on-time data transmission times of the requested node is increased by 1.

[0328] In the above, we take the example of the second end node managing the credit value of the first end node to introduce the scheme of how the end node evaluates the credit value of the end node interacting with itself. For an end node, the credit value of the requested end node interacting with itself evaluated by it is an important reference for whether it accepts the data certificate of this requested end node. In other words, the credit value of the requested end node interacting with itself evaluated by the requesting end node can help the requesting end node choose to receive data from a suitable end node (for example, a legal and well-functioning end node), thereby improving the security and robustness of the distributed network.

[0329] The embodiment of the present application takes into account the untrusted scenario where there are malicious end nodes. The requesting end node chooses which requested end node to accept the data certificate based on the credit value of each requested end node, thereby improving the system's anti-destruction ability. In addition, the present application adopts a mesh-pull distributed data distribution architecture, which is suitable for mobile distributed networks with dynamic end nodes. For example, the data transmission solution provided in the embodiment of the present application is suitable for scenarios where multiple terminals share files and high-definition videos. For example, file and high-definition video sharing between multiple terminals in a 1+8+N (mobile phone + wearable device + Internet of Things device) ecological local area network or an educational local area network.

[0330] The following is a schematic diagram of the structure of a communication device for implementing the data transmission method in the aforementioned embodiment. Fig.10 A schematic diagram of the structure of a communication device provided in an embodiment of the present application. Fig.10 The communication device in may be the first end node in the aforementioned embodiment. Fig.10 As shown, the communication device 100 includes:

[0331] The transceiver module 1001 is used to send delayed transmission information to the second end node; the delayed transmission information indicates the first time information at which the first end node sends the first data to the second end node;

[0332] Processing module 1002, used to determine that the second end node accepts the delayed transmission information;

[0333] The transceiver module 1001 is further configured to send the first data to the second end node at a target time through the transceiver module 1001 according to the first time information, where the target time is determined according to the first time information;

[0334] Alternatively, the processing module 1002 is configured to determine that the second end node rejects the delayed transmission information and cancel the transmission of the first data.

[0335] In a possible implementation, the processing module 1002 is further used to create a sending task for sending the first data to the second end node; the processing module 1002 is specifically used to cancel the sending task.

[0336] In a possible implementation, the processing module 1002 is specifically configured not to create a sending task for sending the first data to the second end node.

[0337] In one possible implementation, the processing module 1002 is specifically used to determine that the second end node accepts the delayed transmission information when the transceiver module 1001 receives a first message from the second end node; the first message is sent by the second end node after receiving the delayed transmission information; the first message includes first indication information, and the first indication information indicates that the second end node agrees that the first end node sends the first data.

[0338] Fig.10 The transceiver module 1001 in the embodiment can be one module or two independent modules. For example, the transceiver module 1001 is implemented by a transceiver. For another example, the transceiver module 1001 includes a sending module and a receiving module, the function of the sending module is implemented by the transmitter, and the function of the transceiver module is implemented by the receiver.

[0339] In one possible implementation, the processing module 1002 is specifically used to determine that the second end node accepts the delayed transmission information when the transceiver module 1001 does not receive a third message from the second end node within a first time period after the transceiver module 1001 sends the delayed transmission information; the third information includes third indication information, and the third indication information is used to indicate that the second end node rejects the first end node from sending the first data.

[0340] In one possible implementation, the processing module 1002 is specifically used to determine that the second end node rejects the delayed transmission information when the transceiver module 1001 receives a second message from the second end node, and the second message is sent by the second end node after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to indicate that the second end node rejects the first end node from sending the first data.

[0341] In one possible implementation, the processing module 1002 is specifically used to determine that the second end node rejects the delayed transmission information when the transceiver module 1001 does not receive the fourth message from the second end node within a second time period after the transceiver module 1001 sends the delayed transmission information; the fourth information includes fourth indication information, and the fourth indication information is used to indicate that the second end node agrees that the first end node sends the first data.

[0342] In a possible implementation, the delayed transmission information is a data certificate, which indicates that the first end node sends the first time information of the first data to the second end node through the data certificate; the data certificate is also used to verify the identity of the first end node.

[0343] In a possible implementation, the processing module 1002 is also used to determine the first delay time information according to the load amount; generate the above-mentioned delayed transmission information according to the above-mentioned first delay time information; the above-mentioned first time information is obtained according to the above-mentioned first delay time information, and the above-mentioned first delay time information is obtained according to the above-mentioned load amount.

[0344] In a possible implementation, the processing module determines the calculation method of the first delay time information according to the load as follows:

[0345]

[0346] Wherein, rt1 is the first delay time information, i represents the first end node, j represents the second end node, f and f′ are the file resources of end node i (i.e., the first end node), size(f) is the data volume of the first data, size(f′) is the data volume of the queue being processed by the first end node (i.e., the current data volume to be sent), and UB i is the transmission bandwidth of end node i (i.e., the bandwidth for sending data to other end nodes), D i,j It is the data transmission delay between end node i and end node j. This parameter generally has little impact and can be used as an optional parameter.

[0347] In a possible implementation, the processing module 1002 is specifically configured to determine the first delay time information according to the load when the first data is stored and the load is greater than a load threshold.

[0348] In a possible implementation, the processing module 1002 is also used to generate the delayed transmission information based on the second time information; the first time information is obtained based on the second time information; the second time information is the estimated time information of the first end node obtaining the first data.

[0349] In a possible implementation, the processing module 1002 is specifically used to determine the second delay time information according to the second time information; generate the delayed transmission information according to the second delay time information; and the first time information is obtained according to the second delay time information.

[0350] In a possible implementation, the processing module 1002 determines the calculation formula of the second delay time information according to the second time information as follows:

[0351]

[0352] Wherein, rt2 is the second delay time information, rt[i-1] is the estimated duration from the current moment to the moment when the first end node obtains the first data, i represents the first end node, j represents the second end node, f and f′ are the file resources of end node i, size(f) is the data volume of the first data, size(f′) is the data volume of the queue being processed by the first end node, and UB i is the sending bandwidth of end node i, D i,j It is the data transmission delay between end node i and end node j. This parameter generally has little impact and can be used as an optional parameter.

[0353] In a possible implementation, the transceiver module 1001 is further configured to receive a data request for obtaining second data; and the processing module 1002 is further configured to reject the data request if the second data is not stored and is not to be obtained.

[0354] In a possible implementation, the situation where the second data is not stored and is not yet to be obtained includes: the second data is not stored and the first data voucher is not stored; the first data voucher is a voucher for any end node to send the second data to the first end node.

[0355] Fig.11 A schematic diagram of the structure of another communication device provided in an embodiment of the present application. Fig.11 The communication device in may be the first end node in the aforementioned embodiment. Fig.11 As shown, the communication device 110 includes:

[0356] The communication module 1101 is used to receive and / or send messages, such as receiving a first data acquisition request (which may be referred to as a content request message), sending delayed transmission information (which may be understood as a response message to a content request message), receiving data vouchers from other end nodes (corresponding to the estimated time when other end nodes send the content), etc.

[0357] The message processing module 1102 is used to parse the received message or construct the message to be sent. For example, it parses the content request message (i.e., the first data acquisition request), parses the received first response or second response, constructs delayed transmission information, etc. In addition, this module is responsible for delivering the parsed message content to other modules for processing, such as determining how to respond to the content request message according to the load status after receiving the content request message, confirming how to process after receiving the data certificate, etc.

[0358] The content request processing module 1103 is used to confirm with the content management module whether the content data requested by this content data message exists after receiving the content request message; if so, obtain the current end node load of the local node from the load detection module, decide whether to send the content data in time or delay sending the content data according to the load situation, and is responsible for calculating the delayed sending time so as to send the data voucher to the requesting end node; if the requesting end node accepts the data voucher, transmit the data voucher to the data voucher management module for processing.

[0359] The content management module 1104 is used to manage the content data stored locally, and when receiving an indication from the data voucher management module that the time for delaying the sending of the content data has arrived, it sends the corresponding content data to the requesting end node.

[0360] The load detection module 1105 is used to monitor the current end node load, and when the content request processing module obtains the end node load, the current end node load is sent to the content request processing module.

[0361] The data voucher management module 1106 is used to store the data voucher of the content data related to the local node (the expected sending time of the corresponding content data). When the content request processing module generates a new data voucher, it is sent to this module for storage, and the timer is started according to the expected sending time to trigger the corresponding content data sending. It is also used to store the received data vouchers of other end nodes. When the content request processing module requests whether there is a data voucher corresponding to any content data, it is determined according to the content identifier. If it exists, the data vouchers of other end nodes are processed and sent to the content request processing module.

[0362] It should be understood that the communication module 1101 corresponds to Fig.10 The transceiver module 1001, the message processing module 1102, the content request processing module 1103, the content management module 1104, the load detection module 1105 and the data voucher management module 1106 in the embodiment all correspond to Fig.10 The processing module 1002 in. Fig.11 The structure in can be regarded as Fig.10 Further refinement of the structure in . Fig.10 and Fig.11 The communication device in the communication device can be a terminal device, such as a mobile phone, a tablet computer, a desktop computer, etc., or it can be a server.

[0363] Fig.12 A schematic diagram of the structure of another communication device provided in an embodiment of the present application. Fig.12 The communication device in may be the second end node in the aforementioned embodiment. Fig.12 As shown, the communication device 120 includes:

[0364] The transceiver module 1201 is configured to receive delayed transmission information from a first end node; the delayed transmission information indicates first time information at which the first end node sends first data to the second end node;

[0365] The transceiver module 1201 is further configured to send a first message generated by the processing module 1202, wherein the first message is sent after receiving the delayed transmission information, and the first message includes first indication information, wherein the first indication information indicates that the second end node agrees with the first end node to send the first data;

[0366] Alternatively, the transceiver module 1201 is also used to send a second message generated by the processing module 1202, and the second message is sent after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to instruct the second end node to reject the first end node from sending the first data.

[0367] In a possible implementation, the delayed transmission information is a data certificate, which indicates that the first end node sends the first time information of the first data to the second end node through the data certificate; the data certificate is also used to verify the identity of the first end node.

[0368] In one possible implementation, the processing module 1202 is also used to determine to send the first message when the credit value of the first end node is greater than the credit value of the third end node; the third end node is the end node agreed by the second end node to send the first data to the second end node.

[0369] In one possible implementation, the processing module 1202 is also used to determine to send the first message when the credit value of the first end node is greater than the credit value of the third end node, and the difference between the credit value of the first end node and the credit value of the third end node is greater than a credit threshold; the third end node is the end node that the second end node agrees to send the first data to the second end node.

[0370] In one possible implementation, the processing module 1202 is also used to determine to send the above-mentioned first message when the first time is earlier than the second time; the above-mentioned first time is the time when the first end node is about to send the above-mentioned first data to the above-mentioned second end node, the above-mentioned second time is the time when the fourth end node is about to send the above-mentioned first data to the above-mentioned second end node, and the above-mentioned fourth end node is the end node agreed by the above-mentioned second end node to send the above-mentioned first data to the above-mentioned second end node.

[0371] In a possible implementation, the processing module 1202 is specifically used to determine to send the first message when the absolute value of the difference between the credit value of the first end node and the credit value of the fourth end node is less than the credit threshold, and the first time is earlier than the second time.

[0372] In a possible implementation, the processing module 1202 is further configured to obtain the credit value of the fourth end node when a data voucher for the fourth end node to send the first data to the second end node is stored.

[0373] In a possible implementation, the processing module 1202 is further configured to determine to send the first message when no credential for any end node to send the first data to the second end node is stored.

[0374] In one possible implementation, the processing module 1202 is also used to determine to send the second message when the credit value of the first end node is not greater than the credit value of the fifth end node; the fifth end node is the end node agreed by the second end node to send the first data to the second end node.

[0375] In one possible implementation, the processing module 1202 is also used for, when the credit value of the first end node is not greater than the credit value of the fifth end node, and the absolute value of the difference between the credit value of the first end node and the credit value of the third end node is greater than the credit threshold, the second end node determines to send the second message; the fifth end node is the end node agreed by the second end node to send the first data to the second end node.

[0376] In one possible implementation, the processing module 1202 is also used to determine to send the above-mentioned second message when the first time is not earlier than the third time; the above-mentioned first time is the time when the above-mentioned first end node is to send the above-mentioned first data to the above-mentioned second end node, the above-mentioned third time is the time when the sixth end node is to send the above-mentioned first data to the above-mentioned second end node, and the above-mentioned sixth end node is the end node agreed by the above-mentioned second end node to send the above-mentioned first data to the above-mentioned second end node.

[0377] In one possible implementation, the processing module 1202 is specifically used to determine to send the second message when the absolute value of the difference between the credit value of the first end node and the credit value of the sixth end node is less than the credit threshold, and the first time is not earlier than the third time.

[0378] In one possible implementation, the processing module 1202 is also used to increase the credit value of the above-mentioned first end node when the above-mentioned first data is received from the above-mentioned first end node within a target time period; the above-mentioned target time period is obtained based on the above-mentioned first time information; when the above-mentioned first data is not received from the above-mentioned first end node within the above-mentioned target time period, reduce the credit value of the above-mentioned first end node.

[0379] Fig.13 A schematic diagram of the structure of a communication device provided in an embodiment of the present application. Fig.13 The communication device in may be the second end node in the aforementioned embodiment. Fig.13 As shown, the communication device 130 includes:

[0380] The communication module 1301 is used to receive and send messages, for example, to send a content request message (corresponding to a first data acquisition request), to send a first response or a second response, to receive content data (such as first data) sent by other end nodes, to receive data vouchers (such as delayed transmission information) for content request messages from other end nodes, etc.

[0381] Message processing module 1302: used to parse received messages or construct messages to be sent, such as constructing content request messages, constructing first responses or second responses, parsing delayed transmission information, etc. In addition, this module is responsible for delivering the parsed message content to other modules for processing, such as delivering content data to the content management module for processing after receiving it, and delivering data vouchers to the data voucher management module to determine how to respond after receiving it.

[0382] The content management module 1303 is used to manage and maintain local content data, including content data received from source data end nodes; trigger the message processing module to send content request messages to external end nodes according to the upper layer needs of the local end node. According to the data voucher of the required content data received, start the timer to confirm whether the corresponding content data is received within the specified time, so as to inform the credit management module to update the credit value of the corresponding end node; and decide whether it is necessary to re-trigger the content request message.

[0383] The data voucher management module 1304 is used to maintain and manage the data vouchers of the content related to the local node (the expected sending time of the corresponding content data); when the communication module 1301 receives a new data voucher, it is sent to this module for processing. The module determines whether to accept or reject this data voucher based on the credit value of the corresponding end node obtained from the credit management module, and informs the content management module of the expected arrival time of the required content data, so that the content management module can monitor whether the corresponding content data can be received within the specified time.

[0384] The credit management module 1305 is used to maintain and manage the credit value of the end node with which it communicates, and provide it to the data voucher management module to decide whether to accept / reject the data voucher of the corresponding end node.

[0385] It should be understood that the communication module 1301 corresponds to Fig.12 The transceiver module 1201, the message processing module 1302, the content management module 1303, the data voucher management module 1304 and the credit management module 1305 in the Fig.12 The processing module 1202 in. Fig.13 The structure in can be regarded as Fig.12 Further refinement of the structure in . Fig.10 and Fig.11 The communication device in the communication device can be a terminal device, such as a mobile phone, a tablet computer, a desktop computer, etc., or it can be a network device.

[0386] It should be understood that the division of each module in the communication device is only a division of logical functions. In actual implementation, it can be fully or partially integrated into one physical entity, or it can be physically separated. For example, the above modules can be a separate processing element, or they can be integrated in a chip of the terminal for implementation. In addition, they can also be stored in the storage element of the controller in the form of program code, and called and executed by a processing element of the processor. The functions of the above modules. In addition, the modules can be integrated together or implemented independently. The processing element here can be an integrated circuit chip with signal processing capabilities. In the implementation process, the steps of the above method or the above modules can be completed by hardware integrated logic circuits in the processor element or software instructions. The processing element can be a general processor, such as a network processor or a central processing unit (CPU), or it can be one or more integrated circuits configured to implement the above method, such as one or more specific integrated circuits (ASIC), or one or more microprocessors (DSP), or one or more field programmable gate arrays (FPGA).

[0387] Fig.14 A schematic diagram of the structure of a communication device provided in an embodiment of the present application. Fig.14 The communication device in the communication protocol may be the first end node mentioned above or the second end node.

[0388] like Fig.14As shown. The communication device 140 includes at least one processor 1420, which is used to implement the function of the first end node in the method provided in the embodiment of the present application; or, it is used to implement the function of the second end node in the method provided in the embodiment of the present application. The communication device 140 may also include a transceiver 1410. The transceiver 1410 is used to communicate with other devices / devices through a transmission medium. The processor 1420 uses the transceiver 1410 to send and receive data and / or signaling, and is used to implement the method in the above method embodiment.

[0389] Optionally, the communication device 140 may further include at least one memory 1430 for storing program instructions and / or data. The memory 1430 is coupled to the processor 1420. The coupling in the embodiment of the present application is an indirect coupling or communication connection between devices, units or modules, which may be electrical, mechanical or other forms, and is used for information exchange between devices, units or modules. The processor 1420 may operate in conjunction with the memory 1430. The processor 1420 may execute program instructions stored in the memory 1430. At least one of the at least one memory may be included in the processor.

[0390] The specific connection medium between the transceiver 1410, the processor 1420 and the memory 1430 is not limited in the embodiment of the present application. Fig.14 The memory 1430, the processor 1420 and the transceiver 1410 are connected via a bus 1440. Fig.14 The connection between other components is only for illustration and is not intended to be limiting. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.14 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0391] In the embodiments of the present application, the processor may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, and may implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.

[0392] It can be understood that when the communication device 140 is a first end node, the transceiver 1410 implements the function of the transceiver module 1001, and the processor 1420 implements the function of the processing module 1002. Alternatively, when the communication device 140 is a first end node, the transceiver 1410 implements the function of the communication module 1101, and the processor 1420 implements the functions of the message processing module 1102, the content request processing module 1103, the content management module 1104, the load detection module 1105, and the data voucher management module 1106. When the communication device 140 is a second end node, the transceiver 1410 implements the function of the transceiver module 1201, and the processor 1420 implements the function of the processing module 1202. Alternatively, when the communication device 140 is a second end node, the transceiver 1410 implements the function of the communication module 1301, and the processor 1420 implements the functions of the message processing module 1302, the content management module 1303, the data voucher management module 1304, and the credit management module 1305.

[0393] The present application also provides a computer-readable storage medium, in which computer codes are stored. When the computer codes are executed on a computer, the computer executes the method of the above embodiment.

[0394] The present application also provides a computer program product, which includes a computer code or a computer program. When the computer code or the computer program runs on a computer, the data transmission method in the above embodiment is executed.

[0395] The present application also provides a communication system, comprising the above-mentioned first end node and the above-mentioned second end node.

[0396] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the above claims.

Claims

1. A data transmission method, characterized in that: include: The first end node sends delayed transmission information to the second end node; The delayed transmission information indicates first time information at which the first end node will send first data to the second end node; The first end node determines that the second end node accepts the delayed transmission information; The first end node sends the first data to the second end node at a target time according to the first time information, and the target time is determined according to the first time information; or, the first end node determines that the second end node rejects the delayed transmission information, and the first end node cancels the transmission of the first data.

2. The method according to claim 1, characterized in that: The first end node determining that the second end node accepts the delayed transmission information includes: The first end node receives a first message from the second end node, where the first message is sent by the second end node after receiving the delayed transmission information; The first message includes first indication information, where the first indication information indicates that the second end node agrees that the first end node sends the first data.

3. The method according to claim 1, characterized in that The first end node determining that the second end node rejects the delayed transmission information includes: The first end node receives a second message from the second end node, where the second message is sent by the second end node after receiving the delayed transmission information; The second message includes second indication information, where the second indication information is used to instruct the second end node to reject the first end node from sending the first data.

4. The method according to any one of claims 1 to 3, characterized in that: The delayed transmission information is a data voucher, which indicates through the data voucher that the first end node sends the first time information of the first data to the second end node; the data voucher is also used to verify the identity of the first end node.

5. The method according to any one of claims 1 to 3, characterized in that: Before the first end node sends the delayed transmission information to the second end node, the method further includes: The first end node determines first delay time information according to the load; the first delay time information is obtained according to the load; The first end node generates the delayed transmission information according to the first delay time information; the first time information is acquired according to the first delay time information.

6. The method according to claim 5, characterized in that The first end node determines the first delay time information according to the load, including: The first end node determines the first delay time information according to the load when the first data is stored and the load is greater than a load threshold.

7. The method according to any one of claims 1 to 3, characterized in that: Before the first end node sends the delayed transmission information to the second end node, the method further includes: The first end node generates the delayed transmission information according to the second time information; the first time information is obtained according to the second time information; the second time information is the estimated time information at which the first end node obtains the first data.

8. A data transmission method, characterized in that: include: The second end node sends a first message, the first message is sent after receiving the delayed transmission information, the delayed transmission message is sent by the first end node, the delayed transmission information indicates first time information that the first end node will send first data to the second end node, the first message includes first indication information, and the first indication information indicates that the second end node agrees that the first end node sends the first data; Alternatively, the second end node sends a second message, which is sent after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to instruct the second end node to reject the first end node from sending the first data.

9. The method according to claim 8, characterized in that The delayed transmission information is a data voucher, which indicates through the data voucher that the first end node sends the first time information of the first data to the second end node; the data voucher is also used to verify the identity of the first end node.

10. The method according to claim 8 or 9, characterized in that: Before the second end node sends the first message, the method further includes: When the credit value of the first end node is greater than the credit value of the third end node, the second end node determines to send the first message; the third end node is the end node that the second end node agrees to send the first data to the second end node.

11. The method according to claim 8 or 9, characterized in that: Before the second end node sends the first message, the method further includes: When the first time is earlier than the second time, the second end node determines to send the first message; the first time is the time when the first end node is going to send the first data to the second end node, the second time is the time when the fourth end node is going to send the first data to the second end node, and the fourth end node is the end node that the second end node agrees to send the first data to the second end node.

12. The method according to claim 8 or 9, characterized in that: Before the second end node sends the second message, the method further includes: When the credit value of the first end node is not greater than the credit value of the fifth end node, the second end node determines to send the second message; the fifth end node is the end node that the second end node agrees to send the first data to the second end node.

13. The method according to claim 8 or 9, characterized in that: Before the second end node sends the second message, the method further includes: When the first time is not earlier than the third time, determine to send the second message; the first time is the time when the first end node is to send the first data to the second end node, the third time is the time when the sixth end node is to send the first data to the second end node, and the sixth end node is the end node agreed by the second end node to send the first data to the second end node.

14. The method according to claim 10, characterized in that After the second end node receives the delayed transmission information from the first end node, the method further includes: When the second end node receives the first data from the first end node within a target time period, the credit value of the first end node is increased; the target time period is obtained according to the first time information; If the second end node fails to receive the first data from the first end node within the target time period, the credit value of the first end node is reduced.

15. A communication device, characterized in that: include: A transceiver module, used for sending delayed transmission information to the second end node; The delayed transmission information indicates first time information of the first end node sending the first data to the second end node; A processing module is used to determine whether the second end node accepts the delayed transmission information; instruct the transceiver module to send the first data to the second end node at a target time according to the first time information, and the target time is determined according to the first time information; or, the processing module is used to determine whether the second end node rejects the delayed transmission information and cancels the transmission of the first data.

16. The communication device according to claim 15, characterized in that: The processing module is specifically used to determine that the second end node accepts the delayed transmission information when the transceiver module receives a first message from the second end node, and the first message is sent by the second end node after receiving the delayed transmission information; the first message includes first indication information, and the first indication information indicates that the second end node agrees that the first end node sends the first data.

17. The communication device according to claim 15, characterized in that: The processing module is specifically used to determine that the second end node rejects the delayed transmission information when the transceiver module receives a second message from the second end node, and the second message is sent by the second end node after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to indicate that the second end node rejects the first end node from sending the first data.

18. The communication device according to any one of claims 15 to 17, characterized in that: The delayed transmission information is a data voucher, which indicates through the data voucher that the first end node sends the first time information of the first data to the second end node; the data voucher is also used to verify the identity of the first end node.

19. The communication device according to any one of claims 15 to 17, characterized in that: The processing module is also used to determine the first delay time information according to the load amount; the first delay time information is obtained according to the load amount; the delayed transmission information is generated according to the first delay time information; the first time information is obtained according to the first delay time information.

20. The communication device according to claim 19, characterized in that The processing module is specifically configured to determine the first delay time information according to the load when the first end node stores the first data and the load is greater than a load threshold.

21. The communication device according to any one of claims 15 to 17, characterized in that: The processing module is also used to generate the delayed transmission information according to the second time information; the first time information is obtained according to the second time information; the second time information is the estimated time information of the first end node obtaining the first data.

22. A communication device, characterized in that: include: A transceiver module, configured to receive delayed transmission information from a first end node, wherein the delayed transmission information indicates first time information at which the first end node sends first data to a second end node; The transceiver module is further used to send a first message, which is sent after receiving the delayed transmission information, and the first message includes first indication information, and the first indication information indicates that the second end node agrees that the first end node sends the first data; or, the transceiver module is further used to send a second message, which is sent after receiving the delayed transmission information; the second message includes second indication information, and the second indication information is used to indicate that the second end node refuses the first end node to send the first data.

23. The communication device according to claim 22, characterized in that: The delayed transmission information is a data voucher, which indicates through the data voucher that the first end node sends the first time information of the first data to the second end node; the data voucher is also used to verify the identity of the first end node.

24. The communication device according to claim 22 or 23, characterized in that: Also includes: A processing module, configured to determine to send the first message when the credit value of the first end node is greater than the credit value of the third end node; The third end node is an end node agreed by the second end node to send the first data to the second end node.

25. The communication device according to claim 22 or 23, characterized in that: Also includes: A processing module, configured to determine to send the first message when the first time is earlier than the second time; The first time is the time when the first end node is going to send the first data to the second end node, the second time is the time when the fourth end node is going to send the first data to the second end node, and the fourth end node is the end node that the second end node agrees to send the first data to the second end node.

26. The communication device according to claim 22 or 23, characterized in that: Also includes: a processing module, configured to determine to send the second message when the credit value of the first end node is not greater than the credit value of the fifth end node; The fifth end node is an end node agreed by the second end node to send the first data to the second end node.

27. The communication device according to claim 22 or 23, characterized in that: Also includes: A processing module, configured to determine to send the second message when the first time is not earlier than the third time; The first time is the time when the first end node is to send the first data to the second end node, the third time is the time when the sixth end node is to send the first data to the second end node, and the sixth end node is the end node agreed by the second end node to send the first data to the second end node.

28. The communication device according to claim 24, characterized in that The processing module is also used to increase the credit value of the first end node when the first data is received from the first end node within a target time period; the target time period is obtained based on the first time information; and to reduce the credit value of the first end node when the first data is not received from the first end node within the target time period.

29. A communication device, characterized in that: include: Processor and memory; The memory is used to store computer-executable instructions; The processor is configured to execute the computer-executable instructions stored in the memory, so that the communication device executes the method according to any one of claims 1 to 7.

30. A communication device, characterized in that: include: Processor and memory; The memory is used to store computer-executable instructions; The processor is configured to execute the computer-executable instructions stored in the memory, so that the communication device executes the method according to any one of claims 8 to 14.

31. A computer-readable storage medium, characterized in that: The computer-readable storage medium is used to store instructions, and when the instructions are executed, the method according to any one of claims 1 to 7 is implemented.

32. A computer-readable storage medium, characterized in that: The computer-readable storage medium is used to store instructions, and when the instructions are executed, the method according to any one of claims 8 to 14 is implemented.

Citation Information

Patent Citations

  • Scheduling data transfers for multiple use requests

    US20040151187A1