A node is configured to receive a packet from a host device, where the packet includes a source address associated with the host device; determine that the source address is not stored by the node; generate one or more logical distances, associated with one or more nodes, based on the source address and a respective address associated with each of the nodes; determine that another node is associated with a shortest logical distance, of the one or more logical distances; and transmit the source address to the other node based on the determination that the other node is associated with the shortest logical distance, where transmitting the source address allows the other node to store the source address or enables further nodes to obtain the source address from the other node.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method, performed by a node of a plurality of nodes, the method comprising: receiving, by the node, a packet from a host device, the packet including a source address associated with the host device; determining, by the node, that the source address is not known by the node; generating, by the node and based on determining that the source address is not known by the node, one or more logical distances associated with one or more nodes of the plurality of nodes, the one or more logical distances being based on the source address and a respective address associated with each of the one or more nodes; determining, by the node, respective capacity information for each of the one or more nodes; assigning, by the node and based on the determined respective capacity information, a respective score to each of the one or more nodes, the respective score being based on a respective priority assigned to the one or more nodes, the respective priority being based on the determined respective capacity information; and transmitting, by the node, the source address to another node, of the one or more nodes, based on a logical distance, of the one or more logical distances, associated with the another node and the respective score associated with the another node, transmitting the source address allowing the another node to store the source address or enabling additional nodes, of the plurality of nodes, to obtain the source address from the another node.
2. The method of claim 1 , where the source address corresponds to a media access control (MAC) address associated with the host device.
3. The method of claim 1 , where determining that the source address is not known by the node further includes: comparing the source address to a plurality of source addresses stored in a memory associated with the node; and determining that the source address is not known by the node when: the source address does not match any of the plurality of source addresses, or the source address matches at least one of the plurality of source addresses that has expired.
4. The method of claim 1 , where generating the one or more logical distances further includes: identifying an address associated with a particular node, of the one or more nodes; and generating a logical distance, of the one or more logical distances, between the host device and the particular node based on an absolute value of a difference between a first hash of the source address and a second hash of the address associated with the particular node.
5. The method of claim 4 , where the address is a media access control (MAC) address associated with the particular node or an address associated with a virtual local area network (VLAN) port that is hosted by the particular node.
6. The method of claim 1 , further comprising: storing the source address in a memory associated with the node based on the determination that the source address is not known by the node.
7. The method of claim 1 , further comprising: determining that a destination address, associated with a destination host device to which the packet is to be transmitted, is not stored by the node; generating one or more other logical distances, associated with the one or more nodes, based on the destination address and the respective address associated with each of the one or more nodes; determining that an additional node, of the one or more nodes, is associated with a shortest logical distance of the one or more other logical distances; and identifying whether the additional node of the one or more nodes stores the destination address based on the determination that the additional node of the one or more nodes is associated with the shortest logical distance.
8. The method of claim 7 , further comprising: transmitting the packet to the destination host device, via the additional node of the one or more nodes, based on identifying that the additional node of the one or more nodes stores the destination address.
9. The method of claim 7 , where identifying whether the additional node of the one or more nodes stores the destination address further includes: communicating with the additional node of the one or more nodes to determine whether the additional node of the one or more nodes stores the destination address; and receiving, from the additional node of the one or more nodes, an indication that the additional node of the one or more nodes stores the destination address.
10. The method of claim 1 , further comprising: identifying that another source address, obtained from another packet received from another host device, is not known by the node; determining whether a memory, associated with the node, has capacity to store the another source address, based on the identification that the another source address is not known by the node; storing the another source address in the memory based on a determination that the memory has the capacity to store the another source address; and transmitting the another source address to a particular node, of the plurality of nodes, based on a determination that the memory does not have the capacity to store the another source address, where transmitting the another source address: is based on a predetermined tunneling protocol, and allows the particular node to store the another source address.
11. The method of claim 1 , further comprising: receiving an indication that another source address, that is stored by the node, is no longer valid; determining that an additional node, of the plurality of nodes, is associated with a shortest logical distance, where the shortest logical distance is based on the another source address and another address associated with the additional node; and transmitting a notification, to the additional node, that indicates that another source address is no longer valid based on the determination that the additional node of the one or more nodes is associated with the shortest logical distance, where transmitting the notification allows the additional node of the one or more nodes to discard or over-write the another source address.
12. A node comprising: a memory to store instructions; and a processor to execute the instructions to: receive, from a host device, a packet that is destined for a destination host device, the packet including a destination address associated with the destination host device; determine that the destination address is not known by the node; generate, based on determining that the destination address is not known by the node, one or more logical distances, associated with one or more nodes, based on the destination address and a respective address associated with each of the one or more nodes; determine respective capacity information for each of the one or more nodes; assign, based on the determined respective capacity information, a respective score to each of the one or more nodes, the respective score being based on a respective priority assigned to the one or more nodes, the respective priority being based on the determined respective capacity information; determine whether a first node, of the one or more nodes, stores the destination address based on a logical distance, of the one or more logical distances, associated with the first node and the respective score associated with the first node; and transmit the packet, to the destination host device and via the first node or a second node of the one or more nodes, based on whether the first node stores the destination address.
13. The node of claim 12 , where, when determining that the destination address is not known by the node, the processor is further configured to: compare the destination address to a plurality of destination addresses stored in a memory associated with the node; determine that the destination address is not stored in the memory when the destination address does not match any of the plurality of destination addresses; and store the destination address in the memory based on the determination that the destination address is not stored in the memory.
14. The node of claim 12 , where, when generating the one or more logical distances, the processor is further configured to: identify an address associated with a particular node, of the one or more nodes; and generate a logical distance, of the one or more logical distances, between the destination host device and the particular node based on an absolute value of a difference between a first hash of the destination address and a second hash of the address associated with the particular node.
15. The node of claim 12 , where, when determining whether the first node stores the destination address, the processor is further configured to: communicate with the first node to determine whether the first node stores the destination address; transmit the packet, to the destination host device and via the first node, based on a determination that the first node stores the destination address; identify the second node based on a determination that the first node does not store the destination address, where the second node is associated with another logical distance, of the one or more logical distances, that is greater than a shortest logical distance; and transmit the packet, to the destination host device and via the second node, based on the identification that the second node is associated with the another logical distance that is greater than the shortest logical distance.
16. The node of claim 12 , where the processor is further configured to: determine that the packet includes a source address, associated with the host device, that is not stored in the node; and transmit the source address to a third node, of the one or more nodes, where the third node is associated with a shortest logical distance, between the host device and the one or more nodes, where transmitting the source address to the third node enables other nodes, of the one or more nodes, to obtain the source address.
17. The node of claim 12 , where the processor is further configured to: identify that another destination address, obtained from another packet, is not stored in the node; determine that an overflow condition, associated with the node, exists based on a determination that a memory, associated with the node, does not have capacity to store the another destination address; and transmit the another packet to a third node, of the one or more nodes, based on the determination that the overflow condition exists, where transmitting the another packet to the third node allows the third node to transmit the another packet to another destination host device to which the another destination address corresponds.
18. A node comprising: a memory to store instructions; and a processor to execute the instructions to: receive a packet from a host device, the packet including a source address associated with the host device; determine that the source address is not known by the node; generate, based on determining that the source address is not known by the node, one or more logical distances associated with one or more nodes of a plurality of nodes, the one or more logical distances being based on the source address and a respective address associated with each of the one or more nodes; determine respective capacity information for each of the one or more nodes; assign, based on the determined respective capacity information, a respective score to each of the one or more nodes, the respective score being based on a respective priority assigned to the one or more nodes, the respective priority being based on the determined respective capacity information; and transmit the source address to another node, of the one or more nodes, based on a logical distance, of the one or more logical distances, associated with the another node and the respective score associated with the another node, the processor, when transmitting the source address, being configured to at least one of: allow the another node to store the source address, or enable additional nodes, of the plurality of nodes, to obtain the source address from the another node.
19. The node of claim 18 , where, when determining that the source address is not known by the node, the processor is further configured to: compare the source address to a plurality of source addresses stored in a memory associated with the node; and determine that the source address is not known by the node when: the source address does not match any of the plurality of source addresses, or the source address matches at least one of the plurality of source addresses that has expired.
20. The node of claim 18 , where, when generating the one or more logical distances, the processor is further configured to: identify an address associated with a particular node, of the one or more nodes; and generate a logical distance, of the one or more logical distances, between the host device and the particular node based on an absolute value of a difference between a first hash of the source address and a second hash of the address associated with the particular node.
21. The node of claim 18 , where the processor is further configured to: determine that a destination address, associated with a destination host device to which the packet is to be transmitted, is not stored by the node; generate one or more other logical distances, associated with the one or more nodes, based on the destination address and the respective address associated with each of the one or more nodes; determine that an additional node of the one or more nodes is associated with a shortest logical distance of the one or more other logical distances; and identify whether the additional node of the one or more nodes stores the destination address based on the determination that the additional node of the one or more nodes is associated with the shortest logical distance.
22. The node of claim 21 , where the processor is further configured to: transmit the packet to the destination host device, via the additional node of the one or more nodes, based on identifying that the additional node of the one or more nodes stores the destination address.
23. The node of claim 21 , where, when identifying whether the additional node of the one or more nodes stores the destination address, the processor is further configured to: communicate with the additional node of the one or more nodes to determine whether the additional node of the one or more nodes stores the destination address; and receive, from the additional node of the one or more nodes, an indication that the additional node of the one or more nodes stores the destination address.
24. The node of claim 18 , where the processor is further configured to: identify that another source address, obtained from another packet received from another host device, is not known by the node; determine whether a memory, associated with the node, has capacity to store the another source address, based on the identification that the another source address is not known by the node; store the another source address in the node based on a determination that the memory has the capacity to store the another source address; and transmit the another source address to a particular node, of the plurality of nodes, based on a determination that the memory does not have the capacity to store the another source address.
25. The node of claim 18 , where the processor is further configured to: receive an indication that another source address, that is stored by the node, is no longer valid; determine that an additional node, of the plurality of nodes, is associated with a shortest logical distance, where the shortest logical distance is based on the another source address and another address associated with the additional node and transmit a notification, to the additional node, that indicates that another source address is no longer valid based on the determination that the additional node of the one or more nodes is associated with the shortest logical distance.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
July 18, 2011
August 12, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.