System of distributing content data over a computer network and method of arranging nodes for distribution of data over a computer network
First Claim
Patent Images
1. A process for docking a connection requesting user node with a distribution network, said process including the following steps:
- (a) having an instructing node receive a connection request from said connection requesting user node;
(b) forming an instructing node topology database indicating, at a point in time,(i) which, if any, user nodes are docked with said instructing node as child nodes;
which, if any, user nodes are docked with each of said child nodes as grandchild nodes of said instructing node;
which, if any, user nodes are docked with each of said grandchild nodes as great-grandchild nodes of said instructing node; and
(ii) a bandwidth capacity of each respective one of said docked user nodes;
(c) selecting from a group of nodes including the instructing node and said docked user nodes a recommended parent node for said connection requesting user node, wherein said recommended parent node has apparent available capacity to transmit content data to said connection requesting user node and is at least as close to said instructing node as any other docked user node having apparent available capacity to transmit content data to said connection requesting user node; and
(d) providing a connection address list to said connection requesting user node, said connection address list listing each node in said instructing node'"'"'s topology database from said recommended parent node back to said instructing node.
3 Assignments
0 Petitions
Accused Products
Abstract
The invention is a system for distributing content data over a computer network and a method of arranging receiver nodes in a computer network such that the capacity of the server is effectively multiplied many times over, and may even be increased exponentially. The invention takes advantage of the excess capacity many receiver nodes possess, and uses them as repeaters. The distribution system includes nodes having databases which indicate their ancestors and descendants so that reconfiguration of the distribution network may be accomplished without burdening the system'"'"'s primary server.
-
Citations
26 Claims
-
1. A process for docking a connection requesting user node with a distribution network, said process including the following steps:
-
(a) having an instructing node receive a connection request from said connection requesting user node; (b) forming an instructing node topology database indicating, at a point in time, (i) which, if any, user nodes are docked with said instructing node as child nodes;
which, if any, user nodes are docked with each of said child nodes as grandchild nodes of said instructing node;
which, if any, user nodes are docked with each of said grandchild nodes as great-grandchild nodes of said instructing node; and(ii) a bandwidth capacity of each respective one of said docked user nodes; (c) selecting from a group of nodes including the instructing node and said docked user nodes a recommended parent node for said connection requesting user node, wherein said recommended parent node has apparent available capacity to transmit content data to said connection requesting user node and is at least as close to said instructing node as any other docked user node having apparent available capacity to transmit content data to said connection requesting user node; and (d) providing a connection address list to said connection requesting user node, said connection address list listing each node in said instructing node'"'"'s topology database from said recommended parent node back to said instructing node. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A process for docking a connection requesting user node with a distribution network, said process including the following steps:
-
(a) having an instructing node receive a connection request from said connection requesting user node;
(b) forming an instructing node topology database indicating, at a point in time,(i) which, if any, user nodes are docked with said instructing node as child nodes;
which, if any, user nodes are docked with each of said child nodes as grandchild nodes of said instructing node;
which, if any, user nodes are docked with each of said grandchild nodes as great-grandchild nodes of said instructing node; and(ii) a bandwidth capacity of each respective one of said docked user nodes; (c) assigning a utility rating to each of the docked user nodes, each of said utility ratings being a function of at least the bandwidth capacity of the docked user node and an elapsed time that the docked user node has been docked with the distribution network; (d) selecting from a group of nodes including the instructing node and said docked user nodes a recommended parent node for said connection requesting user node, wherein said recommended parent node has apparent available capacity to transmit content data to said connection requesting user node and is at least as close to said instructing node as any other docked user node having apparent available capacity to transmit content data to said connection requesting user node, and when the closest docked user node with apparent available capacity to transmit content data to said connection requesting user node is equidistant to said instructing node with at least one other docked user node with apparent available capacity to transmit content data to said connection requesting user node, said recommended parent node is the docked user node having the highest utility rating among such equidistant docked user nodes with apparent available capacity; and (e) providing a connection address list to said connection requesting user node, said connection address list listing each node in said instructing node'"'"'s topology database from said recommended parent node back to said instructing node and, if said instructing node is not a primary server node, back to said primary server node.
-
-
9. A process for docking a connection requesting user node with a distribution network, said process including the following steps:
-
(a) having an instructing node receive a connection request from said connection requesting user node; (b) forming an instructing node topology database indicating, at a point in time, (i) which, if any, user nodes are docked with said instructing node as child nodes;
which, if any, user nodes are docked with each of said child nodes as grandchild nodes of said instructing node;
which, if any, user nodes are docked with each of said grandchild nodes as great-grandchild nodes of said instructing node; and(ii) a bandwidth capacity of each respective one of said docked user nodes, including a designation of whether the bandwidth capacity of said respective docked user node is below a predetermined threshold, such that said respective docked user node is a low-bandwidth node, or at least said predetermined threshold, such that said respective docked user node is a high-bandwidth node; (c) forming a primary recommended parent node list comprised of; (1) the instructing node, if it has available capacity to transmit content data to said connection requesting user node, plus (2) those docked user nodes having apparent available capacity to transmit content data to said connection requesting user node, (3) with said instructing node being placed first on the primary recommended parent node list, if it is on the primary recommended parent node list, and said docked user nodes having apparent available capacity to transmit content data to said connection requesting user node being ranked with those docked nodes which are closer to the instructing node being ranked higher than those docked nodes which are further away and with equidistant docked user nodes being ranked such that those docked nodes which have the higher bandwidth capacity being ranked higher than docked nodes having lower bandwidth capacity; (d) forming a secondary recommended parent node list comprised of; (1) the instructing node, if it has no available capacity to transmit content data to said connection requesting user node but does have at least one low-bandwidth node docked directly to it, plus (2) each of said docked user nodes which (i) is a high-bandwidth node with no available capacity to transmit content data to said connection requesting user node and (ii) has at least one low-bandwidth node docked directly to it, (3) with said instructing node being placed first on the secondary recommended parent node list, if it is on the secondary recommended parent node list, and said docked user nodes on the secondary recommended parent node list being ranked with those docked nodes which are closer to the instructing node being ranked higher than those docked nodes which are further away and with equidistant docked user nodes being ranked such that those docked nodes which have the higher bandwidth capacity being ranked higher than docked nodes having lower bandwidth capacity; (e) determining whether the connection requesting user node is a low-bandwidth node; (f) if the connection requesting user node is a low-bandwidth node, (i) selecting the highest ranked node on the primary recommended parent node list as a recommended parent node; and (ii) providing a connection address list to said connection requesting user node, said connection address list listing each node in said instructing node'"'"'s topology database from said recommended parent node back to said instructing node and, if said instructing node is not a primary server node, back to said primary server node; and (g) if the connection requesting user node is a high-bandwidth node, (i) selecting the highest ranked node on the primary recommended parent node list as a recommended parent node; (ii) selecting the highest ranked node on the secondary recommended parent node list as an alternate recommended parent node; (iii) determining whether the alternate recommended parent node is closer to the primary server node than the recommended parent node; (iv) if the alternate recommended parent node is not closer to the primary server node than the recommended parent node, providing a connection address list to said connection requesting user node, said connection address list listing each node in said instructing node'"'"'s topology database from said recommended parent node back to said instructing node and, if said instructing node is not the primary server node, back to said primary server node; (v) if the alternate recommended parent node is closer to the primary server node than the recommended parent node, (1) forcing the disconnection of a low-bandwidth node from the alternate recommended parent node and (2) providing a connection address list to said connection requesting user node, said connection address list listing each node in said instructing node'"'"'s topology database from said alternate recommended parent node back to said instructing node and, if said instructing node is not the primary server node, back to said primary server node. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A process for docking a connection requesting user node with a distribution network, said process including the following steps:
-
(a) having an instructing node receive a connection request from said connection requesting user node; (b) determining whether a bandwidth capacity of said connection requesting user node is below a predetermined threshold, such that said connection requesting user node is a low-bandwidth node or at least said predetermined threshold, such that said connection requesting user node is a high-bandwidth node; (c) forming an instructing node topology database indicating, at a point in time, (i) which, if any, user nodes are docked with said instructing node as child nodes;
which, if any, user nodes are docked with each of said child nodes as grandchild nodes of said instructing node;
which, if any, user nodes are docked with each of said grandchild nodes as great-grandchild nodes of said instructing node; and(ii) a bandwidth capacity of each respective one of said docked user nodes; (d) if said connection requesting user node is a high-bandwidth user node, selecting from a group of nodes including the instructing node and said docked user nodes a recommended parent node for said connection requesting user node, wherein said recommended parent node has apparent available capacity to transmit content data to said connection requesting user node and is at least as close to said instructing node as any other docked user node having apparent available capacity to transmit content data to said connection requesting user node; (e) if said connection requesting user node is a low-bandwidth user node, selecting from a group of nodes including the instructing node and said docked user nodes a recommended parent node for said connection requesting user node, wherein said recommended parent node has apparent available capacity to transmit content data to said connection requesting user node and is at least as far from said instructing node as any other docked user node having apparent available capacity to transmit content data to said connection requesting user node; and (f) providing a connection address list to said connection requesting user node, said connection address list listing each node in said instructing node'"'"'s topology database from said recommended parent node back to said instructing node. - View Dependent Claims (18)
-
-
19. A process for connecting a connection requesting user node to a computer information distribution network having a primary server node and user nodes docked therewith in a cascaded relationship, said process further comprising the following steps:
-
(a) providing said connection requesting user node with a connection address list which sets forth a list of user nodes docked in series with each other back to said primary server node; (b) having said connection requesting user node go to node at top of said connection address list; (c) having said connection requesting user node determine whether node at top of said connection address list is part of the distribution network; (d) if node at top of connection address list is not part of the distribution network, deleting such node from connection address list and repeating steps (b) and (c) with respect to next node at top of connection address list; and (e) if node at top of connection address list is part of said distribution network, having said connection requesting user node dock with said node at top of connection address list.
-
-
20. A process for connecting a connection requesting user node to a computer information distribution network having a primary server node and user nodes docked therewith in a cascaded relationship, said process further comprising the following steps:
-
(a) providing said connection requesting user node with a connection address list which sets forth a list of user nodes docked in series with each other back to said primary server; (b) having said connection requesting user node go to node at top of connection address list; (c) having said connection requesting user node determine whether node at top of said connection address list is part of the distribution network; (d) if node at top of connection address list is not part of the distribution network, deleting such node from connection address list and repeating steps (b) and (c) with respect to next node at top of connection address list; (e) if node at top of connection address list is part of said distribution network, determining whether said node at top of connection address list has available capacity to transmit content data to said connection requesting user node; and (f) if node at top of connection address list is part of said distribution network and has available capacity to transmit content data to said connection requesting user node, having said connection requesting user node dock with said node at top of connection address list.
-
-
21. In a computer information distribution network comprising a primary server node and user nodes docked therewith in a cascaded relationship, wherein each user node may have no more than a predetermined maximum number of child nodes docked with it, a process for reconfiguring the network in the event of a user node'"'"'s departure therefrom, said process including the following steps:
-
(a) providing information at a point in time to a node in the distribution network as follows; (i) a propagation rating of the node if it is a user node having a parent node which is a user node, wherein a propagation rating is one of a predetermined number of grades ranging from highest to second highest to third highest, with the number of grades being equal to said predetermined maximum number; (ii) an ancestor list setting forth the node'"'"'s ancestor nodes'"'"' addresses, if it has any ancestor nodes, back to the primary server node, with the node'"'"'s parent node being atop the ancestor list; (iii) a sibling list of the node'"'"'s sibling nodes'"'"' addresses, if it has any sibling nodes, and their respective propagation ratings; and (iv) a child list of the node'"'"'s child nodes'"'"' addresses, if it has any child nodes, and their respective propagation ratings; (b) having a first node send a propagation signal to each former child node of a departed node, wherein said first node is an ancestor of said former child node of said departed node; (c) with respect to each child node receiving the propagation signal which did not have the highest propagation rating prior to its receiving the propagation signal, wherein such child node is referred to as a red node, upon such red node receiving the propagation signal, (i) setting the propagation rating of the red node to the next higher grade above the propagation rating of that red node before it received the propagation signal; (ii) having the red node undock from its parent node, if it was docked with its parent node before it received the propagation signal; and (iii) having the red node dock with its sibling node which had the highest propagation rating prior to the red node'"'"'s receiving the propagation signal; (d) with respect to each child node receiving the propagation signal which had the highest propagation rating prior to its receiving a propagation signal wherein such child node is referred to as a green node, upon such green node receiving the propagation signal, (i) setting the propagation rating of that green node to the lowest grade; (ii) having the green node retransmit the propagation signal to its child nodes, if it has any; and (iii) determining whether the green node is docked with the node from which the green node received the propagation signal and if it is, having the green node remain docked with said node from which the green node received the propagation signal, and if it is not, having the green node dock with said node from which the green node received the propagation signal; and (e) repeating steps (c) and (d) with respect to each user node which receives a retransmitted propagation signal.
-
-
22. In a computer information distribution network comprising a primary server node and user nodes docked therewith in a cascaded relationship, wherein each user node may have no more than a predetermined maximum number of child nodes docked with it, a process for reconfiguring the network in the event of a user node'"'"'s departure therefrom, said process including the following steps:
-
(a) providing information at a point in time to a node in the distribution network as follows; (i) a propagation rating of the node if it is a user node having a parent node which is a user node, wherein a propagation rating is one of a predetermined number of grades ranging from highest to second highest to third highest, with the number of grades being equal to said predetermined maximum number; (ii) an ancestor list setting forth the node'"'"'s ancestor nodes'"'"' addresses, if it has any ancestor nodes, back to the primary server node, with the node'"'"'s parent node being atop the ancestor list; (iii) a sibling list of the node'"'"'s sibling nodes'"'"' addresses, if it has any sibling nodes, and their respective propagation ratings; and (iv) a child list of the node'"'"'s child nodes'"'"' addresses, if it has any child nodes, and their respective propagation ratings; (b) having a first node send a propagation signal to each former child node of a departed node, wherein said first node is an ancestor of said former child node of said departed node; (c) with respect to each child node receiving the propagation signal which did not have the highest propagation rating prior to its receiving the propagation signal, wherein such child node is referred to as a red node, upon such red node receiving the propagation signal, (i) setting the propagation rating of the red node to the next higher grade above the propagation rating of that red node before it received the propagation signal; (ii) having the red node undock from its parent node, if it was docked with its parent node before it received the propagation signal; (iii) devising a first connection address list comprising the address of the red node'"'"'s sibling node which had the had the highest propagation rating prior to the red node'"'"'s receiving the propagation signal followed by the red node'"'"'s ancestor list; (iv) having said red node go to node at top of first connection address list; (v) having said red node determine whether node at top of said first connection address list is part of the distribution network; (vi) if node at top of connection address list is not part of the distribution network, deleting such node from first connection address list and repeating steps (c)(iv) and (c)(v) with respect to next node at top of first connection address list; (vii) if node at top of first connection address list is part of said distribution network, determining whether said node at top of first connection address list has available capacity to transmit content data to said red node; and vii) if node at top of first connection address list is part of said distribution network and has available capacity to transmit content data to said red node, having said red node dock with said node at top of first connection address list; (d) with respect to each child node receiving the propagation signal which had the highest propagation rating prior to its receiving a propagation signal, wherein such child node is referred to as a green node, upon such green node receiving the propagation signal, (i) setting the propagation rating of that green node to the lowest grade; (ii) having the green node retransmit the propagation signal to its child nodes, if it has any; and (iii) determining whether the green node is docked with the node from which the green node received the propagation signal and if it is, having the green node remain docked with said node from which the green node received the propagation signal, and if it is not, devising a second connection address list starting with said node from which the green node received the propagation signal and followed by that portion of said green node'"'"'s ancestor list extending back to the primary server node from said node from which the green node received the propagation signal; (iv) having said green node go to node at top of second connection address list; (v) having said green node determine whether node at top of said second connection address list is part of the distribution network; (vi) if node at top of connection address list is not part of the distribution network, deleting such node from second connection address list and repeating steps (d)(iv) and (d)(v) with respect to next node at top of second connection address list; (vii) if node at top of second connection address list is part of said distribution network, determining whether said node at top of second connection address list has available capacity to transmit content data to said green node; and (viii) if node at top of second connection address list is part of said distribution network and has available capacity to transmit content data to said green node, having said green node dock with said node at top of second connection address list; and (e) repeating steps (c) and (d) with respect to each user node which receives a retransmitted propagation signal. - View Dependent Claims (23)
-
-
24. In a computer information distribution network comprising an instructing node having a fist user node docked with said instructing node to receive content data therefrom and a second user node docked with said first user node to receive content data therefrom, a process for handling a purported communication interruption between said first user node and said second user node, said process including the following steps:
-
(a) having said instructing node receive a first complaint about said first user node from said second user node; (b) if the second user node is the only user node docked with said first user node at a point in time, if said instructing node receives another complaint about first user node from another user node within a predetermined period of time from when said instructing node received said first complaint or if said instructing node experiences a communication problem between it and said first user node during said predetermined period of time, (i) disconnecting said first user node from said instructing node; and (c) if said instructing node has not experienced a communication problem between it and said first user node during said predetermined period of time and if a plurality of user nodes are docked with said first user node at said point in time and said instructing node has not received another complaint about said first user node from user node other than said second user node within said predetermined period of time, (i) disconnecting said second user node from said first user node. - View Dependent Claims (25, 26)
-
Specification