Methods and devices for transmitting data between storage area networks
First Claim
1. A computer readable medium having a TCP stack stored therein for controlling data transmitted between storage area networks, the TCP stack comprising:
- an application layer for encapsulating outgoing frames from a first storage area network and de-encapsulating incoming frames from a second storage area network;
a TCP layer that receives outgoing frames directly from the application layer;
an IP layer that interacts with the TCP layer; and
a link layer that interacts with the IP layer, wherein the TCP stack does not include a socket layer.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and devices are provided for efficient transmission of data between storage area networks. According to some aspects of the invention, a “slim” TCP stack is provided which eliminates the socket layer found in a conventional TCP stack, thereby eliminating socket buffers and the associated buffer-to-buffer copying. Moreover, by eliminating the socket layer, one eliminates the listen state. This condition allows TCP processing in an interrupt context instead of client/server operation with a listen state. Accordingly, some aspects of the invention provide for transmitting data between SANs in an interrupt context.
-
Citations
36 Claims
-
1. A computer readable medium having a TCP stack stored therein for controlling data transmitted between storage area networks, the TCP stack comprising:
-
an application layer for encapsulating outgoing frames from a first storage area network and de-encapsulating incoming frames from a second storage area network; a TCP layer that receives outgoing frames directly from the application layer; an IP layer that interacts with the TCP layer; and a link layer that interacts with the IP layer, wherein the TCP stack does not include a socket layer. - View Dependent Claims (2, 3, 4)
-
-
5. A method for controlling data transmitted between storage area networks, comprising:
-
receiving, at a network device, a first Fiber Channel Internet Protocol (“
FCIP”
) packet;adding, by a processor, a TCP header to the first FCIP packet; and transmitting, by a transmitter, the first FCIP packet to the Internet, wherein the receiving, adding and transmitting steps are all performed in an interrupt context and the interrupt context is initiated by receipt of an interrupt, and the interrupt context terminates either when processes included in the interrupt have been completed, the processes comprising the receiving, adding and transmitting steps, or one or more termination related events occurs. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer readable medium having a computer executable program stored therein for controlling data transmitted between storage area networks, the computer executable program including instructions for controlling a network device to perform the following steps:
-
receiving, at the network device, a first Fiber Channel Internet Protocol (“
FCIP”
) packet;adding, by a processor, a TCP header to the first FCIP packet; and transmitting, by a transmitter, the first FCIP packet to the Internet, wherein the receiving, adding and transmitting steps are all performed in an interrupt context and the interrupt context is initiated by receipt of an interrupt, and the interrupt context terminates either when processes included in the interrupt have been completed, the processes comprising the receiving, adding and transmitting steps, or one or more termination related events occurs. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus for controlling data transmitted between storage area networks, the apparatus comprising:
-
means for receiving a first Fiber Channel Internet Protocol (“
FCIP”
) packet;means for adding a TCP header to the first FCIP packet; and means for transmitting the first FCIP packet to the Internet, wherein the receiving, adding and transmitting means are all configured to operate in an interrupt context and the interrupt context is initiated by receipt of an interrupt, and the interrupt context terminates either when processes included in the interrupt have been completed, the processes comprising the receiving, adding and transmitting steps, or one or more termination related events occurs. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method for controlling data transmitted between a first network device and a second network device, comprising:
-
receiving a first Fiber Channel Internet Protocol (“
FCIP”
) packet from a storage area network (“
SAN”
) at the first network device;adding, by a processor, a TCP header to the first FCIP packet; and transmitting, by a transmitter, the first FCIP packet from the first network device to the second network device via the Internet, wherein the receiving, adding and transmitting steps are all performed in an interrupt context and the interrupt context is initiated by receipt of an interrupt, and the interrupt context terminates either when processes included in the interrupt have been completed, the processes comprising the receiving, adding and transmitting steps, or one or more termination related events occurs. - View Dependent Claims (33, 34)
-
-
35. A network device for controlling data transmitted between storage area networks, the network device comprising:
-
a first interface configured to receive a first Fiber Channel Internet Protocol (“
FCIP”
) packet;a processor configured to add a TCP header to the first FCIP packet to cause the first FCIP packet to be transmitted to the Internet, wherein the receiving of the first FCIP packet, the adding of the TCP header and the transmitting of the first FCIP packet are all performed in an interrupt context and the interrupt context is initiated by receipt of an interrupt, and the interrupt context terminates either when processes included in the interrupt have been completed, the processes comprising the receiving, adding and transmitting steps, or one or more termination related events occurs. - View Dependent Claims (36)
-
Specification