# US 2019/0173960 A1 · Method, device and computer program product for protocol selection

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

- Number: US 2019/0173960 A1
- Document ID: US20190173960A1
- Status: Published application
- Kind: A1
- Application number: 16/173,018
- Filed: 2018-10-29
- Published: 2019-06-06
- Earliest claimed: 2017-10-27
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Junping Zhao; Zhi Ying
- Web page: https://patentgrep.com/patent/US20190173960A1

## CPC

- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L 69/18: Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments of the present disclosure relate to a method, device and computer program product for protocol selection. According to embodiments of the present disclosure, a client may determine supported transmission protocols based on its own hardware information and transmit a connection request to a server using a protocol with a higher priority. The server may determine supported protocols based on its own hardware information and respond to the connection request according to the supported protocols. In this way, the establishment of the connection between the client and the server is transparent to users.

## Claims

### Claim 1

A method implemented at a first device, comprising:
determining, based on hardware information of the first device, protocols supported by the first device;
selecting a target protocol from the protocols based on priorities of the protocols; and
transmitting, to a second device, a request for connection establishment using the target protocol.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining protocols supported by the first device comprises:
determining a protocol-related hardware capability of the first device;
determining a protocol-related privilege of the first device; and
determining the protocols supported by the first device based on the hardware capability and the privilege.

### Claim 3 (depends on 1)

The method of claim 1, wherein selecting a target protocol from the protocols comprises:
selecting, from the protocols, a protocol with the highest priority as the target protocol.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining priorities of the protocols based on at least one of:
pre-configured information associated with priorities;
a user preference for a protocol; and
historical information associated with protocol usage.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
in response to receiving, from the second device, a positive acknowledgment to the request for connection establishment, establishing a connection with the second device using the target protocol.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
in response to receiving, from the second device, a negative acknowledgment to the request for connection establishment, establishing a connection with the second device using one of the protocols with a low priority.

### Claim 7 (depends on 1)

The method of claim 1, wherein the protocols comprise at least one of: a Transmission Control Protocol (TCP) and a Remote Direct Memory Access (RDMA) protocol.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
establishing threads associated with protocols supported by the first device.

### Claim 9

A method implemented at a second device, comprising:
determining, based on hardware information of the second device, protocols supported by the second device;
receiving, from a first device, a request for connection establishment, the request for connection establishment being transmitted using a target protocol, the target protocol being determined based on priorities of protocols supported by the first device; and
transmitting, to the first device, an acknowledgment to the request for connection establishment based on the protocols supported by the second device and the target protocol.

### Claim 10 (depends on 9)

The method of claim 9, wherein transmitting, to the first device, an acknowledgment to the request for connection establishment comprises:
in response to the second device supporting the target protocol, transmitting a positive acknowledgment to the request to the first device.

### Claim 11 (depends on 9)

The method of claim 9, wherein transmitting, to the first device, an acknowledgment to the request for connection establishment comprises:
in response to the second device failing to support the target protocol, transmitting a negative acknowledgment to the request to the first device.

### Claim 12 (depends on 9)

The method of claim 9, further comprising:
establishing threads associated with protocols supported by the second device.

### Claim 13

A first device, comprising:
at least one processor; and
a memory coupled to the at least one processor, the memory having instructions stored thereon, the instructions, when executed by the at least one processor, causing the first device to perform acts including:
determining, based on hardware information of the first device, protocols supported by the first device;
selecting a target protocol from the protocols based on priorities of the protocols; and
transmitting, to a second device, a request for connection establishment using the target protocol.

### Claim 14 (depends on 13)

The first device of claim 13, wherein determining protocols supported by the first device comprises:
determining a protocol-related hardware capability of the first device;
determining a protocol-related privilege of the first device; and
determining the protocols supported by the first device based on the hardware capability and the privilege.

### Claim 15 (depends on 13)

The first device of claim 13, wherein selecting a target protocol from the protocols comprises:
selecting, from the protocols, a protocol with the highest priority as the target protocol.

### Claim 16 (depends on 13)

The first device of claim 13, wherein the acts further comprise:
determining priorities of the protocols based on at least one of:
pre-configured information associated with priorities;
a user preference for a protocol; and
historical information associated with protocol usage.

### Claim 17 (depends on 13)

The first device of claim 13, wherein the acts further comprise:
in response to receiving, from the second device, a positive acknowledgment to the request for connection establishment, establishing a connection with the second device using the target protocol.

### Claim 18 (depends on 13)

The first device of claim 13, wherein the acts further comprise:
in response to receiving, from the second device, a negative acknowledgment to the request for connection establishment, establishing a connection with the second device using one of the protocols with a low priority.

### Claim 19 (depends on 13)

The first device of claim 13, wherein the protocols comprise at least one of:
a Transmission Control Protocol (TCP) and a Remote Direct Memory Access (RDMA) protocol.

### Claim 20 (depends on 13)

The first device of claim 13, wherein the acts further comprise:
establishing threads associated with protocols supported by the first device.

### Claim 21

A second device, comprising:
at least one processor; and
a memory coupled to the at least one processor, the memory having instructions stored thereon, the instructions, when executed by the at least one processor, causing the second device to perform acts including:
determining, based on hardware information of the second device, protocols supported by the second device;
receiving, from a first device, a request for connection establishment, the request for connection establishment being transmitted using a target protocol, is the target protocol being determined based on priorities of protocols supported by the first device; and
transmitting, to the first device, an acknowledgment to the request for connection establishment based on the protocols supported by the second device and the target protocol.

### Claim 22 (depends on 21)

The second device of claim 21, wherein transmitting, to the first device, an acknowledgment to the request for connection establishment comprises:
in response to the second device supporting the target protocol, transmitting a positive acknowledgment to the request to the first device.

### Claim 23 (depends on 21)

The second device of claim 21, wherein transmitting, to the first device, an acknowledgment to the request for connection establishment comprises:
in response to the second device failing to support the target protocol, transmitting a negative acknowledgment to the request to the first device.

### Claim 24 (depends on 21)

The second device of claim 21, wherein the acts further comprise:
establishing threads associated with protocols supported by the second device.

### Claim 25 (depends on 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

A computer readable medium comprising instructions stored thereon, the instructions, when executed by at least one processing unit of a machine, causing the machine to implement the method according to any of claims 1-12.
