Frame protocol and scheduling system
First Claim
1. A computer-readable medium having a data structure stored thereon for use in communicating transmission frames from a server device to a client device, the data structure comprising:
- a frame header packet that is located in a predetermined slot of a current transmission frame, wherein the frame header packet includes a table of contents locations definition field;
a table of content packet that is located in a flexible slot location of the current transmission frame, wherein the flexible slot location is determined by an entry in the table of contents locations definition field of the frame header, wherein the table of contents packet identifies shared data streams that are located in a subsequent transmission frame; and
a packet that is located in another flexible slot location of the current transmission frame, wherein the packet is associated with an entry in another table of contents packet from a previous transmission frame, wherein each table of contents packet is a forward-looking index that indexes packets in subsequent transmission frames.
2 Assignments
0 Petitions
Accused Products
Abstract
Serialized data from broadcast services is provided to a broadcast server for transmitting to one or more client devices. The serialized data may correspond to shared data, private data, or control data. Data is scheduled for transmission based on weighted priorities including quality of service metrics. The transmission frame is arranged according to a frame protocol that includes provisions for a table of contents indexing system for the shared data. Packets of shared data are formatted based on criteria that is known by the particular broadcast service and corresponding application that is resident on the client device. The client device receives the table of contents at the transport layer, and notifies applications of data that will be available in the next frame. Applications submit prioritized requests to the transport layer, requesting data in the next frame. Data is retrieved by the transport layer, and deserialized by handlers for each application.
270 Citations
70 Claims
-
1. A computer-readable medium having a data structure stored thereon for use in communicating transmission frames from a server device to a client device, the data structure comprising:
-
a frame header packet that is located in a predetermined slot of a current transmission frame, wherein the frame header packet includes a table of contents locations definition field;
a table of content packet that is located in a flexible slot location of the current transmission frame, wherein the flexible slot location is determined by an entry in the table of contents locations definition field of the frame header, wherein the table of contents packet identifies shared data streams that are located in a subsequent transmission frame; and
a packet that is located in another flexible slot location of the current transmission frame, wherein the packet is associated with an entry in another table of contents packet from a previous transmission frame, wherein each table of contents packet is a forward-looking index that indexes packets in subsequent transmission frames. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer-readable medium having a data structure stored thereon for use in communicating transmission frames from a server device to a client, the data structure comprising:
- logical packets that are identified with a corresponding slot in the transmission frame, wherein the logical packets are divided into partitions, wherein the client is pseudo-randomly assigned to slots, wherein each slot is pseudo-randomly assigned to the partitions, and wherein a logical packet that is associated with one of the pseudo-randomly assigned slots includes at least a portion of a private message for the client.
- View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
-
33. A method for scheduling frame transmissions from a server to a client device, comprising:
-
selecting packets from a list of candidates for a subsequent transmission frame;
describing the selected packets in a table of contents for the next transmission frame;
assigning the table of contents for the next transmission frame to a slot in the current transmission frame;
assembling packets in the current transmission frame according to previous slot allocations from a previous table of contents, and the assigned slot for the table of contents for the next transmission frame; and
assembling a frame header for the current transmission frame, wherein the header frame references the location for the table of contents in the current transmission frame.
-
-
34. A method for scheduling frame transmissions from a server to a client device, comprising:
-
receiving a request for a transmission slot, wherein the request includes a number of packets;
allocating a slot for the next transmission frame based on the requested transmission slot;
creating a table of contents for the next transmission based on the allocated slots;
assigning the table of contents for the next transmission frame to a slot in the current transmission frame;
assembling packets in the current transmission frame according to previous slot allocations from a previous table of contents, and the assigned slot for the table of contents for the next transmission frame; and
assembling a frame header for the current transmission frame, wherein the header frame references the location for the table of contents in the current transmission frame.
-
-
35. A method for scheduling frame transmissions from a server to a client device, comprising:
-
sending a request to a shared data service handler for needs, wherein the shared data service handler is associated with a registered broadcast service;
receiving needs from the shared data service handler in response to the request, wherein each need requested by the shared data service handler includes a requested priority level and a requested allocation of packets for a transmission slot;
prioritizing the needs that are received from the shared data service handler;
allocating slots for the next transmission frame based on the prioritized needs;
creating a table of contents for the next transmission based on the allocated slots;
requesting packets from the shared data service handler for the current transmission frame;
receiving packets from the shared data service handler for the current transmission frame, wherein the received packets are associated with a previous table of contents from a previous transmission frame;
assigning the table of contents for the next transmission to an unused slot in the current transmission frame;
assembling packets in the current transmission frame according to previous slot allocations from a previous table of contents, and the assigned slot for the table of contents for the next transmission frame; and
assembling a frame header for the current transmission frame, wherein the header frame references the location for the table of contents in the current transmission frame. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
-
-
50. A method for scheduling retrieval of data on a client device, comprising:
-
extracting a table of contents from a current transmission frame;
identifying an entry in the table of contents with a registered application;
retrieving packets that are identified with slots in a subsequent transmission frame;
assembling a message from the retrieved packets; and
forwarding a completed message to an application on the client device when the message is assembled.
-
-
51. A method for scheduling retrieval of data on a client device, comprising:
-
extracting a table of contents from a current transmission frame;
identifying an entry in the table of contents with a registered application;
sending a request to the registered applications that is associated with the entry in the table of contents;
receiving a data request from the application, wherein the data request includes a requested priority level;
sorting the data requests based on priority level;
requesting highest priority packets from a network layer, wherein the highest priority packets are identified with slots in a subsequent transmission frame;
receiving packets from the network layer that are associated with the subsequent transmission frame;
forwarding the received packets to the handler for the registered application;
assembling a message from the received packets with the handler for the registered application; and
forwarding a completed message from the handler to the application when the message is assembled. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
-
67. A method for scheduling retrieval of private data on a client device, comprising:
-
retrieving a frame header from a current transmission frame;
extracting a frame number from the frame header, wherein the frame number for a subsequent transmission frame is different from the frame number for the current transmission frame;
identifying a subscriber ID for the client device;
determining a private message slot assignment for the client device with the frame number and the subscriber ID;
receiving a logical packet from the private message slot assignment in the transmission frame; and
authenticating the logical packet;
forwarding an authenticated logical packet to an application handler on the client device. - View Dependent Claims (68, 69, 70)
-
Specification