Patent ID: 8203940

Claim:
A computer-implemented method for adapting data rate in a communication system, the method comprising: receiving, by a receiving computing device, a data transmission that a transmitting computing device is transmitting at an initial data rate; determining, by the receiving computing device and based on an error rate of the data transmission at the initial data rate, that a first criterion is satisfied for requesting an increase in a rate of the data transmission from the initial data rate to a first subsequent data rate, the first subsequent data rate being a higher data rate than the initial data rate; requesting, by the receiving computing device, that the transmitting computing device increase the rate of the data transmission from the initial data rate to the first subsequent data rate; determining, by the receiving computing device and based on an error rate of the data transmission at the first subsequent data rate, whether a second criterion is satisfied for maintaining the first subsequent data rate; maintaining, by the receiving computing device if the second criterion is determined to be satisfied, a state of the receiving computing device for receiving the data transmission at the first subsequent data rate; determining, by the receiving computing device and based on a second error rate of the data transmission at the initial data rate, that a third criterion is satisfied for requesting a decrease in the rate of the data transmission from the initial data rate to a second subsequent data rate, the second subsequent data rate being a lower data rate than the initial data rate, the third criterion including the second error rate being above a threshold level or a determination that the second subsequent data rate results in a throughput of data that is higher than a throughput of data at the initial data rate; requesting, by the receiving computing device, that the transmitting computing device decrease the rate of the data transmission from the initial data rate to the second subsequent data rate; determining, by the receiving computing device after requesting the decrease from the initial data rate to the second subsequent data rate, whether the data transmission is transmitting at the second subsequent data rate; and maintaining, by the receiving computing device if the data transmission is determined to be transmitting at the second subsequent data rate, a state of the receiving computing device for receiving the data transmission at the second subsequent data rate.