Patent ID: 8713189

Claim:
A method for reliably transmitting over a computer network requests, from client applications running on a client computer to server-applications running on a server computer, the client computer having a central processing unit, memory, a client-side application protocol stack, a plurality of client-side functions to perform reliable transport-related tasks for a plurality of applications, including a function that returns a starting sequence number and range of allowable sequence numbers for request messages, and a client-side transport protocol stack, the method comprising: the client-side application protocol stack receiving an indication from a client application of a selected set of one or more of the plurality of client-side functions for use by the client-side application protocol stack, with a request from the client application, to perform reliable transport-related tasks, receiving for transmission the request from the client application, wrapping the request in a request message, wherein wrapping the request comprises adding a header to the request, the header including an identifying sequence number assigned by the client-side application protocol stack and a type code identifying the type of the request message as a request, calling, based upon the indication received from the client application, the selected set of one or more of the plurality of client-side functions to obtain one or more parameters associated with reliability of the transmission, utilizing the one or more parameters to provide aspects of the reliability of the transmission of the request, and sending the resulting request message to the client-side transport protocol stack; the client-side transport protocol stack receiving the request message and transmitting it to a server-side transport protocol stack; the client-side application protocol stack retransmitting the request message if a message is not received from the server-side transport protocol stack which contains the sequence number of the request message and a type code that indicates before the time-out period for i-th transmission has elapsed since the request message was transmitted for the i-th time and the number of times that the request message has been transmitted is less than a total allowed number of transmissions; and wherein if a message received by the client-side application protocol stack from the server-side transport protocol stack contains the sequence number of the request message and a type code that indicates that it is a provisional reply message to the request message, then the current time-out period for retransmission is modified to delay its expiration.