Apparatus and method for selective retransmission of lost data packets

Through the LERP protocol, the parameter K and data structure are used to manage the packet status, which solves the problems of unnecessary packet retransmission and timer complexity in the existing technology, realizes efficient and flexible packet retransmission, and adapts to the network's out-of-order routing.

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

Patent Information

Application Number
CN202080107886.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-15
Publication Date
2025-10-10
Estimated Expiration
2040-12-15

AI Technical Summary

Technical Problem

Existing packet retransmission solutions have problems such as unnecessary retransmissions, complex logical timer operations, and difficult timeout adjustment, which can easily lead to delays or excessive retransmissions, especially when the RTT changes.

Method used

The Lightweight Efficient Retransmission Protocol (LERP) is introduced to determine whether a data packet is lost through the parameter K and retransmit the lost data packet immediately after the first notification, avoiding reliance on timers and long timeouts. A combination of bitmaps and timers is used to manage data packet status.

Benefits of technology

It achieves efficient and flexible data packet retransmission, reduces unnecessary retransmission and delay, simplifies protocol operations, and adapts to scenarios where data packets are routed out of sequence.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116671045B_ABST
    Figure CN116671045B_ABST
Patent Text Reader

Abstract

The present application relates to a protocol for efficiently retransmitting lost data in a communication network. To this end, the present application proposes a first network device configured to: transmit a sequence of data packets to a second network device; receive at least one notification message from the second network device, wherein the at least one notification message indicates a maximum sequence number L of data packets received at the second network device and one or more data packets with sequence numbers preceding L that are lost at the second network device; and after receiving the at least one notification message, retransmit the lost data packets in a next step, wherein each lost data packet is indicated as a lost data packet after a first transmission, the sequence number X of the each lost data packet being smaller than L-K.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present invention relates to communication networks, and more particularly to data reliability of data transmission in communication networks. The present invention proposes an apparatus and method for selective retransmission of missing data packets. BACKGROUND

[0002] In a data network, when two computers communicate with each other, data reliability is usually required. To this end, the sender attaches a sequence number to each data packet, and the receiver informs the sender which data packets have been received and which data packets are missing. The sender has to retransmit the missing data packets until the receiver receives all data packets.

[0003] Protocols that ensure data reliability can be classified into three categories: stop-and-wait, go-back-N, and selective repeat.

[0004] In stop-and-wait, the sender sends a data packet and waits for an acknowledgement (ACK) of the data packet. Once the ACK arrives at the sender, the sender transmits the next data packet. If no ACK is received, the sender will retransmit the previous data packet again.

[0005] In go-back-N, the receiver is willing to accept data packet number N+1 only after it has received all data packets numbered N. If data packet N+1 is not received, but a data packet with a larger sequence number, such as N+2 or greater, is received, the receiver discards the out-of-sequence data packet. When the sender is informed that data packet N+1 is missing, the sender learns that not only this data packet, but all subsequent data packets must be retransmitted.

[0006] In selective repeat, the receiver is willing to accept out-of-sequence received data packets. The receiver places these data packets in a reordering buffer, or directly places the data packets if there is a direct data placement (DDP) information header. Then, the receiver only informs the sender of the missing data packets, and the sender only retransmits the missing data packets.

[0007] However, existing retransmission solutions of missing data packets have one or more of the following problems. In some solutions, the sender is informed of missing data packets multiple times, and the missing data packets can be unnecessarily retransmitted. Some solutions require many logical timers, which are difficult to operate. Adjusting the timeout is a very difficult task, especially because the round-trip-time (RTT), i.e., the time between sending a data packet and receiving an ACK of the data packet, can vary frequently. Incorrect estimation of the RTT can result in unnecessary retransmissions (in case the timeout is too short), or additional delays (in case the timeout is too long). SUMMARY

[0008] In view of the above limitations, embodiments of the present invention aim to introduce a new protocol for efficiently retransmitting lost packets, and in particular for selectively retransmitting lost packets. The goal is to allow the sender to retransmit only the lost packets without relying on per-packet timers or waiting for long timeouts if the first retransmission fails.

[0009] Said object is achieved by the embodiments provided in the appended independent claims. Advantageous implementations of the embodiments are further defined in the dependent claims.

[0010] A first aspect of the present invention provides a first network device, configured to: transmit a sequence of data packets to a second network device; receive at least one notification message from the second network device, wherein the at least one notification message indicates a maximum sequence number L among the sequence numbers of data packets received at the second network device and one or more data packets in the sequence of data packets that are lost at the second network device before the maximum sequence number L; after receiving the at least one notification message, retransmit the one or more data packets in the next step, wherein each of the one or more lost data packets is indicated as a lost data packet by the at least one notification message after the first transmission, and the sequence number X of each lost data packet is less than L–K, where K is a non-negative integer parameter.

[0011] The first network device (sender) is configured to selectively and efficiently retransmit lost packets by immediately retransmitting the packet when the packet is first indicated as lost. That is, the packet indicated as lost by the receiver after the first transmission is immediately retransmitted by the sender. The at least one notification message may include at least one of an ACK, a negative acknowledgment (NACK), or a selective acknowledgment (SACK).

[0012] Specifically, in the case of sequential routing of data packets, when the first network device is informed that the second network device (receiver) has received data packet L but has not received data packet X (where X <L)时,第一网络设备得知数据包X丢失。在某些情况下,网络不一定确保数据包按序路由。在该实现方式中,通过引入参数K,可以相应地修改所提出的协议。

[0013] Specifically, the first network device can maintain a parameter K, which indicates how many packets can bypass a certain packet when all packets are sent from the first network device to the second network device. In order to solve the scenario where packets are not routed in order, the parameter K is a positive integer. For example, if K = 3, then only when X <L–3时,第一网络设备才能在接收到数据包编号L之后确定数据包编号X丢失。需要注意的是,在K=0的情况下,解决方案是解决按序数据包路由,即数据包在网络中不相互绕过。

[0014] In an implementation form of the first aspect, the first network device is configured to maintain a first data structure indicating lost data packets indicated by at least one notification message; and update the first data structure in response to the at least one notification message.

[0015] Alternatively, the first data structure may be a bitmap indicating the status of each outstanding data packet (ie, each transmission data packet not acknowledged by the second network device), in order to remember which data packet has been accepted by the receiver and which data packet has not been accepted.

[0016] In an implementation form of the first aspect, the first network device is configured to maintain a second data structure indicating a data packet to be retransmitted; and after retransmitting the data packet to be retransmitted, delete the data packet to be retransmitted from the second data structure.

[0017] Optionally, the first network device can maintain another data structure in addition to the first data structure. In particular, the second network device can remember which packets must be retransmitted (the set to be retransmitted). It is important to note that when a packet is retransmitted, it is removed from the set to be retransmitted (i.e., no longer in the second data structure); however, it remains marked as lost (i.e., remains in the first data structure) until it is acknowledged as received by the recipient.

[0018] In an implementation form of the first aspect, the first network device is further configured to add one or more data packets to the second data structure if one or more data packets are indicated as lost data packets by at least one notification message after the first transmission, and the sequence number X of each lost data packet is less than L–K.

[0019] It is worth noting that if the first network device determines that the first transmission of the data packet fails, the data packet will be placed in the second data structure. To determine that the data packet is lost, the sequence number of the data packet should meet the conditions discussed above.

[0020] In an implementation form of the first aspect, the first network device is further configured to: add one or more data packets to the second data structure if the following conditions are met:

[0021] – one or more packets have been retransmitted,

[0022] - the first network device receives another notification message, wherein the another notification message indicates that one or more data packets are still lost at the second network device,

[0023] - the further notification message further indicates another data packet that has been received at the second network device, wherein the further data packet is sent for the first time after a last retransmission of the one or more data packets,

[0024] - Another data packet indicated by another notification message has a sequence number not less than Y+K, where Y is the sequence number of the first data packet sent for the first time after the last retransmission of the one or more data packets.

[0025] It is worth noting that for packets that have been retransmitted by the first network device, the second network device can still report these packets as lost before they reach the second network device. To avoid unnecessary redundant retransmissions, the first network device checks other conditions, i.e., as described in the previous paragraph, and only retransmits the packet if these conditions are met.

[0026] In an implementation form of the first aspect, the first network device is configured to operate in a first state and a second state, wherein in the first state, the first network device is configured to transmit a new data packet; and in the second state, the first network device is configured to retransmit a lost data packet according to a second data structure.

[0027] According to an embodiment of the protocol, at the sender side, i.e., at the first network device, the timeline can be divided into rounds. Each round is either a "regular round" for transmitting new data packets or a "retransmission round" for retransmitting lost data packets according to the second data structure.

[0028] In an implementation form of the first aspect, in the first state, the first network device is configured to: enter the second state if the second data structure is not empty; and / or remain in the first state if the second data structure is empty.

[0029] That is, in a "regular round," when the second network device first notifies the first network device that a packet is lost, the packet is immediately added to the second data structure. The first network device then immediately retransmits the packet, as the second data structure is not empty. There's no risk that the retransmission is spurious, as there are no outstanding copies of the packet en route to the recipient.

[0030] In an implementation form of the first aspect, in the second state, the first network device is configured to: enter the first state if the second data structure is empty; and / or remain in the second state if the second data structure is not empty.

[0031] That is, after the first network device retransmits all data packets that are known to be lost, the first network device will continue to transmit new data packets.

[0032] In an implementation form of the first aspect, the first network device is further used to: use a timer and set the timer when transmitting data packets and / or retransmitting lost data packets; when the timer expires, add all data packets for which ACK has not been received to the second data structure.

[0033] Optionally, the first network device can determine whether to initiate a new retransmission round based on a timeout. When the timer expires, the first network device retransmits all packets for which no ACK has been received. Specifically, as previously described, the notification message can include both ACKs and NACKs. Notably, an ACK indicates that a packet has been received, while a NACK indicates that a packet has been lost at the receiving end.

[0034] In an implementation form of the first aspect, the first network device is further configured to set the timer to a value greater than the RTT.

[0035] It is worth noting that RTT refers to the time between sending a packet and receiving an ACK for that packet.

[0036] A second aspect of the present invention provides a second network device, configured to: receive a sequence of data packets from a first network device; and transmit at least one notification message to the first network device, wherein the at least one notification message indicates a maximum sequence number L among the sequence numbers of data packets received at the second network device and one or more data packets in the sequence of data packets that are lost at the second network device before the maximum sequence number L.

[0037] The second network device (receiver) receives the data packet and transmits a notification message (eg, ACK and / or NACK) accordingly, thereby allowing the first network device (sender) to retransmit the lost data packet in an efficient manner.

[0038] In an implementation form of the second aspect, the second network device is further configured to transmit at least one notification message to the first network device when the timer expires.

[0039] It is worth noting that the receiver may also have a timer that triggers the transmission of a notification message if a certain number of data packets are not received within a timeout period.

[0040] A third aspect of the present invention provides a method performed by a first network device, wherein the method includes: transmitting a sequence of data packets to a second network device; receiving at least one notification message from the second network device, wherein the at least one notification message indicates a maximum sequence number L among the sequence numbers of data packets received at the second network device and one or more data packets in the data packet sequence that are lost at the second network device before the maximum sequence number L; after receiving the at least one notification message, retransmitting one or more lost data packets in the next step, wherein each of the one or more lost data packets is indicated as a lost data packet by the at least one notification message after the first transmission, and the sequence number X of each lost data packet is less than L–K, where K is a non-negative integer parameter.

[0041] The implementation of the method of the third aspect may correspond to the implementation of the first network device of the first aspect. The method described in the third aspect and its implementation achieves the same advantages and effects as the first network device described in the first aspect and its implementation.

[0042] A fourth aspect of the present invention provides a method performed by a second network device, wherein the method includes: receiving a sequence of data packets from a first network device; transmitting at least one notification message to the first network device, wherein the at least one notification message indicates a maximum sequence number L among the sequence numbers of data packets received at the second network device and one or more data packets in the sequence of data packets that are lost at the second network device before the maximum sequence number L.

[0043] The implementation of the method of the fourth aspect may correspond to the implementation of the second network device of the second aspect. The method described in the fourth aspect and its implementation achieves the same advantages and effects as the second network device described in the second aspect and its implementation.

[0044] The fifth aspect of the present invention provides a computer program product comprising program code, which is used to execute the method according to the third aspect and any implementation of the third aspect, or the fourth aspect and any implementation of the fourth aspect when implemented on a processor.

[0045] It should be noted that all devices, elements, units and modules described in this application can be implemented in software or hardware elements or any type of combination thereof. All steps performed by the various entities described in this application and the functions to be performed by the various entities described are intended to refer to the corresponding entities for performing the corresponding steps and functions. Although in the description of the following specific embodiments, the specific functions or steps performed by the external entity are not reflected in the description of the specific detailed elements of the entity that performs the specific steps or functions, it should be clear to the technician that these methods and functions can be implemented by corresponding hardware or software elements or any combination thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] The following description of specific embodiments, in conjunction with the accompanying drawings, illustrates various aspects and implementations of the present invention, wherein:

[0047] Figure 1 An example of the return N method is shown.

[0048] Figure 2 An example of a selective repetition method is shown.

[0049] Figure 3 This illustrates the ambiguity problem of the selective repetition method.

[0050] Figure 4 An example of a selective repetition method is shown.

[0051] Figure 5 An example of a selective repetition method is shown.

[0052] Figure 6 The first network device according to the embodiment of the present invention is shown.

[0053] Figure 7 An example of a light efficient retransmission protocol (LERP) according to an embodiment of the present invention is shown.

[0054] Figure 8 An example of LERP according to an embodiment of the present invention is shown.

[0055] Figure 9 An example of LERP according to an embodiment of the present invention is shown.

[0056] Figure 10 An example of LERP according to an embodiment of the present invention is shown.

[0057] Figure 11 The second network device according to the embodiment of the present invention is shown.

[0058] Figure 12 An example is shown in which message order preservation is not guaranteed.

[0059] Figure 13 The method of the embodiment of the present invention is shown.

[0060] Figure 14 The method of the embodiment of the present invention is shown. DETAILED DESCRIPTION

[0061] Illustrative embodiments of methods, devices, and program products for efficient packet retransmission in a communication system are described with reference to the accompanying drawings. Although this description provides detailed examples of possible implementations, it should be noted that these details are intended to be exemplary and do not limit the scope of this application.

[0062] In addition, one embodiment / example may refer to multiple other embodiments / examples. For example, any description mentioned in one embodiment / example, including but not limited to terminology, elements, processes, explanations and / or technical advantages, may also apply to multiple other embodiments / examples.

[0063] As mentioned earlier, protocols for ensuring data reliability can be divided into three main categories: stop-and-wait, return-N, and selective repeat.

[0064] For example, the sender sent packets 1 to 5 and only packet 3 was lost. In the return-to-N scenario, the sender will retransmit packets 3 to 5, while in the selective repeat scenario, the sender will only retransmit packet 3.

[0065] Figure 1 The figure shows a situation in which the sender sends 103 packets before receiving a negative ACK (NACK) notifying it that packet 2 is lost. Therefore, the sender must retransmit not only packet 2 but also packets 3 through 103. Only then can the sender continue to transmit new packets (104 and above).

[0066] Figure 2 The example depicted in shows a similar situation, but with selective repetition. Here, when the sender is informed that packet 2 is lost, it only retransmits this packet (i.e., packet 2), and then it can continue to transmit new packets.

[0067] It should be noted that selective repeat is a more efficient protocol because only packets that fail to reach the receiver are retransmitted. However, selective repeat is more difficult to implement than return-N for two main reasons. First, selective repeat requires the receiver to store out-of-order packets or, in other cases, requires additional DDP header information. Second, in asynchronous and unreliable networks, informing the sender which packets have been received and which packets have been lost is a difficult task. In particular, it is possible that the receiver notifies the sender of a lost packet while a transmission (retransmission) of that packet is in progress and will soon reach the receiver. Therefore, the sender of selective repeat always has difficulty deciding whether to comply with the retransmission request.

[0068] For example, a situation like Figure 3. Specifically, after receiving packet 4, the receiver understands that packet 3 is lost because, if it were not lost, it would have been received before packet 4. The receiver can inform the sender of this. The receiver can send a NACK. Optionally, the receiver can inform the sender of all the packets it has received and the packets it has not yet received in a notification message.

[0069] When the sender receives this notification message, it retransmits packet number 3. However, some time later, the sender receives another notification message indicating that packets 5 and 6 have also been lost. This additional notification message also informs the receiver that packet 3 is (still) lost. When the sender receives this additional notification message, it has no idea what the status of the retransmitted copy of packet 3 is. On the one hand, if the sender ignores the fact that this additional notification message indicates that packet 3 is (still) lost, it will never learn that the retransmitted copy of packet 3 is lost. On the other hand, if the sender retransmits packet 3 again, but the previous retransmission was received by the receiver, the second retransmission is a waste of resources.

[0070] One way to solve the above problem is for each sender to always obey the first retransmission request for any packet. However, once a sender retransmits a packet, it starts a timer, and if the timer expires before receiving an ACK for that packet, the packet is retransmitted again.

[0071] In this case, the sender will always retransmit the packet in response to a NACK. However, if a retransmission is lost, the only way for the sender to know about this loss is to associate a timer with each retransmission. If this retransmission is not given an ACK within the timeout period, it is retransmitted again. This is done in Figure 5 It should be noted that Figure 5 Not shown are all notification messages that are sent or can be sent. In this figure, the second retransmission of data packet 3 is completed after timeout.

[0072] However, this approach has two problems. First, it requires many logical timers. These timers are difficult to manipulate, especially when implementing the protocol in hardware. Second, the protocol needs to adjust timeouts, which is a very difficult task. This is especially true because the RTT can vary frequently in practice. A miscalculation of the RTT can lead to unnecessary retransmissions (if the timeout is too short) or additional delays (if the timeout is too long).

[0073] To address the aforementioned limitations and drawbacks, embodiments of the present invention propose a new protocol for selectively retransmitting lost packets. This protocol is called the Light Efficient Retransmission Protocol (LERP). One of the most important properties of LERP is that it allows the sender to retransmit only the lost packets without relying on per-packet timers or waiting for a long timeout if the first retransmission fails.

[0074] Figure 6 A first network device 600 according to an embodiment of the present invention is shown. The first network device 600 may include processing circuitry (not shown) for executing, performing, or initiating the various operations of the first network device 600 described herein. The processing circuitry may include hardware and software. The hardware may include analog circuitry or digital circuitry, or both analog and digital circuitry. The digital circuitry may include components such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), or a multi-purpose processor. The first network device 600 may also include memory circuitry that stores one or more instructions that can be executed by a processor or processing circuitry (specifically, executed under software control). For example, the memory circuitry may include a non-transitory storage medium storing executable software code that, when executed by the processor or processing circuitry, causes the various operations of the first network device 600 to be performed. In one embodiment, the processing circuitry includes one or more processors and non-transitory memory connected to the one or more processors. The non-transitory memory can carry executable program code that, when executed by one or more processors, causes the first network device 600 to perform, perform, or initiate the operations or methods described herein.

[0075] Specifically, first network device 600 is configured to transmit a sequence of data packets 601 to second network device 610. Thus, first network device 600 can be referred to as a "sender" and second network device 610 can be referred to as a "receiver," particularly in comparison to the sender and receiver depicted in previous figures. First network device 600 is also configured to receive at least one notification message 602 from second network device 610. Specifically, at least one notification message 602 indicates a maximum sequence number L among sequence numbers of data packets received at second network device 610 and one or more data packets 603 in the sequence of data packets that precede maximum sequence number L and are lost at second network device 610. First network device 600 is then configured to, upon receiving at least one notification message 602, retransmit one or more data packets 603 in a subsequent step, wherein each of the one or more lost data packets 603 is indicated as a lost data packet by at least one notification message 602 after the first transmission, and the sequence number X of each lost data packet 603 is less than L–K, where K is a non-negative integer parameter.

[0076] That is, when the receiver, i.e. the second network device 610, informs the sender, i.e. the first network device 600 (via at least one notification message 602) that a data packet is lost for the first time, the first network device 600 can immediately retransmit the data packet if the sequence number X of each lost data packet 603 is less than L–K. There is no risk that this retransmission is spurious because there is no outstanding copy of this data packet on the way to the second network device 610. It is worth noting that, as mentioned above, a data packet lost at the receiver can be indicated by a NACK. The at least one notification message 602 can include an ACK and / or a NACK. An ACK can indicate that the second network device 610 has received a certain data packet, and a NACK can indicate that a certain data packet was lost at the second network device 610. Therefore, the question of deciding when to obey a NACK and when not to obey a NACK is only relevant after a data packet has been retransmitted, and the first network device 600 continues to receive NACKs for that data packet, e.g. Figure 3 The case of packet 3 is shown in .

[0077] The idea behind the proposed protocol is that when the sender, i.e., first network device 600, retransmits a data packet, e.g., packet X, where X is the packet's sequence number, it remembers the sequence number of the last packet (e.g., packet Y) transmitted the first time, i.e., Y. For example, in the scenario where K = 1, upon receiving an ACK for a packet with a sequence number greater than Y, first network device 600 knows that it should have received an ACK for the retransmitted copy of packet X. If this ACK is not received, the retransmitted copy of packet X must have been lost, and packet X can be retransmitted again.

[0078] It is worth noting that the at least one notification message 602 may include at least one of ACK, NACK, and SACK. It is worth noting that SACK may indicate which data packets in a group of data packets are acknowledged (whether negative or positive).

[0079] Specifically, in the case of sequential routing of data packets, when the first network device 600 is informed that the second network device 610 (receiver) has received data packet L but has not received data packet X (where X <L)时,第一网络设备600得知数据包X丢失。然而,网络不一定确保数据包按序路由,因此提出的协议引入了参数K,该参数指示当数据包都从第一网络设备发送到第二网络设备时,有多少个数据包可以绕过某个数据包。

[0080] It is worth noting that in the case of K = 0, the solution is to solve the sequential routing of data packets. In order to solve the scenario where data packets are not routed in sequence, the parameter K is a positive integer. For example, if K = 3, then only when X <L–3时,第一网络设备才能确定数据包X丢失。

[0081] The protocol on the sender side, i.e. the first network device 600, can divide the time axis into rounds. Each round is either a "regular round" for transmitting new data packets or a "retransmission round" for retransmitting lost data packets. Figure 7 Proof. Define the variable StampedMaxDataTx. This variable can be used to remember the last regular (not retransmitted) transmitted packet before entering the retransmission round.

[0082] Figure 7 An example of the proposed protocol according to an embodiment of the present invention is shown. It should be noted that in this specific embodiment, it is assumed that K=0. Specifically, in the last regular round, a new data packet 100 is transmitted from the sender to the receiver. The sender can be Figure 6 As shown in the first network device 600, the receiver can be Figure 6The second network device 610 shown in . In the retransmission round, only the lost data packets are transmitted. In addition, the variable StampedMaxDataTx is set to 100 because data packet 100 is the last data packet transmitted regularly (not retransmitted). After the lost data packet is retransmitted, the regular round begins, in which new data packets are transmitted. New losses will be quickly retransmitted. That is, when the first network device 600 learns that a data packet is reported as a lost data packet for the first time, the first network device 600 will immediately retransmit the data packet. In this case, when a NACK for data packet 101 is received, an ACK for 101 is not received, or a notification message notifying that data packet 101 is lost is received, the first network device 600 enters the "retransmission round". After the fast retransmission, StampedMaxDataTx will be updated. As shown in this example, in the next retransmission round, only the lost data packets are transmitted, and the variable StampedMaxDataTx is set to 195.

[0083] Figure 8 FIG2 shows an example of LERP execution according to an embodiment of the present invention. In this embodiment, it is assumed that K=0. Figure 8 The sender shown in can be Figure 6 As shown in the first network device 600, the receiver can be Figure 6 The second network device 610 is shown in FIG.

[0084] In this example, the receiver receives packet (0) correctly and sends back ACK (0). Then, packet (1) and packet (2) are lost. When packet (3) is received, the receiver understands that packet (1) and packet (2) are lost. It may send a notification message indicating that all packets before packet number 3 have been received correctly, but without packet (1) and packet (2). It is worth mentioning that "SACK" is not used in this figure (and Figure 9 、 Figure 10 ) is only used as an example to represent a notification message. The recipient, that is, the second network device 610, can also send other notification messages, such as ACK or NACK.

[0085] This SACK is the first SACK sent by the receiver. When the sender receives this SACK, it can build a retransmission data set (a bitmap in this example) that indicates which packets were lost. It also starts the first retransmission round: StampedMaxDataTx is set to 12 (the last packet sent in sequence), and another variable, LastRetx, indicates which lost packet is the next to be retransmitted. In this case, packet (1) and packet (2) are retransmitted. The first retransmission round then ends, and the sender continues to transmit regular packets.

[0086] When the SACK reporting packet (5) is lost is received, only regular packet (13) is transmitted. The sender enters a new retransmission round, but in this round, not all lost packets are retransmitted because the sender does not know whether the retransmissions of packet (1) and packet (2) are successful. The sender sets StampedMaxDataTx to 13 and retransmits packet (5). The sender then exits the retransmission round and continues to transmit regular packets, the first of which is packet (14). When the SACK for this packet is received, it tells the sender that packet (14) is OK, while packet (2) and packet (5) are still lost. Since StampedMaxDataTx = 13 and 14>13, the sender knows that all retransmissions should have been received at this point. Since packet (2) and packet (5) are still reported lost, this means that a new retransmission round can begin and these packets should be retransmitted a second time (i.e., transmitted in the third round). The sender sets StampedMaxDataTx = 16 and retransmits packet (2) and packet (5). The sender then wants to switch to transmitting regular packets, but first reports that packet (15) is lost. Therefore, it remains in the retransmission round and retransmits packet (15).

[0087] Figure 9 continue Figure 8 The first three packets shown (i.e., packet (2), packet (5), and packet (15)) are Figure 8 The last packet in . In this example, after sending packet (21), there are no more new packets to send. The SACK for packet 18 is received, which indicates that packet (18) has been received correctly. Since StampedMaxDataTx=16 and 18>16, the sender enters a new retransmission round. The sender is also notified for the first time that packet (17) is lost. The sender enters a new retransmission round, retransmits packet (5), then retransmits packet (15), and finally retransmits packet (17). All of these packets are received successfully, the receiver responds with ACK (21), and the protocol can stop.

[0088] Figure 10 Shows the continuation Figure 8 The first three packets shown (i.e., packet (2), packet (5), and packet (15)) are Figure 8The last data packet in . It is assumed here that data packet (17) is the last to be sent. That is, in this example, after sending data packet (17), there are no more new data packets to be sent. This creates a problem for the sender because it is not informed that data packets with sequence numbers greater than StampedMaxDataTx=16 have been accepted. One way for the sender to decide that a new retransmission round should be started is to use a timeout. Whenever it transmits an old data packet or a new data packet, the sender restarts a timer. This timer times out after a retransmission time out (RTO). The RTO is set to a value greater than the RTT. There are many algorithms for estimating the RTT, and the present invention is not limited to this. When the timer times out, the sender retransmits all data packets for which no ACK has been received so far, i.e., data packet (16) and data packet (17).

[0089] Optionally, if no new data exists, the setting of the RTO can be prevented by sending a null packet with a new sequence number after the retransmission.

[0090] It should be noted that Figures 7 to 10 The sender and receiver shown in one of the can be Figure 6 The first network device 600 and the second network device 610 are shown in FIG.

[0091] To simplify the description, we can assume that the sender has a bitmap that indicates the status of each outstanding packet (i.e., each transmitted packet that has not been acknowledged by the receiver). In practice, when the sender is in a normal state, i.e., a "regular round" of transmitting new packets, there is no need to save the bitmap until the receiver reports a newly detected gap. It is worth noting that gaps occur when packets are not continuous, i.e., when there are lost packets.

[0092] According to an embodiment of the present invention, the first network device 600 may be configured to maintain a first data structure indicating lost data packets indicated by at least one notification message 602. Accordingly, the first network device 600 may also be configured to update the first data structure in response to the at least one notification message 602.

[0093] In addition, the first network device 600 can be configured to maintain a second data structure indicating the data packet to be retransmitted; and after retransmitting the data packet to be retransmitted, delete the data packet to be retransmitted from the second data structure.

[0094] Optionally, the first network device 600 may also be configured to add one or more data packets to the second data structure if one or more data packets are indicated as lost data packets by at least one notification message 602 after the first transmission, and the sequence number X of each lost data packet 603 is less than L–K.

[0095] Possibly, the first network device 600 may be further configured to add one or more data packets to the second data structure if the following conditions are met:

[0096] – one or more packets 603 have been retransmitted,

[0097] - the first network device 600 receives another notification message, wherein the further notification message indicates that one or more data packets 603 are still lost at the second network device 610,

[0098] - another notification message further indicating another data packet that has been received at the second network device 610, wherein the another data packet is sent for the first time after the last retransmission of the one or more data packets 603,

[0099] Another data packet indicated by another notification message has a sequence number not less than Y+K, where Y is the sequence number of the first data packet sent for the first time after the last retransmission of the one or more data packets 603 .

[0100] According to an embodiment of the present invention, on the sender side, first network device 600 transmits data packets and receives ACK / NACK and / or SACK messages. First network device 600 has two states: normal and recovery. In the normal state, the bitmap does not indicate any lost data packets. In the recovery state, the reassembly bitmap has at least one reported lost data packet.

[0101] Specifically, the first network device 600 can be configured with five variables: Status, Maximum In-Order Receive (MaxIORx), Last Retransmission (LastRetx), Stamped Maximum Data Tx (StampedMaxDataTx), and parameter K. MaxIORx stores the maximum PSN of acknowledgment packets received in order by the recipient, i.e., the second network device 610. This is the PSN of the packet immediately preceding the earliest packet reported lost. LastRetx stores the PSN of the last retransmitted packet. StampedMaxDataTx stores the maximum PSN of transmitted packets when performing retransmissions. Notably, when the first network device 600 retransmits a packet, LastRetx and StampedMaxDataTx are updated simultaneously.

[0102] In a specific embodiment, the first network device 600 transmits a packet with PSN = 498 / 499 / 500, then retransmits a packet with PSN = 20, and then transmits a packet with PSN = 501 / 502. In this case, LastRetx = 20 and StampedMaxDataTx = 500.

[0103] On the sender side, the algorithm of the embodiment of the present invention is as follows:

[0104] 1. When RTO times out:

[0105] a. Setting: LastRetx←MaxIORx

[0106] b. Settings: Status ← Restore

[0107] 2. When data packets can be transmitted:

[0108] a. If Status = Normal, transmit the next in-sequence packet.

[0109] b. Otherwise (i.e., the state is recovered), if there is a lost packet with PSN>LastRetx, then:

[0110] i. Retransmit this data packet.

[0111] ii. Update LastRetx to the PSN of the retransmitted packet.

[0112] iii. If necessary, update StampedMaxDataTx to the PSN of the current maximum PSN transmitted.

[0113] c. Otherwise (i.e., the state is Recovery, but all known lost packets were retransmitted in the last retransmission round, so there are no lost packets with PSN > LastRetx), transmit the next in-sequence packet (as completed in the normal state).

[0114] 3. When an ACK is received (this happens when there are no gaps in the receiver's sequence numbers), this indicates that all packets before the ACK.PSN have been received.

[0115] a. Setting: Status ← Normal (ACK indicates no packet loss)

[0116] b. Update the bitmap

[0117] c. Update MaxIORx

[0118] 4. When receiving SACK (SACK can include ACK and NACK):

[0119] a. Status←Restore.

[0120] b. Update the bitmap. If SACK reports a lost packet that is not currently in the sender's bitmap, only packets with a PSN that satisfies PSN ≤ SACK.MaxDataRx are added to the bitmap.

[0121] c.if (StampedMaxDataTx) <SACK.MaxDataRx,则重置LastRetx=MaxIORx。

[0122] According to an embodiment of the present invention, on the receiving side, second network device 610 receives the data packet and transmits an ACK / NACK and / or SACK message. First network device 600 can be configured with two variables: ExpectedPSN and MaxDataRx. Specifically, ExpectedPSN stores the PSN of the next in-sequence data packet. It is also the minimum (first) PSN among all lost data packets. MaxDataRx stores the maximum PSN received by the receiver.

[0123] Figure 11 The second network device 610 of an embodiment of the present invention is shown. The second network device 610 may include a processing circuit system (not shown) that is used to perform, conduct, or initiate the various operations of the second network device 610 described herein. The processing circuit system may include hardware and software. The hardware may include analog circuit system or digital circuit system, or both analog and digital circuit system. The digital circuit system may include components such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), or a multi-purpose processor. The second network device 610 may also include a memory circuit system that stores one or more instructions that can be executed by the processor or processing circuit system (specifically, executed under the control of software). For example, the memory circuit system may include a non-transitory storage medium that stores executable software code that, when executed by the processor or processing circuit system, causes the various operations of the second network device 610 to be performed. In one embodiment, the processing circuit system includes one or more processors and non-transitory memory connected to the one or more processors. The non-transitory memory may carry executable program code that, when executed by one or more processors, causes the second network device 610 to perform, perform, or initiate the operations or methods described herein.

[0124] Specifically, second network device 610 is configured to receive a sequence of data packets 601 from first network device 600. Second network device 610 is then further configured to transmit at least one notification message 602 to first network device 600, wherein at least one notification message 602 indicates a maximum sequence number L among sequence numbers of data packets received at second network device 610 and one or more data packets 603 in the sequence of data packets that are lost at second network device 610 and are prior to maximum sequence number L.

[0125] In certain embodiments, when a new packet with a previously unreceived PSN is received, the second network device 610 may update the receiver-side bitmap. Specifically, if PSN > MaxDataRx, the second network device 610 may set MaxDataRx to the value of PSN. If PSN = ExpectedPSN, the second network device 610 may update ExpectedPSN. If MaxDataRx > ExpectedPSN – 1 (a lost packet exists), the second network device 610 may send a SACK; otherwise, it may send an ACK.

[0126] It is worth mentioning that, to save bandwidth, the second network device 610 may not send an ACK or SACK for every received data packet. For example, the receiver may maintain a counter and send an ACK or SACK after receiving N data packets, where N ≥ 1. In this case, the receiver should also have a timer that triggers the transmission of an ACK / SACK if N data packets are not received within a timeout period.

[0127] Optionally, the second network device 610 may be further configured to transmit at least one notification message 602 to the first network device 600 when the timer expires.

[0128] It should be noted that traffic is bidirectional, so each endpoint is both a sender and a receiver. Figure 6 The first network device 600 shown in FIG. 1 may be Figure 11 The second network device 610 is shown in FIG.

[0129] Furthermore, it should be noted that the algorithm described in the previous embodiments makes an implicit assumption that packets are routed in order. Figure 8 As shown in , when packet (4) is received after packet (1), the receiver assumes that packets (2) and (3) are lost. This is because if these packets were not lost, they would have been received before packet (4). However, if the packets are not necessarily routed on the same path, packet (2) and / or packet (3) may be received after packet (4).

[0130] Another example is when the sender receives an ACK for packet number StampedMaxDataTx and assumes that all retransmitted packets should have been received before this packet. This assumption is only true if the network guarantees that packets are routed in order.

[0131] However, in some cases, the network does not necessarily ensure that packets are routed in order. The LERP proposed in this invention can also be applied to such cases. In a modified version of LERP, the sender maintains a variable K that indicates the out-of-order distance, that is, how many packets can bypass a certain packet when all packets are sent from the sender to the receiver.

[0132] For example, there are two packets: packet (i) and packet (j), where i>j. That is, the sender sends packet (j) before packet (i), and the receiver receives packet (i) before packet (j). The out-of-order distance is defined as i–j. For example, if packet (6) is received before packet (4), the out-of-order distance is 2. This means that one packet bypassed two previously sent packets.

[0133] It should be noted that it is assumed that packets can be received out of order, but there is a maximum distance between every two packets received out of order. The value of the maximum distance is a variable K, where K ≥ 0. K = 0 is a special case where packets are always received in order. In the case where the receiver receives packet (2) and then packet (6), if K = 2, packet (6) may be received before packet (4) and packet (5), but it cannot be received before packet (3). Therefore, the receiver can determine that packet (3) has been lost. However, if K = 3, when packet (6) is received, the receiver cannot yet determine whether packet (3), packet (4), or packet (5) is lost.

[0134] exist Figures 8 to 10 In all the examples discussed in , the variable K is equal to 0. Figure 12 As shown in , we see that the second packet is received after the third packet (K=1), and the fifth packet is received after the eighth packet (K=3). Therefore, in this example, K=3 remains unchanged.

[0135] about Figures 8 to 10 In the embodiment discussed above, to address the out-of-order situation when K>0, two changes may need to be made in the sender algorithm, while no changes are required in the receiver algorithm. Changes can be made in step 4 of the sender algorithm, which can be modified as follows:

[0136] 4. When a SACK is received (SACK reports a lost packet):

[0137] d. Status←Restore.

[0138] e. Update the bitmap. If SACK reports a lost packet that is not currently in the sender's bitmap, only packets with a PSN that satisfies (PSN ≤ SACK.MaxDataRx – K) are added to the bitmap.

[0139] f.If (StampedMaxDataTx+K) <SACK.MaxDataRx,则重置LastRetx=MaxIORx。

[0140] Optionally, parameter K can be negotiated during connection establishment. For example, K can be negotiated during connection establishment between first network device 600 and second network device 610. Alternatively, parameter K can be negotiated during connection establishment between first network device 600 / second network device 610 and another network device, such as a network controller. Parameter K can be either a static parameter or a dynamic parameter. Notably, parameter K can be a fixed number. Alternatively, parameter K can be a dynamically updated number, which can be notified to both the sender and receiver when it changes.

[0141] The algorithm previously described in the embodiments of the present invention uses ACK messages and SACK messages. But it can also be implemented without using ACK because SACK is a generalization of ACK. The algorithm is decoupled between transmission control and flow control. For simplicity, it assumes that the receiver's bitmap is maintained to cover all outstanding data packets. However, the algorithm can be extended to also implement a flow control mechanism to ensure that the sender does not send data packets for which the bitmap resources (or other resources) are not available at the receiver. The algorithm is decoupled between congestion control and flow control. Therefore, it can be implemented with almost all congestion control algorithms. Specifically, congestion control information can be carried in SACK and ACK messages. The algorithm relies on the RTO mechanism. The RTO mechanism may include estimating the RTT. Information on the RTT estimate can be integrated into the data packet, SACK and ACK.

[0142] Figure 13 1300 of an embodiment of the present invention is shown. In a specific embodiment of the present invention, the method 1300 is performed by Figure 6The method 1300 is performed by the first network device 600 shown in . The method 1300 includes: step 1301, transmitting a data packet sequence 601 to the second network device 610; step 1302, receiving at least one notification message 602 from the second network device 610, wherein the at least one notification message 602 indicates the maximum sequence number L in the sequence numbers of the data packets received at the second network device 610 and one or more data packets 603 lost at the second network device 610 before the maximum sequence number L in the data packet sequence; step 1303, after receiving the at least one notification message 602, retransmitting the lost one or more data packets 603 in the next step, wherein each of the one or more lost data packets 603 is indicated as a lost data packet by the at least one notification message 602 after the first transmission, and the sequence number X of each lost data packet 603 is less than L–K, where K is a non-negative integer parameter. Possibly, the second network device 610 is Figure 6 or Figure 11 The second network device shown in .

[0143] Figure 14 1400 of an embodiment of the present invention is shown. In a specific embodiment of the present invention, the method 1400 is Figure 11 The method 1400 includes: step 1401, receiving a data packet sequence 601 from the first network device 600; step 1402, transmitting at least one notification message 602 to the first network device 600, wherein the at least one notification message 602 indicates a maximum sequence number L among the sequence numbers of the data packets received at the second network device 610 and one or more data packets 603 in the data packet sequence that are lost at the second network device 610 before the maximum sequence number L. Possibly, the first network device 600 is Figure 6 or Figure 11 The first network device shown in .

[0144] The invention has been described with reference to various embodiments as examples and implementations. However, those skilled in the art will be able to understand and implement other variations in practicing the claimed invention, based on a study of the drawings, the present invention, and the appended claims. In the claims and the specification, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single element or other unit may fulfil the functions of several entities or items described in the claims. The recitation of certain measures in mutually different dependent claims does not indicate that a combination of these measures cannot be used in an advantageous implementation.

[0145] In addition, any method provided by the embodiments of the present invention can be implemented in a computer program having a code module, which, when executed by a processing module, causes the processing module to perform the method steps. The computer program is included in a computer-readable medium of a computer program product. The computer-readable medium can basically include any memory, such as a read-only memory (ROM), a programmable read-only memory (PROM), an erasable PROM (EPROM), a flash memory, an electrically erasable EPROM (EEPROM), or a hard disk drive.

[0146] Furthermore, the skilled person will recognize that embodiments of the first network device 600 and the second network device 610 each include the necessary communication capabilities in the form of functions, modules, units, elements, etc. for implementing the solution. Other examples of such components, units, elements, and functions include: a processor, a memory, a buffer, a control logic, an encoder, a decoder, a rate matcher, a down-rate matcher, a mapping unit, a multiplier, a decision unit, a selection unit, a switch, an interleaver, a deinterleaver, a modulator, a demodulator, an input, an output, an antenna, an amplifier, a receiving unit, a transmitting unit, a DSP, a trellis-coded modulation (TCM) encoder, a TCM decoder, a power supply unit, a power supply line, a communication interface, a communication protocol, etc., which are appropriately arranged together to implement the solution.

[0147] Specifically, the one or more processors of the first network device 600 and the second network device 610 may include, for example, one or more instances of a central processing unit (CPU), a processing unit, a processing circuit, a processor, an application specific integrated circuit (ASIC), a microprocessor, or other processing logic that can interpret and execute instructions. Therefore, the expression "processor" can refer to a processing circuit system that includes multiple processing circuits, such as any, some, or all of the above-mentioned processing circuits. The processing circuit system can also perform data processing functions for inputting, outputting, and processing data, including data buffering and device control functions, such as call processing control, user interface control, etc.

Claims

1. A first network device (600), characterized in that: Used for: transmitting a sequence of data packets (601) to a second network device (610); receiving at least one notification message (602) from the second network device (610), wherein the at least one notification message (602) indicates a maximum sequence number L among sequence numbers of data packets received at the second network device (610) and one or more lost data packets (603) in the sequence of data packets (601) that precede the maximum sequence number L and are lost at the second network device (610); After receiving the at least one notification message (602), the one or more lost data packets (603) are retransmitted in a next step, wherein each of the one or more lost data packets (603) is indicated as a lost data packet by the at least one notification message (602) after the first transmission, and the sequence number X of each lost data packet (603) is less than L–K, where K is a non-negative integer parameter; If the following conditions are met, the one or more lost data packets (603) are retransmitted to the second network device (610); the conditions include: - the one or more lost packets (603) have been retransmitted, - the first network device (600) receives another notification message, wherein the another notification message indicates that the one or more lost data packets (603) are still lost at the second network device (610), - the further notification message further indicates a further data packet that has been received at the second network device (610), wherein the further data packet is sent for the first time after the last retransmission of the one or more lost data packets (603), – the further data packet indicated by the further notification message has a sequence number not less than Y+K, where Y is the sequence number of the first data packet sent after the last retransmission of the one or more lost data packets (603).

2. The first network device (600) according to claim 1, characterized in that Used for: maintaining a first data structure indicative of the lost data packets indicated by the at least one notification message (602); The first data structure is updated in response to the at least one notification message (602).

3. The first network device (600) according to claim 2, characterized in that Used for: maintaining a second data structure indicating data packets to be retransmitted; After retransmitting the data packet to be retransmitted, deleting the data packet to be retransmitted from the second data structure.

4. The first network device (600) according to claim 3, characterized in that Used for: If the one or more lost data packets (603) are indicated as lost data packets by the at least one notification message (602) after the first transmission, and the sequence number X of each lost data packet (603) is less than L–K, the one or more lost data packets (603) are added to the second data structure.

5. The first network device (600) according to claim 4, characterized in that Used for: If the condition is met, the one or more lost data packets (603) are added again to the second data structure.

6. The first network device (600) according to any one of claims 3 to 5, characterized in that For operation in a first state and a second state, Wherein, in the first state, the first network device (600) is used to: Transmit new data packets; Wherein, in the second state, the first network device (600) is used to: The lost data packet is retransmitted according to the second data structure.

7. The first network device (600) according to claim 6, characterized in that In the first state, the first network device (600) is used to: If the second data structure is not empty, entering the second state; and / or If the second data structure is empty, then the first state is maintained.

8. The first network device (600) according to claim 6, characterized in that In the second state, the first network device (600) is used to: If the second data structure is empty, then enter the first state, and / or If the second data structure is not empty, then the second state is maintained.

9. The first network device (600) according to any one of claims 3 to 5, characterized in that Also used for: Using a timer and setting the timer when transmitting a new data packet and / or retransmitting the lost data packet; When the timer times out, all data packets for which no acknowledgement has been received are added to the second data structure.

10. The first network device (600) according to claim 9, characterized in that Also used for: The timer is set to a value greater than the round trip time.

11. A second network device (610), characterized in that: Used for: receiving a sequence of data packets (601) from a first network device (600); Transmitting at least one notification message (602) to the first network device (600), wherein the at least one notification message (602) indicates a maximum sequence number L among sequence numbers of data packets received at the second network device (610) and one or more lost data packets (603) in the data packet sequence (601) that are lost at the second network device (610) before the maximum sequence number L; the sequence number X of the one or more lost data packets (603) is less than L–K, where K is a non-negative integer parameter; The one or more lost data packets (603) are retransmitted again by the first network device (600) if the following conditions are met: The conditions include: the one or more lost data packets (603) have been retransmitted, - the first network device (600) receives another notification message, wherein the another notification message indicates that the one or more lost data packets (603) are still lost at the second network device (610), - the further notification message further indicates a further data packet that has been received at the second network device (610), wherein the further data packet is sent for the first time after the last retransmission of the one or more lost data packets (603), - the further data packet indicated by the further notification message has a sequence number not less than Y+K, where Y is the sequence number of the first data packet sent for the first time after the last retransmission of the one or more lost data packets (603).

12. The second network device (610) according to claim 11, characterized in that Also used for: When the timer expires, the at least one notification message (602) for each of the one or more lost data packets (603) is transmitted to the first network device (600).

13. A method (1300) performed by a first network device (600), characterized in that The method (1300) comprises: transmitting (1301) a sequence of data packets (601) to a second network device (610); receiving (1302) at least one notification message (602) from the second network device (610), wherein the at least one notification message (602) indicates a maximum sequence number L among sequence numbers of data packets received at the second network device (610) and one or more lost data packets (603) in the sequence of data packets (601) that precede the maximum sequence number L and are lost at the second network device (610); After receiving the at least one notification message (602), the one or more lost data packets (603) are retransmitted (1303) in a next step, wherein each of the one or more lost data packets (603) is indicated as a lost data packet by the at least one notification message (602) after the first transmission, and the sequence number X of each lost data packet (603) is less than L–K, where K is a non-negative integer parameter; If the following conditions are met, the one or more lost data packets (603) are retransmitted to the second network device (610); the conditions include: - the one or more lost packets (603) have been retransmitted, - the first network device (600) receives another notification message, wherein the another notification message indicates that the one or more lost data packets (603) are still lost at the second network device (610), - the further notification message further indicates a further data packet that has been received at the second network device (610), wherein the further data packet is sent for the first time after the last retransmission of the one or more lost data packets (603), – the further data packet indicated by the further notification message has a sequence number not less than Y+K, where Y is the sequence number of the first data packet sent after the last retransmission of the one or more lost data packets (603).

14. A method (1400) performed by a second network device (610), characterized in that The method (1400) comprises: receiving (1401) a sequence of data packets (601) from a first network device (600); Transmitting (1402) at least one notification message (602) to the first network device (600), wherein the at least one notification message (602) indicates a maximum sequence number L among sequence numbers of data packets received at the second network device (610) and one or more lost data packets (603) in the data packet sequence (601) that are lost at the second network device (610) before the maximum sequence number L; the sequence number X of the one or more lost data packets (603) is less than L–K, where K is a non-negative integer parameter; The one or more lost data packets (603) are retransmitted by the first network device (600) if the following conditions are met: the one or more lost data packets (603) have been retransmitted, - the first network device (600) receives another notification message, wherein the another notification message indicates that the one or more lost data packets (603) are still lost at the second network device (610), - the further notification message further indicates a further data packet that has been received at the second network device (610), wherein the further data packet is sent for the first time after the last retransmission of the one or more lost data packets (603), - the further data packet indicated by the further notification message has a sequence number not less than Y+K, where Y is the sequence number of the first data packet sent for the first time after the last retransmission of the one or more lost data packets (603).

15. A computer program, characterized in that The method comprises a program code for executing the method (1300, 1400) according to claim 13 or 14 when running on a computer.

Citation Information

Patent Citations

  • Data Transmission

    US20100058138A1