A data transmission method and apparatus

The method aligns sender and receiver times using time stamps and probe packets to ensure deterministic and timely data delivery in time-sensitive applications without clock synchronization, addressing synchronization issues and delays in existing technologies.

CN116055023BActive Publication Date: 2025-07-15ZHEJIANG DAHUA TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310003682.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-01-03
Publication Date
2025-07-15
Estimated Expiration
2043-01-03

AI Technical Summary

Technical Problem

Without the need for clock synchronization between the sending and receiving ends, how to ensure the delay deterministic transmission of time-sensitive service data packets and ensure that data is submitted to the upper-level user within the accurately defined bounded delay range.

Method used

By periodically sending detection data packets carrying timestamps and sequence numbers, the time deviation between the sending and receiving ends is calculated, the local time stamp is used to align the time of the transceiver and receiving device, the delay of the service data packet is judged, and whether it is valid or retransmission is determined based on the delay.

Benefits of technology

It realizes that data packets are transmitted within the bounded delay range without the need for device clock synchronization, ensures data timeliness and flexibility, and improves the control reliability of user data between devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116055023B_ABST
    Figure CN116055023B_ABST
Patent Text Reader

Abstract

The present application discloses a data transmission method and apparatus, which can ensure the delay-deterministic transmission of service data packets without requiring the clock synchronization between the sending end and the receiving end, so that the data delivered by the receiving end to the upper-layer user is guaranteed to be timely within a precisely defined bounded delay range. The data transmission method provided by the present application includes: obtaining the current time deviation between the sending end and the receiving end of the data packet, where the current time deviation is determined based on the difference between the reception time intervals of multiple probe data packets at the receiving end and the transmission time intervals at the sending end; when receiving a service data packet, using the current time deviation to determine the time delay of the service data packet, and determining whether the service data packet is valid according to the time delay.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] For time-sensitive services such as process control, motion control, and in-vehicle networks, there are high deterministic requirements for latency. For example, if the signaling latency of a camera pan-tilt control is too large, the pan-tilt rotation may not keep up with the control frequency, or the control has ended but the pan-tilt is still in the process of rotation adjustment. In manufacturing, a tiny deviation can lead to accidents. Therefore, it is necessary to ensure the deterministic transmission of time-sensitive data such as control and real-time operation and maintenance data. Summary of the Invention

[0003] Embodiments of this application provide a data transmission method and apparatus, which can ensure the deterministic transmission of service data packets without requiring the clock synchronization of the sender and the receiver, so that the data delivered by the receiver to the upper-layer user is within a precisely defined bounded delay range, ensuring the timeliness of the data.

[0004] At the receiver, a data transmission method provided by an embodiment of this application includes:

[0005] Obtain the current time deviation between the sender and the receiver of the data packet, where the current time deviation is determined based on the difference between the reception time intervals of multiple probe data packets at the receiver and the transmission time intervals at the sender;

[0006] When a service data packet is received, use the current time deviation to determine the latency of the service data packet, and determine whether the service data packet is valid according to the latency.

[0007] By this method, obtain the current time deviation between the sender and the receiver of the data packet, where the current time deviation is determined based on the difference between the reception time intervals of multiple probe data packets at the receiver and the transmission time intervals at the sender; thus, without requiring the clock synchronization of the sender and the receiver, based on the difference between the reception time intervals of multiple probe data packets at the receiver and the transmission time intervals at the sender, that is, by taking the difference between the local times of the sender and the receiver, an accurate latency can be obtained, achieving time alignment between the sender and the receiver; when a service data packet is received, use the current time deviation to determine the latency of the service data packet, and determine whether the service data packet is valid according to the latency, thereby ensuring the deterministic transmission of the service data packet, so that the data delivered by the receiver to the upper-layer user is within a precisely defined bounded delay range, ensuring the timeliness of the data.

[0008] In some embodiments, the current time deviation is periodically determined in the following manner:

[0009] Periodically determine the set of absolute difference samples of the time offset between the sending end and the receiving end; wherein, for any absolute difference of the time offset in the sample set, it is determined by the difference between the receiving time interval of the consecutive plurality of probe data packets at the receiving end and the sending time interval at the sending end;

[0010] Take the minimum value of the absolute difference of the time offset in the sample set as the current time deviation between the sending end and the receiving end.

[0011] In some embodiments, for any absolute difference of the time offset in the sample set, it is determined in the following manner:

[0012] Determine the sending time interval between two consecutive probe data packets sent by the sending end, and the receiving time interval of the two consecutive probe data packets at the receiving end;

[0013] Take the difference between the receiving time interval and the sending time interval of the two consecutive probe data packets as the absolute difference of the time offset corresponding to the two consecutive probe data packets between the sending end and the receiving end.

[0014] In some embodiments, using the current time deviation to determine the delay of the service data packet includes:

[0015] Subtract the sending time of the service data packet at the sending end from the receiving time of the service data packet at the receiving end, and then add the current time deviation, and take the obtained value as the delay of the service data packet.

[0016] In some embodiments, judging whether the current data packet is valid according to the delay includes:

[0017] If the delay is less than a preset threshold, determine that the service data packet is valid and send it to the upper-layer user for processing;

[0018] Otherwise, determine that the service data packet is invalid, discard the service data packet or notify the sending end to re-send the service data packet.

[0019] At the sending end, a data transmission method provided by an embodiment of the present application includes:

[0020] Periodically send probe data packets, carrying the identifier of the probe data packet and the transmission timestamp at the sending end, so that the receiving end determines the current time deviation between the sending end and the receiving end based on the difference between the receiving time intervals of multiple probe data packets at the receiving end and the sending time intervals at the sending end;

[0021] Send service data packets according to service requirements, which carry the transmission timestamp and identifier of the service data packet.

[0022] In some embodiments, the service data packet also carries an indication identifier indicating whether to discard or retransmit when the service data packet expires;

[0023] When receiving a retransmission request for the service data packet sent by the receiving end, re-send the service data packet.

[0024] Another embodiment of the present application provides a data transmission device, which includes a memory and a processor. Among them, the memory is used to store program instructions, and the processor is used to call the program instructions stored in the memory and execute any of the above methods according to the obtained program.

[0025] In addition, according to an embodiment, for example, a computer program product for a computer is provided, which includes software code portions. When the product runs on a computer, these software code portions are used to execute the steps of the method defined above. The computer program product may include a computer-readable medium on which the software code portions are stored. In addition, the computer program product can be directly loaded into the internal memory of the computer and / or sent via at least one of an upload process, a download process, and a push process via a network.

[0026] Another embodiment of the present application provides a computer-readable storage medium, which stores computer-executable instructions for causing the computer to execute any of the above methods. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for the description of the embodiments. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0028] Figure 1 It is a schematic diagram of the data transmission system architecture provided by the embodiment of the present application;

[0029] Figure 2 It is a general flowchart of the data transmission method of the system provided by the embodiment of the present application;

[0030] Figure 3 Schematic diagram of periodically transmitting detection data packets provided by an embodiment of the present application;

[0031] Figure 4 Specific process schematic diagram of the data transmission method of the system provided by an embodiment of the present application;

[0032] Figure 5 Specific process schematic diagram of the data transmission method of the sending end provided by an embodiment of the present application;

[0033] Figure 6 Specific process schematic diagram of the data transmission method of the receiving end provided by an embodiment of the present application;

[0034] Figure 7 Overall process schematic diagram of a data transmission method of the receiving end provided by an embodiment of the present application;

[0035] Figure 8 Overall process schematic diagram of a data transmission method of the sending end provided by an embodiment of the present application;

[0036] Figure 9 Schematic diagram of the structure of a data transmission device provided by an embodiment of the present application;

[0037] Figure 10 Schematic diagram of the structure of another data transmission device provided by an embodiment of the present application. Detailed implementation manners

[0038] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present application without creative efforts shall fall within the protection scope of the present application.

[0039] An embodiment of the present application provides a data transmission method and device, which can ensure the delay-deterministic transmission of service data packets without requiring the clock synchronization of the sending end and the receiving end, so that the data delivered by the receiving end to the upper-layer user is within an accurately defined bounded delay range, ensuring the timeliness of the data.

[0040] Among them, the method and the device are based on the same inventive concept. Since the principles of solving problems by the method and the device are similar, the implementation of the device and the method can be referred to each other, and the repeated parts will not be described again.

[0041] In the description, claims, and above-mentioned drawings of the embodiments of the present application, the terms "first", "second", etc. (if any) are used to distinguish similar objects and do not necessarily describe a specific order or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances so that the embodiments described herein can be implemented in an order different from that shown or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device that includes a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to these processes, methods, products, or devices.

[0042] The following examples and embodiments are to be understood only as illustrative examples. Although this specification may refer to "one", "a", or "some" examples or embodiments in several places, this does not mean that each such reference relates to the same example or embodiment, nor does it mean that the feature applies only to a single example or embodiment. The individual features of different embodiments can also be combined to provide other embodiments. In addition, terms such as "including" and "comprising" should be understood not to limit the described embodiments to only the features mentioned; such examples and embodiments may also include features, structures, units, modules, etc. that are not specifically mentioned.

[0043] The technical solutions provided by the embodiments of the present application can be applicable to various systems, especially 5G systems. For example, the applicable systems can be Global System of Mobile communication (GSM) systems, Code Division Multiple Access (CDMA) systems, Wideband Code Division Multiple Access (WCDMA) General Packet Radio Service (GPRS) systems, Long Term Evolution (LTE) systems, LTE Frequency Division Duplex (FDD) systems, LTE Time Division Duplex (TDD), Universal Mobile Telecommunication System (UMTS), Worldwide interoperability for Microwave Access (WiMAX) systems, 5G systems, and 5G NR systems, etc. Both terminal devices and network devices are included in these various systems.

[0044] The transmitter and receiver involved in the embodiments of the present application can be terminal devices, which can be devices that provide voice and / or data connectivity to users, handheld devices with wireless connection functions, or other processing devices connected to a wireless modem. In different systems, the names of terminal devices may also be different. For example, in a 5G system, a terminal device can be called a user equipment (UE). The wireless terminal device can communicate with one or more core networks via the RAN. The wireless terminal device can be a mobile terminal device, such as a mobile phone (or a "cellular" phone) and a computer with a mobile terminal device. For example, it can be a portable, pocket-sized, handheld, computer-integrated, or vehicle-mounted mobile device, which exchanges language and / or data with the radio access network. For example, devices such as personal communication service (PCS) phones, cordless phones, session initiated protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), cameras, etc. The wireless terminal device can also be called a system, a subscriber unit, a subscriber station, a mobile station, a mobile, a remote station, an access point, a remote terminal device, an access terminal device, a user terminal device, a user agent, a user device, which is not limited in the embodiments of the present application.

[0045] The transmitter and receiver involved in the embodiments of the present application can also be network devices, such as base stations, cloud platform servers, etc. The base station can include multiple cells. According to different specific application scenarios, the base station can also be called an access point, or it can refer to a device in the access network that communicates with wireless terminal devices through one or more sectors on the air interface, or other names. The network device can be used to mutually convert the received air frames and Internet Protocol (IP) packets, and act as a router between the wireless terminal device and the rest of the access network, where the rest of the access network can include an Internet Protocol (IP) communication network. The network device can also coordinate the attribute management of the air interface. For example, the network device involved in the embodiments of the present application can be a network device (Base Transceiver Station, BTS) in a Global System for Mobile Communications (GSM) or Code Division Multiple Access (CDMA), or a network device (NodeB) in a Wideband Code Division Multiple Access (WCDMA), or an evolved network device (evolutional Node B, eNB or e-NodeB) in a Long Term Evolution (LTE) system, a 5G base station in a 5G network architecture (next generation system), or a Home evolved Node B (HeNB), a relay node, a femto, a pico, etc. The embodiments of the present application do not limit this.

[0046] The following describes each embodiment of the present application in detail with reference to the accompanying drawings of the specification. It should be noted that the display order of the embodiments of the present application only represents the sequence of the embodiments, and does not represent the superiority or inferiority of the technical solutions provided by the embodiments.

[0047] The embodiments of the present application mainly relate to the field of time-sensitive deterministic application transmission, such as audio and video communication, vehicle-mounted communication, automation control, etc., which have high requirements for real-time performance and determinism, and provide a deterministic application transmission guarantee technology to ensure the timeliness of user data between devices.

[0048] For time-sensitive services such as process control, motion control, and in-vehicle networks, there are very high deterministic requirements for latency. For example, for a high-speed train traveling at 300 km / h, a deviation of 0.1 s can reach a distance of 8 m, which has very high latency deterministic requirements for the vehicle-mounted and central networks. Secondly, for the periodically updated position information, for data that does not meet the latency deterministic requirements, it can be transmitted again in the next cycle. However, for control information that requires both timeliness and determinism to be reliable, it is required to be immediately updated and retransmitted again when the latency requirement is not met. Therefore, it is very necessary to maintain the latency determinism and reliability of time-sensitive data such as control and real-time operation and maintenance.

[0049] The TSN network (Time-Sensitive Network) adds determinism and reliability to the standard Ethernet to ensure real-time, deterministic, and reliable data transmission. However, there are many protocol specifications for fieldbuses and industrial Ethernet in the industrial field, and the TSN network has not yet reached the stage of commercial popularity. Moreover, the determinism at the network level cannot guarantee the determinism at the user data level. Therefore, certain means are still needed to ensure bounded latency to guarantee the determinism of user data.

[0050] Therefore, in the embodiments of this application, it is proposed that by using periodic probe packets to align the local time difference between the sending and receiving ends, and through the packet sending timestamp, receiving timestamp, and the time difference between the two ends, the packet sending and queuing delays are calculated. For packets with delays outside the deterministic time range, they are either discarded or retransmitted after the sender refreshes the data, thereby ensuring that the data delivered to the application is within the delay determination range. Therefore, the embodiments of this application do not rely on the support of other devices or networks to ensure the delay determinism of user data between devices; moreover, without the need for clock synchronization between the sending and receiving devices, it ensures that the data delivered to the upper-layer users is within the precisely defined bounded delay range.

[0051] In the embodiments of this application, the implementation entities include a sending end, a receiving end, and an intermediate network, as Figure 1 shown. The overall solution process is divided into two parts: inherent network delay measurement and relative time alignment of the sending and receiving devices; ensuring and processing the determinism of user data.

[0052] The overall data transmission solution process, as Figure 2 shown, includes:

[0053] Step 1: The sending end periodically sends probe data packets carrying timestamp and sequence number information; after receiving the probe data packets, the receiving end calculates the inherent network delay to obtain the relative time offset independent of the network between the sending and receiving ends, that is, the time deviation between the sending end and the receiving end.

[0054] Step 2: The sending end sends service data packets carrying the sending timestamp, sequence number, discard or retransmission flag according to the service needs to the receiving end. After receiving the service data packets, the receiving end judges the data timeliness, that is, judges whether the service data packets are valid.

[0055] Step 3: If the received data packets at the receiving end are valid, they are delivered to the application for processing.

[0056] Step 4: If the received data packets at the receiving end are invalid, according to the discard or retransmission flag in the data packets, they are discarded or a retransmission request is sent according to the sequence number of the data packets (optionally, the discard or retransmission is decided by the sending end).

[0057] Step 5: The sender receives the retransmission request, updates the local data according to the packet retransmission sequence number, and then resends the data. See below. See below

[0058] The following introduces the measurement of the inherent network delay and the alignment of the relative time between the transceiver devices.

[0059] Regarding the relative time alignment between the sender and the receiver, that is, regarding how to determine the time deviation between the sender and the receiver, the introduction is as follows:

[0060] The delay of the data packet from the sender to the receiver consists of the inherent network transmission delay, the delay introduced by network transit, and the service delay introduced by application processing, etc.

[0061] Network inherent delay: When transmitting a 1KB data packet with a bandwidth of 1Mbps, the transmission inherent delay is 1KB / 1Mbps = 8ms;

[0062] Network transit delay: The delay introduced by caching in the network element when the data packet is forwarded by the intermediate network element;

[0063] Application processing delay: The service delay introduced by service reception + caching + processing, etc.

[0064] As Figure 3 shown, the sender sends a data packet at time t1, and the time to reach the receiver is at least t1' at the network inherent delay, plus the delay introduced by other network elements and application processing in the network. The actual time to reach the receiver is T1. Since the time between the sender and the receiver cannot be directly subtracted to calculate the delay (the sender and the receiver do not have time synchronization or the time synchronization granularity is large), the accurate delay value after the data packet reaches the peer cannot be determined. However, the accurate delay can be obtained by taking the difference between the local times of the sender and the receiver. Therefore, this method can be used to align the time between the sender and the receiver.

[0065] Calculation method:

[0066] The sender periodically sends time alignment probe packets (abbreviated as probe data packets) for time alignment between the sender and the receiver (that is, for determining the time deviation between the sender and the receiver):

[0067] For example, for data packets 1 and 2 sent from the sender to the receiver, the packet sending interval at the sender is Δ1 = t2 - t1, and the receiving time interval at the receiver is Δ1' = T2 - T1; when there is no other delay except the network inherent delay between the two, Δ1 and Δ1' always tend to be equal. At this time, the measured time offset between the two is the difference between their timestamps.

[0068] As Figure 3As shown in the figure, the time offset between the data packet 1 and the data packet 2 sent by the sending end is Δ1 = t2 - t1. The time offset between the data packet 1 and the data packet 2 received by the "receiving end" is Δ1' = T2 - T1. The absolute difference of the offset is ΔT1 = abs(Δ1' - Δ1). If there is no network delay introduced, ΔT1 should approach 0 infinitely. If the network delay increases (Δ1' > Δ1) or the network delay decreases (Δ1' < Δ1), it will cause the deviation value of ΔT1 to deviate from 0. Moreover, the greater the delay fluctuation, the greater the absolute value of the deviation. Periodically obtain the absolute value samples of the deviation (ΔT1, ΔT2... ΔTn), and take the minimum value ΔT = MIN(ΔT1, ΔT2... ΔTn) in the samples. At this time, the difference between the two end timestamps is the deviation value of the local timestamps at the sending and receiving ends.

[0069] For example: The sending end sends the data packet 1 and the data packet 2 at the local times 1 and 3 respectively (Δ1 = 3 - 1 = 2). Suppose the time deviation between the receiving end and the sending end is 10, then the data packet 1 and the data packet 2 should be received at the local times 11 and 13 respectively (Δ1' = 13 - 11 = 2), that is, Δ1' - Δ1 → 0; the time deviation between the receiving end and the sending end is 13 - 3 = 10; the time deviation between the receiving end and the sending end is 10.

[0070] If there is a situation where the network delay increases, and the receiving end receives the data packet 1 and the data packet 2 at the local times 11 and 14 respectively, then (Δ1' = 14 - 11 = 3), Δ1' - Δ1 = 1 > 0, and 14 - 3 = 11 cannot be used as the time deviation between the receiving end and the sending end. The same is true for the situation where the network delay decreases.

[0071] Therefore, in this embodiment, the time stamps when taking the minimum sample of the deviation can be subtracted to calculate the time offset between the sending and receiving ends, ensuring the accuracy of the timeliness judgment.

[0072] The introduction of the data timeliness judgment is as follows:

[0073] If the delay of the user data (i.e., the service data packet) from the sending end to the receiving end is within the threshold, the data is considered valid and can be delivered to the upper-layer user for processing.

[0074] The service data packet is sent at the time t1 of the sending end, and the actual time it arrives at the receiving end is T1. The current time deviation between the sending end and the receiving end is ΔT. Then the delay of this service data packet = T1 - t1 + ΔT; if the delay of this service data packet is within the threshold range, this service data packet is valid, otherwise it is invalid.

[0075] Regarding the data transmission process of the entire system, it is as follows Figure 4 As shown in the figure, the processing flow of the sending end is as follows Figure 5 As shown in the figure, including:

[0076] Step ①: The sending end periodically sends probe data packets carrying the sending timestamp and sequence number (packet identifier) to the receiving end (in order to distinguish service data, the data packets periodically sent to determine the current time deviation between the sending end and the receiving end are called probe data packets). The receiving end completes the time synchronization alignment between the sending end and the receiving end through the probe data packets; that is, to determine the current time deviation ΔT between the sending end and the receiving end.

[0077] Step ②: The sending end sends service data packets carrying timestamps, sequence numbers, and indication flags for discard or retransmission according to service requirements to the receiving end.

[0078] Step ③: After the sending end receives a retransmission request for invalid data from the receiving end (which carries the sequence number of the service data packet that needs to be retransmitted), it can judge again whether it is necessary to re-send the service data packet according to the retransmission request; if re-sending is required, then execute Step ④, otherwise, abandon the retransmission.

[0079] Step ④: The sending end updates the local data according to the retransmission request, generates the latest service data packet (carrying the sending timestamp, sequence number, and indication flag for discard or retransmission), and sends it to the receiving end. At this time, the service data in the retransmitted service data packet may be different from the data in the previously invalid service data packet, and it is the latest service data.

[0080] Correspondingly, the receiving end processing flow is as follows Figure 6 As shown, including:

[0081] Step ①: The receiving end receives the periodic probe data packet and performs time synchronization alignment between the sending end and the receiving end, that is, to determine the current time deviation ΔT between the sending end and the receiving end.

[0082] Step ②: The receiving end receives time-sensitive service data packets (carrying the sending timestamp and fields such as whether to retransmit, thus indicating that the service data packet is a time-sensitive packet), and performs timeliness judgment, that is, uses the current time deviation to determine the delay (T1 - t1 + ΔT) of the current service data packet sent by the sending end to the receiving end, and judges whether the current service data packet is valid according to the delay of the current service data packet.

[0083] Step ③: If the current service data packet is valid (the delay is less than or equal to the preset threshold), then deliver the current service data packet to the upper-layer user for service processing.

[0084] Step ④: If the current service data packet is invalid (the delay is greater than the preset threshold), process it according to the sequence number and invalid processing flag in the current service data packet: if the flag is discard, then perform discard processing, if the flag is retransmit, then feedback a retransmission request for invalid data to the sending end, which carries the sequence number in the current service data packet.

[0085] In summary, the embodiments of the present application propose a deterministic application transmission guarantee technology to ensure the timeliness of the transmitted information between devices; it does not rely on the support of the network or other devices, nor on the time synchronization between devices; it calculates the time offset between devices through periodic detection data packets containing local timestamps, and guarantees the timeliness of user data through the relative offset and local timestamps; it improves the flexibility of user data control by making decisions at the sending end on whether to discard or retransmit data that does not meet the timeliness requirements.

[0086] See Figure 7 , at the receiving end, a data transmission method provided by the embodiments of the present application includes:

[0087] S101. Obtain the current time deviation (such as the above-mentioned ΔT) between the sending end and the receiving end of the data packet, where the current time deviation is determined based on the difference between the receiving time intervals of multiple detection data packets (which can be continuous or discontinuous) at the receiving end and the sending time intervals at the sending end;

[0088] S102. When a service data packet is received, use the current time deviation to determine the delay of the service data packet (such as the above-mentioned T1 - t1 + ΔT), and determine whether the service data packet is valid according to the delay.

[0089] For example, if the received data packet carries a sending timestamp and an identifier, and an indication identifier for whether to discard or retransmit, it is determined that the data packet is a time-sensitive service data packet and subsequent steps need to be executed, that is, further determine whether it is valid.

[0090] Through this method, the current time deviation between the sending end and the receiving end of the data packet is obtained, where the current time deviation is determined based on the difference between the receiving time intervals of multiple detection data packets at the receiving end and the sending time intervals at the sending end; thus, there is no need to require the sending end and the receiving end to be clock-synchronized. Based on the difference between the receiving time intervals of multiple detection data packets at the receiving end and the sending time intervals at the sending end, that is, by taking the difference between the local times of the sending end and the receiving end, an accurate delay can be obtained, realizing the time alignment between the sending end and the receiving end; when a service data packet is received, use the current time deviation to determine the delay of the service data packet, and determine whether the service data packet is valid according to the delay, thereby ensuring the deterministic transmission of the delay of the service data packet, so that the data delivered by the receiving end to the upper-layer user is within a precisely defined bounded delay range, guaranteeing the timeliness of the data.

[0091] In some embodiments, the current time deviation is periodically determined in the following manner:

[0092] Periodically determine the set of absolute difference samples of the time offset between the sending end and the receiving end (such as the above (ΔT1, ΔT2... ΔTn)); wherein, for any absolute difference of the time offset in the sample set, it is determined by the difference between the receiving time interval of the multiple consecutive detection data packets at the receiving end and the sending time interval at the sending end;

[0093] Take the minimum value of the absolute difference of the time offset in the sample set as the current time deviation between the sending end and the receiving end.

[0094] In some embodiments, for any absolute difference of the time offset in the sample set, it is determined in the following manner:

[0095] Determine the sending time interval of two consecutive detection data packets sent by the sending end (such as the above data packet 1 and data packet 2) (such as the above Δ1 = t2 - t1), and the receiving time interval of the receiving end for the two consecutive detection data packets (such as the above Δ1′ = T2 - T1);

[0096] Take the difference between the receiving time interval and the sending time interval of the two consecutive detection data packets as the absolute difference of the time offset corresponding to the two consecutive detection data packets between the sending end and the receiving end (such as the above ΔT1 = abs(Δ1′ - Δ1)).

[0097] In some embodiments, using the current time deviation (i.e., the minimum value of the above absolute difference of the time offset), to determine the delay of the service data packet, includes:

[0098] Subtract the sending time of the service data packet by the sending end from the receiving time of the service data packet by the receiving end, and then add the current time deviation, and take the obtained value as the delay of the service data packet.

[0099] In some embodiments, according to the delay, determine whether the current data packet is valid, includes:

[0100] If the delay is less than the preset threshold, determine that the service data packet is valid and send it to the upper-layer user for processing;

[0101] Otherwise, determine that the service data packet is invalid, discard the service data packet or notify the sending end to re-send the service data packet. For example, according to the indication flag carried in the service data packet on whether to discard or re-transmit when the service data packet fails, discard it or initiate a re-transmission request.

[0102] Correspondingly, refer to Figure 8, at the sending end, a data transmission method provided by an embodiment of the present application includes:

[0103] S201. Periodically send probe data packets, and carry the identifier of the probe data packets and the sending timestamp at the sending end, so that the receiving end determines the current time deviation between the sending end and the receiving end based on the difference between the receiving time intervals of multiple probe data packets at the receiving end and the sending time intervals at the sending end;

[0104] S202. Send service data packets according to service requirements, where the sending timestamp and identifier of the service data packets are carried.

[0105] In some embodiments, an indication identifier indicating whether to discard or retransmit when the service data packet becomes invalid is also carried in the service data packet;

[0106] When receiving a retransmission request for the service data packet sent by the receiving end, re-send the service data packet. Among them, the re-sent service data packet can be a data packet generated using the original service data, or a data packet containing the latest service data regenerated after refreshing the data.

[0107] The following introduces the device or apparatus provided by an embodiment of the present application. For the explanations or examples of the same or corresponding technical features as those in the above method, they will not be repeated hereinafter.

[0108] See Figure 9 , the data transmission apparatus provided by an embodiment of the present application includes: a memory 620, a transceiver 610, and a processor 600.

[0109] The memory 620 is used to store computer programs; the transceiver 610 is used to transmit and receive data under the control of the processor 600; the processor 600 is used to read the computer programs in the memory 620 and perform the following operations:

[0110] When the data transmission apparatus is used as the receiving end, the processor 600 is used to read the program in the memory 620 and execute the following process:

[0111] Obtain the current time deviation between the sending end and the receiving end of the data packet, where the current time deviation is determined based on the difference between the receiving time intervals of multiple probe data packets at the receiving end and the sending time intervals at the sending end;

[0112] When receiving a service data packet, use the current time deviation to determine the delay of the service data packet, and determine whether the service data packet is valid according to the delay.

[0113] In some embodiments, the current time deviation is periodically determined in the following manner:

[0114] Periodically determine the set of absolute difference samples of the time offset between the sending end and the receiving end; wherein, for any absolute difference of the time offset in the sample set, it is determined by the difference between the receiving time interval of the consecutive plurality of probe data packets at the receiving end and the sending time interval at the sending end;

[0115] Take the minimum value of the absolute difference of the time offset in the sample set as the current time deviation between the sending end and the receiving end.

[0116] In some embodiments, for any absolute difference of the time offset in the sample set, it is determined in the following manner:

[0117] Determine the sending time interval between two consecutive probe data packets sent by the sending end, and the receiving time interval of the receiving end for the two consecutive probe data packets;

[0118] Take the difference between the receiving time interval and the sending time interval of the two consecutive probe data packets as the absolute difference of the time offset corresponding to the two consecutive probe data packets between the sending end and the receiving end.

[0119] In some embodiments, using the current time deviation to determine the delay of the service data packet includes:

[0120] Subtract the sending time of the service data packet by the sending end from the receiving time of the service data packet by the receiving end, and then add the current time deviation, and take the obtained value as the delay of the service data packet.

[0121] In some embodiments, determining whether the current data packet is valid according to the delay includes:

[0122] If the delay is less than a preset threshold, determine that the service data packet is valid and send it to the upper-layer user for processing;

[0123] Otherwise, determine that the service data packet is invalid, discard the service data packet or notify the sending end to re-send the service data packet.

[0124] When the data transmission device is used as the sending end, the processor 600 is configured to read the program in the memory 620 and execute the following processes:

[0125] Periodically send probe data packets, carrying the identifier of the probe data packet and the transmission timestamp at the sending end, so that the receiving end determines the current time deviation between the sending end and the receiving end based on the difference between the receiving time intervals of multiple probe data packets at the receiving end and the transmission time intervals at the sending end;

[0126] Send service data packets according to service requirements, which carry the transmission timestamp and identifier of the service data packet.

[0127] In some embodiments, the service data packet further carries an indication identifier indicating whether to discard or retransmit when the service data packet expires;

[0128] When receiving a retransmission request for the service data packet sent by the receiving end, re-send the service data packet.

[0129] Among them, in Figure 9 The bus architecture may include any number of interconnected buses and bridges, specifically various circuits of one or more processors represented by the processor 600 and the memory represented by the memory 620 are linked together. The bus architecture can also link together various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art, so they will not be further described herein. The bus interface provides an interface. The transceiver 610 may be multiple components, that is, including a transmitter and a receiver, and provides a unit for communicating with various other devices on the transmission medium, and these transmission mediums include wireless channels, wired channels, optical fiber cables and other transmission mediums. For different user devices, the user interface 630 may also be an interface capable of externally connecting or internally connecting required devices, and the connected devices include but are not limited to a keypad, a display, a speaker, a microphone, a joystick, etc.

[0130] The processor 600 is responsible for managing the bus architecture and general processing, and the memory 620 can store the data used by the processor 600 when executing operations.

[0131] In some embodiments, the processor 600 may be a CPU (Central Processing Unit), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), or CPLD (Complex Programmable Logic Device), and the processor may also adopt a multi-core architecture.

[0132] The processor is used to execute any of the methods provided in the embodiments of the present application according to the obtained executable instructions by calling a computer program stored in the memory. The processor and the memory may also be physically separated.

[0133] It should be noted here that the above device provided in the embodiments of the present invention can implement all the method steps implemented in the above method embodiments, and can achieve the same technical effects. The same parts and beneficial effects as those in the method embodiments will not be specifically described in this embodiment.

[0134] See Figure 10 , another data transmission device provided in the embodiments of the present application includes: a first unit 11 and a second unit 12;

[0135] Wherein, when the data transmission device is used as a receiving end:

[0136] The first unit 11 is used to obtain the current time deviation between the sending end and the receiving end of the data packet, where the current time deviation is determined based on the difference between the receiving time intervals of multiple probe data packets at the receiving end and the sending time intervals at the sending end;

[0137] The second unit 12 is used to determine the delay of the service data packet by using the current time deviation when receiving the service data packet, and judge whether the service data packet is valid according to the delay.

[0138] In some embodiments, the first unit 11 periodically determines the current time deviation in the following manner:

[0139] Periodically determine the set of absolute difference samples of the time offset between the sending end and the receiving end; wherein, any absolute difference of the time offset in the sample set is determined by using the difference between the receiving time intervals of the continuous multiple probe data packets at the receiving end and the sending time intervals at the sending end;

[0140] Take the minimum value of the absolute difference of the time offset in the sample set as the current time deviation between the sending end and the receiving end.

[0141] In some embodiments, the first unit 11 determines any absolute difference of the time offset in the sample set in the following manner:

[0142] Determine the sending time interval between two consecutive probe data packets sent by the sending end, and the receiving time interval of the receiving end for the two consecutive probe data packets;

[0143] Take the difference between the reception time interval and the transmission time interval of the two consecutive detection data packets as the absolute time offset difference corresponding to the two consecutive detection data packets between the transmitter and the receiver.

[0144] In some embodiments, the second unit 12 determines the delay of the service data packet by using the current time deviation, including:

[0145] Subtract the transmission time of the service data packet at the transmitter from the reception time of the service data packet at the receiver, and then add the current time deviation. Take the obtained value as the delay of the service data packet.

[0146] In some embodiments, the second unit 12 determines whether the current data packet is valid according to the delay, including:

[0147] If the delay is less than a preset threshold, determine that the service data packet is valid and send it to the upper-layer user for processing;

[0148] Otherwise, determine that the service data packet is invalid, discard the service data packet or notify the transmitter to retransmit the service data packet.

[0149] When the data transmission device serves as a receiver:

[0150] The first unit 11 is configured to periodically send detection data packets, and carry the identifier of the detection data packet and the transmission timestamp at the transmitter, so that the receiver determines the current time deviation between the transmitter and the receiver based on the difference between the reception time interval of multiple detection data packets at the receiver and the transmission time interval at the transmitter;

[0151] The second unit 12 is configured to send service data packets according to service requirements, and carry the transmission timestamp and identifier of the service data packet.

[0152] In some embodiments, the first unit 11 also carries an indication identifier indicating whether to discard or retransmit when the service data packet becomes invalid in the service data packet;

[0153] When the second unit 12 receives a retransmission request for the service data packet sent by the receiver, it retransmits the service data packet.

[0154] It should be noted that the division of units in the embodiments of the present application is illustrative. It is only a logical function division, and there may be other division methods in actual implementation. In addition, in each embodiment of the present application, each functional unit may be integrated into a processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit. The above integrated units may be implemented in the form of hardware or in the form of software functional units.

[0155] If the above integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the methods described in the embodiments of the present application. The aforementioned storage medium includes: various media that can store program codes such as USB flash drives, mobile hard disks, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical discs.

[0156] The embodiments of the present application provide a computing device, which may specifically be a desktop computer, a portable computer, a smart phone, a tablet computer, a personal digital assistant (PDA), etc. The computing device may include a central processing unit (CPU), a memory, an input / output device, etc. The input device may include a keyboard, a mouse, a touch screen, etc., and the output device may include a display device, such as a liquid crystal display (LCD), a cathode ray tube (CRT), etc.

[0157] The memory may include a read-only memory (ROM) and a random access memory (RAM), and provide program instructions and data stored in the memory to the processor. In the embodiments of the present application, the memory may be used to store the program of any of the methods provided in the embodiments of the present application.

[0158] The processor is used to execute any of the methods provided in the embodiments of the present application by calling the program instructions stored in the memory.

[0159] The embodiments of the present application also provide a computer program product or a computer program. The computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes any of the methods in the above embodiments. The program product may adopt any combination of one or more readable media. The readable media may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples (non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0160] The embodiments of the present application provide a computer-readable storage medium for storing computer program instructions used by the device provided in the embodiments of the present application above, and the computer-readable storage medium contains a program for executing any of the methods provided in the embodiments of the present application above. The computer-readable storage medium may be a non-transitory computer-readable medium.

[0161] The computer-readable storage medium may be any available medium or data storage device that can be accessed by a computer, including but not limited to magnetic memories (such as floppy disks, hard disks, magnetic tapes, magneto-optical discs (MO), etc.), optical memories (such as CDs, DVDs, BDs, HVDs, etc.), and semiconductor memories (such as ROM, EPROM, EEPROM, non-volatile memories (NANDFLASH), solid-state drives (SSD)), etc.

[0162] It should be understood that:

[0163] The access technology through which entities in a communication network transmit traffic to and from each other may be any suitable current or future technology, such as WLAN (Wireless Local Area Network), WiMAX (Worldwide Interoperability for Microwave Access), LTE, LTE-A, 5G, Bluetooth, infrared, etc.; in addition, the embodiments may also apply wired technologies, for example, IP-based access technologies, such as wired networks or fixed lines.

[0164] Embodiments suitable for being implemented as software code or a part thereof and running using a processor or processing function are independent of the software code and can be specified using any known or future-developed programming language, such as high-level programming languages, such as Objective-C, C, C++, C#, Java, Python, JavaScript, other scripting languages, etc., or low-level programming languages, such as machine language or assembler.

[0165] The implementation of the embodiments is independent of the hardware and can be implemented using any known or future-developed hardware technology or any combination thereof, such as a microprocessor or CPU (Central Processing Unit), MOS (Metal Oxide Semiconductor), CMOS (Complementary MOS), BiMOS (Bipolar MOS), BiCMOS (Bipolar CMOS), ECL (Emitter Coupled Logic), and / or TTL (Transistor-Transistor Logic).

[0166] The embodiments can be implemented as a separate device, apparatus, unit, component, or function, or in a distributed manner. For example, one or more processors or processing functions can be used or shared in the processing, or one or more processing segments or processing parts can be used and shared in the processing, where one physical processor or more than one physical processor can be used to implement one or more processing parts dedicated to a specific processing as described.

[0167] The device can be implemented by a semiconductor chip, a chipset, or a (hardware) module including such a chip or chipset.

[0168] The embodiments can also be implemented as any combination of hardware and software, such as ASIC (Application-Specific IC (Integrated Circuit)) components, FPGA (Field-Programmable Gate Array) or CPLD (Complex Programmable Logic Device) components, or DSP (Digital Signal Processor) components.

[0169] The embodiments can also be implemented as a computer program product, including a computer-usable medium in which computer-readable program code is embodied, the computer-readable program code being adapted to execute the processes as described in the embodiments, where the computer-usable medium can be a non-transitory medium.

[0170] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk memories and optical memories, etc.) containing computer-usable program code.

[0171] This application is described with reference to the flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram, and the combination of flows and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing device to generate a machine, such that the instructions executed by the processor of the computer or other programmable data processing device produce a means for implementing the specified functions in one or more of the flows Figure 1 one or more flows and / or blocks Figure 1 or means for implementing the specified functions in one or more of the blocks.

[0172] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, such that the instructions stored in the computer-readable memory produce a manufactured article including instruction means for implementing the specified functions in one or more of the flows Figure 1 one or more flows and / or blocks Figure 1 or means for implementing the specified functions in one or more of the blocks.

[0173] These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operational steps are performed on the computer or other programmable device to generate a computer-implemented process, and thus the instructions executed on the computer or other programmable device provide steps for implementing the specified functions in one or more of the flows Figure 1 one or more flows and / or blocks Figure 1 or means for implementing the specified functions in one or more of the blocks.

[0174] Obviously, those skilled in the art can make various changes and modifications to this application without departing from the spirit and scope of this application. Thus, if these modifications and variations of this application fall within the scope of the claims of this application and their equivalent technologies, this application is also intended to include these changes and modifications.

Claims

1. A data transmission method, characterized in that, The method includes: Obtaining a current time deviation between a sending end and a receiving end of a data packet, where the current time deviation is determined based on a difference between a receiving time interval of multiple probe data packets at the receiving end and a sending time interval of the multiple probe data packets at the sending end; When receiving a service data packet, determining a delay of the service data packet by using the current time deviation; Judging whether the service data packet is valid according to the delay; Wherein, the current time deviation is determined in the following manner: Determining a minimum sample from a preset sample set; each sample in the sample set is an absolute value of a difference between a receiving time interval of the receiving end and a sending time interval of the sending end, the receiving time interval of the receiving end is a receiving time interval between a first probe data packet and a second probe data packet corresponding to the sample; the sending time interval is a sending time interval between the first probe data packet and the second probe data packet corresponding to the sample; different samples correspond to different first probe data packets and second probe data packets; Determining the first probe data packet and the second probe data packet corresponding to the minimum sample; Determining a sending timestamp and a receiving timestamp of the second probe data packet corresponding to the minimum sample, where the sending timestamp of the second probe data packet is a time when the sending end sends the second probe data packet corresponding to the minimum sample, and the receiving timestamp of the second probe data packet is a time when the receiving end receives the second probe data packet corresponding to the minimum sample; Taking a difference between the receiving timestamp and the sending timestamp of the second probe data packet as the current time deviation between the sending end and the receiving end.

2. The method according to claim 1, characterized in that, The multiple probe data packets are data packets sent respectively according to a preset period.

3. The method according to claim 2, characterized in that, The first probe data packet and the second probe data packet corresponding to each sample are two consecutive probe data packets transmitted.

4. The method according to claim 1, wherein Determining the delay of the service data packet by using the current time deviation includes: Subtracting a sending time of the service data packet at the sending end from a receiving time of the service data packet at the receiving end, and then subtracting the current time deviation, and taking the obtained value as the delay of the service data packet.

5. The method according to claim 1, wherein Judging whether the service data packet is valid according to the delay includes: If the delay is less than a preset threshold, determining that the service data packet is valid and sending it to an upper-layer user for processing; Otherwise, determining that the service data packet is invalid, discarding the service data packet or notifying the sending end to re-send the service data packet.

6. A data transmission method, characterized in that, The method includes: Periodically sending probe data packets and carrying an identifier of the probe data packet and a sending timestamp at the sending end, so that the receiving end determines a current time deviation between the sending end and the receiving end based on a difference between a receiving time interval of multiple probe data packets at the receiving end and a sending time interval of the multiple probe data packets at the sending end; Sending service data packets according to service requirements, where a sending timestamp and an identifier of the service data packet are carried; Wherein, the current time deviation is determined by the receiving end in the following manner: Determine the minimum sample from a preset sample set; each sample in the sample set is the absolute value of the difference between the receiving time interval at the receiving end and the transmitting time interval at the transmitting end. The receiving time interval at the receiving end is the receiving time interval of the first probe data packet and the second probe data packet corresponding to this sample; the transmitting time interval is the transmitting time interval of the first probe data packet and the second probe data packet corresponding to this sample; different samples correspond to different first probe data packets and second probe data packets. Determine the first probe data packet and the second probe data packet corresponding to the minimum sample. Determine the transmission timestamp and the reception timestamp of the second probe data packet corresponding to the minimum sample. Among them, the transmission timestamp of the second probe data packet is the time when the transmitting end transmits the second probe data packet corresponding to the minimum sample, and the reception timestamp of the second probe data packet is the time when the receiving end receives the second probe data packet corresponding to the minimum sample. Use the difference between the reception timestamp and the transmission timestamp of the second probe data packet as the current time deviation between the transmitting end and the receiving end.

7. The method according to claim 6, wherein The service data packet also carries an indication flag indicating whether to discard or retransmit when the service data packet becomes invalid. When receiving a retransmission request for the service data packet sent by the receiving end, retransmit the service data packet.

8. A data transmission device, characterized in that, Comprising: A memory for storing program instructions. A processor for calling the program instructions stored in the memory and executing the method according to any one of claims 1 to 7 according to the obtained program.

9. A computer program product for a computer, characterized in that, Comprising a software code portion which, when the product runs on the computer, is used to execute the method according to any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions which are used to cause the computer to execute the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Time deviation selection circuit

    CN103580696A

  • Method, device, equipment and system for adjusting sending code rate of data packet

    CN110191060A