System and method for controlling buffer transmission of data packets by limiting buffered data packets in a communication session
First Claim
1. A system for controlling communications in a computer processing system, comprising:
- a first computer system having at least first and second processes executing thereon, each process having a transfer buffer for holding data packets to be transmitted;
a second computer system;
a communications link connecting the first and second computer systems;
means for establishing communications sessions between the first process and the second computer system, and between the second process and the second computer system, each communication session transmitting data packets to the second computer system, wherein the second computer system transmits a session level acknowledgement to the first computer system for each data packet received from a process executing on the first computer system, the means for establishing communications further indicating, for each session, a maximum number of data packets which can be transferred to the second computer system without transmittal of session level acknowledgement from the second to the first computer system;
a send buffer in the first computer system for holding data packets to be transmitted over the communications link;
a first controller in the first computer system for reading data packets from the send buffer and transmitting such data packets over the communications link to the second computer system, wherein data packets so transmitted are removed from the send buffer; and
a second controller in the first computer system for moving data packets from both transfer buffers to the send buffer, wherein the second controller limits a number of data packets which can be held in the send buffer for each one of the communications sessions to an amount less than the maximum number of data packets for that session.
0 Assignments
0 Petitions
Accused Products
Abstract
A system and method for controlling data transmission between computer systems is suitable for use at the OSI session level of structured network architectures. A receiving logical unit can dynamically control packet window sizes to optimize its resources. In the sending logical unit, the number of packets which may be sent by a single session, but not yet acknowledged at the data link control level, is limited. This results in all sessions in the system having a relatively fair access to a single communications link. The number of packets allowed for any given session need not have any relationship to the window size in an adaptive session level pacing environment.
-
Citations
9 Claims
-
1. A system for controlling communications in a computer processing system, comprising:
-
a first computer system having at least first and second processes executing thereon, each process having a transfer buffer for holding data packets to be transmitted; a second computer system; a communications link connecting the first and second computer systems; means for establishing communications sessions between the first process and the second computer system, and between the second process and the second computer system, each communication session transmitting data packets to the second computer system, wherein the second computer system transmits a session level acknowledgement to the first computer system for each data packet received from a process executing on the first computer system, the means for establishing communications further indicating, for each session, a maximum number of data packets which can be transferred to the second computer system without transmittal of session level acknowledgement from the second to the first computer system; a send buffer in the first computer system for holding data packets to be transmitted over the communications link; a first controller in the first computer system for reading data packets from the send buffer and transmitting such data packets over the communications link to the second computer system, wherein data packets so transmitted are removed from the send buffer; and a second controller in the first computer system for moving data packets from both transfer buffers to the send buffer, wherein the second controller limits a number of data packets which can be held in the send buffer for each one of the communications sessions to an amount less than the maximum number of data packets for that session. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a computer communications system for transferring packets of data between a first and a second computer system over a single communications link, wherein a plurality of sessions operate concurrently on the first system and generate data packets to be transferred to the second system, wherein data packets transferred to the second computer system are acknowledged by the second computer system, wherein a send buffer is provided in the first computer system at a data link level to buffer data packets to be transmitted over the communications link, wherein means are provided to transfer data packets from the concurrently operating sessions to the send buffer, and wherein each session has a maximum allowable number of unacknowledged data packets transmitted from the first to the second system, the improvement comprising:
-
means for setting, for each session operating on the first system a counter indicating a maximum number of packets which are allowed to reside in the send buffer, regardless of the maximum number of unacknowledged data packets allowable for that session; means for, when a packet is moved into the send buffer, decrementing the counter for that session; means for allowing movement of a packet for a session into the send buffer only if the counter for that session is greater than zero; and means for, when a packet is transmitted over the communications link, removing such packet from the send buffer and for incrementing the counter for that session. - View Dependent Claims (7)
-
-
8. A method of controlling access to a computer network over a common channel from a computer system, comprising the steps of:
-
establishing a plurality of communications sessions from the computer system over the common channel; within each communications session, generating data for transmission to the network; grouping the data generated by the communications sessions into data packets; placing data packets generated by the plurality of communications sessions into the communications buffer; and for each data packet placed into the buffer, identifying a transmission window for the data packet, transmitting such data packet over the common channel during the transmission window, receiving acknowledgement of receipt of the data packet by a logical destination, and removing such data packet from the buffer after receipt of the acknowledgement; responsive to establishment of each communications session, initializing a counter set at a selected maximum number for such communications session; responsive to removal of a data packet from the communication buffer, incrementing the counter for the communications session for which the data packet was placed into the communication buffer; responsive to placement of a data packet into the communication buffer, decrementing the counter for the communications session for which the packet was placed into the communication buffer; and allowing packets to be placed into the data buffer for a communications session only when the counter for a process is greater than zero. - View Dependent Claims (9)
-
Specification