Method and apparatus for optimizing channel bandwidth utilization by simultaneous reliable transmission of sets of multiple data transfer units (DTUs)
First Claim
1. A method of transmitting data over a network, comprising:
- forming a plurality of data transfer unit bursts, each of said data transfer unit bursts including a plurality of data transfer units;
transmitting said bursts of data transfer units to at least one receiving device;
receiving a plurality of status report messages, each of said status report messages indicating a receipt status with regard to at least one previously transmitted data transfer unit;
recording, responsive to receipt of each of said plurality of status report messages, said receipt status with regard to said at least one previously transmitted data transfer unit;
wherein said transmitting continues in the event at least one of said plurality of status report messages indicates that said at least one previously transmitted data transfer unit was not successfully received; and
retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received in response to a predetermined condition being met,wherein said transmitting said bursts of data transfer units includes, at least at some times, stopping, at least temporarily, transmission of said bursts of data transfer units in response to said predetermined condition being met,said method further including, in the event at least one status report message was not received indicating a receipt status with regard to at least one of said at least one previously transmitted data transfer unit, transmitting, at least at some times, at least one status request message to request said at least one status report message that was not received, while said transmission of said bursts of data transfer units is stopped, andwherein said retransmitting said at least one previously transmitted data transfer unit that was not successfully received includes retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received, while said transmission of said bursts of data transfer units is stopped.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for reliably transmitting large amounts of data over a high speed network with large latency, such as a communication satellite based network. A transmitting device transmits data transfer units (DTUs) to one or more receiving devices. The transmitting device forms and transmits burst consisting of reliably delivered sets of multiple DTUs. Both the transmitting device and the receiving devices process multiple bursts in parallel, such that subsequent bursts can be transmitted and received prior to the correct receipt of a previously transmitted burst at all of the receiving devices, and/or prior to receipt of a status report at the transmitting device regarding a previously transmitted burst. The transmitting device operates to transmit subsequent bursts even before the receipt of a status information regarding a previous burst, and the receiving devices process subsequently received bursts while awaiting retransmission of a lost or damaged DTU from a previous burst.
25 Citations
24 Claims
-
1. A method of transmitting data over a network, comprising:
-
forming a plurality of data transfer unit bursts, each of said data transfer unit bursts including a plurality of data transfer units; transmitting said bursts of data transfer units to at least one receiving device; receiving a plurality of status report messages, each of said status report messages indicating a receipt status with regard to at least one previously transmitted data transfer unit; recording, responsive to receipt of each of said plurality of status report messages, said receipt status with regard to said at least one previously transmitted data transfer unit; wherein said transmitting continues in the event at least one of said plurality of status report messages indicates that said at least one previously transmitted data transfer unit was not successfully received; and retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received in response to a predetermined condition being met, wherein said transmitting said bursts of data transfer units includes, at least at some times, stopping, at least temporarily, transmission of said bursts of data transfer units in response to said predetermined condition being met, said method further including, in the event at least one status report message was not received indicating a receipt status with regard to at least one of said at least one previously transmitted data transfer unit, transmitting, at least at some times, at least one status request message to request said at least one status report message that was not received, while said transmission of said bursts of data transfer units is stopped, and wherein said retransmitting said at least one previously transmitted data transfer unit that was not successfully received includes retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received, while said transmission of said bursts of data transfer units is stopped. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A device for transmitting data over a network, said device operable:
-
to form a plurality of data transfer unit bursts, each of said data transfer unit bursts including a plurality of data transfer units; to transmit said bursts of data transfer units to at least one receiving device; to receive a plurality of status report messages, each of said status report messages indicating a receipt status with regard to at least one previously transmitted data transfer unit; to record, responsive to receipt of each of said plurality of status report messages, said receipt status with regard to said at least one previously transmitted data transfer unit; wherein said transmitting continues in the event at least one of said plurality of status report messages indicates that said at least one previously transmitted data transfer unit was not successfully received; and to retransmit, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received in response to a predetermined condition being met, wherein said device is further operable, at least at some times, to stop, at least temporarily, transmission of said bursts of data transfer units in response to said predetermined condition being met, wherein said device is further operable, in the event at least one status report message was not received indicating a receipt status with regard to at least one of said at least one previously transmitted data transfer unit, to transmit, at least at some times, at least one status request message to request said at least one status report message that was not received, while said transmission of said bursts of data transfer units is stopped, and wherein said device is further operable to retransmit, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received, while said transmission of said bursts of data transfer units is stopped. - View Dependent Claims (21)
-
-
22. A computer program product, including a computer readable medium, said computer readable medium having a computer program stored thereon, said computer program being executable by at least one processor for transmitting data over a network, said computer program comprising:
-
program code for forming a plurality of data transfer unit bursts, each of said data transfer unit bursts including a plurality of data transfer units; program code for transmitting said bursts of data transfer units to at least one receiving device; program code for receiving a plurality of status report messages, each of said status report messages indicating a receipt status with regard to at least one previously transmitted data transfer unit; program code for recording, responsive to receipt of each of said plurality of status report messages, said receipt status with regard to said at least one previously transmitted data transfer unit; wherein said transmitting continues in the event at least one of said plurality of status report messages indicates that said at least one previously transmitted data transfer unit was not successfully received; and program code for retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received in response to a predetermined condition being met, wherein said program code for transmitting includes program code for, at least at some times, stopping, at least temporarily, transmission of said bursts of data transfer units in response to said predetermined condition being met said computer program further including program code for, in the event at least one status report message was not received indicating a receipt status with regard to at least one of said at least one previously transmitted data transfer unit, transmitting, at least at some times, at least one status request message to request said at least one status report message that was not received, while said transmission of said bursts of data transfer units is stopped, and wherein said program code for retransmitting said at least one previously transmitted data transfer unit that was not successfully received includes program code for retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received, while said transmission of said bursts of data transfer units is stopped.
-
-
23. A device for transmitting data over a network, comprising:
-
means for forming a plurality of data transfer unit bursts, each of said data transfer unit bursts including a plurality of data transfer units; means for transmitting said bursts of data transfer units to at least one receiving device; means for receiving a plurality of status report messages, each of said status report messages indicating a receipt status with regard to at least one previously transmitted data transfer unit; means for recording, responsive to receipt of each of said plurality of status report messages, said receipt status with regard to said at least one previously transmitted data transfer unit; wherein said transmitting continues in the event at least one of said plurality of status report messages indicates that said at least one previously transmitted data transfer unit was not successfully received; and means for retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received in response to a predetermined condition being met, wherein said means for transmitting is operable, at least at some times, to stop, at least temporarily, transmission of said bursts of data transfer units in response to said predetermined condition being met, said device further including means for transmitting, at least at some times, in the event at least one status report message was not received indicating a receipt status with regard to at least one of said at least one previously transmitted data transfer unit, at least one status request message to request said at least one status report message that was not received, while said transmission of said bursts of data transfer units is stopped, and wherein said means for retransmitting is operable to retransmit, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received, while said transmission of said bursts of data transfer units is stopped.
-
-
24. A computer data signal embodied in a carrier wave, said computer data signal including a computer program executable by at least one processor for transmitting data over a network, said computer program comprising:
-
program code for forming a plurality of data transfer unit bursts, each of said data transfer unit bursts including a plurality of data transfer units; program code for transmitting said bursts of data transfer units to at least one receiving device; program code for receiving a plurality of status report messages, each of said status report messages indicating a receipt status with regard to at least one previously transmitted data transfer unit; program code for recording, responsive to receipt of each of said plurality of status report messages, said receipt status with regard to said at least one previously transmitted data transfer unit; wherein said transmitting continues in the event at least one of said plurality of status report messages indicates that said at least one previously transmitted data transfer unit was not successfully received; and program code for retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received in response to a predetermined condition being met, wherein said program code for transmitting includes program code for stopping, at least temporarily, transmission of said bursts of data transfer units in response to said predetermined condition being met, said computer program further including program code for, in the event at least one status report message was not received indicating a receipt status with regard to at least one of said at least one previously transmitted data transfer unit, transmitting, at least at some times, at least one status request message to request said at least one status report message that was not received, while said transmission of said bursts of data transfer units is stopped, and wherein said program code for retransmitting said at least one previously transmitted data transfer unit that was not successfully received includes program code for retransmitting, at least at some times, said at least one previously transmitted data transfer unit that was not successfully received, while said transmission of said bursts of data transfer units is stopped.
-
Specification