9270786

System and Method for Proxying Tcp Connections Over a Scsi-Based Transport

PublishedFebruary 23, 2016
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
33 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer-implemented method executed by a server for communicating between the server and a client over a Fibre Channel (FC) network, the method comprising: receiving, at a server, a catalog of available transport paths from a client over the FC network, the transport paths established based on fibre channel protocol, each transport path having a load indicator indicating a measured condition of resource usage for the transport path; in response to receiving a request from the client for a virtual connection to communicate using Small Computer System Interface (SCSI) request/response, establishing the virtual connection based a transport path selected from the catalog, the virtual connection identified by a virtual connection identifier, wherein the transport path is selected at the server based on the load indicator to minimize the measured condition of the resource usage; receiving, from the client over the FC network, a first SCSI request including the virtual connection identifier for the virtual connection and a process descriptor for a server process at the server; creating a socket to the server process using the process descriptor; associating the socket with the virtual connection; receiving, from the client over the FC network, a second SCSI request, including the virtual connection identifier and a call message, wherein the second SCSI request is created by the client in response to a status of the first SCSI request, wherein the status indicates that the first SCSI request is failed based on a transport path failure between the client and the server over the FC network, and wherein the second SCSI request is received via a new transport path in response to the transport path failure; and writing the call message to the socket associated with the virtual connection.

2

2. The method of claim 1 , wherein the virtual connection identifier is included in a logical block address field of a command descriptor block of the first SCSI request.

3

3. The method of claim 1 , further comprising: reading a reply message from the socket associated with the virtual connection; receiving, from the client over the FC network, a third SCSI request, including the virtual connection identifier; and responding to the third SCSI request by sending a reply SCSI response, including the virtual connection identifier and the reply message, to the client over the FC network.

4

4. The method of claim 3 , further comprising: polling the socket associated with the virtual connection for the reply message.

5

5. The method of claim 1 , further comprising: responding to the first SCSI request by sending a first SCSI response to the client over the FC network, wherein the first SCSI response indicates that the virtual connection can be established, responding to the second SCSI request by sending a second SCSI response to the client over the FC network, wherein the second SCSI response includes a status code.

6

6. The method of claim 1 , wherein the socket is a stream socket.

7

7. The method of claim 3 , wherein the virtual connection identifier and the reply message are included in a payload of the reply SCSI response.

8

8. The method of claim 7 , wherein the payload of the reply SCSI response further includes one of a virtual connection tuple value and a sequence number.

9

9. The method of claim 2 , wherein the second SCSI request includes a payload having the call message and a logical block address field having a plurality of parameters, including the virtual connection identifier.

10

10. The method of claim 9 , further comprising: validating the second SCSI request; and extracting the call message from the second SCSI request.

11

11. The method of claim 10 , wherein validating the second SCSI request comprises: comparing a parameter of the plurality included in the logical block address of the second SCSI request to an expected parameter.

12

12. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a server computer, cause the server computer to: receive a catalog of available transport paths from a client over a Fibre Channel (FC) network, the transport paths established based on fibre channel protocol each transport path having a load indictor indicating a measured condition of resource usage for the transport path; in response to receiving a request from the client for a virtual connection to communicate using Small Computer System Interface (SCSI) request/response, establish the virtual connection based a transport path selected from the catalog of available transport paths, the virtual connection identified by a virtual connection identifier, wherein the transport path is selected at the server based on the load indicator to minimize the measured condition of the resource usage; receive, from the client over the FC network, a first SCSI request including the virtual connection identifier and a descriptor for a server process at the server; create a socket to the server process using the process descriptor; associate the socket with the virtual connection identifier; receive, from the client over the FC network, a second SCSI request including a call message, wherein the second SCSI request is created by the client in response to a status of the first SCSI request, wherein the status indicates that the first SCSI request is failed based on a transport path failure between the client and the server over the FC network, and wherein the second SCSI request is received via a new transport path in response to the transport path failure; and write the call message to the socket associated with the virtual connection identifier.

13

13. The non-transitory computer-readable storage medium of claim 12 , wherein the virtual connection identifier is included in a logical block address field of a command descriptor block of the first SCSI request.

14

14. The non-transitory computer-readable storage medium of claim 12 , wherein the instructions when executed by the server computer further cause the server computer to: read a reply message from the socket associated with the virtual connection; receive, from the client over the FC network, a third SCSI request, including the virtual connection identifier; and respond to the third SCSI request by sending a reply SCSI response, including the virtual connection identifier and the reply message, to the client over the FC network.

15

15. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions when executed by the server computer further cause the server computer to: poll the socket associated with the virtual connection for the reply message.

16

16. The non-transitory computer-readable storage medium of claim 12 , wherein the instructions when executed by the server computer further cause the server computer to: respond to the first SCSI request by sending a first SCSI response to the client over the FC network, wherein the first SCSI response indicates that the virtual connection can be established, respond to the second SCSI request by sending a second SCSI response to the client over the FC network, wherein the second SCSI response includes a status code.

17

17. The non-transitory computer-readable storage medium of claim 12 , wherein the socket is a stream socket.

18

18. The non-transitory computer-readable storage medium of claim 14 , wherein the virtual connection identifier and the reply message are included in a payload of the reply SCSI response.

19

19. The non-transitory computer-readable storage medium of claim 18 , wherein the payload of the reply SCSI response further includes one of a virtual connection tuple value and a sequence number.

20

20. The non-transitory computer-readable storage medium of claim 13 , wherein the second SCSI request includes a payload having the call message and a logical block address field having a plurality of parameters, including the virtual connection identifier.

21

21. The non-transitory computer-readable storage medium of claim 20 , wherein the instructions when executed by the server computer further cause the server computer to: validate the second SCSI request; and extract the call message from the second SCSI request.

22

22. The non-transitory computer-readable storage medium of claim 21 , wherein validating the second SCSI request comprises: comparing a parameter of the plurality included in the logical block address of the second SCSI request to an expected parameter.

23

23. A server system, comprising: a server host bus adapter to communicate Small Computer System Interface (SCSI) requests and responses over a Fibre Channel (FC) network with a client; a processor communicatively coupled with the server host bus adapter, the processor to execute a server Fibre Channel adapter configured to receive a catalog of available transport paths from the client over the FC network, the transport paths established based on fibre channel protocol, each transport path having a load indicator indicating a measured condition of resource usage for the transport path; in response to receiving a request from the client for a virtual connection to communicate using SCSI request/response, establish the virtual connection based a transport path selected from the catalog of available transport paths, the virtual connection identified by a virtual connection identifier, wherein the transport path is selected at the server based on the load indicator to minimize the measured condition of the resource usage; to receive, from the client over the FC network, a first SCSI request including the virtual connection identifier and a descriptor for a server process at the server; to create a socket to the server process using the process descriptor; to associate the socket with the virtual connection identifier; to receive, from the client over the FC network, a second SCSI request including a call message, wherein the second SCSI request is created by the client in response to a status of the first SCSI request, wherein the status indicates that the first SCSI request is failed based on a transport path failure between the client and the server over the FC network, and wherein the second SCSI request is received via a new transport path in response to the transport path failure; and to write the call message to the socket associated with the virtual connection identifier.

24

24. The server system of claim 23 , wherein the virtual connection identifier is included in a logical block address field of a command descriptor block of the first SCSI request.

25

25. The server system of claim 23 , wherein the server Fibre Channel adapter is further configured to read a reply message from the socket associated with the virtual connection identifier; to receive, from the client over the FC network, a third SCSI request, including a virtual connection identifier; and to respond to the third SCSI request by sending a reply SCSI response, including the reply message and the virtual connection identifier, to the client over the FC network.

26

26. The server system of claim 25 , wherein the server Fibre Channel adapter is further configured to poll the socket associated with the virtual connection identifier for the reply message.

27

27. The server system of claim 25 , wherein the server Fibre Channel adapter is further configured to respond to the first SCSI request by sending a first SCSI response, wherein the reply SCSI response includes an indication that the call message is received.

28

28. The server system of claim 23 , wherein the socket is a stream socket.

29

29. The server system of claim 28 , wherein the virtual connection identifier and the reply message are included in a payload of the reply SCSI response.

30

30. The server system of claim 29 , wherein the payload of the reply SCSI response further includes one of a virtual connection tuple value and a sequence number.

31

31. The server system of claim 28 , wherein the logical block address field of the first SCSI request further includes a timeout for writing the call message to the socket associated with the virtual connection identifier.

32

32. The server system of claim 23 , wherein the server Fibre Channel adapter is further configured to validate the second SCSI request; and to extract the call message from the second SCSI request.

33

33. The server system of claim 32 , wherein to validate the second SCSI request comprises: to compare a parameter included in a logical block address of the second SCSI request to an expected parameter.

Patent Metadata

Filing Date

Unknown

Publication Date

February 23, 2016

Inventors

Joseph C. Pittman

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “SYSTEM AND METHOD FOR PROXYING TCP CONNECTIONS OVER A SCSI-BASED TRANSPORT” (9270786). https://patentable.app/patents/9270786

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.