Method, system, and program for managing data transmission through a network
First Claim
1. A method for sending data in a computer system, comprising:
- establishing a plurality of active direct memory access connections between the host and a plurality of destinations;
establishing for each connection a Protocol Control Block, each Protocol Control Block having a first window field, a virtual window field and a message limit field, for the associated connection;
receiving from each destination a first window value representing a first quantity of data packets for the connection associated with the destination, and storing the received first window value in a first window field of the Protocol Control Block associated with the connection;
for each Protocol Control Block, storing the value of a second quantity of data packets in the virtual window field of the Protocol Control Block, wherein the second quantity of each connection is less than the first window field value of the connection and is based, at least in part, on the number of active connections of the host;
sending packets of data from said host to each destination;
receiving an acknowledgment from each destination for each packet of data received by each destination wherein the first window value of each connection represents a limit imposed on said host by the destination of the connection on the quantity of data packets sent from said host to the destination of the connection and lacking an acknowledgment of being received by the destination of the connection; and
limiting the number of packets sent by said host to each connection, but not acknowledged as received by the destination of each connection, to the value of the virtual window field of the Protocol Control Block associated with the connection, wherein the value of the virtual window field of the Protocol Control Block associated with the connection is less than the value of the first window field of the Protocol Control Block associated with the connection;
sending a plurality of messages to specified memory locations of the destinations of the direct memory access connections wherein each message comprises a plurality of data packets;
receiving message acknowledgments, each message acknowledgment being sent by a destination for each message received by the destination; and
for each connection, establishing a message limit and storing the value of the message limit in the message limit field of the Protocol Control Block associated with the connection; and
for each connection, limiting the number of messages sent by said host through the connection, but not acknowledged as received by the destination of the connection, to the value of the message limit field of the Protocol Control Block associated with the connection so that each message limit imposes a separate limit for each direct memory access connection on the quantity of messages sent from said host to the specified memory location of the direct memory access connection associated with the message limit and lacking a message acknowledgment of being received by the destination of the direct memory access connection associated with the message limit, each message limit providing a further limit on the associated connection in addition to the packet limit imposed by the value of the virtual window field of the Protocol Control Block associated with the connection.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are a method, system, and program for managing data transmission from a source to a destination through a network. The destination imposes a window value on the source which limits the quantity of data packets which can be sent from the source to the destination without receiving an acknowledgment of being received by the destination. In one embodiment, the source imposes a second window value, smaller than the destination window value, which limits even further the quantity of data packets which can be sent from the source to the destination without receiving an acknowledgment of being received by the destination. In another embodiment, a plurality of direct memory access connections are established between the source and a plurality of specified memory locations of a plurality of destinations. The source imposes a plurality of message limits, each message limit imposing a separate limit for each direct memory access connection on the quantity of messages sent from the source to the specified memory location of the direct memory access connection associated with the message limit and lacking a message acknowledgment of being received by the destination of the direct memory access connection associated with the message limit.
14 Citations
30 Claims
-
1. A method for sending data in a computer system, comprising:
-
establishing a plurality of active direct memory access connections between the host and a plurality of destinations; establishing for each connection a Protocol Control Block, each Protocol Control Block having a first window field, a virtual window field and a message limit field, for the associated connection; receiving from each destination a first window value representing a first quantity of data packets for the connection associated with the destination, and storing the received first window value in a first window field of the Protocol Control Block associated with the connection; for each Protocol Control Block, storing the value of a second quantity of data packets in the virtual window field of the Protocol Control Block, wherein the second quantity of each connection is less than the first window field value of the connection and is based, at least in part, on the number of active connections of the host; sending packets of data from said host to each destination; receiving an acknowledgment from each destination for each packet of data received by each destination wherein the first window value of each connection represents a limit imposed on said host by the destination of the connection on the quantity of data packets sent from said host to the destination of the connection and lacking an acknowledgment of being received by the destination of the connection; and limiting the number of packets sent by said host to each connection, but not acknowledged as received by the destination of each connection, to the value of the virtual window field of the Protocol Control Block associated with the connection, wherein the value of the virtual window field of the Protocol Control Block associated with the connection is less than the value of the first window field of the Protocol Control Block associated with the connection; sending a plurality of messages to specified memory locations of the destinations of the direct memory access connections wherein each message comprises a plurality of data packets; receiving message acknowledgments, each message acknowledgment being sent by a destination for each message received by the destination; and for each connection, establishing a message limit and storing the value of the message limit in the message limit field of the Protocol Control Block associated with the connection; and for each connection, limiting the number of messages sent by said host through the connection, but not acknowledged as received by the destination of the connection, to the value of the message limit field of the Protocol Control Block associated with the connection so that each message limit imposes a separate limit for each direct memory access connection on the quantity of messages sent from said host to the specified memory location of the direct memory access connection associated with the message limit and lacking a message acknowledgment of being received by the destination of the direct memory access connection associated with the message limit, each message limit providing a further limit on the associated connection in addition to the packet limit imposed by the value of the virtual window field of the Protocol Control Block associated with the connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system adapted to communicate with data storage and a destination having memory locations, comprising:
-
a system memory; a processor coupled to the system memory; a network adaptor; a data storage controller for managing Input/Output (I/O) access to the data storage; and a device driver executable by the processor in the memory, wherein at least one of the device driver and the network adaptor is adapted to; establish a plurality of active direct memory access connections between the system and a plurality of destinations; establish for each connection a Protocol Control Block, each Protocol Control Block having a first window field, a virtual window field and a message limit field, for the associated connection; receive from each destination a first window value representing a first quantity of data packets for the connection associated with the destination, and store the received first window value in a first window field of the Protocol Control Block associated with the connection; for each Protocol Control Block, store the value of a second quantity of data packets in the virtual window field of the Protocol Control Block, wherein the second quantity of each connection is less than the first window field value of the connection and is based, at least in part, on the number of active connections of the system; send packets of data from said system to each destination; receive an acknowledgment from each destination for each packet of data received by each destination wherein the first window value of each connection represents a limit imposed on said system by the destination of the connection on the quantity of data packets sent from said system to the destination of the connection and lacking an acknowledgment of being received by the destination of the connection; and limit the number of packets sent by said system to each connection, but not acknowledged as received by the destination of each connection, to the value of the virtual window field of the Protocol Control Block associated with the connection, wherein the value of the virtual window field of the Protocol Control Block associated with the connection is less than the value of the first window field of the Protocol Control Block associated with the connection; send a plurality of messages to specified memory locations of the destinations of the direct memory access connections wherein each message comprises a plurality of data packets; receive message acknowledgments, each message acknowledgment being sent by a destination for each message received by the destination; and for each connection, establish a message limit and store the value of the message limit in the message limit field of the Protocol Control Block associated with the connection; and for each connection, limit the number of messages sent by said system through the connection, but not acknowledged as received by the destination of the connection, to the value of the message limit field of the Protocol Control Block associated with the connection so that each message limit imposes a separate limit for each direct memory access connection on the quantity of messages sent from said system to the specified memory location of the direct memory access connection associated with the message limit and lacking a message acknowledgment of being received by the destination of the direct memory access connection associated with the message limit, each message limit providing a further limit on the associated connection in addition to the packet limit imposed by the value of the virtual window field of the Protocol Control Block associated with the connection. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. An article of manufacture comprising a computer readable storage medium having code executed by a processor for managing data transmission through a network, wherein the article of manufacture causes operations to be performed, the operations comprising:
-
establishing a plurality of active direct memory access connections between the host and a plurality of destinations; establishing for each connection a Protocol Control Block, each Protocol Control Block having a first window field, a virtual window field and a message limit field, for the associated connection; receiving from each destination a first window value representing a first quantity of data packets for the connection associated with the destination, and storing the received first window value in a first window field of the Protocol Control Block associated with the connection; for each Protocol Control Block, storing the value of a second quantity of data packets in the virtual window field of the Protocol Control Block, wherein the second quantity of each connection is less than the first window field value of the connection and is based, at least in part, on the number of active connections of the host; sending packets of data from said host to each destination; receiving an acknowledgment from each destination for each packet of data received by each destination wherein the first window value of each connection represents a limit imposed on said host by the destination of the connection on the quantity of data packets sent from said host to the destination of the connection and lacking an acknowledgment of being received by the destination of the connection; and limiting the number of packets sent by said host to each connection, but not acknowledged as received by the destination of each connection, to the value of the virtual window field of the Protocol Control Block associated with the connection, wherein the value of the virtual window field of the Protocol Control Block associated with the connection is less than the value of the first window field of the Protocol Control Block associated with the connection; sending a plurality of messages to specified memory locations of the destinations of the direct memory access connections wherein each message comprises a plurality of data packets; receiving message acknowledgments, each message acknowledgment being sent by a destination for each message received by the destination; and for each connection, establishing a message limit and storing the value of the message limit in the message limit field of the Protocol Control Block associated with the connection; and for each connection, limiting the number of messages sent by said host through the connection, but not acknowledged as received by the destination of the connection, to the value of the message limit field of the Protocol Control Block associated with the connection so that each message limit imposes a separate limit for each direct memory access connection on the quantity of messages sent from said host to the specified memory location of the direct memory access connection associated with the message limit and lacking a message acknowledgment of being received by the destination of the direct memory access connection associated with the message limit, each message limit providing a further limit on the associated connection in addition to the packet limit imposed by the value of the virtual window field of the Protocol Control Block associated with the connection. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification