Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SENDING DEVICE FOR TRANSMITTING DATA PACKETS OF A DATA FILE OVER A NETWORK CONNECTION
Document Type and Number:
WIPO Patent Application WO/2022/262944
Kind Code:
A1
Abstract:
Provided a computer-implemented method for transmitting one or more data packets of a data file over a network connection. The method includes identifying one or more significant packets that are significant to network and/or connection performance. The method includes determining a drop precedence for each packet. The method includes assigning the drop precedence in a header field of each packet. A high drop precedence indicates that the packet has a smaller probability of being dropped by a network device in high traffic conditions, compared with a low drop precedence. Assigning the drop precedence includes assigning a high drop precedence for each significant packet.

Inventors:
COHEN REUVEN (DE)
BELKAR BEN-SHAHAR (DE)
MIZRAHI TAL (DE)
Application Number:
PCT/EP2021/066011
Publication Date:
December 22, 2022
Filing Date:
June 15, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
COHEN REUVEN (DE)
International Classes:
H04L47/2466; H04L47/31
Domestic Patent References:
WO2019108102A12019-06-06
Foreign References:
US8203956B12012-06-19
US20080019371A12008-01-24
US20030231594A12003-12-18
Attorney, Agent or Firm:
KREUZ, Georg (DE)
Download PDF:
Claims:
CLAIMS

1. A computer-implemented method for transmitting one or more data packets of a data file over a network connection, the method comprising: identifying one or more significant packets that are significant to network and/or connection performance; determining a drop precedence for each packet; and assigning the drop precedence in a header field of each packet; wherein a high drop precedence indicates that the packet has a smaller probability of being dropped by a network device in high traffic conditions, compared with a low drop precedence; and wherein assigning the drop precedence includes assigning a high drop precedence for each significant packet.

2. The computer-implemented method of claim 1, comprising identifying a network connection packet as a significant packet and assigning a high drop precedence for the network connection packet.

3. The computer-implemented method of claim 2, wherein the network connection packet is one of a connection setup packet, a packet that contains metadata information and a connection tear down packet.

4. The computer-implemented method of any preceding claim, comprising identifying a packet related to retransmission as a significant packet and assigning a high drop precedence for the packet related to retransmission.

5. The computer-implemented method of claim 4, wherein the packet related to retransmission is one of an acknowledgment message packet, and a retransmitted data packet.

6. The computer-implemented method of any preceding claim, comprising identifying a last packet of the connection as a significant packet and assigning a high drop precedence for the last packet of the connection.

7. The computer-implemented method of any preceding claim, further comprising: maintaining a congestion control scheme for each drop precedence level, and assigning a new packet with a specific drop precedence only if the congestion control scheme allows that.

8. The computer-implemented method of any preceding claim, wherein the assigned drop precedence indicates one of 3 or more drop precedence levels.

9. The computer-implemented method of any preceding claim, wherein determining the drop precedence for each packet is performed in a transport layer of a sending device (202, 302).

10. A computer readable medium configured to store instructions which, when executed by a processor (204), cause the processor (204) to execute the method of any preceding claim.

11. A sending device (202, 302) for transmitting one or more data packets of a data file over a network connection, the sending device (202, 302) comprising a processor (204) configured to perform the method of any one of claims 1 to 9.

Description:
METHOD AND SENDING DEVICE FOR TRANSMITTING DATA PACKETS OF A DATA FILE OVER A NETWORK CONNECTION

TECHNICAL FIELD

The disclosure relates to a computer-implemented method for transmitting one or more data packets of a data file over a network connection more particularly, the disclosure relates to a sending device for transmitting the one or more data packets of the data file over the network connection.

BACKGROUND

Electronic gadgets, capable of connecting to network services, often rely on the data delivery of the network service. Most of the applications require reliable data delivery. Ensuring reliable delivery of application data is of utmost importance as networks have a high possibility of dropping packets. Therefore, there is an increasing need for unfailing packet transport protocols. The existing concept behind the existing protocols is that a sending device sends one or more data packets and a receiving device that informs the sending regarding the received and missing packets. The sending device then retransmits the missing data packet and the cycle continues until all packets are correctly received.

In the known approaches, the application of “transaction completion time” is the most important key performance indicator (KPI) for the services provided by the network services. The transaction completion time provides the information on how much time has been elapsed between the time that the application at the sending device submits the to-be-transmitted packet to the packet transport layer and the time that the whole packet is completely delivered to the receiving device. However, in this used case, the transaction completion time depends on many parameters, such as the congestion of the network, the performance level of the congestion protocols, the speed of identification of the packet loss according to the packet transport protocol at the sending device end and the speed of retransmitting the lost packets. As seen in the exemplary prior art view of FIG. 1, a reliable transport protocol for data packets is showcased. Reliable transport protocols for data packets, such as but not limited to, transmission control protocol (TCP), quick UDP internet connection (QUIC), remote direct memory access (RDMA), ensure that all the data packets sent are received correctly on the receiving device end. In all of the reliable transport protocols, there are packets whose loss will have more negative impact on the transaction completion time than other packets. These packets may be referred to as being “significant” to the performance of the network. In Figure 1, this is the case for the retransmission of data packet 2. If the retransmission of data packet 2 is lost, the sending device is likely to stall for a long time until a timeout. Data packet 10 is also important as a loss of this packet is likely to result in a timeout before retransmission. In the selective-repeat protocol, the first retransmission is more important than regular data packets, the second retransmission is more important than the first retransmission, and so on. In go- back-N protocol, a retransmission is not more important than a regular data packet because each loss has the same penalty. On receiving the data packets, the receiving device may send an acknowledge message (ACK), a negative acknowledge message (NACK), a selective acknowledge message (SACK) to the sending device.

Therefore, the present disclosure aims to improve the performance of existing systems or technologies in the transmitting of one or more data packets of a data file, over a network connection.

SUMMARY

It is an object of the disclosure to provide an improved computer-implemented method and a sending device for transmitting one or more data packets of a data file over the network connection.

This object is achieved by the features of the independent claims. Further implementations are apparent from the dependent claims, the description, and the figures.

The disclosure provides a computer-implemented method for transmitting one or more data packets of a data file over a network connection. The disclosure also provides a sending device for transmitting one or more data packets of a data file over a network connection. According to a first aspect, there is provided a computer-implemented method for transmitting one or more data packets of a data file over a network connection. The method includes identifying one or more significant packets that are significant to network and/or connection performance. The method includes determining a drop precedence for each packet. The method includes assigning the drop precedence in a header field of each packet. A high drop precedence indicates that the packet has a smaller probability of being dropped by a network device in high traffic conditions, compared with a low drop precedence. Assigning the drop precedence includes assigning a high drop precedence for each significant packet.

The computer-implemented method ensures that important data packets may have a higher probability of being successfully delivered without being dropped in the network connection than regular data packets. The computer-implemented method assigns the drop precedence including assigning the high drop precedence for each significant packet, thereby reducing the probability that the packet is dropped during transmit. The computer-implemented method employs a transport layer (L4) protocol that can indicate the drop precedence to an intermediate device operating in L2 or L3 in order to improve performance. The computer-implemented method uses only information that is available at a sending device of a reliable transmission protocol without any hints from an application. The computer-implemented method can be applied to any reliable transmission protocol (e.g. Go-back-N, or Selective-Repeat), but its improvement is bigger for selective-repeat.

The computer-implemented method may be integrated into any existing recovery loss protocol. For example, the future remote direct memory access (or any protocol) and storage protocol may use a protocol for reliable data transmission in loss-prone networks. The computer- implemented method expedites the completion time of the flow by utilizing the network resources in the best possible manner.

Optionally, the computer-implemented method includes identifying a network connection packet as a significant packet and assigning a high drop precedence for the network connection packet.

Optionally, the network connection packet is one of a connection setup packet, a packet that contains metadata information and a connection tear down packet. Optionally, the computer- implemented method includes identifying a packet related to retransmission as a significant packet and assigning a high drop precedence for the packet related to retransmission. Another advantage of the computer-implemented method is that a protocol for reliable data packet delivery decides the importance of the data packet and assigns the high drop precedence for the data packet. The assigning of the high drop precedence can reduce a time taken to deliver a whole data file from the sending device to a receiving device.

The packet related to retransmission may be one of an acknowledgement message packet, and a retransmitted data packet. Optionally, the computer-implemented method includes identifying an end of stream packet as a significant packet and assigning a high drop precedence for the end of stream packet. Optionally, the computer-implemented method includes maintaining a congestion control scheme for each drop precedence level, and assigning a new packet with a specific drop precedence only if the congestion control scheme allows that. Optionally, the assigned drop precedence may indicate one of three or more drop precedence levels.

Optionally, determining the drop precedence for each packet is performed in a transport layer of the sending device. The computer-implemented method enables the sending device to decide the precedence of the data packet being sent.

According to a second aspect, there is provided a computer readable medium is configured to store instructions which, when executed by a processor, cause the processor to execute the above method.

According to a third aspect, there is provided a sending device is used for transmitting one or more data packets of a data file over a network connection. The sending device includes a processor configured to perform the above method.

The sending device assigns the drop precedence including assigning the high drop precedence for each significant packet, thereby reducing the probability that the packet will be dropped during transmit. The sending device employs a transport layer (L4) protocol that can indicate the drop precedence to an intermediate device operating in L2 or L3 in order to improve performance. The sending device uses only information that available at the sending device of a reliable transmission protocol without any hints from an application.

Therefore, in contradistinction to the prior art, according to the computer-implemented method and the sending device, a precedence value is set for all the data packets, to ensure a safe transmit of important data packets. The method enables important data packets to have a higher probability than regular data packets to be successfully delivered. The method enables the drop probability to be assigned in the header field of the data file to be easily read by the network intermediate devices (switches).

The computer-implemented method may be integrated into any existing recovery loss protocols. For example, the future remote direct memory access (or any protocol) and storage protocol may use a protocol for reliable data transmission in loss prone networks.

These and other aspects of the disclosure will be apparent from the implementations described below.

BRIEF DESCRIPTION OF DRAWINGS

Implementations of the disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:

FIG. 1 is an exemplary view of data packet transmission from a sending device to a receiving device according to prior art;

FIG. 2 is a block diagram of a sending device for transmitting one or more data packets of a data file over a network connection in accordance with an implementation of the disclosure;

FIG. 3 is an exemplary view that illustrates a drop probability of data packets during transmission between a sending device and a receiving device, in accordance with an implementation of the disclosure;

FIG. 4 is a flow diagram that illustrates a computer-implemented method for transmitting one or more data packets of a data file over a network connection in accordance with an implementation of the disclosure; and

FIG. 5 is an illustration of a computer system (e.g. a sending device) in which the various architectures and functionalities of the various previous implementations may be implemented. DETAILED DESCRIPTION OF THE DRAWINGS

Implementations of the disclosure provide a computer-implemented method for transmitting one or more data packets of a data file over a network connection. Implementations of the disclosure provide a sending device for transmitting the one or more data packets of the data file over the network connection.

To make solutions of the disclosure more comprehensible for a person skilled in the art, the following implementations of the disclosure are described with reference to the accompanying drawings.

In order to help understand implementations of the disclosure, several terms that will be introduced in the description of the implementations of the disclosure are defined herein first.

Terms such as "a first", "a second", "a third", and "a fourth" (if any) in the summary, claims, and foregoing accompanying drawings of the disclosure are used to distinguish between similar objects and are not necessarily used to describe a specific sequence or order. It should be understood that the terms so used are interchangeable under appropriate circumstances, so that the implementations of the disclosure described herein are, for example, capable of being implemented in sequences other than the sequences illustrated or described herein. Furthermore, the terms "include" and "have" and any variations thereof, are intended to cover a non-exclusive inclusion. For example, a process, a method, a system, a product, or a device that includes a series of steps or units, is not necessarily limited to expressly listed steps or units but may include other steps or units that are not expressly listed or that are inherent to such process, method, product, or device.

FIG. 2 illustrates a block diagram of a sending device 202 for transmitting one or more data packets of a data file over a network connection in accordance with an implementation of the disclosure. The sending device 202 includes a processor 204 that transmits the one or more data packets of the data file over the network connection. The processor 204 identifies one or more significant packets that are significant to network and/or connection performance. The processor 204 determines a drop precedence for each packet. The processor 204 assigns the drop precedence in a header field of each packet. A high drop precedence assigned by the processor 204 indicates that the packet has a smaller probability of being dropped by a network device in high traffic conditions as compared with a low drop precedence. Drop precedence is assigned by assigning a high drop precedence for each significant packet. The sending device 202 assigns the drop precedence including assigning the high drop precedence for each significant packet, thereby reducing the probability that the packet is dropped during transmit. The sending device 202 may identify one or more significant packets that are necessary, for example, to reduce a transmission time of the data file and/or increase a throughput of the network connection and/or to optimize any other key performance indicator of the network.

The sending device 202 employs a transport layer (L4) protocol that can indicate the drop precedence to an intermediate device operating in L2 or L3 in order to improve performance. The sending device 202 uses only information that available at the sending device 202 of a reliable transmission protocol without any hints from an application. The sending device 202 employs a protocol for reliable data packet delivery, which decides the importance of the data packet and assigns a precedence to the data packet. The sending device 202 by assigning precedence can reduce a time taken to deliver the whole data file from the sending device 202 to receiving device.

Optionally, the processor 204 identifies a network connection packet as a significant packet and assigns a high drop precedence for the network connection packet. The network connection packet may be one of a connection setup packet. The packet may contain metadata information and a connection tear down packet.

Optionally, the processor 204 identifies a packet related to a retransmission as a significant packet and assigns a high drop precedence for the packet related to retransmission. The packet related to the retransmission may be one of an acknowledgement message packet, and a retransmitted data packet. Optionally, the processor 204 identifies an end of stream packet as a significant packet and assigns a high drop precedence for the end of stream packet. Optionally, the processor 204 maintains a congestion control scheme for each drop precedence level and assigns a new packet with a specific drop precedence only if the congestion control scheme allows that. The assigned drop precedence may indicate one of three or more drop precedence levels. The processor 204 may determine the drop precedence for each packet is performed in a transport layer of the sending device 202.

Depending on the network architecture, the header field may be one of, but not limited to, IP header, Ethernet header, Multiprotocol Label Switching (MPLS) header. The sending device 202 may decide the precedence value of a data packet based on, but not limited to, whether the data packet is retransmitted or not, a receiving device’s window length, how close the packet is to the end of the receiving stream. Network switches that read the precedence value in the header field of every data packet are used to differentiate between drop precedence. The network switches have several ways to ensure lower drop probability for data packets with high drop precedence, as compared to data packets with low or normal drop precedence. The sending device 202 assigns a minimum of two different drop precedence to every data packet. The processor 204 assigns the drop precedence in such a manner that data packets with the high drop precedence indicate a smaller probability of being dropped by the network connection as compared to a data packet with the low drop precedence. In an example, the high drop data packets are less likely to be dropped by a switch or a router during events of congestion.

Another advantage of the sending device 202 is that it can easily detect a data packet by using a network sniffer and inspect the data packet’ s header for details. The sending device 202 sends data packets using a reliable transport to a receiving device. The sending device 202, without limitation, may be selected from a mobile phone, a Personal Digital Assistant (PDA), a tablet, a desktop computer, a server, or a laptop.

FIG. 3 is an exemplary view that illustrates a drop probability of data packets during transmission between a sending device 302 and a receiving device 304, in accordance with an implementation of the disclosure. The sending device 302 transmits one or more data packets (e.g. data packets 1 to 8) of a data file over a network connection to the receiving device 304. The receiving device 304 may receive the one or more data packets from the sending device 302, except a data packet 2. Optionally, if a drop of the data packet 2 is likely to stall the sending device 302, the sending device 302 assigns it a better (e.g. smaller) drop probability. For selective-repeat, for each retransmitted packet, if a receiver’s window (bitmap) is not larger than 1 bandwidth-delay product (BPD). The selective-repeat process can be significantly improved by assigning precedence to data packets and may apply to any reliable transmission protocol such as, but not limited to Go-back-N protocol or selective-repeat protocol.

Optionally, the sending device 302 takes into account considerations for deciding the drop probability to be assigned to each data packet. The one or more data packets belonging to last BDP of a stream may be assigned a smaller drop probability. In the case, the sending device 302 is being stalled due to a data packet, the drop probability assigned to the data packet may be adjusted to a high precedence value. In the exemplary view, the loss of data packet 2 does not delay the completion time, while loss of a data packet 10 delays completion time by round trip time (RTT). The one or more data packets (e.g. data packets 1 to 8) sent by the sending device 302, in the beginning, may include metadata information. Whereas, the one or more data packets (e.g. data packets 9 to 11) sent by the sending device 302 towards an end may decide the round trip time (RTT), as a delay in the delivery of the last data packets delays the completion time by retransmission timeout (RTO).

At the sending device 302 end, if there is a process of network connection establishment, all the data packets sent during this process are assigned as high-drop precedence. For example, in transmission control protocol (TCP) process includes three data packets, two of these data packets are assigned high drop precedence. Optionally, the sending device 302 sends a first data packet of a transaction, including important meta-data. For example, in remote direct memory access (RDMA-RC), the first data packet sent by the sending device 302 contains important metadata and assigns as high drop precedence. Additionally, each retransmitted data packets along with the one or more data packets transmitted during a last RTT are assigned a high drop precedence value. In the event of the sending device 302 and the receiving device 304 having a limited simultaneous connection, the sending device 302 or the receiving device 304 demolish a network connection before setting another network connection, and the network connection demolished messages are assigned high drop precedence. The sending device 302 takes into account congestion control information for each drop precedence level.

At the receiving device 304 end, if there is a process of network connection establishment, all the data packets are sent during the process are assigned as high drop precedence. Confirmation messages sent by the receiving device 304 such as but not limited to, acknowledge message (ACK), negative acknowledge message (NACK), selective acknowledge message (SACK) are assigned as high drop precedence. In some implementations, if there are a limited number of tokens in a bucket for the high drop precedence, only in the case of sufficient tokens a new data packets can be assigned as high drop precedence. Also, the sending device 302 and the receiving device 304 are limited in the number of data packets which can be assigned as high drop precedence. Optionally, the sending device 302 takes into account congestion control information. Congestion control may be extended to generate not only “regular tokens” (for regular packets), but both “regular tokens” and “green tokens”. If more green tokens are available for a connection, the sending device 302 may assign more packets for better drop probability. FIG. 4 is a flow diagram that illustrates a computer-implemented method for transmitting one or more data packets of a data file over a network connection in accordance with an implementation of the disclosure. At a step 402, one or more significant packets that are significant to network and/or connection performance. At a step 404, a drop precedence for each packet is determined. At a step 406, the drop precedence in a header field of each packet is assigned. A high drop precedence indicates that the packet has a smaller probability of being dropped by a network device in high traffic conditions, compared with a low drop precedence. Assigning of drop precedence includes assigning a high drop precedence for each significant packet.

The computer-implemented method ensures that important data packets may have a higher probability of being successfully delivered without being dropped in the network connection than regular data packets. The computer-implemented method assigns the drop precedence including assigning the high drop precedence for each significant packet, thereby reducing the probability that the packet is dropped during transmit. The computer-implemented method employs a transport layer (L4) protocol that can indicate the drop precedence to an intermediate device operating in L2 or L3 in order to improve performance. The computer-implemented method uses only information that available at a sending device of a reliable transmission protocol without any hints from an application. The computer-implemented method is applicable to any reliable transmission protocol (e.g. Go-back-N, or Selective-Repeat), but its improvement is bigger for selective-repeat.

The computer-implemented method may be integrated into any existing recovery loss protocols. For example, the future remote direct memory access (or any protocol) and storage protocol may use a protocol for reliable data transmission in loss-prone networks. The computer-implemented method expedites the completion time of the flow by utilising the network resources in the best possible manner.

Optionally, the computer-implemented method includes identifying a network connection packet as a significant packet and assigning a high drop precedence for the network connection packet.

Optionally, the network connection packet is one of a connection setup packet, a packet that contains metadata information and a connection tear down packet. Optionally, the computer-implemented method includes identifying a packet related to retransmission as a significant packet and assigning a high drop precedence for the packet related to retransmission.

The computer-implemented method is that a protocol for reliable data packet delivery decides the importance of the data packet and assigns the high drop precedence for the data packet. The assigning of the high drop precedence can reduce a time taken to deliver a whole data file from the sending device to a receiving device.

The packet related to retransmission may be one of an acknowledgement message packet and a retransmitted data packet. Optionally, the computer-implemented method includes identifying an end of stream packet as a significant packet and assigning a high drop precedence for the end of stream packet. Optionally, the computer-implemented method includes maintaining a congestion control scheme for each drop precedence level and assigning a new packet with a specific drop precedence only if the congestion control scheme allows that. The assigned drop precedence may indicate one of three or more drop precedence levels.

Optionally, determining the drop precedence for each packet is performed in a transport layer of the sending device. The computer-implemented method enables the sending device to decide the precedence of the data packet being sent.

In an implementation, there is provided a computer readable medium is configured to store instructions which, when executed by a processor, cause the processor to execute the above method.

FIG. 5 is an illustration of a computer system (e.g. a sending device) 500 in which the various architectures and functionalities of the various previous embodiments may be implemented. As shown, the system 500 includes at least one processor 504 that is connected to a sending device 502, wherein the system 500 may be implemented using any suitable protocol, such as Peripheral Component Interconnect (PCI), PCI-Express, AGP (Accelerated Graphics Port), Hyper-Transport, or any other bus or point-to-point communication protocol (s). The system 500 also includes a memory 506.

Control logic (software) and data are stored in the memory 506 which may take a form of random-access memory (RAM). In the disclosure, a single semiconductor platform may refer to a sole unitary semiconductor-based integrated circuit or chip. It should be noted that the term single semiconductor platform may also refer to multi-chip modules with increased connectivity which simulate on-chip modules with increased connectivity which simulate on- chip operation, and make substantial improvements over utilizing a conventional central processing unit (CPU) and bus embodiment. Of course, the various modules may also be situated separately or in various combinations of semiconductor platforms.

The system 500 may also include a secondary storage 510. The secondary storage 510 includes, for example, a hard disk drive and a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, digital versatile disk (DVD) drive, recording device, universal serial bus (USB) flash memory. The removable storage drive at least one of reads from and writes to a removable storage unit in a well-known manner.

Computer programs, or computer control logic algorithms, may be stored in at least one of the memory 506 and the secondary storage 510. Such computer programs, when executed, enable the system 500 to perform various functions as described in the foregoing. The memory 506, the secondary storage 510, and any other storage are possible examples of computer-readable media.

In an implementation, the architectures and functionalities depicted in the various previous figures may be implemented in the context of the processor 504, a graphics processor coupled to a communication interface 512, an integrated circuit (not shown) that is capable of at least a portion of the capabilities of both the processor 504 and a graphics processor, a chipset (namely, a group of integrated circuits designed to work and sold as a unit for performing related functions, and so forth).

Furthermore, the architectures and functionalities depicted in the various previous-described figures may be implemented in a context of a general computer system, a circuit board system, a game console system dedicated for entertainment purposes, an application-specific system. For example, the system 500 may take the form of a desktop computer, a laptop computer, a server, a workstation, a game console, an embedded system.

Furthermore, the system 500 may take the form of various other devices including, but not limited to a personal digital assistant (PDA) device, a mobile phone device, a smart phone, a television, and so forth. Additionally, although not shown, the system 500 may be coupled to a network (for example, a telecommunications network, a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, a peer-to-peer network, a cable network, or the like) for communication purposes through an I/O interface 508.

It should be understood that the arrangement of components illustrated in the figures described are exemplary and that other arrangement may be possible. It should also be understood that the various system components (and means) defined by the claims, described below, and illustrated in the various block diagrams represent components in some systems configured according to the subject matter disclosed herein. For example, one or more of these system components (and means) may be realized, in whole or in part, by at least some of the components illustrated in the arrangements illustrated in the described figures. In addition, while at least one of these components are implemented at least partially as an electronic hardware component, and therefore constitutes a machine, the other components may be implemented in software that when included in an execution environment constitutes a machine, hardware, or a combination of software and hardware.

Although the disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions, and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims.