SE541441C2 - Method and a node for preventing latency in data packet transmission - Google Patents

Method and a node for preventing latency in data packet transmission

Info

Publication number
SE541441C2
SE541441C2 SE1751659A SE1751659A SE541441C2 SE 541441 C2 SE541441 C2 SE 541441C2 SE 1751659 A SE1751659 A SE 1751659A SE 1751659 A SE1751659 A SE 1751659A SE 541441 C2 SE541441 C2 SE 541441C2
Authority
SE
Sweden
Prior art keywords
data
data packet
counter value
node
value
Prior art date
Application number
SE1751659A
Other versions
SE1751659A1 (en
Inventor
Christian Klemetsson
Original Assignee
DeviceRadio AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DeviceRadio AB filed Critical DeviceRadio AB
Priority to SE1751659A priority Critical patent/SE541441C2/en
Priority to PCT/SE2018/051317 priority patent/WO2019132756A1/en
Publication of SE1751659A1 publication Critical patent/SE1751659A1/en
Publication of SE541441C2 publication Critical patent/SE541441C2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/129Avoiding congestion; Recovering from congestion at the destination endpoint, e.g. reservation of terminal resources or buffer space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The disclosure proposes a transmitting node (100) and a method at a transmitting node (100) for preventing latency in data packet (dp) comprising: (S1) generate a first data packet wherein the first data packet comprises a first counter value (c(n)); (S2) send the first data packet (dp(n)); (S3) monitor acknowledgement messages (ack) received from the receiving node (200), if a received acknowledgement message (ack) from the receiving node (200) does not comprise the first counter value (c(n)), or any higher counter value (c(n m)); then (S3a) generating, at the transmitting node (100), a second data packet (dp(n+1)) comprising the first data byte (db(n)) together with at least a second data byte (db(n+1)) associated with a second counter value (c(n+1)) that is higher than the first counter value (cn); (S4) send the second data packet (dp(n+1)) from the transmitting node (100) to the receiving node (200).

Description

Title: Method and a node for preventing latency in data packet transmission TECHNICAL FIELD The disclosure pertains to the field of data packet transmission.
BACKGROUND For many years devices such as cellular phones, servers and computers have been connected to each other via communication networks using data packet communication. The Internet is a very popular communication network. Today, with the Internet of Things, IoT, it is becoming more and more popular to connect devices, other than phones, servers and computers, such as meters, vehicles, machines, houses, containers, goods, doors etc. that communicates via the communication networks. Devices can communicate with other devices or communicate with e.g. a computer or smartphone via the communication networks. The connection to the communication networks can be either a wired or a wireless connection. Typically smartphones, computers and devices that are connected to each other via a communication network that are communicating according to different communication protocols. The protocols define rules and principles for the communication. Some protocols also include error recovery methods in order to communicate information as reliable as possible. Communication links in a communication network can be disturbed by e.g. noise in the communication channel. In particular a wireless connection can suffer from e.g. bad radio coverage or atmospheric interference. In some communication between a transmitting node and a receiving node the data packets that are sent are required to be received in a certain order. In some communication the order in which the data packets are received does not matter. In some communication the time to get a data packet from the transmitting node to the receiving node is of higher priority than the order in which the data packets are received. When e.g. communicating in real-time for controlling and monitoring devices, it has become more and more important to transmit fast changing data between a transmitting node and a receiving node.
SUMMARY It is becoming more and more important to transmit fast changing data structures between different nodes in a communication network. This is due to the increasing popularity of the Internet of Things, where e.g. sensor and actuator data needs to be sent between hardware nodes, gateways and Internet services. Today these transmission relies on ordered communications over stable connections, meaning that the system and software make sure the changes of data arrive in the right order.
Data updates can be lost when moving over radio or dropped when moving over the Internet. To handle lost data updates a retransmission mechanism is employed. This often works by having some sort of acknowledgement, ack, being sent by the receiver. If no acknowledgement, ack, has been received within a time period, the data packet is sent again. Data packets often has a form of numbering to make they can be re-arranged in the right order. Some communication protocols does this automatically, for example all protocols based on Transmission Control Protocol, TCP.
Making sure that data packets arrives in the right order and handling retransmissions however introduces latency in the communication networks. If a data packet is lost, the communication is halted while the retransmission is completed. In a worst case, the communication channel in the communication network may be disconnected and that adds even more latency while the communicating parties re-establishes a new connection with handshakes.
In addition, each retransmission consumes more data bandwidth. This added bandwidth can result in higher costs or create bottlenecks in resource-constrained communications such as in radio transmissions. Another issue is the handling of communication network congestion. This occurs if there is more data to be sent than the current connection and receiving node can handle. This could be handled by a sliding window mechanism or other known flow controls.
When a congestion is detected, the transmitting node will start buffer the data in a transmission queue in wait for it to be transmitted.
An object of the present disclosure is to provide a method and a device which seek to mitigate, alleviate, or eliminate one or more of the above-identified deficiencies in the art and disadvantages singly or in any combination. The inventor have identified a need for a protocol that keeps track of the known state of what data packets that have been received by the receiving node so that the transmitting node can send new data changes as well as previous data changed that the receiver hasn't acknowledged yet. The proposed solution allows for data to be transmitted with minimal latency over unreliable communication methods were data can be lost or arrive out of order. This is crucial for constructing reliable and robust communication solutions for the Internet of Things, IoT.
The disclosure proposes a method at a transmitting node for preventing latency in data packet transmission between the transmitting node and a receiving node. Each data packet comprises a counter value, at least one data byte representing a data value. The least one data byte is further associated with a position index with a reference to a position in a list of plural data bytes. The method comprising generating, at the transmitting node, a first data packet comprising at least a first data byte representing a first data value and associated with a first position index wherein the first data packet comprises a first counter value. This is followed by the step of sending the first data packet from the transmitting node to the receiving node and then monitoring, at the transmitting node, acknowledgement messages received from the receiving node. Then, if a received acknowledgement message from the receiving node does not comprise the first counter value, or any higher counter value; the next step of the method is generating, at the transmitting node, a second data packet comprising the first data byte representing the first data value and associated with the first position index together with at least a second data byte representing a second data value and associated with a second position index, wherein the second data packet comprises a second counter value that is higher than the first counter value. This is followed by the step sending the second data packet from the transmitting node to the receiving node. An advantage with the method is that the number of retransmissions of data packets from the transmitting node to the receiving node can be reduced. Since retransmissions of data packets consumes bandwidth, all avoided retransmissions will hence free bandwidth in the communication network. In other words, latency in the communication network can be avoided or minimized.
According to an aspect, if an acknowledgement message is not received from the receiving node within a certain time period, then generating, at the transmitting node, a second data packet comprising the first data byte representing the first data value and associated with the first position index.
According to an aspect the second data packet is generated at the transmitting node, if an acknowledgement message is not received from the receiving node within a certain time period. In other words, this minimizes the number of data packets in the communication network during the time period and hence avoids or minimizes latency in the communication network.
According to an aspect, if a received acknowledgement message from the receiving node comprise the first counter value or any higher counter value; then the method is followed by the step of generating, at the transmitting node, a second data packet comprising at least a second data byte representing a second data value and associated with a second position index, wherein the second data packet comprises a second counter value that is higher than the first counter value. An advantage with this is aspect is that only the data packets that have not been acknowledged are sent and this saves bandwidth in the communication network. This means also that all data packets with a lower counter value than the highest counter value received in an acknowledgement message from the receiving node are considered received by the receiving node and e.g. a more recent data value is hence changed rather than retransmitting an older data value that may no longer be relevant anyway.
According to an aspect the second data packet comprising at least the second data byte, representing a second data value and associated with a second position index, and a plurality of additional data bytes each data byte having a corresponding data value and each data byte having a corresponding position index. In other words, the second data packet can hence contain plural data bytes for minimizing the number of data packets in the communication network.
According to an aspect the counter value is one of an incrementing count, a serial number or time stamp value for identifying the most recent sent data packet from a preceding sent data packet. This means that one data packet has a certain counter value that tells if the data packet is more recent than another data packet.
According to an aspect the number of data packets that can be sent without receiving any acknowledgement message is limited to a pre-set number. In other words, this limitation in number of packets can be used in order to minimize the number of data packets in the communication network and hence avoid or minimize latency in the communication network.
According to an aspect each data packet is sent with a certain time space between the data packets. This limitation in time can be used in order to minimize the number of data packets in the communication network and hence avoid or minimize latency in the communication network. During the time space a data packet can accumulate changes of the data value. A data packet can hence be deliberately kept in the transmission buffer. For example, the transmission can be delayed a few milliseconds to accumulate multiple data changes instead of sending it as separate updates.
According to an aspect each data packet that is sent comprise all the data bytes included in any previous data packet that have been sent with a counter value that is higher than the counter value of the latest received acknowledgement message. This means that data packets with a lower counter value are considered being received by the receiving node in order to avoid or minimize latency in the communication network.
According to an aspect the disclosure further proposes a computer program product comprising a non-transitory computer readable medium, having thereon a computer program comprising program instructions, the computer program being loadable into a processing circuitry and configured to cause execution of the method when the computer program is run by the processing circuitry. In other words, this means that the method can be transferred or downloaded from the computer readable medium and used in plural devices, nodes and/or systems.
According to an aspect the disclosure further proposes a transmitting node for preventing latency in data packet transmission between the transmitting node and a receiving node. Each data packet comprises a counter value, at least one data byte representing a data value, and wherein the least one data byte is further associated with a position index with a reference to a position in a list of plural data bytes. The transmitting node comprising; a processing circuitry, wherein the processing circuitry is connectable to a memory. The processing circuitry being configured to cause the transmitting node to: generate a first data packet comprising at least a first data byte representing a first data value and associated with a first position index wherein the first data packet comprises a first counter value; and send the first data packet from the transmitting node to a receiving node; followed by monitor acknowledgement messages received from the receiving node, and if a received acknowledgement message from the receiving node does not comprise the first counter value, or any higher counter value; then generating, at the transmitting node, a second data packet comprising the first data byte representing the first data value and associated with the first position index together with at least a second data byte representing a second data value and associated with a second position index, wherein the second data packet comprises a second counter value that is higher than the first counter value. This is followed by sending the second data packet from the transmitting node to the receiving node. An advantage with the transmitting node is that the number of retransmissions of data packets from the transmitting node to the receiving node can be reduced. Since retransmissions of data packets consumes bandwidth, all avoided retransmissions will hence free bandwidth in the communication network. In other words, latency in the communication network can be avoided or minimized. The transmitting node is configured to perform any of the aspects of the method described above.
BRIEF DESCRIPTION OF THE DRAWINGS The foregoing will be apparent from the following more particular description of the example aspects, as illustrated in the accompanying dr ngs in which like reference characters refer to the same parts throughout the different views. The figures are not necessarily to scale, emphasis instead being placed upon illustrating the example embodiments.
Figure 1 illustrates a transmitting node and a receiving node connected via communication network.
Figure 2 illustrates an exemplary list of plural data bytes.
Figure 3 illustrates an exemplary data packet.
Figure 4 illustrates an exemplary first data packet.
Figure 5 and Figure 6 illustrates an exemplary second data packet.
Figure 7 illustrates an exemplary flow chart of the method steps according an aspects of the disclosure.
Figure 8 illustrates a method at a transmitting node for preventing latency in data packet transmission according to some aspects of the disclosure.
DETAILED DESCRIPTION Aspects of the present disclosure will be described more fully hereinafter with reference to the accompanying drawings. The method a device disclosed herein can, however, be realized in many different forms and should not be construed as being limited to the aspects set forth herein. Like numbers in the drawings refer to like elements throughout.
The terminology used herein is for the purpose of describing particular aspects of the disclosure only, and is not intended to limit the disclosure. In some implementations and according to some aspects of the disclosure, the functions or steps noted in the blocks can occur out of the order noted in the operational illustrations. For example, two blocks shown in succession can in fact be executed substantially concurrently or the blocks can sometimes be executed in the reverse order, depending upon the functionality/acts involved.
In the drawings and specification, there have been disclosed exemplary aspects of the disclosure. However, many variations and modifications can be made to these aspects without substantially departing from the principles of the present disclosure. Thus, the disclosure should be regarded as illustrative rather than restrictive, and not as being limited to the particular aspects discussed above. Accordingly, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation.
It should be noted that the word "comprising" does not necessarily exclude the presence of other elements or steps than those listed and the words "a" or "an" preceding an element do not exclude the presence of a plurality of such elements. It should further be noted that any reference signs do not limit the scope of the claims, that the example embodiments may be implemented at least in part by means of both hardware and software, and that several "means", "units" or "devices" may be represented by the same item of hardware.
It is becoming more and more important to transmit fast changing data structures between different parties. This is due to the increasing popularity of the Internet of Things, where sensor and actuator data needs to be sent between the hardware nodes, gateways and Internet services. Today these transmission relies on ordered communications over stable connections, meaning that the system and software make sure the changes arrive in the right order. Making sure that data packets arrives in the right order and handling retransmissions however introduces latency in the communication networks. If a data packet is lost, the communication is halted while the retransmission is completed. In a worst case, the communication channel in the communication network may be disconnected and that adds even more latency while the communicating parties re-establishes a new connection with handshakes.
The inventor have identified a need for a protocol that keeps track of the known state of what data packets that have been received by the receiving node so that the transmitting node can send new data changes as well as previous data changed that the receiver hasn't acknowledged yet. The proposed solution allows for data to be transmitted with minimal latency over unreliable communication methods were data can be lost or arrive out of order. This is crucial for constructing reliable and robust communication solutions for the Internet of Things, IoT.
The disclosure proposes a transmitting node 100 for preventing latency in data packet dp transmission between the transmitting node 100 and a receiving node 200. A transmitting node 100 and a receiving node 200 are illustrated in Fig 1. According to an aspect a transmitting node 100 and a receiving node 200 can be nodes in a communication network 50. According to an aspect the transmitting node 100 or the receiving node 200 can be a hardware node such as a gateway, a server, a router, a control unit, a sensor device, a processing device, a radio communication node, a smartphone, a vehicle, a home, a machine or any hardware node adapted for data packet communication.
According to an aspect the communication network 50 is a wide area network. According to an aspect the communication network 50 is a local area network. According to an aspect the communication network 50 is a wired network. According to an aspect the communication network 50 is a wireless network. According to an aspect the communication network is a combination of at least two of a wide area network, a local area network, a wired network and a wireless network. According to an aspect the communication network 50 is defined by common Internet Protocols. According to an aspect the communication network 50 is a standardized wireless local area network such as a Wireless Local Area Network, WLAN, Bluetooth™, ZigBee, Ultra-Wideband, Near Field Communication, NFC, Radio Frequency Identification, RFID, or similar network. According to an aspect the communication network 50 is a standardized wireless wide area network such as a Global System for Mobile Communications, GSM, Extended GSM, General Packet Radio Service, GPRS, Enhanced Data Rates for GSM Evolution, EDGE, Wideband Code Division Multiple Access, WCDMA, Long Term Evolution, LTE, Narrowband-IoT, 5G, Worldwide Interoperability for Microwave Access, WiMAX or Ultra Mobile Broadband, UMB or similar network. According to an aspect the communication network is an Internet protocol communication network.
As illustrated in Fig 3, each data packet dp comprises a counter value c, at least one data byte db representing a data value v, and wherein the least one data byte db is further associated with a position index i with a reference to a position in a list of plural data bytes 10 that is illustrated in Fig 2.
According to an aspect the counter value c ensures that each data packet can be identified. According to an aspect the counter value c is a simple incrementing count or a timestamp.
According to an aspect the list of plural data bytes 10 contains the data values v that is desired to keep in synch with the receiving node 200. When a data value is changed at transmitting node 100, it is desired to forward that change to the receiving node 200 with minimal delay, even if the transmission is unreliable. In an example it could be to map e.g. sensor values into the the list of plural data bytes 10 using a form a data serialization and then for the receiving node 200 to employ a similar data de-serialization to get the sensor readouts.
According to an aspect an encoding mechanism is utilized that allows to describe changes in the list of plural data bytes 10. According to an aspect the at least one data byte db is further associated with a position index i with a reference to a position in a list of plural data bytes 10 that is illustrated in Fig 2. For illustrative purpose the list of plural data bytes 10 in Fig 2 has example values (v). In the example given in Fig 3 the data byte with position index 2 has the value 5. The data byte with position index 5 has the value 3.
As illustrated in Fig 1 the transmitting 100 node comprising a processing circuitry 102. The processing circuitry 102 is connectable to a memory 104. The processing circuitry 102 being configured to cause the transmitting node 100 to: S1 generate a first data packet dp(n) comprising at least a first data byte db(n) representing a first data value va and associated with a first position index ix wherein the first data packet comprises a first counter value c(n) as illustrated in Fig 4; and S2 send the first data packet dp(n) from the transmitting node 100 to a receiving node 200; followed by S3 monitor acknowledgement messages ack received from the receiving node 200, and if a received acknowledgement message ack from the receiving node 200 does not comprise the first counter value c(n), or any higher counter value c(n m); then S3a generating, at the transmitting node 100, a second data packet dp(n+1), as illustrated in Fig 5, comprising the first data byte db(n) representing the first data value va and associated with the first position index ix together with at least a second data byte db(n+1) representing a second data value vb and associated with a second position index iy, wherein the second data packet dp(n+1) comprises a second counter value c(n+1) that is higher than the first counter value c(n). The processing circuitry 102 is further configured to S4 send the second data packet dp(n+1) from the transmitting node 100 to the receiving node 200.
An advantage with the transmitting node 100 is that the number of retransmissions of data packets from the transmitting node 100 to the receiving node 200 can be reduced. Since retransmissions of data packets consumes bandwidth, all avoided retransmissions will hence free bandwidth in the communication network. In other words, latency in the communication network can be avoided or minimized. The transmitting node 100 is configured to perform any of the aspects of the method described below. The method will now be described in more detail together with the figures.
As visualized in Fig 8, the disclosure further proposes a method at a transmitting node 100 for preventing latency in data packet dp transmission between the transmitting node 100 and a receiving node 200. Each data packet dp comprises a counter value c, at least one data byte db representing a data value v. The least one data byte db is further associated with a position index i with a reference to a position in a list of plural data bytes 10. The method visualized in Fig 8 comprising the steps: S1 generating, at the transmitting node 100, a first data packet dp(n) comprising at least a first data byte db(n) representing a first data value va and associated with a first position index ix wherein the first data packet comprises a first counter value c(n). An example of a first data packet dp(n) is visualized in Fig 4.
This is followed by the steps: S2 sending the first data packet dp(n) from the transmitting node 100 to the receiving node 200; and then S3 monitoring, at the transmitting node 100, acknowledgement messages ack received from the receiving node 200 as visualized in Fig 8.
Then, if a received acknowledgement message ack from the receiving node 200 does not comprise the first counter value c(n), or any higher counter value c(n m); the next step of the method is S3a generating, at the transmitting node 100, a second data packet dp(n+1) comprising the first data byte db(n) representing the first data value va and associated with the first position index ix together with at least a second data byte db(n+1) representing a second data value vb and associated with a second position index iy, wherein the second data packet dp(n+1) comprises a second counter value c(n+1) that is higher than the first counter value c(n). An example of a second data packet dp(n+1) according to step S3a is visualized in Fig 5.
This is followed by the step S4 sending the second data packet dp(n+1) from the transmitting node 100 to the receiving node 200. An advantage with the method is that the number of retransmissions of data packets from the transmitting node 100 to the receiving node 200 can be reduced. Since retransmissions of data packets consumes bandwidth, all avoided retransmissions will hence free bandwidth in the communication network. In other words, latency in the communication network can be avoided or minimized.
According to an aspect, if an acknowledgement message ack is not received from the receiving node 200 within a certain time period t, then generating, at the transmitting node 100, a second data packet dp(n+1) comprising the first data byte db(n) representing the first data value va and associated with the first position index (ix).
According to an aspect the second data packet dp(n+1) is generated S3a at the transmitting node 100, if an acknowledgement message ack is not received from the receiving node 200 within a certain time period t. In other words, this minimizes the number of data packets in the communication network during the time period t and hence avoids or minimizes latency in the communication network.
According to an aspect, if a received acknowledgement message ack from the receiving node 200 comprise the first counter value c(n) or any higher counter value c(n m); then the method is followed by the step of S3b, visualized in Fig 8: generating, at the transmitting node 100, a second data packet dp(n+1) comprising at least a second data byte db(n+1) representing a second data value vb and associated with a second position index iy, wherein the second data packet dp(n+1) comprises a second counter value c(n+1) that is higher than the first counter value c(n). In other words, when generating S3b the second data packet dp(n+1) it does not need to comprise the first data byte db(n) representing the first data value va since the first data byte representing the first data value va is considered received by the receiving node 200 after receiving an acknowledgement message comprising the first counter value c(n) or any higher counter value c(n m). An example of a second data packet dp(n+1) according to step S3b is visualized in Fig 6.
An advantage with this is aspect is that only the data packets that have not been acknowledged are sent and this saves bandwidth in the communication network. This means also that all data packets with a lower counter value than the highest counter value received in an acknowledgement message ack from the receiving node 200 are considered received by the receiving node 200 and e.g. a more recent data value is hence changed rather than retransmitting an older data value that may no longer be relevant anyway.
By this method, the number of retransmissions in the communication network 50 can be drastically reduced. It also solves the issue of data packets arriving out of order. For example, if a data packet with number 10 arrives, it will contain all previously unknown information, and thus if a data packet with a lower number is received after this, it can be discarded. No acknowledgements ack needs to be transmitted for older packet either, because the acknowledgement ack of the newer packet will notify to the transmitting node 100 that the receiving node 200 all that information. Additionally, no more than one data packet needs to be in the transmission buffer if there is communication network congestion. This is because the data packet can be augmented with the new changes so that it contains all new data.
According to an aspect the second data packet dp(n+1) comprising at least the second data byte db(n+1), representing a second data value vb and associated with a second position index iy, and a plurality of additional data bytes db(n+2), db(n+3), db(n+3+m)... each data byte having a corresponding data value vc, vd, ve... and each data byte having a corresponding position index iz, iw, iv,.... An example of a second data packet dp(n+1) is visualized in Fig 6. In other words, the second data packet dp(n+1) can hence contain plural data bytes for minimizing the number of data packets in the communication network.
According to an aspect the counter value (c), c(n), c(n+1), c(n+2),..., c(n+m) is one of an incrementing count, a serial number or time stamp value for identifying the most recent sent data packet from a preceding sent data packet. This means that one data packet has a certain counter value that tells if the data packet is more recent than another data packet.
According to an aspect the number of data pa s dp(n), dp(n+1), dp(n+2)... that can be sent without receiving any acknowledgement message ack is limited to a pre-set number. In other words, this limitation in number of packets can be used in order to minimize the number of data packets in the communication network and hence avoid or minimize latency in the communication network.
According to an aspect each data packet dp(n), dp(n+1), dp(n+2)... is sent with a certain time space between the data packets dp(n), dp(n+1), dp(n+2).... This limitation in time can be used in order to minimize the number of data packets in the communication network and hence avoid or minimize latency in the communication network. During the time space a data packet can accumulate changes of the data value. A data packet can hence be deliberately kept in the transmission buffer. For example, the transmission can be delayed a few milliseconds to accumulate multiple data changes instead of sending it as separate updates.
According to an aspect each data packet dp(n+1), dp(n+2)... that is sent comprise all the data bytes db(n+1), db(n+2).... included in any previous data packet dp(n+1), dp(n+2)... that have been sent with a counter value c(n+1), c(n+2)... that is higher than the counter value of the latest received acknowledgement message ack. This means that data packets with a lower counter value are considered being received by the receiving node 200 in order to avoid or minimize latency in the communication network.
According to an aspect the disclosure further proposes a computer program product 500, illustrated in Fig 1, comprising a non-transitory computer readable medium, having thereon a computer program comprising program instructions, the computer program being loadable into a processing circuitry 102 and configured to cause execution of the method when the computer program is run by the processing circuitry 102. In other words, this means that the method can be transferred or downloaded from the computer readable medium and used in plural devices, nodes and/or systems.
For illustrative purpose a use case of the transmitting node 100 and the method at a transmitting node 100 for preventing latency in data packet dp transmission between the transmitting node 100 and a receiving node 200 will be described with the illustration in Fig 7.
As illustrated in Fig 7 a first data packet is generated at the transmitting node 100. The first data packet dp(n) comprising at least a first data byte db(n) representing a first data value va and associated with a first position index ix wherein the first data packet comprises a first counter value c(n).
In particular, as visualized in Fig 7, the first data packet dp(n) comprising a first data byte db(n) and a first counter value c(n).
The transmitting node 100 is monitoring if any acknowledgement messages ack received from the receiving node 200.
A second data packet dp(n+1) is generated at the transmitting node 100, since an acknowledgement message ack was not received from the receiving node 200 within the time period t.
In particular, as visualized in Fig 7, the second data packet dp(n+1) comprising the first data byte db(n), a second data byte db(n+1) and a second counter value c(n+1).
The transmitting node 100 is monitoring if any acknowledgement messages ack received from the receiving node 200.
A third data packet dp(n+2) is generated at the transmitting node 100, since an acknowledgement message ack was not received from the receiving node 200 within the time period t. In particular, as visualized in Fig 7, the third data packet dp(n+2) comprising the first data byte db(n), the second data byte db(n+1), a third data byte db(n+2) and a third counter value c(n+1+m).
The transmitting node 100 is monitoring if any acknowledgement messages ack received from the receiving node 200. The transmitting node 100 is monitoring that an acknowledgement message ack from the receiving node 200 that comprise the first counter value c(n) is received at the transmitting node 100. The transmitting node 100 then determines that the first data packet dp(n) comprising a first data byte db(n) has been received by the receiving node 200.
A fourth data packet dp(n+3) is generated at the transmitting node 100. The fourth data packet dp(n+3) does not need to contain the first data byte db(n) since it is considered received by the receiving node 200.
In particular, as visualized in Fig 7, the fourth data packet dp(n+3) comprising the second data byte db(n+1), the third data byte db(n+2), a fourth data byte db(n+3) and a fourth counter value c(n+1+m+p).
As illustrated in the example given in Fig 7, an acknowledgement message ack(c(n+1)) from the receiving node 200 that comprise the second counter value c(n+1) is lost in the communication network, e.g. due to radio interference.
The transmitting node 100 is monitoring if any acknowledgement messages ack received from the receiving node 200. The transmitting node 100 is monitoring that an acknowledgement message ack from the receiving node 200 that comprise the third counter value c(n+1+m) is received at the transmitting node 100. The transmitting node 100 then determines that: - the first data packet dp(n) comprising a first data byte db(n) has been received by the receiving node 200. - the second data packet dp(n+1) comprising the first data byte db(n), the second data byte db(n+1) has been received by the receiving node 200. - the third data packet dp(n+2) comprising the first data byte db(n), the second data byte db(n+1), the third data byte db(n+2) has been received by the receiving node 200.
A fifth data packet dp(n+4) is generated at the transmitting node 100. The fifth data packet dp(n+4) does not need to contain any of the first data byte db(n); the second data byte db(n+1) or the third data byte db(n+2) since they are considered as received by the receiving node 200.
In the drawings and specification, there have been disclosed exemplary embodiments. However, many variations and modifications can be made to these embodiments. Accordingly, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the embodiments being defined by the following claims.

Claims (10)

1. A method at a transmitting node (100) for preventing latency in data packet (dp) transmission between the transmitting e (100) and a receiving node (200), wherein each data packet (dp) comprises a counter value (c), at least one data byte (db) representing a data value (v), and wherein the least one data byte (db) is further associated with a position index (i) with a reference to a position in a list of plural data bytes (10), the method comprising: o (S1) generating, at the transmitting node (100), a first data packet (dp(n)) comprising at least a first data byte (db(n)) representing a first data value (va) and associated with a first position index (ix) wherein the first data packet comprises a first counter value (c(n)); o (S2) sending the first data packet (dp(n)) from the transmitting node (100) to the receiving node (200); o (S3) monitoring, at the transmitting node (100), acknowledgement messages (ack) received from the receiving node (200), and if a received acknowledgement message (ack) from the receiving node (200) does not comprise the first counter value (c(n)), or any higher counter value (c(n m)); then (S3a) generating, at the transmitting node (100), a second data packet (dp(n+1)) comprising the first data byte (db(n)) representing the first data value (va) and associated with the first position index (ix) together with at least a second data byte (db(n+1)) representing a second data value (vb) and associated with a second position index (iy), wherein the second data packet (dp(n+1)) comprises a second counter value (c(n+1)) that is higher than the first counter value (c(n)); o (S4) sending the second data packet (dp(n+1)) from the transmitting node (100) to the receiving node (200).
2. The method according to claim 1, wherein the second data packet (dp(n+1)) is generated (S3a) at the transmitting node (100), if an acknowledgement message (ack) is not received from the receiving node (200) within a certain time period (t).
3. The method according to any preceding claim, wherein if a received acknowledgement message (ack) from the receiving node (200) comprise the first counter value (c(n)) or any higher counter value (c(n m)); then (S3b) generating, at the transmitting node (100), a second data packet (dp(n+1)) comprising at least a second data byte (db(n+1)) representing a second data value (vb) and associated with a second position index (iy), wherein the second data packet (dp(n+1)) comprises a second counter value (c(n+1)) that is higher than the first counter value (c(n)).
4. The method according to any preceding claim, wherein second data packet (dp(n+1)) comprising at least the second data byte (db(n+1)), representing a second data value (vb) and associated with a second position index (iy), and a plurality of additional data bytes(db(n+2), db(n+3), db(n+3+m)...) each data byte having a corresponding data value (vc, vd, ve..... ) and each data byte having a corresponding position index (iz, iw, iv,...).
5. The method according to any preceding claim, wherein the counter value ((c), c(n), c(n+1), c(n+2),..., c(n+m)) is one of an incrementing count, a serial number or time stamp value for identifying the most recent sent data packet from a preceding sent data packet.
6. The method according to any preceding claim, wherein the number of data packets (dp(n), dp(n+1), dp(n+2)...) that can be sent without receiving any acknowledgement message (ack) is limited to a pre-set number.
7. The method according to any preceding claim, wherein each data packet (dp(n), dp(n+1), dp(n+2)...) is sent with a certain time space between the data packets (dp(n), dp(n+1), dp(n+2)...).
8. The method according to any preceding claim, wherein each data packet (dp(n+1), dp(n+2)...) that is sent comprise all the data bytes (db(n+1), db(n+2)....) included in any previous data packet (dp(n+1), dp(n+2)...) that have been sent with a counter value (c(n+1), c(n+2)...) that is higher than the counter value of the latest received acknowledgement message (ack).
9. A computer program product (500) comprising a non-transitory computer readable medium, having thereon a computer program comprising program instructions, the computer program being loadable into a processing circuitry (102) and configured to cause execution of the method according to any of claims 1 through 8 when the computer program is run by the processing circuitry (102).
10. A transmitting node (100) for preventing latency in data packet (dp) transmission between the transmitting node (100) and a receiving node (200), wherein each data packet (dp) comprises a counter value (c), at least one data byte (db) representing a data value (v), and wherein the least one data byte (db) is further associated with a position index (i) with a reference to a position in a list of plural data bytes (10), the transmitting (100) node comprising; a processing circuitry (102), wherein the processing circuitry (102) is connectable to a memory (104); the processing circuitry (102) being configured to cause the transmitting node (100) to: o (S1) generate a first data packet (dp(n)) comprising at least a first data byte (db(n)) representing a first data value (va) and associated with a first position index (ix) wherein the first data packet comprises a first counter value (c(n)); o (S2) send the first data packet (dp(n)) from the transmitting node (100) to a receiving node (200); o (S3) monitor acknowledgement messages (ack) received from the receiving node (200), and if a received acknowledgement message (ack) from the receiving node (200) does not comprise the first counter value (c(n)), or any higher counter value (c(n m)); then (S3a) generating, at the transmitting node (100), a second data packet (dp(n+1)) comprising the first data byte (db(n)) representing the first data value (va) and associated with the first position index (ix) together with at least a second data byte (db(n+1)) representing a second data value (vb) and associated with a second position index (iy), wherein the second data packet (dp(n+1)) comprises a second counter value (c(n+1)) that is higher than the first counter value (c(n)); (S4) send the second data packet (dp(n+1)) from the transmitting node (100) to the receiving node (200).
SE1751659A 2017-12-28 2017-12-28 Method and a node for preventing latency in data packet transmission SE541441C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
SE1751659A SE541441C2 (en) 2017-12-28 2017-12-28 Method and a node for preventing latency in data packet transmission
PCT/SE2018/051317 WO2019132756A1 (en) 2017-12-28 2018-12-14 Method and a node for preventing latency in data packet transmission

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE1751659A SE541441C2 (en) 2017-12-28 2017-12-28 Method and a node for preventing latency in data packet transmission

Publications (2)

Publication Number Publication Date
SE1751659A1 SE1751659A1 (en) 2019-06-29
SE541441C2 true SE541441C2 (en) 2019-10-01

Family

ID=67067925

Family Applications (1)

Application Number Title Priority Date Filing Date
SE1751659A SE541441C2 (en) 2017-12-28 2017-12-28 Method and a node for preventing latency in data packet transmission

Country Status (2)

Country Link
SE (1) SE541441C2 (en)
WO (1) WO2019132756A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020150048A1 (en) * 2001-04-12 2002-10-17 Sungwon Ha Data transport acceleration and management within a network communication system
EP1694010A1 (en) * 2005-02-16 2006-08-23 Samsung Electronics Co., Ltd. Method for preventing retransmissions due to delay in a wireless network
US7680038B1 (en) * 2005-04-25 2010-03-16 Electronic Arts, Inc. Dynamic bandwidth detection and response for online games
EP2309675A1 (en) * 2008-07-30 2011-04-13 Panasonic Corporation Tcp transmission control device and tcp transmission control method
WO2013055812A1 (en) * 2011-10-14 2013-04-18 Citrix Systems, Inc. Systems and methods for dynamic adaptation of network accelerators

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102845100B (en) * 2010-03-16 2016-04-20 Abb研究有限公司 Energy efficient method for communication in the wireless sensor network of industrial control system
CN103188059A (en) * 2011-12-28 2013-07-03 华为技术有限公司 Method, device and system for data packet retransmission in quick path interconnect system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020150048A1 (en) * 2001-04-12 2002-10-17 Sungwon Ha Data transport acceleration and management within a network communication system
EP1694010A1 (en) * 2005-02-16 2006-08-23 Samsung Electronics Co., Ltd. Method for preventing retransmissions due to delay in a wireless network
US7680038B1 (en) * 2005-04-25 2010-03-16 Electronic Arts, Inc. Dynamic bandwidth detection and response for online games
EP2309675A1 (en) * 2008-07-30 2011-04-13 Panasonic Corporation Tcp transmission control device and tcp transmission control method
WO2013055812A1 (en) * 2011-10-14 2013-04-18 Citrix Systems, Inc. Systems and methods for dynamic adaptation of network accelerators

Also Published As

Publication number Publication date
SE1751659A1 (en) 2019-06-29
WO2019132756A1 (en) 2019-07-04

Similar Documents

Publication Publication Date Title
KR101119674B1 (en) Millimeter-wave communications for peripheral devices
CN1937454B (en) Method for controlling transmission rate and communication device for using the method
US20060245430A1 (en) Method and Apparatus of a Procedure for Receiving Window Size Reconfiguration in a Communication System
US20070064631A1 (en) Method and apparatus for transmitting signaling data messages in a wireless communications system
US20110051637A1 (en) Methods Apparatus For Dynamically Adjusting A Data Packet Window Size For Data Packet Transmission In A Wireless Communication Network
EP3531637B1 (en) Techniques for efficient reordering of data packets in multipath scenarios
KR20080063094A (en) Data transmission method and device using controlled transmission profile
US11671377B2 (en) System and method for reducing bandwidth usage of a network
TW201328257A (en) Communication system and method for assisting transmission of TCP packets
JP2016208193A (en) Base station and communication control method
US8539297B1 (en) Determining whether a wireless access node should retransmit data packets based on the condition of a reverse wireless link
WO2018021734A1 (en) Method and apparatus for transmitting data in wireless communication system
CN115396067A (en) Retransmission control method, communication interface and electronic equipment
US8811500B2 (en) Data transmission
US20140355623A1 (en) Transmission Control Protocol (TCP) Connection Control Parameter In-Band Signaling
IL228214A (en) Transmission method in an ad hoc multi-hop ip network
EP1796301B1 (en) Method and apparatus for RLC protocol error handling
EP3490293A1 (en) Data transmission method, data receiving device, and data sending device
US11765094B2 (en) Communication system with de-jitter buffer for reducing jitter
CN101018195A (en) Transmission method of burst message in the MANET information distribution ordering platform
JP2014532379A (en) Data transmission control
EP3977692A1 (en) Avoiding jitter in a communication system
US10320634B2 (en) Data communications employing packet report messages
WO2019132756A1 (en) Method and a node for preventing latency in data packet transmission
JP4447028B2 (en) Communication control method, transmission apparatus, and computer program

Legal Events

Date Code Title Description
NUG Patent has lapsed