US10135729B2 - Distributed gateway for local subnet - Google Patents
Distributed gateway for local subnet Download PDFInfo
- Publication number
- US10135729B2 US10135729B2 US14/170,524 US201414170524A US10135729B2 US 10135729 B2 US10135729 B2 US 10135729B2 US 201414170524 A US201414170524 A US 201414170524A US 10135729 B2 US10135729 B2 US 10135729B2
- Authority
- US
- United States
- Prior art keywords
- network device
- gateway
- client device
- response
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Definitions
- Client devices within a company are generally connected to one another via a local subnet, and local subnets are connected to other networks by a gateway. Data addressed to computers outside the subnet is first directed to the gateway before sending the data out to the target computer. Each client device on the local subnet is configured with the internet protocol (IP) address of the local subnet gateway.
- IP internet protocol
- Some modern networks include network devices that act as both access points and gateways.
- one of the network devices is chosen to operate as the gateway. Consequently, the local subnet is limited by the capabilities of the chosen network device. Further, as local subnets grow in size, these network devices may begin to receive more data than the device is able to processes efficiently.
- embodiments relate to a non-transitory computer readable medium comprising instructions which, when executed by one or more devices, causes performance of operations.
- the operations comprise: receiving a first request, from a first client device in a particular IP subnet, to identify a Media Access Control (MAC) address that corresponds to a particular Internet Protocol (IP) address in the particular IP subnet; transmitting a first response to the first client device that identifies a first MAC address, of a first network device in the particular IP subnet, as the MAC address that corresponds to the particular IP address; receiving a second request, from a second client device in the particular IP subnet, to identify the Media Access Control (MAC) address that corresponds to the particular Internet Protocol (IP) address; transmitting a second response to the second client device that identifies a second MAC address, of a second network device in the particular IP subnet, as the MAC address that corresponds to the particular IP address, the second MAC address being different than the first MAC address.
- MAC Media Access Control
- embodiments relate to a system.
- the system comprises: one or more devices; the system being configured to perform operations comprising: receiving a first request, from a first client device in a particular IP subnet, to identify a Media Access Control (MAC) address that corresponds to a particular Internet Protocol (IP) address in the particular IP subnet; transmitting a first response to the first client device that identifies a first MAC address, of a first network device in the particular IP subnet, as the MAC address that corresponds to the particular IP address; receiving a second request, from a second client device in the particular IP subnet, to identify the Media Access Control (MAC) address that corresponds to the particular Internet Protocol (IP) address; transmitting a second response to the second client device that identifies a second MAC address, of a second network device in the particular IP subnet, as the MAC address that corresponds to the particular IP address, the second MAC address being different than the first MAC address.
- MAC Media Access Control
- IP Internet Protocol
- embodiments relate to a method.
- the method comprises: receiving a first request, from a first client device in a particular IP subnet, to identify a Media Access Control (MAC) address that corresponds to a particular Internet Protocol (IP) address in the particular IP subnet; transmitting a first response to the first client device that identifies a first MAC address, of a first network device in the particular IP subnet, as the MAC address that corresponds to the particular IP address; receiving a second request, from a second client device in the particular IP subnet, to identify the Media Access Control (MAC) address that corresponds to the particular Internet Protocol (IP) address; transmitting a second response to the second client device that identifies a second MAC address, of a second network device in the particular IP subnet, as the MAC address that corresponds to the particular IP address, the second MAC address being different than the first MAC address.
- MAC Media Access Control
- IP Internet Protocol
- FIG. 1 shows a system in accordance with one or more embodiments.
- FIG. 2 shows a flow diagram in accordance with one or more embodiments.
- FIG. 3 shows a flow diagram in accordance with one or more embodiments.
- FIG. 4 shows a flow diagram in accordance with one or more embodiments.
- FIG. 5 shows a flow diagram in accordance with one or more embodiments.
- FIG. 6 shows an example in accordance with one or more embodiments.
- FIG. 7 shows a computer system in accordance with one or more embodiments.
- embodiments provide a method and system for assigning different gateways to client devices connected to the same network device.
- Embodiments be used to distribute gateway traffic by maintaining gateway assignments for client devices across access points.
- Local subnets may include network devices that act as access points, gateways, controllers, or any combination thereof.
- Access points provide subnet access to connected client devices.
- Gateways connect network devices and client devices on a subnet to an external network, such as the Internet.
- Gateways may further provide network address translation (NAT) services to client devices.
- Clients that join a subnet are configured with an internet layer address (such as an IP address) of the subnet gateway.
- a client device that wants to send data to an external network first determines the link layer address (such as a media access control (MAC) address) of the gateway by sending an address resolution protocol (ARP) request to the access point (or network device operating as an access point).
- ARP address resolution protocol
- the access point responds with the link layer address of the gateway.
- the gateway IP address is the same for each client device on the subnet, and each access point responds to gateway ARP requests with different gateway MAC address.
- client devices on a local subnet are initially assigned to a specific gateway (or network device operating as a gateway), and continue to use the initially assigned gateway while roaming between access points.
- client devices that roam between access points may continue to use the initially assigned gateway.
- a client device that initially connects to a network device/gateway that is currently receiving a high amount of network traffic may be initially assigned to a different network device/gateway. In order to ensure that client devices maintain their assigned gateway when moving between access points, each network device stores the assigned gateway for each client device connected to that network device.
- FIG. 1 shows a diagram of a system in accordance with one or more embodiments.
- multiple network devices network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)
- Each network device includes a gateway assignment table (gateway assignment table A ( 104 A), gateway assignment table B ( 104 B), gateway assignment table N ( 104 N)).
- Network device B ( 100 B) is communicatively coupled to multiple client devices (client device A ( 106 A), client device N ( 106 N)).
- the network devices (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) and client devices (client device A ( 106 A), client device N ( 106 N)) make up part of the IP subnet ( 108 ).
- each network device includes functionality to facilitate communication between client devices (client device A ( 106 A), client device N ( 106 N)) and other devices connected to the network devices (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) and the external network ( 102 ).
- each network device may include functionality to operate as an access point, gateway, controller, or any combination thereof.
- each network device may also provide NAT services to the client devices.
- each network device may be assigned network addresses allowing client devices (client device A ( 106 A), client device N ( 106 N)) to appropriately direct network traffic. Further, each network device may be assigned one or more addresses at one or more layers of the internet protocol suite. In one or more embodiments, a network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) may be assigned an internet layer address (such as an IP address). Further, each network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) may also be associated with one or more link layer addresses (such as a MAC address).
- link layer addresses such as a MAC address
- a network device includes functionality to operate as an access point and provides client devices (client device A ( 106 A), client device N ( 106 N)) access to other devices on the IP subnet ( 108 ). Such access may be wireless access and/or wired access. Further, network devices (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) may also include functionality to authenticate client devices (client device A ( 106 A), client device N ( 106 N)) for access to a network.
- each network device includes functionality to maintain network access for a client device (client device A ( 106 A), client device N ( 106 N)) that initially connected to a different network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)).
- a network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) provides a gateway IP address to each client device for which the network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) provides access.
- each network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) in the IP subnet ( 108 ) instructs each client device (client device A ( 106 A), client device N ( 106 N)) to use the same internet layer/IP address as the gateway address, regardless of which network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) is acting as the access point for that client device (client device A ( 106 A), client device N ( 106 N))).
- each network device includes functionality to operate as a gateway and facilitate communication between client devices (client device A ( 106 A), client device N ( 106 N)) and devices outside of the IP subnet ( 108 ) connected to the external network ( 102 ).
- traffic addressed to devices outside of the IP subnet ( 108 ) is first directed to a gateway (or a network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) functioning as a gateway) before being sent to the external network ( 102 ).
- network devices operating as gateways also provide NAT services to its assigned client devices.
- the gateway assignment tables are data structures that include entries linking client device identifiers (such as client device IP addresses or MAC addresses) and MAC addresses of the network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) acting as a gateway for that client device (client device A ( 106 A), client device N ( 106 N)).
- the gateway assignment tables are part of a system that receives queries with client device IP addresses or MAC addresses and returns the MAC address of the network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) assigned to that client device as a gateway.
- each client device is a user system implemented as a computing device with functionality to interact with the network devices (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)).
- each client device is a computer system used by a user to gain access to one or more other elements connected to the IP subnet ( 108 ) via network devices (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) and the external network ( 102 ).
- the client devices may include a network interface (not shown) used to send and receive messages to other devices.
- client devices include, but are not limited to, desktop computers, laptop computers, tablet computers, and smartphones.
- the network device once authenticated for network access by a network device, the network device (operating as an access point) provides network information allowing the client device (client device A ( 106 A), client device N ( 106 N)) to function on the IP subnet ( 108 ).
- This network information may include a router IP address, a subnet mask, and a gateway IP address.
- the same gateway IP address is given to each client device (client device A ( 106 A), client device N ( 106 N)) on the IP subnet ( 108 ) regardless of which network device (network device A ( 100 A), network device B ( 100 B), network device N ( 100 N)) is acting as the access point for that client device.
- FIG. 2 shows a flowchart for responding to an address resolution protocol (ARP) message in accordance with one or more embodiments. While the various steps in the flowchart are presented and described sequentially, one of ordinary skill will appreciate that some or all of the steps may be executed in different orders, may be combined or omitted, and some or all of the steps may be executed in parallel.
- ARP address resolution protocol
- the network device receives an ARP request for a gateway MAC address from a client device.
- the ARP request includes the gateway IP address provided to each client device on the IP subnet.
- the ARP request also includes an identifier for the client device sending the ARP request, such as an IP address or MAC address of the client device.
- Step 212 the network device queries the gateway assignment table using the identifier of the client device.
- Step 214 the network device determines whether a gateway for the client device is stored in the gateway assignment table. If in Step 214 , the gateway assignment table includes an entry for the client device, then in Step 216 , the network device retrieves the MAC address of the network device assigned as a gateway for the client device. In Step 218 , the network device sends an ARP response to the client device with the MAC address of the network device assigned as a gateway for the client device.
- Step 220 the network device determines a MAC address for a network device assigned to act as a gateway for the client device. In one or more embodiments, if the gateway assignment table for the network device does not include an entry for the client device, the client device may be connecting to the IP subnet for the first time or has recently roamed from another access point. In Step 222 , the network device stores the MAC address of the network device assigned to act as a gateway for the client device in the gateway assignment table. Details about Step 220 and Step 222 is provided in FIG. 3 .
- FIG. 3 shows a flowchart for determining a gateway MAC address for a client device in accordance with one or more embodiments. Specifically, FIG. 3 describes details of Step 220 and Step 222 in FIG. 2 . While the various steps in the flowchart are presented and described sequentially, one of ordinary skill will appreciate that some or all of the steps may be executed in different orders, may be combined or omitted, and some or all of the steps may be executed in parallel.
- Step 310 the network device receives a request to determine a gateway MAC address for a client device.
- this request is received by the network device itself to initiate the gateway MAC determination process.
- the network device calculates the load factor for itself.
- the load factor is a value indicating the amount of traffic currently handled by the network device.
- the value may be a measurement of, for example, the rate that data is processes through the network device or the current utilization of hardware resources on the network device.
- the load factor is calculated using a combination of measurements.
- the network device sends a broadcast gateway request with its own load factor to determine whether the client device is currently assigned a gateway.
- the broadcast gateway request is received by other network devices on the IP subnet.
- the network device determines whether a gateway response has been received. In one or more embodiments, the network device waits for a period of time before determining that a gateway response has not been received.
- a gateway offer is an offer by another network device to act as a gateway for the client device.
- the gateway offer includes the load factor of the network device sending the gateway offer.
- Step 320 the network device determines whether a gateway offer has been received. In one or more embodiments, the network device waits for a period of time before determining that a gateway offer has not been received. If in Step 320 , the network device determines that a gateway offer has not be received, then in Step 322 , the network device assigns itself as the gateway for the network device. If in Step 320 , the network device receives a gateway offer, then in Step 324 , the network device assigns a network device that sent a gateway offer as the gateway for the client device according to an assignment policy. In one or more embodiments, the gateway device employs a single waiting period for both gateway responses and gateway offers. Also in Step 324 , in one or more embodiments, the network device sends a gateway acknowledgement (ACK) to the network device sending the gateway offer indicating that the gateway offer has been accepted.
- ACK gateway acknowledgement
- an assignment policy instructs network devices regarding assigning gateways to client devices. Specifically, the assignment policy dictates which network device to select as a gateway under a given set of circumstances. Examples of assignment policies include the following:
- Lowest Load Factor Offered The network device compares its own load factor to the load factors received in gateway offers and assigns the client device to the network device with the lowest load factor.
- Load Factor Below Threshold The network device only considers gateway offers from network devices with load factors less than 70% of the load factor of the current network device. The client device is assigned to the network device with the lowest load factor considered. If no gateway offers include load factors of less than 70% of the load factor of the current network device, then the current network device assigns itself as the gateway.
- the network device only considers gateway offers from network devices within a certain network range of the current network device (using ping rate and/or knowledge of the physical configuration of the network).
- the client device is assigned to the network device with the lowest load factor considered. If no gateway offers are received from nearby network devices, or none of the considered gateway offers is below the load factor of the current network device, then the current network device assigns itself as the gateway.
- Step 316 the network device receives a gateway response
- Step 326 the network device retrieves the MAC address of the network device keyed to the client device from the responding network device.
- Step 328 the network device stores the gateway MAC address of the responding network device with an identifier for the client device in the gateway assignment table.
- FIG. 4 shows a flowchart for servicing a gateway assignment request in accordance with one or more embodiments. While the various steps in the flowchart are presented and described sequentially, one of ordinary skill will appreciate that some or all of the steps may be executed in different orders, may be combined or omitted, and some or all of the steps may be executed in parallel.
- the network device receives a gateway request with a client device identifier (for example, an IP address or MAC address of the client device) and load factor of the requesting network device.
- a client device identifier for example, an IP address or MAC address of the client device
- the gateway request is sent from another network device as described in FIG. 3 .
- Step 412 the network device queries its gateway assignment table with the client device identifier to determine whether an entry exists for the client device.
- the network device determines whether an entry exists for the client device. If in Step 414 , the network device determines that an entry exists for the client device, then in Step 416 , the network device generates a gateway response with the entry in the gateway assignment table.
- the gateway response includes the MAC address of the network device assigned as the gateway for the client device.
- Step 418 the network device sends the gateway response to the requesting network device.
- Step 414 the network device determines that no entry exists for the client device, then in Step 420 , the network device determines whether to send a gateway offer. Details regarding Step 420 are provided in FIG. 5 .
- FIG. 5 shows a flowchart for determining whether to send a gateway offer in accordance with one or more embodiments. Specifically, FIG. 5 describes details of Step 420 in FIG. 4 . While the various steps in the flowchart are presented and described sequentially, one of ordinary skill will appreciate that some or all of the steps may be executed in different orders, may be combined or omitted, and some or all of the steps may be executed in parallel.
- the network device calculates its own load factor.
- the load factor is calculated as described above.
- the load factor for each network device is calculated in the same manner to provide a useful comparison between the current states of different network devices.
- the network device compares its own load factor to the load factor of the requesting network device.
- the network device determines whether to send a gateway offer to the requesting network device. In one or more embodiments, the determination regarding whether to send a gateway offer is made based on the results of the comparison. For example, a gateway offer may be sent when the load factor for the current network device is below the load factor for the requesting network device. In one or more embodiments, a gateway offer may be sent if the load factor of the requesting network device is less than a certain percentage of the load factor for the current network device. In one or more embodiments, the determination regarding whether to send a gateway offer is made according to an assignment policy. In one or more embodiments, no comparison is made and the network device sends its load factor automatically.
- Step 514 the network device determines that a gateway offer should not be sent, then in Step 516 , the network device ignores the gateway request.
- Step 514 the network device determines that a gateway offer should be sent, then in Step 518 , the network device generates a gateway offer with its own load factor.
- the gateway offer also includes the MAC address of the current network device.
- Step 520 the network device sends the gateway offer to the requesting network device.
- Step 522 the network device waits to receive a gateway acknowledgement.
- a gateway acknowledgement indicates that the requesting network device has accepted the gateway offer sent by the current network device. If in Step 522 , the network device does not receive a gateway acknowledgement, then no further action is taken. In one or more embodiments, the network device determines that a gateway acknowledgement has not been received after an amount of time has expired without receiving the gateway acknowledgement.
- Step 522 the network device receives a gateway acknowledgement
- Step 524 the current network device stores its own MAC address with an identifier of the client device in its own gateway assignment table.
- FIG. 6 shows an example in accordance with one or more embodiments.
- three network devices network device A ( 600 A), network device B ( 600 B), network device C ( 600 C)
- Each network device includes a gateway assignment table (gateway assignment table A ( 604 A), gateway assignment table B ( 604 B), gateway assignment table C ( 604 C).
- Network device B ( 600 B) is communicatively coupled to four client devices (client device A ( 606 A), client device B ( 606 B), client device C ( 606 C), client device D ( 606 D)).
- the network devices make up the IP subnet ( 608 ).
- the MAC address for network device A ( 600 A) is “NDA:A1,” the MAC address for network device B ( 600 B) is “NDB:B2,” and the MAC address for network device C ( 600 C) is “NDC:C3.”
- each client device joining the IP subnet ( 608 ) is provided the gateway IP address “1.0.1.”
- the MAC address for client device A ( 606 A) is “CDA:1A”
- the MAC address for client device B ( 606 B) is “CDB:2B”
- the MAC address for client device C ( 606 C) is “CDC:3C”
- the MAC address for client device D ( 606 D) is “CDD:4D.”
- client device A ( 606 A) previously connected to the IP subnet ( 608 ). After being authenticated by network device B ( 600 B), client device A ( 606 A) is provided with the gateway IP address of “1.0.1.” As client device A ( 606 A) prepares to send data to the external network ( 602 ), client device A ( 606 A) sends an ARP request to network device B ( 600 B).
- the ARP request includes the gateway IP “1.0.1” and the MAC address (“CDA:1A”) of client device A ( 606 A).
- network device B ( 600 B) queries gateway assignment table B ( 604 B) with the client MAC address (“CDA:1A”) of client device A ( 606 A).
- Network device B ( 600 B) determines that an entry for “CDA:1A” exists in gateway assignment table B ( 604 B), and is keyed to the MAC address “NDA:A1.”
- Network device B ( 600 B) then sends an ARP response to client device A ( 606 A) with the MAC address “NDA:A1” as the gateway MAC address.
- Network device B ( 600 B) then receives an ARP request from client device B ( 606 B).
- client device B ( 606 B) is joining the IP subnet ( 608 ) for the first time.
- client device B ( 606 B) prepares to send data to the external network ( 602 )
- client device B ( 606 B) sends an ARP request to network device B ( 600 B).
- the ARP request includes the gateway IP “1.0.1” and the MAC address (“CDB:2B”) of client device B ( 606 B).
- network device B ( 600 B) queries gateway assignment table B ( 604 B) with the client MAC address (“CDB:2B”) of client device B ( 606 B).
- Network device B ( 600 B) determines that no entry for “CDB:2B” exists in gateway assignment table B ( 604 B).
- network device B ( 600 B) calculates its load factor. For the purposes of the example, assume the load factor is calculated as the percentage of utilization of hardware resources on the network device. Assume the load factor for network device B ( 600 B) is currently 54%. Network device B ( 600 B) then generates a broadcast gateway request.
- the broadcast gateway request includes the load factor (“54%”) and the client MAC address (“CDB:2B”) of client device B ( 606 B).
- Network device B ( 600 B) then sends out the broadcast gateway request to network device A ( 600 A) and network device C ( 600 C).
- network device B ( 600 B) receives no gateway response or gateway offer after a timeout period. Once the timeout period expires, network device B ( 600 B) assigns itself as the gateway for client device B ( 606 B), and stores its own MAC address (“NDB:B2”) in the gateway assignment table B ( 604 B) keyed to the MAC address (“CDB:2B”) of client device B ( 606 B). Network device B ( 600 B) then sends an ARP response to client device B ( 606 B) with the MAC address “NDB:B2” as the gateway MAC address.
- Network device B ( 600 B) then receives an ARP request from client device C ( 606 C).
- Client device C ( 606 C) initially connected to network device A ( 600 A), roamed, and is now connected to network device B ( 600 B).
- client device C ( 606 C) prepares to send data to the external network ( 602 )
- client device C ( 606 C) sends an ARP request to network device B ( 600 B).
- the ARP request includes the gateway IP “1.0.1” and the MAC address (“CDC:3C”) of client device C ( 606 C).
- network device B ( 600 B) Once network device B ( 600 B) receives the ARP request, network device B ( 600 B) queries gateway assignment table B ( 604 B) with the client MAC address (“CDC:3C”) of client device C ( 606 C). Network device B ( 600 B) determines that no entry for “CDC:3C” exists in gateway assignment table B ( 604 B). Following that determination, network device B ( 600 B) calculates its load factor. For the purposes of the example, assume the load factor is calculated as the percentage of utilization of hardware resources on the network device. Assume the load factor for network device B ( 600 B) is currently 22%. Network device B ( 600 B) then generates a broadcast gateway request.
- the load factor is calculated as the percentage of utilization of hardware resources on the network device. Assume the load factor for network device B ( 600 B) is currently 22%. Network device B ( 600 B) then generates a broadcast gateway request.
- the broadcast gateway request includes the load factor (“22%”) and the client MAC address (“CDC:3C”) of client device C ( 606 C).
- Network device B ( 600 B) then sends out the broadcast gateway request to network device A ( 600 A) and network device C ( 600 C).
- Network device A ( 600 A) receives the broadcast gateway message and queries gateway assignment table A ( 604 A) with the MAC address “CDC:3C.”
- Network device A ( 600 A) determines that an entry for “CDC:3C” exists in gateway assignment table A ( 604 A) and is keyed to the MAC address (“NDA:A1”) of network device A ( 600 A).
- Network device A ( 600 A) generates a gateway response with the gateway MAC address of “NDA:A1,” and the sends the gateway response to network device B ( 600 B).
- Network device B ( 600 B) receives the gateway response from network device A ( 600 A) that includes the gateway MAC address “NDA:A1.”
- Network device B ( 600 B) then sends an ARP response to client device C ( 606 C) with the MAC address “NDA:A1” as the gateway MAC address.
- Network device B ( 600 B) then receives an ARP request from client device D ( 606 D
- client device D ( 606 D) is also joining the IP subnet ( 608 ) for the first time.
- client device D ( 606 D) prepares to send data to the external network ( 602 )
- client device D ( 606 D) sends an ARP request to network device B ( 600 B).
- the ARP request includes the gateway IP “1.0.1” and the MAC address (“CDD:4D”) of client device D ( 606 D).
- network device B ( 600 B) queries gateway assignment table B ( 604 B) with the client MAC address (“CDD:4D”) of client device D ( 606 D).
- Network device B ( 600 B) determines that no entry for “CDD:4D” exists in gateway assignment table B ( 604 B).
- network device B ( 600 B) calculates its load factor. Assume that the load factor for network device B ( 600 B) has increased to 77%.
- Network device B ( 600 B) then generates a broadcast gateway request.
- the broadcast gateway request includes the load factor (“77%”) and the client MAC address (“CDD:4D”) of client device D ( 606 D).
- Network device B ( 600 B) then sends out the broadcast gateway request to network device A ( 600 A) and network device C ( 600 C).
- Network device C ( 600 C) receives the broadcast gateway message and queries gateway assignment table C ( 604 C) with the MAC address “CDD:4D.” Network device C ( 600 C) determines that no entry for “CDD:4D” exists in gateway assignment table C ( 604 C). Network device C ( 600 C) then calculates its own load factor, which is currently 39%. Assume that network device C ( 600 C) is configured such that a gateway offer is sent if the load factor of the current network device (network device C ( 600 C)) is less than the load factor of the requesting network device (network device B ( 600 B)). Network device C ( 600 C) compares its load factor (39%) to the load factor of the requesting network device (77%), and determines that a gateway offer should be sent.
- Network device C ( 600 C) then generates a gateway offer with its own load factor of 39%, and sends the gateway offer to network device B ( 600 B). Assume that network device B ( 600 B) is configured with an assignment policy such that all gateway offers are accepted. Network device B ( 600 B) receives the gateway offer, and assigns client device D ( 606 D) to network device C ( 600 C) by storing the MAC address (“CDD:4D”) of client device D ( 606 D) keyed to the MAC address (“NDC:C3”) of network device C ( 600 C) in gateway assignment table B ( 604 B).
- CDD:4D the MAC address
- NDC:C3 MAC address
- Network device B ( 600 B) then sends a gateway acknowledgement to network device C ( 600 C).
- network device C ( 600 C) Upon receiving the network acknowledgement, network device C ( 600 C) stores the MAC address (“CDD:4D”) of client device D ( 606 D) keyed to its own MAC address (“NDC:C3”) in gateway assignment table C ( 604 C).
- Network device A ( 600 A) generates a gateway response with the gateway MAC address of “NDA:A1,” and the sends the gateway response to network device B ( 600 B).
- Network device B ( 600 B) receives the gateway response from network device A ( 600 A) that includes the gateway MAC address “NDA:A1.”
- Network device B ( 600 B) then sends an ARP response to client device D ( 606 D) with the MAC address “NDA:A1” as the gateway MAC address.
- Embodiments may be implemented on virtually any type of computing system regardless of the platform being used.
- the computing system may be one or more mobile devices (for example, laptop computer, smart phone, personal digital assistant, tablet computer, or other mobile device), desktop computers, servers, blades in a server chassis, or any other type of computing device or devices that includes at least the minimum processing power, memory, and input and output device(s) to perform one or more embodiments.
- mobile devices for example, laptop computer, smart phone, personal digital assistant, tablet computer, or other mobile device
- desktop computers servers, blades in a server chassis, or any other type of computing device or devices that includes at least the minimum processing power, memory, and input and output device(s) to perform one or more embodiments.
- the computing system ( 700 ) may include one or more computer processor(s) ( 702 ), associated memory ( 704 ) (for example, random access memory (RAM), cache memory, flash memory, etc.), one or more storage device(s) ( 706 ) (for example, a hard disk, an optical drive such as a compact disk (CD) drive or digital versatile disk (DVD) drive, a flash memory stick, etc.), and numerous other elements and functionalities.
- the computer processor(s) ( 702 ) may be an integrated circuit for processing instructions.
- the computer processor(s) may be one or more cores, or micro-cores of a processor.
- the computing system ( 700 ) may also include one or more input device(s) ( 710 ), such as a touchscreen, keyboard, mouse, microphone, touchpad, electronic pen, or any other type of input device. Further, the computing system ( 700 ) may include one or more output device(s) ( 708 ), such as a screen (for example, a liquid crystal display (LCD), a plasma display, touchscreen, cathode ray tube (CRT) monitor, projector, or other display device), a printer, external storage, or any other output device. One or more of the output device(s) may be the same or different from the input device(s).
- input device(s) such as a touchscreen, keyboard, mouse, microphone, touchpad, electronic pen, or any other type of input device.
- the computing system ( 700 ) may include one or more output device(s) ( 708 ), such as a screen (for example, a liquid crystal display (LCD), a plasma display, touchscreen, cathode ray tube (CRT) monitor, projector, or
- the computing system ( 700 ) may be connected to a network ( 712 ) (for example, a local area network (LAN), a wide area network (WAN) such as the Internet, mobile network, or any other type of network) via a network interface connection (not shown).
- the input and output device(s) may be locally or remotely (for example, via the network ( 712 )) connected to the computer processor(s) ( 702 ), memory ( 704 ), and storage device(s) ( 706 ).
- LAN local area network
- WAN wide area network
- the input and output device(s) may be locally or remotely (for example, via the network ( 712 )) connected to the computer processor(s) ( 702 ), memory ( 704 ), and storage device(s) ( 706 ).
- Software instructions in the form of computer readable program code to perform embodiments may be stored, in whole or in part, temporarily or permanently, on a non-transitory computer readable medium such as a CD, DVD, storage device, a diskette, a tape, flash memory, physical memory, or any other computer readable storage medium.
- the software instructions may correspond to computer readable program code that when executed by a processor(s), is configured to perform embodiments.
- one or more elements of the aforementioned computing system ( 700 ) may be located at a remote location and connected to the other elements over a network ( 712 ). Further, embodiments may be implemented on a distributed system having a plurality of nodes, where each portion may be located on a different node within the distributed system.
- the node corresponds to a distinct computing device.
- the node may correspond to a computer processor with associated physical memory.
- the node may alternatively correspond to a computer processor or micro-core of a computer processor with shared memory and/or resources.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/170,524 US10135729B2 (en) | 2014-01-31 | 2014-01-31 | Distributed gateway for local subnet |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/170,524 US10135729B2 (en) | 2014-01-31 | 2014-01-31 | Distributed gateway for local subnet |
Publications (2)
Publication Number | Publication Date |
---|---|
US20150222540A1 US20150222540A1 (en) | 2015-08-06 |
US10135729B2 true US10135729B2 (en) | 2018-11-20 |
Family
ID=53755780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/170,524 Active 2036-02-03 US10135729B2 (en) | 2014-01-31 | 2014-01-31 | Distributed gateway for local subnet |
Country Status (1)
Country | Link |
---|---|
US (1) | US10135729B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10771571B2 (en) | 2019-02-05 | 2020-09-08 | Xerox Corporation | Method and system for pinpointing the location of an electronic device |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10680931B2 (en) * | 2017-07-10 | 2020-06-09 | Extreme Networks, Inc. | Ingress gateway selection for a shortest path bridging network to support inter domain multicast routing |
CN107547691B (en) * | 2017-09-29 | 2021-02-23 | 新华三技术有限公司 | Address resolution protocol message proxy method and device |
CN112929241B (en) * | 2021-03-26 | 2022-06-21 | 新华三信息安全技术有限公司 | Network testing method and device |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397260B1 (en) * | 1999-03-08 | 2002-05-28 | 3Com Corporation | Automatic load sharing for network routers |
US20020075844A1 (en) * | 2000-12-15 | 2002-06-20 | Hagen W. Alexander | Integrating public and private network resources for optimized broadband wireless access and method |
US20040114559A1 (en) * | 2002-12-16 | 2004-06-17 | Cisco Technology, Inc. | Inter-proxy communication protocol for mobile IP |
US20040153525A1 (en) * | 2003-01-31 | 2004-08-05 | 3Com Corporation | System and method for control of packet data serving node selection in a mobile internet protocol network |
US20040215752A1 (en) * | 2003-03-28 | 2004-10-28 | Cisco Technology, Inc. | Network address translation with gateway load distribution |
US20050025179A1 (en) * | 2003-07-31 | 2005-02-03 | Cisco Technology, Inc. | Distributing and balancing traffic flow in a virtual gateway |
US6865160B1 (en) * | 1998-05-04 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | Broadcast tree determination in load balancing switch protocols |
US20060187873A1 (en) * | 2005-02-18 | 2006-08-24 | Cisco Technology, Inc. | Pre-emptive roaming mechanism allowing for enhanced QoS in wireless network environments |
US20070002833A1 (en) * | 2005-06-30 | 2007-01-04 | Symbol Technologies, Inc. | Method, system and apparatus for assigning and managing IP addresses for wireless clients in wireless local area networks (WLANs) |
US20080186968A1 (en) * | 2007-02-02 | 2008-08-07 | Cisco Technology, Inc. | Triple-tier anycast addressing |
US20080293404A1 (en) * | 2007-05-24 | 2008-11-27 | Contigo Mobility, Inc. | Dynamically created and expanded wireless network |
US20080316982A1 (en) * | 2007-06-20 | 2008-12-25 | Microsoft Corporation | Managing Dense Wireless Access Point Infrastructures in Wireless Local Area Networks |
US20090042557A1 (en) * | 2007-02-05 | 2009-02-12 | Wefi, Inc. | System and Method For Mapping Wireless Access Points |
US20090097454A1 (en) * | 2007-10-16 | 2009-04-16 | Samsung Electronics Co., Ltd. | Apparatus and method for estimating cell load in wireless communication system |
US20100107162A1 (en) * | 2008-03-07 | 2010-04-29 | Aled Edwards | Routing across a virtual network |
US7881208B1 (en) * | 2001-06-18 | 2011-02-01 | Cisco Technology, Inc. | Gateway load balancing protocol |
US20110274082A1 (en) * | 2010-05-04 | 2011-11-10 | Cisco Technology, Inc. | Maintaining Point of Presence at Access Switch for Roaming Clients in Distributed Wireless Controller System |
US20120014386A1 (en) * | 2010-06-29 | 2012-01-19 | Futurewei Technologies, Inc. | Delegate Gateways and Proxy for Target Hosts in Large Layer 2 and Address Resolution with Duplicated Internet Protocol Addresses |
US20120163388A1 (en) * | 2010-12-28 | 2012-06-28 | Deepak Goel | Systems and methods for vlan tagging via cloud bridge |
US9055076B1 (en) * | 2011-06-23 | 2015-06-09 | Amazon Technologies, Inc. | System and method for distributed load balancing with load balancer clients for hosts |
-
2014
- 2014-01-31 US US14/170,524 patent/US10135729B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6865160B1 (en) * | 1998-05-04 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | Broadcast tree determination in load balancing switch protocols |
US6397260B1 (en) * | 1999-03-08 | 2002-05-28 | 3Com Corporation | Automatic load sharing for network routers |
US20020075844A1 (en) * | 2000-12-15 | 2002-06-20 | Hagen W. Alexander | Integrating public and private network resources for optimized broadband wireless access and method |
US7881208B1 (en) * | 2001-06-18 | 2011-02-01 | Cisco Technology, Inc. | Gateway load balancing protocol |
US20040114559A1 (en) * | 2002-12-16 | 2004-06-17 | Cisco Technology, Inc. | Inter-proxy communication protocol for mobile IP |
US20040153525A1 (en) * | 2003-01-31 | 2004-08-05 | 3Com Corporation | System and method for control of packet data serving node selection in a mobile internet protocol network |
US20040215752A1 (en) * | 2003-03-28 | 2004-10-28 | Cisco Technology, Inc. | Network address translation with gateway load distribution |
US20050025179A1 (en) * | 2003-07-31 | 2005-02-03 | Cisco Technology, Inc. | Distributing and balancing traffic flow in a virtual gateway |
US20060187873A1 (en) * | 2005-02-18 | 2006-08-24 | Cisco Technology, Inc. | Pre-emptive roaming mechanism allowing for enhanced QoS in wireless network environments |
US20070002833A1 (en) * | 2005-06-30 | 2007-01-04 | Symbol Technologies, Inc. | Method, system and apparatus for assigning and managing IP addresses for wireless clients in wireless local area networks (WLANs) |
US20080186968A1 (en) * | 2007-02-02 | 2008-08-07 | Cisco Technology, Inc. | Triple-tier anycast addressing |
US20090042557A1 (en) * | 2007-02-05 | 2009-02-12 | Wefi, Inc. | System and Method For Mapping Wireless Access Points |
US20080293404A1 (en) * | 2007-05-24 | 2008-11-27 | Contigo Mobility, Inc. | Dynamically created and expanded wireless network |
US20080316982A1 (en) * | 2007-06-20 | 2008-12-25 | Microsoft Corporation | Managing Dense Wireless Access Point Infrastructures in Wireless Local Area Networks |
US20090097454A1 (en) * | 2007-10-16 | 2009-04-16 | Samsung Electronics Co., Ltd. | Apparatus and method for estimating cell load in wireless communication system |
US20100107162A1 (en) * | 2008-03-07 | 2010-04-29 | Aled Edwards | Routing across a virtual network |
US20110274082A1 (en) * | 2010-05-04 | 2011-11-10 | Cisco Technology, Inc. | Maintaining Point of Presence at Access Switch for Roaming Clients in Distributed Wireless Controller System |
US20120014386A1 (en) * | 2010-06-29 | 2012-01-19 | Futurewei Technologies, Inc. | Delegate Gateways and Proxy for Target Hosts in Large Layer 2 and Address Resolution with Duplicated Internet Protocol Addresses |
US20120163388A1 (en) * | 2010-12-28 | 2012-06-28 | Deepak Goel | Systems and methods for vlan tagging via cloud bridge |
US9055076B1 (en) * | 2011-06-23 | 2015-06-09 | Amazon Technologies, Inc. | System and method for distributed load balancing with load balancer clients for hosts |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10771571B2 (en) | 2019-02-05 | 2020-09-08 | Xerox Corporation | Method and system for pinpointing the location of an electronic device |
Also Published As
Publication number | Publication date |
---|---|
US20150222540A1 (en) | 2015-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8761040B2 (en) | Controlling registration floods in VoIP networks via DNS | |
US10148741B2 (en) | Multi-homing load balancing system | |
AU2017427437A1 (en) | Pdu type setting method, ue policy setting method, and related entity | |
US11075880B2 (en) | Data service implementation method and apparatus, and terminal | |
US10673807B2 (en) | Method to distribute a centralized service | |
JP6279938B2 (en) | Connection management apparatus, communication system, connection management method and program | |
US10075410B2 (en) | Apparatus and methods for assigning internetwork addresses | |
US10135729B2 (en) | Distributed gateway for local subnet | |
US10979360B2 (en) | Resource obtaining method and apparatus | |
US20140365606A1 (en) | Information processing apparatus, information processing method, and program | |
US9417887B2 (en) | Method and apparatus for bootstrapping gateway in device management system | |
US20240163243A1 (en) | Systems and methods for improving arp/nd performance on host communication devices | |
EP2895961B1 (en) | Device discovery using broadcast technology | |
US10432744B2 (en) | Information processing apparatus, information processing system, and information processing method | |
US10389811B2 (en) | Cloud data transmission system and dynamic data flow decentralizing method thereof | |
US8260942B2 (en) | Cluster view performance | |
US9634987B2 (en) | Obtaining a MAC address from an external source | |
US9800686B2 (en) | Determining packet priority based on a location associated with a client device | |
US10862849B2 (en) | Address resolution system | |
JP5708288B2 (en) | Satellite communication method, control station and earth station | |
US9667728B2 (en) | Controller offloading | |
US11985038B2 (en) | Selecting forwarder in a network installation | |
JP5678590B2 (en) | Gateway device and IP communication relay method in gateway device | |
US11949746B2 (en) | IoT device connected to server via NAT, and IoT communication method | |
US11552928B2 (en) | Remote controller source address verification and retention for access devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ARUBA NETWORKS INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:UNNIMADHAVAN, SANDEEP;VADIVELU, JAGACHITTES;ADHYA, TILAK KUMAR;REEL/FRAME:032142/0531 Effective date: 20140131 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARUBA NETWORKS, INC.;REEL/FRAME:035814/0518 Effective date: 20150529 |
|
AS | Assignment |
Owner name: ARUBA NETWORKS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:036379/0274 Effective date: 20150807 |
|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARUBA NETWORKS, INC.;REEL/FRAME:045921/0055 Effective date: 20171115 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |