A method of allocating network capacity over a communication channel of a network, comprising: determining a transmission profile for each of a plurality of service flow types, each transmission profile defining at least three different network capacity allocation parameters associated with at least three different ordered network capacity allocation cycles respectively, wherein each network capacity allocation parameter represents a data rate, a number of bytes, or a proportional amount of network capacity to allocate to the respective service flow type during the respective network capacity allocation cycle; and iteratively performing, for each of the at least three ordered network capacity allocation cycles: selecting, for each service flow type, the respective network capacity allocation parameter in the respective service flow type's transmission profile associated with a current network capacity allocation cycle of the at least three ordered network capacity allocation cycles; determining a respective amount of data to transmit for each of the plurality of service flow types based, at least in part, on the respective selected network capacity allocation parameter for the current network capacity allocation cycle; and transmitting, over the communication channel, the respective determined amount of data for each of the plurality of service flow types for the current network capacity allocation cycle. determining a transmission profile for each of a plurality of service flow types, each transmission profile defining at least three different network capacity allocation parameters associated with at least three different ordered network capacity allocation cycles respectively, wherein each network capacity allocation parameter represents a data rate, a number of bytes, or a proportional amount of network capacity to allocate to the respective service flow type during the respective network capacity allocation cycle; and iteratively performing, for each of the at least three ordered network capacity allocation cycles: selecting, for each service flow type, the respective network capacity allocation parameter in the respective service flow type's transmission profile associated with a current network capacity allocation cycle of the at least three ordered network capacity allocation cycles; determining a respective amount of data to transmit for each of the plurality of service flow types based, at least in part, on the respective selected network capacity allocation parameter for the current network capacity allocation cycle; and transmitting, over the communication channel, the respective determined amount of data for each of the plurality of service flow types for the current network capacity allocation cycle. selecting, for each service flow type, the respective network capacity allocation parameter in the respective service flow type's transmission profile associated with a current network capacity allocation cycle of the at least three ordered network capacity allocation cycles; determining a respective amount of data to transmit for each of the plurality of service flow types based, at least in part, on the respective selected network capacity allocation parameter for the current network capacity allocation cycle; and transmitting, over the communication channel, the respective determined amount of data for each of the plurality of service flow types for the current network capacity allocation cycle.