Client-adjustable window size for connectionless transfer protocols
First Claim
1. A method for transmitting content units from a server computing device to at least one client, the method comprising:
- receiving, by the server computing device, a request to transfer a content unit to a client with a connectionless transfer protocol;
negotiating, by the server computing device, an initial window size with which to begin transferring the content unit to the client;
transmitting, by the server computing device, at least a portion of the content unit to the client using the connectionless transfer protocol and using the initial window size as a current window size;
receiving, by the server computing device, a request from the client to change the current window size;
in response to the received request, changing the current window size; and
transmitting, by the server computing device, at least another portion of the content unit to the client using the connectionless transfer protocol and using the changed current window size.
2 Assignments
0 Petitions
Accused Products
Abstract
Described herein are various principles for operating transfer protocols using adaptive flow control techniques. In accordance with some of these principles, a client may adaptively negotiate with a server regarding a window size to use when communicating datagrams using a connectionless content unit transfer protocol like the Trivial File Transfer Protocol (TFTP). In some implementations, a client may inform a server whether to increase or decrease a window size. In these implementations, the client may increase the window size upon determining that a previous window size has led to successful transfer of content without any loss of datagrams and the client may decrease the window size upon detecting a loss of a datagram. Because of the limited resources available in some environments in which these techniques may be used, in some implementations a window size may be increased by small amounts but may be decreased drastically upon detecting a loss.
-
Citations
20 Claims
-
1. A method for transmitting content units from a server computing device to at least one client, the method comprising:
-
receiving, by the server computing device, a request to transfer a content unit to a client with a connectionless transfer protocol; negotiating, by the server computing device, an initial window size with which to begin transferring the content unit to the client; transmitting, by the server computing device, at least a portion of the content unit to the client using the connectionless transfer protocol and using the initial window size as a current window size; receiving, by the server computing device, a request from the client to change the current window size; in response to the received request, changing the current window size; and transmitting, by the server computing device, at least another portion of the content unit to the client using the connectionless transfer protocol and using the changed current window size. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for receiving content units distributed by a server, the method comprising:
-
transmitting, by a computing device, a request to the server to transfer, using a connectionless transfer protocol, a content unit; negotiating, by the computing device, with the server, a window size with which to begin transferring the content unit using the connectionless transfer protocol; beginning reception, by the computing device, of a portion of the content unit using the connectionless transfer protocol; determining, by the computing device, whether the portion of the content unit is successfully received by the computing device during a threshold duration of time; and in response to determining that the portion of the content unit was successfully received by the computing device during the threshold duration of time, transmitting a request to the server to change the window size. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. At least one computer-readable memory having computer-executable instructions stored therein for causing a computing device to perform operations for distributing files from a server to at least one client, the operations comprising:
-
receiving a request to transfer, using a connectionless data transfer protocol, at least one file to a client; negotiating with the client an initial window size with which to begin transferring the at least one file to the client using the connectionless data transfer protocol; transmitting at least a portion of the at least one file using the connectionless data transfer protocol with the initial window size as a current window size; receiving a request from the client to change the current window size; and changing the current window size according to the request. - View Dependent Claims (18, 19, 20)
-
Specification