Method and system for transferring data to improve responsiveness when sending large data sets
First Claim
1. A method comprising:
- (a) determining a congestion window comprising;
inserting a first timestamp message into an application level request associated with a first image from a client computer;
transferring the application level request and the first timestamp message to a server;
receiving the first timestamp message at the server, where a first client time is calculated based at least on a time the first timestamp message is received, and calculating a send bandwidth at the server (bsend) in bytes/msec, where the first client time is used to compute bsend;
sending one or more second timestamp messages from the server to the client computer;
receiving the one or more second timestamp messages at the client computer, where a second time (ti) is calculated based at least on one or more times the one or more second timestamp messages are received;
calculating a read bandwidth (bread) in bytes/msec, where bread=C/T, where C (total number of bytes that were sent from server to client)=ci−
ci−
1, is an amount of data that was sent in a time between a last two second timestamp messages (ci, ci−
1), and T=ti−
ti−
1+di−
di−
1, where T (server time in msec) is equal to the time elapsed on the server between the last two second timestamp messages (ti−
ti−
1), where di and di−
1 are client times and ti−
ti−
1 are server times in the last two incoming timestamp messages of the one or more second timestamp messages; and
assigning a congestion window equal to bread when bsend is greater than or equal to 1.3×
bread; and
(b) using the congestion window to achieve one or both a high data throughput and a low latency.
0 Assignments
0 Petitions
Accused Products
Abstract
Most of the internet traffic today is carried out via the Transmission Control Protocol (TCP). The main advantage of TCP is that it provides reliable data transfer to the application layer and simplifies programming. The protocol maximizes data throughput but may also lead to noticeable transmission delay in wide area networks (WAN). A client-server based medical image viewing system is disclosed that achieves high data throughput over TCP without impacting responsiveness. Special timestamp messages inserted into the data stream allow the system to detect situations where network latency increases noticeably and to obtain a reliable estimate of sustained transfer bandwidth. The system applies a feedback scheme that avoids network delays by limiting send bandwidth. In addition other parameters, in particular image compression settings, are dynamically adjusted depending on current network quality.
348 Citations
20 Claims
-
1. A method comprising:
-
(a) determining a congestion window comprising; inserting a first timestamp message into an application level request associated with a first image from a client computer; transferring the application level request and the first timestamp message to a server; receiving the first timestamp message at the server, where a first client time is calculated based at least on a time the first timestamp message is received, and calculating a send bandwidth at the server (bsend) in bytes/msec, where the first client time is used to compute bsend; sending one or more second timestamp messages from the server to the client computer; receiving the one or more second timestamp messages at the client computer, where a second time (ti) is calculated based at least on one or more times the one or more second timestamp messages are received; calculating a read bandwidth (bread) in bytes/msec, where bread=C/T, where C (total number of bytes that were sent from server to client)=ci−
ci−
1, is an amount of data that was sent in a time between a last two second timestamp messages (ci, ci−
1), and T=ti−
ti−
1+di−
di−
1, where T (server time in msec) is equal to the time elapsed on the server between the last two second timestamp messages (ti−
ti−
1), where di and di−
1 are client times and ti−
ti−
1 are server times in the last two incoming timestamp messages of the one or more second timestamp messages; andassigning a congestion window equal to bread when bsend is greater than or equal to 1.3×
bread; and(b) using the congestion window to achieve one or both a high data throughput and a low latency. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
(a) determining a bandwidth limit comprising; inserting a first timestamp message into an application level request associated with a first image from a client computer; transferring the application level request and the first timestamp message to a server; receiving the first timestamp message at the server, where a first client time is calculated based at least on a time the first timestamp message is received, and calculating a send bandwidth at the server (bsend) in bytes/msec, where the first client time is used to compute bsend; sending one or more second timestamp messages from the server to the client computer; receiving the one or more second timestamp messages at the client computer, where one or more second times (ti) are calculated based at least on the time the one or more second timestamp messages are received; calculating a read bandwidth (bread) in bytes/msec, where bread=C/T, where C (total number of bytes that were sent from server to client)=ci−
ci−
1, is an amount of data that was sent in a time between a last two second timestamp messages (ci, ci−
1), and T=ti−
ti−
1+di−
di−
1, where T (server time in msec) is equal to the time elapsed on the server between the last two second timestamp messages (ti−
ti−
1), where di and di−
1 are client times and ti−
ti−
1 are server times in the last two incoming timestamp messages of the one or more second timestamp messages; andassigning a bandwidth limit equal to sixty (60) percent of bread when delay (e) exceeds 40 msec; and (b) using the bandwidth limit to limit bsend to achieve one or both a high data throughput and a low latency. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method comprising:
(a) determining a bandwidth limit comprising; inserting a first timestamp message into an application level request associated with a first image from a client computer; transferring the application level request and the first timestamp message to a server; receiving the first timestamp message at the server, where a first client time is calculated based at least on a time the first timestamp message is received, and calculating a send bandwidth at the server (bsend) in bytes/msec, where the first client time is used to compute bsend; sending one or more second timestamp messages from the server to the client computer; receiving the one or more second timestamp messages at the client computer, where one or more second times (ti) are calculated based at least on the time the one or more second timestamp messages are received; calculating a read bandwidth (bread) in bytes/msec, where bread=C/T, where C (total number of bytes that were sent from server to client)=ci−
ci−
1, is an amount of data that was sent in a time between a last two second timestamp messages (ci, ci−
1), and T (server time in msec)=ti−
ti−
1+di−
di−
1, where di and di−
1 are client times and ti−
ti−
1 are server times in the last two incoming timestamp messages of the one or more second timestamp messages; andassigning a bandwidth limit equal to sixty (60) percent of bread when delay (e) exceeds - View Dependent Claims (18, 19, 20)
Specification