TCP proxy connection management in a gigabit environment
First Claim
1. A method of managing network communication comprising:
- establishing a first transmission control protocol (“
TCP”
) connection with a first network element, whereinsaid first TCP connection is between said first network element and a second network element,said first TCP connection is intended to be established with a third network element, andsaid first network element comprises a transmit buffer and a receive buffer;
initiating a second TCP connection between said first network element and said third network element;
establishing communications between said second and said third network elements via said first network element;
determining that said second network element requires additional data via said first TCP connection, whereinsaid determining is performed by said first network element without said additional data being requested by said second network element, andsaid determining comprises detecting that acknowledged data is being removed from said transmit buffer for said first TCP connection, wherein said detecting comprises detecting an acknowledgement sent viasaid first TCP connection by said second network element, andremoval of said acknowledged data frees space in said transmit buffer;
in response to said determining, pushing said additional data from said receive buffer for said second TCP connection to said transmit buffer;
transferring said additional data from said transmit buffer to said second network element without said additional data being requested by said second network element;
closing said first TCP connection with said client in response to receiving a request for closing said connection from said data switching unit; and
performing a two-stage operation for releasing a control memory entry for said connection;
wherein said control memory entry comprises a connection block entry and a flow control entry, and said two-stage operation comprises;
releasing said connection block entry prior to receiving said request for closing said connection; and
releasing said flow control entry in response to receiving said request for closing said connection.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention describes a method and apparatus to effectively manage data buffers for a client and a server connection in a multiple connection environment. The TCP processes of servers and clients are merged into an independent TCP process in a TCP ‘proxy’ server. The TCP proxy server includes a control unit and a data switching unit (the proxy application). The TCP proxy server terminates the client TCP connection and initiates a separate TCP connection with the server. The data switching unit binds the two individual connections. The TCP proxy server portrays the actual server TCP. The control unit in the TCP proxy server manages data buffers, control memory and supports multiple connections. The control unit ‘pushes’ the data into the buffers by monitoring the use of the buffers. The control unit does not wait for data requests from the data switching unit thus, eliminating the overhead of data request messages.
-
Citations
104 Claims
-
1. A method of managing network communication comprising:
-
establishing a first transmission control protocol (“
TCP”
) connection with a first network element, whereinsaid first TCP connection is between said first network element and a second network element, said first TCP connection is intended to be established with a third network element, and said first network element comprises a transmit buffer and a receive buffer; initiating a second TCP connection between said first network element and said third network element; establishing communications between said second and said third network elements via said first network element; determining that said second network element requires additional data via said first TCP connection, wherein said determining is performed by said first network element without said additional data being requested by said second network element, and said determining comprises detecting that acknowledged data is being removed from said transmit buffer for said first TCP connection, wherein said detecting comprises detecting an acknowledgement sent via said first TCP connection by said second network element, and removal of said acknowledged data frees space in said transmit buffer; in response to said determining, pushing said additional data from said receive buffer for said second TCP connection to said transmit buffer; transferring said additional data from said transmit buffer to said second network element without said additional data being requested by said second network element; closing said first TCP connection with said client in response to receiving a request for closing said connection from said data switching unit; and performing a two-stage operation for releasing a control memory entry for said connection; wherein said control memory entry comprises a connection block entry and a flow control entry, and said two-stage operation comprises;
releasing said connection block entry prior to receiving said request for closing said connection; and
releasing said flow control entry in response to receiving said request for closing said connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A network device configured to:
-
establish a first transmission control protocol (“
TCP”
) connection with a first network element, wherein said first TCP connection is between said first network element and a second network element,said first TCP connection is intended to be established with a third network element, and said first network element comprises a transmit buffer and a receive buffer; initiate a second TCP connection between said first network element and said third network element; establish communications between said second and said third network elements via said first network element; determine that said second network element requires additional data via said first TCP connection, wherein said determination is performed by said first network element without said additional data being requested by said second network element, and said determination comprises a detection that acknowledged data is being removed from said transmit buffer for said first TCP connection, wherein said detection comprises detecting an acknowledgement sent via said first TCP connection by said second network element, and removal of said acknowledged data frees space in said transmit buffer;
in response to said determination, push said additional data from said receive buffer for said second TCP connection to said transmit buffer; and
transfer said additional data from said transmit buffer to said second network element without said additional data being requested by said second network element;wherein said network device is further configured to close said first TCP connection with said client in response to receiving a request for closing said connection from said data switching unit; request for closing said connection from said data switching unit wherein said network device is further configured to perform a two-stage operation for releasing a control memory entry for said connection, wherein said control memory entry comprises a connection block entry and a flow control entry; and
said two-stage operation comprises;releasing said connection block entry prior to receiving said request for closing said connection; and
releasing said flow control entry in response to receiving said request for closing said connection. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
-
51. A network device comprising:
-
means for establishing a first transmission control protocol (“
TCP”
) connection with a first network element, wherein said first TCP connection is between said first network element and a second network element,said first TCP connection is intended to be established with a third network element, and said first network elements comprises a transmit buffer and a receive buffer; means for initiating a second TCP connection between said first network element and said third network element; means for establishing communications between said second and said third network elements via said first network element; means for determining that said second network element requires additional data via said first TCP connection, wherein said determining is performed by said means for determining without said additional data being requested by said second network element, and said determining comprises detecting that acknowledged data is being removed from said transmit buffer for said first TCP connection, wherein said means for detecting comprises means for detecting an acknowledgement sent via said first TCP connection by said second network element, and removal of said acknowledged data frees space in said transmit buffer; means for pushing said additional data from said receive buffer for said second TCP connection to said transmit buffer, in response to said determining; means for transferring said additional data from said transmit buffer to said second network element without said additional data being requested by said second network element; means for closing said first TCP connection with said client in response to receiving a request for closing said connection from said data switching unit if said request for data from said application is served; and means for performing a two-stage operation for releasing a control memory entry for said connection, wherein said control memory entry comprises a connection block entry and a flow control entry and said two-stage operation comprises; releasing said connection block entry prior to receiving said request for closing said connection and releasing said flow control entry in response to receiving said request for closing said connection. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77)
-
-
78. A computer program product for managing network communication, encoded in computer readable media, said program product comprising a set of instructions executable on a computer system, said set of instructions configured to:
-
establish a first transmission control protocol (“
TCP”
) connection with a first network element, wherein said first TCP connection is between said first network element and a second network element,said first TCP connection is intended to be established with a third network element, and said first network element comprises a transmit buffer and a receive buffer; initiate a second TCP connection between said first network element and said third network element; establish communications between said second and said third network elements via said first network element; determine that said second network element requires additional data via said first TCP connection, wherein said determining is performed by said first network element without said additional data being requested by said second network element, and said determining comprises detect that acknowledged data is being removed from said transmit buffer for said first TCP connection, wherein detection that acknowledged data is being removed comprises detection of an acknowledgement sent via said first TCP connection by said second network element, and removal of said acknowledged data frees space in said transmit buffer; in response to said determination, push said additional data from said receive buffer for said second TCP connection to said transmit buffer; and transfer said additional data from said transmit buffer to said second network element without said additional data being requested by said second network element; wherein said set of instructions is further configured to;
if said request for data from said application is served, close said first TCP connection with said client in response to receiving a request for closing said connection from said data switching unit; andwherein said set of instructions is further configured to perform a two-stage operation for releasing a control memory entry for said connection, wherein said control memory entry comprises a connection block entry and a flow control entry, and said two-stage operation comprises;
releasing said connection block entry prior to receiving said request for closing said connection; and
releasing said flow control entry in response to receiving said request for closing said connection. - View Dependent Claims (79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104)
-
Specification