Determining client latencies over a network
First Claim
1. Network latency estimation apparatus for estimating a client'"'"'s latency in a network communication between a server and said client, the apparatus comprising:
- an event observer for observing occurrences of pre-selected events associated with said communication occurring at said server, a logging device, associated with said event observer for logging into a data store the occurrence of said events together with respective time information, and a latency estimator associated with said logging device for using said logged occurrences with said respective time information to arrive at an estimation of a client'"'"'s latency for said communication.
4 Assignments
0 Petitions
Accused Products
Abstract
A network latency estimation apparatus for estimating latency in network communications between a server and a client. The apparatus comprises an event observer for observing occurrences of pre-selected events. The events associated with the communication occurring at the server. A logging device associated with the event observer for logging into a data store the occurrence of the events together with respective time information. A latency estimator associated with the logging device for using the logged occurrences with the respective time information to arrive at an estimation of a client'"'"'s latency for the communication.
249 Citations
99 Claims
-
1. Network latency estimation apparatus for estimating a client'"'"'s latency in a network communication between a server and said client, the apparatus comprising:
-
an event observer for observing occurrences of pre-selected events associated with said communication occurring at said server, a logging device, associated with said event observer for logging into a data store the occurrence of said events together with respective time information, and a latency estimator associated with said logging device for using said logged occurrences with said respective time information to arrive at an estimation of a client'"'"'s latency for said communication. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
2. Apparatus according to claim 1, wherein said client'"'"'s latency comprises the difference between a first time at which a client sends request data and a second time at which said client completes receipt of the requested data.
-
3. Apparatus according to claim 1, said latency estimator further comprising a round-trip-time estimator, capable of estimating a round trip time for said client, said estimation being based on receipt at the server of a request for data from the client in consequence of data previously sent to the client by the server.
-
4. Apparatus according to claim 3, wherein said round-trip-time-estimator is operable to estimate the round trip time by determining the shortest duration over a plurality of durations, measured between when a server sends data to a client, and when the server receives a subsequent request from the client, said subsequent request being in consequence of said data sent to the client by the server.
-
5. Apparatus according to claim 3, further comprising a pinger associated with said event observer.
-
6. Apparatus according to claim 5, wherein said events comprise sending out a ping, and receiving a response.
-
7. Apparatus according to claim 6, wherein the round-trip-time estimator is operable to estimate the round trip time based on the shorter of:
-
(a) a duration between a first time when the server sends data to a client, and a second time when the server receives a subsequent request from the client, and (b) the logged times of said ping event.
-
-
8. Apparatus according to claim 7, wherein said data store contains at least some of:
-
(a) an IP address of the client, (b) a number of bytes in a server'"'"'s response, (c) a server'"'"'s processing time, (d) a flag indicating whether the current request is the first request on a current channel, (e) a time the server accepts a connection from the client, (g) a time the server starts processing a client'"'"'s request, (h) a time the server completes writing the response to the channel, and (i) a number of bytes left to be sent when the server completes writing requests to the channel.
-
-
9. Apparatus according to claim 1, wherein said latency estimator is operable to form an initial estimate of the client'"'"'s latency by adding an estimated round trip time, to a delay between when the server receives an initial request for data from said client, and when the server receives a subsequent request for data from said client.
-
10. Apparatus according to claim 9, comprising a receipt indicator, associated with said event observer, operable to add to the end of data being sent an automatic end of data receipt indicator, for obtaining an acknowledgment of receipt of the end of the data by said client.
-
11. Apparatus according to claim 10, further comprising a client-data-reception-time estimator operable to estimate a time when the client received said data sent as the time when the server receives the acknowledgment of the receipt of said data.
-
12. Apparatus according to claim 11, wherein said latency estimator is further operable to estimate the client'"'"'s latency by using the earliest of the times determined from:
-
when the server receives the acknowledgment of receipt of the data, and when the server receives any other request from the client.
-
-
13. Apparatus according to claim 11, wherein said latency estimator is further operable to estimate the client'"'"'s latency by using the earliest of the times determined by when the server received the acknowledgment of receipt of the data sent, and when the server received any other request from the client wherein said other request is in consequence of said data sent.
-
14. Apparatus according to claim 9, further comprising a queuing latency probe, associated with said logging device, capable of sending a queue probing request to the server.
-
15. Apparatus according to claim 14, said pre-selected events further comprising:
-
sending, by the queuing latency probe, of said queue probing request, and the server accepting said queue probing request.
-
-
16. Apparatus according to claim 15, wherein said request is an HTTP request.
-
17. Apparatus according to claim 15, comprising an adder for adding an elapsed time between when said queuing latency probe request is sent to the server, and when said request is accepted for handling by the server, to said initial latency as measured by the client-latency estimator.
-
18. Apparatus according to claim 15, further comprising a transmission-data-rate estimator, connected to the latency estimator, said data rate estimator comprising a divider and a subtractor, said subtractor being connected to receive as inputs the estimated round trip time, and the initial estimate of the client'"'"'s latency, and to produce an output being the difference therebetween, said divider being connected to receive as a first input an amount of data sent by the server in the course of the transmission, and as a second input said subtractor output, and to produce an estimate of a transmission data rate by dividing therebetween.
-
19. Apparatus according to claim 18, further comprising an overall-client-data-rate estimator comprising an averager for averaging together a plurality of successively estimated transmission data rates for the given client connection thereby to estimate an overall data rate for said given client.
-
20. Apparatus according to claim 19, further comprising a client-data-reception-time estimator, comprising a multiplier and an adder, said adder being functional to add a time at which the server dispatched an end part of the requested data to the channel, to an output of the multiplier, wherein the multiplier is operable to multiply an amount of data left to send, by said overall data rate, the client-data reception time estimator thereby obtaining an estimate of client-data-reception-time.
-
21. Apparatus according to claim 20 further comprising a subtractor and an adder, said subtractor operable to subtract the time at which the server received an initial request for data from a client from said time the client received the last of the requested data, said adder operable to add one and a half times the estimated round trip time, and further add the latency as estimated by the queuing latency probe, to the output of the subtractor.
-
22. Apparatus according to claim 18, further comprising a client-connection-data-rate estimator comprising an averager for averaging together all the transmission data rates for a given client connection wherein the corresponding transmissions meet a specific size criteria.
-
23. Apparatus according to claim 22, further comprising a client-data-reception-time estimator comprising an adder and a multiplier, said adder for adding the time the server last dispatched data to the client, to the output of the multiplier, wherein said multiplier is operable to multiply an amount of data left to send by said data rate for a given client connection, thereby to produce an estimate of a time of receipt of said last data to the client.
-
24. Apparatus according to claim 23 further comprising a client latency estimator for estimating a respective client latency'"'"'s, the latency estimator having a subtractor and an adder, said subtractor for subtracting the time the server received an initial request for data from a client from said estimate of a time of receipt of said last data to the client, said adder for adding together one and a half times the estimated round trip time, the latency as estimated by the queuing latency probe, and the output of the subtractor, thereby to form an estimate of said respective client'"'"'s latency.
-
25. Apparatus according to claim 18, further comprising a global-transmission-rate estimator comprising an averager, said averager for averaging together successive data transmission rates, thereby to estimate a global transmission rate.
-
26. Apparatus according to claim 25, further comprising a client-data-reception-time estimator comprising an adder and a multiplier, said multiplier operable to multiply an amount of data left to send by said global transmission data rate and said adder operable to add the time the server dispatched the last data to the client, to the output of the multiplier, thereby to provide an estimate of a client data reception time.
-
27. Apparatus according to claim 26 further comprising a subtractor and an adder, said subtractor for subtracting the time the server received an initial request for data from a client from said time of receipt of said last data at said client, said adder connected to add one and a half times the estimated round trip time, to the latency as estimated by the queuing latency probe, thereby to provide a revision of the estimate of the client'"'"'s latency.
-
28. Apparatus according to claim 18, further comprising a global-transmission-rate estimator comprising an averager operable to estimate a global transmission data rate, said averager operable to average together a series of successively obtained transmission data rates wherein respective transmissions meet a pre-determined size criteria.
-
29. Apparatus according to claim 28, further comprising a client-data-reception-time estimator operable to estimate the time the client received a last part of the requested data, the estimator comprising a multiplier and an adder, the multiplier being connected to multiply the amount of data left to send by said global transmission data rate, and to output a result to provide a first input to said adder, said adder being arranged to add said input to said time at which the server dispatched said last data part to the client, thereby to provide an estimate of said client data reception time.
-
30. Apparatus according to claim 29, said subtractor further being operable to subtract the time the server received an initial request for data from a client from said time the client received the last part of said requested data, said adder being further operable to add, to the output of the subtractor, one and a half times the estimated round trip time, and the time duration between a first time when the queuing latency probe sends the request to the server, and a second time when the server accepts the request sent by the probe.
-
31. Apparatus according to claim 18, wherein a plurality of data transmission rates are measured for a given channel, the apparatus further comprising a channel-data-rate estimator comprising an averager for averaging together all the data rates for each transmission on said given channel.
-
32. Apparatus according to claim 31, further comprising an overall-client-data-rate estimator comprising an averager, said averager being operable to average together a plurality of successively measured data rates for a given client'"'"'s channels.
-
33. Apparatus according to claim 31, further comprising a global-data-rate estimator for estimating a global data rate, the estimator comprising an averager for averaging together a plurality of successively measured data rates.
-
34. Apparatus according to claim 18, further comprising a transmission-packet-rate estimator operable to estimate a packet rate for a transmission, the estimator comprising a divider and a subtractor, wherein said subtractor is operable to subtract the round trip time from the initial estimate of the client'"'"'s latency for the transmission to produce a subtractor output, said divider being connected to divide the number of packets the server sends in the course of the transmission, by said subtractor output.
-
35. Apparatus according to claim 34, further comprising an overall-client-packet-rate estimator operable to estimate the overall packet rate for a given client connection, the estimator comprising an averager, for averaging together a plurality of successively measured transmission packet rates for the given client connection.
-
36. Apparatus according to claim 35, further comprising a client-data-reception-time estimator operable to estimate a time the client received the last of the data, the estimator comprising a multiplier and an adder, said multiplier operable to multiply a number of packets remaining to be sent by said overall packet rate, thereby to produce a multiplier output, and said adder being connected to add the time the server wrote the end of the data to the client, to said multiplier output.
-
37. Apparatus according to claim 36, the latency estimator being further operable to estimate the client latency, said subtractor further operable to subtract the time the server received an initial request for data from a client from said time the client received the last of the data, thereby to produce a subtractor output, said adder further operable to add to the result of the subtractor one and a half times the estimated round trip time, and further to add thereto the latency as estimated by the queuing latency probe.
-
38. Apparatus according to claim 34, further comprising a client-connection-packet-rate estimator operable to estimate the packet rate for a given client connection, the estimator comprising an averager operable to average together ones of a succession of packet rates for given transmissions of a client connection wherein respective transmissions meet a pre-selected size criteria.
-
39. Apparatus according to claim 38, further comprising a client-data-reception-time estimator operable to estimate a time the client received the last of the data, the estimator comprising an adder and a multiplier, said multiplier operable to multiply the number of packets left to send by said packet rate for a given client connection, to produce a multiplier output, said adder adding the time the server wrote the last data to the client, to said multiplier output.
-
40. Apparatus according to claim 39, further operable to estimate the client latency, said subtractor further operable to subtract the time the server received an initial request for data from a client from said estimated time the client received the last of the data, said adder being further operable to add to the output of the subtractor one and a half times the estimated round trip time, and said adder further operable to add thereto a queuing latency duration between a queuing latency probing request sending time when the queuing latency probe sends said probing request to the server, and a second, queuing latency probe request receipt time, when the server accepts said probing request.
-
41. Apparatus according to claim 34, further comprising a global-transmission-rate estimator, comprising an averager operable to estimate a global transmission packet rate, said averager operable to average together all the transmission packet rates of all the connections to the server.
-
42. Apparatus according to claim 41, further comprising a client-data-reception-time estimator operable to estimate the time the client received the last of the data, the estimator comprising an adder and a multiplier, said multiplier operable to multiply the number of packets left to send by said global transmission packet rate, to form a multiplier output, said adder for adding the time the server wrote the last data to the client, to said multiplier output.
-
43. Apparatus according to claim 42, further operable to estimate the client latency, the apparatus comprising a further adder and a further subtractor, said further subtractor operable to subtract the time the server received an initial request for data from a client from said time the client received the last of the data thereby to form a subtractor output, said adder operable to add to the output of the subtractor one and a half times the estimated round trip time, and the duration between the a first time when the queuing latency probe sends the request to the server, and a second time when the server accepts the request sent by the probe.
-
44. Apparatus according to claim 34, further comprising a global-transmission-rate estimator operable to estimate a global transmission packet rate, said averager being further operable to average together the transmission rates from all transmissions meeting a predetermined size criteria.
-
45. Apparatus according to claim 44, further comprising a client-data-reception-time estimator operable to estimate the time the client received the last of the data, the estimator comprising an adder and a multiplier, said multiplier multiplying the number of packets left to send by said global transmission packet rate, said adder operable to add the time the server wrote the last data to the client, to the output of the multiplier.
-
46. Apparatus according to claim 45, comprising a subtractor and a further adder, said subtractor being operable to subtract the time the server received an initial request for data from a client from said time the client received the last of the data, said adder being operable to add to the output of the subtractor one and a half times the estimated round trip time, and the time duration between the a first time when the queuing latency probe sends the latency test request to the server, and a second time when the server accepts the latency test request.
-
47. Apparatus according to claim 14, further comprising a channel-packet-rate estimator operable to estimate the packet rate for a given channel, the estimator comprising a subtractor, and a divider, wherein said subtractor is operable to subtract the round trip time from the latency measured for said client for said channel, thereby to produce a subtractor output, said divider being connected to divide a number of packets the server sends on the channel, by the output of the subtractor.
-
48. Apparatus according to claim 47, wherein each client connects via a plurality of channels, the apparatus further comprising an overall-client-packet-rate estimator operable to estimate an overall packet rate for a given client, the estimator comprising an averager for averaging together a plurality of successively measured packet rates for each of said plurality of channels.
-
49. Apparatus according to claim 47, further comprising a global-packet-rate estimator operable to estimate the global packet rate, the estimator comprising an averager operable to average together a plurality of successively measured packet rates.
-
50. Apparatus according to claim 1, wherein the apparatus is operable to log HTTP transmissions.
-
2. Apparatus according to claim 1, wherein said client'"'"'s latency comprises the difference between a first time at which a client sends request data and a second time at which said client completes receipt of the requested data.
-
-
51. A method for estimating the latency of a user client on a network communication, using measurements made in association with a server with which said client is in communication, the method comprising the steps of:
-
(a) logging in association with a server, events, and the times of occurrence of said events, and (b) processing said logged times to estimate said latency. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98)
-
52. The method of claim 51, wherein said user client latency is the latency between a first time when a client sends a request for data to a server and a second time at which said client receives a last datum of the requested data.
-
53. The method of claim 52, further comprising a round-trip-time estimation step, comprising estimating a round trip time, said estimation being based on when a request for data from the client is received by the server in consequence of data previously sent to the client by the server.
-
54. The method of claim 53, wherein said round-trip-time-estimation step comprises estimating the round trip time by finding a shortest duration between a third time when the server sends data to said client, and a fourth time when the server receives a subsequent request from said client, said subsequent request being made by said client in consequence of data sent to the client by the server.
-
55. The method of claim 54, further comprising a step of pinging the client.
-
56. The method of claim 55 further comprising recording time information about a duration between sending said ping and receiving a response from a respective client.
-
57. The method of claim 56, comprising estimating a data round trip time based on the shorter of:
-
(a) a shortest duration between when the server sends data to a client, and when the server receives a corresponding subsequent request from the client, and (b) a time duration recorded by said pinging.
-
-
58. The method of claim 52, wherein the logging step logs a selection from the group consisting of:
-
(a) an IP address of the client, (b) a number of bytes in a response, (c) a server'"'"'s processing time, (d) a flag indicating if a current request is a first request on a current channel, (e) a time the server accepts a connection from the client, (g) a time the server starts processing a request, (h) a time the server completes writing a request to a channel, and (i) a number of bytes left to be sent when the server completes writing requests to a channel.
-
-
59. The method of claim 52, further comprising a client-latency estimation step, of:
-
determining a duration between when the server receives an initial request for data from a client, and when the server receives a subsequent request for data from that client, as a response request duration, and adding thereto an estimated round trip time, thereby to form an approximation of said client latency.
-
-
60. The method of claim 59, comprising adding, at the end of the data being sent, an indication to the client to send an additional request to the server.
-
61. The method of claim 60, further comprising a client-data-reception-time estimation step comprising approximating a time when the client receives data sent as a time when the server receives a request resulting from said indication.
-
62. The method of claim 61, wherein said client-latency estimation step comprises providing a first client latency estimate as an earliest of:
-
a time when the server receives the request in response to said indicator, and a time when the server receives any other request from the client wherein said other request is in consequence of said data sent.
-
-
63. The method of claim 59, having a queuing latency probing step, comprising
sending a request to the server, measuring a first time at which said request is sent to the server, measuring a second time at which said request is handled by the server, and recording a queuing latency as a duration between said first time and said second time. -
64. The method of claim 63, wherein said request is an HTTP request.
-
65. The method of claim 63, wherein said client-latency estimation step further comprises adding said recorded queuing latency to said initial client latency estimate, thereby to provide a revised client latency estimation.
-
66. The method of claim 63, further comprising a transmission-data-rate estimation step comprising dividing an amount of data the server sends in the course of a given transmission, by said client latency estimate for said given transmission, and subtracting the round trip time, thereby to estimate a transmission data rate.
-
67. The method of claim 66, further comprising an overall-client-data-rate estimation step of averaging together a plurality of successively measured transmission data rates for the given client connection.
-
68. The method of claim 67, further comprising a client-data-reception-time estimation step comprising:
-
multiplying an amount of data left to send by said overall data rate, and adding thereto a time at which the server dispatches an end of data indication to the client, thereby to provide an approximation of a time at which the client receives a last part of the data being sent.
-
-
69. The method of claim 68, wherein the user client latency estimation step comprises:
-
subtracting the time the server received an initial request for data from the client from said time the client received the last of the data, adding one and a half times the estimated round trip time, and adding the recorded queuing latency, thereby to estimate the client latency.
-
-
70. The method of claim 66, further comprising a client-connection-data-rate estimation step comprising:
-
identifying ones of transmissions for a respective client connection, being larger than a predetermined size, averaging together respective transmission data rates of said identified transmissions, thereby to provide an approximation of the data rate for a given client connection.
-
-
71. The method of claim 70, further comprising a client-data-reception-time estimation step comprising:
-
multiplying the amount of data remaining to send by said data rate for a given client connection, and adding thereto a time at which the server dispatched the last data part of the requested data to the client, thereby to provide an approximation of a time the client received the last of the requested data.
-
-
72. The method of claim 71, further comprising:
-
subtracting the time at which the server received an initial request for data from a client from said time at which the client received the last of the requested data, adding thereto one and a half times the estimated round trip time, and adding the queuing latency thereto, thereby to provide an approximation of the client latency.
-
-
73. The method of claim 66, further comprising a global-transmission-rate estimation step, comprising estimating a global transmission data rate, by averaging together transmission rates.
-
74. The method of claim 73, further comprising a client-data-reception-time estimation step of:
-
multiplying the amount of data left to send by said global transmission data rate, adding thereto the time of server dispatch of the last data to the client, thereby to provide an approximation of a time at which the client received the last of the requested data.
-
-
75. The method of claim 74, further comprising:
-
subtracting the time the server received an initial request for data from a client from said time the client received the last of the requested data, adding thereto one and a half times the estimated round trip time, and adding thereto the queuing latency, thereby to provide an estimation of the client latency.
-
-
76. The method of claim 66, further comprising a global-transmission-rate estimation step, comprising
identifying ones of a plurality of transmissions exceeding a predetermined threshold size, and averaging together transmission rates of said identified transmissions, thereby to estimates a global transmission data rate. -
77. The method of claim 76, further comprising a client-data-reception-time estimation step, comprising:
-
multiplying the amount of data left to send by said global transmission data rate, adding thereto the time the server wrote the last data to the client, thereby to estimate the time the client received the last of the requested data.
-
-
78. The method of claim 77, comprising:
-
subtracting the time the server received an initial request for data from a client from said time the client received the last of the requested data, adding one and a half times the estimated round trip time, and adding thereto the recorded queuing latency, thereby to estimate the client latency.
-
-
79. The method of claim 63, wherein each said client communicates via at least one channel, the method further comprising a channel-data-rate estimation step of:
-
dividing an amount of data the server sends, by an approximation of the client latency measured for said channel, and subtracting therefrom the round trip time, thereby to provide an approximation of the data rate for a given channel.
-
-
80. The method of claim 79, wherein each client communicates via a plurality of channels, the method further comprising an overall-client-data-rate estimation step of:
-
providing data rates for each one of said plurality of channels, averaging together said plurality of data rates from said plurality of channels, thereby to estimate an approximation of a data rate for a given client.
-
-
81. The method of claim 79, further comprising a global-data-rate estimation step comprising:
-
providing data rates for a plurality of clients each communicating over a plurality of channels, and averaging together a plurality of successively measured data rates thereby to estimate the global data rate.
-
-
82. The method of claim 63, further comprising a transmission-packet-rate estimation step of:
-
obtaining a number of packets being sent by a server in the course of a transmission, dividing said number of packets by said first client latency estimate, subtracting therefrom the estimated round trip time, thereby to estimate a transmission packet rate for said transmission.
-
-
83. The method of claim 82, further comprising an overall-client-packet-rate estimation step of:
-
obtaining a plurality of said transmission packet rates over a plurality of transmissions for a given client connection, averaging together said plurality of transmission packet rates, thereby to provide an estimate of an overall client connection packet rate.
-
-
84. The method of claim 83, further comprising a client-data-reception-time estimation step of:
-
multiplying the number of packets left to send by said overall packet rate, adding thereto the time the server wrote the end of the data to the client, thereby to provide an approximation of a time at which the client received the last of the requested data.
-
-
85. The method of claim 84, wherein the client-latency estimation step comprises:
-
subtracting the time the server received an initial request for data from said client from said time the client received the last of the requested data, adding thereto one and a half times the estimated round trip time, and adding thereto the recorded queuing latency, thereby to provide an approximation of the client latency.
-
-
86. The method of claim 82, further comprising a client-connection-packet-rate estimation step of
obtaining a plurality of transmission packet rates for a given connection, identifying ones of said plurality of transmission packet rates whose respective transmissions exceed a predetermined size threshold, and averaging together said identified transmission packet rates, thereby to provide a client connection packet rate approximation. -
87. The method of claim 86, further comprising a client-data-reception-time estimation step, of
multiplying the number of packets left to send by said client connection packet rate approximation, and adding thereto the time the server dispatched the last of the requested data to the client, thereby to provide an estimate of a time the client received the last of the requested data. -
88. The method of claim 87, further comprising:
-
subtracting the time the server received an initial request for data from a client from said time the client received the last of the requested data, adding thereto one and a half times the estimated round trip time, and adding thereto the recorded queuing latency, thereby to estimate the client latency.
-
-
89. The method of claim 82, further comprising a global-transmission-rate estimation step of:
-
obtaining a plurality of transmission packet rates, and averaging together said plurality of transmission packet rates, thereby to estimate a global transmission packet rate.
-
-
90. The method of claim 89, further comprising a client-data-reception-time estimation step of:
-
multiplying the number of packets left to send by said global transmission packet rate, adding thereto the time the server wrote the last data to the channel, thereby to provide an approximation of a time at which the client received the last of the requested data.
-
-
91. The method of claim 90, further comprising
subtracting the time the server received an initial request for data from a client from said approximation of the time at which the client received the last of the requested data, adding thereto one and a half times the estimated round trip time, and adding the queuing latency, thereby to provide an approximation of the client latency. -
92. The method of claim 82, further comprising a global-transmission-rate estimation step of:
-
obtaining a plurality of transmission rates for each of a plurality of data transmissions, identifying ones of said plurality of transmission rates whose respective transmissions exceed a predetermined size threshold, and averaging together said identified transmission rates to form an approximation of a global transmission packet rate.
-
-
93. The method of claim 92, further comprising a client-data-reception-time estimation step of:
-
multiplying the number of packets left to send by said approximation of said global transmission packet rate, and adding thereto the time the server wrote the last data to the channel, thereby to provide an estimate of the time the client received the last of the requested data.
-
-
94. The method of claim 93, further comprising:
-
subtracting the time the server received an initial request for data from a client from said estimate of the time the client received the last of the requested data, adding thereto one and a half times the estimated round trip time, and adding thereto the recorded queuing latency, thereby to provide an approximation of said client latency.
-
-
95. The method of claim 63, further comprising a channel-packet-rate estimation step, wherein said client communicates using at least one channel, the method including:
-
obtaining a client latency approximation for said channel, dividing the number of packets the server is sending over the channel by the client latency approximation for said channel, subtracting therefrom the round trip time, thereby to provide an approximation of a packet rate for a given channel.
-
-
96. The method of claim 95, said client having at least one additional channel, the method further comprising:
-
obtaining an approximation of a packet rate for each of said channels, averaging together said packet rates, thereby to estimate a packet rate for said client.
-
-
97. The method of claim 95, further comprising a global-packet-rate estimation step of:
-
obtaining a plurality of packet rates for each one of a plurality of clients, and averaging together said packet rates to provide an approximation of a global packet rate.
-
-
98. The method of claim 51 comprising logging HTTP transmissions.
-
52. The method of claim 51, wherein said user client latency is the latency between a first time when a client sends a request for data to a server and a second time at which said client receives a last datum of the requested data.
-
-
99. A data carrier carrying data usable in combination with a general purpose computer to provide functionality capable of estimating the latency between when a client sends a request for data to a server, and when that client receives the data, using measurements made at a server, the data being usable to provide:
-
an event observer for observing pre-selected events associated with said communication occurring at said server, a logging device associated with said event observer for logging into a data store the occurrence of said events together with respective time information, and a latency estimator associated with said logging device for using said logged occurrences with said respective time information to arrive at an estimation of latency in said communication.
-
Specification
- Resources
-
Current AssigneeZarbana Digital Fund LLC (Intellectual Ventures LLC)
-
Original AssigneeRamot University Authority Applied, UAB Research Foundation (University of Alabama System)
-
InventorsMarshak, Mark, Levy, Hanoch
-
Granted Patent
-
Time in Patent OfficeDays
-
Field of Search
-
US Class Current709/224
-
CPC Class CodesH04L 43/0852 DelaysH04L 43/0864 Round trip delaysH04L 43/0888 ThroughputH04L 43/10 Active monitoring, e.g. hea...H04L 69/16 Implementation or adaptatio...H04L 69/163 In-band adaptation of TCP d...H04L 69/28 Timers or timing mechanisms...