← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag