Method for timely transmission of data over a lossy communication channel
By slicing data payloads into fragments and transmitting them over separate channels with attached metadata for reconstruction, the method addresses latency and retransmission issues in lossy networks, ensuring timely and secure data transmission.
Patent Information
- Application Number
- JP2025538602
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-01-10
- Filing Date
- 2023-12-14
- Publication Date
- 2026-01-27
AI Technical Summary
Existing data transmission methods over lossy communication channels, such as UDP and TCP, suffer from latency, retransmissions, and buffer bloat, leading to performance degradation in networks like 5G/6G and LEO satellite networks, especially in real-time applications requiring low-latency and high-speed data transmission.
A method involving slicing a data payload into multiple fragments, attaching metadata, and transmitting these fragments over separate communication channels, allowing for timely reconstruction at the receiving device, thereby mitigating latency and ensuring secure, low-latency transmission.
Enables low-latency, high-speed, and reliable data transmission over lossy channels by minimizing latency accumulation and retransmissions, suitable for secure protocols like TCP, while maintaining transmission timelines and security.
Smart Images

Figure 2026502950000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a method for transmitting data in a timely manner from a transmitting device to a receiving device over a lossy communication channel.
[0002] Modern applications require real-time, bidirectional transmission of large amounts of data, known as data payloads (video, audio, control information, telemetry information, etc.), generated during the operation of applications such as unmanned aerial vehicles (UAVs), remotely operated and autonomous machines, interactive mixed reality (XR), cloud-based artificial intelligence (AI), factory and home automation, and the Internet of Things (IoT), among others.
[0003] The User Datagram Protocol (UDP) protocol is commonly used for sub-second payload data transmission, such as WebRTC, SRT, and QUIC. However, UDP is limited by security and deployment constraints (such as firewalls and other organizational boundaries), inbound port exposure, Network Address Table (NAT) traversal, network congestion and target flooding, low goodput, limited VPN compatibility, and unreliable delivery.
[0004] Furthermore, when using UDP over lossy networks (especially last-mile wireless networks), a single detected error results in data loss that must be compensated for by redundant data transmission, which can further reduce goodput.
[0005] For this reason, the Transmission Control Protocol (TCP) is utilized for data payload transport. TCP examples such as (LL-)HLS and RTMP are free from the aforementioned UDP limitations. Furthermore, because TCP is topologically server-mediated, TCP-based protocols are inherently compatible with 5G / 6G edge deployments, load-balanced data ingestion, and proxied zero trust architectures (ZTA). However, existing TCP protocols suffer from latency ranging from several seconds to tens of seconds. Such latency is caused by head-of-line blocking (HOLB) and performance degradation due to retransmission of dropped data packets.
[0006] Furthermore, when using TCP over lossy networks (especially last-mile wireless networks), a single detected error will cause data retransmission. While the data is being retransmitted, subsequent packets remain queued. HOLB retransmissions can cause undesirable delays.
[0007] Furthermore, there is also the problem of buffer bloat, where a large receive buffer size can cause variable latency in data transmission and inefficient memory allocation.
[0008] These drawbacks result in significant performance degradation in communication networks with low RTT (Round-Trip Time) such as 5G / 6G and in communication networks with high RTT such as low earth orbit (LEO) satellite networks.
[0009] In view of these circumstances, a need exists to overcome the aforementioned drawbacks associated with existing methods for timely transmission of payloads of data over lossy communication channels.
[0010] The present disclosure seeks to provide a method for transmitting a first payload of data from a transmitting device to a receiving device in a timely manner. It is an object of the present disclosure to provide a solution that at least partially overcomes the problems encountered in the prior art.
[0011] According to one aspect, an embodiment of the present disclosure provides a method for timely transmitting a first payload of data from a transmitting device to a receiving device, the method comprising: obtaining the first payload to be transmitted from the transmitting device to the receiving device; at the transmitting device, slicing the first payload into at least a first data fragment and a second data fragment, wherein first fragment metadata is attached to the first data fragment, and the first data fragment and the first fragment metadata together form a first fragment of a first fragment size, and second fragment metadata is attached to the second data fragment, and the second data fragment and the second fragment metadata together form a second fragment of a second fragment size; transmitting at least the first fragment over a first communication channel and at least the second fragment over a second communication channel from the transmitting device to the receiving device; receiving, at the receiving device, from the transmitting device over the first communication channel, at least the first fragment and over the second communication channel, at least the second fragment; at the receiving device, reconstructing a first payload from at least the first fragments using the first fragment metadata and the first data fragments, or reconstructing the first payload from at least the second fragments using the second fragment metadata and the second data fragments; Includes.
[0012] Embodiments of the present disclosure substantially eliminate or at least partially address the aforementioned problems in the prior art and enable low-latency, high-speed, reliable and secure transmission of a first payload of data from a transmitting device to a receiving device, where the transmission of the first payload of data occurs in a timely manner, even over lossy communication channels.
[0013] Further aspects, advantages, features and objects of the present disclosure will become apparent from the accompanying drawings and detailed description of illustrative embodiments, taken in conjunction with the appended claims.
[0014] It will also be appreciated that features of the present disclosure can be combined in various combinations without departing from the scope defined by the appended claims. [Brief explanation of the drawings]
[0015] The foregoing summary, as well as the following detailed description of exemplary embodiments, will be better understood when read in conjunction with the accompanying drawings. For the purpose of illustrating the disclosure, exemplary configurations of the disclosure are shown in the drawings. However, the disclosure is not limited to the particular methods and apparatus disclosed therein. Also, the drawings are not to scale. Similar elements are designated by the same numerals wherever possible. Embodiments of the present disclosure will now be described, by way of example, with reference to the following drawings: [Figure 1] 1 illustrates method steps for timely transmission of a first payload of data from a transmitting device to a receiving device, according to one embodiment of the present disclosure. [Figure 2] 1 illustrates an environment in which a method for timely transmitting a first payload of data from a transmitting device to a receiving device is used, according to one embodiment of the present disclosure. [Figure 3A] FIG. 1 is a block diagram depicting slicing of a first payload of data according to one embodiment of the present disclosure. [Figure 3B]FIG. 2 is a block diagram of a first fragment and a second fragment according to one embodiment of the present disclosure. [Figure 4] FIG. 2 is a block diagram of first fragment metadata and second fragment metadata according to one embodiment of the present disclosure. [Figure 5] FIG. 10 illustrates a relationship between fragment size restrictions and a first fragment size and a second fragment size, according to one embodiment of the present disclosure. [Figure 6] FIG. 2 is a block diagram depicting a first communication channel and a second communication channel between a transmitting device and a receiving device according to one embodiment of the present disclosure. [Figure 7] 10 illustrates a graphical representation of an analytical, or alternatively empirically derived, solution for determining a fragment size scaling factor from among multiple fragment size scaling factors, according to one embodiment of the present disclosure. [Figure 8] 10 is a graphical representation of percentiles of expected fragment transfer times, according to one embodiment of the present disclosure. [Figure 9] FIG. 1 is a block diagram for reconstructing a first payload of data according to one embodiment of the present disclosure. [Figure 10] FIG. 1 illustrates a relationship between a communication channel's receive buffer size, a fragment size limit, and the quotient of the bandwidth-delay product and the number of simultaneous communication channels, according to one embodiment of the present disclosure. [Figure 11] 1 illustrates a block diagram of creating a first data error correction data payload based on a first payload of data according to one embodiment of the present disclosure. [Figure 12] 1 illustrates a block diagram for reconstructing a first payload of data using a first data error correction data payload, according to one embodiment of the present disclosure. [Figure 13] FIG. 10 is a block diagram illustrating the addition of a first data identifier payload according to an embodiment of the present disclosure. [Figure 14] FIG. 2 is a block diagram depicting multiple payloads of data (a sequence of payloads of data) according to an embodiment of the present disclosure. [Figure 15] FIG. 2 is a block diagram for reusing a first communication channel and a second communication channel according to an embodiment of the present disclosure. [Figure 16] 1 shows a graphical representation of an analytical, or alternatively empirically derived, solution for determining a channel reusable time interval from among multiple channel reusable time intervals, in accordance with one embodiment of the present disclosure. In the accompanying drawings, underlined numbers are used to represent items at or adjacent to the location where the number is located. Numbers without underlines are associated with items identified by a line extending from the number. When a number is written with an arrow without an underline, the number is used to identify the general item to which the arrow points. Detailed Description of the Embodiments
[0016] The following detailed description illustrates embodiments of the present disclosure and how they may be practiced. Although several forms for carrying out the present disclosure have been disclosed, those skilled in the art will recognize that other forms for carrying out the present disclosure are also possible.
[0017] According to one aspect, an embodiment of the present disclosure provides a method for timely transmitting a first payload of data from a transmitting device to a receiving device, the method comprising: obtaining the first payload to be transmitted from the transmitting device to the receiving device; at the transmitting device, slicing the first payload into at least a first data fragment and a second data fragment, wherein first fragment metadata is attached to the first data fragment, and the first data fragment and the first fragment metadata together form a first fragment of a first fragment size, and second fragment metadata is attached to the second data fragment, and the second data fragment and the second fragment metadata together form a second fragment of a second fragment size; transmitting at least the first fragment over a first communication channel and at least the second fragment over a second communication channel from the transmitting device to the receiving device; receiving, at the receiving device, from the transmitting device over the first communication channel, at least the first fragment and over the second communication channel, at least the second fragment; at the receiving device, reconstructing the first payload from at least the first fragment and the second fragment, where the first payload is reconstructed from the first fragment using the first fragment metadata and the first data fragment, and from the second fragment using the second fragment metadata and the second data fragment; Includes.
[0018] The present disclosure provides a method for timely transmission of a first payload of data from a transmitting device to a receiving device, wherein slicing the first payload of data at the transmitting device and subsequent reassembly of the first payload of data at the receiving device ensures that only a small portion of the first payload of data is transmitted at a time in a given communication channel. This mitigates latency accumulation during transmission of the first payload of data from the transmitting device to the receiving device over a lossy communication channel. The mitigated latency then ensures controllable and timely transmission of the first payload of data. Furthermore, the method may be suitable for use over a secure communication protocol, such as TCP (Transmission Control Protocol), while providing timely transmission of the first payload of data from the transmitting device to the receiving device. Thus, while receiving the first payload of data at the receiving device, a user need not compromise on either security or transmission timelines, because transmission of the first payload of data in the method is both secure and timely.
[0019] Throughout this disclosure, the term "payload of data" refers to the specific portion of a data signal that actually contains the information to be transmitted by transmission of the data signal. In some embodiments, the first payload of data includes one or more of text data, audio data, video data, etc. In some embodiments, the transmitting device may send a request to the receiving device to transmit the first payload of data to the receiving device. Alternatively, in some embodiments, the receiving device may send a request to the transmitting device to receive the first payload of data from the transmitting device.
[0020] The transmission of the first payload of data from the sending device to the receiving device using the Internet is performed according to a particular network protocol that enables the transmission of the first payload of data. Some of the network protocols may provide faster transmission of the first payload of data, while other network protocols may provide more secure transmission of the first payload of data. In some embodiments, the method of the present disclosure uses the TCP protocol for the transmission of the first payload of data.
[0021] Here, a first payload of data is obtained from a user or device by a sending device through either text input, voice input, video input, etc. The sending device and receiving device are connected via a wired connection, a wireless connection, or a quantum connection to transmit the first payload of data.
[0022] Throughout this disclosure, the term "fragment of data" refers to a portion of a first payload of data that includes a portion of the overall information contained in the first payload of data. Data fragments are formed by slicing the first payload of data. Throughout this disclosure, the term "fragment metadata" refers to a specific data signal that includes information about specific characteristics of a data fragment. For example, the fragment metadata may include one or more of the following: the size of the data fragment, the nature of the information contained in the first data fragment, etc. Appending first fragment metadata to a first data fragment forms a first fragment of a first fragment size. Similarly, appending second fragment metadata to a second data fragment forms a second fragment of a second fragment size. In some embodiments, the first payload of data is sliced into more than two data fragments. For example, the first payload of data may be sliced into five data fragments, forming a first fragment of a first fragment size, a second fragment of a second fragment size, a third fragment of a third fragment size, a fourth fragment of a fourth fragment size, and a fifth fragment of a fifth fragment size. The fragment size may be variable to allow for continuous adaptation as characteristics of the lossy communication channel, such as packet loss, change, and to achieve timely delivery of the first payload of data.
[0023] In some embodiments, the first fragment metadata includes a first data intra payload identifier and a first fragment delimiter, and the second fragment metadata includes a second data intra payload identifier and a second fragment delimiter. Advantageously, the first fragment metadata and the second fragment metadata thus include the minimum information required to unambiguously reconstruct the first payload of data.
[0024] In some embodiments, slicing a first payload of data into multiple fragments is performed as follows: First, the size of the first fragment (first fragment size) is limited to a size less than or equal to a fragment size limit, which is defined as the product of a fragment size unit and a fragment size scaling factor. The remainder of the first payload of data, if any, is used to create at least a second fragment. The size of the second fragment (second fragment size) is also limited to a size less than or equal to the fragment size limit. This is done until all of the first payload has been sliced into fragments. In this regard, the term "fragment size limit" refers to a threshold size value that limits the amount of information of the first payload that can be contained in a given fragment. The fragment size limit is formed by the product of the fragment size scaling factor (i.e., the numerical value of the fragment size limit) and the fragment size unit (i.e., the unit used to express the fragment size limit). For example, the upper limit of the fragment size is 5 MB, where 5 is the fragment size scaling factor and MB is the unit of the fragment size. Each fragment formed from the first payload of data cannot exceed the fragment size limit, and once a given fragment reaches the fragment size limit, the next fragment of the first payload is formed. The aforementioned slicing process is repeated until the first payload of data is completely sliced. In this way, the first payload of data is not sliced into data fragments containing a large amount of data, thereby preventing delays caused by retransmissions from affecting other fragments, and effectively mitigating and controlling the adverse effects of HOLB while transmitting the first payload of data.
[0025] In some embodiments, the fragment size unit is selected to be equal to at least one of the following: · At least bytes(B); Protocol Data Unit (PDU); · TCP Maximum Segment Size (TCP MSS); · TCP MSS multiplied by the TCP window (TCP W); · TCP Window Scale (WS) to the power of 2.
[0026] Here, "PDU" refers to the basic unit exchanged between two entities communicating via a network protocol. "TCP MSS" is the largest possible size of a data unit that a receiving device can accept in a given fragment while communicating via a network protocol. Thus, advantageously, the method incorporates a variety of sizes from which the fragment size unit may be selected, making the method suitable for use in a variety of applications.
[0027] In some embodiments, at least a communication channel packet loss probability from among multiple communication channel packet loss probabilities; · the expected fragment transfer time among multiple expected fragment transfer times; · A percentile of the expected fragment transfer time among multiple percentiles of the expected fragment transfer time; The fragment size scaling factor is determined from among a plurality of fragment size scaling factors by selecting input parameters for an analytical solution or a look-up table index for an empirical solution, such as:
[0028] The optimal size of the slices is determined to prevent retransmissions and maximize channel capacity utilization. The packet loss probability of the communication channel is specific to the communication channel (i.e., the communication channel is an independent variable). The expected fragment transfer time and percentiles of the expected fragment transfer time are application dependent (i.e., user-defined independent variables). For example, in a communication network where the communication channel has a packet loss of 0.1%, if a user desires 80% of fragments to be transferred within 100 ms, the method advantageously enables determining an optimal fragment size scaling factor.
[0029] In some embodiments, the expected fragment transfer time is expressed in units of at least one of round-trip time or units normalized to a multiple of the round-trip time, where the term "round-trip time" refers to the total time it takes for a given fragment to reach the receiving device from the sending device and the time it takes for an acknowledgment that the fragment was received to reach the sending device from the receiving device. Beneficially, by expressing the expected fragment transfer time in units of at least one of round-trip time or units normalized to a multiple of the round-trip time, the method can ensure that complete data for a given fragment is transmitted in a timely manner from the sending device to the receiving device with respect to the time interval of the expected fragment transfer time.
[0030] In some embodiments, the percentiles of expected fragment transfer times are represented by empirically approximated or analytically derived percentiles of a Gamma or Poisson distribution. In some embodiments, the percentiles of expected fragment transfer times can be generated by prior measurements. Alternatively, the percentiles of expected fragment transfer times can be determined from general principles based on percentiles of a Gamma distribution (or more specifically, a Poisson distribution) of expected fragment transfer times based on a given communications channel packet loss and a given fragment size scaling factor.
[0031]
[0003] In some embodiments, the first communication channel and the second communication channel are each independently selected from the group of: · Communication channel via raw sockets; · Communication channel via TCP sockets; · Communication channel via UDP sockets.
[0032] In this regard, the term "raw socket" refers to a network socket (i.e., an endpoint in a data exchange between two devices) that allows a given device to send or receive data packets without the mediation of the device's operating system. Thus, selecting a first communication channel and a second communication channel from a group of communication channels on the raw socket eliminates the need for an intermediary in the given communication channel. The term "TCP socket" refers to a network socket that allows connection to any remote server. Thus, advantageously, selecting a first communication channel and a second communication channel from a group of communication channels on the TCP socket can efficiently send and receive a first payload of data from a remote server. The term "UDP socket" refers to a network socket that can send a first payload of data using the UDP protocol.
[0033]
[0006] In some embodiments, the fragment size scaling factor is: · Communication channel via raw sockets; · Communication channel via TCP sockets; · Communication channel via UDP sockets; are used for congestion control individually selected from the group.
[0034] The term "congestion control" herein refers to a mechanism for controlling the admission of data packets of given fragments to a given communication channel in a manner that allows for efficient use of the given communication channel by preventing bottlenecks due to congestion within or between the given communication channel. By using a fragment size scaling factor for congestion control, the method has the beneficial effect of being able to apply congestion control according to the size of any given fragment, thereby mitigating the accumulation of latency in the given communication channel.
[0035]
[0008] In some embodiments, the fragment size limit comprises a communications channel receive buffer size that is: Raw socket receive buffer; TCP socket receive buffer; UDP socket receive buffer; is used to determine as at least one from the group of
[0036] Here, the "communication channel receive buffer size" refers to an upper limit of the buffer size in the memory of the receiving device that the receiving device can use to receive data packets of the first payload of data on a given communication channel. By determining the communication channel receive buffer size to be at least one from the group of a raw socket receive buffer, a TCP socket receive buffer, or a UDP socket receive buffer, the receiving device can efficiently use the memory of the receiving device with any type of network socket. Therefore, the method is advantageously suitable for use in a variety of applications.
[0037] In some embodiments, the communication channel receive buffer size is set to a size greater than or equal to the fragment size limit and less than or equal to the bandwidth-delay product divided by the number of simultaneous communication channels. Setting the communication channel receive buffer size can ensure that the amount of memory in the receiving device used for the communication channel receive buffer size does not exceed the amount required for the fragment size limit. Note that "bandwidth-delay product" refers to the amount of data that can be transmitted from a transmitting device to a receiving device before the initial unit of data is considered received by the receiving device. Beneficially, setting the communication channel receive buffer size to a size less than or equal to the bandwidth-delay product divided by the number of simultaneous communication channels can ensure that the communication channel receive buffer size is at least equal to the minimum amount of data that can be transmitted in one cycle of transmission over a communication channel. The ability to use a small receive buffer size can achieve high communication channel utilization, mitigate buffer bloat, and enable efficient resource usage (e.g., efficient memory allocation).
[0038] In some embodiments, a percentile of expected fragment transfer times, complemented to one, is used to determine a payload forward error correction factor. The payload forward error correction factor is used to create a first data error correction data payload based on the first payload of data. The first fragment metadata is corrected with the first data error correction data payload, and the second fragment metadata is also corrected with the first data error correction data payload. Here, the term "payload forward error correction factor" refers to a scale by which a limited amount of missing fragments of a given payload of data can be corrected without having to wait for retransmissions or missing fragments. In this regard, the first data error correction data payload includes specific data needed to apply forward error correction to a given fragment corresponding to the first payload of data.
[0039] In some embodiments, the first payload of data is associated with a first payload data identifier that is amended into the first fragment metadata and the second fragment metadata. In this regard, the first payload data identifier that is amended into the first fragment metadata and the second fragment metadata beneficially enables the receiving device to determine that the first fragment and the second fragment received by the receiving device belong to the first payload of data and are used for reconstructing the first payload of data.
[0040] In some embodiments, the first payload of data is obtained from among multiple payloads of data. The first payload of data is reconstructed using the first payload data identifier when the first payload of data is obtained from among the multiple payloads of data. In this regard, the transmitting device may simultaneously or sequentially obtain multiple payloads of data, which are then used to obtain the first payload of data. For example, during a live stream broadcast of a soccer game, multiple cameras installed at the soccer field may be simultaneously recording data, and the data recorded by each camera may be used to obtain a first payload of data, which is obtained from multiple sources by a sender device (e.g., a broadcast station). Notably, the multiple payloads of data may be obtained from multiple sources in any random order to obtain the first payload of data. Thus, advantageously, the method efficiently transmits the first payload of data in an application that includes obtaining the first payload of data from among multiple payloads of data, where each payload of the multiple payloads of data includes a separate data fragment. By using the first payload data identifier for reconstruction of the first payload of data, the first data fragment and the second data fragment belonging to a particular payload can be identified from among multiple payloads of data.
[0041] In some embodiments, a first payload of a plurality of payloads of data is part of a sequence of payloads of data, and the first payload is reconstructed using a first payload data identifier when the first payload is part of the payload sequence. In this regard, in some embodiments, the method includes transmitting the sequence of payloads of data from a transmitting device to a receiving device, either sequentially or simultaneously. For example, during a live stream of a soccer match, a sequence of payloads of data needs to be transmitted from a broadcasting station to a viewer's device. A sequence of payloads needs to be transmitted, covering the length of the soccer match from start to finish, with the sequence of payloads. Thus, advantageously, the method efficiently transmits the first payload of data in an application that includes obtaining the first payload of data from the sequence of payloads of data, where each payload that is part of the sequence of payloads of data includes a separate fragment of data. Using the first payload data identifier for reconstruction of the first payload of data allows identifying a first data fragment and a second data fragment belonging to a particular payload from the sequence of payloads of data.
[0042] To ensure high-speed transmission of the first fragment and the second fragment of the first payload of data, the first fragment and the second fragment are transmitted separately from the transmitting device to the receiving device via a first communication channel and a second communication channel, respectively. In some embodiments, the first communication channel and the second communication channel may be selected from one of satellite communication, fiber optic communication, GSM communication, Wi-Fi communication, quantum communication, etc. In some embodiments, when the first payload of data is sliced into two or more fragments, a separate communication channel is used for each of the fragments of the first payload of data.
[0043] Thereafter, when the fragments are received by the receiving device, the first payload of data is reconstructed using the received fragments to extract the entire information contained in the first payload of data. In particular, the first fragment metadata and the second fragment metadata include information necessary to reconstruct the first payload of data, such as one or more of the sizes, order, etc. of at least the first fragment and the second fragment. Once the first payload of data has been reconstructed, the receiving device can accordingly obtain the information contained in the first payload of data and use the obtained information for any desired application.
[0044] In some embodiments, the first payload is reconstructed from the first fragment based on the first fragment metadata using the first fragment delimiter, the first data intra payload identifier fragment, and the first data fragment, and from the second fragment based on the second fragment metadata using the second fragment delimiter, the second data intra payload identifier fragment, and the second data fragment. Advantageously, the first fragment metadata and the second fragment metadata therefore contain the minimum information required to unambiguously reconstruct the first payload of data.
[0045] In some embodiments, the first payload is reconstructed from the first fragment based on the first fragment metadata using a first fragment delimiter, a first data intra payload identifier fragment, a first data fragment, and a first data error correction data payload. In some embodiments, the first payload is reconstructed from the second fragment based on the second fragment metadata using a second fragment delimiter, a second data intra payload identifier fragment, a second data fragment, and a first data error correction data payload. A limited amount of missing fragments from either the first fragment or the second fragment are advantageously auto-corrected using the first data error correction data payload while the first payload of data is reconstructed.
[0046] In some embodiments, the method further includes maintaining the first and second communication channels for reuse between the transmitting and receiving devices for multiple payloads of data, or for a sequence of payloads of data, and for their corresponding fragments after a channel reusable time interval, where a "channel reusable time interval" refers to a time interval during which a given communication channel is reusable for transmitting subsequent payload data in a timely manner. Advantageously, therefore, the first and second communication channels do not need to be established multiple times between the transmitting and receiving devices while transmitting multiple payloads of data.
[0047] In some embodiments, a communication channel packet loss probability from among multiple communication channel packet loss probabilities; the fragment size scaling factor from among a plurality of fragment size scaling factors; · A percentile of the expected fragment transfer time among multiple percentiles of the expected fragment transfer time; The channel reusable time interval is determined from among a plurality of channel reusable time intervals by selecting input parameters for an analytical solution or a look-up table index for an empirical solution, such as:
[0048] A communication channel reuse probability time can be defined based on the communication channel packet loss probability, the fragment size scaling factor, and the percentile of the expected transmission time. For example, for a communication channel with a communication channel packet loss probability of 0.1% and a fragment size scaling factor of 5, in 80% of cases, the communication channel will be free for reuse after a number of milliseconds. Effective communication channel reuse helps conserve system and network resources. [Detailed description of the drawing]
[0049] Referring to FIG. 1, steps of a method for timely transmission of a first payload of data from a transmitting device to a receiving device are illustrated, according to one embodiment of the present disclosure. In step 102, a first payload of data to be transmitted from the transmitting device to the receiving device is obtained. In step 104, at the transmitting device, the first payload of data is sliced into at least a first data fragment and a second data fragment. First fragment metadata is attached to the first data fragment. The first data fragment and the first fragment metadata collectively form a first fragment of a first fragment size. Also, second fragment metadata is attached to the second data fragment. The second data fragment and the second fragment metadata collectively form a second fragment of a second fragment size. In step 106, at least the first fragment is transmitted from the transmitting device to the receiving device via a first communication channel, and at least the second fragment is transmitted via a second communication channel. At step 108, at least a first fragment is received via a first communication channel and at least a second fragment is received via a second communication channel at a receiving device, and at step 110, a first payload of data is reconstructed from at least the first fragment using the first fragment metadata and the first data fragment, or a first payload of data is reconstructed from at least the second fragment using the second fragment metadata and the second data fragment.
[0050] The foregoing steps 102, 104, 106, 108, and 110 are merely exemplary, and other options exist: one or more steps can be added, one or more steps can be removed, or one or more steps can be performed in a different order, without departing from the scope of the appended claims.
[0051] 2, an environment 200 is illustrated in which a method for timely transmission 202 of a first payload of data 204 from a transmitting device 206 to a receiving device 208 is used, in accordance with an embodiment of the present disclosure. The transmitting device 206 obtains the first payload of data 204 from a device 210. At the transmitting device 206, the first payload of data 204 is sliced to form a first fragment 212 and a second fragment 214. The first fragment 212 is transmitted from the transmitting device 206 to the receiving device 208 via a first communication channel 216 and the second fragment 214 is transmitted via a second communication channel 218. The receiving device 208 receives the first fragment 212 via the first communication channel 216 and the second fragment 214 via the second communication channel 218, respectively. At the receiving device 208, the first payload of data 204 is reconstructed using the first fragment 212 and the second fragment 214.
[0052] 3A, a block diagram is shown depicting the slicing of a first payload of data 300, according to an embodiment of the present disclosure. As shown in FIG. 3A, the first payload of data 300 is sliced into a first data fragment 302 and a second data fragment 304.
[0053] Referring to Figure 3B, a block diagram of a first fragment 306 and a second fragment 308 is shown, according to one embodiment of the present disclosure. As shown in Figure 3B, the first fragment 306 includes a first data fragment 302. The first data fragment 302 has first fragment metadata 310 attached to it. The size of the first fragment 306 is a first fragment size 312. The second fragment 308 includes a second data fragment 304. The second data fragment 304 has second fragment metadata 314 attached to it. The size of the second fragment 308 is a second fragment size 316.
[0054] Referring to Figure 4, a block diagram of first fragment metadata 400 and second fragment metadata 402 is shown, in accordance with one embodiment of the present disclosure. As shown in Figure 4, first fragment metadata 400 comprises a first fragment delimiter 404 and a first data intra payload identifier fragment 406. Second fragment metadata 402 comprises a second fragment delimiter 408 and a second data intra payload identifier fragment 410.
[0055] 5, a diagram illustrates a relationship between a fragment size limit 500 and a first fragment size (e.g., first fragment size 312) and a second fragment size (e.g., second fragment size 316) in accordance with an embodiment of the present disclosure. As shown in FIG. 5, first fragment size 312 and second fragment size 316 are each equal to or less than fragment size limit 500.
[0056] 6, a block diagram is shown depicting a first communication channel 600 and a second communication channel 602 between a transmitting device (e.g., transmitting device 206) and a receiving device (e.g., receiving device 208) according to an embodiment of the present disclosure. As shown in FIG. 6, the first communication channel 600 is established between the transmitting device 206 and the receiving device 208 for transmitting at least a first fragment, and the second communication channel 602 is established between the transmitting device 206 and the receiving device 208 for transmitting at least a second fragment. Here, the first communication channel 600 and the second communication channel 602 are each individually selected from a communication channel over a raw socket 604, a communication channel over a TCP socket 606, or a communication channel over a UDP socket 608.
[0057] Referring to Figure 7, a graphical representation 700 of an analytical, or alternatively empirical, solution for determining a fragment size scaling factor from among a plurality of fragment size scaling factors is illustrated, in accordance with one embodiment of the present disclosure. As shown in Figure 7, the x-axis represents a plurality of fragment size scaling factors (depicted as a first fragment size scaling factor 702, a second fragment size scaling factor 704, and a third fragment size scaling factor 706). The y-axis represents a plurality of expected fragment transfer times (depicted as a first expected fragment transfer time 708, a second expected fragment transfer time 710, and a third expected fragment transfer time 712). The z-axis represents a plurality of communication channel packet loss probabilities. (Depicted as first communication channel packet loss probability 714, second communication channel packet loss probability 716, and third communication channel packet loss probability 718.) Here, from among multiple percentiles of expected fragment transfer times, a first percentile of expected fragment transfer times 720, a second percentile of expected fragment transfer times 722, and a third percentile of expected fragment transfer times 724 are plotted in the graphical representation 700.
[0058] 8, a graphical representation 800 of a percentile 802 of expected fragment transfer times from among a plurality of percentiles of expected fragment transfer times is illustrated, in accordance with an embodiment of the present disclosure. As shown in FIG. 8, the x-axis represents expected fragment transfer time and the y-axis represents fragment count.
[0059] 9, a block diagram is shown for reconstructing a first payload of data (such as the first payload of data 300 of FIG. 3A ) in accordance with one embodiment of the present disclosure. As shown in FIG. 9, the first payload of data 300 is reconstructed from the first fragment 306 together with the second fragment 308. The first payload of data 300 is reconstructed from the first fragment 306 using the first fragment delimiter 404, the first data intra payload identifier fragment 406, and the first data fragment 302, and from the second fragment 308 using the second fragment delimiter 408, the second data intra payload identifier fragment 410, and the second data fragment 304.
[0060] 10, there is illustrated a relationship between a communication channel receive buffer size 1000, a fragment size limit (e.g., fragment size limit 500), and a quotient 1002 of the bandwidth-delay product and the number of concurrent channels, in accordance with one embodiment of the present disclosure. As shown in FIG. 10, the communication channel receive buffer size 1000 is greater than or equal to the fragment size limit 500, and the communication channel receive buffer size 1000 is less than or equal to the quotient 1002 of the bandwidth-delay product and the number of concurrent channels.
[0061] 11, a block diagram of the use of forward error correction in a first payload of data (such as the first payload of data 300 of FIG. 3A ) is illustrated in accordance with an embodiment of the present disclosure. As shown in FIG. 11, payload forward error correction coefficients 1100 are used to create a first data error correction data payload 1102 based on the first payload of data 300. The first fragment metadata 400 is corrected with the first data error correction data payload 1102, and the second fragment metadata 402 is also corrected with the first data error correction data payload 1102.
[0062] 12, a block diagram is shown for reconstructing a first payload of data (such as the first payload of data 300) using a first data error correction data payload 1102, according to one embodiment of the present disclosure. As shown in FIG. 12, the first payload of data 300 is reconstructed from the first fragment 306 based on the first fragment metadata 400 using a first fragment delimiter 404, a first data intra payload identifier fragment 406, a first data fragment 302, and the first data error correction data payload 1102. Alternatively, the first payload of data 300 is reconstructed from the second fragment 304 based on the second fragment metadata 402 using a second fragment delimiter 408, a second data intra payload identifier fragment 410, a second data fragment 304, and the first data error correction data payload 1102.
[0063] 13, a block diagram is shown depicting the addition of a first data identifier payload 1300, according to one embodiment of the present disclosure. As shown in FIG. 13, the first data identifier payload 1300 is added to the first fragment metadata 400. Similarly, the first data identifier payload 1300 is added to the second fragment metadata 402.
[0064] Referring to Figure 14, a block diagram illustrating a sequence of data payloads 1400 according to an embodiment of the present disclosure is shown. As shown in Figure 13, the sequence of data payloads includes a first payload of data 1402, a second payload of data 1404, and a third payload of data 1406. Here, the first payload of data 1402 is derived from multiple payloads (depicted as data payloads 1402A, 1402B, and 1402C, respectively). The multiple payloads may be collectively referred to as 1402A-C. Similarly, the second payload of data 1404 and the third payload of data 1406 may also be derived from corresponding multiple data payloads.
[0065] 15, a block diagram is illustrated for reusing the first communication channel 216 and the second communication channel 218, according to an embodiment of the present disclosure. As shown in FIG. 15, a first fragment 1500A and a second fragment 1500B of a first payload of data 1500 are transmitted from the transmitting device 206 to the receiving device 208 via the first communication channel 216 and the second communication channel 218, respectively. Additionally, a first fragment 1502A and a second fragment 1502B of a second payload of data 1502 are transmitted from the transmitting device 206 to the receiving device 208 via the first communication channel 216 and the second communication channel 218, respectively. In some embodiments, the first payload of data 1500 and the second payload of data 1502 are part of multiple payloads of data or a sequence of payloads of data. The first communication channel 216 and the second communication channel 218 are reused for transmission of a second payload of data 1502 after a first payload of data 1500 is transmitted from the transmitting device 206 to the receiving device 208. The first communication channel 216 and the second communication channel 218 are available for reuse after a channel reusable time interval 1504.
[0066] 16, a graphical representation 1600 of an analytical solution for determining a channel reusable time interval from among a plurality of channel reusable time intervals is shown in accordance with one embodiment of the present disclosure. In FIG. 16, the x-axis represents a plurality of fragment size scaling factors (depicted as first fragment size scaling factor 702, second fragment size scaling factor 704, and third fragment size scaling factor 706). The y-axis represents a plurality of channel reusable time intervals (depicted as first channel reusable time interval 1602, second channel reusable time interval 1604, and third channel reusable time interval 1606). The z-axis represents a plurality of communication channel packet loss probabilities. (Depicted as first communication channel packet loss probability 714, second communication channel packet loss probability 716, and third communication channel packet loss probability 718.) Here, from among multiple percentiles of expected fragment transfer times, a first percentile of expected fragment transfer time 1620, a second percentile of expected fragment transfer time 1622, and a third percentile of expected fragment transfer time 1624 are plotted in the graphical representation 1600.
[0067] Modifications to the embodiments of the present disclosure described above can be made without departing from the scope defined by the appended claims. The terms "including," "comprising," "incorporating," "having," "being," and the like, used to describe and claim the present disclosure, are intended to be interpreted in a non-exclusive manner, i.e., allowing for the presence of items, parts, or components not expressly recited. The absence of a plurality of elements does not preclude the presence of a plurality of such elements.
Claims
1. 1. A method for timely transmitting a first payload of data from a transmitting device to a receiving device, the method comprising: obtaining the first payload to be transmitted from the transmitting device to the receiving device; - at the transmitting device, slicing the first payload into at least a first data fragment and a second data fragment, wherein first fragment metadata is attached to the first data fragment, and the first data fragment and the first fragment metadata together form a first fragment of a first fragment size, and wherein second fragment metadata is attached to the second data fragment, and the second data fragment and the second fragment metadata together form a second fragment of a second fragment size; transmitting at least the first fragment from the transmitting device to the receiving device over a first communications channel and at least the second fragment over a second communications channel; receiving, at the receiving device, from the transmitting device over the first communications channel, at least the first fragment and over the second communications channel, at least the second fragment; at the receiving device, reconstructing a first payload from at least the first fragments using the first fragment metadata and the first data fragments, or reconstructing the first payload from at least the second fragments using the second fragment metadata and the second data fragments; A method comprising:
2. 2. The method of claim 1, wherein the first fragment metadata includes a first data intra payload identifier and a first fragment delimiter, and the second fragment metadata includes a second data intra payload identifier and a second fragment delimiter.
3. Slicing the first payload into a plurality of fragments includes: the first fragment size is constrained to a size less than or equal to a fragment size limit defined as a fragment size unit times a fragment size scaling factor; any remainder of the first payload is used to create at least the second fragments of the second fragment size, the second fragment size also being constrained to a size less than or equal to the fragment size limit; This is done until all of the first payload has been sliced into fragments; The method according to claim 1 or 2, implemented as follows:
4. The fragment size unit is At least bytes (B); Protocol Data Unit (PDU); TCP Maximum Segment Size (TCP MSS); The product of the TCP MSS and the TCP window (TCP W); TCP Window Scale (WS) to the power of 2; The method of claim 3 , wherein the value of the parameter is selected to be equal to at least one of:
5. at least, a communication channel packet loss probability from among a plurality of communication channel packet loss probabilities; - an expected fragment transfer time from among multiple expected fragment transfer times; a percentile of the expected fragment transfer time among multiple percentiles of the expected fragment transfer time; 5. The method of claim 3, wherein the fragment size scaling factor is determined from among a plurality of fragment size scaling factors by selecting input parameters for an analytical solution or a lookup table index for an empirical solution, such that:
6. The method of claim 5 , wherein the percentiles of the expected fragment transit times are represented by empirically approximated or analytically derived percentiles of a Gamma distribution or a Poisson distribution.
7. The first communication channel and the second communication channel each include: A communication channel via raw sockets; - A communication channel via TCP sockets; A communication channel via UDP sockets; 7. The method of claim 1, wherein the nucleotides are individually selected from the group consisting of:
8. 8. The method of claim 1, wherein the first payload is reconstructed from the first fragment based on the first fragment metadata using the first fragment delimiter, the first data intra payload identifier fragment, and the first data fragment, and from the second fragment based on the second fragment metadata using the second fragment delimiter, the second data intra payload identifier fragment, and the second data fragment.
9. The fragment size limit defines a communication channel receive buffer size as: raw socket receive buffer; TCP socket receive buffer; UDP socket receive buffer; The method according to any one of claims 1 to 8, wherein the method is used to determine as at least one from the group of:
10. 10. The method of claim 9, wherein the communication channel receive buffer size is set to a size greater than or equal to the fragment size limit and less than or equal to a bandwidth-delay product divided by the number of simultaneous communication channels.
11. 11. The method of claim 1, wherein a percentile of expected fragment transfer times complemented to one is used to determine a payload forward error correction factor, and the payload forward error correction factor is used to create a first data error correction data payload based on the first payload, the first fragment metadata is corrected with the first data error correction data payload, and the second fragment metadata is also corrected with the first data error correction data payload.
12. the first payload is reconstructed from the first fragment based on the first fragment metadata using the first fragment delimiter, the first data intra-payload identifier fragment, the first data fragment, and the first data error correction data payload; or the first payload is reconstructed from the second fragment based on the second fragment metadata using the second fragment delimiter, the second data intra-payload identifier fragment, the second data fragment, and the first data error correction data payload. The method of claim 11.
13. The method of claim 1 , wherein the first payload is associated with a first payload data identifier that is amended to the first fragment metadata and the second fragment metadata.
14. 14. The method of claim 13, wherein the first payload is obtained from among a plurality of payloads of data, and the first payload is reconstructed using the first payload data identifier when the first payload is obtained from among the plurality of payloads.
15. 15. The method of claim 14, wherein the first payload of the plurality of payloads is part of a payload sequence of data, and the first payload is reconstructed using the first payload data identifier if the first payload is part of the payload sequence.
16. 16. The method of claim 14 or 15, further comprising maintaining the first communication channel and the second communication channel for reuse of the first communication channel and the second communication channel between the transmitting device and the receiving device for the plurality of payloads or the payload sequence and for fragments corresponding to the plurality of payloads or the payload sequence after a channel reusability time interval.
17. a communication channel packet loss probability from among a plurality of communication channel packet loss probabilities; - the fragment size scaling factor from among a plurality of fragment size scaling factors; a percentile of the expected fragment transfer time among multiple percentiles of the expected fragment transfer time; 17. The method of claim 16, wherein the channel reusable time interval is determined from among a plurality of channel reusable time intervals by selecting input parameters for an analytical solution or an index of a lookup table for an empirical solution, such that:
18. The method of claim 1 , wherein the expected fragment transfer time is expressed in units of at least one of round-trip time or units normalized to a multiple of round-trip time.
19. The fragment size scaling factor is A communication channel via raw sockets; - A communication channel via TCP sockets; A communication channel via UDP sockets; 19. The method according to claim 1, wherein the method is used for each congestion control individually selected from the group of