US6081907A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Data delivery system and method for delivering data and redundant information over a unidirectional network
Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-06-09
•
Granted: 2000-06-27
•
Expires: 2017-06-09
Abstract
Abstract A data delivery system facilitates transmission of data packets from a content server to multiple clients over a unidirectional network. A redundancy formatter resident at the server groups multiple data packets into a redundancy group and generates at least one redundancy packet containing redundancy information derived from the data packets in the redundancy group. The data packets and redundancy packet are sent over the unidirectional network to the client. In the event that a packet is lost, a packet rebuilder resident at each client reconstructs the missing data packet from the successfully transmitted data packets in the redundancy group and the redundancy packet for the redundancy group.
Inventors
- 👤 Carl R. Witty
- 👤 Kenneth J. Birdwell
- 👤 James Randall Sargent
- 👤 Brian Moran
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-01 03:36
CPC Classifications
H; H04; H04L; H04L12/00; H04L12/02; H04L12/16; H04L12/18; H04L12/1863; H04L12/1877; H04L1/00; H04L1/004; H04L1/0041; H04L12/189
Claims Analysis
Total Claims: 41
Claim 1
Independent Claim
53 words
A method for sending data packets over a unidirectional network, comprising the following steps: grouping multiple data packets into a redundancy group; forming at least one redundancy packet containing redundancy information generated from the data packets in the redundancy group; and sending the data packets and the redundancy packet over the unidirectional network.
Claim 2
Independent Claim
53 words
A method for sending data packets over a unidirectional network, comprising the following steps: grouping multiple data packets into a redundancy group; forming at least one redundancy packet containing redundancy information generated from the data packets in the redundancy group; and sending the data packets and the redundancy packet over the unidirectional network.
Claim 3
Dependent Claim
65 words
A method as recited in claim 1, wherein each data packet has multiple bytes, and further comprising the step of generating the redundancy packet to include multiple bytes which correspond to the multiple bytes of the data packets, each byte in the redundancy packet containing redundancy information that is computationally derived from the corresponding bytes in each of the data packets within the redundancy group.
Claim 4
Dependent Claim
70 words
A method as recited in claim 1, wherein each data packet has multiple bytes, and further comprising the step of generating the redundancy packet to include multiple bytes which correspond to the multiple bytes of the data packets, each byte in the redundancy packet containing redundancy information that is computationally derived according to an XOR function of the corresponding bytes in each of the data packets within the redundancy group.
Claim 5
Dependent Claim
36 words
A method as recited in claim 1, further comprising the step of assigning a redundancy group identifier to every data packet within the redundancy group to identify the data packets as belonging to the redundancy group.
Claim 6
Dependent Claim
25 words
A method as recited in claim 1, further comprising the step of assigning a unique packet identifier to each data packet within the redundancy group.
Claim 7
Dependent Claim
32 words
A method as recited in claim 1, further comprising the step of assigning a content identifier to each data packet to identify the data packet as belonging to a particular data transmission.
Claim 8
Dependent Claim
36 words
A method as recited in claim 1, further comprising the following steps: receiving the data packets and redundancy packet; reconstructing any data packet from the redundancy group using the received data packets and the redundancy packet.
Claim 9
Dependent Claim
49 words
A method as recited in claim 1, further comprising the following steps: forming multiple redundancy groups, each redundancy group having multiple data packets and at least one redundancy packet; interleaving data packets from different ones of the redundancy groups prior to sending the data packets over the unidirectional network.
Claim 10
Dependent Claim
18 words
A computer-readable medium having computer-executable instructions for performing the steps of the method as recited in claim 1.
Claim 11
Dependent Claim
15 words
A computer programmed to perform the steps of the method as recited in claim 1.
Claim 12
Independent Claim
144 words
A method for serving multiple data packets for a data transmission over a unidirectional network, comprising the following steps: assigning a content identifier to each data packet to identify the data packet as belonging to the data transmission; assigning a unique packet identifier to each data packet; grouping the data packets into multiple redundancy groups, each redundancy group having multiple data packets; assigning a redundancy group identifier to every data packet within a particular redundancy group to identify the data packets as belonging to the particular redundancy group; forming at least one redundancy packet for associated ones of the redundancy groups, the redundancy packet containing redundancy information generated from the data packets in the associated redundancy group; and assigning a redundancy group count to each data packet within the particular redundancy group to represent a total number of packets within the particular redundancy group.
Claim 13
Independent Claim
144 words
A method for serving multiple data packets for a data transmission over a unidirectional network, comprising the following steps: assigning a content identifier to each data packet to identify the data packet as belonging to the data transmission; assigning a unique packet identifier to each data packet; grouping the data packets into multiple redundancy groups, each redundancy group having multiple data packets; assigning a redundancy group identifier to every data packet within a particular redundancy group to identify the data packets as belonging to the particular redundancy group; forming at least one redundancy packet for associated ones of the redundancy groups, the redundancy packet containing redundancy information generated from the data packets in the associated redundancy group; and assigning a redundancy group count to each data packet within the particular redundancy group to represent a total number of packets within the particular redundancy group.
Claim 14
Dependent Claim
73 words
A method as recited in claim 11, wherein each data packet has multiple bytes, and further comprising the step of generating the redundancy packet for each redundancy group to include multiple bytes which correspond to the multiple bytes of the data packets in the redundancy group, each byte in the redundancy packet containing redundancy information that is computationally derived from the corresponding bytes in each of the data packets within the redundancy group.
Claim 15
Dependent Claim
78 words
A method as recited in claim 11, wherein each data packet has multiple bytes, and further comprising the step of generating the redundancy packet for each redundancy group to include multiple bytes which correspond to the multiple bytes of the data packets in the redundancy group, each byte in the redundancy packet containing redundancy information that is computationally derived according to an XOR function of the corresponding bytes in each of the data packets within the redundancy group.
Claim 16
Dependent Claim
24 words
A method as recited in claim 11, further comprising the step of sending the data packets and the redundancy packets over the unidirectional network.
Claim 17
Dependent Claim
37 words
A method as recited in claim 11, further comprising the following steps: interleaving data packets from different ones of the redundancy groups; and sending the interleaved data packets along with the redundancy packets over the unidirectional network.
Claim 18
Dependent Claim
18 words
A computer-readable medium having computer-executable instructions for performing the steps of the method as recited in claim 11.
Claim 19
Dependent Claim
15 words
A computer programmed to perform the steps of the method as recited in claim 11.
Claim 20
Independent Claim
132 words
A method for handling data packets transmitted over a unidirectional network, comprising the following steps: receiving data packets carried over the unidirectional network, the data packets belonging to various redundancy groups; receiving redundancy packets carried over the unidirectional network, the redundancy packets belonging to the various redundancy groups and containing redundancy information generated from the data packets in associated redundancy groups; gathering the data packets and the redundancy packets into respective ones of the redundancy groups; checking each redundancy group to determine if any of the data packets are missing; and in an event that a particular data packet is missing from a particular redundancy group, reconstructing the particular data packet from remaining ones of the data packets in the particular redundancy group and the redundancy packet for the particular redundancy group.
Claim 21
Independent Claim
132 words
A method for handling data packets transmitted over a unidirectional network, comprising the following steps: receiving data packets carried over the unidirectional network, the data packets belonging to various redundancy groups; receiving redundancy packets carried over the unidirectional network, the redundancy packets belonging to the various redundancy groups and containing redundancy information generated from the data packets in associated redundancy groups; gathering the data packets and the redundancy packets into respective ones of the redundancy groups; checking each redundancy group to determine if any of the data packets are missing; and in an event that a particular data packet is missing from a particular redundancy group, reconstructing the particular data packet from remaining ones of the data packets in the particular redundancy group and the redundancy packet for the particular redundancy group.
Claim 22
Dependent Claim
48 words
A method as recited in claim 18, wherein each data packet has a redundancy group identifier to identify the data packet as belonging to one of the redundancy groups, and said gathering step comprises gathering the data packets with like redundancy group identifiers to form the redundancy groups.
Claim 23
Dependent Claim
83 words
A method as recited in claim 18, wherein each data packet has a redundancy group count to represent a total number of packets contained within the redundancy group to which the data packet belongs, and said checking step comprises the step of detecting whether any data packet is missing from the particular redundancy group by comparing the redundancy group count in one of the data packets within the particular redundancy group with an actual number of packets gathered for the particular redundancy group.
Claim 24
Dependent Claim
33 words
A method as recited in claim 18, wherein each data packet has a unique packet identifier, and further comprising the step of determining which data packet is missing from the particular redundancy group.
Claim 25
Dependent Claim
74 words
A method as recited in claim 18, wherein each data packet and each redundancy packet has multiple bytes arranged in predefined positions so that byte positions within the redundancy packet correspond to byte positions within the data packet, and said reconstructing step comprises computationally deriving bytes in the particular data packet that is missing from the corresponding bytes in each of the remaining data packets and the redundancy packet within the particular redundancy group.
Claim 26
Dependent Claim
75 words
A method as recited in claim 18, wherein each data packet and each redundancy packet has multiple bytes arranged in predefined locations so that byte positions within the redundancy packet correspond to byte positions within the data packet, and said reconstructing step comprises XORing the corresponding bytes in each of the remaining data packets and the redundancy packet within the particular redundancy group to regenerate the bytes in the particular data packet that is missing.
Claim 27
Dependent Claim
18 words
A computer-readable medium having computer-executable instructions for performing the steps of the method as recited in claim 18.
Claim 28
Dependent Claim
15 words
A computer programmed to perform the steps of the method as recited in claim 18.
Claim 29
Dependent Claim
118 words
In a data delivery system for sending data packets from a server to a client over a unidirectional network, the client and the server each having a computer-readable medium, the computer-readable media on the server and the client having computer-executable instructions for performing steps comprising: grouping multiple data packets into a redundancy group at the server; generating at least one redundancy packet containing redundancy information derived from the data packets in the redundancy group; sending the data packets and the redundancy packet over the unidirectional network; and reconstructing at the client any data packet missing from the redundancy group using remaining ones of the data packets in the redundancy group and the redundancy packet for the redundancy group.
Claim 30
Dependent Claim
118 words
In a data delivery system for sending data packets from a server to a client over a unidirectional network, the client and the server each having a computer-readable medium, the computer-readable media on the server and the client having computer-executable instructions for performing steps comprising: grouping multiple data packets into a redundancy group at the server; generating at least one redundancy packet containing redundancy information derived from the data packets in the redundancy group; sending the data packets and the redundancy packet over the unidirectional network; and reconstructing at the client any data packet missing from the redundancy group using remaining ones of the data packets in the redundancy group and the redundancy packet for the redundancy group.
Claim 31
Dependent Claim
59 words
Computer-readable media having computer-executable instructions as recited in claim 26, further comprising computer-executable instructions to perform steps of forming multiple redundancy groups, each redundancy group having multiple data packets and at least one redundancy packet, and interleaving data packets from different ones of the redundancy groups at the server prior to sending the data packets over the unidirectional network.
Claim 32
Dependent Claim
95 words
A data delivery system for sending data packets from a server to a client over a unidirectional network, comprising: a redundancy formatter located at the server, the redundancy formatter grouping multiple data packets into a redundancy group and generating at least one redundancy packet containing redundancy information derived from the data packets in the redundancy group; and a packet rebuilder located at the client, the packet rebuilder reconstructing any data packet missing from the redundancy group using remaining ones of the data packets in the redundancy group and the redundancy packet for the redundancy group.
Claim 33
Dependent Claim
95 words
A data delivery system for sending data packets from a server to a client over a unidirectional network, comprising: a redundancy formatter located at the server, the redundancy formatter grouping multiple data packets into a redundancy group and generating at least one redundancy packet containing redundancy information derived from the data packets in the redundancy group; and a packet rebuilder located at the client, the packet rebuilder reconstructing any data packet missing from the redundancy group using remaining ones of the data packets in the redundancy group and the redundancy packet for the redundancy group.
Claim 34
Dependent Claim
71 words
A data delivery system as recited in claim 28, wherein each data packet has multiple bytes at predefined positions within the packet, the redundancy formatter generating the redundancy packet to include multiple bytes which correspond in position to the bytes of the data packets, each byte in the redundancy packet containing redundancy information that is computationally derived from the corresponding bytes in each of the data packets within the redundancy group.
Claim 35
Dependent Claim
76 words
A data delivery system as recited in claim 28, wherein each data packet has multiple bytes at predefined positions within the packet, the redundancy formatter generating the redundancy packet to include multiple bytes which correspond in position to the bytes of the data packets, each byte in the redundancy packet containing redundancy information that is computationally derived according to an XOR function of the corresponding bytes in each of the data packets within the redundancy group.
Claim 36
Dependent Claim
29 words
A data delivery system as recited in claim 28, wherein each data packet comprises a redundancy group identifier to identify the data packet as belonging to the redundancy group.
Claim 37
Dependent Claim
18 words
A data delivery system as recited in claim 28, wherein each data packet comprises a unique packet identifier.
Claim 38
Dependent Claim
29 words
A data delivery system as recited in claim 28, wherein each data packet comprises a content identifier to identify the data packet as belonging to a particular data transmission.
Claim 39
Dependent Claim
54 words
A data delivery system as recited in claim 28, wherein the redundancy formatter forms multiple redundancy groups, with each redundancy group having multiple data packets and at least one redundancy packet, the redundancy formatter interleaving data packets from different ones of the redundancy groups prior to transmission over the unidirectional network to the client.
Claim 40
Dependent Claim
144 words
A computer-readable memory having a packet structure for a data packet to be carried by a unidirectional network as part of a data transmission, the data packet belonging to a group of data packets, the network packet structure comprising: a header comprising: a packet identifier field to uniquely identify the data packet; a content identifier field to uniquely identify the data packet as belonging to a particular data transmission; a redundancy group identifier field to identify the packet as belonging to a redundancy group of data packets, the redundancy group comprising multiple data packets and at least one redundancy packet derived from the data packets; a redundancy group count to represent a total number of the packets contained within the redundancy group to which the data packet belongs; and a data payload joined to the header to hold the data of the data packet.
Claim 41
Dependent Claim
144 words
A computer-readable memory having a packet structure for a data packet to be carried by a unidirectional network as part of a data transmission, the data packet belonging to a group of data packets, the network packet structure comprising: a header comprising: a packet identifier field to uniquely identify the data packet; a content identifier field to uniquely identify the data packet as belonging to a particular data transmission; a redundancy group identifier field to identify the packet as belonging to a redundancy group of data packets, the redundancy group comprising multiple data packets and at least one redundancy packet derived from the data packets; a redundancy group count to represent a total number of the packets contained within the redundancy group to which the data packet belongs; and a data payload joined to the header to hold the data of the data packet.
References Cited (Backward Citations)
US5335277A
Cited
US4769818A
Cited
US5359367A
Cited
US5684807A
Cited
US5565909A
Cited
US5627829A
Cited
US5809543A
Cited
US5625864A
Cited
US5666293A
Cited
US5727065A
Cited
US5559808A
Cited
US5859852A
Cited
US5706048A
Cited
US5650831A
Cited
US5778187A
Cited
US5727865A
Cited
US5854897A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2003-06-27 | 2003-12-27 | 2004-06-27 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2007-06-27 | 2007-12-27 | 2008-06-27 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2011-06-27 | 2011-12-27 | 2012-06-27 | $7700.00 | Window Closed / Lapsed |