Network connectivity determination
AssigneeMicrosoft Corporation
InventorsAlexandru Gavrilescu, Tin Qian
Life of this patent
Estimating the term…
Abstract
By reviewing incoming packets, the network connectivity of a network access site may be determined. The review can be passive where incoming packets are reviewed and no additional network traffic is generated or the review may be active where packet probes are sent to locations and the response are reviewed to determine connectivity.
Claims20
An method of determining network connectivity comprising:
- determining whether a request is for web connectivity or IP connectivity;
- if the request is for IP connectivity:
- executing network profiling to determine Hfar where Hfar is the number of hops to the edge of an ISP network;
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- and
- executing direct probing of a network to determine network connectivity;
- if the request is for web connectivity:
- determining if a web proxy is present in the network;
- if a web proxy is not present in the network:
- executing network profiling to determine Hfar where Hfar is the number of hops to the edge of an ISP network;
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- and
- executing direct probing of a network to determine network connectivity;
- if a web proxy is present in the network:
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- and
- executing direct probing of a network to determine network connectivity.
A computer readable medium comprising computer executable instructions for determining network connectivity, the computer executable instructions comprising instructions for:
- determining whether a request is for web connectivity or IP connectivity;
- if the request is for IP connectivity:
- executing network profiling to determine Hfar where Hfar is the number of hops to the edge of an ISP network;
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- and
- executing direct probing of a network to determine network connectivity;
- if the request is for web connectivity:
- determining if a web proxy is present in the network;
- if a web proxy is not present in the network:
- executing network profiling to determine Hfar where Hfar is the number of hops to the edge of an ISP network;
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- and
- executing direct probing of a network to determine network connectivity;
- if a web proxy is present in the network:
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- executing direct probing of a network to determine network connectivity;
- and wherein executing web proxy detection further comprises:
- storing a list of a plurality of seed URLs hosted on local sites along with the IP addresses of the hosts;
- performing HTTP GETs for at least two seed URLs;
- determining whether all the HTTP GETs responses match the expected content;
- if the determination of whether all the HTTP GETs responses match the expected content is yes:
- checking for the IP addresses for two responses;
- checking the TTLs for the two responses;
- if the IP addresses and TTLs are as expected, determining that proxy servers are present;
- performing name resolutions for three names;
- determining whether any name successfully resolves but the results are different from the expected result;
- if the determination is yes:
- detecting the presence of DNS spoofing;
- determining that web connectivity is not be present;
- invoking the passive analyzer;
- if the determination of whether all the HTTP GETs responses match the expected content is no:
- determining that a web proxy is present;
- checking IP addresses of responses;
- checking TTLs of responses;
- if addresses are the same for all responses, calculate hop count to proxy server;
- and
- if IP addresses are different than expected website addresses, determine the proxy server IP address.
A computer system comprising a processor for executing computer readable instructions, a memory for storing computer readable instructions and an input-output circuit, the memory storing computer executable instructions comprising steps for:
- determining whether a request is for web connectivity or IP connectivity;
- if the request is for IP connectivity:
- executing network profiling to determine Hfar where Hfar is the number of hops to the edge of an ISP network;
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- and
- executing direct probing of a network to determine network connectivity;
- if the request is for web connectivity:
- determining if a web proxy is present in the network;
- if a web proxy is not present in the network:
- executing network profiling to determine Hfar where Hfar is the number of hops to the edge of an ISP network;
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- and
- executing direct probing of a network to determine network connectivity;
- if a web proxy is present in the network:
- executing a passive analyzer that reviews incoming packets to determine network connectivity;
- executing triggered probing of a network to determine network connectivity;
- executing direct probing of a network to determine network connectivity;
- and wherein executing web proxy detection further comprises:
- storing a list of multiple seed URLs hosted on local sites along with the IP addresses of the hosts;
- performing HTTP GETs for a plurality of seed URLs;
- determining whether all the HTTP GETs responses match the expected content;
- if the determination of whether all the HTTP GETs responses match the expected content is yes:
- checking for the IP addresses for two responses;
- checking the TTLs for the two responses;
- performing name resolutions for a plurality of names;
- determining whether any name successfully resolves but the results are different from the expected result;
- if the determination is yes:
- detecting the presence of DNS spoofing;
- determining that web connectivity is not be present;
- invoking the passive analyzer;
- if the determination of whether all the HTTP GETs responses match the expected content is no:
- determining that a web proxy is present;
- checking IP addresses of responses;
- checking TTLs of responses;
- if addresses are the same for all responses, calculate hop count to proxy server;
- and
- if IP addresses are different than expected website addresses, determine the proxy server IP address;
- executing a passive analyzer of network connectivity comprises:
- if the network state is at a no connectivity state:
- moving to internet connectivity state if:
- received I-packet where and I packet comprises packets that arrive from an IPv4 source beyond Hfar;
- or
- received packet from an IPv6 source outside the IPv6 site;
- moving to local connectivity state if:
- received L-packet where an L Packet comprises packets that arrive from an IPv4 source outside the IPv4 subnet but before Hfar;
- or
- received packet from an IPv6 source outside the IPv6 subnet but within the IPv6 site;
- moving to subnet connectivity state if:
- received S packet where an S Packet comprises packets that arrive from a source with the same subnet prefix;
- or
- successfully received address resolution protocol (“ARP”) response from the default gateway;
- and
- staying in no connectivity state if:
- media disconnect or SendARP failed where SendARP sends an ARP request to obtain the physical address that corresponds to the specified destination IP address.
- if at a subnet connectivity state:
- moving to no connectivity state if:
- no received S packet for 30 seconds and SendARP failed;
- or
- a media disconnect;
- moving to local connectivity state if received L-packet;
- moving to internet connectivity state if received I packet;
- staying in subnet connectivity state if:
- received S packet;
- or
- SendARP success.
- if at a local connectivity state;
- moving to subnet connectivity state if no received L packet for 30 seconds;
- moving to internet connectivity state if received I packet;
- moving to no connectivity state if media disconnect;
- and
- staying in local connectivity state if received L packet;
- and
- if at an internet connectivity state:
- moving to local connectivity state if no received I packet for 30 seconds;
- moving to no connectivity state if media disconnects;
- and
- staying in internet connectivity state if received I packet.
Dependencies are inferred from the claim text.