A
system for efficiently and reliably communicating over a high-speed asymmetric communications link. The
system includes a first mechanism for connecting a first device to a second device via a channel. A second mechanism delivers data packets over the channel from the first device to the second device. Each packet is associated with a window of packets. A third mechanism selectively employs the second mechanism to re-send data packets not received by the second device after each window of packets. The window of packets is sized in accordance with the bandwidth of the communications link between the first device and the second device, and the
round trip delay time. In a specific embodiment, the first mechanism (includes
Transmission Control Protocol /
Internet Protocol (TCP / IP) functionality on the first device and the second device for establishing a first TCP / IP link from the second device to the first device. The first mechanism also includes Universal
Datagram Protocol (UDP) functionality on the first device and the second device for transferring UDP packets from the first device to the second device. The third mechanism sends
acknowledgement messages from the second device to the first device specifying the packets not received by the second device. The
system further includes a fourth mechanism for selectively disabling the second mechanism when first device does not receive an
acknowledgement message after a predetermined time interval. The predetermined time interval is a function of a window
timeout variable. The predetermined function is (M)x(window
timeout), where M is approximately 2. The window
timeout is greater than N multiplied by a number of packets included in the window of packets divided by the
data rate of the communications link between the first device and the second device, here N is an integer greater than 1. N is between 3 and 10.