Method and system for scheduled streaming of best effort data
First Claim
1. A method for communicating files using a plurality of control nodes comprising the steps of:
- (a) choosing one control node of a plurality of control nodes to be a primary control node and each other control node to be an assistant control node, (b) establishing a connection between the primary control node and each assistant control node, (c) scheduling a job for execution at a scheduled time, wherein each job specifies one or more specific programs to be transmitted on a specific channel at a specific time, the program comprising a group of one or more files that can be used by a client node in a similar fashion, and program information specifying a manner by which a recipient node can use the files, the channel being a distinct path for communicating a program and having channel information specifying a manner of communicating the program, wherein a program can be communicated one of plural different ways as specified by different channel informations, (d) if a job is to be executed by one of the assistant control nodes, issuing one or more messages from the primary control node to the one assistant control node for causing the assistant control node to execute the job, and (e) a designated control node executing the job by, at the scheduled time of the job, communicating at least one program of the job, via the particular channel of the job, to one or more recipient nodes.
9 Assignments
0 Petitions
Accused Products
Abstract
A system is provided for controlling the transmission of best-effort filed data or programs on channels from one of plural controllers to one or more client nodes. A program is a group of files and has program information indicating to a client node how to use the files of the program. A channel is a virtual path, wherein a client node can receive program files from different channels in a separable fashion. Channels also have channel information. Multiple controllers are provided which self configure in rank order to control the scheduled transmission of programs files on channels. Client nodes receive announcements of programs and channels from the controllers and selectively subscribe to the channels and programs. Client nodes can be instructed to positively acknowledge receipt of programs and also send back negative acknowledgements for ranges of data words in program files not received. The negative acknowledgements can be consolidated to reduce the number of packets on the network. The format of packets carrying program files and acknowledgement/negative acknowledgement messages are specified.
201 Citations
68 Claims
-
1. A method for communicating files using a plurality of control nodes comprising the steps of:
-
(a) choosing one control node of a plurality of control nodes to be a primary control node and each other control node to be an assistant control node, (b) establishing a connection between the primary control node and each assistant control node, (c) scheduling a job for execution at a scheduled time, wherein each job specifies one or more specific programs to be transmitted on a specific channel at a specific time, the program comprising a group of one or more files that can be used by a client node in a similar fashion, and program information specifying a manner by which a recipient node can use the files, the channel being a distinct path for communicating a program and having channel information specifying a manner of communicating the program, wherein a program can be communicated one of plural different ways as specified by different channel informations, (d) if a job is to be executed by one of the assistant control nodes, issuing one or more messages from the primary control node to the one assistant control node for causing the assistant control node to execute the job, and (e) a designated control node executing the job by, at the scheduled time of the job, communicating at least one program of the job, via the particular channel of the job, to one or more recipient nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A graphical user interface depicting a time line comprising:
-
(a) a display screen, depicting a time line with interval markings spaced according to a particular scale, a total duration in time being the sum of the time intervals, and portions thereof, depicted by the interval markings on the time line, and (b) a manual control for altering the time scale of the time line, which, when activated to expand the time scale, causes the spacing between the interval markings to increase and the total duration of time of the time line to decrease, and when activated to collapse the time scale, causes the spacing between the interval markings to decrease and the total duration of time of the time line to increase. - View Dependent Claims (10)
-
-
11. An operator console graphical user interface comprising:
-
(a) a first displayable area depicting a time line, (b) a second displayable area, adjacent to the first displayable area, depicting plural tabbed panes, each tabbed pane corresponding to a channel and having a portion which is always visible and selectable to cause the remainder of the respective tabbed pane to become visible, thereby occluding other portions of other tabbed panes, each tabbed pane, when selected, depicting time intervals of a certain scale, and depicting one or more jobs scheduled for execution, with the channel corresponding to the selected pane, during the depicted time intervals of the corresponding pane, as solid lines extending over one or more of the time intervals to represent a time during which the job executes, wherein a job is a scheduled communication of a program on a channel, the program including program information, indicating to a recipient node how to use best-effort program events contained in the program signal, the channel having channel information, indicating a manner of communicating the program signal. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A client node capable of using program information received thereat comprising:
-
(a) a memory, (b) a communication interface for receiving programs, each program comprising a group of one or more files and being received from one of a plurality of channels, each channel being a separate, distinct communication path used by the communication interface to separately store the program information received from each channel in the memory as a separately accessible object, (c) a processor for executing plural processes, including;
a. a session manager, which;
retrieves from one of the objects corresponding to a particular one of the channels, designated a service channel, information announcing the existence of other channels and a schedule of programs to be received on each of the channels; and
issues notifications of each channel to which the client is subscribed, andb. a broker process responsive to the notifications from the session manager for demultiplexing one or more programs from each channel to which the client is subscribed and for using each individual file contained in each demultiplexed program as specified by program information carried in the program with the respective file. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A packet comprising:
-
(a) a source port field, (b) a destination port field, (c) a type field containing one of the following values;
(1) an ANAK value indicating that the packet is an asynchronous negative acknowledgement list packet indicating failure to receiving a list of original data segments in other packets, (2) an ANCF value indicating that the packet is an asynchronous negative acknowledgement list confirmation packet confirming receipt of a packet including an ANAK value in the type field, (3) an ACK value indicating that the packet is a positive acknowledgement packet acknowledging receipt of original data in other packets, or (4) an AACF value indicating that the packet is a positive acknowledgement confirmation packet confirming receipt of a packet including an ACK value in the type field, and (d) a sequence number field containing a value that does not indicate any specific original data packet. - View Dependent Claims (31, 32, 33, 34)
-
-
35. A method for acknowledging a failure of a client node to receive portions of a program from a channel, each program being a group of one or more files and related program information specifying how to use the files, each channel being a distinct path from which a program can be received such that programs received from each channel are distinctly separable, the method comprising:
-
(a) preparing to receive original data of one or more files of a program from a particular channel, (b) determining that plural ranges of data words of the original data were not received, (c) generating a single packet indicating that the plural ranges of data words were not received, and (d) transmitting the single packet on a return path to another node capable of causing the plural ranges of data words to be retransmitted. - View Dependent Claims (36, 37, 38, 39)
-
-
40. A method for retransmitting portions of a program from a channel, each program being a group of one or more files and related program information specifying how to use the files, each channel being a distinct path from which a program can be received such that programs received from each channel are distinctly separable, the method comprising:
-
(a) receiving, at a network element on a return path between one or more client nodes and a source, of original data of one or more files of a program transmittable on a particular channel, an ANAK packet negatively acknowledging receipt of one or more ranges of data words of one or more of the files of the program, (b) storing information pertinent to the received packet, (c) starting a timer for the ANAK packet, (d) if, before expiration of the timer, another ANAK packet is received which negatively acknowledges receipt of one or more ranges of data words that intersect the ranges of data words of a previously received ANAK packet, the network element consolidating the ranges of the another and previously received ANAK packets, and selectively resetting the timer, and (e) if the timer expires, the network element causing the retransmission of all ranges of original data in the consolidated ranges. - View Dependent Claims (41, 42, 43, 44, 45)
-
-
46. A method for transmitting original data reliably comprising the steps of:
-
(a) transmitting a plurality of packets containing original data of a file from a source node to one or more client nodes on a forward path from the source node to the client nodes, (b) receiving one or more negative acknowledgement packets indicating that one or more ranges of data words were not received by at least one client node, and (c) multicast retransmitting each of the plurality of packets containing the original data in each range indicated by the one or more packets. - View Dependent Claims (47, 48, 49, 50)
-
-
51. A method for communicating information from a source node to one or more client nodes comprising the step of providing a packet comprising:
-
(a) a source port field, (b) a destination port field, (c) a type field containing one of the following values;
(1) an ANAK value indicating that the packet is an asynchronous negative acknowledgement list packet indicating failure to receiving a list of original data segments in other packets, (2) an ANCF value indicating that the packet is an asynchronous negative acknowledgement list confirmation packet confirming receipt of a packet including an ANAK value in the type field, (3) an ACK value indicating that the packet is a positive acknowledgement packet acknowledging receipt of original data in other packets, or (4) an AACF value indicating that the packet is a positive acknowledgement confirmation packet confirming receipt of a packet including an ACK value in the type field, and a sequence number field containing a value that does not indicate any specific original data packet. - View Dependent Claims (52, 53, 54)
-
-
55. A sequence of one or more packets for carrying file data of one of a plurality of programs, each program carrying data of one or more files to be used by a recipient node in a similar fashion each packet of the sequence being transferred from source node to recipient node in whole or as plural segments in a signal, the sequence of packets comprising:
-
(a) a header of a first packet of the sequence of packets, the header including a program identifier filed containing a program identifier which uniquely identifies the program of the sequence of packets, and (b) a payload containing one or more data triplets, each data triplet including a tag, a length and a value field, the tag uniquely identifying the value in the value field and the length indicating the offset in data words to an immediately following data triplet, a length of zero indicating that no data triplet follows, the value fields of the sequence of data triples containing information for uniquely correlating file data in each packet of the sequence to a respective file of one of the best-effort programs. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62, 63, 64, 65)
-
-
66. In a communication network, a system including a source node for transmitting a sequence of one or more packets containing best-effort file data for one or more programs on one or more channels to one or more recipient nodes, a program being a signal containing one or more files that can be used by the recipient nodes in a similar fashion, a channel being a distinct virtual path by which a recipient node can receive data separately from data carried on other channels, the sequence of packets comprising:
-
(a) a header of a first packet of the sequence of packets, the header including a program identifier filed containing a program identifier which uniquely identifies the program of the sequence of packets, and (b) a payload containing one or more data triplets, each data triplet including a tag, a length and a value field, the tag uniquely identifying the value in the value field and the length indicating the offset in data words to an immediately following data triplet, a length of zero indicating that no data triplet follows, the value fields of the sequence of data triples containing information for uniquely correlating file data in each packet of the sequence to a respective file of one of the best-effort programs. - View Dependent Claims (67)
-
-
68. In a communication network, a system including a recipient node for receiving a sequence of one or more packets containing best-effort file data for one or more programs on one or more channels from one or more source nodes, a program being a signal containing one or more files that can be used by recipient nodes in a similar fashion, a channel being a distinct virtual path by which a recipient node can receive data separately from data carried on other channels, the sequence of packets comprising:
-
(a) a header of a first packet of the sequence of packets, the header including a program identifier filed containing a program identifier which uniquely identifies the program of the sequence of packets, and (b) a payload containing one or more data triplets, each data triplet including a tag, a length and a value field, the tag uniquely identifying the value in the value field and the length indicating the offset in data words to an immediately following data triplet, a length of zero indicating that no data triplet follows, the value fields of the sequence of data triples containing information for uniquely correlating file data in each packet of the sequence to a respective file of one of the best-effort programs.
-
Specification