WO2019154134A1 - 一种数据包发送方法及相关设备 - Google Patents

一种数据包发送方法及相关设备 Download PDF

Info

Publication number
WO2019154134A1
WO2019154134A1 PCT/CN2019/073261 CN2019073261W WO2019154134A1 WO 2019154134 A1 WO2019154134 A1 WO 2019154134A1 CN 2019073261 W CN2019073261 W CN 2019073261W WO 2019154134 A1 WO2019154134 A1 WO 2019154134A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
small data
packet
small
sending end
Prior art date
Application number
PCT/CN2019/073261
Other languages
English (en)
French (fr)
Inventor
祝建建
邓宇
刘伟
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CA3090903A priority Critical patent/CA3090903C/en
Priority to CN201980013117.4A priority patent/CN111713056B/zh
Priority to KR1020207025498A priority patent/KR102476192B1/ko
Priority to ES19751709T priority patent/ES2955714T3/es
Priority to EP19751709.7A priority patent/EP3739784B1/en
Publication of WO2019154134A1 publication Critical patent/WO2019154134A1/zh
Priority to US16/991,493 priority patent/US11444867B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1825Adaptation of specific ARQ protocol parameters according to transmission conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Definitions

  • the present application relates to the field of communications, and in particular, to a data packet sending method and related device.
  • multi-path transmission technology realizes throughput improvement by parallel transmission of multiple paths, or realizes service continuity and reliability through multi-path.
  • a common one is the Multiple Path Transmission Control Protocol (MPTCP).
  • MPTCP Multiple Path Transmission Control Protocol
  • Multi-path transmission technology can support one connection multi-path transmission, that is, the data on a single path is divided and transmitted on different sub-streams, so that there are multiple paths between two addresses in the connection, thereby reducing the address unreachable. The risk also makes the connection uninterrupted during the process of adding or changing the transmission path.
  • the plurality of substreams may include a WiFi network and a cellular network, which may be a 5G network, a 4G network, such as a Long Term Evolution (LTE), or a 3G network, such as Code Division Multiple Access (CDMA, Code Division). Multiple Access) network, or 2G network.
  • a cellular network which may be a 5G network, a 4G network, such as a Long Term Evolution (LTE), or a 3G network, such as Code Division Multiple Access (CDMA, Code Division). Multiple Access) network, or 2G network.
  • the packet transmission control strategy is enabled.
  • the sender when the sender has a small packet in the sent but unacknowledged state, the sender is not allowed to continue to send small packets.
  • the packet transmission control policy may fail to send multiple small data packets carrying the same data on multiple paths in time, and need to wait for a small packet. After the ACK packet corresponding to the data packet is sent back, the small data packet is continuously transmitted, which affects the efficiency of data transmission.
  • the embodiment of the present application provides a data packet sending method and related device, which improves the efficiency of data transmission.
  • the embodiment of the present application provides a data packet sending method, including: a sending end first determines that a multi-path connection satisfies a first condition, and a first condition is used to cancel a packet sending control policy used by the multi-path connection, where the small packet is sent.
  • the control strategy is used to control the interval at which the sender sends small packets through the multipath connection.
  • the length of the data included in the small data packet is less than the maximum packet length MSS; then the packet transmission control policy is released; and after the packet transmission control policy is released
  • the transmitting end sends multiple small data packets on multiple paths of the multi-path connection through a redundant transmission mode, and the plurality of small data packets include small data packets carrying the same data.
  • the packet transmission control policy can be adaptively cancelled under the condition that the condition is satisfied by the added judgment mechanism without changing the protocol stack.
  • the default configuration of the packet delivery control policy After the packet transmission control policy is released, multiple small data packets carrying the same data are transmitted on multiple paths through the redundant transmission mode, thereby improving the efficiency of data transmission.
  • the first condition includes that the redundant scheduling policy is configured on the sending end, the scheduling policy of the multi-path connection is a redundant scheduling policy, the receiving end of the multi-path connection is configured with a redundant scheduling policy, and the small data packet is sent by using a redundant scheduling policy.
  • Data packet the small data packet needs to be repeatedly sent on another path after being sent on one path of the multi-path connection, and at least one of the data packets currently sent by the transmitting end on multiple paths of the multi-path connection
  • the redundant scheduling policy is used to instruct the transmitting end to transmit data through the redundant transmission mode.
  • the method for determining that a small data packet is lost or failed during transmission includes at least: after the sender sends a small data packet on a path of the multipath connection, the preset time length is not received.
  • the acknowledgement packet corresponding to the small data packet the sender can determine that the small data packet is lost or failed to be sent.
  • the sender receives the large data packet corresponding to the large data packet.
  • the acknowledgement packet corresponding to the small data packet is not received, and the sender may determine that the small data packet is lost or failed to be sent.
  • the data in the small data packet includes a header of a protocol above the TCP protocol, such as a header of a Remote Procedure Call Protocol (RPC), a header of a HyperText Transfer Protocol (HTTP), and does not include
  • the TCP header and the lower layer header such as the Internet Control Message Protocol (ICMP)
  • the length of the data included in the small data packet is the sum of the length of the valid data and the length of the header of the protocol above the TCP protocol.
  • the packet transmission control policy takes effect, and further, it is necessary to determine whether to cancel the packet transmission control policy used by the multipath connection.
  • the transmitting end may preset the timing time, and after the transmitting end sends the small data packet to the receiving end, the predetermined time is not reached, and the small data packet is not allowed to carry the same data. data pack.
  • the sending end may start a blocking sending condition, where the blocking sending condition is used by the sending end after sending the small data packet and before receiving the ACK packet corresponding to the returned small data packet,
  • the small packet carries a small packet of the same data. If the small data packets are spliced into one large data packet after waiting for a period of time, the spliced large data packet is allowed to be sent to the receiving end.
  • the time interval at which the transmitting end sends small data packets through the multipath connection can be controlled, thereby implementing a packet transmission control policy and improving the load in the transmitted data packet.
  • the transmitting end stops executing the packet transmission control policy, for example, when performing the control logic corresponding to the packet transmission control policy, skipping the control logic, or directly closing the packet transmission control policy after determining that the condition is met. Corresponding control logic.
  • the sending end modifies the sequence number corresponding to the first small data packet in the sending end, or modifies the sequence number of the first ACK packet received by the sending end, so that the first small data packet corresponding to the sending end corresponds to The sequence number is less than or equal to the sequence number of the first ACK packet, the first small data packet is the last small data packet sent by the sender before the current time, and the sender does not receive the ACK packet corresponding to the first small data packet, and the first ACK packet The ACK packet with the largest sequence number received by the sender before the current time.
  • the sending end controls the time interval at which the transmitting end sends the small data packet through the multipath connection through the timer, and after the sending end sends the first small data packet through the multipath connection, the sending end modifies the timer to make the timing.
  • the device arrives at a predetermined time in advance, and the first small data packet is the last small data packet sent by the transmitting end before the current time.
  • the packet transmission control policy can be cancelled, without waiting for the ACK packet corresponding to the first small data packet to be transmitted back. Send small packets to improve the efficiency of data transmission.
  • the transmitting end skips the corresponding control logic when executing the control logic corresponding to the packet transmission control policy, or determines that the control logic corresponding to the packet transmission control policy is closed after the condition is met.
  • the sender can send multiple small data packets on multiple paths of the multipath connection through the redundant transmission mode.
  • the first small data packet corresponding to the sending end corresponds to The sequence number is less than or equal to the sequence number of the first ACK packet, which may indicate that the sender has received all the ACK packets corresponding to the small data packet, so that the sender can wait for the ACK packet corresponding to the first small data packet to be sent back before continuing to send the small ACK packet.
  • the data packet so as to achieve the purpose of releasing the packet transmission control strategy.
  • At least one path in which the first small data packet has not been transmitted in the plurality of paths of the multipath connection is allowed to transmit a small data packet carrying the same data as the first small data packet.
  • the sequence number corresponding to the first small data packet in the sending end may be modified or the sequence number of the first ACK packet received by the sending end may be modified, which may be sent again.
  • the terminal has received all the ACK packets corresponding to the small data packet, so that the transmitting end can continue to send the small data packet without waiting for the ACK packet corresponding to the small data packet to be sent back, and the small packet transmission control policy is cancelled, and the redundant transmission mode is adopted.
  • the second small data packet is sent on multiple paths of the multipath connection.
  • the transmitting end can continue without waiting for the ACK packet corresponding to the unacknowledged small data packet to be sent back.
  • the small packet is sent, so as to achieve the purpose of releasing the packet transmission control strategy.
  • another small packet carrying the same data as the first small data packet may be transmitted on another path in which the first small data packet has not been transmitted in the plurality of paths of the multipath connection.
  • the number of unacknowledged small data packets is changed to 0, and the transmitting end can transmit the same data as the first small data packet on another path in the multiple paths of the multipath connection that has not sent the first small data packet.
  • Small packet In this way, after each small packet is sent, the number of unacknowledged small data packets is kept 0, or the number of unconfirmed small data packets is changed to 0, so that the transmitting end can send other small data packets in time.
  • the sending end sends the first small data packet through the multi-path connection
  • the timer since the timer has been modified to make the timer reach the predetermined time in advance, the ACK packet corresponding to the first small data packet is received.
  • the path of the first small data packet may not be sent in multiple paths of the multipath connection through the redundant transmission mode without waiting to receive the ACK packet corresponding to the first small data packet.
  • Sending a small data packet carrying the same data as the first small data packet; and, after transmitting the small data packet carrying the same data as the first small data packet, the transmitting end may modify the timer again to make the timer arrive early. Set the time; when the timer reaches the predetermined time again in advance, the second small data packet is transmitted on the path of the multipath connection.
  • the transmitting end can send multiple small data packets carrying the same data on multiple paths through the redundant transmission mode, thereby improving the efficiency of data transmission.
  • a small data packet carrying the same data as the first small data packet may be immediately transmitted on the path in which the first small data packet is not transmitted among the plurality of paths of the multi-path connection.
  • the preparation steps related to the sending for example, packet encapsulation, passing the message to a hardware processing such as a network card, etc.
  • the delay may be delayed for a period of time, and then the small data packet carrying the same data as the first small data packet is sent on the path in which the first small data packet is not sent in the multiple paths of the multipath connection.
  • the embodiment of the present application provides a data packet sending apparatus, where the device is a multi-path connection transmitting end, and includes: a determining module, configured to determine that the multi-path connection satisfies the first condition, and the first condition is used to release the multi-path
  • the packet connection control strategy is used for the path connection, and the packet transmission control policy is used to control the time interval at which the sender sends small data packets through the multipath connection.
  • the length of the data included in the small data packet is less than the maximum packet length MSS; the processing module uses After the packet transmission control policy is released, the sending module is configured to send multiple small data packets on multiple paths of the multi-path connection through the redundant transmission mode after releasing the packet transmission control policy, and the plurality of small data packets include carrying Small packets of the same data.
  • the packet transmission control policy can be adaptively cancelled under the condition that the condition is satisfied by the added judgment mechanism without changing the protocol stack.
  • the default configuration of the packet transmission control policy is in a mode that does not require redundant transmission. After the packet transmission control policy is released, multiple small data packets carrying the same data are transmitted on multiple paths through the redundant transmission mode, thereby improving the efficiency of data transmission.
  • the second aspect is the apparatus corresponding to the first aspect, that is, the foregoing sending end, that is, one end of transmitting a small data packet, and various specific implementation manners, descriptions, and technical effects thereof are not described herein.
  • an embodiment of the present application provides a data packet sending device, including a processing circuit, a communication interface, and a storage medium.
  • the storage medium stores a protocol stack program
  • the communication interface is used to send and receive data with other devices by executing a protocol stack program.
  • the packet is used by the processor to communicate the instructions in the storage medium through the communication interface to implement the data packet transmission method of the first aspect and the various implementations of the first aspect.
  • the third aspect is the apparatus corresponding to the first aspect or the second aspect, that is, the above-mentioned transmitting end, and various specific implementation manners, descriptions, and technical effects thereof are not described again.
  • the present application provides a computer readable storage medium having instructions stored therein that, when executed on a computer, cause the computer to perform the methods of the above aspects.
  • the present application provides a computer program product comprising instructions which, when run on a computer, cause the computer to perform the methods of the various aspects described above.
  • FIG. 1 is a schematic structural diagram of a multipath system according to an embodiment of the present application.
  • FIG. 2 is a schematic overall structural diagram of a device supporting MPTCP technology provided by an embodiment of the present application.
  • FIG. 3 is a schematic diagram of small data transmission according to an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a transmission delay test according to an embodiment of the present application.
  • FIG. 5 is a schematic diagram of a transmission delay statistic provided by an embodiment of the present application.
  • FIG. 6 is a schematic flowchart of a data packet sending method according to an embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of a data packet sending apparatus according to an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of an apparatus according to an embodiment of the present application.
  • Host An end node used to initiate or receive a multipath connection, that is, a sender or receiver of a multipath connection.
  • the host can run on a terminal or server.
  • Path A path is a link between a sender and a receiver.
  • the path can be identified by a four-tuple that is used to represent a source address (and/or port) and a destination address (and/or port) pair. It should be understood that both the receiving end and the transmitting end supporting the MPTCP technology can prepare multiple addresses in their hosts to identify multiple paths. And, a plurality of paths between a pair of receiving ends and a transmitting end can share one or more routers.
  • Subflow A stream of TCP segments that run on a single path.
  • a subflow is part of a multipath connection. The start and terminate of a subflow are similar to a regular TCP connection.
  • Multipath connection A group of substreams that can communicate between two hosts, over which one substream includes multiple substreams. Among them, there is a mapping between the connection and the application interface (socket).
  • Packet A package of data with a header that can be logically complete or incomplete. Usually, it is a physical packaging of data, and of course, it can be a logical packaging of data. The concept of a package is used to describe the interaction of data between a host and the network to which it is connected.
  • ACK packet also known as acknowledgement packet, acknowledgement packet, ACK (Acknowledgement), ACK packet, feedback packet, notification.
  • the acknowledgement packet can be used by the receiving end to feed back the received or unreceived data to the sender.
  • the information of the packet, the acknowledgement packet includes feedback information, also called ACK information, such as the sequence number of a certain data packet.
  • the feedback information of a data packet generally refers to the receiving end notifying the transmitting end that the data packet has been received.
  • the present application is applied to a multipath transmission technology that uses multiple paths to transmit data, and the multiple paths may be two or more paths.
  • the data transmitted by the multiple paths is different, and the multi-path transmission protocol offloads the connected data to multiple sub-streams, and the multiple sub-streams transmit a part of the data of the connection.
  • the transmission mode is a multiple path transmission mode, also referred to as a multi-path mode (MP mode).
  • MP mode multi-path mode
  • another transmission mode that is, a redundant transmission mode
  • redundant mode may be used. Also referred to as redundant mode.
  • Redundant transmission mode refers to the repeated transmission of data packets in a connection over multiple sub-streams of the connection. That is, one connected data is repeatedly transmitted by multiple substreams. For example, in the redundant transmission mode, all substreams of a multipath transmission connection must transmit the same data once. This transmission mode obviously cannot take advantage of the multipath transmission technology, and the devices at the transmitting end and the receiving end of the data need to provide a higher hardware configuration for processing at least one extra redundant data, which means more High equipment configuration costs. Also, it should be noted that, for example, for a multipath transmission connection, n paths are supported to transmit data, where n is greater than 1, and the default multipath transmission mode uses the n paths to transmit data, but the n paths can be used. One or more paths in the transmission of data.
  • the multi-path transmission technology can be used for multiple protocols, such as MPTCP, User Datagram Protocol (UDP), and QUIC (Quick UDP Internet Connection).
  • MPTCP User Datagram Protocol
  • UDP User Datagram Protocol
  • QUIC Quadick UDP Internet Connection
  • the common multi-path transmission scenario is often two sub-streams, that is, a cellular network and a WIFI network.
  • more than two sub-stream transmission scenarios will become more and more popular.
  • a wide area network there are multiple operators in a certain area, which causes the area to support more than two sub-flows for TCP data transmission.
  • it can also pass equal-cost multi-path (Equal-Cost).
  • Multi Path routing (ECMP) routing technology implements multi-path TCP data transmission by supporting three or more substreams.
  • the MPTCP technology can be used in a variety of networking systems. Generally, if information is to be transmitted through the MPTCP technology, at least one link between the sender and the receiver of the information should support the MPTCP technology.
  • Figure 1 simply lists three networking systems that can use this technology. For convenience of description, two paths in the multipath system are schematically illustrated in Figure 1, using WiFi technology (represented by routers) and cellular networks. (Represented by the base station), wherein the cloud schematically depicts several cloud servers. It should be understood that the figure only schematically indicates the connection between the cloud and other devices, and it is not clear which server in the cloud is connected to other devices.
  • the system in Figure 1 communicates between the terminal and the cloud. The device communicating with the terminal in the cloud does not support the MPTCP technology.
  • the terminal supports the technology, or the device in the cloud supports the MPTCP technology. If the terminal does not support it, the device needs to use In this technology, the side that does not support the technology needs to interact with the other side through a proxy device (such as a gateway) that supports the MPTCP technology.
  • a proxy device such as a gateway
  • both the cloud and the terminal support MPTCP technology.
  • the system 3 in FIG. 1 a scenario in which two clouds communicate with each other is described. Both of the two clouds can support the multipath transmission technology, and at least one end does not support the technology.
  • One end of the technology can be supported by a proxy device (such as a gateway) supporting the MPTCP technology.
  • both clouds are supported by a proxy device supporting the MPTCP technology, so that the technologies are communicated between the two gateways.
  • the cloud can include multiple devices, such as a server.
  • a device in the cloud communicates with the peer.
  • FIG. 2 is a schematic diagram of an overall architecture of a device supporting the MPTCP technology according to an embodiment of the present application, where the application layer, the MPTCP module, the sub-flow management module, and the lower-layer transceiver module are schematically included according to a hierarchical relationship of the logical architecture.
  • the MPTCP module and the sub-flow management module may belong to the network transport layer, and the lower layer transceiver module may belong to the hardware layer and the hardware driver layer.
  • the sub-flow management module includes sub-flow establishment, sub-flow shutdown, state management, data reception, data transmission, and the like.
  • the MPTCP module includes path management and connection management, and the path management includes interface status monitoring, interface attribute management, interface address management, and sub-interfaces.
  • connection management includes connection establishment, connection closure, connection status, congestion algorithm, scheduling algorithm, data transmission, and data reception.
  • the main improvement of the embodiment of the present application is the control parameters (such as sequence number, number and predetermined time, etc.) of the scheduling algorithm in the MPTCP module and the judgment conditions for data transmission.
  • control parameters such as sequence number, number and predetermined time, etc.
  • the architecture shown in FIG. 2 especially the description of the MPTCP module involved, is equally applicable to cloud devices and MPTCP proxy devices.
  • the functions of the determining module 701 and the processing module 702 shown in FIG. 7 can be implemented by the MPTCP module shown in FIG. 2 in an implementation manner, that is, the MPTCP module can be executed.
  • the method steps corresponding to the determining module 701 and the processing module 702; and the function of the sending module 703 shown in FIG. 7 can be implemented by the lower layer transceiver module shown in FIG. 2, that is, the method in which the lower layer transceiver module can execute the sending module 703 step.
  • the small data packet sent in the application is sent from the application layer of the sender to the MPTCP module, and then the small data packet is allocated to each TCP substream, and the small data packet is sent to the network through the lower layer transceiver module of the sender, and then After the transmission of the network, the peer end hardware that supports the MPTCP technology receives the report transmission layer, and reports and integrates it to the peer application layer after the transport layer is parsed and integrated, thereby completing the data transmission.
  • the left diagram in FIG. 3 is a schematic diagram of small data transmission without enabling the packet transmission control strategy.
  • the transmitting end may continuously send multiple small data packets (small data packet a, small data packet b, and small data packet c) to the receiving end, and after receiving the small data packet, the receiving end returns the corresponding data corresponding to the small data to the transmitting end.
  • ACK package The right picture in Figure 2 is a schematic diagram of small data transmission that enables the packet transmission control strategy. After transmitting the small data packet a to the receiving end, the transmitting end waits for the receiving end to return the ACK packet corresponding to the small data packet a. At this time, the small data packet b and the small data packet c are already buffered and combined into a medium/large data packet. After receiving the ACK returned by the receiving end, the transmitting end allows the medium/large data packet to be sent to the receiving end.
  • FIG. 4 is a schematic diagram of a transmission delay test according to an embodiment of the present application. The method includes: First, the sender sends a small data packet to the receiving end, and records timestamp information of the small data packet, for example, T1. Each small data packet carries the sequence number of the small data packet.
  • the receiving end After receiving the small data packet sent by the transmitting end, the receiving end returns an ACK packet to the transmitting end, where the ACK carries the same sequence number as the small data packet. Then, when the transmitting end receives the ACK packet sent by the receiving end, it records the timestamp information of the received ACK packet, for example, T2, and acquires the timestamp information T1 of the small data according to the sequence number carried in the ACK packet. Finally, the time stamp information T1 is subtracted from the time stamp information T2, and the transmission delay (T2-T1) of the small data packet is calculated.
  • FIG. 5 is a schematic diagram of transmission delay statistics provided by an embodiment of the present application.
  • the abscissa indicates the sequence number of the small data packet
  • the ordinate indicates the transmission delay of each small data packet recorded during the test.
  • the delay of transmission of small data packets through the WIFI interface is about 40ms
  • the delay of transmission over the LTE interface is about 20ms. If the small data packet is repeatedly transmitted on the two sub-streams through the redundant scheduling policy, the transmission delay of each small data packet recorded should be about 20 ms. As can be seen from FIG.
  • the packet transmission control policy may cause small data packets to be repeatedly transmitted on multiple substreams in time, and it is necessary to wait for the ACK packets corresponding to the small data packets to be transmitted back before continuing to send small data packets, thereby affecting the efficiency of data transmission.
  • FIG. 6 is a schematic flowchart diagram of a data packet sending method according to an embodiment of the present application. The method includes but is not limited to the following steps:
  • the sending end determines that the multipath connection satisfies a first condition, where the first condition is used to cancel a packet transmission control policy used by the multipath connection, and the packet transmission control policy is used to control the sending end.
  • the first condition includes that the sending end has configured a redundant scheduling policy, the scheduling policy of the multi-path connection is a redundant scheduling policy, and the receiving end of the multi-path connection has configured a redundant scheduling policy,
  • the small data packet is a data packet sent by using a redundant scheduling policy, and the small data packet needs to be repeatedly sent on another path after being sent on one path of the multi-path connection, and the transmitting end is currently in the multiple At least one of the data packets is sent on the multiple paths of the path connection, where the redundancy scheduling policy is used to indicate that the sending end transmits data by using the redundant transmission mode.
  • the redundant transmission mode needs to be sent again on the other path of the multipath connection.
  • Small data packet In this case, the packet transmission control policy needs to be released, and the small packet is resent in another path through the redundant transmission mode after the packet transmission control policy is released.
  • the method for determining that a small data packet is lost or failed during transmission includes at least: after the sender sends a small data packet on a path of the multi-path connection, the acknowledgment corresponding to the small data packet is not received after the preset duration Packet, the sender can determine that the small packet is lost or failed to be sent. Alternatively, after the sender sends a small data packet on a path of the multipath connection, and then sends a large data packet on at least one path of the multipath connection that has not sent the small data packet, the sender receives the large data packet corresponding to the large data packet. Before the confirmation packet, the acknowledgement packet corresponding to the small data packet is not received, and the sender may determine that the small data packet is lost or failed to be sent.
  • the length of the data included in the big data packet is not less than the maximum packet length MSS.
  • the time interval for controlling the sending end to send small data packets through the multi-path connection may include at least the following optional methods:
  • the timing time is preset, and after the sending end sends the small data packet to the receiving end, the small data packet carrying the same data as the small data packet is not allowed to be sent after the preset timing time is not reached.
  • the sender sends the first small data first, starts timing, and caches the second small data packet that arrives later.
  • the timing duration exceeds the timing time, the second small data packet in the buffer is sent, and then the timing is started, and the third small data packet is subsequently buffered, and only after waiting for the timing time. Continue to send the next small packet.
  • the third optional mode is to start a blocking sending condition, where the blocking sending condition is used by the sending end to not be sent and carried by the small data packet after sending the small data packet and before receiving the ACK packet corresponding to the returned small data packet.
  • Small packets of the same data If the small data packets are spliced into one large data packet after waiting for a period of time, the spliced large data packet can be sent to the receiving end.
  • the data in the small data packet in the embodiment of the present application includes a header of a protocol above the TCP protocol, such as a remote procedure call protocol (RPC) header and a hypertext transfer protocol (HyperText Transfer).
  • Protocol, HTTP HTTP
  • TCP header not including TCP header and lower-level header, such as Internet Control Message Protocol (ICMP)
  • ICMP Internet Control Message Protocol
  • the length of data included in small packets is the length of valid data and TCP protocol.
  • the sum of the lengths of the headers of the above protocols When the sum of the length of the valid data and the length of the header of the protocol above the TCP protocol is less than the maximum packet length MSS, the packet transmission control policy takes effect, and further, it is necessary to determine whether to cancel the packet transmission control policy used by the multipath connection.
  • the sending end determines that the multi-path connection does not satisfy the first condition, for example, the multi-path connection between the transmitting end and the receiving end is not configured with a redundancy scheduling policy, and the sending end may use a small packet to send a control policy to the small Packets are scheduled and small packets are sent on each path.
  • the sending end cancels the packet sending control policy, and at least includes the following optional methods:
  • the sending end stops executing the packet sending control policy, for example, skipping the control logic when executing the control logic corresponding to the packet sending control policy, or closing the packet sending after determining that the condition is met The control logic corresponding to the control strategy.
  • the sending end modifies the sequence number corresponding to the first small data packet in the sending end, or modifies the sequence number of the first ACK packet received by the sending end, so that the sending end
  • the sequence number corresponding to the first small data packet is less than or equal to the sequence number of the first ACK packet, and the first small data packet is the last small data packet sent by the sending end before the current time, and the sending end is not
  • receiving the ACK packet corresponding to the first small data packet where the first ACK packet is an ACK packet with the largest sequence number received by the sending end before the current time.
  • the current time may be the current system time of the sending end or the time of modifying the serial number.
  • the sending end modifies the number of unacknowledged small data packets saved by the sending end to 0, where the number of the unacknowledged small data packets is used to indicate that the sending end has sent but The number of small packets that did not receive the corresponding ACK packet. Specifically, after the first small data packet is sent by the sending end, the number of unacknowledged small data packets can be immediately changed to 0, and then the second small data packet is sent, and the number of unconfirmed small data packets is immediately modified. 0, then send the third small packet. Immediately after sending the previous small packet, the number of unacknowledged small packets is changed to 0 to send the next small packet.
  • the sending end controls, by using a timer, a time interval for the sending end to send a small data packet by using the multi-path connection, where the sending end sends the first small data packet by using the multi-path connection. Thereafter, the timer is modified to cause the timer to arrive at a predetermined time in advance, and the first small data packet is the last one of the small data packets sent by the sending end before the current time.
  • the duration of the predetermined time may be less than the transmission delay, and the transmission delay may be the difference between the time when the sending end receives the ACK packet corresponding to the small data packet and the time when the sending end sends the small data packet.
  • the current time may be the current system time of the sender or the time of modifying the sequence number.
  • the sending end sends, by using a redundant transmission mode, multiple small data packets on multiple paths of the multi-path connection, where the multiple small data packets are included.
  • a small packet carrying the same data is included.
  • control logic skips the control logic when the control logic corresponding to the packet transmission control policy is executed, or closes the control logic corresponding to the packet transmission control policy after determining that the condition is met.
  • the transmitting end may send multiple small data packets on multiple paths of the multi-path connection through a redundant transmission mode.
  • the second optional mode after the sender side modifies the sequence number corresponding to the first small data packet in the sending end, or after modifying the sequence number of the first ACK packet received by the sending end, the sequence number corresponding to the first small data packet in the sending end is smaller than It is equal to the sequence number of the first ACK packet, which may indicate that the sender has received all the ACK packets corresponding to the small data packet, so that the sender can continue to send the small data packet without waiting for the ACK packet corresponding to the first small data packet to be sent back.
  • the purpose of releasing the packet transmission control strategy is achieved.
  • At least one path in which the first small data packet has not been transmitted in the plurality of paths of the multipath connection is allowed to transmit a small data packet carrying the same data as the first small data packet.
  • the sequence number corresponding to the first small data packet in the sending end may be modified or the sequence number of the first ACK packet received by the sending end may be modified, which may be sent again.
  • the terminal has received all the ACK packets corresponding to the small data packet, so that the transmitting end can continue to send the small data packet without waiting for the ACK packet corresponding to the small data packet to be sent back, and the small packet transmission control policy is cancelled, and the redundant transmission mode is adopted.
  • the second small data packet is sent on multiple paths of the multipath connection.
  • the sending end sends the first small data packet by using the multi-path connection
  • the first small data packet is received because the timer has been modified to cause the timer to arrive at a predetermined time in advance.
  • the ACK packet corresponding to the first small data packet is not required to be received, and the redundant transmission mode is not sent in the multiple paths of the multipath connection.
  • the timer may be modified again to cause the timer to arrive at a preset time in advance; when the timer reaches the predetermined time again, the second small data packet is sent on the path of the multipath connection.
  • the packet transmission control policy can be adaptively cancelled under the condition that the condition is satisfied by the added judgment mechanism without changing the protocol stack.
  • the default configuration of the packet transmission control policy is in a mode that does not require redundant transmission. After the packet transmission control policy is released, multiple small data packets carrying the same data are transmitted on multiple paths through the redundant transmission mode, thereby improving the efficiency of data transmission.
  • the access node refers specifically to the access node of the wireless network, and specifically, may be an access point (AP) of a wireless WI-FI network, a router, or an access point of a Winmax network or a wireless cellular mobile network.
  • AP access point
  • the same type of wireless network refers to an access node that belongs to the wireless WI-FI network, or belongs to the Winmax network, or an access node that belongs to the wireless cellular network, such as a 2G network, a 3G network, a 4G network, or a 5G network. Wait.
  • the first condition includes that the sending end has configured a redundant scheduling policy, the scheduling policy of the multi-path connection is a redundant scheduling policy, and the receiving end of the multi-path connection has configured a redundant scheduling policy,
  • the small data packet is a data packet sent using a redundant scheduling policy, and at least one of the data packets transmitted by the transmitting end on the plurality of paths of the multipath connection, the redundant scheduling policy is used for Instructing the transmitting end to transmit data through the redundant transmission mode.
  • processing module 702 is specifically configured to:
  • Corresponding ACK packet where the first ACK packet is the ACK packet with the largest sequence number received by the sending end before the current time
  • the sending module 703 is specifically configured to:
  • processing module 702 is specifically configured to:
  • the time interval for sending the small data packet by the sending end by using the multi-path connection is controlled by a timer, and the processing module 702 is specifically configured to:
  • the timer is modified to cause the timer to arrive at a predetermined time in advance, and the first small data packet is the last sent by the sending end before the current time.
  • the sending module 703 is specifically configured to:
  • the transmitting end sends, by using the redundant transmission mode, a path that is not sent by the first small data packet in multiple paths of the multi-path connection.
  • the first small data packet carries a small data packet of the same data;
  • each unit may also correspond to the corresponding description of the method embodiment shown in FIG. 6.
  • the packet transmission control policy can be adaptively cancelled under the condition that the condition is satisfied by the added judgment mechanism without changing the protocol stack.
  • the default configuration of the packet transmission control policy is in a mode that does not require redundant transmission. After the packet transmission control policy is released, multiple small data packets carrying the same data are transmitted on multiple paths through the redundant transmission mode, thereby improving the efficiency of data transmission.
  • FIG. 8 is a schematic structural diagram of a device provided by an embodiment of the present application. The method described in this embodiment is applicable to the terminal device 800.
  • the device 800 includes at least one processing circuit 801, a communication interface 804, and the communication interface 804 includes at least one physical network card.
  • the physical network card corresponds to multiple virtual network cards, and the plurality of virtual network cards are in one-to-one correspondence with multiple ports, and the storage medium 805 and at least one communication bus 802 are not shown.
  • Communication bus 802 is used to implement connection communication between these components.
  • the device 800 can be a terminal device, and in the case of a terminal device, optionally includes a user interface 803, including a display (eg, a touch screen, LCD, CRT, holographic imaging, or projection (Projector) ), etc.), keyboard or click device (for example, mouse, trackball, touchpad or touch screen, etc.).
  • Storage medium 805 can include read only memory and random access memory and provides instructions and data to processing circuitry 801. A portion of storage medium 805 may also include non-volatile random access memory (NVRAM).
  • NVRAM non-volatile random access memory
  • the storage medium 805 stores the following elements, executable modules or data structures, or a subset thereof, or their extended set: operating system 8051, including Various system programs, such as the framework layer, core library layer, driver layer, etc., are used to implement various basic services and handle hardware-based tasks; the application module 8052 includes various applications, such as a desktop, media playback (Media Player), browser (Browser), etc., used to implement various application services.
  • the storage medium 805 can only store methods for performing the methods described above (eg, including receiving or transmitting data packets, and receiving or transmitting acknowledgement packets, and received data packets or analysis). The program code required for the received confirmation packet, etc.).
  • the device may be a terminal, a gateway, or a server.
  • the device may call the program in the storage medium 805 through the processing circuit 801, so that the processing circuit 801 performs the method and the embodiment in the above figure through the communication interface 804, for example, may be the transmitting end or the receiving end of the multi-path connection.
  • the processing circuit 801 can implement the functions of the determining module 701, the processing module 702, and the transmitting module 703 in the apparatus shown in FIG. 7 through the communication interface 804.
  • the sending module 703 can be a communication interface that is invoked by a different process or thread.
  • Another embodiment of the present application also describes a chip.
  • a chip can be placed at the transmitting end described above for performing the methods described in this application to resolve and process the small data packets described in the above methods of the present application.
  • Such a chip can also be placed at the receiving end described above for performing the methods described in this application. For example, after receiving the small data packet, the confirmation packet described in the above method of the present application is generated.
  • the storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).
  • the program can be stored in a computer readable storage medium, when the program is executed
  • the flow of the method embodiments as described above may be included.
  • the foregoing storage medium includes various media that can store program codes, such as a ROM or a random access memory RAM, a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本申请实施例公开了一种数据包发送方法及相关设备,包括:所述发送端确定所述多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS;所述发送端解除所述小包发送控制策略;以及在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包,采用本申请实施例,提高了数据传输的效率。

Description

一种数据包发送方法及相关设备 技术领域
本申请涉及通信领域,尤其涉及一种数据包发送方法及相关设备。
背景技术
目前,多路径传输技术是通过多条路径并行传输来实现吞吐量的提升,或者通过多路径来实现业务的连续性及可靠性。例如,常见的有多路径传输控制协议(Multiple Path Transmission Control Protocol,MPTCP)。多路径传输技术可以支持一个连接多路径传输,也就是将单路径上的数据分流,分别在不同的子流上传输,这样连接中的两个地址间有多条路径,从而降低地址不可达的风险,也使得在增加或者变化传输路径的过程中,连接不中断。另外,多路径传输引入了冗余调度策略,将TCP数据发送队列中未确认的数据包,在多条子流上重复发送,从而提高应用层面数据传输的可靠性,降低业务层面数据传输的时延和抖动,降低业务层面数据的丢包率。例如,多条子流可以包括WiFi网络和蜂窝网络,该蜂窝网络可以是5G网络,4G网络,如长期演进网络(LTE,Long Term Evolution)、或者3G网络,如码分多址(CDMA,Code Division Multiple Access)网络,或者2G网络等。
但是,为了提高发送的数据包中的载荷,会启用小包发送控制策略。在小包发送控制策略下,当发送端有一个小数据包处于已发送但未确认状态时,发送端不允许继续发送小数据包。当使用冗余调度策略尝试在多路径连接的多条子流上重复发送小数据包时,小包发送控制策略会导致无法及时在多条路径上发送多个携带相同数据的小数据包,需要等待小数据包对应的ACK包传回后再继续发送小数据包,影响数据传输的效率。
发明内容
本申请实施例提供了一种数据包发送方法及相关设备,提高了数据传输的效率。
第一方面,本申请实施例提供了一种数据包发送方法,包括:发送端首先确定多路径连接满足第一条件,第一条件用于解除多路径连接所使用小包发送控制策略,该小包发送控制策略用于控制发送端通过多路径连接发送小数据包的时间间隔,小数据包中包括的数据的长度小于最大数据包长度MSS;然后解除小包发送控制策略;以及在解除小包发送控制策略后,发送端通过冗余传输模式,在多路径连接的多条路径上发送多个小数据包,多个小数据包中包括携带相同数据的小数据包。这样,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,通过增加的判断机制可以自适应的在满足条件的情况下解除小包发送控制策略,而无需更改协议栈中开启小包发送控制策略的默认配置。在解除小包发送控制策略之后,通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
其中,第一条件包括发送端已配置冗余调度策略、多路径连接的调度策略为冗余调度策略、多路径连接的接收端已配置冗余调度策略、小数据包为使用冗余调度策略发送的数 据包、所述小数据包在所述多路径连接的一条路径上发送后需要在另一条路径上重复发送以及发送端当前在多路径连接的多条路径上发送数据包中的至少一项,冗余调度策略用于指示发送端通过冗余传输模式传输数据。
应理解,发送端在多路径连接的一条路径上发送小数据包之后,如果小数据包在传输过程中丢失或发送失败,需要通过冗余传输模式在多路径连接的另一条路径上再次发送携带相同数据的小数据包。这种情况下,也需要解除小包发送控制策略,在解除小包发送控制策略之后通过冗余传输模式在另一条路径重新发送小数据包。
在一种可能的设计中,确定小数据包在传输过程中丢失或发送失败的方法至少包括:发送端在多路径连接的一条路径上发送小数据包之后,超过预设的时长未接收到该小数据包对应的确认包,发送端可以确定该小数据包丢失或发送失败。或者,发送端在多路径连接的一条路径上发送小数据包之后,然后在多路径连接的未发送过小数据包的至少一条路径上发送大数据包,发送端在接收到该大数据包对应的确认包之前、未接收到该小数据包对应的确认包,发送端可以确定该小数据包丢失或发送失败。
应理解,小数据包中数据包括TCP协议以上的协议的报头,例如远程过程调用协议(Remote Procedure Call Protocol,RPC)的报头、超文本传输协议(HyperText Transfer Protocol,HTTP)的报头,而不包括TCP报头以及更底层的报头,例如控制报文协议(Internet Control Message Protocol,ICMP),因此小数据包中包括的数据的长度为有效数据的长度与TCP协议以上的协议的报头的长度之和。当有效数据的长度与TCP协议以上的协议的报头的长度之和小于最大数据包长度MSS时,小包发送控制策略生效,进而需要确定是否解除多路径连接所使用的小包发送控制策略。
在一种可能的设计中,发送端向接收端发送小数据包之后,未接收到返回的小数据包对应的ACK包之前不允许发送与该小数据包携带相同数据的小数据包。
在另一种可能的设计中,发送端可以预先设定定时时间,发送端向接收端发送小数据包之后,未到达该预先设定的定时时间不允许发送与小数据包携带相同数据的小数据包。
在另一种可能的设计中,发送端可以启动阻塞发送条件,该阻塞发送条件用于发送端在发送小数据包之后、且未接收到返回的小数据包对应的ACK包之前不允许发送与该小数据包携带相同数据的小数据包。若在等待一段时间后,小数据包拼接成一个大数据包,才允许向接收端发送该拼接成的大数据包。
通过以上三种方式,可以控制发送端通过多路径连接发送小数据包的时间间隔,从而实现小包发送控制策略,提高发送的数据包中的载荷。
在一种可能的设计中,发送端停止执行小包发送控制策略,例如在执行到小包发送控制策略对应的控制逻辑时,跳过该控制逻辑,或者直接在确定满足条件后,关闭小包发送控制策略对应的控制逻辑。
在另一种可能的设计中,发送端修改发送端中第一小数据包对应的序号,或修改发送端接收到的第一ACK包的序号,以使得发送端中第一小数据包对应的序号小于等于第一ACK包的序号,第一小数据包为发送端在当前时刻前发送的最后一个小数据包、且发送端未接收到第一小数据包对应的ACK包,第一ACK包为发送端在当前时刻前接收到的序号最大的ACK包。
在另一种可能的设计中,发送端将发送端保存的未确认小数据包个数修改为0,其中,未确认小数据包个数用于表示发送端已经发送但未收到对应的ACK包的小数据包的个数。
在另一种可能的设计中,发送端通过定时器控制发送端通过多路径连接发送小数据包的时间间隔,发送端在通过多路径连接发送第一小数据包后,修改定时器以使得定时器提前到达预定时间,第一小数据包为发送端在当前时刻前发送的最后一个小数据包。
通过以上四种方式,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,可以实现解除小包发送控制策略,无需等待第一小数据包对应的ACK包传回后再继续发送小数据包,提高了数据传输的效率。
在一种可能的设计中,由于发送端在执行到小包发送控制策略对应的控制逻辑时跳过对应的控制逻辑,或者确定满足条件后关闭了小包发送控制策略对应的控制逻辑。发送端可以通过冗余传输模式,在多路径连接的多条路径上发送多个小数据包。
在另一种可能的设计中,在发送端修改发送端中第一小数据包对应的序号,或修改发送端接收到的第一ACK包的序号之后,发送端中第一小数据包对应的序号小于等于第一ACK包的序号,这可以表示发送端已经接收到全部小数据包对应的ACK包,这样发送端就可以无需等待第一小数据包对应的ACK包传回后再继续发送小数据包,从而达到了解除小包发送控制策略的目的。进而允许在多路径连接的多条路径中未发送过第一小数据包的至少一条路径上,发送与第一小数据包携带相同数据的小数据包。在发送与第一小数据包携带相同数据的小数据包之后,可以再次修改发送端中第一小数据包对应的序号或修改发送端接收到的第一ACK包的序号,这可以再次表示发送端已经接收到全部小数据包对应的ACK包,这样发送端就可以无需等待该小数据包对应的ACK包传回后再继续发送小数据包,解除小包发送控制策略,通过冗余传输模式,在多路径连接的多条路径上发送第二小数据包。
在另一种可能的设计中,由于发送端将发送端保存的未确认小数据包个数修改为0,这样发送端就可以无需等待该未确认小数据包对应的ACK包传回后再继续发送小数据包,从而达到了解除小包发送控制策略的目的。然后可以在多路径连接的多条路径中未发送过第一小数据包的另一条路径上,发送与第一小数据包携带相同数据的小数据包。然后再将未确认小数据包个数修改为0,发送端可以在多路径连接的多条路径中未发送过第一小数据包的又一条路径上,发送与第一小数据包携带相同数据的小数据包。如此循环往复,在每次发送小数据包之后,保持未确认小数据包个数为0,或者将未确认小数据包个数修改为0,以便发送端能及时发送其他小数据包。
在另一种可能的设计中,发送端在通过多路径连接发送第一小数据包后,由于已经修改定时器以使得定时器提前到达预定时间,在接收到第一小数据包对应的ACK包之前,定时器提前到达预定时间时,不需要等待接收第一小数据包对应的ACK包,就可以通过冗余传输模式在多路径连接的多条路径中未发送过第一小数据包的路径上,发送与第一小数据包携带相同数据的小数据包;并且,发送端在发送与第一小数据包携带相同数据的小数据包后,可以再次修改定时器以使得定时器提前到达预设时间;在定时器再次提前到达预定时间时,在多路径连接的路径上发送第二小数据包。
在以上四种情况下,由于解除了小包发送控制策略,发送端可以通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
应理解,在定时器提前到达预定时间时,可以立即在多路径连接的多条路径中未发送过第一小数据包的路径上发送与第一小数据包携带相同数据的小数据包。或者,由于在执行代码过程中存在延迟或需要执行一些现有的发送报文的流程中,与发送相关的准备步骤(例如报文封装,将报文传递给网卡等硬件处理等等),当定时器提前到达预定时间时,可以延迟一段时间,然后在多路径连接的多条路径中未发送过第一小数据包的路径上发送与第一小数据包携带相同数据的小数据包。
第二方面,本申请实施例提供了一种数据包发送装置,装置为一多路径连接的发送端,包括:确定模块,用于确定多路径连接满足第一条件,第一条件用于解除多路径连接所使用小包发送控制策略,小包发送控制策略用于控制发送端通过多路径连接发送小数据包的时间间隔,小数据包中包括的数据的长度小于最大数据包长度MSS;处理模块,用于解除小包发送控制策略;发送模块,用于在解除小包发送控制策略后,通过冗余传输模式,在多路径连接的多条路径上发送多个小数据包,多个小数据包中包括携带相同数据的小数据包。这样,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,通过增加的判断机制可以自适应的在满足条件的情况下解除小包发送控制策略,而无需更改协议栈中开启小包发送控制策略的默认配置,在无需进行冗余传输的模式下。在解除小包发送控制策略之后,通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
应理解,第二方面是第一方面对应的装置,也就是上述的发送端,即发送小数据包的一端,其各种具体的实现方式、说明以及技术效果不再赘述。
第三方面,本申请实施例提供了一种数据包发送设备,包括处理电路、通信接口和存储介质,存储介质中存储有协议栈程序,通信接口用于通过执行协议栈程序与其他设备收发数据包,处理器用于通过运行存储介质中的指令通过通信接口,以实现第一方面及第一方面各种实现方式的数据包发送方法。
在一个可能的设计中,本申请提供的数据包发送设备,可以包含用于执行上述方法设计中数据包发送装置行为相对应的模块。模块可以是软件和/或是硬件。
应理解,第三方面是第一方面或者第二方面对应的装置,也就是上述的发送端,其各种具体的实现方式、说明以及技术效果不再赘述。
第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种多路径系统的结构示意图;
图2是本申请实施例提供的一种支持MPTCP技术的设备的总体架构图。
图3是本申请实施例提供的一种小数据发送示意图
图4是本申请实施例提供的一种传输时延测试的示意图;
图5是本申请实施例提供的一种传输时延统计的示意图;
图6是本申请实施例提供的一种数据包发送方法的流程示意图;
图7是本申请实施例提供的一种数据包发送装置的结构示意图;
图8是本申请实施例提供的一种设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
下面解释本申请出现的一些名词。
主机(host):用于发起或者接收一多路径连接的端节点,即一个多路径连接的发送端或者接收端。例如,该主机可以运行在终端或者服务器上。
路径(path):路径是发送端(sender)与接收端(reciever)之间的链路(link)。路径可以用四元组来标识,该四元组用于表示源地址(和/或端口)和目的地址(和/或端口)对。应理解,支持MPTCP技术的接收端和发送端,都可以在其主机(host)中准备多个地址,以便标识多条路径。以及,一对接收端和发送端之间的多条路径可以共享一个或者多个路由器(router)。子流(subflow):在单个路径(path)上运行的TCP段(segment)的流。子流是一多路径连接的一部分。子流的启动(start)和终止(terminate)与常规(regular)的TCP连接相似。
多路径连接:通过(over)一个应用,在两个主机(host)间可以通信的一组子流,该组子流包括多个子流。其中,连接和应用的接口(socket)之间有一一映射。
包(packet):带有头部(header)的一包(package)数据,该头部可以是逻辑上完整或者不完整的。通常,是一物理上打包(physical packaging of data)的数据,当然,也可以是一逻辑上打包的数据(logical packaging of data)。包这个概念用于描述数据在一主机(host)以及与该主机相连的网络之间的交互。
ACK包:也称为确认包、确认报文、ACK(Acknowledgement)、ACK包,反馈报文、通知,该本申请中,确认包可用于接收端向发送端反馈接收到或者未接收到的数据包的信息,确认包中包括反馈信息,也称为ACK信息,例如某一数据包的序号。一个数据包的反馈信息在现有技术中通常指接收端通知发送端已接收到该数据包。
本申请应用到多路径传输技术,多路径传输技术使用多条路径传输数据,该多条路径可以是两条或者两条以上的路径。通常该多条路径传输的数据是不同的,多路径传输协议会将连接的数据分流到多个子流上,该多个子流都传输该连接的一部分数据,为了便于描述,本申请中称这种传输模式为多路径传输模式(multiple path transmission mode),也简称为多路径模式(MP mode)。但是,某些特殊场景下,例如对数据的可靠性要求很高的场景,或者对时延要求较为苛刻的场景,也可以使用另一种传输模式,即冗余传输模式(redundant transmission mode),也简称为冗余模式(redundant mode)。冗余传输模式是指在将一个连接中的数据包,重复地在该连接的多个子流上传输。即一个连接的数据被多 个子流重复传输。例如冗余传输模式中,一多路径传输连接的所有子流都要将相同的数据发送一次。这种传输模式显然不能发挥多路径传输技术的优势,而且需要数据的发送端和接收端的设备提供更高的硬件配置以供处理至少一份多出的冗余的数据,这也就意味着更高的设备配置成本。还有,需要指明的是,例如对一个多路径传输连接,支持n条路径传输数据,其中n大于1,默认的多路径传输模式就是使用这n条路径传输数据,但是可以使用该n条路径中的一条或者多条路径传输数据。
其中,多路径传输技术可以用于多种协议,例如MPTCP、用户数据报协议(User Datagram Protocol,UDP)和QUIC协议(Quick UDP Internet Connection),本申请以MPTCP为例进行说明。
目前常见的多路径传输场景,往往是两条子流,也就是蜂窝网络和WIFI网络,但是,可以预见,多于两条子流的传输场景会越来越普及。例如,可以是在广域网中,某个区域有多个运营商,导致该区域支持多于两条子流进行TCP数据传输,再例如,一个数据中心中,也可以通过等价多路径(Equal-Cost Multi Path routing,ECMP)路由技术实现支持三条及以上子流进行多路径的TCP数据传输。
MPTCP技术可以用在多种组网系统中,通常,若要通过MPTCP技术传递信息,信息的发送端和接收端之间应至少有一段链路支持MPTCP技术。图1简单列举了三种可使用该技术的组网系统,为了描述方便,图1中示意性画出了该多路径系统中的两条路径,分别使用WiFi技术(以路由器表示)和蜂窝网络(以基站表示),其中,云端示意性地画出了几个云端服务器,应理解,图中只示意性表示云端与其他设备的连接,不明确表示云端的哪个服务器与其他设备连接。图1中的系统一是终端与云端之间进行通信,云端中与终端通信的设备不支持MPTCP技术,而终端支持该技术,或者则云端的设备支持MPTCP技术,而终端不支持,则要使用该技术,不支持该技术的一侧就需要通过支持MPTCP技术的代理设备(proxy,例如网关),与另一侧交互。图1中的系统二中,云端与终端均支持MPTCP技术。图1中的系统三中,描述的是两个云端之间进行通信的场景,这两个云端中,可以均支持该多径传输技术,也可以有至少有一端不支持该技术,不支持该技术的一端借助支持MPTCP技术的代理设备(例如网关)即可,如图1中,示意的就是两个云端都借助支持MPTCP技术的代理设备,使得两侧网关之间使用该技术进行通信。
其中,云端可以包括多种设备,例如服务器等,通常,对一个涉及云端的TCP连接,是该云端的某一设备与对端进行通信。
图2描述一种本申请实施例所涉及的支持MPTCP技术的设备的总体架构图,其中按照逻辑架构的层次关系示意性地包括应用层、MPTCP模块、子流管理模块和下层收发包模块。MPTCP模块和子流管理模块可以属于网络传输层,下层收发包模块可以属于硬件层和硬件驱动层。其中,子流管理模块包括子流建立、子流关闭、状态管理、数据接收、数据发送等等,MPTCP模块包括路径管理和连接管理,路径管理包括接口状态监控、接口属性管理、接口地址管理和子流事件处理等等,连接管理包括连接建立、连接关闭、连接状态、拥塞算法、调度算法、数据发送和数据接收等等。本申请实施例主要改进的是MPTCP模块中调度算法的控制参数(例如序号、个数和预定时间等等)和数据发送的判 断条件。应理解,图2所示的架构,尤其是对所涉及的MPTCP模块的描述,对云端设备以及MPTCP代理设备同样适用。其中,对于本申请所描述的方法和设备,图7中所示的确定模块701和处理模块702的功能在一种实现方式下,可以由图2所示的MPTCP模块实现,即MPTCP模块可以执行确定模块701和处理模块702对应的方法步骤;以及图7中所示的发送模块703的功能可以由图2所示的下层收发包模块实现,即下层收发包模块可以执行发送模块703对应的方法步骤。
本申请中发送的小数据包,就是从发送端的应用层下发到MPTCP模块,然后将小数据包分配到各个TCP子流上,通过发送端的下层收发包模块将小数据包发送到网络,再经过网络的传输,由支持MPTCP技术的对端硬件接收后上报传输层,在传输层解析和整合后上报给对端应用层,从而完成数据的传输。
如图3所示,图3中的左图是一种不启用小包发送控制策略的小数据发送示意图。发送端可以连续向接收端发送多个小数据包(小数据包a、小数据包b和小数据包c),接收端接收到每个小数据包之后,向发送端返回该小数据对应的ACK包。图2中的右图是一种启用小包发送控制策略的小数据发送示意图。发送端在向接收端发送小数据包a之后,等待接收端返回该小数据包a对应的ACK包,此时小数据包b和小数据包c已经缓存,并组合成中/大数据包,发送端在接收到接收端返回的ACK之后,才允许向接收端发送该中/大数据包。
为了测试小包发送控制策略对使用冗余调度策略发送小数据包的传输时延的影响,发送端与接收端使用冗余调度策略进行数据交互传输过程中,断开LTE或者WIFI中某一接口,测试业务层数据传输时延。如图4所示,图4是本申请实施例提供的一种传输时延测试的示意图。包括:首先,发送端向接收端发送小数据包,并且记录发送小数据包的时间戳信息,例如T1。其中,每个小数据包携带有该小数据包的序号。其次,接收端接收到发送端发送的小数据包后,向发送端返回一个ACK包,其中,该ACK携带有与小数据包的序号相同的序号。然后,当发送端接收到接收端发送的ACK包时,记录接收到ACK包的时间戳信息,例如T2,并且根据ACK包中所携带的序号,获取小数据的时间戳信息T1。最后,将时间戳信息T2减去时间戳信息T1,计算得到小数据包的传输时延(T2-T1)。
如图5所示,图5是本申请实施例提供的一种传输时延统计的示意图。其中,横坐标表示小数据包的序号,纵坐标表示测试过程中记录的每个小数据包的传输时延。小数据包通过WIFI接口传输的时延在40ms左右,通过LTE接口传输的时延在20ms左右。如果小数据包通过冗余调度策略在两条子流上重复发送,则记录到的每个小数据包的传输时延应该在20ms左右。从图5可知,在从WIFI接口切换到LTE接口进行传输的过程中,在两条子流上重复发送小数据包,小数据包的传输时延出现了明显的波动。其中,主要原因包括:当发送端在其中一条子流上发送小数据包时,允许在空中飞行一个小数据包,所以第一个小数据包可以发送成功。当发送端将携带相同数据的小数据包调度在另一条子流上重复发送时,小包发送控制策略生效,由于此时空中有一个飞行的小数据包,因此不允许再次发送小数据包,导致小数据包的传输时延出现了明显的波动。
综上所述,当使用冗余调度策略尝试在MPTCP连接的多条子流上重复发送小数据包时,当使用冗余调度策略尝试在多条路径上发送多个携带相同数据的小数据包时,小包发 送控制策略会导致小数据包无法及时在多条子流上重复发送,需要等待小数据包对应的ACK包传回后再继续发送小数据包,影响数据传输的效率。为了解决上述技术问题,本申请实施例提供了如下解决方案。
请参见图6,图6是本申请实施例提供的一种数据包发送方法的流程示意图。该方法包括但不限于如下步骤:
S601,所述发送端确定所述多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS。
具体的,所述第一条件包括所述发送端已配置冗余调度策略、所述多路径连接的调度策略为冗余调度策略、所述多路径连接的接收端已配置冗余调度策略、所述小数据包为使用冗余调度策略发送的数据包、所述小数据包在所述多路径连接的一条路径上发送后需要在另一条路径上重复发送以及所述发送端当前在所述多路径连接的所述多条路径上发送数据包中的至少一项,所述冗余调度策略用于指示所述发送端通过所述冗余传输模式传输数据。
应理解,发送端在多路径连接的一条路径上发送小数据包之后,如果小数据包在传输过程中丢失或发送失败,需要通过冗余传输模式在多路径连接的另一条路径上再次发送该小数据包。这种情况下,也需要解除小包发送控制策略,在解除小包发送控制策略之后通过冗余传输模式在另一条路径重新发送小数据包。
其中,确定小数据包在传输过程中丢失或发送失败的方法至少包括:发送端在多路径连接的一条路径上发送小数据包之后,超过预设的时长未接收到该小数据包对应的确认包,发送端可以确定该小数据包丢失或发送失败。或者,发送端在多路径连接的一条路径上发送小数据包之后,然后在多路径连接的未发送过小数据包的至少一条路径上发送大数据包,发送端在接收到该大数据包对应的确认包之前、未接收到该小数据包对应的确认包,发送端可以确定该小数据包丢失或发送失败。其中,所述大数据包中包括的数据的长度不小于最大数据包长度MSS。
在本申请实施例中,控制所述发送端通过所述多路径连接发送小数据包的时间间隔可以至少包括如下几种可选方式:
第一种可选方式,发送端向接收端发送小数据包之后,未接收到返回的小数据包对应的ACK包之前不允许发送与该小数据包携带相同数据的小数据包。具体的,发送端将第一个小数据先发送出去,将后面到达的第二个小数据包缓存起来。当发送端接收对第一个小数据包对应的ACK包之后,再发送缓存中的第二个小数据包,同时继续对随后到达第三个小数据包进行缓存,只有在接收到对前一个小数据包的ACK包后才继续发送下一个小数据包。例如,当启用Nagle机制时,当发送端有一个小数据包处于已发送但未确认状态下时,发送端不允许继续发送小数据包。
第二种可选方式,预先设定定时时间,发送端向接收端发送小数据包之后,未到达该预先设定的定时时间不允许发送与小数据包携带相同数据的小数据包。具体的,发送端将第一个小数据先发送出去,开始计时,并将后面到达的第二小数据包缓存起来。当计时时 长超过该定时时间时,发送缓存中的第二个小数据包,然后再开始计时,同时继续对随后到达第三个小数据包进行缓存,只有在每次等待超过该定时时间时才继续发送下一个小数据包。
第三种可选方式,启动阻塞发送条件,该阻塞发送条件用于发送端在发送小数据包之后、且未接收到返回的小数据包对应的ACK包之前不允许发送与该小数据包携带相同数据的小数据包。若在等待一段时间后,小数据包拼接成一个大数据包,就可以向接收端发送该拼接成的大数据包。
需要说明的是,本申请实施例中的所述小数据包中数据包括TCP协议以上的协议的报头,例如远程过程调用协议(Remote Procedure Call Protocol,RPC)的报头、超文本传输协议(HyperText Transfer Protocol,HTTP)的报头,而不包括TCP报头以及更底层的报头,例如控制报文协议(Internet Control Message Protocol,ICMP),因此小数据包中包括的数据的长度为有效数据的长度与TCP协议以上的协议的报头的长度之和。当有效数据的长度与TCP协议以上的协议的报头的长度之和小于最大数据包长度MSS时,小包发送控制策略生效,进而需要确定是否解除多路径连接所使用小包发送控制策略。
需要说明的是,当所述发送端确定所述多路径连接不满足第一条件时,例如发送端和接收端的多路径连接都没有配置冗余调度策略,发送端可以使用小包发送控制策略对小数据包进行调度,并在各条路径上发送小数据包。
S602,所述发送端解除所述小包发送控制策略,至少包括如下几种可选方式:
第一种可选方式,所述发送端停止执行所述小包发送控制策略,例如在执行到小包发送控制策略对应的控制逻辑时,跳过该控制逻辑,或者在确定满足条件后,关闭小包发送控制策略对应的控制逻辑。
第二种可选方式,所述发送端修改所述发送端中第一小数据包对应的序号,或修改所述发送端接收到的第一ACK包的序号,以使得所述发送端中所述第一小数据包对应的序号小于等于所述第一ACK包的序号,所述第一小数据包为所述发送端在当前时刻前发送的最后一个小数据包、且所述发送端未接收到所述第一小数据包对应的ACK包,所述第一ACK包为所述发送端在当前时刻前接收到的序号最大的ACK包。其中,当前时刻可以为发送端当前的系统时间、或者为修改序号的时刻。
第三种可选方式,所述发送端将所述发送端保存的未确认小数据包个数修改为0,其中,所述未确认小数据包个数用于表示所述发送端已经发送但未收到对应的ACK包的小数据包的个数。具体的,在发送端发送第一个小数据包之后,可以立即将未确认小数据包个数修改为0,再发送第二个小数据包,并立即再将未确认小数据包个数修改为0,再发送第三个小数据包。每次发送前一个小数据包之后,立即将未确认小数据包个数修改为0,以便发送下一个小数据包。
第四种可选方式,所述发送端通过定时器控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述发送端在通过所述多路径连接发送第一小数据包后,修改所述定时器以使得所述定时器提前到达预定时间,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包。其中,预定时间的时长可以小于传输时延,传输时延可以为发送端接收到小数据包对应的ACK包的时刻与发送端发送小数据包的时刻的差值。另 外,当前时刻可以为发送端当前的系统时间、或者为修改序号的时刻。
S603,以及在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包。
第一种可选方式,由于发送端在执行到小包发送控制策略对应的控制逻辑时,跳过该控制逻辑,或者在确定满足条件后关闭小包发送控制策略对应的控制逻辑。发送端可以通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包。
第二种可选方式,在发送端修改发送端中第一小数据包对应的序号,或修改发送端接收到的第一ACK包的序号之后,发送端中第一小数据包对应的序号小于等于第一ACK包的序号,这可以表示发送端已经接收到全部小数据包对应的ACK包,这样发送端就可以无需等待第一小数据包对应的ACK包传回后再继续发送小数据包,从而达到了解除小包发送控制策略的目的。进而允许在多路径连接的多条路径中未发送过第一小数据包的至少一条路径上,发送与第一小数据包携带相同数据的小数据包。在发送与第一小数据包携带相同数据的小数据包之后,可以再次修改发送端中第一小数据包对应的序号或修改发送端接收到的第一ACK包的序号,这可以再次表示发送端已经接收到全部小数据包对应的ACK包,这样发送端就可以无需等待该小数据包对应的ACK包传回后再继续发送小数据包,解除小包发送控制策略,通过冗余传输模式,在多路径连接的多条路径上发送第二小数据包。
第三种可选方式,由于发送端将发送端保存的未确认小数据包个数修改为0,这样发送端就可以无需等待该未确认小数据包对应的ACK包传回后再继续发送小数据包,从而达到了解除小包发送控制策略的目的。然后可以在多路径连接的多条路径中未发送过第一小数据包的另一条路径上,发送与第一小数据包携带相同数据的小数据包。然后再将未确认小数据包个数修改为0,发送端可以在多路径连接的多条路径中未发送过第一小数据包的又一条路径上,发送与第一小数据包携带相同数据的小数据包。如此循环往复,在每次发送小数据包之后,保持未确认小数据包个数为0或者将未确认小数据包个数修改为0,直到发送完毕全部的小数据包。
第四种可选方式,发送端在通过所述多路径连接发送第一小数据包后,由于已经修改所述定时器以使得所述定时器提前到达预定时间,在接收到第一小数据包对应的ACK包之前,定时器提前到达预定时间时,不需要等待接收第一小数据包对应的ACK包,就可以通过所述冗余传输模式在所述多路径连接的多条路径中未发送过所述第一小数据包的路径上,发送与所述第一小数据包携带相同数据的小数据包;并且,所述发送端在发送与所述第一小数据包携带相同数据的小数据包后,可以再次修改所述定时器以使得所述定时器提前到达预设时间;在所述定时器再次提前到达预定时间时,在所述多路径连接的路径上发送第二小数据包。
应理解,在定时器提前到达预定时间时,可以立即在多路径连接的多条路径中未发送过第一小数据包的路径上发送与所述第一小数据包携带相同数据的小数据包。或者,由于在执行代码过程中存在延迟或需要执行一些现有的发送报文的流程中,与发送相关的准备步骤(例如报文封装,将报文传递给网卡等硬件处理等等),当定时器提前到达预定时间 时,可以延迟一段时间,然后在多路径连接的多条路径中未发送过第一小数据包的路径上发送与所述第一小数据包携带相同数据的小数据包。
这样,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,通过增加的判断机制可以自适应的在满足条件的情况下解除小包发送控制策略,而无需更改协议栈中开启小包发送控制策略的默认配置,在无需进行冗余传输的模式下。在解除小包发送控制策略之后,通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
需要说明的是,本申请描述的基于多路径连接的数据包发送方法中,发送端和接收端中的至少一个都可以是终端,或者支持MPTCP协议的网关,或者支持MPTCP协议的服务器。应理解,在执行本申请实施例中所述的方法前,发送端和接收端应安装了支持MPTCP协议的操作系统以及微型端口的驱动。
需要说明的是,本申请实施例中,发送端和接收端通过接入节点接入网络。其中,接入节点专指无线网络的接入节点,具体的,可以是无线WI-FI网络的接入点(Access Point,AP)、路由器、或者Winmax网络的接入点或者无线蜂窝移动网络的基站等等,本申请不限定无线网络的种类以及无线网络的接入节点具体的形式。并且,同一类型的无线网络是指同属于无线WI-FI网络的接入节点,或者同属于Winmax网络,或者同属于无线蜂窝网络的接入节点如2G网络、3G网络或者4G网络或者5G网络等等。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图7,图7是本申请实施例提供的一种数据包发送装置的结构示意图,该数据包发送装置可以包括确定模块701,处理模块702和发送模块703,其中,确定模块701,用于确定多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS;
处理模块702,用于解除所述小包发送控制策略;发送模块703,用于在解除所述小包发送控制策略后,通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包。
其中,所述第一条件包括所述发送端已配置冗余调度策略、所述多路径连接的调度策略为冗余调度策略、所述多路径连接的接收端已配置冗余调度策略、所述小数据包为使用冗余调度策略发送的数据包、以及所述发送端当前在所述多路径连接的所述多条路径上发送数据包中的至少一项,所述冗余调度策略用于指示所述发送端通过所述冗余传输模式传输数据。
可选的,处理模块702具体用于:
修改所述发送端中第一小数据包对应的序号,或修改所述发送端接收到的第一ACK包的序号,以使得所述发送端中所述第一小数据包对应的序号小于等于所述第一ACK包的序号,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包、且所述发送端未接收到所述第一小数据包对应的ACK包,所述第一ACK包为所述发送端在当前时刻前接收到的序号最大的ACK包;
相应的,发送模块703具体用于:
在所述多路径连接的多条路径中未发送过所述第一小数据包的至少一条路径上,发送与所述第一小数据包携带相同数据的小数据包;
以及,通过所述冗余传输模式,在所述多路径连接的多条路径上发送第二小数据包。
可选的,处理模块702具体用于:
将所述发送端保存的未确认小数据包个数修改为0,其中,所述未确认小数据包个数用于表示所述发送端已经发送但未收到对应的ACK包的小数据包的个数。
可选的,通过定时器控制所述发送端通过所述多路径连接发送小数据包的时间间隔,处理模块702具体用于:
在通过所述多路径连接发送第一小数据包后,修改所述定时器以使得所述定时器提前到达预定时间,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包;
相应的,发送模块703具体用于:
在所述定时器提前到达预定时间时,所述发送端通过所述冗余传输模式,在所述多路径连接的多条路径中未发送过所述第一小数据包的路径上,发送与所述第一小数据包携带相同数据的小数据包;
以及,在发送与所述第一小数据包携带相同数据的小数据包后,再次修改所述定时器以使得所述定时器提前到达预设时间;在所述定时器再次提前到达预定时间时,在所述多路径连接的路径上发送第二小数据包。
需要说明的是,各个单元的实现还可以对应参照图6所示的方法实施例的相应描述。
这样,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,通过增加的判断机制可以自适应的在满足条件的情况下解除小包发送控制策略,而无需更改协议栈中开启小包发送控制策略的默认配置,在无需进行冗余传输的模式下。在解除小包发送控制策略之后,通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
图8描述了本申请实施例提供的设备的结构示意图,本申请实施例所述的方法适用于终设备800。该设备800包括:至少一个处理电路801,通信接口804,通信接口804包括至少一个物理网卡。一种实现方式下,这个物理网卡对应多个虚拟网卡,所述多个虚拟网卡与多个端口一一对应,图中未标出,存储介质805,至少一个通信总线802。通信总线802用于实现这些组件之间的连接通信。
一种实现方式下,该设备800可以是终端设备,在是终端设备的情况下,可选的包含用户接口803,包括显示器(例如,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等),键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触摸屏等)。存储介质805可以包括只读存储器和随机存取存储器,并向处理电路801提供指令和数据。存储介质805的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,例如该设备为终端或服务器的情况下,存储介质805存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统8051, 包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;应用程序模块8052,包含各种应用程序,例如桌面(launcher)、媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。而在该设备为网关的情况下,该存储介质805可以只存储用于执行上文所述的方法(例如包括接收或发送数据包,以及接收或发送确认包,以及接收到的数据包或分析接收到的确认包等)所需要的程序代码。
该设备可以是终端,网关或者服务器,具体的可以参见图1到图4中的信息,例如,该设备为终端的情况下,可以参见图2对应的终端架构图和相关说明。该设备可以通过处理电路801调用存储介质805中的程序,使得处理电路801通过通信接口804,执行上述图中的方法及实施例,例如可以是多路径连接的发送端或者接收端。具体的实现方式、相关说明和有益效果,请参见上文,此处不再赘述。例如,处理电路801通过通信接口804,可以实现图7所示的装置中的确定模块701、处理模块702和发送模块703的功能。例如,发送模块703可以是由不同的进程或者线程调用的通信接口。
本申请的另一个实施例还记载一种芯片。这种芯片可以放置在上文所述的发送端,用于执行本申请中描述的方法,以解析和处理本申请上述方法中所述的小数据包。这种芯片还可以放置在上文所述的接收端,用于执行本申请中描述的方法。例如是接收小数据包后,生成本申请上述方法中所述的确认包。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件(例如处理器)来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上为本申请实施例所提供的一种数据包发送方法和装置,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (12)

  1. 一种数据包发送方法,其特征在于,所述方法用于一多路径连接的发送端,所述方法包括:
    所述发送端确定所述多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS;
    所述发送端解除所述小包发送控制策略;
    以及在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包。
  2. 如权利要求1所述的方法,其特征在于,所述第一条件包括所述发送端已配置冗余调度策略、所述多路径连接的调度策略为冗余调度策略、所述多路径连接的接收端已配置冗余调度策略、所述小数据包为使用冗余调度策略发送的数据包、所述小数据包在所述多路径连接的一条路径上发送后需要在另一条路径上重复发送以及所述发送端当前在所述多路径连接的所述多条路径上发送数据包中的至少一项,所述冗余调度策略用于指示所述发送端通过所述冗余传输模式传输数据。
  3. 如权利要求1或2所述的方法,其特征在于,所述发送端解除所述小包发送控制策略,包括:
    所述发送端修改所述发送端中第一小数据包对应的序号,或修改所述发送端接收到的第一ACK包的序号,以使得所述发送端中所述第一小数据包对应的序号小于等于所述第一ACK包的序号,所述第一小数据包为所述发送端在当前时刻前发送的最后一个小数据包、且所述发送端未接收到所述第一小数据包对应的ACK包,所述第一ACK包为所述发送端在当前时刻前接收到的序号最大的ACK包;
    相应的,在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,包括:
    所述发送端在所述多路径连接的多条路径中未发送过所述第一小数据包的至少一条路径上,发送与所述第一小数据包携带相同数据的小数据包;
    以及,所述发送端通过所述冗余传输模式,在所述多路径连接的多条路径上发送第二小数据包。
  4. 如权利要求1或2所述的方法,其特征在于,所述发送端解除所述小包发送控制策略,包括:
    所述发送端将所述发送端保存的未确认小数据包个数修改为0,其中,所述未确认小 数据包个数用于表示所述发送端已经发送但未收到对应的ACK包的小数据包的个数。
  5. 如权利要求1或2所述的方法,其特征在于,所述发送端通过定时器控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述发送端解除所述小包发送控制策略,包括:
    所述发送端在通过所述多路径连接发送第一小数据包后,修改所述定时器以使得所述定时器提前到达预定时间,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包;
    相应的,在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个所述小数据包,包括:
    所述发送端在所述定时器提前到达预定时间时,通过所述冗余传输模式,在所述多路径连接的多条路径中未发送过所述第一小数据包的路径上,发送与所述第一小数据包携带相同数据的小数据包;
    以及,所述发送端在发送与所述第一小数据包携带相同数据的小数据包后,再次修改所述定时器以使得所述定时器提前到达预设时间;在所述定时器再次提前到达预定时间时,在所述多路径连接的路径上发送第二小数据包。
  6. 一种数据包发送装置,其特征在于,所述装置为一多路径连接的发送端,所述装置包括:
    确定模块,用于确定多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS;
    处理模块,用于解除所述小包发送控制策略;
    发送模块,用于在解除所述小包发送控制策略后,通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包。
  7. 如权利要求6所述的装置,其特征在于,所述第一条件包括所述发送端已配置冗余调度策略、所述多路径连接的调度策略为冗余调度策略、所述多路径连接的接收端已配置冗余调度策略、所述小数据包为使用冗余调度策略发送的数据包、所述小数据包在所述多路径连接的一条路径上发送后需要在另一条路径上重复发送以及所述发送端当前在所述多路径连接的所述多条路径上发送数据包中的至少一项,所述冗余调度策略用于指示所述发送端通过所述冗余传输模式传输数据。
  8. 如权利要求6或7所述的装置,其特征在于,所述处理模块具体用于:
    修改所述发送端中第一小数据包对应的序号,或修改所述发送端接收到的第一ACK包的序号,以使得所述发送端中所述第一小数据包对应的序号小于等于所述第一ACK包 的序号,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包、且所述发送端未接收到所述第一小数据包对应的ACK包,所述第一ACK包为所述发送端在当前时刻前接收到的序号最大的ACK包;
    相应的,所述发送模块具体用于:
    在所述多路径连接的多条路径中未发送过所述第一小数据包的至少一条路径上,发送与所述第一小数据包携带相同数据的小数据包;
    以及,通过所述冗余传输模式,在所述多路径连接的多条路径上发送第二小数据包。
  9. 如权利要求6或7所述的装置,其特征在于,所述处理模块具体用于:
    将所述发送端保存的未确认小数据包个数修改为0,其中,所述未确认小数据包个数用于表示所述发送端已经发送但未收到对应的ACK包的小数据包的个数。
  10. 如权利要求6或7所述的装置,其特征在于,通过定时器控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述处理模块具体用于:
    在通过所述多路径连接发送第一小数据包后,修改所述定时器以使得所述定时器提前到达预定时间,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包;
    相应的,所述发送模块具体用于:
    在所述定时器提前到达预定时间时,所述发送端通过所述冗余传输模式,在所述多路径连接的多条路径中未发送过所述第一小数据包的路径上,发送与所述第一小数据包携带相同数据的小数据包;
    以及,在发送与所述第一小数据包携带相同数据的小数据包后,再次修改所述定时器以使得所述定时器提前到达预设时间;在所述定时器再次提前到达预定时间时,在所述多路径连接的路径上发送第二小数据包。
  11. 一种数据包发送设备,其特征在于,所述设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有协议栈程序,所述通信接口用于通过执行所述协议栈程序与其他设备收发数据包,所述处理器用于通过运行所述存储介质中的指令通过所述通信接口,以实现权利要求1至5所述的数据包发送方法。
  12. 一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至5中任一项所述的方法。
PCT/CN2019/073261 2018-02-12 2019-01-25 一种数据包发送方法及相关设备 WO2019154134A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CA3090903A CA3090903C (en) 2018-02-12 2019-01-25 Packet sending method and related device
CN201980013117.4A CN111713056B (zh) 2018-02-12 2019-01-25 一种数据包发送方法及相关设备
KR1020207025498A KR102476192B1 (ko) 2018-02-12 2019-01-25 패킷 전송 방법 및 관련 장치
ES19751709T ES2955714T3 (es) 2018-02-12 2019-01-25 Método de envío de paquetes de datos y dispositivo relacionado
EP19751709.7A EP3739784B1 (en) 2018-02-12 2019-01-25 Data packet sending method and related device
US16/991,493 US11444867B2 (en) 2018-02-12 2020-08-12 Packet sending method and related device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810148231.5A CN109951260B (zh) 2018-02-12 2018-02-12 一种数据包发送方法及相关设备
CN201810148231.5 2018-02-12

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/991,493 Continuation US11444867B2 (en) 2018-02-12 2020-08-12 Packet sending method and related device

Publications (1)

Publication Number Publication Date
WO2019154134A1 true WO2019154134A1 (zh) 2019-08-15

Family

ID=67006026

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/073261 WO2019154134A1 (zh) 2018-02-12 2019-01-25 一种数据包发送方法及相关设备

Country Status (7)

Country Link
US (1) US11444867B2 (zh)
EP (1) EP3739784B1 (zh)
KR (1) KR102476192B1 (zh)
CN (2) CN109951260B (zh)
CA (1) CA3090903C (zh)
ES (1) ES2955714T3 (zh)
WO (1) WO2019154134A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336683B2 (en) * 2019-10-16 2022-05-17 Citrix Systems, Inc. Systems and methods for preventing replay attacks
CN111147573A (zh) 2019-12-24 2020-05-12 网宿科技股份有限公司 一种数据传输的方法和装置
CN113067741B (zh) * 2020-01-02 2022-11-29 中国移动通信有限公司研究院 一种信息处理方法、装置、终端及存储介质
CN111885022B (zh) * 2020-07-09 2023-06-20 河南信大网御科技有限公司 基于通信接口的拟态通信方法、通信系统及终端设备
CN111901075B (zh) * 2020-07-16 2021-11-23 华中科技大学 多网络融合传输方法、传输系统及计算机可读存储介质
CN111970340B (zh) * 2020-07-30 2023-06-16 北京大米科技有限公司 信息传输方法、可读存储介质和电子设备
CN112383472A (zh) * 2020-11-13 2021-02-19 Oppo广东移动通信有限公司 网络传输方法、装置、存储介质及电子设备
CN116684036B (zh) * 2022-11-03 2024-03-22 荣耀终端有限公司 数据处理方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103326831A (zh) * 2013-06-04 2013-09-25 华为终端有限公司 在多路传输控制协议中的链路处理方法和移动终端
CN103503357A (zh) * 2011-03-04 2014-01-08 黑莓有限公司 控制网络设备的行为
CN103905463A (zh) * 2014-04-21 2014-07-02 北京邮电大学 一种适用于多路径传输的连接管理与控制方法
WO2017194172A1 (en) * 2016-05-13 2017-11-16 Telefonaktiebolaget Lm Ericsson (Publ) Improved resource usage in a multipath network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101231357B1 (ko) * 2006-04-06 2013-02-07 엘지전자 주식회사 다중 안테나 시스템에서 채널 상태 정보 귀환 방법 및데이터 송신 방법
WO2011045887A1 (ja) * 2009-10-13 2011-04-21 日本電気株式会社 ゲートウェイ装置、移動通信システム、移動端末、パケット転送制御方法、移動端末の制御方法、及び非一時的なコンピュータ可読媒体
CN102546106B (zh) * 2011-12-28 2014-03-26 南京邮电大学 面向卫星网络的多路径并行传输方法
CN103840917B (zh) * 2014-03-28 2017-04-26 北京邮电大学 一种基于网络编码的多路并行传输方案
US9787575B2 (en) * 2015-05-28 2017-10-10 Arista Networks, Inc. Method and system for programming equal-cost multi-path routes on network devices
CN105099620B (zh) * 2015-06-03 2020-06-09 香港中文大学深圳研究院 代数交换系统及其组装和解码算法、数据包的解码算法
US10630813B2 (en) * 2016-05-16 2020-04-21 Telefonaktiebolaget Lm Ericsson (Publ) Transporting UDP packets over an MPTCP connection
KR102111029B1 (ko) * 2016-06-17 2020-05-14 주식회사 케이티 다중망 병합 전송 장치, 그리고 이의 패킷 스케줄링 방법
EP4123937A1 (en) * 2016-06-19 2023-01-25 LG Electronics, Inc. Data transmission method and transmitter
WO2017222256A1 (ko) * 2016-06-23 2017-12-28 엘지전자 주식회사 다중 전송 기법이 적용된 무선통신시스템에서 신호를 수신하는 방법 및 장치
WO2017220149A1 (en) 2016-06-23 2017-12-28 Telefonaktiebolaget Lm Ericsson (Publ) Scheduling packets for transport over an mptcp connection
EP3276891B1 (en) * 2016-07-29 2019-02-27 Deutsche Telekom AG Techniques for establishing a communication connection between two network entities via different network flows
CN106254202B (zh) * 2016-08-29 2019-08-02 北京邮电大学 一种基于喷泉码的多路并行传输方法以及装置
CN106656856B (zh) * 2016-12-16 2019-07-26 浙江大学 一种抵抗mptcp接收缓冲区阻塞的数据包调度方法
CN111788817A (zh) * 2018-03-01 2020-10-16 诺基亚技术有限公司 传输控制协议之间的转换

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103503357A (zh) * 2011-03-04 2014-01-08 黑莓有限公司 控制网络设备的行为
CN103326831A (zh) * 2013-06-04 2013-09-25 华为终端有限公司 在多路传输控制协议中的链路处理方法和移动终端
CN103905463A (zh) * 2014-04-21 2014-07-02 北京邮电大学 一种适用于多路径传输的连接管理与控制方法
WO2017194172A1 (en) * 2016-05-13 2017-11-16 Telefonaktiebolaget Lm Ericsson (Publ) Improved resource usage in a multipath network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3739784A4 *

Also Published As

Publication number Publication date
EP3739784A1 (en) 2020-11-18
CN111713056B (zh) 2022-01-14
KR20200116985A (ko) 2020-10-13
KR102476192B1 (ko) 2022-12-08
CN109951260A (zh) 2019-06-28
CN111713056A (zh) 2020-09-25
US20200374217A1 (en) 2020-11-26
CA3090903A1 (en) 2019-08-15
EP3739784B1 (en) 2023-06-21
US11444867B2 (en) 2022-09-13
CA3090903C (en) 2023-04-25
EP3739784A4 (en) 2021-03-17
ES2955714T3 (es) 2023-12-05
CN109951260B (zh) 2020-04-03

Similar Documents

Publication Publication Date Title
WO2019154134A1 (zh) 一种数据包发送方法及相关设备
CN108881008B (zh) 一种数据传输的方法、装置和系统
US9655003B2 (en) Systems and methods for improved wireless interface aggregation
US11088957B2 (en) Handling of data packet transfer via a proxy
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
EP3694160A1 (en) Date transmission method, apparatus and device
WO2006130960A1 (en) System and method of controlling a mobile device using a network policy
EP1393497B1 (en) Dual mode service platform within network communication system
US20240080920A1 (en) Modified methods and system of transmitting and receiving transmission control protocol segments over internet protocol packets
WO2022143468A1 (zh) 数据传输方法、装置、系统及存储介质
EP3607708B1 (en) Congestion control in a dual-link arrangement
CN115766605A (zh) 网络拥塞控制方法、装置及系统
WO2013036453A1 (en) Methods, system and apparatus for packet routing using a hop-by-hop protocol in multi-homed environments
Kumar et al. Device‐centric data reordering and buffer management for mobile Internet using Multipath Transmission Control Protocol
JP6973511B2 (ja) 通信装置、通信システム、通信方法及びプログラム
Amend et al. In-network Support for Packet Reordering for Multiaccess Transport Layer Tunneling
Shikama Mitigation of bursty packets by a tcp proxy improving tcp performance in a wired and wireless network
EP3389206B1 (en) Multipath error correction
Lübben et al. Fast Reinjection for Intermittent MPTCP Connections
Khan Adaptive Simultaneous Multipath Transmission Scheme
Havey et al. Fast wireless protocol: A network stack design for wireless transmission
Khan et al. Throughput enhancement of simultaneous multipath communication using modified fast retransmit scheme
Kodama et al. Dependable communication using multiple network paths on fast long‐distance networks

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: 19751709

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 3090903

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019751709

Country of ref document: EP

Effective date: 20200815

ENP Entry into the national phase

Ref document number: 20207025498

Country of ref document: KR

Kind code of ref document: A