# US 10,320,739 B2 · Communication using DNS repurposing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,739 B2
- Document ID: US10320739B2
- Status: Granted
- Kind: B2
- Application number: 14/569,208
- Filed: 2014-12-12
- Published: 2016-06-16
- Granted: 2019-06-11
- Earliest claimed: 2014-12-12
- Assignees: Donuts Inc.
- Applicants: Donuts Inc.
- Inventors: Paul Stahura; Christopher L. Cowherd, Jr.
- Web page: https://patentgrep.com/patent/US10320739B2

## CPC

- H04L 61/4511: using domain name system [DNS]
- G06F 16/9537: Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
- H04L 2101/69: using geographic information, e.g. room number
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Technology for communicating by embedding messages in DNS requests/responses is disclosed. In many cases it is desirable for a device to communicate without that device having to supply network credentials. In some network environments, credentials are not required to send or receive DNS messages. The question section of a DNS request message may include a message for a destination DNS server and a query domain which, when using standard DNS routing, will result in the DNS request being directed to the intended destination DNS server. The message may be encoded in such a way that an algorithm run by the destination DNS server is able to parse the message from the DNS request.

## Claims

### Claim 1

A method for communicating using embedded DNS messages, the method comprising:
selecting a query domain corresponding to a destination DNS server,
wherein the destination DNS server is authoritative for servicing DNS requests for the selected query domain;
generating a message configured to be:
parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and
combined with the query domain to fit within a question portion of the DNS lookup request,
wherein the message comprises instructions to the destination DNS server specifying that a response should be sent to a device other than the device that originated the DNS lookup request;
generating the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain,
so that the question portion of the DNS lookup request includes both the generated message and the query domain,
wherein the query domain of the DNS lookup request is used to route the DNS lookup request to a DNS server providing a mapping between the query domain and an IP address; and
transmitting the DNS lookup request.

### Claim 2 (depends on 1)

The method of claim 1, further comprising,
encoding the message into an encoded version with an encoding algorithm,
wherein the destination DNS server has a parsing algorithm configured to extract the message from the encoded version.

### Claim 3 (depends on 1)

The method of claim 1, wherein the message comprises an identification of a parsing algorithm to use to extract data from the DNS lookup request.

### Claim 4

A method for communicating using embedded DNS messages, the method comprising:
selecting a query domain corresponding to a destination DNS server,
wherein the destination DNS server is authoritative for servicing DNS requests for the selected query domain;
generating a message configured to be:
parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and
combined with the query domain to fit within a question portion of the DNS lookup request,
wherein the message comprises an identification of a parsing algorithm to use to extract data from the DNS lookup request;
generating the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain,
so that the question portion of the DNS lookup request includes both the generated message and the query domain,
wherein the query domain of the DNS lookup request is used to route the DNS lookup request to a DNS server providing a mapping between the query domain and an IP address; and
transmitting the DNS lookup request.

### Claim 5 (depends on 4)

The method of claim 4 further comprising determining that an available network is an open DNS network.

### Claim 6 (depends on 4)

The method of claim 4, further comprising:
receiving a DNS response;
parsing an answer portion of the DNS response such that a reply message is retrieved; and
storing the reply message.

### Claim 7 (depends on 4)

The method of claim 4, further comprising:
waiting for a specified period of time determined to allow the time to live on cached DNS entries to expire.

### Claim 8 (depends on 4)

The method of claim 4, wherein the DNS lookup request is transmitted from one of:
a remote control device;
a suitcase;
a GPS sensing device;
a food package or carton;
a mail service letter or package;
a vehicle;
a fitness or personal health or activity tracker;
a light bulb;
an HVAC system or control;
a smartphone;
a wearable device;
an ingestible or implanted device;
a battery;
a camera;
a microphone;
a video game controller;
a plumbing fixture;
a beacon;
a wallet or electronic credit card;
an irrigation system;
a motion sensor;
a wall outlet;
a speaker; or
a weather sensor.

### Claim 9 (depends on 4)

The method of claim 4, wherein the message comprises instructions to the destination DNS server specifying that no response should be sent.

### Claim 10 (depends on 4)

The method of claim 4, wherein the message comprises instructions to the destination DNS server specifying:
when a response should be sent; or
that a response should be sent to another device upon receiving a request from the other device.

### Claim 11 (depends on 4)

The method of claim 4, wherein the message comprises an identification of the device originating the DNS lookup request.

### Claim 12 (depends on 4)

The method of claim 4, further comprising:
generating the question portion of the DNS lookup request, wherein generating the question portion of the DNS lookup request comprises:
concatenating at least the generated message and the query domain.

### Claim 13 (depends on 4)

The method of claim 4, wherein the message comprises instructions to the destination DNS server specifying that a response should be sent to a device other than the device that originated the DNS lookup request.

### Claim 14

A computer-readable memory storing instructions configured to, when executed by a computing device, cause the computing device to perform operations for communicating using embedded DNS messages, the operations comprising:
selecting a query domain corresponding to a destination DNS server,
wherein the destination DNS server is authoritative or an intermediary server for servicing DNS requests for the selected query domain;
generating a message configured:
to be parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and
to be combined with the query domain to fit within a question portion of the DNS lookup request,
wherein the message comprises an identification of a parsing algorithm, from among multiple possible parsing algorithms available to the destination DNS server, to use to extract data from the DNS lookup request;
generating the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain; and
transmitting the DNS lookup request.

### Claim 15

A computer-readable memory storing instructions configured to, when executed by a computing device, cause the computing device to perform operations for communicating using embedded DNS messages, the operations comprising:
selecting a query domain corresponding to a destination DNS server,
wherein the destination DNS server is authoritative or an intermediary server for servicing DNS requests for the selected query domain;
generating a message configured:
to be parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and
to be combined with the query domain to fit within a question portion of the DNS lookup request;
generating the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain; and
transmitting the DNS lookup request,
wherein the destination DNS server is configured to determine, from among a plurality of parsing algorithms, a parsing algorithm corresponding to the generated message within the DNS lookup request.

### Claim 16 (depends on 15)

The computer-readable memory of claim 15, wherein the operations further comprise:
determining that an available network is an open DNS network.

### Claim 17 (depends on 15)

The computer-readable memory of claim 15, wherein the operations further comprise:
receiving a DNS response;
parsing an answer portion of the DNS response such that a reply message is retrieved; and
storing the reply message.

### Claim 18 (depends on 15)

The computer-readable memory of claim 15, wherein the operations further comprise:
waiting for a specified period of time determined to allow the time to live on cached DNS entries to expire.

### Claim 19 (depends on 15)

The computer-readable memory of claim 15, wherein the message comprises instructions to the destination DNS server specifying that no response should be sent.

### Claim 20 (depends on 15)

The computer-readable medium of claim 15, wherein the DNS lookup request is transmitted from one of:
a suitcase;
a food package or carton;
an HVAC system or control;
a plumbing fixture;
an irrigation system;
a motion sensor; or
a weather sensor.

### Claim 21

A computing system for communicating using embedded DNS messages, the computing system comprising:
a processor;
a memory;
a first component configured to select a query domain corresponding to a destination DNS server,
wherein the destination DNS server is authoritative or an intermediary server for servicing DNS requests for the selected query domain;
a second component configured to generate a message configured:
to be parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and
to be combined with the query domain to fit within a question portion of the DNS lookup request;
a third component configured to generate the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain; and
a fourth component configured to transmit the DNS lookup request,
wherein the destination DNS server is configured to determine, from among a plurality of parsing algorithms, a parsing algorithm corresponding to the generated message within the DNS lookup request,
wherein the first component comprises computer-executable instructions stored in the memory for execution by the computing system,
wherein the second component comprises computer-executable instructions stored in the memory for execution by the computing system,
wherein the third component comprises computer-executable Instructions stored in the memory for execution by the computing system,
wherein the fourth component comprises computer-executable instructions stored in the memory for execution by the computing system.

### Claim 22 (depends on 21)

The computing system of claim 21, wherein the message comprises instructions to the destination DNS server specifying that no response should be sent.
