WO2024230547A1 - 数据传输方法、装置、设备及计算机可读存储介质 - Google Patents
数据传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- WO2024230547A1 WO2024230547A1 PCT/CN2024/090516 CN2024090516W WO2024230547A1 WO 2024230547 A1 WO2024230547 A1 WO 2024230547A1 CN 2024090516 W CN2024090516 W CN 2024090516W WO 2024230547 A1 WO2024230547 A1 WO 2024230547A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- packet
- data packet
- data packets
- sequence number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1819—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1642—Formats specially adapted for sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1841—Resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/323—Discarding or blocking control packets, e.g. ACK packets
Definitions
- the present application relates to the field of communication technology, and in particular to a data transmission method, apparatus, device and computer-readable storage medium.
- the tail loss probe (TLP) mechanism or the retransmission timeout (RTO) mechanism will be triggered to achieve packet retransmission.
- the retransmission delay caused by the TLP mechanism and the RTO mechanism is usually large.
- the present application provides a data transmission method, apparatus, device and computer-readable storage medium for redundantly sending multiple tail packets of a data stream.
- a data transmission method comprising: when a first data packet is a tail packet of a data stream, a first node generates multiple second data packets corresponding to the first data packet, the payload of any second data packet is the same as the payload of the first data packet, and the number of the multiple second data packets is determined by the transmission parameters of the network used to transmit the data stream; the first node sends the first data packet and the multiple second data packets, the multiple second data packets are used to reduce the probability of packet loss of the tail packet of the data stream.
- the method performs redundant protection for the tail packet in the data stream, that is, sends multiple redundant tail packets to reduce the probability of tail packet loss, avoid data retransmission caused by the RTO mechanism or TLP mechanism triggered by the tail packet loss, and then avoid the waiting delay caused by the triggering of the RTO mechanism or TLP mechanism, thereby reducing the transmission delay of the data stream and improving the quality and performance of data transmission.
- the redundant number of multiple tail packets in the embodiment of the present application is determined according to the transmission parameters of the network used to transmit the data stream, which can avoid continuous packet loss of multiple tail packets sent, and can also prevent the waste of transmission resources caused by excessive redundant number, so that the determined redundant number of multiple tail packets is more in line with the data transmission requirements.
- the transmission parameters include the continuous packet loss rate under different unit quantities corresponding to the network; before the first node generates multiple second data packets corresponding to the first data packet, the first node performs function fitting on the continuous packet loss rate under different unit quantities corresponding to the network to obtain a functional relationship between the number of redundancies and the probability of success, where the probability of success is the probability that at least one of the redundant number of data packets sent continuously is received; the redundancy number of the functional relationship is obtained when the probability of success is greater than or equal to a probability threshold, and the number of multiple second data packets is determined based on the redundancy number when the probability of success is greater than or equal to the probability threshold.
- a more accurate number of multiple second data packets is obtained by function fitting, so that the probability of at least one of the multiple second data packets sent being received is greater than or equal to the probability threshold, that is, the probability of the tail packet being received is greater than or equal to the probability threshold.
- the first data packet and the plurality of second data packets are transmitted based on a quick user datagram protocol internet connection (QUIC), the number of the plurality of second data packets is K, the sequence number of the first data packet is N, and both K and N are positive integers; the sequence numbers of the plurality of second data packets are different from those of the first data packet, and the sequence numbers of the plurality of second data packets are N+n, N+n+1, ..., N+n+K-1, respectively, and n is determined based on the packet threshold corresponding to QUIC.
- the method provides a method for setting the sequence numbers of the plurality of second data packets in a QUIC transmission scenario, so that the method can be applied to the QUIC transmission scenario, and the implementation flexibility of the method is improved.
- QUIC quick user datagram protocol internet connection
- the first node after the first node sends the first data packet and multiple second data packets, in the case of QUIC transmission, based on the confirmation message received for any of the first data packet and multiple second data packets, for a third data packet sent before any data packet in the data stream but not confirmed, if the difference between the sequence number of any data packet and the sequence number of the third data packet is greater than or equal to the data packet threshold, trigger the retransmission of the payload of the third data packet.
- This method enables the retransmission of lost packets to be quickly triggered by sending redundant tail packets when multiple data packets at the tail of a data stream transmitted based on QUIC are continuously lost, thereby reducing the loss rate. Delay caused by packet retransmission.
- a first data packet and multiple second data packets are transmitted based on a transmission control protocol (TCP); the sequence numbers of the multiple second data packets are the same as the sequence number of the first data packet.
- TCP transmission control protocol
- the first node After generating multiple second data packets corresponding to the first data packet, the first node obtains a mapping relationship between the sequence number of the first data packet and a redundant sequence number, where the redundant sequence number is the sum of the sequence number of the first data packet and n, and n can be determined based on a repetition threshold corresponding to TCP.
- the method provides a method for setting the sequence numbers of multiple second data packets in a TCP transmission scenario, so that the method can be applied to TCP transmission scenarios, and the implementation flexibility of the method is improved.
- the redundant sequence number corresponding to the sequence number of any data packet is obtained in the mapping relationship, and if the difference between the redundant sequence number and the sequence number of the third data packet is greater than or equal to the repetition threshold, the retransmission of the payload of the third data packet is triggered.
- packet retransmission can be quickly triggered by sending redundant tail packets, thereby reducing the delay caused by packet retransmission.
- the first node before the first node generates multiple second data packets corresponding to the first data packet, it determines whether the first data packet is the tail packet of the data stream.
- the method for determining whether the first data packet is the tail packet of the data stream can be, when the first time length after the first data packet joins the sending queue, if there is no data packet belonging to the data stream added to the sending queue, the first data packet is determined to be the tail packet of the data stream; or, the first data packet is determined to be the tail packet of the data stream according to the identifier indicating the tail packet carried in the first data packet. Determining whether the first data packet is the tail packet of the data stream by the situation of adding a data packet to the sending queue, or directly identifying the tail packet by the carried identifier improves the accuracy and flexibility of identifying the tail packet.
- a data transmission device which includes: a generating module, used to generate multiple second data packets corresponding to the first data packet when the first data packet is the tail packet of the data stream, the payload of any second data packet is the same as the payload of the first data packet, and the number of the multiple second data packets is determined by the transmission parameters of the network used to transmit the data stream; a sending module, used to send the first data packet and the multiple second data packets, the multiple second data packets are used to reduce the probability of packet loss of the tail packet of the data stream.
- the transmission parameters include continuous packet loss rates under different unit quantities; the device also includes: a fitting module, used to perform function fitting on the continuous packet loss rates under different unit quantities corresponding to the network, to obtain a functional relationship between the redundant quantity and the success probability, where the success probability is the probability that at least one of the redundant quantity data packets sent continuously is received; a first determination module, used to obtain the redundant quantity of the functional relationship when the success probability is greater than or equal to a probability threshold, and determine the number of multiple second data packets according to the redundant quantity when the success probability is greater than or equal to the probability threshold.
- a fitting module used to perform function fitting on the continuous packet loss rates under different unit quantities corresponding to the network, to obtain a functional relationship between the redundant quantity and the success probability, where the success probability is the probability that at least one of the redundant quantity data packets sent continuously is received
- a first determination module used to obtain the redundant quantity of the functional relationship when the success probability is greater than or equal to a probability threshold, and determine the number of multiple second data packets according to the redundant quantity when
- a first data packet and multiple second data packets are transmitted based on QUIC, the number of the multiple second data packets is K, the serial number of the first data packet is N, and both K and N are positive integers; the serial numbers of the multiple second data packets are different from those of the first data packet, and the serial numbers of the multiple second data packets are N+n, N+n+1, ..., N+n+K-1, respectively, where n is determined based on the data packet threshold corresponding to QUIC.
- the device also includes: a retransmission module, which is used to trigger the retransmission of the payload of the third data packet based on the confirmation message received for the first data packet and any data packet among the multiple second data packets, for a third data packet sent before any data packet in the data stream but not confirmed, if the difference between the sequence number of any data packet and the sequence number of the third data packet is greater than or equal to a data packet threshold.
- a retransmission module which is used to trigger the retransmission of the payload of the third data packet based on the confirmation message received for the first data packet and any data packet among the multiple second data packets, for a third data packet sent before any data packet in the data stream but not confirmed, if the difference between the sequence number of any data packet and the sequence number of the third data packet is greater than or equal to a data packet threshold.
- a first data packet and multiple second data packets are transmitted based on TCP; the sequence numbers of the multiple second data packets are the same as the sequence number of the first data packet; the device also includes: an acquisition module, used to obtain a mapping relationship between the sequence number of the first data packet and a redundant sequence number, the redundant sequence number is the sum of the sequence number of the first data packet and n, and n is determined based on a repetition threshold corresponding to TCP.
- the device also includes: a retransmission module, which is used to obtain a redundant sequence number corresponding to the sequence number of any data packet in a mapping relationship for a third data packet sent before any data packet in the data stream but not confirmed, based on the confirmation message received for the first data packet and any data packet among the multiple second data packets, and trigger the retransmission of the payload of the third data packet if the difference between the redundant sequence number and the sequence number of the third data packet is greater than or equal to the repetition threshold corresponding to TCP.
- a retransmission module which is used to obtain a redundant sequence number corresponding to the sequence number of any data packet in a mapping relationship for a third data packet sent before any data packet in the data stream but not confirmed, based on the confirmation message received for the first data packet and any data packet among the multiple second data packets, and trigger the retransmission of the payload of the third data packet if the difference between the redundant sequence number and the sequence number of the third data packet is greater than or equal to the repetition threshold corresponding to T
- the device also includes: a second determination module, which is used to determine that the first data packet is the tail packet of the data stream if no data packet belonging to the data stream is added to the sending queue when a first time period has passed after the first data packet is added to the sending queue; or, to determine that the first data packet is the tail packet of the data stream based on an identifier indicating the tail packet carried in the first data packet.
- a second determination module which is used to determine that the first data packet is the tail packet of the data stream if no data packet belonging to the data stream is added to the sending queue when a first time period has passed after the first data packet is added to the sending queue.
- a data transmission device comprising: a processor, the processor being coupled to a memory, the memory storing at least one program instruction or code, the at least one program instruction or code being loaded and executed by the processor, so that the data transmission device implements the method in the first aspect or any possible implementation manner of the first aspect.
- processors there are one or more processors and one or more memories.
- the memory may be integrated with the processor, or the memory may be provided separately from the processor.
- the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated with the processor on the same chip or can be set on different chips.
- ROM read-only memory
- a communication device comprising: a transceiver, a memory, and a processor.
- the transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the communication device executes the method in the first aspect or any possible implementation of the first aspect.
- a computer-readable storage medium stores at least one instruction, and the instruction is loaded and executed by a processor to enable a computer to implement the method in the above-mentioned first aspect or any possible implementation of the first aspect.
- a computer program comprising: a computer program code, when the computer program code is executed by a computer, the computer executes the methods in the above aspects.
- a chip comprising a processor for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes the method in the above-mentioned first aspect or any possible implementation manner of the first aspect.
- another chip comprising: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory.
- the processor is used to execute the method in the above-mentioned first aspect or any possible implementation manner of the first aspect.
- FIG1 is a schematic diagram of a data packet forwarding process provided in an embodiment of the present application.
- FIG2 is a schematic diagram of an implementation environment of a data transmission method provided in an embodiment of the present application.
- FIG3 is a flow chart of a data transmission method provided in an embodiment of the present application.
- FIG4 is a schematic diagram of a data transmission process provided by an embodiment of the present application.
- FIG5 is a schematic diagram of another data transmission process provided in an embodiment of the present application.
- FIG6 is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present application.
- FIG7 is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present application.
- FIG8 is a schematic diagram of the structure of another data transmission device provided in an embodiment of the present application.
- the only option is to trigger the RTO mechanism.
- the RTO mechanism is that after the sender sends a data packet, if it has not received a confirmation message corresponding to the data packet returned by the receiver after waiting for an RTO period, for example, the confirmation message is an ACK packet, the sender starts to retransmit the data packet.
- the RTO time is often set to several hundred milliseconds (ms). Therefore, the packet retransmission triggered by the RTO mechanism has a greater impact on the transmission delay.
- the main reason for triggering the RTO mechanism is that the sender does not receive a confirmation message for all the data packets in the data stream after sending the data stream.
- One of the important reasons why the sender does not receive a confirmation message for all the data packets in the data stream is that the data packets at the end of the data stream are lost, that is, the probability of packet loss at the end of the data stream is relatively high.
- the number of tail data packets can be one or more. When the number of tail data packets is one, the tail data packet is the tail packet, and the tail packet refers to the last data packet in a data stream sent in sequence; when the number of tail data packets is multiple, the tail data packet refers to the last M data packets in a data stream sent in sequence.
- M is a positive integer, and M can be determined according to the total number of data packets included in the data stream.
- the tail data packets are data packets 9 and 10.
- the sender sends a data stream to the receiver.
- the data stream includes 10 data packets, and the sequence numbers of the 10 data packets are 1 to 10 respectively.
- the data packets at the end of the data stream may include data packets 7 to 10, and the end packet of the data stream is data packet 10.
- the receiving end when the receiving end receives data packets 1 to 6, the receiving end will send corresponding ACK1 to ACK6 to the sending end to indicate that data packets 1 to 6 are confirmed.
- the receiving end since the receiving end does not receive the subsequent data packets of the data stream to which data packet 6 belongs, the receiving end will not trigger any confirmation message to the sending end, resulting in the sending end having to wait for the RTO time after sending data packet 10 to trigger the RTO mechanism to retransmit the data stream starting with data packet 7, thereby causing a transmission delay of approximately the RTO time.
- the TLP method in the related art sets a probe timeout (PTO) timer. After the tail packet of the data stream is sent, it waits for a PTO time. If the confirmation message corresponding to the tail packet is not received, it triggers the sending of one or two probe data packets, and triggers packet loss retransmission based on the probe data packets, thereby avoiding the timeout retransmission of the RTO mechanism triggered by the loss of the tail packet of the data stream. For example, taking the data stream shown in Figure 1 as an example, after sending data packet 10, the sender waits for a PTO time.
- PTO probe timeout
- ACK10 If ACK10 is not received, it sends a probe data packet, which can be data packet 10, triggering the receiving end to return a corresponding confirmation message to the sender based on the probe data packet. After receiving the confirmation message corresponding to the probe data packet, the sender determines that the unconfirmed data packets sent before data packet 10 meet the packet loss condition. If so, it retransmits data packet 7.
- the packet loss condition may refer to the difference between the sequence number of the unconfirmed data packet and the sequence number of data packet 10 being greater than or equal to a packet threshold (packet threshold). Taking the packet threshold of 3 as an example, only data packet 7 meets the packet loss condition, and thus only fast retransmission of data packet 7 can be triggered.
- the TLP method will cause a transmission delay of about PTO plus a round-trip time (RTT), and the PTO is often set to milliseconds.
- RTT refers to the time between the start of the sender sending a data packet to the receiver and the receipt of the confirmation message returned by the receiver based on the data packet.
- RTT is tens to hundreds of microseconds.
- PTO is usually set based on RTT.
- the embodiment of the present application provides a data transmission method, which can reduce the probability of packet loss of the tail packet of the data stream by performing redundant protection on the tail packet of the data stream at the sending end, thereby reducing the transmission delay caused by the loss of the tail packet of the data stream.
- the embodiment of the present application does not limit the implementation environment of the data transmission method.
- the implementation environment of the data transmission method can be any scenario of transmitting data streams.
- the method can be executed by the subject of the transmission data stream in any scenario of transmitting data streams.
- Figure 2 is a schematic diagram of the implementation environment of a data transmission method provided by an embodiment of the present application.
- the implementation environment may include a cloud server (server) and multiple clients (client).
- the cloud server and any client may be directly or indirectly connected through wired or wireless communication methods, and this application does not limit this.
- any client is connected to the cloud server through a network device, and any client and network device may be connected through wireless fidelity (WIFI) technology, fifth generation mobile communication technology (5G) or wired broadband technology.
- WIFI wireless fidelity
- 5G fifth generation mobile communication technology
- the cloud server can be the network nodes at all levels that provide services to the client for the network system, and is the smallest unit for routing and scheduling the data requests sent by the client.
- the client can be any electronic product that can interact with the user through one or more methods such as keyboard, touchpad, touch screen, remote control, voice interaction or handwriting device, such as personal computer (PC), smart phone, personal digital assistant (PDA), wearable device, pocket PC (PPC), tablet computer, smart car machine, etc.
- PC personal computer
- PDA personal digital assistant
- PPC pocket PC
- tablet computer smart car machine, etc.
- a connection is established between the client and the cloud server, the client initiates a data request, the cloud server obtains the data corresponding to the data request through the cloud network, and transmits the data to the client.
- the client requests the corresponding file download through an application (APP) such as music or photo album, and the cloud server pulls the file from the cloud network and transmits it to the client.
- the packet loss triggers the RTO mechanism, which causes a large transmission delay, seriously affecting the overall file transmission completion time and making the data transmission efficiency low.
- FIG. 3 is a flow chart of a data transmission method provided by an embodiment of the present application.
- the method can be applied to the implementation environment shown in FIG. 2 , for example, the first node is the cloud server shown in FIG. 2 , wherein the cloud server shown in FIG. 2 corresponds to the sending end of the data stream transmission, and the client shown in FIG. 2 corresponds to the receiving end of the data stream transmission.
- the data transmission method includes but is not limited to the following steps 301 and 302.
- the first node When the first data packet is the tail packet of the data stream, the first node generates multiple second data packets corresponding to the first data packet.
- the payload of any second data packet is the same as the payload of the first data packet.
- the number of the multiple second data packets is determined by the transmission parameters of the network used to transmit the data stream.
- the first node is a transmitting end of data stream transmission, and when the first node transmits a data stream to the second node, the second node is a receiving end of data stream transmission.
- the first node performs redundant protection for the tail packet of the data stream, that is, on the basis of sending the tail packet, it continuously sends multiple redundant packets with the same payload as the tail packet, thereby increasing the probability that the receiving end receives the payload of the tail packet, that is, reducing the probability of packet loss of the tail packet of the data stream.
- the content outside the payload of any second data packet may be the same or different from the content outside the payload of the first data packet, and the embodiment of the present application is not limited thereto.
- the sequence number in the content outside the payload of any second data packet is different from the sequence number in the content outside the payload of the first data packet.
- the first node Before the first node generates multiple second data packets corresponding to the first data packet, the first node needs to determine whether the first data packet is a tail packet for the first data packet to be sent.
- the embodiment of the present application does not limit the method for determining whether the first data packet is a tail packet.
- the first data packet sent by the application layer obtained by the first node carries an identifier indicating a tail packet, and the identifier is added to the first data packet by the application layer, so that the first node can directly determine that the first data packet is a tail packet based on the identifier indicating the tail packet carried in the first data packet. For example, if the first data packet includes an operation code and the operation code indicates that the first data packet is a tail packet, the first data packet is determined to be a tail packet.
- the first node determines that the first data packet is the tail packet of the data stream.
- the first time duration can be set according to experience, or flexibly adjusted according to the application scenario, for example, the first time duration is the time interval between the sending of 2 data packets.
- the first node periodically scans the sending queue, and determines whether other data packets are added within the first time duration after the first data packet joins the sending queue according to the scanning result.
- the transmission interruption time is greater than the first time duration
- the tail packet identified by the sending queue is not the real tail packet of the data stream, and the tail packet identified in this case is called an interruption packet, so that the method can reduce the probability of packet loss of the interruption packet, and when the transmission interruption time is less than the RTO time, the transmission delay of the data stream can also be reduced.
- multiple second data packets can be called multiple redundant packets. If any one of the multiple redundant packets is received by the receiving end, the receiving end can trigger the sending of a confirmation message based on the received redundant packet, so that the sending end can receive the returned confirmation message, and then the sending end can trigger fast retransmission based on the received confirmation message when multiple data packets at the tail of the data stream are continuously lost, that is, it will not trigger a timeout retransmission based on the RTO mechanism, which means that the method of the embodiment of the present application has successfully played a role.
- the embodiment of the present application determines the number of redundant packets according to the transmission parameters of the network used to transmit the data stream, so that the determined number of redundant packets can not only avoid continuous packet loss of multiple tail packets sent, but also prevent waste of transmission resources caused by excessive redundant number, so that the determined number of redundant tail packets is more in line with data transmission requirements.
- the transmission parameters of the network may include at least one of packet loss rate, rate, bandwidth, delay, throughput, RTT, and continuous packet loss rate under different unit quantities.
- the method for determining the number of multiple second data packets based on the transmission parameters may be to obtain the current RTT of the network, and determine the number of redundancies corresponding to the current RTT of the network based on the correspondence between RTT and the number of redundancies, where the number of redundancies corresponding to the current RTT of the network is the number of multiple second data packets.
- the correspondence between RTT and the number of redundancies can be obtained based on the historical transmission situation of the network.
- the maximum number of continuous packet losses under any RTT is determined based on the historical transmission situation, and the number of redundancies corresponding to any RTT is determined based on the maximum number.
- the method of determining the number of multiple second data packets based on the transmission parameter can be: performing function fitting on the continuous packet loss rate under different unit quantities corresponding to the network to obtain a functional relationship between the redundant number and the success probability, where the success probability is the probability that at least one of the redundant number of data packets sent continuously is received; obtaining the redundant number of the functional relationship when the success probability is greater than or equal to a probability threshold, and determining the number of multiple second data packets according to the redundant number when the success probability is greater than or equal to the probability threshold,
- the number of the plurality of second data packets may also be referred to as the number of redundant packets.
- the continuous packet loss rate corresponding to any unit number is the probability of continuously losing any unit number of data packets. For example, when the unit number is 1, the continuous packet loss rate corresponding to the unit number is the probability of continuously losing 1 data packet. When the unit number is 2, the continuous packet loss rate corresponding to the unit number is the probability of continuously losing 2 data packets.
- Different unit numbers may include 1, 2, ..., D, where D is a positive integer greater than 2.
- the probability that at least one of the redundant number of data packets is received is the probability that the redundant number of data packets triggers fast retransmission
- the probability that the redundant number of data packets triggers fast retransmission is the probability that the redundant number of data packets successfully function. Since at least one of the redundant number of data packets is received, it means that there is no continuous packet loss of the redundant number of data packets, that is, if the redundant number of data packets will not be lost continuously in the network, then at least one of the redundant number of data packets will be received.
- the sum of the probability of continuously losing the redundant number of data packets and the probability of receiving at least one of the redundant number of data packets is 1, that is, the success probability corresponding to any redundant number can be obtained by calculating the difference between 1 and the probability of continuously losing any redundant number of data packets.
- the embodiment of the present application does not limit the fitting method for fitting the function of the continuous packet loss rate under different unit numbers corresponding to the network.
- an independent event model, a Bernoulli model or a logistic regression analysis model can be used for function fitting.
- the logistic regression analysis model as an example, the functional relationship between the redundant number and the success probability obtained by fitting can be shown as formula (1).
- Pr succ (K) represents the probability that at least one of the K redundant packets is received, that is, the probability that the K redundant packets work successfully;
- Pr loss (K) represents the probability of losing K redundant packets continuously;
- p represents the average packet loss rate corresponding to the network;
- r represents the network condition factor;
- e rK refers to an exponential function with e as the base, and e is a natural constant in mathematics.
- the average packet loss rate p can be obtained based on the statistical analysis of the data transmission situation of the network in the historical time. For example, the first number of data packets transmitted in the historical time and the second number of data packets lost in the historical time are counted, and the ratio of the second number to the first number is calculated to obtain the average packet loss rate in the historical time.
- the embodiment of the present application does not limit the length of the historical time, and it can be any period of time before the implementation of the method.
- the network condition factor r can be obtained by substituting the continuous packet loss rates corresponding to the known multiple unit quantities into the above formula (1).
- the redundant number can be solved according to formula (1) when Pr succ (K) is greater than or equal to the probability threshold, that is, the range of K values under the calculated Pr succ (K) ⁇ the probability threshold is the redundant number.
- the probability threshold can be set according to experience, or flexibly adjusted according to the application scenario.
- the method of determining the number of the plurality of second data packets according to the redundant number may be to use any positive integer within the redundant number interval as the number of the plurality of second data packets. For example, taking the probability threshold of 0.9999 as an example, according to formula (1), the value range of K when Pr succ (K) is greater than or equal to 0.9999 is greater than or equal to 5.6, and the number of the plurality of second data packets may be 6, 7, 8, etc.
- the number of the plurality of second data packets thus obtained will not be too small, and it can be ensured that the probability of at least one of the plurality of second data packets being received is greater than or equal to 0.9999, which effectively reduces the probability of packet loss of the tail packet of the data stream, thereby avoiding continuous packet loss of the plurality of tail packets sent.
- the method for determining the number of the plurality of second data packets according to the redundant number may also be to round up the redundant number to obtain the number of the plurality of second data packets.
- the probability threshold of 0.9999 as an example, the value range of K is rounded up, and the number of the plurality of second data packets obtained is 6.
- the number of the plurality of second data packets thus obtained will not be too large, and the transmission resources of the network will not be wasted due to the excessive number of the plurality of second data packets sent, thereby reducing the redundancy rate of the tail packet.
- the first node can generate K second data packets corresponding to the first data packet.
- the sequence numbers corresponding to the plurality of second data packets are also different, and the following two scenarios are used as examples for illustration.
- Scenario 1 A first data packet and multiple second data packets are transmitted based on QUIC.
- the process of triggering fast retransmission includes determining that any data packet is lost and retransmitting the data packet.
- the conditions for determining that any data packet is lost include: any data packet is not confirmed, and any data packet is sent earlier than a confirmed data packet, and the difference between the sequence number of any data packet and the maximum sequence number in the confirmed data packet is greater than or equal to the packet threshold.
- the packet threshold can be set based on experience, or flexibly adjusted according to the application scenario. For example, the packet threshold is 3.
- the value range of n can be further narrowed in combination with the maximum sequence number allowed by QUIC, K and N.
- n ⁇ (QUIC maximum allowed sequence number - N-K+1)
- the sequence number N+n+K-1 of the last second data packet in the multiple second data packets will not exceed the maximum sequence number allowed by QUIC, thereby further improving the accuracy of the sequence number setting of the multiple second data packets.
- the first node corresponds to the QUIC sender shown in FIG4
- the second node corresponds to the QUIC receiver shown in FIG4 , taking the value of K as 2 and the value of n as 2 as an example.
- the sending queue of the QUIC sender includes data packets 3 to 7 of the data stream to be sent, and data packet 7 is the tail packet, that is, the first data packet corresponds to data packet 7. Therefore, the QUIC sender generates two second data packets corresponding to data packet 7, namely data packet 9 (7) and data packet 10 (7).
- the QUIC sender continuously sends data packets 3 to 7, data packets 9 (7) and data packets 10 (7) to the QUIC receiver through the sending queue.
- the conditions for determining whether any data packet is lost may also include: any data packet is not confirmed, and any data packet is sent earlier than the data packet with the largest sequence number among the confirmed data packets, and the time earlier than that exceeds the time threshold.
- the time threshold can be set according to experience, or flexibly adjusted according to the application scenario. For example, the time threshold is the time required to send 3 data packets continuously.
- the sequence numbers of the multiple second data packets generated by the first node can be N+1, N+2,..., N+K-1, that is, the sequence number no longer needs to be set to n, but when recording the sending time of multiple second data packets, the time threshold is added to the original sending time.
- the confirmation of the first second data packet among the multiple second data packets can trigger the rapid retransmission of any data packet.
- the first data packet and multiple second data packets are transmitted based on TCP.
- the multiple second data packets generated by the embodiment of the present application have the same sequence number as the first data packet. Taking the sequence number of the first data packet as N as an example, the sequence numbers of the multiple second data packets are all N. Unlike N in scenario one, since the sequence number of the data packet in TCP is divided by byte segments, N in scenario two corresponds to the byte sequence number range to which the data packet in TCP belongs.
- the byte sequence number range of the first data packet in the data stream is (1-9), and the byte sequence number range of the second data packet in the data stream is (10-19). If the byte sequence range of the first data packet is (40-49), then N in the embodiment of the present application corresponds to the byte sequence number range (40-49).
- the embodiment of the present application uses sequence numbers instead of byte sequence number ranges for example.
- the byte sequence number range is (1-9) corresponding to sequence number 1
- the byte sequence number range is (10-19) corresponding to sequence number 2.
- the first node corresponds to the TCP sender shown in FIG5
- the second node corresponds to the TCP receiver shown in FIG5
- the sending queue of the TCP sender includes data packets 3 to 7 of the data stream to be sent, and data packet 7 is the tail packet, that is, the first data packet corresponds to data packet 7. Therefore, the two second data packets corresponding to data packet 7 generated by the TCP sender are two identical data packets 7.
- the TCP sender continuously sends data packets 3 to 6 and three identical data packets 7 to the TCP receiver in sequence through the sending queue.
- the selective acknowledgment (SACK) mechanism is a message from the receiver to the sender. Returns the sequence number range of the received but unacknowledged data packets.
- the sender needs to receive duplicate ACKs of a duplicate threshold (duplicate threshold, dupthresh) to trigger a fast retransmission.
- the duplicate threshold can be set based on experience or flexibly adjusted according to the application scenario. For example, the duplicate threshold is 3.
- the sender sends data packets 1 (0-9), 2 (10-19), 3 (20-29), 4 (30-39), and 5 (40-49) to the receiver in sequence.
- the receiving end If the receiving end receives data packet 1, it returns an ACK packet including sequence number 10 to the sending end; if the receiving end receives data packet 2, it returns an ACK packet including sequence number 20 to the sending end; if data packet 3 is lost, the receiving end receives data packet 4, and returns an ACK packet including sequence number 20 and a SACK packet including sequence numbers (30-39) to the sending end; if data packet 3 is lost, the receiving end receives data packet 5, and returns an ACK packet including sequence number 20 and a SACK packet including sequence numbers (30-49) to the sending end.
- the sending end confirms that data packet 3 is lost based on the receipt of three repeated ACK packets including sequence number 20, thereby triggering a fast retransmission of data packet 3.
- fast retransmission can be further triggered based on the forward acknowledgment (FACK) mechanism.
- the FACK mechanism infers the packet loss of the data stream by recording the maximum sequence number (forward-most) in the SACK. For example, if the difference between the maximum sequence number selectively confirmed by SACK and the confirmed maximum sequence number is greater than or equal to the maximum segment size (MSS) times the repetition threshold, the sender determines that the data packet corresponding to the sequence number after the confirmed maximum sequence number is lost and triggers fast retransmission.
- MSS is the maximum range of the byte sequence number range corresponding to a data packet defined in TCP.
- the sequence numbers of the multiple second data packets are the same as the sequence number of the first data packet.
- the first node After the first node generates multiple second data packets corresponding to the first data packet, it obtains the mapping relationship between the sequence number of the first data packet and the redundant sequence number, and the redundant sequence number is the sum of the sequence number of the first data packet and n.
- n can be determined based on the repetition threshold corresponding to TCP.
- the TCP sender records the mapping relationship ⁇ 7, 9 ⁇ , or records the mapping relationship ⁇ 7*MSS, 9*MSS ⁇ .
- a first node sends a first data packet and multiple second data packets, where the multiple second data packets are used to reduce a probability of packet loss of a tail packet of a data stream.
- the sending of the multiple second data packets can reduce the probability of packet loss of the payload of the tail packet of the data stream, thereby reducing the transmission delay caused by the loss of the tail packet.
- the number of second data packets is determined by the continuous packet loss rate under different unit numbers corresponding to the network, so that the probability of continuous packet loss of the multiple second data packets sent is relatively small, that is, the probability of at least one data packet in the multiple second data packets being received is increased, and the probability of packet loss of the tail packet of the data stream is fully reduced, that is, the tail packet of the data stream is guaranteed as much as possible not to be lost.
- the second node can receive at least one of the first data packet and the multiple second data packets, and based on the at least one received data packet, it will trigger the return of a corresponding confirmation message to the first node, and the confirmation message indicates that the first data packet is confirmed, that is, it indicates that the tail packet of the data stream is received.
- the first node can determine the packet loss of the data stream based on the confirmation message received for the first data packet and any one of the multiple second data packets, that is, determine whether there are lost data packets in the data stream, and quickly retransmit the determined lost data packets without waiting for the RTO mechanism to trigger a timeout retransmission, thereby avoiding the retransmission delay caused by the waiting time for the RTO, thereby effectively reducing the transmission delay of the data stream.
- the first node determines the packet loss of the data stream in different ways according to the confirmation message.
- the confirmation message includes an ACK packet, which is used to indicate that the first data packet is confirmed, and the ACK packet includes the sequence number of the first data packet; or the confirmation message includes a SACK packet.
- the SACK packet is used to indicate that the first data packet and the received data packets sent before the first data packet are confirmed, and the SACK packet includes the sequence number of the received data packet.
- the first node after the first node sends the first data packet and multiple second data packets, based on the confirmation message received for the first data packet and any one of the multiple second data packets, for a third data packet sent before any of the data packets in the data stream but not confirmed, if the difference between the sequence number of any data packet and the sequence number of the third data packet is greater than or equal to the data packet threshold, it is determined that the third data packet is lost, and the retransmission of the payload of the third data packet is triggered.
- the QUIC receiver receives data packets 9, 7 and 4-3 in the data stream in the receiving queue, then the QUIC receiver returns a SACK packet corresponding to the received data packet to the QUIC sender, and the SACK packet includes a maximum acknowledgment number (largest acknowledged) of 9, an acknowledgment range count (ack range count) of 3, a first acknowledgment block (first ack block) of 1, a gap (GAP) (0) of 1, an additional acknowledgment block (additional ack block) (0) of 1, a gap (GAP) (1) of 2, and an additional acknowledgment block (additional ack alock) (1) of 2.
- the largest acknowledgement number is 9 and the ack range count (ack range count) is 3, which means that the number of ack blocks carried in the SACK packet is 3;
- the first ack block (first ack block) is 1, which means that the first ack block starting from 9 includes one data packet, that is, data packet 9 is received, and data packet 9 corresponds to any data packet that triggers the sending of an ack message;
- the gap (GAP) (0) is 1, which means that the first gap block starting from 9 includes one data packet, that is, data packet 8 is not received;
- the additional ack alock (0) is 1, which means that the second ack block starting from 9 includes one data packet, that is, data packet 7 is received;
- the gap (GAP) (1) is 2, which means that the second gap block starting from 9 includes two data packets, that is, data packets 6-5 are not received;
- the additional ack alock (1) is 2, which means that the third ack block starting from 9 includes two data packets, that is, data packets 4-3
- data packet 8 Since 1 does not meet the condition of being greater than or equal to the data packet threshold 3, data packet 8 is not marked as a lost data packet; or, since the tail packet of the data stream is data packet 7, that is, data packet 8 is not originally included in the data stream, the sequence number with the gap of 8 in the confirmation message is directly ignored.
- the QUIC sender retransmits the payload of data packets 6-5, for example, adds two new serial numbered data packets 11 and 12 in the sending queue, the serial number of data packet 11 is 11, the payload of data packet 11 is the payload of data packet 5, the serial number of data packet 12 is 12, and the payload of data packet 12 is the payload of data packet 6, thereby realizing the fast retransmission of data packets 6 and 5.
- the QUIC sender retransmits data packets 11 and 12. If the QUIC receiver receives the retransmitted data packets 11 and 12, the QUIC receiver determines that data packets 6-5 of the data stream are restored according to the stream offset information carried in data packets 11 and 12, thereby completing the transmission of the data stream.
- the stream offset is used by the receiving end to determine the position of the data packet in the data stream.
- fast retransmission is triggered by sending redundant data packets 9, wherein the retransmission delay caused by transmitting data packet 9 is approximately the time of one RTT.
- the retransmission is triggered by waiting for the RTO time or the PTO time, which shortens the time required for triggering the retransmission.
- the method provided in the embodiment of the present application can be implemented by modifying the QUIC code base at the application level of the first node, without modifying the operating system kernel, which is convenient for deployment.
- the record in request for comments (RFC) 9000 when the QUIC receiver receives multiple packets with the same stream offset in the same data stream, the packets with duplicate payloads can be discarded.
- the second node can directly use the above characteristics to discard the received duplicate payloads, so the second node as the receiving end does not need to be modified, which further facilitates deployment.
- the redundant sequence number corresponding to the sequence number of any data packet is obtained in the mapping relationship, and if the difference between the redundant sequence number and the sequence number of the third data packet is less than or equal to the repetition threshold corresponding to TCP, it is determined that the third data packet is lost, and the payload of the third data packet is triggered to be retransmitted.
- mapping relationship corresponding to the sequence numbers of multiple second data packets is recorded by n, and whether the data packet is lost is determined based on the mapping relationship, so that the method can trigger the rapid retransmission of each of the multiple data packets at the end of the continuous loss, thereby improving the efficiency of data retransmission.
- the TCP receiving end receives data packet 7 and data packet 4-3 in the data stream in the receiving queue, and the TCP receiving end returns a SACK packet corresponding to the received data packet to the TCP sending end.
- the SACK packet includes sequence numbers ⁇ 7 ⁇ and ⁇ 4-3 ⁇ , indicating that data packet 7 is confirmed and data packet 4-3 is confirmed.
- the TCP sending end finds that data packet 6 and data packet 5 in the data stream can be confirmed according to the received SACK packet. If the number K of the second data packets is 2 and the repetition threshold is 3, it is further determined whether the data packets 6-5 are lost.
- the TCP sending end retransmits the payload of data packet 6-5, for example, adds data packet 6 and data packet 5 again to the sending queue, and then retransmits data packet 5 and data packet 6 to the TCP receiving end, thereby realizing fast retransmission of data packet 5 and data packet 6. If the TCP receiving end receives the retransmitted data packet 5 and data packet 6, the lost data packet 6-5 is restored, thereby completing the transmission of the data stream.
- fast retransmission is triggered by sending a redundant second data packet 7, wherein the retransmission delay caused by transmitting the redundant second data packet 7 is approximately the time of one RTT, which also shortens the time required to trigger retransmission.
- the confirmation message includes repeated multiple ACK packets, and the multiple ACK packets indicate that the third data packet is lost, and the first node directly retransmits the payload of the third data packet based on the NACK packet; or, the confirmation message includes a lost confirmation (not acknowledgment, NACK) packet, and the NACK packet is used to indicate that the third data packet is lost, and the first node directly retransmits the payload of the third data packet based on the NACK packet.
- NACK not acknowledgment
- the first node after the first node receives the confirmation message returned by the second node, the first node sends an ACK packet corresponding to the confirmation message to the second node, indicating that the confirmation message returned by the second node has been received.
- the second node after receiving the ACK packet corresponding to the confirmation message, the second node can determine that the first data packet in the data stream and the data packet before the first data packet have been successfully received according to the ACK packet corresponding to the confirmation message, and the second node does not need to maintain the packet loss information corresponding to the data stream.
- the QUIC receiver after receiving the ACK packet for the SACK packet sent by the QUIC sender, releases the gap record including 5-8, determines that the payload of data packets 5-8 has been received, and no longer carries the GAP in the SACK packet fed back later.
- the data transmission method provided in the embodiment of the present application performs redundant protection for the tail packet in the data stream, that is, sends multiple redundant tail packets to reduce the probability of tail packet loss, avoid data retransmission of the RTO mechanism or TLP mechanism triggered by the loss of the tail packet, and then avoid the waiting delay caused by the triggering of the RTO mechanism or TLP mechanism, thereby reducing the transmission delay of the data stream and improving the quality and performance of data transmission.
- the redundant number of multiple tail packets in the embodiment of the present application is determined according to the transmission parameters of the network used to transmit the data stream, which can avoid continuous packet loss of multiple tail packets sent, and can also prevent the waste of transmission resources caused by excessive redundant number, so that the determined redundant number of multiple tail packets is more in line with the data transmission requirements.
- Figure 6 is a schematic diagram of the structure of a data transmission device provided in the embodiment of the present application. Based on the following multiple modules shown in Figure 6, the data transmission device shown in Figure 6 can perform all or part of the operations performed by the first node. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown therein, and the embodiment of the present application does not limit this. As shown in Figure 6, the device includes:
- a generating module 601 configured to generate a plurality of second data packets corresponding to the first data packet when the first data packet is the tail packet of the data stream, wherein the payload of any second data packet is the same as the payload of the first data packet, and the number of the plurality of second data packets is determined by a transmission parameter of a network used to transmit the data stream;
- the sending module 602 is used to send a first data packet and multiple second data packets, where the multiple second data packets are used to reduce the probability of packet loss of the tail packet of the data stream.
- the transmission parameters include continuous packet loss rates under different unit quantities; the device also includes: a fitting module, used to perform function fitting on the continuous packet loss rates under different unit quantities corresponding to the network, to obtain a functional relationship between the redundant quantity and the success probability, where the success probability is the probability that at least one of the redundant quantity data packets sent continuously is received; a first determination module, used to obtain the redundant quantity of the functional relationship when the success probability is greater than or equal to a probability threshold, and determine the number of multiple second data packets according to the redundant quantity when the success probability is greater than or equal to the probability threshold.
- a fitting module used to perform function fitting on the continuous packet loss rates under different unit quantities corresponding to the network, to obtain a functional relationship between the redundant quantity and the success probability, where the success probability is the probability that at least one of the redundant quantity data packets sent continuously is received
- a first determination module used to obtain the redundant quantity of the functional relationship when the success probability is greater than or equal to a probability threshold, and determine the number of multiple second data packets according to the redundant quantity when
- a first data packet and multiple second data packets are transmitted based on QUIC, the number of the multiple second data packets is K, the sequence number of the first data packet is N, and K and N are both positive integers; the sequence numbers of the multiple second data packets are different from those of the first data packet, The sequence numbers of the multiple second data packets are N+n, N+n+1,..., N+n+K-1, where n is determined based on the data packet threshold corresponding to QUIC.
- the device also includes: a retransmission module, which is used to trigger the retransmission of the payload of the third data packet based on the confirmation message received for the first data packet and any data packet among the multiple second data packets, for a third data packet sent before any data packet in the data stream but not confirmed, if the difference between the sequence number of any data packet and the sequence number of the third data packet is greater than or equal to a data packet threshold.
- a retransmission module which is used to trigger the retransmission of the payload of the third data packet based on the confirmation message received for the first data packet and any data packet among the multiple second data packets, for a third data packet sent before any data packet in the data stream but not confirmed, if the difference between the sequence number of any data packet and the sequence number of the third data packet is greater than or equal to a data packet threshold.
- a first data packet and multiple second data packets are transmitted based on TCP; the sequence numbers of the multiple second data packets are the same as the sequence number of the first data packet; the device also includes: an acquisition module, used to obtain a mapping relationship between the sequence number of the first data packet and a redundant sequence number, the redundant sequence number is the sum of the sequence number of the first data packet and n, and n is determined based on a repetition threshold corresponding to TCP.
- the device also includes: a retransmission module, which is used to obtain a redundant sequence number corresponding to the sequence number of any data packet in a mapping relationship for a third data packet sent before any data packet in the data stream but not confirmed, based on the confirmation message received for the first data packet and any data packet among the multiple second data packets, and trigger the retransmission of the payload of the third data packet if the difference between the redundant sequence number and the sequence number of the third data packet is greater than or equal to the repetition threshold corresponding to TCP.
- a retransmission module which is used to obtain a redundant sequence number corresponding to the sequence number of any data packet in a mapping relationship for a third data packet sent before any data packet in the data stream but not confirmed, based on the confirmation message received for the first data packet and any data packet among the multiple second data packets, and trigger the retransmission of the payload of the third data packet if the difference between the redundant sequence number and the sequence number of the third data packet is greater than or equal to the repetition threshold corresponding to T
- the device also includes: a second determination module, which is used to determine that the first data packet is the tail packet of the data stream if no data packet belonging to the data stream is added to the sending queue when a first time period has passed after the first data packet is added to the sending queue; or, to determine that the first data packet is the tail packet of the data stream based on an identifier indicating the tail packet carried in the first data packet.
- a second determination module which is used to determine that the first data packet is the tail packet of the data stream if no data packet belonging to the data stream is added to the sending queue when a first time period has passed after the first data packet is added to the sending queue.
- the data transmission device performs redundant protection for the tail packet in the data stream, that is, sends multiple redundant tail packets to reduce the probability of tail packet loss, avoid data retransmission of the RTO mechanism or TLP mechanism triggered by the loss of the tail packet, and then avoid the waiting delay caused by the triggering of the RTO mechanism or TLP mechanism, thereby reducing the transmission delay of the data stream and improving the quality and performance of data transmission.
- the redundant number of multiple tail packets in the embodiment of the present application is determined according to the transmission parameters of the network used to transmit the data stream, which can avoid continuous packet loss of multiple tail packets sent, and can also prevent the waste of transmission resources caused by excessive redundant number, so that the determined redundant number of multiple tail packets is more in line with the data transmission requirements.
- the device provided in FIG. 6 above only uses the division of the above functional modules as an example to implement its functions.
- the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
- the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process is detailed in the method embodiment, which will not be repeated here.
- FIG. 7 shows a schematic diagram of the structure of a data transmission device 2000 provided by an exemplary embodiment of the present application.
- the data transmission device 2000 shown in FIG. 7 is used to perform the operations involved in the data transmission method shown in FIG. 3 above.
- the data transmission device 2000 is, for example, a cloud server, a switch, a router, etc., and the data transmission device 2000 can be implemented by a general bus architecture.
- the data transmission device 2000 includes at least one processor 2001 , a memory 2003 , and at least one communication interface 2004 .
- the processor 2001 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing units (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the solution of the present application.
- the processor 2001 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof.
- the PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
- the processor can implement or execute various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present invention.
- the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on.
- the data transmission device 2000 further includes a bus.
- the bus is used to transmit information between the components of the data transmission device 2000.
- the bus may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus.
- PCI peripheral component interconnect
- EISA extended industry standard architecture
- the bus may be divided into an address bus, a data bus, a control bus, etc.
- FIG. 7 is represented by only one line, but it does not mean that there is only one bus or one type of bus.
- the memory 2003 is, for example, a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EPROM).
- ROM read-only memory
- RAM random access memory
- EPROM electrically erasable programmable read-only memory
- the memory 2003 may be a memory device including a memory card, ...
- the communication interface 2004 uses any transceiver-like device for communicating with other devices or communication networks, and the communication network can be Ethernet, radio access network (RAN) or wireless local area network (WLAN), etc.
- the communication interface 2004 can include a wired communication interface and a wireless communication interface.
- the communication interface 2004 can be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface or a combination thereof.
- the Ethernet interface can be an optical interface, an electrical interface or a combination thereof.
- the communication interface 2004 can be used for the data transmission device 2000 to communicate with other devices.
- the processor 2001 may include one or more CPUs, such as CPU0 and CPU1 shown in FIG7 .
- Each of these processors may be a single-core CPU processor or a multi-core CPU processor.
- the processor here may refer to one or more devices, circuits, and/or processing cores for processing data (e.g., computer program instructions).
- the data transmission device 2000 may include multiple processors, such as the processor 2001 and the processor 2005 shown in FIG7 .
- processors may be a single-core CPU or a multi-core CPU.
- the processor here may refer to one or more devices, circuits, and/or processing cores for processing data (such as computer program instructions).
- the data transmission device 2000 may also include an output device and an input device.
- the output device communicates with the processor 2001 and can display information in a variety of ways.
- the output device may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector.
- the input device communicates with the processor 2001 and can receive user input in a variety of ways.
- the input device may be a mouse, a keyboard, a touch screen device, or a sensor device.
- the memory 2003 is used to store the program code 2010 for executing the solution of the present application
- the processor 2001 can execute the program code 2010 stored in the memory 2003. That is, the data transmission device 2000 can implement the data transmission method provided by the method embodiment through the processor 2001 and the program code 2010 in the memory 2003.
- the program code 2010 may include one or more software modules.
- the processor 2001 itself can also store the program code or instruction for executing the solution of the present application.
- the data transmission device 2000 of the embodiment of the present application may correspond to the data transmission device in each of the above-mentioned method embodiments.
- the processor 2001 in the data transmission device 2000 reads the instructions in the memory 2003, so that the data transmission device 2000 shown in Figure 7 can execute all or part of the operations performed by the first node.
- processor 2001 is used for, when the first data packet is the tail packet of the data stream, the first node generates multiple second data packets corresponding to the first data packet, the payload of any second data packet is the same as the payload of the first data packet, and the number of the multiple second data packets is determined by the transmission parameters of the network used to transmit the data stream; the first node sends the first data packet and multiple second data packets, and the multiple second data packets are used to reduce the probability of packet loss of the tail packet of the data stream.
- the data transmission device 2000 may also correspond to the data transmission apparatus shown in FIG6 , and each functional module in the data transmission apparatus is implemented by the software of the data transmission device 2000.
- the functional modules included in the data transmission apparatus are generated after the processor 2001 of the data transmission device 2000 reads the program code 2010 stored in the memory 2003.
- each step of the data transmission method shown in Figure 3 is completed by the hardware integrated logic circuit or software instructions in the processor of the data transmission device 2000.
- the steps of the method disclosed in conjunction with the embodiment of the present application can be directly embodied as a hardware processor, or a combination of hardware and software modules in the processor.
- the software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
- the storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in conjunction with its hardware. To avoid repetition, it is not described in detail here.
- FIG. 8 shows a schematic diagram of the structure of a data transmission device 2100 provided by another exemplary embodiment of the present application.
- the data transmission device 2100 shown in FIG. 8 is used to perform all or part of the operations involved in the data transmission method shown in FIG. 3 above.
- 2100 is, for example, a cloud server, a switch, a router, etc.
- the data transmission device 2100 can be implemented by a general bus architecture.
- the data transmission device 2100 includes: a main control board 2110 and an interface board 2130 .
- the main control board is also called the main processing unit (MPU) or route processor card.
- the main control board 2110 is used to control and manage various components in the data transmission device 2100, including routing calculation, device management, device maintenance, and protocol processing functions.
- the main control board 2110 includes: a central processing unit 2111 and a memory 2112.
- the interface board 2130 is also called a line processing unit (LPU), a line card or a service board.
- the interface board 2130 is used to provide various service interfaces and realize the forwarding of data packets.
- the service interface includes but is not limited to an Ethernet interface, a POS (Packet over SONET/SDH) interface, etc.
- the Ethernet interface is, for example, a Flexible Ethernet Clients (FlexE Clients) service interface.
- the interface board 2130 includes: a central processor 2131, a network processor 2132, a forwarding table entry memory 2134 and a physical interface card (PIC) 2133.
- PIC physical interface card
- the central processor 2131 on the interface board 2130 is used to control and manage the interface board 2130 and communicate with the central processor 2111 on the main control board 2110 .
- the network processor 2132 is used to implement the forwarding processing of the message.
- the network processor 2132 may be in the form of a forwarding chip.
- the forwarding chip may be a network processor (NP).
- the forwarding chip may be implemented by an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA).
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- the network processor 2132 is used to forward the received message based on the forwarding table stored in the forwarding table entry memory 2134.
- the message is sent to the CPU (such as the central processor 2131) for processing; if the destination address of the message is not the address of the data transmission device 2100, the next hop and the output interface corresponding to the destination address are found from the forwarding table according to the destination address, and the message is forwarded to the output interface corresponding to the destination address.
- the processing of the uplink message may include: processing of the message input interface, forwarding table search; the processing of the downlink message may include: forwarding table search, etc.
- the central processing unit may also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, so that a forwarding chip is not required in the interface board.
- the physical interface card 2133 is used to implement the physical layer docking function, whereby the original traffic enters the interface board 2130, and the processed message is sent out from the physical interface card 2133.
- the physical interface card 2133 also called a daughter card, can be installed on the interface board 2130, and is responsible for converting the photoelectric signal into a message and forwarding the message to the network processor 2132 for processing after checking the legitimacy of the message.
- the central processor 2131 can also perform the functions of the network processor 2132, such as implementing software forwarding based on a general-purpose CPU, so that the network processor 2132 is not required in the physical interface card 2133.
- the data transmission device 2100 includes a plurality of interface boards, for example, the data transmission device 2100 further includes an interface board 2140, and the interface board 2140 includes: a central processor 2141, a network processor 2142, a forwarding table entry memory 2144, and a physical interface card 2143.
- the functions and implementation methods of the components in the interface board 2140 are the same or similar to those of the interface board 2130, and are not described in detail herein.
- the data transmission device 2100 further includes a switching fabric board 2120.
- the switching fabric board 2120 may also be referred to as a switch fabric unit (SFU).
- SFU switch fabric unit
- the switching fabric board 2120 is used to complete data exchange between the interface boards.
- the interface board 2130 and the interface board 2140 may communicate through the switching fabric board 2120.
- the main control board 2110 is coupled to the interface board.
- the main control board 2110, the interface board 2130, the interface board 2140, and the switching network board 2120 are connected to the system backplane through the system bus to achieve intercommunication.
- an inter-process communication (IPC) channel is established between the main control board 2110 and the interface board 2130 and the interface board 2140, and the main control board 2110 and the interface board 2130 and the interface board 2140 communicate through the IPC channel.
- IPC inter-process communication
- the data transmission device 2100 includes a control plane and a forwarding plane.
- the control plane includes a main control board 2110 and a central processing unit 2111.
- the forwarding plane includes various components for performing forwarding, such as a forwarding table entry memory 2134, a physical interface card 2133, and a network processor 2132.
- the control plane performs functions such as a router, generating a forwarding table, processing signaling and protocol messages, and configuring and maintaining the status of the data transmission device.
- the control plane sends the generated forwarding table to the forwarding plane.
- the network processor 2132 forwards the message received by the physical interface card 2133 based on the forwarding table sent by the control plane.
- the forwarding table sent by the control plane can be stored in the forwarding table entry memory 2134. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same data transmission device.
- main control boards which may include a primary main control board and a backup main control board.
- interface boards There may be one or more interface boards. The stronger the data processing capability of the data transmission equipment, the more interface boards are provided.
- data transmission equipment may not need a switching network board, and the interface board is responsible for processing the business data of the entire system.
- data transmission equipment may have at least one switching network board, and the switching network board is used to realize the communication between multiple interface boards.
- Data exchange providing large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of data transmission equipment with a distributed architecture are greater than those of data transmission equipment with a centralized architecture.
- the data transmission equipment can also be in the form of only one board, that is, there is no switching network board, and the functions of the interface board and the main control board are integrated on this board.
- the central processor on the interface board and the central processor on the main control board can be combined into one central processor on the board to perform the functions of the two superimposed.
- This form of data transmission equipment has low data exchange and processing capabilities (for example, low-end switches or routers and other data transmission equipment). Which architecture to use depends on the specific networking deployment scenario, and no limitation is made here.
- the data transmission device 2100 corresponds to the data transmission apparatus shown in Figure 6.
- the generation module 601 in the data transmission apparatus shown in Figure 6 is equivalent to the network processor 2132 in the data transmission device 2100
- the sending module 602 is equivalent to the physical interface card 2133 in the data transmission device 2100.
- the embodiment of the present application also provides a communication device, which includes: a transceiver, a memory, and a processor.
- the transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the processor executes the method required to be executed by the first node.
- the embodiment of the present application also provides a data transmission device, which includes: a processor, the processor is coupled to a memory, the memory stores at least one program instruction or code, and the at least one program instruction or code is loaded and executed by the processor, so that the data transmission device implements the data transmission method shown in Figure 3.
- a data transmission device which includes: a processor, the processor is coupled to a memory, the memory stores at least one program instruction or code, and the at least one program instruction or code is loaded and executed by the processor, so that the data transmission device implements the data transmission method shown in Figure 3.
- the memory may be integrated with the processor, or the memory may be provided separately from the processor.
- the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated with the processor on the same chip or can be set on different chips.
- ROM read-only memory
- the processor may be a CPU, or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
- DSP digital signal processors
- ASIC application specific integrated circuits
- FPGA field-programmable gate arrays
- the general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting the advanced RISC machines (ARM) architecture.
- the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor.
- the memory may also include a non-volatile random access memory.
- the memory may also store information about the device type.
- the memory may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memory.
- the nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
- the volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available.
- SRAM static RAM
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- DDR SDRAM double data rate synchronous dynamic random access memory
- ESDRAM enhanced synchronous dynamic random access memory
- SLDRAM synchronous link dynamic random access memory
- DR RAM direct rambus RAM
- An embodiment of the present application further provides a computer-readable storage medium, in which at least one instruction is stored.
- the instruction is loaded and executed by a processor so that a computer implements any of the above data transmission methods.
- the embodiments of the present application also provide a computer program (product), which, when executed by a computer, can enable a processor or a computer to execute the corresponding steps and/or processes in the above method embodiments.
- An embodiment of the present application also provides a chip, including a processor, for calling and executing instructions stored in the memory from the memory, so that a communication device equipped with the chip executes any of the above data transmission methods.
- An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory.
- the processor is used to execute any of the above data transmission methods.
- all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof.
- the computer program product includes one or more computer instructions.
- the computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
- the computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
- the computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode.
- the computer-readable storage medium can be any available medium that the computer can access or a data storage device such as a server or data center that includes one or more available media integration.
- the available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state drive (solid state disk)), etc.
- the computer program product includes one or more computer program instructions.
- the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target.
- a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure.
- the function of the program module can be merged or divided between the described program modules.
- the machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.
- the computer program code for realizing the method for the embodiment of the present application can be written in one or more programming languages. These computer program codes can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device, so that the program code, when executed by a computer or other programmable data processing device, causes the function/operation specified in the flow chart and/or block diagram to be implemented.
- the program code can be executed completely on a computer, partially on a computer, as an independent software package, partially on a computer and partially on a remote computer or completely on a remote computer or server.
- computer program codes or related data may be carried by any appropriate carrier to enable a device, apparatus or processor to perform the various processes and operations described above.
- Examples of carriers include signals, computer readable media, and the like.
- Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.
- a machine-readable medium may be any tangible medium that contains or stores a program for or related to an instruction execution system, apparatus, or device.
- a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
- a machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer 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 storage device, a magnetic storage device, or any suitable combination thereof.
- the disclosed systems, devices and methods can be implemented in other ways.
- the device embodiments described above are only schematic.
- the division of the module is only a logical function division. There may be other division methods in actual implementation, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed.
- the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or it can be an electrical, mechanical or other form of connection.
- modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, that is, they may be located in one place or distributed on multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
- each functional module in each embodiment of the present application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module.
- the above integrated modules can be implemented in the form of hardware or software functional modules.
- the integrated module is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium.
- the technical solution of the present application is essentially 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, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code.
- first, second, etc. are used to distinguish between identical or similar items having substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between “first”, “second”, and “nth”, nor is there a limitation on quantity and execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of various examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. Both the first image and the second image may be images, and in some cases, may be separate and different images.
- the size of the serial number of each process does not mean the order of execution.
- the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
- determining B based on A does not mean determining B only based on A.
- B can also be determined based on A and/or other information.
- references to “one embodiment”, “an embodiment”, or “a possible implementation” throughout the specification mean that specific features, structures, or characteristics related to the embodiment or implementation are included in at least one embodiment of the present application. Therefore, the references to “in one embodiment” or “in an embodiment”, or “a possible implementation” throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
Claims (17)
- 一种数据传输方法,其特征在于,所述方法包括:在第一数据包为数据流的尾包的情况下,第一节点生成所述第一数据包对应的多个第二数据包,任一第二数据包的载荷与所述第一数据包的载荷相同,所述多个第二数据包的数量由用于传输所述数据流的网络的传输参数确定;所述第一节点发送所述第一数据包和所述多个第二数据包,所述多个第二数据包用于减小所述数据流的尾包的丢包概率。
- 根据权利要求1所述的方法,其特征在于,所述传输参数包括所述网络对应的不同单位数量下的连续丢包率;所述第一节点生成所述第一数据包对应的多个第二数据包之前,还包括:对所述网络对应的不同单位数量下的连续丢包率进行函数拟合,得到冗余数量与成功概率的函数关系,所述成功概率为连续发送的冗余数量个数据包中的至少一个数据包被接收的概率;获取所述函数关系在所述成功概率大于等于概率阈值的情况下的冗余数量,根据所述在所述成功概率大于等于概率阈值的情况下的冗余数量确定所述多个第二数据包的数量。
- 根据权利要求1或2所述的方法,其特征在于,所述第一数据包和所述多个第二数据包基于快速用户数据报文协议互联网连接QUIC传输,所述多个第二数据包的数量为K,所述第一数据包的序列号为N,所述K和所述N均为正整数;所述多个第二数据包与所述第一数据包的序列号不同,所述多个第二数据包的序列号分别为N+n、N+n+1、...、N+n+K-1,所述n基于所述QUIC对应的数据包阈值确定。
- 根据权利要求3所述的方法,其特征在于,所述第一节点发送所述第一数据包和所述多个第二数据包之后,还包括:基于接收到所述第一数据包和所述多个第二数据包中的任一数据包的确认消息,对于所述数据流中在所述任一数据包之前发送的但未被确认的第三数据包,如果所述任一数据包的序列号与所述第三数据包的序列号的差值大于等于所述数据包阈值,触发重传所述第三数据包的载荷。
- 根据权利要求1或2所述的方法,其特征在于,所述第一数据包与所述多个第二数据包基于传输控制协议TCP传输;所述多个第二数据包的序列号与所述第一数据包的序列号相同;所述第一节点生成所述第一数据包对应的多个第二数据包之后,还包括:获取所述第一数据包的序列号与冗余序列号的映射关系,所述冗余序列号为所述第一数据包的序列号与n的和值,所述n基于所述TCP对应的重复阈值确定。
- 根据权利要求5所述的方法,其特征在于,所述第一节点发送所述第一数据包和所述多个第二数据包之后,还包括:基于接收到所述第一数据包和所述多个第二数据包中的任一数据包的确认消息,对于所述数据流中在所述任一数据包之前发送的但未被确认的第三数据包,在所述映射关系中获取所述任一数据包的序列号对应的冗余序列号,如果所述冗余序列号与所述第三数据包的序列号的差值大于等于所述重复阈值,触发重传所述第三数据包的载荷。
- 根据权利要求1-6任一所述的方法,其特征在于,所述第一节点生成所述第一数据包对应的多个第二数据包之前,还包括:在到达所述第一数据包加入发送队列之后的第一时长的情况下,若所述发送队列中没有属于所述数据流中的数据包加入,所述第一节点确定所述第一数据包为所述数据流的尾包;或者,所述第一节点根据所述第一数据包中携带的指示尾包的标识确定所述第一数据包为所述数据流 的尾包。
- 一种数据传输装置,其特征在于,所述装置包括:生成模块,用于在第一数据包为数据流的尾包的情况下,生成所述第一数据包对应的多个第二数据包,任一第二数据包的载荷与所述第一数据包的载荷相同,所述多个第二数据包的数量由用于传输所述数据流的网络的传输参数确定;发送模块,用于发送所述第一数据包和所述多个第二数据包,所述多个第二数据包用于减小所述数据流的尾包的丢包概率。
- 根据权利要求8所述的装置,其特征在于,所述传输参数包括不同单位数量下的连续丢包率;所述装置还包括:拟合模块,用于对所述网络对应的不同单位数量下的连续丢包率进行函数拟合,得到冗余数量与成功概率的函数关系,所述成功概率为连续发送的冗余数量个数据包中的至少一个数据包被接收的概率;第一确定模块,用于获取所述函数关系在所述成功概率大于等于概率阈值的情况下的冗余数量,根据所述在所述成功概率大于等于概率阈值的情况下的冗余数量确定所述多个第二数据包的数量。
- 根据权利要求8或9所述的装置,其特征在于,所述第一数据包和所述多个第二数据包基于快速用户数据报文协议互联网连接QUIC传输,所述多个第二数据包的数量为K,所述第一数据包的序列号为N,所述K和所述N均为正整数;所述多个第二数据包与所述第一数据包的序列号不同,所述多个第二数据包的序列号分别为N+n、N+n+1、...、N+n+K-1,所述n基于所述QUIC对应的数据包阈值确定。
- 根据权利要求10所述的装置,其特征在于,所述装置还包括:重传模块,用于基于接收到所述第一数据包和所述多个第二数据包中的任一数据包的确认消息,对于所述数据流中在所述任一数据包之前发送的但未被确认的第三数据包,如果所述任一数据包的序列号与所述第三数据包的序列号的差值大于等于所述数据包阈值,触发重传所述第三数据包的载荷。
- 根据权利要求8或9所述的装置,其特征在于,所述第一数据包与所述多个第二数据包基于传输控制协议TCP传输;所述多个第二数据包的序列号与所述第一数据包的序列号相同;所述装置还包括:获取模块,用于获取所述第一数据包的序列号与冗余序列号的映射关系,所述冗余序列号为所述第一数据包的序列号与n的和值,所述n基于所述TCP对应的重复阈值确定。
- 根据权利要求12所述的装置,其特征在于,所述装置还包括:重传模块,用于基于接收到所述第一数据包和所述多个第二数据包中的任一数据包的确认消息,对于所述数据流中在所述任一数据包之前发送的但未被确认的第三数据包,在所述映射关系中获取所述任一数据包的序列号对应的冗余序列号,如果所述冗余序列号与所述第三数据包的序列号的差值大于等于所述重复阈值,触发重传所述第三数据包的载荷。
- 根据权利要求8-13任一所述的方法,其特征在于,所述装置还包括:第二确定模块,用于在到达所述第一数据包加入发送队列之后的第一时长的情况下,若所述发送队列中没有属于所述数据流的数据包加入,确定所述第一数据包为所述数据流的尾包;或者,用于根据所述第一数据包中携带的指示尾包的标识确定所述第一数据包为所述数据流的尾包。
- 一种数据传输设备,其特征在于,所述数据传输设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条程序指令或代码,所述至少一条程序指令或代码由所述处理器加载并执行,以使所述数据传输设备实现权利要求1-7中任一所述的数据传输方法。
- 一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行,以使计算机实现如权利要求1-7中任一所述的数据传输方法。
- 一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,所述计算机程序代码由计算机加载并执行,以使所述计算机实现权利要求1-7中任一所述的数据传输方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP24802831.8A EP4694093A4 (en) | 2023-05-09 | 2024-04-29 | METHOD, DATA TRANSMISSION APPARATUS, DEVICE AND COMPUTER-READABLE STORAGE MEDIA |
| US19/382,983 US20260067236A1 (en) | 2023-05-09 | 2025-11-07 | Data Transmission Method, Apparatus, and Device, and Computer-Readable Storage Medium |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310518999.8 | 2023-05-09 | ||
| CN202310518999.8A CN118945244A (zh) | 2023-05-09 | 2023-05-09 | 数据传输方法、装置、设备及计算机可读存储介质 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US19/382,983 Continuation US20260067236A1 (en) | 2023-05-09 | 2025-11-07 | Data Transmission Method, Apparatus, and Device, and Computer-Readable Storage Medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024230547A1 true WO2024230547A1 (zh) | 2024-11-14 |
Family
ID=93355111
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/090516 Ceased WO2024230547A1 (zh) | 2023-05-09 | 2024-04-29 | 数据传输方法、装置、设备及计算机可读存储介质 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20260067236A1 (zh) |
| EP (1) | EP4694093A4 (zh) |
| CN (1) | CN118945244A (zh) |
| WO (1) | WO2024230547A1 (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119847973A (zh) * | 2025-03-20 | 2025-04-18 | 上海壁仞科技股份有限公司 | 数据传输方法、数据传输装置、片上系统及存储介质 |
| CN119996782A (zh) * | 2025-04-11 | 2025-05-13 | 通号通信信息集团有限公司 | 一种视频数据传输中的丢包处理方法、装置、设备及介质 |
| CN120200634A (zh) * | 2025-05-27 | 2025-06-24 | 德力西集团仪器仪表有限公司 | 基于quic的hplc双模传输方法、装置及网络 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3706371A1 (en) * | 2017-12-28 | 2020-09-09 | Huawei Technologies Co., Ltd. | Network quality measurement method and apparatus thereof |
| WO2021035541A1 (zh) * | 2019-08-27 | 2021-03-04 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
| CN114389758A (zh) * | 2020-10-19 | 2022-04-22 | 华为技术有限公司 | 一种数据传输方法和装置 |
| CN114531212A (zh) * | 2020-11-23 | 2022-05-24 | 华为技术有限公司 | 数据传输的方法和装置 |
| CN115734404A (zh) * | 2021-08-25 | 2023-03-03 | 大唐移动通信设备有限公司 | 基站内数据传输方法、装置及网络设备 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104580171B (zh) * | 2014-12-24 | 2018-01-12 | 北京高森明晨信息科技有限公司 | Tcp协议的传输方法、装置和系统 |
| CN106878191B (zh) * | 2015-12-14 | 2018-11-16 | 华为技术有限公司 | 一种数据传送方法、发送节点、接收节点及数据传送系统 |
-
2023
- 2023-05-09 CN CN202310518999.8A patent/CN118945244A/zh active Pending
-
2024
- 2024-04-29 EP EP24802831.8A patent/EP4694093A4/en active Pending
- 2024-04-29 WO PCT/CN2024/090516 patent/WO2024230547A1/zh not_active Ceased
-
2025
- 2025-11-07 US US19/382,983 patent/US20260067236A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3706371A1 (en) * | 2017-12-28 | 2020-09-09 | Huawei Technologies Co., Ltd. | Network quality measurement method and apparatus thereof |
| WO2021035541A1 (zh) * | 2019-08-27 | 2021-03-04 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
| CN114389758A (zh) * | 2020-10-19 | 2022-04-22 | 华为技术有限公司 | 一种数据传输方法和装置 |
| CN114531212A (zh) * | 2020-11-23 | 2022-05-24 | 华为技术有限公司 | 数据传输的方法和装置 |
| CN115734404A (zh) * | 2021-08-25 | 2023-03-03 | 大唐移动通信设备有限公司 | 基站内数据传输方法、装置及网络设备 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4694093A1 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119847973A (zh) * | 2025-03-20 | 2025-04-18 | 上海壁仞科技股份有限公司 | 数据传输方法、数据传输装置、片上系统及存储介质 |
| CN119996782A (zh) * | 2025-04-11 | 2025-05-13 | 通号通信信息集团有限公司 | 一种视频数据传输中的丢包处理方法、装置、设备及介质 |
| CN120200634A (zh) * | 2025-05-27 | 2025-06-24 | 德力西集团仪器仪表有限公司 | 基于quic的hplc双模传输方法、装置及网络 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4694093A1 (en) | 2026-02-11 |
| CN118945244A (zh) | 2024-11-12 |
| US20260067236A1 (en) | 2026-03-05 |
| EP4694093A4 (en) | 2026-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2024230547A1 (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
| US20060203730A1 (en) | Method and system for reducing end station latency in response to network congestion | |
| JP7327730B2 (ja) | パケット処理方法および装置 | |
| CN108881008A (zh) | 一种数据传输的方法、装置和系统 | |
| CN118199821A (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
| CN107104902B (zh) | 一种rdma数据传输的方法、相关装置与系统 | |
| CN105103500A (zh) | 通信方法、通信装置以及通信程序 | |
| EP4622214A1 (en) | Data transmission method, apparatus, device and system, and storage medium | |
| WO2024113459A1 (zh) | 基于双单向光闸系统的数据传输方法、装置、设备及介质 | |
| CN119166567A (zh) | 用于远程直接存储器访问的设备和方法 | |
| US10326696B2 (en) | Transmission of messages by acceleration components configured to accelerate a service | |
| CN106712908B (zh) | 数据传输方法、装置和系统 | |
| CN121399907A (zh) | 协同拥塞控制和自适应负载均衡 | |
| US20260074998A1 (en) | Congestion control method, apparatus, and system | |
| CN112737737B (zh) | 一种确认报文的处理方法和通信装置以及存储介质 | |
| US11962517B2 (en) | Communications method, apparatus, and system for recovering lost packets | |
| US8854957B2 (en) | Packet retransmission control system, packet retransmission control method and retransmission control program | |
| CN120050005A (zh) | 一种基于rdma可编程交换机网关的多级选择重传系统 | |
| CN110677871A (zh) | 数据发送方法及发送设备、数据接收方法及接收设备 | |
| CN118199824A (zh) | 数据传输方法、装置、设备、系统及存储介质 | |
| TWI839155B (zh) | 電腦裝置以及應用於電腦裝置的傳輸控制協定封包處理方法 | |
| CN118487721A (zh) | 网络报文转发方法、装置、交换机和存储介质 | |
| US7450512B1 (en) | Recirculating retransmission queuing system and method | |
| US12621088B2 (en) | Method and apparatus for transmitting objects based on deadline-aware | |
| US20240154735A1 (en) | Method and apparatus for transmitting objects based on deadline-aware |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24802831 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024802831 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2024802831 Country of ref document: EP Effective date: 20251107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024802831 Country of ref document: EP Effective date: 20251107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024802831 Country of ref document: EP Effective date: 20251107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024802831 Country of ref document: EP Effective date: 20251107 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2024802831 Country of ref document: EP Effective date: 20251107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024802831 Country of ref document: EP Effective date: 20251107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024802831 Country of ref document: EP Effective date: 20251107 |
|
| ENP | Entry into the national phase |
Ref document number: 2024802831 Country of ref document: EP Effective date: 20251107 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2024802831 Country of ref document: EP |