Dynamic network-driven application packet resizing
In one embodiment, information relating to network metrics in a computer network is collected. A packet delay for a packet to be transmitted along a particular communication path is predicted based on the network metrics. Then, an optimal packet size for optimizing a transmission experience of the packet to be transmitted along the particular communication path is calculated based on the predicted packet delay. Also, a size of the packet to be transmitted along the particular communication path is dynamically adjusted based on the calculated optimal packet size.
1. A method, comprising:
collecting, by a learning machine, information relating to network metrics in a computer network;
predicting, by the learning machine, a packet delay for a packet to be transmitted along a particular communication path based on the network metrics, wherein the predicting includes:
building, by the learning machine, a predictive model that takes into account packet size by inputting the collected network metrics into an engine, which then yields a prediction of the packet delay, and
calculating, by the learning machine, an optimal packet size for optimizing a transmission experience of the packet to be transmitted along the particular communication path based on the predicted packet delay; and
sending instructions to an application that will be transmitting the packet that instruct the application to dynamically adjust a size of the packet to be transmitted along the particular communication path based on the calculated optimal packet size determined from the predictive model.
2. The method as in claim 1 , further comprising:
sending an instruction to a source node that transmits the packet to adjust the size of the packet based on observed network conditions.
3. The method as in claim 2 , wherein the observed network conditions are proximate to one or more of a location of the source node, the particular communication path, and a location of a destination node that receives the packet.
4. The method as in claim 1 , further comprising:
observing current network conditions in the network; and
calculating the optimal packet size for optimizing the transmission experience of the packet based further on the observed current network conditions.
5. The method as in claim 1 , wherein the optimizing of the transmission experience comprises one or more of: reducing packet delay, improving a transmission success rate, reducing a transmission time, reducing collisions, and reducing packet loss.
6. The method as in claim 1 , further comprising:
accessing a service level agreement (SLA) in the network;
determining one or more SLA requirements according to the SLA; and
calculating the optimal packet size for optimizing the transmission experience of the packet based further on the determined SLA requirement.
7. The method as in claim 6 , wherein the SLA is associated with one or more of a source node that transmits the packet and a destination node that receives the packet.
8. The method as in claim 1 , further comprising:
dynamically adjusting the size of the packet at one or more times during a lifetime of the packet.
9. The method as in claim 1 , further comprising:
receiving feedback regarding the dynamically adjusted size of the packet to be transmitted along the particular communication path; and
calculating the optimal packet size based further on the received feedback.
10. The method as in claim 1 , further comprising:
sending artificial packets of varying sizes in the computer network in order to construct the predictive model.
11. An apparatus, comprising:
one or more network interfaces that communicate with a computer network;
a processor coupled to the one or more network interfaces and configured to execute a process; and
a memory configured to store program instructions which contain the process executable by the processor, the process comprising:
collecting information relating to network metrics in the computer network;
predicting a packet delay for a packet to be transmitted along a particular communication path based on the network metrics, wherein the predicting includes:
building a predictive model that takes into account packet size by inputting the collected network metrics into an engine, which then yields a prediction of the packet delay, and
calculating an optimal packet size for optimizing a transmission experience of the packet to be transmitted along the particular communication path based on the predicted packet delay; and
sending instructions to an application that will be transmitting the packet that instruct the application to dynamically adjust a size of the packet to be transmitted along the particular communication path based on the calculated optimal packet size,
wherein the apparatus is a learning machine.
12. The apparatus as in claim 11 , wherein the process further comprises:
sending an instruction to a source node that transmits the packet to adjust the size of the packet based on observed network conditions.
13. The apparatus as in claim 12 , wherein the observed network conditions are proximate to one or more of a location of the source node, the particular communication path, and a location of a destination node that receives the packet.
14. The apparatus as in claim 11 , wherein the process further comprises:
observing current network conditions in the network; and
calculating the optimal packet size for optimizing the transmission experience of the packet based further on the observed current network conditions.
15. The apparatus as in claim 11 , wherein the optimizing of the transmission experience comprises one or more of: reducing packet delay, improving a transmission success rate, reducing a transmission time, reducing collisions, and reducing packet loss.
16. The apparatus as in claim 11 , wherein the process further comprises:
accessing a service level agreement (SLA) in the network;
determining one or more SLA requirements according to the SLA; and
calculating the optimal packet size for optimizing the transmission experience of the packet based further on the determined SLA requirement.
17. The apparatus as in claim 16 , wherein the SLA is associated with one or more of a source node that transmits the packet and a destination node that receives the packet.
18. The apparatus as in claim 11 , wherein the process further comprises:
dynamically adjusting the size of the packet at one or more times during a lifetime of the packet.
19. The apparatus as in claim 11 , wherein the process further comprises:
receiving feedback regarding the dynamically adjusted size of the packet to be transmitted along the particular communication path; and
calculating the optimal packet size based further on the received feedback.
20. The apparatus as in claim 11 , wherein the process further comprises:
sending artificial packets of varying sizes in the network in order to construct the predictive model.
21. A tangible non-transitory computer readable medium storing program instructions that cause a learning machine to execute a process, the process comprising:
collecting information relating to network metrics in a computer network;
predicting a packet delay for a packet to be transmitted along a particular communication path based on the network metrics, wherein the predicting includes:
building, by the learning machine, a predictive model that takes into account packet size by inputting the collected network metrics into an engine, which then yields a prediction of the packet delay, and
calculating an optimal packet size for optimizing a transmission experience of the packet to be transmitted along the particular communication path based on the predicted packet delay; and
sending instructions to an application that will be transmitting the packet that instruct the application to dynamically adjust a size of the packet to be transmitted along the particular communication path based on the calculated optimal packet size.