Frame protocol and scheduling system
First Claim
1. A tangible computer-readable storage memory device having computer executable instructions stored thereon for formatting a data structure for use in communicating transmission frames from a server device to a client device, 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 packet, 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.
84 Citations
65 Claims
-
1. A tangible computer-readable storage memory device having computer executable instructions stored thereon for formatting a data structure for use in communicating transmission frames from a server device to a client device, 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 packet, 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. A tangible computer-readable storage memory device having computer executable instructions stored thereon for formatting a data structure for use in communicating transmission frames from a server device to a client device, 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; and
wherein the frame header packet further comprises;
a region definition field that includes a region ID, a code name, and a list of frequencies, wherein the region ID identifies the current broadcast region, the code name provides a description of the current broadcast region, and the list of frequencies corresponds to radio frequencies that are available in the current broadcast region;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 packet, 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.
-
-
25. A tangible computer-readable storage memory device having a computer executable program stored thereon for formatting a data structure for use in communicating transmission frames from a server device to a client, 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 a portion or all of a private message for the client;
wherein the packets include a frame header packet that is located in a predetermined slot, wherein the frame header packet includes a table of contents locations definition field, and wherein the packets include a table of contents packet that is located in a flexible slot location, wherein the flexible slot location is determined by an entry in the table of contents locations definition field. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
- 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 a portion or all of a private message for the client;
-
33. A method for scheduling frame transmissions from a server to a client device, comprising:
-
using a processor, sending a request to a shared data service handler for needs, wherein the shared data service handler is associated with a registered broadcast service; using the processor, 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; using the processor, prioritizing the needs that are received from the shared data service handler; using the processor, allocating slots for the next transmission frame based on the prioritized needs; using the processor, 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 (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A method for scheduling frame transmissions from a server to a client device, comprising:
-
using a processor, sending a request to a shared data service handler for needs, wherein the shared data service handler is associated with a registered broadcast service; using the processor, 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; using the processor, prioritizing the needs that are received from the shared data service handler; using the processor, allocating slots for the next transmission frame based on the prioritized needs; using the processor, creating a table of contents for the next transmission based on the allocated slots; using the processor, requesting packets from the shared data service handler for the current transmission frame; using the processor, 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; using the processor, assigning the table of contents for the next transmission to an unused slot in the current transmission frame; using the processor, 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; 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; assigning a value to a frame number field, wherein the value associated with the frame number field is different for successive frames; assigning a value to a time field, wherein the value associated with the time field is different for successive frames; and arranging a frame header that includes the frame number field, table of contents locator field, and time field, wherein the frame header corresponds to a packet in the frame transmission that always occurs at the same logical packet number.
-
-
47. A method for scheduling retrieval of data on a client device, comprising:
-
using a processor, identifying a frame header that includes a table of contents locations definition field; using the processor, locating a table of contents at a location described in the table of contents locations definition field of the frame header; using the processor, extracting the table of contents from a current transmission frame; using the processor, identifying an entry in the table of contents with a registered application; using the processor, 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 (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62)
-
-
63. A method for scheduling retrieval of private data on a client device, comprising:
-
using a processor, retrieving a frame header from a current transmission frame; using the processor, 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; using the processor, identifying a subscriber ID for the client device; using the processor, determining a private message slot assignment for the client device using the frame number and the subscriber ID;
wherein determining a private message slot assignment further comprises;
concatenating the subscriber ID, and the current frame number to form an array of bytes, creating a hash value from the array of bytes, determining slot assignments from the array of bytes, wherein the slot assignments correspond to slots in each partition of the transmission frame;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 (64, 65)
-
Specification