Claims
- 1. A method of reducing network congestion, comprising:
receiving a message by a network device coupling a high speed network link with a low speed or TCP/IP based network link, said network device having a buffer memory, said message being sent from a requesting device to a destination device requesting that data be sent over said low speed or TCP/IP based link from the destination device to the requesting device; determining whether the buffer memory has sufficient space to buffer the amount of data identified by the message request; and if so, transferring the message to the destination device and buffering the requested data received from the destination device in response to the message, wherein the requested data is sent over the low speed or TCP/IP based link destined for the requesting device; if not, holding the message until the buffer has sufficient space.
- 2. The method of claim 1, wherein the message is a SCSI read request operation identifying data to be read from a target storage device.
- 3. The method of claim 1, wherein the network device is a switch device.
- 4. The method of claim 1, wherein the message is a SCSI ready-to-transfer (RTT) message responsive to a write request.
- 5. The method of claim 4, wherein the requesting device is a storage device responding to the write request and wherein the destination device is a device that sent the write request.
- 6. A method of reducing network congestion, comprising:
monitoring operation requests received by a network device coupling one or more high speed network links with a low speed network link or TCP/IP based network link, said network device having a buffer memory, said requests being sent between requesting devices and destination devices identifying data to be sent over said low speed or TCP/IP based link; for each received operation request, determining whether the buffer memory has sufficient space to buffer the amount of data identified by the request; and if so, transferring the operation request to the destination device and buffering the identified data received from the destination device, wherein the requested data is sent over the low speed or TCP/IP based link destined for the requesting device; if not, holding the operation request until the buffer has sufficient space.
- 7. The method of claim 6, wherein each operation request includes one of a SCSI read request identifying data to be read from a target storage device and a SCSI Ready-To-Transfer request identifying data to be written to a target storage device.
- 8. The method of claim 6, further including applying a fairness algorithm to determine priority when multiple operation requests are held due to insufficient buffer space.
- 9. A method of enhancing write performance in a network including first and second switch devices coupled over a high latency network link, wherein the first switch device is coupled to an initiator device over a first high speed network link, and wherein the second switch device is coupled to a target device over a second high speed network link, the method comprising:
automatically responding to a write request received by the first switch from the initiator with a first ready-to-transfer (RTT) message on behalf of the target device, the first RTT message requesting the write data from the initiator; sending the write request to the target via the second switch device; receiving the write data from the initiator, said write data being sent in response to the first RTT message; and automatically sending the write data from the first switch to the second switch over the high latency network link so that the write data is stored on the second switch device, wherein when the target sends one or more second RTT messages requesting all or a portion of the write data, the second switch is able to respond with the requested amount of the stored write data.
- 10. The method of claim 9, wherein the high latency network link comprises one or a plurality of network links.
- 11. A method of enhancing write performance in a network including first and second switch devices coupled over a first network link, wherein the first switch device is coupled to an initiator device over a second network link, and wherein the second switch device is coupled to a target device over a third network link, wherein the first network link has a slower data transfer rate than both the second and third network links, the method comprising:
automatically responding to a write request received by the first switch from the initiator with a transfer message on behalf of the target device, the transfer message requesting the write data from the initiator; sending the write request to the target via the second switch device; receiving the write data from the initiator, said write data being sent in response to the transfer message; and automatically sending the write data from the first switch to the second switch over the first network link so that the write data is stored on the second switch device, wherein when the target sends one or more transfer messages requesting all or a portion of the write data, the second switch is able to immediately respond with the requested amount of the stored write data.
- 12. The method of claim 11, wherein the transfer message is a SCSI ready-to-transfer (RTT) message.
- 13. The method of claim 11, wherein the third network link is a storage area network (SAN).
- 14. The method of claim 11, wherein the third network link includes one or more Fibre Channel links.
- 15. The method of claim 11, wherein the first link is a high latency network link.
- 16. The method of claim 11, wherein the second link is one of a storage area network (SAN) and a local area network (LAN).
- 17. A network switch device, comprising:
a first port for coupling to a first network link; a second port for coupling to a second network link, the second network link having a lower data transfer rate than the first network link; a buffer memory; and a congestion management module executing on the switch device, said module being configured to:
monitor messages being sent from requesting devices to a destination device requesting that data be sent over said second network link from the destination device to the requesting device; and determine, for each message, whether the buffer memory has sufficient space to buffer the amount of data identified by the message; wherein if it is determined that there is sufficient space, the switch device transfers the message to the destination device and buffers the requested data received from the destination device in response to the message, wherein the requested data is sent over the second network link destined for the requesting device, and if not, the switch device holds the message until the buffer has sufficient space.
- 18. The switch device of claim 17, wherein each message is one of a SCSI formatted read request and a SCSI formatted ready-to-transfer request (RTT).
- 19. The switch device of claim 17, wherein the first network link includes a storage area network, and wherein the second network link includes a wide area network.
- 20. A control module executing on a network switch device, the switch device including a processor, a buffer, a first port for coupling to a low speed or TCP/IP based network link, and one or more second ports for coupling to one or more high speed network links, said module being configured with instructions to:
monitor messages being sent from requesting devices to a destination device requesting that data be sent over said low speed or TCP/IP based link from the destination device to the requesting device; determine, for each message, whether the buffer memory has sufficient space to buffer the amount of data identified by the message; and if it is determined that there is sufficient space, to control the switch device to transfer the message to the destination device and buffer the requested data received from the destination device in response to the message, wherein the requested data is sent over the low speed or TCP/IP based link destined for the requesting device; and if not, to control the switch device to hold the message until the buffer has sufficient space.
- 21. The module of claim 20, wherein each message is one of a SCSI formatted read request and a SCSI formatted ready-to-transfer (RTT) request.
- 22. A write enhancement module executing on a network switch device, the switch device including a processor, a buffer, a first port for coupling to a low speed or TCP/IP based network link, and a second port for coupling to a high speed network link, said module being configured with instructions to control the switch to:
automatically respond to a write request received by the switch over the high speed network link from an initiator device with a transfer message on behalf of the target device, the transfer message requesting the write data from the initiator; send the write request to the target via a second switch device over the low speed or TCP/IP based network link; receive the write data from the initiator, said write data being sent in response to the transfer message; and automatically send the write data to the second switch over the low speed or TCP/IP based network link so that the write data is stored on the second switch device, such that when the target sends one or more transfer messages requesting all or a portion of the write data, the second switch is able to respond with the requested amount of the stored write data.
- 23. The module of claim 22, wherein the transfer message is a SCSI formatted ready-to-transfer (RTT) message.
- 24. A method of reducing network congestion, comprising:
monitoring operation requests received by a network device coupling one or more high speed network links with a low speed or TCP/IP based network link, said network device having a buffer memory, said requests being sent between requesting devices and destination devices identifying data to be sent over said low speed or TCP/IP based network link; and controlling the rate at which the received operation requests are forwarded to the destination devices by the network device based on the amount of data to be returned by the destination devices such that the rate that the requested data is returned to the network device is substantially equal to, or less than, the rate of the low speed or TCP/IP based network link.
- 25. The method of claim 24, wherein controlling includes:
determining, for each request, the amount of data to be returned; determining a rate limit based on the data transfer rate of the low speed or TCP/IP based network link; and inserting a time delay between the requests forwarded to the destination devices based on the rate limit.
- 26. The method of claim 24, further including determining an amount of memory currently available in the network device, and temporarily halting the forwarding of the requests until the amount of memory currently available exceeds a threshold amount.
- 27. A control module executing on a network switch device, the switch device including a processor, a buffer, a first port for coupling to a low speed or TCP/IP based network link, and one or more second ports for coupling to one or more high speed network links, said module being configured with instructions to:
monitor data request messages being sent between one or more requesting devices and one or more destination devices requesting that data be sent over said low speed or TCP/IP based network link; and control the rate at which the data request messages are forwarded to the destination devices over said high speed network links based on the amount of data to be returned by the destination devices such that the rate that the requested data is returned to the network switch device is less than or substantially equal to the rate of the low speed or TCP/IP based network link.
- 28. The module of claim 27, wherein the instructions to control the rate include instructions to:
determine, for each request, the amount of data to be returned; determine a rate limit based on the data transfer rate of the low speed or TCP/IP based network link; and insert a time delay between the requests forwarded to the destination devices based on the rate limit.
- 29. The module of claim 27, wherein the instructions to control the rate include instructions to:
forward the data request messages; buffer the requested data received in response to the data request messages; and send the buffered data over the low speed or TCP/IP based network link.
- 30. The method of claim 9, wherein if the target responds with a second RTT message requesting data before the data has been forwarded from the first switch, the second switch immediately forwards the requested data to the target when the requested data is received from the first switch.
- 31. A control module executing on a network switch device, the switch device having a processor, a buffer, a first port for coupling to a low speed or TCP/IP based network link, and one or more second ports for coupling to one or more high speed network links, the module being configured with instructions to:
monitor messages being sent between requesting and destination devices requesting that data be sent over the low speed or TCP/IP based link; and for each message:
implement a rate limiting function to determine if a message should be forwarded to the destination device, control the switch device to transfer the message to the destination device and buffer the requested data received from the destination device in response to the transferred message if it is determined that a rate limit is not violated, wherein the requested data is sent over the low speed or TCP/IP link destined for the requesting device; and control the switch device to hold the message until the rate limit is no longer violated if sending the message would violate the rate limit.
CROSS-REFERENCES TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application Serial No. 60/368,582, filed Mar. 29, 2002, the contents of which are hereby incorporated by reference for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60368582 |
Mar 2002 |
US |