Selecting a connection in a network
OwnerIain Kibet Fraserinventor
Life of this patent
Estimating the term…
Abstract
A machine, such as a router (or other network appliance capable of filtering incoming packets), determines whether a packet is from a location that is likely to be capable of establishing an acceptable connection quality. If it is determined that an acceptable connection quality is unlikely to be obtained, the machine blocks the packet so that the connection is not established. If it is determined that the acceptable connection quality is likely to be obtained, the packet is received, and the connection is allowed. As a consequence of blocking packets from locations that are expected to have a poor connection, connections are not established with servers that will provide poor service and a poor user experience.
Claims33
A system comprising:
- a machine having
- a processor system including one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor to implement a method including at least,
- determining by the machine whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that the one or more predetermined criteria are not met, blocking by the machine, the packet;
- and
- if the determining determines that the one or more predetermined criteria are met, processing by the machine, the packet;
- the determining of whether the one or more predetermined criteria are met including at least determining, by the machine, whether the packet originated from a location that is within a particular predefined vicinity of a destination,
- if the packet originated from within the particular predefined vicinity of the destination, at least one of the one or more predetermined criteria are met, and unless there is another of the one or more predetermined criteria that is not met, the packet is allowed to pass, by the machine;
- and
- if the packet originated from outside of the particular predefined vicinity of the destination, the one or more predetermined criteria are not met, and the packet is blocked by the machine.
A system comprising:
- a first machine having
- a processor system including one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor system to implement a method including at least, hosting, by the first machine, a service;
- searching, by a second machine, for a host that hosts the service;
- determining by the first machine whether a packet, from the second machine, is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that the one or more predetermined criteria are not met, blocking by the first machine, the packet;
- and
- if the determining determines that the one or more predetermined criteria are met, processing by the first machine, the packet;
- the determining of whether the one or more predetermined criteria are met including at least determining, by the first machine, whether the packet originated from a location that is within a particular predefined vicinity,
- if the packet originated from within the particular predefined vicinity, at least one of the one or more predetermined criteria are met, and therein unless there is another of the one or more predetermined criteria that is not met, the packet is allowed to pass, by the first machine;
- and
- if the packet originated from outside of the particular predefined vicinity, the one or more predetermined criteria are not met, and therein the packet is blocked by the first machine,
- as a result of the packet being blocked, the second machine ceasing to send packets to the first machine.
A system comprising:
- a machine having
- a processor system including one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor system to implement a method including at least,
- determining, by the machine, whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that at least one of the one or more predetermined criteria are not met, blocking by the machine, the packet;
- and
- if the determining determines that the one or more predetermined criteria are met, processing by the machine, the packet;
- the determining of whether the one or more predetermined criteria are met including at least determining, by the machine, whether the packet originated from a location that is within a particular predefined vicinity,
- if the packet originated from within the particular predefined vicinity, at least one of the one or more predetermined criteria are met, and therein unless there is another of the one or more predetermined criteria that is not met, the packet is allowed to pass, by the machine;
- and
- if the packet originated from outside of the particular predefined vicinity, the therein the one or more predetermined criteria are not met, and the packet is blocked by the machine;
- the determining of whether the packet originated from the location that is within the particular predefined vicinity including at least determining a location associated with a subnet by at least
- determining, by the machine, a subnet identifier from an index that stores an association between subnet addresses and subnet identifiers, and
- determining, by the machine, a location based on the subnet identifier from the index that stores the association of the subnet identifiers with locations associated with the subnet identifiers;
- and
- the index that stores the association between the subnet addresses and the subnet identifiers being compressed, and the determining of the subnet identifier, from the index that stores the association between the subnet addresses and the subnet identifiers, including at least extracting the subnet identifier from the index that stores the association between the subnet addresses and the subnet identifiers while the index that stores the association between the subnet addresses and the subnet identifiers is compressed.
A system comprising:
- a machine having
- a processor system including one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor system to implement a method including at least,
- determining, by the machine, whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that at least one of the one or more predetermined criteria are not met, blocking by the machine, the packet;
- and
- if the determining determines that the one or more predetermined criteria are met, processing by the machine, the packet;
- the determining of whether the one or more predetermined criteria are met including at least determining, by the machine, whether the packet originated from a location that is within a particular predefined vicinity,
- if the packet originated from within the particular predefined vicinity, at least one of the one or more predetermined criteria are met, and therein unless there is another of the one or more predetermined criteria that is not met, the packet is allowed to pass, by the machine;
- and
- if the packet originated from outside of the particular predefined vicinity, the one or more predetermined criteria are not met, and therein the packet is blocked by the machine;
- the determining of whether the packet originated from the location that is within the particular predefined vicinity including at least determining a location associated with a subnet by at least
- determining, by the machine, a subnet identifier from an index that stores an association between subnet addresses and subnet identifiers, and determining, by the machine, a location based on the subnet identifier from the index that stores the association of the subnet identifiers with locations associated with the subnet identifiers;
- extracting the subnet identifier, the extracting of the subnet identifier including at least navigating the index that stores the association between the subnet addresses and the subnet identifiers, based on the subnet address, by at least computing, by the machine, a rank of a current node and computing a value associated with a next node, the computing of the value associated with the next node including at least
- computing, by the machine, twice the rank of the current node, if a node of interest is a first child of the current node, where twice the rank of the current node is the value associated with the next node and
- computing, by the machine, twice the rank of the current node plus one, if the node of interest is a second child of the current node, where twice the rank of the current node plus one is the value associated with the next node.
A system comprising:
- a machine having
- a processor system including one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor system to implement a method including at least,
- determining, by the machine, whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that at least one of the one or more predetermined criteria are not met, blocking by the machine, the packet;
- and
- if the determining determines that the one or more predetermined criteria are met, processing by the machine, the packet;
- the determining of whether the one or more predetermined criteria are met including at least determining, by the machine, whether the packet originated from a location that is within a particular predefined vicinity,
- if the packet originated from within the particular predefined vicinity, at least one of the one or more predetermined criteria are met, and therein unless there is another of the one or more predetermined criteria is not met, the packet is allowed to pass, by the machine;
- and
- if the packet originated from outside of the particular predefined vicinity, the one or more predetermined criteria are not met, and therein the packet is blocked by the machine;
- the determining of whether the packet originated from the location that is within the particular predefined vicinity including at least determining a location associated with a subnet by at least
- determining, by the machine, a subnet identifier from an index that stores an association between subnet addresses and subnet identifiers, and
- determining, by the machine, a location based on the subnet identifier from the index that stores the association of the subnet identifiers with locations associated with the subnet identifiers;
- the determining of the subnet identifier including at least
- extracting the subnet identifier, the extracting of the subnet identifier including at least computing a rank of a node associated with the subnet;
- and
- determining a value of the subnet identifier based on the rank of the node associated with the subnet.
A system comprising:
- a machine having a processor system including
- one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor system to implement a method including at least,
- determining, by the machine, whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that at least one of the one or more predetermined criteria are not met, blocking, by the machine, the packet;
- and
- if the determining determines that the one or more predetermined criteria are met, processing by the machine, the packet;
- the determining of whether the one or more predetermined criteria are met including at least determining, by the machine, whether the packet originated from a location that is within a particular predefined vicinity,
- if the packet originated from within the particular predefined vicinity, at least one of the one or more predetermined criteria are met, and therein unless there is another of the one or more predetermined criteria is not met, the packet is allowed to pass, by the machine;
- and
- if the packet originated from outside of the particular predefined vicinity, the one or more predetermined criteria are not met, and therein the packet is blocked by the machine;
- the determining of whether the packet originated from the location that is within the particular predefined vicinity including at least determining a location associated with a subnet by at least
- determining, by the machine, a subnet identifier from an index that stores an association between subnet addresses and subnet identifiers, and
- determining, by the machine, a location based on the subnet identifier from the index that stores the association of the subnet identifiers with a collection of locations;
- the determining of the subnet identifier including extracting the subnet identifier, the extracting of the subnet identifier including at least
- determining, by the machine, a bucket corresponding to a node of interest, the node of interest being a node of a tree represented by the index that stores the association between the subnet addresses and the subnet identifiers;
- retrieving, by the machine, a rank associated with the bucket;
- determining, by the machine, a word within the bucket corresponding to the node of interest;
- the determining of the word including determining, by the machine, words within the bucket based on a start of the bucket and the word corresponding to the node of interest;
- retrieving, by the machine, a popcount for each word from the start of the bucket until the word corresponding to the node of interest, the popcount being a count of all bits in the word that are set to a particular value;
- determining, by the machine, how many bits are set to the particular value that
- (1) are in the word corresponding to the node of interest, and
- (2) are associated with bit locations starting at a beginning of the word and ending at a bit associated with the node of interest;
- determining, by the machine, a sum of
- the rank associated with the bucket,
- the popcount of each word from the start of the bucket to the word associated with the node of interest, and
- the bits are set to the particular value that
- (1) are in the word corresponding to the node of interest, and
- (2) are associated with the bit locations starting at the beginning of the word and the ending at the bit associated with the node of interest.
A system comprising:
- a machine having a processor system including
- one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor system to implement a method including at least,
- determining, by the machine, whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that at least one of the one or more predetermined criteria are not met, blocking, by the machine, the packet;
- and
- if the determining determines that the one or more predetermined criteria are met, processing, by the machine, the packet;
- the determining of whether the one or more predetermined criteria are met including at least determining, by the machine, whether the packet originated from a location that is within a particular predefined vicinity,
- if the packet originated from within the particular predefined vicinity, at least one of the one or more predetermined criteria are met, and therein unless there is another of the one or more predetermined criteria is not met, the packet is allowed to pass, by the machine;
- and
- if the packet originated from outside of the particular predefined vicinity, the one or more predetermined criteria are not met, and therein the packet is blocked by the machine;
- the determining of whether the packet originated from the location that is within the particular predefined vicinity including at least determining a location associated with a subnet by at least
- determining, by the machine, a subnet identifier from an index that stores an association between subnet addresses and subnet identifiers, and
- determining, by the machine, a location based on the subnet identifier from the index that stores the association of the subnet identifiers with locations associated with the subnet identifiers;
- the index that stores the association of the subnet identifiers with the locations associated with the subnet identifiers being compressed, and
- the determining of the subnet identifier from the index that stores the association between the subnet identifiers and the locations associated with the subnet identifiers, including at least
- searching for the locations associated with the subnet identifiers in the index that stores the association of the subnet identifiers with the locations associated with the subnet identifiers, while the index that stores the association of the subnet identifiers with the locations associated with the subnet identifiers is compressed.
A system comprising:
- a machine having a processor system including
- one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor system to implement a method including at least,
- determining, by the machine, whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that at least one of the one or more predetermined criteria are not met, blocking, by the machine, the packet;
- if the determining determines that the one or more predetermined criteria are met, processing, by the machine, the packet;
- the determining of whether the one or more predetermined criteria are met including at least determining, by the machine, whether the packet originated from a location that is within a particular predefined vicinity,
- if the packet originated from within the particular predefined vicinity, at least one of the one or more predetermined criteria are met, and therein unless there is another of the one or more predetermined criteria is not met, the packet is allowed to pass, by the machine;
- and
- if the packet originated from outside of the particular predefined vicinity, the one or more predetermined criteria are not met, and therein the packet is blocked by the machine;
- the determining of whether the packet originated from the location that is within the particular predefined vicinity including, at least, determining a location associated with a subnet by at least
- determining, by the machine, a subnet identifier from an index that stores an association between subnet addresses and subnet identifiers, and
- determining, by the machine, the location that is within the particular predefined vicinity, based on the subnet identifier from the index that stores the association of the subnet identifiers with locations associated with the subnet identifiers;
- and
- the index that stores the association of the subnet identifiers with the locations associated with the subnet identifiers, having the locations associated with the subnet identifiers encoded with bit sequences, where location coordinates that occur more frequently are encoded with shorter bit sequences than bit sequences representing location coordinates that occur less frequently, the method further including at least
- determining, by the machine, a bucket that stores information associated with a subnet identifier of interest by at least searching, by the machine, a collection of subnet identifiers characterizing buckets;
- and
- determining, by the machine, a location within the bucket by at least searching within the bucket for the subnet identifier of interest.
A system comprising:
- a machine having a processor system including
- one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor system to implement a method including at least,
- determining, by the machine, whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that at least one of the one or more predetermined criteria are not met, blocking, by the machine, the packet;
- if the determining determines that the one or more predetermined criteria are met, processing, by the machine, the packet;
- if the packet originated from outside of a particular predefined vicinity, the one or more predetermined criteria are not met, and therein the packet is blocked by the machine;
- the determining of whether the packet originated from the location that is within the particular predefined vicinity including at least the determining of the location including at least determining a location associated with a subnet by at least
- determining, by the machine, a location based on a subnet identifier from one or more indexes that store an association of subnet identifiers with location-related information;
- the one or more indexes that store the association of the subnet identifiers with the location-related information being compressed, and
- the determining of the location associated with the subnet, based on the subnet identifier from the one or more indexes that stores the association of the subnet identifiers with the location-related information, including at least searching the one or more indexes while the one or more indexes are compressed.
A system comprising:
- a first machine having a processor system including
- one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor to implement a method including at least,
- determining by the first machine whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that the one or more predetermined criteria are not met, blocking by the first machine, the packet;
- if the determining determines that the one or more predetermined criteria are met, processing by the first machine, the packet;
- and
- as a result of blocking the packet, the first machine ceasing to receive packets from a second machine that sent the packet.
A system comprising:
- a first machine having a processor system including one or more processors and a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor to implement a method including at least,
- determining by the first machine whether a packet is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that the one or more predetermined criteria are not met, blocking by the first machine, the packet;
- if the determining determines that the one or more predetermined criteria are met, processing by the first machine, the packet;
- and
- as a result of blocking the packet, the first machine ceasing to receive packets from a second machine that sent the packet;
- wherein the determining of whether the one or more predetermined criteria are met including at least determining whether, by the first machine, a ping time is less than a given threshold;
- if the ping time is less than the given threshold, at least one of the one or more predetermined criteria are met, and therein unless there is another of the one or more predetermined criteria are met, and unless there is another of the one or more predetermined criteria is not met, the packet is allowed to pass, by the first machine;
- and
- if the ping time is greater than the given threshold, at least of one or more predetermined criteria is not met, and therein the packet is blocked by the first machine.
A system comprising:
- a first machine having
- a processor system including one or more processors and
- a memory system;
- the memory system storing one or more machine instructions, which when invoked by the one or more processors causes the processor to implement a method including at least,
- determining by the first machine whether a message is from a location that meets one or more predetermined criteria, the one or more predetermined criteria being indicative of whether an acceptable connection quality is obtainable;
- if the determining determines that the one or more predetermined criteria are not met, blocking by the first machine, the message;
- if the determining determines that the one or more predetermined criteria are met, processing by the first machine, the message;
- and
- as a result of blocking the message, the first machine ceasing to receive the message from a second machine that sent the message.
Dependencies are inferred from the claim text.