IP Library Granted Patent US 7,143,131
Granted Patent B1
US 7,143,131 · App. 09/948,476 · Granted Nov 28, 2006

Transmission control protocol

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,143,131
App. No.
09/948,476
Granted
Nov 28, 2006
Kind
B1
Abstract

A communication protocol service in support of TCP based communication is modified to improve the operational efficiency of a server for a particular type of client-server application. The service is modified to support connection pools and connection groups within the connection pools, to enable connections with clients to be grouped and share a common file descriptor. The service is provided with an API to allow an application server to create the connection pools, connection groups and connections. The API also include receive and send services adapted to support the connection pool and connection group architecture, and to allow explicit acknowledgement of received transmissions under control of the application server. Further, in various embodiments, the buffering architecture of the service, as well as acknowledgement of request packets by the service are also modified.

Claims (46)

1. In a computer server, a method of operation by a communication protocol service, comprising:

receiving on behalf of an application server, a request packet transmitted from a client of the application server, in accordance with the TCP/IP communication protocol;

determining whether the received request packet is a re-transmission;

if the received request packet is not a re-transmission, notifying the application server of the received request packet, and deferring transmission of an acknowledgement of the request packet to the client;

receiving an answer packet from the application server; and

transmitting the acknowledgement of the request packet to the client together with the answer packet.

2. The method of claim 1 , wherein the method further comprises buffering said received request packet in a buffer shared by clients of said application server having common connection group membership.

3. The method of claim 2 , wherein the method further comprises

receiving a read request from the application server for said buffered request packet in said common connection group membership buffer; and

providing said buffered request packet from said common connection group membership buffer to said application server.

4. The method of claim 1 , wherein the receiving an answer packet further comprises:

receiving a send request from the application server to send the answer packet back to said client of said application server;

receiving a specification of how much data received as part of said request was processed by the application server and should be acknowledged to a TCP service of a client device hosting said client of said application server;

the transmitting the acknowledgement further comprises:

queuing said answer packet for transmission to said client;

based on said specification, queuing an acknowledgement to said request packet for transmission to the TCP service of said client device, along with said answer packet; and

transmitting in due course said answer packet and said acknowledgement to said client of said application server and said TCP service of said client device.

5. The method or claim 4 , wherein the method further comprises caching said answer packet in a cache shared by all clients of said application server independent of connection group memberships of the clients.

6. The method of claim 5 , wherein the method further comprises

receiving an acknowledgement from the client for the answer packet; and

purging said cached answer packet from said cache shared by all clients of said application server.

7. The method of claim 1 , wherein the method further comprises

if the received request packet is a re-transmission;

re-transmitting a cached answer packet to the request packet; and

re-transmitting an acknowledgment to the request packet with the answer packet.

8. An apparatus comprising

storage medium having stored therein a plurality of programming instructions designed to enable said apparatus to

receive on behalf of an application server, a request packet from a client of the application server transmitted in accordance with the TCP/IP communication protocol,

determine whether the received request packet is a re-transmission, and

if the received request packet is not a re-transmission, notify the application server of the received request packet, and defer transmission of an acknowledgement to the client until the acknowledgement can be transmitted together with an answer packet received from the application server; and

a processor coupled to the storage medium to execute the programming instructions.

9. The apparatus of claim 8 , wherein the programming instructions further enable the apparatus to buffer said received request packet in a buffer shared by clients of said application server having common connection group membership.

10. The apparatus of claim 9 , wherein the programming instructions

receive a read request from the application server for said buffered request packet in said common connection group membership buffer; and

provide said buffered request packet from said common connection group membership buffer to said application server.

11. The apparatus of claim 8 , wherein the programming instructions

receive a send request from the application server to send the answer packet back to said client of said application server;

receiving a specification of how much data received as part said request was processed by the application server and should be acknowledged to a TCP service of a client device hosting said client of said application server;

queuing said answer packet for transmission to said client;

based on the said specification, queuing the acknowledgement to said request packet for transmission to said TCP service of said client device, along with said answer packet; and

transmit in due course said answer packet and said acknowledgement to said client of said application server and said TCP service of said client device.

12. The apparatus of claim 11 , wherein the programming instructions further enable the apparatus to cache said answer packet In a cache shared by all clients of said application server independent of connection group memberships of the clients.

13. The apparatus of claim 12 , wherein the programming instructions further enable the apparatus to

receive an acknowledgement from the client for the answer packet; and

purge said cached answer packet from said cache shared by all clients of said application server.

14. The apparatus of claim 8 , wherein the programming instructions further enable the apparatus to re-transmit a cached answer packet to the request packet, and an acknowledgment to the request packet with the answer packet, if the received request packet is a re-transmission.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 15, 2002
From: XDEGREES, INC.
To: REDPOINT VENTURES I, L.P.; REDPOINT TECHNOLOGY PARTNERS Q-1, L.P.; REDPOINT TECHNOLOGY PARTNERS A-1, L.P.; REDPOINT ASSOCIATES I, LLC; CAMBRIAN FUND LLC
Reel/Frame 012449/0706 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2001
From: SOLES, L. ROGER; TEODOSIU, DAN; PISTRITTO, JOSEPH C.; BOYEN, XAVIER
To: XDEGREES, INC.
Reel/Frame 012158/0162 →