# US 2020/0396200 A1 · Using dns to communicate mp-tcp capability of server devices

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

- Number: US 2020/0396200 A1
- Document ID: US20200396200A1
- Status: Published application
- Kind: A1
- Application number: 16/438,200
- Filed: 2019-06-11
- Published: 2020-12-17
- Earliest claimed: 2019-06-11
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Rajneesh Kumar; Bharat Dhaker; Peyush Gupta
- Web page: https://patentgrep.com/patent/US20200396200A1

## CPC

- H04L 61/4511: using domain name system [DNS]
- H04L 69/14: Multichannel or multilink protocols
- H04L 61/5061: Pools of addresses
- H04L 69/163: In-band adaptation of TCP data exchange; In-band control procedures
- H04L 67/303: Terminal profiles
- H04L 2101/663: Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

This disclosure is related to devices, systems, and techniques for using a Domain Name System (DNS) server to identify one or more network devices capable of operating according to a protocol. For example, a DNS system device includes a memory and one or more processors implemented in circuitry. The one or more processors are configured to receive, from a client device, a DNS query including a specification of a hostname and a request for an MP-TCP capability, determine, using the memory, at least one IP address corresponding to the hostname and corresponding to one of the devices that is MP-TCP capable, and send, to the client device, a DNS response including an indication of the at least one of the IP addresses.

## Claims

### Claim 1

A domain name system (DNS) device comprising:
a memory configured to store a list of Internet protocol (IP) addresses for a set of hostnames, at least one of the hostnames having two or more IP addresses, the memory further storing data representing, for each of the IP addresses, whether a network device corresponding to the IP address is capable of performing multipath transmission control protocol (MP-TCP), the network device being part of a set of network devices; and
one or more processors implemented in circuitry and configured to:
receive, from a client device, a DNS query including a specification of a hostname and a request for an MP-TCP capability;
determine, using the memory, at least one of the IP addresses corresponding to the hostname and corresponding to one of the network devices that is MP-TCP capable; and
send, to the client device, a DNS response including an indication of the at least one of the IP addresses.

### Claim 2 (depends on 1)

The DNS device of claim 1, wherein to determine at least one of the IP addresses corresponding to the hostname and corresponding to a respective network device that is MP-TCP capable, the one or more processors are configured to:
parse the DNS query to identify an options information field of a set of information fields; and
determine, based on the options information field, that the options information field indicates a request that the DNS response include an indication of the at least one of the IP addresses corresponding to a respective network device that is MP-TCP capable.

### Claim 3 (depends on 1)

The DNS device of claim 1, wherein the one or more processors are further configured to:
receive configuration data specifying a subset of network devices of the set of network devices that are MP-TCP capable; and
store, in the memory, data indicative of the subset of network devices that are MP-TCP capable.

### Claim 4 (depends on 1)

The DNS device of claim 1, wherein the one or more processors are further configured to:
send each transmission control protocol (TCP) synchronization (syn) packet of a set of TCP syn packets to a respective network device of the set of network devices, wherein a header of each TCP syn packet of the set of TCP syn packets includes a TCP flag requesting an MP-TCP capability of the respective network device of the set of network devices;
receive, from each respective network device of the set of network devices, a TCP acknowledged (TCP ack) packet of a set of TCP ack packets, wherein a header of each TCP ack packet of the set of TCP ack packets includes a TCP flag indicating whether the respective network device is MP-TCP capable;
determine, based on the TCP flag of each TCP ack packet of the set of TCP ack packets, whether each respective network device corresponding to a TCP ack packet of the set of TCP ack packets is MP-TCP capable; and
store, in the memory, data representing whether each respective network device corresponding to a TCP ack packet of the set of TCP ack packets is MP-TCP capable.

### Claim 5 (depends on 1)

The DNS device of claim 1, wherein to determine at least one of the IP addresses corresponding to the hostname and corresponding to a respective network device that is MP-TCP capable, the one or more processors are configured to:
determine two or more IP addresses corresponding to the hostname and corresponding to a respective network device that is MP-TCP capable, wherein the one or more processors are configured to:
identify an IP address of the two or more IP addresses that is preferable to send to the client device in the DNS response, and wherein to send the DNS response, the one or more processors are configured to:
send, to the client device, the DNS response indicating the IP address of the two or more IP addresses that is preferable to send to the client device.

### Claim 6 (depends on 1)

The DNS device of claim 1, wherein the DNS query includes a set of query information fields comprising:
a name information field including the specification of the hostname, wherein the hostname is coded in binary format;
a type information field including a specification of a query type of the DNS query, wherein the query type is coded in binary format, and wherein the query type indicates that the DNS query represents a request to return one or more IP addresses;
a class information field including a specification of a query class, wherein the query class is coded in binary format;
a time-to-live (TTL) information field including a specification of an amount of time in seconds, wherein the amount of time is coded in binary format, and wherein the amount of time represents an elapsed time that passes before the DNS query is invalidated; and
an options information field including the request for the MP-TCP capability, wherein the request for the MP-TCP capability is coded in binary format, the request for the MP-TCP capability occupying a single bit.

### Claim 7 (depends on 1)

The DNS device of claim 1, wherein the DNS response includes a set of response information fields comprising:
a name information field including the specification of the hostname included in the DNS query, wherein the hostname is coded in binary format;
a data information field including data representing the indication of the at least one of the IP addresses corresponding to the hostname and corresponding to a respective network device that is MP-TCP capable, wherein the data is coded in binary format;
a data length information field including an indication of a length in bits of the data information field, wherein the indication of the length in bits is coded in binary format;
a type information field including a specification of a data type of the data included in the data information field, wherein the specification of the data type is coded in binary format, and the data type is an IP address data type;
a class information field including a specification of a data class of the data included in the data information field, wherein the specification of the data class is coded in binary format; and
an options information field including a specification of whether each IP address indicated in the data information field is MP-TCP capable.

### Claim 8 (depends on 1)

The DNS device of claim 1, wherein to receive the DNS query, the one or more processors are configured to:
receive the DNS query according to User Datagram Protocol (IMP), and wherein the one or more processors are further configured to:
determine whether a size of the DNS response is greater than a threshold of bytes.

### Claim 9 (depends on 8)

The DNS device of claim 8, wherein the one or more processors determines that the size of the DNS response is not greater than the threshold number of bytes, and wherein the one or more processors are configured to:
send the DNS response to the client device according to UDP.

### Claim 10 (depends on 8)

The DNS device of claim 8, wherein the one or more processors determines that the size of the DNS response is greater than the threshold number of bytes, and wherein the one or more processors are configured to:
send the DNS response to the client device according to Transmission Control Protocol (TCP).

### Claim 11

A method comprising:
receiving, by one or more processors of a domain name system (DNS) device, a DNS query from a client device, the DNS query including a specification of a hostname and a request for an MP-TCP capability, wherein the DNS device comprises a memory configured to store a list of Internet protocol (IP) addresses for a set of hostnames, at least one of the hostnames having two or more IP addresses, the memory further storing data representing, for each of the IP addresses, whether a network device corresponding to the IP address is capable of performing multipath transmission control protocol (MP-TCP), the network device being part of a set of network devices;
determining, using the memory, at least one of the IP addresses corresponding to the hostname and corresponding to one of the network devices that is MP-TCP capable; and
sending, by the one or more processors, a DNS response to the client device, the DNS response including an indication of the at least one of the IP addresses.

### Claim 12 (depends on 11)

The method of claim 11, wherein determining at least one of the IP addresses corresponding to the hostname and corresponding to a respective network device that is MP-TCP capable comprises:
parsing the DNS query to identify an options information field of a set of information fields; and
determining, based on the options information field, that the options information field indicates a request that the DNS response include an indication of the at least one of the IP addresses corresponding to a respective network device that is NIP-TCP capable.

### Claim 13 (depends on 11)

The method of claim 11, further comprising:
receiving configuration data specifying a subset of network devices of the set of network devices that are MP-TCP capable; and
storing, in the memory, data indicative of the subset of network devices that are MP-TCP capable.

### Claim 14 (depends on 11)

The method of claim 11, further comprising:
Sending each transmission control protocol (TCP) synchronization (syn) packet of a set of TCP syn packets to a respective network device of the set of network devices, wherein a header of each TCP syn packet of the set of TCP syn packets includes a TCP flag requesting an MP-TCP capability of the respective network device of the set of network devices;
Receiving, from each respective network device of the set of network devices, a TCP acknowledged (TCP ack) packet of a set of TCP ack packets, wherein a header of each TCP ack packet of the set of TCP ack packets includes a TCP flag indicating whether the respective network device is MP-TCP capable;
determining, based on the TCP flag of each TCP ack packet of the set of TCP ack packets, whether each respective network device corresponding to a TCP ack packet of the set of TCP ack packets is MP-TCP capable; and
storing, in the memory, data representing whether each respective network device corresponding to a TCP ack packet of the set of TCP ack packets is MP-TCP capable.

### Claim 15 (depends on 11)

The method of claim 11, wherein determining at least one of the IP addresses corresponding to the hostname and corresponding to a respective network device that is MP-TCP capable comprises:
determining two or more IP addresses corresponding to the hostname and corresponding to a respective network device that is MP-TCP capable, wherein the method further comprises:
identifying an IP address of the two or more IP addresses that is preferable to send to the client device in the DNS response, and wherein sending DNS response comprises:
sending, to the client device, the DNS response indicating the IP address of the two or more IP addresses that is preferable to send to the client device.

### Claim 16 (depends on 11)

The method of claim 11, wherein receiving the DNS query comprises:
receiving the DNS query according to User Datagram Protocol (UDP), and wherein the method further comprises:
determining whether a size of the DNS response is greater than a threshold number of bytes.

### Claim 17 (depends on 16)

The method of claim 16, wherein the one or more processors determines that the size of the DNS response is not greater than the threshold number of bytes, and wherein the method further comprises:
sending the DNS response to the client device according to UDP.

### Claim 18 (depends on 16)

The method of claim 16, wherein the one or more processors determines that the size of the DNS response is greater than the threshold number of bytes, and wherein the method further comprises:
sending the DNS response to the client device according to Transmission Control Protocol (TCP).

### Claim 19

A method comprising:
sending, by a client device, a DNS query to one or more processors of a domain name system (DNS) device, the DNS query including a specification of a hostname and a request for a multipath transmission control protocol (MP-TCP) capability, wherein the DNS device comprises a memory configured to store a list of Internet protocol (IP) addresses for a set of hostnames, at least one of the hostnames having two or more IP addresses, the memory further storing data representing, for each of the IP addresses, whether a network device corresponding to the IP address is capable of performing MP-TCP, the network device being part of a set of network devices; and
receiving, by the client device, a DNS response including an indication of at least one of the IP addresses corresponding to the hostname and corresponding to one of the network devices that is MP-TCP capable.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
sending, by the client device, a service request to a respective network device corresponding to at least one IP address indicated by the DNS response; and
receiving, by the client device, a service in response to sending the service request.
