The present invention relates generally to the networking of two or more computers, and more particularly relates to the networking of computers whose physical locations may vary over time.
Internet Protocol (IP) is currently and by far the predominant technology used in networking devices together. Those of ordinary skill in the art will appreciate that IP is a network layer protocol in Open System Interconnection model (OSI). The so-called “network layer” of the protocol moves data packets between devices that do not have close physical connection in a Local Area Network (LAN). IP does this by assigning a unique number sub-range (sub-network) to each LAN, and network interconnections within a predetermined numeric range and devices on that LAN or Network Interconnection are assigned unique number (IP address) within the assigned range (sub-network). Devices that move data packets between these sub-networks are called “routers.” Two sub-network ranges that fall next to each other need not be located at the same physical location or under the control of the same organization.
With IP there is not a constant universal map that all routers can use to make the decision as to which router a data packet should be handed in order that it make it to its intended destination. To handle outages and define network topology, IP networks run various routing protocols between routers, keeping the routers updated with state information so that outages can be bypassed and the identity of sub-networks behind a router can be ascertained.
One possible drawback of the IP network topology is that it can be difficult to account for devices whose physical location is not static.
In view of the foregoing, the present invention is directed to a network protocol and topology adapted to support networked communication between transient network devices.
As noted above, in accordance with one aspect of the invention, a network is established comprising a plurality of autonomous nodes whose physical location varies over time and can thus be characterized as “transient.” Further, the autonomous nodes are not bound together by a hierarchical structure. Instead, the present invention involves a method that works at the Open System Interconnection (OSI) “Network Layer” to create a novel network protocol referred to herein as an “Autonomous Network Topology” or “ANT.”
In accordance with one aspect of the invention, each node in the network is identified by a unique number and physical location, as may be analogized to latitude/longitude/altitude. Traffic (communications in the form of packets of information) from a given physical location is used as an indicator of a path to that physical location. To send traffic (packets), a node must be willing to relay traffic from other nodes. All nodes physically lie within a broadcast distance of another node, but not all nodes are within the same broadcast distance.
A node within the Autonomous Network Topology makes decisions based solely on information gained by network traffic passing through the node itself or through nodes within its reception range. By mathematically modeling the traffic passing through nodes within a node's reception range, an ANT node can forward traffic destined for locations not within its “line of sight” to a node that will have a higher probability of reaching the targeted node's physical location.
An ANT node monitors traffic passing within its broadcast range. An fundamental concept underlying the invention is that every data packet contains information identifying its starting physical location. Thus, a path can be inferred from a packet's current location back to its starting point. An ANT node will model the data flows of nodes within its line of sight (“LOS”) and determine the probability of a LOS node to reach a location that is not in that node's LOS. Factors such as the location of a LOS node, movement of an LOS node over time, the position of a LOS node in relation to a given ANT node over time, the starting locations of traffic being handled by an LOS node, whether traffic from a targeted Unique Numbered Node was handled by a LOS node, the rate of traffic being handled by a LOS node, and other information that can be inferred by the data being passed is used to model the probability of a LOS node reaching a location that is not in a given node's LOS. Each ANT node acts independently from others and nodes do not pass “routing” information between each other as is the case in prior art network topologies. An ANT node makes its “best guess” and routes will emerge from the independent behavior of each ANT node.
By a set of behaviors, a single ANT is able to route packets within the network for itself and for other ANT nodes.
The foregoing and other features and aspects of the subject invention will be best understood with reference to a detailed description of specific embodiments of the invention, which follow, when read in conjunction with the accompanying drawings, wherein:
The disclosure that follows, in the interest of clarity, does not describe all features of actual implementations. It will be appreciated that in the development of any such actual implementation, as in any such project, numerous engineering and clinical decisions must be made to achieve the developers' specific goals and subgoals, which may vary from one implementation to another. Moreover, attention will necessarily be paid to proper engineering and clinical practices for the environment in question. It will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the relevant fields.
The first behavior associated with the practice of the presently disclosed embodiment of the invention is referred to herein as “passive discovery.”
Referring to
It is believed that the particular details of implementation of a network device operable as a node in an autonomous network topology as shall be described herein are not necessary for the purposes of appreciating the present invention, and that implementation of particular embodiments of the invention, including network control logic and circuitry for causing a network device to operate in accordance with the protocol disclosed herein, would be a matter of routine engineering to persons of ordinary skill in the art.
In illustrative example of
From the traffic generated by Node 2 in
In accordance with one aspect of the invention, each ANT packet contains, at a minimum, the following information “From ID-Location,” “To ID-Location” and “Relay ID-Location.”
Turning to
This “Offer to Relay” all points packet preferably contains special identification information and would be short lived (i.e., cannot be relayed). The “Offer to Relay” function bridges both OSI “Data Link” layer and OSI “Network” layer (IP “ARP” like protocols could provide the “data link” layer for ANT).
Nodes that receive an “Offer to Relay” packet would add the node which generates it to their LOS gateway table. In addition, the receiving node could generate its own “Offer to Relay” packet if it has not sent traffic for a period of time. The purpose of this behavior is to create traffic only during periods of time that have low packets rates and suppress this behavior during high traffic times.
With the “discovery behavior” and each node's LOS gateway table, the routing of data packets through the ANT network is almost complete.
Node S1, present at a first physical location in
This “hand off” process continues until the packet reaches Node G10. Node G10 has Node T1's unique number in its LOS table and sends the packet directly to Node T1.
Those of ordinary skill will appreciate that the foregoing example with reference to
In accordance with an important aspect of the invention, the location of each ANT node may move over time. The issue arises that the targeted node location might have moved a great distance.
Referring to
Referring to
As will be appreciated by those of ordinary skill in the art, the forwarding of packets using Fuzzy Location cannot be boundless. In all cases, a node can silently drop packets for whatever reason the node wishes. Some but not all the reasons an ANT node would dropped packets include, in the presently preferred embodiment of the invention, a node being overloaded with packets to forward, a node experiencing irregularities concerning a particular targeted location, the Fuzzy Location probability circle being unreasonably large, corrupted packets, or packets that are too old.
An additional behavior called “Around the Corner” can be used to improve the possibility that a packet will reach its destination. In this scenario illustrated in
In accordance with another aspect of the invention, there is a further table of information that all ANT nodes must maintain. In particular, in the process of modeling the traffic passing within its broadcast range, a node will gain knowledge of “From ID-location” packets passing through or near its location. The node will maintain an “Out of Site (OOS)” table of frequent “From ID-locations.” The “OOS” is useful, when relaying, to change the “location” part in the “To ID-location” for a packet to more probable location for an ID. The “From” data streams from a node will “bend” traffic destined for itself by the action of the “OOS” tables in node relaying packets on its behalf.
Those of ordinary skill in the art will appreciate that a major issue in many networks and network protocols is routing loop suppression. An ANT network in accordance with the presently disclosed embodiment of the invention has behaviors that tend to passively suppress some loops.
Referring to
In accordance with one aspect of the invention, it is contemplated that there could be nodes that do not meet all the qualifications for an ANT node. One such limited node is referred to as a “Terminus Transport Endpoint (TERMITE) Node.” A TERMITE node would break the “willing to relay” and “identification by unique number and location” rules. A TERMITE node would not provide its location. An ANT node that has a TERMITE node within its LOS will tag all packets relayed on behalf of the TERMITE nodes with its own location and will not maintain location information for the TERMITE node (without location information, only direct LOS commutation is possible, making it unavailable for outbound relaying). ANT nodes also cannot maintain “Shadow LOS,” or “Around the Corner” behavior for TERMITE nodes. TERMITE nodes themselves could maintain simplified LOS tables and not try to model traffic in high detail. TERMITE nodes are ANT “light” nodes but with corresponding limited functionality.
In accordance with one aspect of the invention, application load balancing is straightforward. Assume, for example, a system involving a massive sensor array 50 comprising a plurality of sensors, with each element moving independently of the others, as depicted in
(1) Each sensor (represented by black dots in
(2) Each sensor is equipped with a communications transceiver.
(3) Not all sensors are in range of a server farm (designated with reference numeral 52 in
(4) Not all sensors are in range of all of the others, but are in range of at least one other sensor or server node in server farm 52.
(5) The data from any sensor can be accepted by any node (S1, S2, etc . . . ) in the server farm 52.
Under these assumed conditions, each sensor node is creating or forwarding traffic to the server farm 52. The total amount of traffic flowing to the server farm can exceed the capacity of a single server. As shown, the sensors send to a virtual sever S. The set of servers (S1 . . . S[I]) near to the virtual location for S answers to the “S” identity. There is fluidity in identity within an ANT network. This fluidity gives rise to several special features such as all gateways to other network types could have the same reserved “unique ID” or the aggregation of large cluster of servers into a single virtual server.
With the system of the present invention, nodes that might be characterized as “ships that pass in the night” can find each other. The use of virtual server at a virtual location can be expanded. If the precision of the location greatly exceeds the broadcast ranges (for example, range in miles, position in feet) then special locations can be reserved from being used by real nodes these points are here in referred as “Golden Points”. Use of these special locations can give rise to “rendezvous” between two nodes, as follows: A node at one physical location is in conversation with a node at another physically remote location. These nodes could agree at the start of the conversation on a “Golden Point” location to be used to reestablish communication, if the two nodes lose each other (i.e., their packets begin to not be delivered back and forth properly), then each node would send packets to the agreed upon a “Golden Point”. If their packets reach the Golden Point (affecting “OOS” tables maintained by nodes near the Golden Point), they will establish a path from the golden point back to their location and thus reestablish communication.
A variation of this is a node that is looking for a service. The node would send a packet with a “To” address of a “special unique number” that would define the service as part of the identification and a Golden Node as the location. The server offering to provide the service would send a packet with the “special unique number” and its location as the “From” identification and the “target node” the golden point. The server seeds the path from the Golden Points to itself (affecting “OOS” tables). The packet from a node looking for the service will reach the golden point and jump onto the path to the server. The “fuzzy location,” “around the corner,” and other behaviors will speed the packet from the “virtual” location at the Golden Point to a real location. By removing less than one percent of all locations, from use by real physical machines, several possibilities arise in session and resource management.
Also there can be a “bread crumb trail” that an ANT node can create when it moves about. The node would send packet to its former location and established a path from its old location to its current location.
Consider a possible session. Someone named “Bill” is physically located at a first location and turns on an ANT node. Within seconds, it would see a hundred or so ANT nodes within its LOS. Bill wants to make an OSI application level connection with his friend Jack's node. Bill's application first needs to locate Jack's node. Bill sends a request to a “Name Directory” server at a “golden point.” On the way to or near the “golden point”, the request is redirected from the “golden point” to a real location that a server has seeded within the area. The “Name Directory” server replies to Bill's node with a possible location for Jack's node. The application on Bill's node now starts to open a connection to Jack's node by sending a packet to Jack's location as provided by the “Name Directory” server. Bill's packets transverse the network until they reach Jack's assumed location but Jack's node has moved. Jack's node has been a good node in that it has been performing “bread crumb trail” activities and there is an established path from Jack's old location to his current location. Because of this established path, Bill's packet will be directed to Jack's node current location. When Jack's node replies, it will use the location provided in the packets sent by Bill's node and bypass the need for a “Name Directory” server. The replies from Jack's node would reach Bill's node and would update Bill's node with Jack's node new location. With basic connectivity completed, Bill's and Jack's nodes complete the handshaking for the application.
It is contemplated that the autonomous network topology and protocol in accordance with the presently disclosed embodiment of the invention may be readily integrated with current networking standards.
The ANT Network protocol works at the OSI “Network Layer.” For the total network solution the OSI “Transport Layer” and above could use the well-known “Transmission Control Protocol” (TCP). The full OSI stack could be expressed as TCP/ANT. The “Internet Protocol” (IP) would be replaced by the “Autonomous Network Topology.”
Those of ordinary skill in the art having the benefit of the present disclosure will recognize that several features of the new Internet Protocol (IPv6) can be used in ANT networking for inter-operating with the TCP layers. In IPv6, addresses are a 128 bits and IPv6 has methods to add header extensions. ANT information can be embedded within an IPv6-like packet as a header extension. The “unique number” that is required for ANT node identification could be an IPv6 address. By making the ANT network packets “IPv6-like,” the higher layer applications could be tricked into performing as though they are sitting within an IPv6 network.
In one embodiment, it is contemplated that gateways between ANT and IP networks can use the “TERMITE” node structures described hereinabove. The ANT network maps the IPv6 devices as TERMITE nodes behind ANT node gateways. The IPv6 networks would see the gateway as a router to another IPv6 network. There is a good possibility of nearly seamless traffic between these network types with the right choices on the ANT packet structure.
Use of ANT networking on non-broadcast or switch media (like switch Ethernet) is possible. The OSI layer two approaches used in OSPF V2 for non-broadcast networks shows that solutions can be created. The nature of most non-broadcast networks does not have the devices in constant movement and some inflexibility can be afforded in any solution.
The present invention may be better understood by way of the following two analogies: First, imagine a endless flat plain. There are cars being driven around on this plain without any apparent order. Passengers are leaping from car to car, and when each one does, he shouts out the location-identification of the car he is leaving, location-identification of his origination, and the location-identification of his destination.
Consider a particular driver driving one of these cars. Some cars are close enough for the driver to hear their passengers as they leap and other cars are too far way. For those cars that are close, the driver starts to keep track of what the leaping passengers are saying (information like where the car is located, its Identification, and the passenger origination location-identification).
Now the driver wants to send a message to another car (the driver knows its location and identification). First the driver creates a passenger, and tells him the driver's car's current location and identification. The driver checks the information that he has been keeping on other cars that are within listening distance. If the desired destination car is within that table, then the driver will tell the passenger the destination car's current location and have the passenger leap directly to that car. When the destination car is not within that distance, the driver then uses the tables of the close cars to make a “best guess”. Factors like “Am I seeing traffic from the destination car identification?”, “Is a car close handling lots of traffic from the general direction or location of the destination location?”, or “Is a car in the right direction?” will be considered in making the “best guess.”
Once a next car is determined, the driver tells the passenger the destination location-identification and have the passenger leap to that next car.
Of course, unexpected passengers will be leaping into the driver's car. The driver has several choices. The driver can just ignore them. The driver also can handle unexpected passengers as if he was his own passenger, with the exception that the driver cannot change his origination location-identification or destination identification.
With this strange game of leap frog, passengers should on average reach their destination. The cars in this analogy are the Autonomous Network devices (nodes). Passengers are data packets being passed between devices. With each device relaying packets in the same manor, the overall effect is a network that spans both devices close to each other and also those that are great distances apart.
Another view is the following analogy: A person is standing on the banks of the Nile river in Egypt. The person takes a fish. The person writes his location and name on one side of the fish. On the other side the person writes the name and location of the destination he wants the fish to contact, then the person drops this fish in the river. In this hypothetical case, the destination is “Jack at 5001 Main Street, Galveston, Tex. USA”. Now, this is a smart fish and it can read the starting location written on this side of the other fishes. The fish notes that other fish coming from upstream only have starting locations inside Africa while those coming from downstream have starting locations from around the world including the USA. The fish decides to swim downstream (the analog of “best guess”). The fish will reach the Mediterranean Sea and the general flow of other fish from the USA will influence the fish to swim eastward towards the “Straits of Gibraltar”. Once in the Atlantic the fish will generally swim east until it encounters the “Gulf Stream Current”. Within the “Gulf Stream” there is a torrent of fish swimming from Galveston and other Gulf of Mexico ports to various UK and Northern Europe ports. This stream will cause the fish to swim in this channel backtracking the fish that it sees coming from Galveston. As the fish gets closer to Galveston, it is possible that it will see fish with a starting name of “Jack”. In this hypothetical world of our fishes, there is only one person named “Jack.” If the fish sees another fish with a starting location of “Jack at 5100 Main Street, Galveston, Tex. USA” it will erase the old location for “Jack” on its side and replaced it with the new location. Thus the fish swims closer and closer to “Jack” until it jumps into Jack's Lap and disgorges its information.
In this analogy, the fish is the data packet and the streams and oceans are the intra-connections between the ANT nodes. The analogy shows how the small scale behaviors of the independent ANT node can create a large scale behavior of network routing.
In conclusion, several aspects make an “Autonomous Network Topology” style network interesting. Given the lack of a “Top Down” topology and the independent nature of the nodes, a network in accordance with the present invention is highly scalable. These properties also speed deployment, in that there is not a centrally controlled design. “Autonomous Network Topology” networks are very resilient to outages and it is possible that stability increases in “Autonomous Network Topology” networks as node density increases (greater possibilities of multiple paths). “Autonomous Network Topology” type networks can solve several real world problems in networking.
From the foregoing, it will be apparent to those of ordinary skill in the art that a method and apparatus for networking computer devices has been disclosed which facilitates networked communication between dynamically located devices. Although a specific embodiment of the invention has been disclosed, it is to be understood that this has been done solely for the purposes of describing various aspects of the invention, and is not intended to be limiting with respect to the scope of the invention as defined by the claims that follow. It is contemplated that various substitutions, alterations, and/or modifications, including but not limited to those design alternatives specifically mentioned herein, may be made to the disclosed embodiments without departing from the spirit and scope of the invention as defined in the claims.