Using signals extracted from a VOIP data stream to distinguish between network congestion and link losses
First Claim
Patent Images
1. A method comprising:
- receiving packets from a sending client device via a network, wherein each of the received packets includes chat content data and metadata for a chat session, the metadata including a timestamp indicating when the received packet was sent;
determining one or more network performance signals from the metadata of the received packets, the one or more network performance signals distinguishing between a scenario where a network problem arises from congestion and a scenario where the network problem arises from link loss, wherein the one or more network performance signals include a moving average signal, determining the moving average signal comprising;
calculating a relative one-way trip time (ROTT) for each received packet by comparing the timestamp to a time at which the received packet was received;
calculating a long-term ROTT average, the long-term ROTT average being an average of the ROTT for the last n packets received, where n is a positive integer greater than one;
calculating a short-term ROTT average, the short-term ROTT average being an average of the ROTT for the last m packets received, where m is a positive integer less than n; and
calculating a difference between the long-term ROTT average and the short-term ROTT average, wherein the difference exceeding a threshold indicates the network problem arose from network congestion;
selecting, based on the moving average signal, between attributing the network problem to network congestion and attributing the network problem to link loss;
determining a control message to send based on whether the network problem is attributed to network congestion or link loss, the control message indicating how a parameter of the chat session should be updated to address the network problem, wherein, responsive to attributing the network problem to network congestion, the control message indicates that a bitrate of the chat session should be reduced; and
sending the control message to the sending client device.
2 Assignments
0 Petitions
Accused Products
Abstract
Two (or more) client devices engage in a chat session. Packets associated with the chat session are numbered using a predetermined pattern. When the packets are received, the receiving client device extracts signals from the packet metadata to determine whether the primary cause of packet loss during transit is network congestion or link losses. Based on the extracted signals, the receiving device sends a control message back to the other client device indicating how one or more chat parameters should be updated. On receiving the control message, the other client device updates the chat parameters accordingly.
16 Citations
20 Claims
-
1. A method comprising:
-
receiving packets from a sending client device via a network, wherein each of the received packets includes chat content data and metadata for a chat session, the metadata including a timestamp indicating when the received packet was sent; determining one or more network performance signals from the metadata of the received packets, the one or more network performance signals distinguishing between a scenario where a network problem arises from congestion and a scenario where the network problem arises from link loss, wherein the one or more network performance signals include a moving average signal, determining the moving average signal comprising; calculating a relative one-way trip time (ROTT) for each received packet by comparing the timestamp to a time at which the received packet was received; calculating a long-term ROTT average, the long-term ROTT average being an average of the ROTT for the last n packets received, where n is a positive integer greater than one; calculating a short-term ROTT average, the short-term ROTT average being an average of the ROTT for the last m packets received, where m is a positive integer less than n; and calculating a difference between the long-term ROTT average and the short-term ROTT average, wherein the difference exceeding a threshold indicates the network problem arose from network congestion; selecting, based on the moving average signal, between attributing the network problem to network congestion and attributing the network problem to link loss; determining a control message to send based on whether the network problem is attributed to network congestion or link loss, the control message indicating how a parameter of the chat session should be updated to address the network problem, wherein, responsive to attributing the network problem to network congestion, the control message indicates that a bitrate of the chat session should be reduced; and sending the control message to the sending client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable medium storing computer program instructions executable by a processor to perform operations comprising:
-
receiving packets from a sending client device via a network, wherein each of the received packets includes chat content data and metadata for a chat session, the metadata including a timestamp indicating when the received packet was sent; determining one or more network performance signals from the metadata of the received packets, the one or more network performance signals distinguishing between a scenario where a network problem arises from congestion and a scenario where the network problem arises from link loss, wherein the one or more network performance signals include a moving average signal, determining the moving average signal comprising; calculating a relative one-way trip time (ROTT) for each received packet by comparing the timestamp to a time at which the received packet was received; calculating a long-term ROTT average, the long-term ROTT average being an average of the ROTT for the last n packets received, where n is a positive integer greater than one; calculating a short-term ROTT average, the short-term ROTT average being an average of the ROTT for the last m packets received, where m is a positive integer less than n; and calculating a difference between the long-term ROTT average and the short-term ROTT average, wherein the difference exceeding a threshold indicates the network problem arose from network congestion; selecting, based on the moving average signal, between attributing the network problem to network congestion and attributing the network problem to link loss; determining a control message to send based on whether the network problem is attributed to network congestion or link loss, the control message indicating how a parameter of the chat session should be updated to address the network problem, wherein, responsive to attributing the network problem to network congestion, the control message indicates that a bitrate of the chat session should be reduced; and sending the control message to the sending client device. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer system comprising:
-
one or more processors; and one or more computer readable media storing computer program instructions that, when executed, cause the one or more processors to perform operations including; receiving packets from a sending client device via a network, wherein each of the received packets includes chat content data and metadata for a chat session, the metadata including a timestamp indicating when the received packet was sent; determining one or more network performance signals from the metadata of the received packets, the one or more network performance signals distinguishing between a scenario where a network problem arises from congestion and a scenario where the network problem arises from link loss, wherein the one or more network performance signals include a moving average signal, determining the moving average signal comprising; calculating a relative one-way trip time (ROTT) for each received packet by comparing the timestamp to a time at which the received packet was received; calculating a long-term ROTT average, the long-term ROTT average being an average of the ROTT for the last n packets received, where n is a positive integer greater than one; calculating a short-term ROTT average, the short-term ROTT average being an average of the ROTT for the last m packets received, where m is a positive integer less than n; and calculating a difference between the long-term ROTT average and the short-term ROTT average, wherein the difference exceeding a threshold indicates the network problem arose from network congestion; selecting, based on the moving average signal, between attributing the network problem to network congestion and attributing the network problem to link loss; determining a control message to send based on whether the network problem is attributed to network congestion or link loss, the control message indicating how a parameter of the chat session should be updated to address the network problem, wherein, responsive to attributing the network problem to network congestion, the control message indicates that a bitrate of the chat session should be reduced; and sending the control message to the sending client device. - View Dependent Claims (18, 19, 20)
-
Specification