Method for network discovery using name servers
First Claim
1. In a communication network comprising:
- at least one local name server, each said local name server being capable of answering name-to-address resolution queries by using temporarily stored information or by further querying other name servers, at least one application server, each said application server having at least one application server address and being capable of receiving requests for at least one service and of performing said service, wherein each said service has a distinct service name, a plurality of clients, each said client being associated with at least one said local name server, and being capable to query any said associated local name server for the address of an application server providing a service with a specified service name, to receive from said associated local name server an answer specifying an address of one said application server, and to send a request for that service to that application server, and at least one authoritative name server, each said authoritative name server being capable of answering name-to-address resolution queries from said local name servers about any of said services, the content of every answer having a validity period, a method for discovering associations between clients and local name servers, comprising the steps of;
(A) producing a query record concerning a query received by an authoritative name server and the answer to that query, said query record comprising at least some of the following information items;
(q1) an identifier of the application server that is the answer to the query, (q2) a name of a service provided by the application server, (q3) a timestamp expressing the moment in time at which the answer is issued, (q4) a validity period defined for the identifier of said application server address, and (q5) an address of the local name server from which the query is received, wherein said item (q1) is mandatory if for all said application servers the union of their respective sets of application server addresses comprises more than one member;
said item (q2) is optional;
said item (q3) is mandatory;
said items (q4) is mandatory if said validity period may differ from one said answer to another, otherwise it is a predetermined constant value; and
said item (q5) is mandatory;
(B) producing a request record concerning a service request received by an application server, said request record comprising at least some of the following information items;
(r1) an identifier of the application server at which the request is received, (r2) a name of the service provided by the application server, (r3) a timestamp expressing the moment of time at which the request is received, and (r4) an address of the client having issued the request;
wherein said item (r1) is mandatory if for all said application servers the union of their respective sets of application server addresses comprises more than one member;
said item (r2) is optional, and said items (r3) and (r4) are mandatory; and
(C) finding matching pairs of one said query record and one said request record, and associating the address of the local name server from the query record in a matching pair to the address of the client from the request record in the same matching pair, a matching pair being defined as such first pair of one query record and one request record which satisfies the following conditions;
an address match condition that requires that the identifier of the application server be the same in the query record and in the request record of said first pair;
a timestamp match condition that requires the timestamp in the request record of said first pair to express a moment of time that is within said validity period starting at the moment of time expressed by the timestamp in the query record of said first pair, a service name match condition that requires that the service name from the query record match the service name from the request record whenever both said records contain said service name item;
otherwise, if at least one among said query record and said request record does not contain said service name item, then said service name match condition is considered to be satisfied; and
a uniqueness condition consisting in that no second pair of one query record and one request record be found to satisfy every said condition (1), (2) and (3) and to have the request record the same as the request record of the first pair, but the query record different from the query record of the first pair.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention provides a method and a system for associating the IP address of a client within a computer network with the address of the client'"'"'s local domain name system (LDNS) server (“network discovery” function), and may furthermore use this association to provide such functions as network proximity analysis and load balancing. When a client'"'"'s LDNS server queries the authoritative DNS (ADNS) server about an IP address of an application server, a name server monitor (NSM) of that ADNS server returns an IP address of an application server monitor (ASM) of the appropriate application server, instead of the address of the server itself, and records the IP address of the querying LDNS server, the ASM address returned, and a timestamp. When the ASM of the application server receives a request for web content from the client, it records the IP address of the client and a timestamp, with possibly other pertinent information (round-trip time, bandwidth estimate, etc.), and forwards the request to the application server. Both the NSM and the ASM then send their respective records to a Discovery and Monitoring Manager (DMM). The DMM finds matching pairs of those records and thus discovers LDNS-to-client associations. In addition to network discovery, a system according to the present invention has the ability to collect information about the state of the network between clients and servers, for its further storage and analysis on a per LDNS server basis.
-
Citations
20 Claims
-
1. In a communication network comprising:
-
at least one local name server, each said local name server being capable of answering name-to-address resolution queries by using temporarily stored information or by further querying other name servers, at least one application server, each said application server having at least one application server address and being capable of receiving requests for at least one service and of performing said service, wherein each said service has a distinct service name, a plurality of clients, each said client being associated with at least one said local name server, and being capable to query any said associated local name server for the address of an application server providing a service with a specified service name, to receive from said associated local name server an answer specifying an address of one said application server, and to send a request for that service to that application server, and at least one authoritative name server, each said authoritative name server being capable of answering name-to-address resolution queries from said local name servers about any of said services, the content of every answer having a validity period, a method for discovering associations between clients and local name servers, comprising the steps of;
(A) producing a query record concerning a query received by an authoritative name server and the answer to that query, said query record comprising at least some of the following information items;
(q1) an identifier of the application server that is the answer to the query, (q2) a name of a service provided by the application server, (q3) a timestamp expressing the moment in time at which the answer is issued, (q4) a validity period defined for the identifier of said application server address, and (q5) an address of the local name server from which the query is received, wherein said item (q1) is mandatory if for all said application servers the union of their respective sets of application server addresses comprises more than one member;
said item (q2) is optional;
said item (q3) is mandatory;
said items (q4) is mandatory if said validity period may differ from one said answer to another, otherwise it is a predetermined constant value; and
said item (q5) is mandatory;
(B) producing a request record concerning a service request received by an application server, said request record comprising at least some of the following information items;
(r1) an identifier of the application server at which the request is received, (r2) a name of the service provided by the application server, (r3) a timestamp expressing the moment of time at which the request is received, and (r4) an address of the client having issued the request;
wherein said item (r1) is mandatory if for all said application servers the union of their respective sets of application server addresses comprises more than one member;
said item (r2) is optional, and said items (r3) and (r4) are mandatory; and
(C) finding matching pairs of one said query record and one said request record, and associating the address of the local name server from the query record in a matching pair to the address of the client from the request record in the same matching pair, a matching pair being defined as such first pair of one query record and one request record which satisfies the following conditions;
an address match condition that requires that the identifier of the application server be the same in the query record and in the request record of said first pair;
a timestamp match condition that requires the timestamp in the request record of said first pair to express a moment of time that is within said validity period starting at the moment of time expressed by the timestamp in the query record of said first pair, a service name match condition that requires that the service name from the query record match the service name from the request record whenever both said records contain said service name item;
otherwise, if at least one among said query record and said request record does not contain said service name item, then said service name match condition is considered to be satisfied; and
a uniqueness condition consisting in that no second pair of one query record and one request record be found to satisfy every said condition (1), (2) and (3) and to have the request record the same as the request record of the first pair, but the query record different from the query record of the first pair. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for discovering associations between clients and local name servers, comprising:
-
at least one name server monitor, every said name server monitor being associated with a particular authoritative name server and producing query records with information from queries to that authoritative name server and from answers to said queries;
at least one application server monitor, every said application server monitor being associated with a particular application server and producing request records with information from service requests to that application server;
and at least one discovery and monitoring manager, said discovery and monitoring manager collecting information gathered by at least some of said name server monitors and by at least some of said application server monitors, and discovering associations between clients and local name servers. - View Dependent Claims (10, 11, 12, 13, 14, 15, 17, 18, 19, 20)
-
-
16. In a communication network comprising:
-
at least one local name server, each said local name server being capable of answering name-to-address resolution queries by using temporarily stored information or by further querying other name servers, at least one application server, each said application server having at least one application server address and being capable of receiving requests for at least one service and of performing said service, wherein each said service has a distinct service name, a plurality of clients, each said client being associated with at least one said local name server and being capable to query an associated local name server for the address of an application server providing a service with a specified service name, to receive from said associated local name server an answer specifying an address of one said application server, and to send a request for that service to that application server, and at least one authoritative name server, each said authoritative name server being capable of answering name-to-address resolution queries from said local name servers about any of said services, the content of every answer having a validity period, a method for discovering associations between clients and local name servers, comprising the steps of;
producing a query record concerning a query received by an authoritative name server and the answer to that query, said query record comprising the following information items;
an identifier of the application server that is the answer to the query, a timestamp expressing the moment in time at which the answer is issued, and an address of the local name server from which the query is received, producing a request record concerning a service request received by an application server, said request record comprising the following information items;
an identifier of the application server at which the request is received, a timestamp expressing the moment of time at which the request is received, and the address of the client having issued the request; and
finding matching pairs of one said query record and one said request record, and associating the address of the local name server from the query record in a matching pair to the address of the client from the request record in the same matching pair, a matching pair being defined as a first pair of one query record and one request record which satisfies;
an address match condition that requires that the identifier of the application server be the same in the query record and in the request record; and
a timestamp match condition that requires the timestamp of the request record be within a predetermined time after the timestamp in the query record.
-
Specification