UDP transport for web services
First Claim
1. A computer-implemented method comprising:
- receiving a search query entered in a search engine input field by a user on a client, the search query including at least one term;
appending a domain suffix to the at least one term to convert the search query into a form of a domain name in a domain name system (DNS) format, where the domain suffix is associated with a first server;
transmitting the converted query as a DNS request for a DNS record to the first server associated with the domain suffix, where the DNS request is transmitted in a payload of a User Datagram Protocol (UDP) packet;
appending information identifying the client and the first server to the UDP packet;
transmitting the UDP packet from the first server to one or more second servers;
generating one or more DNS replies in response to the converted query; and
transmitting the one or more DNS replies from the one or more second servers to the client in the payload of one or more UDP packets, the transmitted replies bypassing the first server.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods, and computer program products for routing of search requests and replies using UDP transport are provided. In some implementations, a method is provided. The method includes receiving a query at a client, converting the query into the form of a domain name in a DNS format, transmitting the query as a DNS request for a DNS record to a first server, where the DNS request is transmitted in the payload of a UDP packet, appending information identifying the client and the first server to the UDP packet, transmitting the UDP packet from the first server to one or more second servers to respond to the query, generating one or more DNS replies in response to the query, and transmitting the one or more DNS replies to the client in the payload of one or more UDP packets, the transmitted replies bypassing the first server.
22 Citations
24 Claims
-
1. A computer-implemented method comprising:
-
receiving a search query entered in a search engine input field by a user on a client, the search query including at least one term; appending a domain suffix to the at least one term to convert the search query into a form of a domain name in a domain name system (DNS) format, where the domain suffix is associated with a first server; transmitting the converted query as a DNS request for a DNS record to the first server associated with the domain suffix, where the DNS request is transmitted in a payload of a User Datagram Protocol (UDP) packet; appending information identifying the client and the first server to the UDP packet; transmitting the UDP packet from the first server to one or more second servers; generating one or more DNS replies in response to the converted query; and transmitting the one or more DNS replies from the one or more second servers to the client in the payload of one or more UDP packets, the transmitted replies bypassing the first server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method comprising:
-
receiving a search query entered in a search engine input field by a user on a client, the search query including at least one term; appending a domain suffix to the at least one term to convert the search query into a form of a domain name in a domain name system (DNS) format, where the domain suffix is associated with a destination server; transmitting the converted query as a DNS request for a DNS record to the destination server associated with the domain suffix in the converted query, where the DNS request is transmitted in the payload of a User Datagram Protocol (UDP) packet including an Internet Protocol (IP) address and port number of the client; and receiving query results in a DNS reply, where the query results are provided in a payload of one or more UDP packets and where the DNS reply is received from a server different from the destination server.
-
-
9. A computer-implemented method comprising:
-
at a client, encoding a search query, entered in a search engine input field by a user, into a form of a domain name in a domain name system (DNS) format including appending a domain suffix to the search query, where the domain suffix is associated with a destination server; resolving the domain suffix to determine an Internet Protocol (IP) address for the destination server; transmitting a User Datagram Protocol (UDP) packet to the IP address for the destination server, the UDP packet containing the encoded query as a DNS request for a DNS record for a domain name that corresponds to the domain suffix, the UDP packet containing an IP address and a port number for the client; and receiving query results in a DNS reply to the DNS request at the client from a query server processing the search query.
-
-
10. A computer-implemented method comprising:
-
receiving at a first server a converted query, where the converted query is formatted as a domain name in a domain name system (DNS) request, where the converted query includes a domain suffix appended to a search query entered in a search engine input field by a user on a client, and where the converted query received in a User Datagram Protocol (UDP) packet as a DNS request; adding information identifying the client and the first server to the UDP packet; and forwarding the UDP packet to a second server, where the second server generates a DNS reply in response to the converted query and transmits the DNS reply to the client in a payload of one or more UDP packets, the transmitted reply bypassing the first server.
-
-
11. A computer program product, encoded on a tangible machine-readable storage device, operable to cause data processing apparatus to perform operations comprising:
-
receiving a search query entered in a search engine input field by a user on a client, the search query including at least one term; appending a domain suffix to the at least one term to convert the search query into a form of a domain name in a domain name system (DNS) format, where the domain suffix is associated with a first server; transmitting the converted query as a DNS request for a DNS record to the first server associated with the domain suffix, where the DNS request is transmitted in the payload of a User Datagram Protocol (UDP) packet; appending information identifying the client and the first server to the UDP packet; transmitting the UDP packet from the first server to one or more second servers; generating one or more DNS replies in response to the converted query; and transmitting the one or more DNS replies from the one or more second servers to the client in a payload of one or more UDP packets, the transmitted replies bypassing the first server. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A computer program product, encoded on a tangible machine-readable storage device, operable to cause data processing apparatus to perform operations comprising:
-
receiving a search query entered in a search engine input field by a user on a client, the search query including at least one term; appending a domain suffix to the at least one term to convert the search query into a form of a domain name in a domain name system (DNS) format, where the domain suffix is associated with a destination server; transmitting the converted query as a DNS request for a DNS record to the destination server associated with the domain suffix in the converted query, where the DNS request is transmitted in a payload of a User Datagram Protocol (UDP) packet including an Internet Protocol (IP) address and port number of the client; and receiving query results in a DNS reply, where the query results are provided in the payload of one or more UDP packets and where the DNS reply is received from a server different from the destination server.
-
-
19. A computer program product, encoded on a tangible machine-readable storage device, operable to cause data processing apparatus to perform operations comprising:
-
at a client, encoding a search query, entered in a search engine input field by a user, into a form of a domain name in a domain name system (DNS) format including appending a domain suffix to the search query, where the domain suffix is associated with a destination server; resolving the domain suffix to determine an Internet Protocol (IP) address for the destination server; transmitting a User Datagram Protocol (UDP) packet to the IP address for the destination server, the UDP packet containing the encoded query as a DNS request for a DNS record for a domain name that corresponds to the domain suffix, the UDP packet containing an IP address and a port number for the client; and receiving query results in a DNS reply to the DNS request at the client from a query server processing the search query.
-
-
20. A computer program product, encoded on a tangible machine readable storage device, operable to cause data processing apparatus to perform operations comprising:
-
receiving at a first server a converted query, where the converted query is formatted as a domain name in a domain name system (DNS) request, where the converted query includes a domain suffix appended to a search query entered in a search engine input field by a user on a client, and where the converted query is received in a User Datagram Protocol (UDP) packet as a DNS request; adding information identifying the client and the first server to the UDP packet; and forwarding the UDP packet to a second server, where the second server generates a DNS reply in response to the converted query and transmits the DNS reply to the client in a payload of one or more UDP packets, the transmitted reply bypassing the first server.
-
-
21. A system comprising:
-
a client operable to format a search query, entered in a search engine input field by a user, as a domain name in a domain name system (DNS) format including appending a domain suffix to the search query, the client being further operable to transmit the formatted query as a DNS request for a DNS record in a User Datagram Protocol (UDP) packet; a first server operable to receive the DNS request from the client, the first server being operable to forward the DNS request, where the domain suffix is associated with the first server; and one or more second servers operable to receive the DNS request from the first server, each second server being operable to respond to the formatted query with a DNS reply transmitted to the client as one or more UDP packets without passing through the first server.
-
-
22. A system comprising:
one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising; receiving a search query entered in a search engine input field by a user on a client, the search query including at least one term; appending a domain suffix to the at least one term to convert the search query into a form of a domain name in a domain name system (DNS) format, where the domain suffix is associated with a destination server; transmitting the converted query as a DNS request for a DNS record to the destination server associated with the domain suffix in the converted query, where the DNS request is transmitted in a payload of a User Datagram Protocol (UDP) packet including an Internet Protocol (IP) address and port number of the client; and receiving query results in a DNS reply, where the query results are provided in the payload of one or more UDP packets and where the DNS reply is received from a server different from the destination server.
-
23. A system comprising:
-
one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising; at a client, encoding a search query, entered in a search engine input field by a user, into a form of a domain name in a domain name system (DNS) format including appending a domain suffix to the search query, where the domain suffix is associated with a destination server; resolving the domain suffix to determine an Internet Protocol (IP) address for the destination server; transmitting a User Datagram Protocol (UDP) packet to the IP address for the destination server, the UDP packet containing the encoded query as a DNS request for a DNS record for a domain name that corresponds to the domain suffix, the UDP packet containing an IP address and a port number for the client; and receiving query results in a DNS reply to the DNS request at the client from a query server processing the search query.
-
-
24. A system comprising:
one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising; receiving at a first server a converted query, where the converted query is formatted as a domain name in a domain name system (DNS) request, where the converted query includes a domain suffix appended to a search query entered in a search engine input field by a user on a client, and where the converted query is received in a User Datagram Protocol (UDP) packet as a DNS request; adding information identifying the client and the first server to the UDP packet; and forwarding the UDP packet to a second server, where the second server generates a DNS reply in response to the converted query and transmits the DNS reply to the client in a payload of one or more UDP packets, the transmitted reply bypassing the first server.
Specification