EP4070488A1 - Packetized data communication over multiple unreliable channels - Google Patents
Packetized data communication over multiple unreliable channelsInfo
- Publication number
- EP4070488A1 EP4070488A1 EP20895628.4A EP20895628A EP4070488A1 EP 4070488 A1 EP4070488 A1 EP 4070488A1 EP 20895628 A EP20895628 A EP 20895628A EP 4070488 A1 EP4070488 A1 EP 4070488A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data packet
- bit stream
- network
- serial bit
- duplicates
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims description 37
- 238000000034 method Methods 0.000 claims abstract description 53
- 239000011159 matrix material Substances 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 19
- 230000010267 cellular communication Effects 0.000 claims description 6
- 238000010295 mobile communication Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000015654 memory Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 108091035707 Consensus sequence Proteins 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000002864 sequence alignment Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000010963 scalable process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/02—Arrangements for detecting or preventing errors in the information received by diversity reception
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/20—Arrangements for detecting or preventing errors in the information received using signal quality detector
- H04L1/201—Frame classification, e.g. bad, good or erased
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/001—Synchronization between nodes
- H04W56/002—Mutual synchronization
Definitions
- the present invention relates generally to data communication. More specifically, the present invention relates to using several unreliable communication channels for communicating data.
- a packetized network or channel may relate to dividing content to be sent into packets or messages, sending the packets or messages and reconstructing the content, by the receiving end, based on the packets.
- FEC forward error correction
- a method comprising: receiving a plurality of duplicates of a serial bit stream, wherein said serial bit stream comprises a sequence of data packets; continuously dividing each of said duplicates of said serial bit stream based on sequential time windows; with respect to each of said time windows, aligning said data packets associated with each of said duplicates of said serial bit stream, received within said time window, based, at least in part, on data packet similarity; and recreating in real time said serial bit stream by selecting at least one of said aligned data packets as representing a next data packet in said sequence of data packets.
- a system comprising at least one hardware processor; and a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by said at least one hardware processor to: receive a plurality of duplicates of a serial bit stream, wherein said serial bit stream comprises a sequence of data packets, continuously divide each of said duplicates of said serial bit stream based on sequential time windows, with respect to each of said time windows, align said data packets associated with each of said duplicates of said serial bit stream, received within said time window, based, at least in part, on data packet similarity, and recreate in real time said serial bit stream by selecting at least one of said aligned data packets as representing a next data packet in said sequence of data packets.
- a computer program product comprising a non-transitory computer-readable storage medium having program instructions embodied therewith, the program instructions executable by at least one hardware processor to: receive a plurality of duplicates of a serial bit stream, wherein said serial bit stream comprises a sequence of data packets; continuously divide each of said duplicates of said serial bit stream based on sequential time windows; with respect to each of said time windows, align said data packets associated with each of said duplicates of said serial bit stream, received within said time window, based, at least in part, on data packet similarity; and recreate in real time said serial bit stream by selecting at least one of said aligned data packets as representing a next data packet in said sequence of data packets.
- each of said plurality of duplicates of said serial bit stream is transmitted over a different communication channel selected from the group consisting of: a private IP network, a public IP network, the internet, a global system for mobile communications (GSM) network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless network, a satellite communication network, a cellular communication network, a Bluetooth communication channel, and a Wi-Fi network.
- GSM global system for mobile communications
- LAN local area network
- MAN metropolitan area network
- WAN wide area network
- wireless network a satellite communication network
- satellite communication network a cellular communication network
- Bluetooth communication channel a Wi-Fi network
- each of the plurality of duplicates of said serial bit stream is transmitted over a different communication channel.
- each of the communication channels is selected from the group consisting of: a private IP network, a public IP network, the internet, a global system for mobile communications (GSM) network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless network, a satellite communication network, a cellular communication network, a Bluetooth communication channel, and a Wi-Fi network.
- GSM global system for mobile communications
- LAN local area network
- MAN metropolitan area network
- WAN wide area network
- wireless network a satellite communication network
- cellular communication network a cellular communication network
- Bluetooth communication channel a Wi-Fi network
- the aligning comprises arranging said data packets, received within a time window, in columns of an alignment score matrix, based, at least in part, on said data packet similarity, wherein each row in said matrix represents one of said duplicates of said serial bit stream.
- the method further comprises assigning, and the program instructions are further executable to assign, an alignment score to each of said columns based on one of data packet gaps and data packet mismatches in said column.
- the selecting is based, at least in part, on a consensus determined by data packet similarity of a majority of data packets in said column.
- the data packet similarity is determined based, at least in part, on a comparison of data packet content, wherein said data packet content is represented by a hash function.
- FIG. 1 shows a block diagram of a system according to illustrative embodiments of the present invention.
- FIG. 2 shows a flowchart of a method according to illustrative embodiments of the present invention.
- the terms “plurality” and “a plurality” as used herein may include, for example, “multiple” or “two or more”.
- the terms “plurality” or “a plurality” may be used throughout the specification to describe two or more components, devices, elements, units, parameters, or the like.
- the term set when used herein may include one or more items. [0025] Unless explicitly stated, the method embodiments described herein are not constrained to a particular order in time or to a chronological sequence. Additionally, some of the described method elements can occur, or be performed, simultaneously, at the same point in time, or concurrently. Some of the described method elements may be skipped, or they may be repeated, during a sequence of operations of a method.
- the present disclosure provides for streaming duplicated serialized data streams, e.g., in the form of data packets, from a sender, over two or more different communication routes or channels, and seamlessly reconstructing the data packets by a receiver from the duplicated received streams, to correct errors in any of the individual channels.
- the present disclosure may be particularly useful in the area of packetized video streaming, e.g., MPEG transport stream over a noisy and/or lossy network, such as the Internet. Accordingly, in some embodiments, the present disclosure may provide for live broadcast-quality video over the Internet, with robust hitless failover capabilities.
- the present disclosure provides for a simple, scalable process which can recover data even considering complete channel failures, and can be used with simple independent transmitting units without the need to modify the payload that they transmit.
- the multiple routes can be generated by replicated transmission channels over multiple communication channels.
- multiple routes can be generated through multiple receiving units listening to a single transmission over a broadcasting medium, for example using multiple wireless receiving stations at different locations tuned to the same source signal.
- error recovery may be achieved by aligning data packets received over the several communication channels based, e.g., on time windows, arrival time, content, and/or another and/or similar methods for defining and/or synching and/or aligning data packets.
- data packet alignment includes arranging packets received over several channels, such that identical or similar packets are aligned.
- data packet alignment may be performed using a sequence alignment algorithm, which selects the most likely sequence of source packets that best explains the observed packet sequences in the time window.
- sequence alignment is a way of arranging packet sequences in a matrix rows, with possible gaps between packets, in a way in which identical or similar packets are aligned in the matrix columns.
- packet alignment may be used to overcome packet loss in one or more of the channels. For example, if no packet is present (or represented) in a first stream, but is present or represented in one or more other streams, then a receiver may determine that the packet was lost in the first stream, and may select for inclusion a packet as represented by other streams. Accordingly, e.g., when aligned, the third packet received from a first channel will be aligned with the third packet received from a second channel. If the third packet is missing in another channel, then the receiver may determine that this packet was lost in that channel, and select one of the corresponding third packets for inclusion in the reconstructed stream.
- the alignment may be used to create a unified sequence that fills out gaps of missing packets with their corresponding existing packets in corresponding channels using the alignment, and by selecting consensus packets within a column in the presence of packet corruption.
- the alignment algorithm within a time window maximizes a scoring function that gives a penalty for having a gap in the alignment, and for having an imperfect match (e.g., due to packet corruption).
- the penalty for having a long gap may be lower than the penalty of having multiple short gaps, capturing typical correlation in consecutive packet loss events in IP networks.
- Fig. 1 illustrates an exemplary system 100 for real-time error recovery in data streaming, according to some embodiments of the present invention.
- data from a sender (or source) 110 may be sent, via network 130, over a number of communication channels 140 to receiver (or destination) 120.
- Sender 110 and receiver 120 may be any applicable computing device, e.g., a server, camera, smartphone or a home computer. It will be recognized that embodiments of the invention are not limited by the nature or type of sender or source 110 and/or by the nature or type of receiver or destination 120.
- Communication channels 140 may be physical channels or routes (e.g., a route can be, or can include, wires, routers and the like) or they may be logical channels or routes (e.g., user datagram protocol (UDP) connections) or they may be a combination of physical and logical channels.
- a route can be, or can include, wires, routers and the like
- logical channels or routes e.g., user datagram protocol (UDP) connections
- Network 130 may be, may comprise, or may be part of, a private or public IP network, or the internet, or a combination thereof. Additionally, or alternatively, network 130 may be, comprise or be part of, a global system for mobile communications (GSM) network.
- GSM global system for mobile communications
- network 130 may include or comprise an IP network such as the internet, a GSM related network and any equipment for bridging or otherwise connecting such networks as known in the art.
- Network 130 may be, may comprise or be part of a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireline or wireless network, a satellite communication network, a cellular communication network, any combination of the preceding and/or any other suitable communication means. Accordingly, numerous elements of network 130 (e.g., access points, base stations, communication satellites, GPS satellites, routers and telephone switches) are implied but not shown. It will be recognized that embodiments of the invention are not limited by the nature or type of network 130.
- An embodiment may provide error recovery by streaming, from a sender, data packets using two or more different routes or channels, and seamlessly reconstructing the data packets by a receiver.
- an original stream of packets (as sent by a sender, e.g., sender 110) is reconstructed by a receiver (e.g., receiver 120) based on multiple, duplicated received streams. It is noted that an embodiment can correctly reconstruct an original stream even when packet sequences numbers or other order information is not available.
- the multiple routes can either be replicated transmission, or multiple receiving units listening to a single transmission over a broadcasting medium, for example using multiple wireless receiving stations at different locations tuned to the same source signal.
- routes can be physical and/or logical routes.
- receiver 120 aligns packets according to time windows or time intervals. For example, streams of packets received from a plurality of channels in time intervals of, e.g., 50 milliseconds.
- packets received from, e.g., time interval 10:00:00:00 (HR:MIN:SEC:MILL) to 10:00:00:50 are aligned, then streams of packets received from the plurality of channels during time interval from 10:00:00:51 to 10:00:00: 100 are aligned and so on.
- Any technique or mechanism for defining and/or synching time and/or time slots, intervals or windows may be used. Aligning packets in time-limited windows allow reconstructing the stream continuously in real time (vs. offline), and it reduces the computational complexity. Based on an alignment, the receiver selects the sequence of packets that is most likely the original sequence, as sent by a sender.
- alignment includes arranging packets received over several channels in a matrix, wherein each channel streaming is represented in a matrix row, such that identical or similar packets are aligned in separate matrix columns. For example, when aligned, the third packet (in the current time window) received from a first channel 140 is in the same column as the third packet received from a second channel 140. If the same packet appears, e.g., in two separate rows (each representing a respective channel), but is missing in a third row (representing a third channel), then the receiver may determine that the packet was lost or dropped in the third channel, and one of the packets appearing in the two other rows may be selected for inclusion in a reconstructed stream.
- the actual content of the packets may be used in an alignment process.
- a hash or other function may be used to represent content of packets and an alignment may include checking whether or not packets in the same column have the same content, e.g., by comparing a hash value.
- a packet for inclusion in a reconstructed stream may be selected based on a majority of rows that include the same content of a packet.
- An embodiment may use alignment as described to overcome packet loss.
- a receiver may determine that the packet was lost or dropped in the first stream and may select for inclusion a packet as represented by other streams.
- a receiver may use a scoring function and/or a threshold in the alignment process. For example, having arranged packets in a matrix as described, a scoring function may calculate a value for a time window based on gaps and/or based on content mismatch. For example, a gap may be an absence of a packet in a column as described and a mismatch may be different content in same column as described. In some embodiments, a scoring function and/or a threshold are used to determine whether or not an alignment of a set of packets of a respective set of streams is achieved.
- Any scoring function, algorithm or logic may be used to align a set of packet sequences received from a respective set of streams or channels without departing from the scope of the invention. It will be understood that the specific algorithm discussed herein is just one example of an alignment algorithm that may be used.
- an alignment algorithm uses a packet similarity score for/when comparing the payload of two packets, and a score (or penalty) for inserting (or representing) a gap between packets.
- the similarity function depends on the likelihood or probability of the source packets being identical given the observed packets’ values, considering the probabilistic properties of the communication channel. For example, if the channels are erasure channels (dropped packets are possible, corrupted packets are not) the scoring function can be a scoring function returning 1 if the payloads of compared packets are identical, 0 when comparing packet and a gap (representing likelihood of packet loss), and minus infinity if the packets are dissimilar (representing likelihood of packet corruption impossibility).
- packet bit flips e.g., 0 becomes 1
- the packet similarity can depend on the Hamming distance between packet payloads, that is, how different is the payload of a first packet from the payload of a second packet.
- a simplified case of aligning two sequences of packets received from two streams is described herein.
- a method for aligning packet sequences and determining or identifying the original (source) packet sequence arranges the two sequences one above the other in a way that maximizes a score function for an alignment of the sequences using a dynamic programming approach.
- an initialization of matrix M as shown above includes the penalty of starting an alignment with a gap.
- the rest of the matrix cells are filled by selecting the maximal value between 3 previously calculated values as shown below:
- the first term calculates the score when matching packet 5 1 (i) to packet S 2 (j ), the second and third terms rely on previously calculated values, and represent the score when inserting a gap (dropped sequence of packets) of length x before S ⁇ ( i ) or S 2 ( j ) , respectively.
- each M irj cell in matrix M includes the optimal score of aligning subsets 5 1 (1. . i) with S 2 (l. . j) , and cell W
- constructing, identifying or choosing an alignment of packet sequences is done in reverse order, by backtracking the decisions that maximize the score at M ⁇ s Us ⁇ .
- a method described herein can be used for identifying a path that yields a maximal score for M.
- a method records or finds the previous or last chosen cell that maximized the score in cell (i,j). For efficiency, a pointer to the previous or last cell that led to the maximal score can be stored in matrix cells in the construction stage.
- the output of a backtracking process is two sequences of packets, one on top of the other, that may have gaps in some locations.
- Aligning 3 or more sequences can be done in a similar way using a higher dimension matrix. Some improvements may be contemplated, for example, a faster approximate alignment can be achieved by iteratively aligning pairs of sequences.
- the output of the alignment process described above is a consensus sequence between all sequences in the search window.
- a method selects the most likely packet by majority voting (or bitwise majority voting). As an example, assume packets are one byte long, and s, S ⁇ , S 2 and G x are as shown below:
- Back-tracking from the last cell requires moving to a cell above, to the left, or diagonally above and left, according to the path that maximizes the current cell score.
- the aligned sequences are generated from back to front and are as shown below:
- the penalty e.g., decreasing a value calculated as described
- the penalty may be lower than the penalty of having multiple short gaps, thus, for example, compensating for typical correlations in consecutive packet loss events in IP networks.
- a scoring function may decrease an initial value for each gap or mismatch identified and, if the resulting value is above a threshold then the receiver may determine that an adequate alignment has been achieved (and therefore the stream can be reconstructed for the relevant time window). If the value produced by the scoring function is below a threshold (e.g., due to many corrupted or lost packets) then the receiver may determine that the stream cannot be correctly reconstructed, and the receiver may take further action, e.g., request retransmission, choose one of the unaligned sequences, alert a user etc.
- a threshold e.g., due to many corrupted or lost packets
- the scoring functions may be automatically selected based on the type or attributes of channels 140. For example, a first set of factors and/or thresholds may be used for channels implemented over physical wires (e.g., where loss and corruption of packets are not likely) and a second set of factors and/or thresholds may be used for channels implemented over wireless infrastructure.
- a first set of factors and/or thresholds may be used for channels implemented over physical wires (e.g., where loss and corruption of packets are not likely) and a second set of factors and/or thresholds may be used for channels implemented over wireless infrastructure.
- a method may automatically selected based on the type or attributes of channels 140. For example, if channels 140 are known to be relatively reliable then a match of two or three columns may suffice for receiver 120 to determine a correct packet was found, however, if channels 140 are known to be unreliable then receiver 120 may require four or five matching packets. Accordingly, an embodiment may automatically adjust or select a logic for reconstructing streams based on attributes of the communication channels used.
- the sender and receiver may automatically revert to using only 2 channels. If corruption of packets is possible then the sender and receiver may automatically select to use 3 channels. Accordingly, the number of channels 140 may be automatically selected.
- Fig. 2 a flowchart of a method according to illustrative embodiments of the present invention.
- the same content may be sent over a plurality of communication channels.
- content obtained from a video camera may be divided into packets and each of the packets may be sent over several network connections.
- packets received may be aligned.
- receiver 120 receives packets over a number of channels 140, arranges the received packets in a matrix and performs shifts or other operations until an optimal alignment is achieved.
- aligning may include simply arranging or placing packets in a matrix as described and determining a level of alignment exhibited by the packets.
- content sent over the channels as described may be reconstructed based on the alignment. For example, packets to be included in a reconstructed stream may be selected based on an alignment of packets in a matrix as described.
- aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit, " "module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
- the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
- a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro magnetic, optical, or any suitable combination thereof.
- a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
- Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
- Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object- oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
- These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration can be implemented by special purpose hardware -based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Time-Division Multiplex Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/699,786 US11546615B2 (en) | 2018-03-22 | 2019-12-02 | Packetized data communication over multiple unreliable channels |
PCT/IB2020/061382 WO2021111329A1 (en) | 2019-12-02 | 2020-12-02 | Packetized data communication over multiple unreliable channels |
Publications (2)
Publication Number | Publication Date |
---|---|
EP4070488A1 true EP4070488A1 (en) | 2022-10-12 |
EP4070488A4 EP4070488A4 (en) | 2024-01-03 |
Family
ID=76221036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP20895628.4A Pending EP4070488A4 (en) | 2019-12-02 | 2020-12-02 | Packetized data communication over multiple unreliable channels |
Country Status (9)
Country | Link |
---|---|
EP (1) | EP4070488A4 (en) |
JP (1) | JP2023508744A (en) |
KR (1) | KR20220136343A (en) |
CN (1) | CN115023928B (en) |
AU (1) | AU2020396439A1 (en) |
BR (1) | BR112022010854A2 (en) |
CA (1) | CA3160355A1 (en) |
IL (1) | IL293533A (en) |
WO (1) | WO2021111329A1 (en) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7801132B2 (en) * | 1999-11-09 | 2010-09-21 | Synchrodyne Networks, Inc. | Interface system and methodology having scheduled connection responsive to common time reference |
JP4068545B2 (en) | 2003-10-24 | 2008-03-26 | 日本電信電話株式会社 | Packet receiving method and apparatus |
US7729256B2 (en) | 2004-07-14 | 2010-06-01 | Opnet Technologies, Inc. | Correlating packets |
US20070091928A1 (en) * | 2005-10-21 | 2007-04-26 | Wee Susie J | Serial and parallel processing of data using information about the data and information about a streaming network |
US7707349B1 (en) * | 2006-06-26 | 2010-04-27 | Marvell International Ltd. | USB isochronous data transfer for a host based laser printer |
US7852792B2 (en) * | 2006-09-19 | 2010-12-14 | Alcatel-Lucent Usa Inc. | Packet based echo cancellation and suppression |
US8036248B2 (en) * | 2008-10-29 | 2011-10-11 | Silicon Image, Inc. | Method, apparatus, and system for automatic data aligner for multiple serial receivers |
US8873557B2 (en) | 2011-04-08 | 2014-10-28 | Gigamon Inc. | Systems and methods for packet de-duplication |
US20140269359A1 (en) * | 2013-03-14 | 2014-09-18 | Google Inc. | Reduction of retransmission latency by combining pacing and forward error correction |
US9860614B2 (en) * | 2015-05-13 | 2018-01-02 | Huawei Technologies Co., Ltd. | System and method for hybrid photonic electronic switching |
WO2019213898A1 (en) | 2018-05-10 | 2019-11-14 | Apple Inc. | Synchronization control for packet data convergence protocol (pdcp) duplicate transmissions |
-
2020
- 2020-12-02 IL IL293533A patent/IL293533A/en unknown
- 2020-12-02 WO PCT/IB2020/061382 patent/WO2021111329A1/en unknown
- 2020-12-02 EP EP20895628.4A patent/EP4070488A4/en active Pending
- 2020-12-02 JP JP2022546436A patent/JP2023508744A/en active Pending
- 2020-12-02 KR KR1020227021739A patent/KR20220136343A/en unknown
- 2020-12-02 AU AU2020396439A patent/AU2020396439A1/en active Pending
- 2020-12-02 BR BR112022010854A patent/BR112022010854A2/en unknown
- 2020-12-02 CN CN202080095139.2A patent/CN115023928B/en active Active
- 2020-12-02 CA CA3160355A patent/CA3160355A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN115023928A (en) | 2022-09-06 |
JP2023508744A (en) | 2023-03-03 |
IL293533A (en) | 2022-08-01 |
BR112022010854A2 (en) | 2022-08-23 |
WO2021111329A1 (en) | 2021-06-10 |
EP4070488A4 (en) | 2024-01-03 |
AU2020396439A1 (en) | 2022-06-30 |
KR20220136343A (en) | 2022-10-07 |
CN115023928B (en) | 2024-02-23 |
CA3160355A1 (en) | 2021-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100598662B1 (en) | Lost packet recovery method for packet transmission protocols | |
KR102133930B1 (en) | Apparatus and method for transmitting and receiving data packet | |
KR101143282B1 (en) | Systematic encoding and decoding of chain reaction codes | |
US20100050058A1 (en) | Method and device for transmitting and receiving data packets | |
US9048995B2 (en) | Method and system for low latency radio frequency wave transmission | |
CN108631873B (en) | Method and device for transmitting and receiving network management information, transmitting equipment and receiving equipment | |
CN113364559B (en) | Multipath-oriented data secure transmission method, device and system | |
US8321754B2 (en) | Method for transmitting multimedia data in ad hoc communication networks | |
CN112994839A (en) | Flexible Ethernet overhead multiframe receiving method, device, equipment and medium | |
US9548921B2 (en) | Compression of routing information exchanges | |
US10341049B2 (en) | Method and apparatus for performing a forward error correction (FEC) encoding or decoding in a multimedia system | |
US11546615B2 (en) | Packetized data communication over multiple unreliable channels | |
US9667756B2 (en) | Apparatus and method for transmitting/receiving data in communication system | |
AU2020396439A1 (en) | Packetized data communication over multiple unreliable channels | |
US8726133B2 (en) | Method for detecting return link packet error in hub which communicates with satellite terminal and apparatus thereof | |
CN105592135B (en) | Data redundancy eliminates DRE dictionary confirmation method and equipment | |
Cabrera et al. | Taking the trash back in: practical joint channel and network coding for improving ieee 802.11 networks | |
CN116347557A (en) | Low orbit satellite network routing method, control device and computer readable storage medium | |
US20100027563A1 (en) | Evolution codes (opportunistic erasure coding) platform | |
EP2449708A1 (en) | A method, apparatuses and service for media transmission | |
JP2017516346A (en) | Packet transmission / reception method and apparatus in communication system | |
US20210084123A1 (en) | Systems and methods for increasing reliability for media data distribution | |
KR102145285B1 (en) | Transmitting and receiving apparatus for providing a real-time image and a high-quality image | |
KR101808644B1 (en) | Method for detecting return link packet error in satellite communication systems | |
JP2005223682A (en) | Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20220630 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Free format text: PREVIOUS MAIN CLASS: H99Z9999999999 Ipc: H04L0001080000 |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 20231206 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 1/00 20060101ALI20231130BHEP Ipc: H04L 45/24 20220101ALI20231130BHEP Ipc: H04L 1/20 20060101ALI20231130BHEP Ipc: H04L 1/02 20060101ALI20231130BHEP Ipc: H04J 3/06 20060101ALI20231130BHEP Ipc: H04W 56/00 20090101ALI20231130BHEP Ipc: H04L 1/08 20060101AFI20231130BHEP |