Claims
- 1. A method for transferring a data file from a first terminal to a second terminal, the method comprising:
a) selecting a circuit or virtual circuit between the first and second terminals; b) accepting the data file; c) segmenting the data file to define data segments; d) adding overhead to each of the data segments to define chunks; and e) transmitting the chunks, from the first terminal to the second terminal, over the selected circuit,
wherein the act of selecting a circuit or virtual circuit is effected with signaling between the first and second terminals that occurs over a communications channel other than the selected circuit or virtual circuit.
- 2. The method of claim 1 wherein each of the chunks have the same size.
- 3. The method of claim 1 wherein the overhead includes a sequence number.
- 4. The method of claim 1 wherein the overhead includes a first field for carrying a value indicating a length of the chunk, and wherein the first field precedes the data segment in the chunk.
- 5. The method of claim 1 wherein the communications channel has a bandwidth that is less than that of the selected circuit or virtual circuit.
- 6. The method of claim 1 wherein the communications channel supports reliable transmissions.
- 7. The method of claim 1 wherein the communications channel is packet-switched.
- 8. The method of claim 1 further comprising:
f) checking, at the second terminal, whether or not each of the chunks is valid and whether each expected chunk was received; g) if it is determined that one of the chunks is either invalid, or not received, then sending, over a communications channel other than the selected circuit or virtual circuit, an error indication message from the second terminal to the first terminal; and h) retransmitting, over a communications channel other than the selected circuit or virtual circuit, the chunk determined to be invalid, or a missing chunk.
- 9. The method of claim 1 further comprising:
f) checking, at the second terminal, whether or not each of the chunks is valid; g) if it is determined that a chunk is valid, then sending, over a communications channel other than the selected circuit or virtual circuit, an positive acknowledgment message from the second terminal to the first terminal; h) inferring, from the absence of an expected positive acknowledgment message, that a chunk was invalid or not received by the second terminal; and i) retransmitting, over a communications channel other than the selected circuit or virtual circuit, the chunk determined to be invalid, or not received by the second terminal.
- 10. The method of claim 8 wherein the communications channels for signaling, error indication messages, and retransmissions are the same communications channel.
- 11. The method of claim 8 wherein the communications channels are packet-switched.
- 12. The method of claim 8 wherein the communications channels are a single packet-switched connection.
- 13. The method of claim 9 wherein the communications channels for signaling, error indication messages, and retransmissions are the same communications channel.
- 14. The method of claim 9 wherein the communications channels are packet-switched.
- 15. The method of claim 9 wherein the communications channels are a single packet-switched connection.
- 16. The method of claim 1 wherein the act of selecting a circuit or virtual circuit includes
i) determining, at the one of the first and second terminals acting as a client, constraints to which the data transfer is to be subject, ii) sending a proposal, including the determined constraints, from the client terminal to the other of the first and second terminals which acts as a server, iii) determining candidate circuits or virtual circuits that meet the constraints of the proposal, iv) providing a list of the candidate circuits or virtual circuits to the client terminal, and v) selecting one of the candidate circuits or virtual circuits.
- 17. The method of claim 16 wherein the candidate circuits or virtual circuits also meet constraints of the server.
- 18. The method of claim 16 wherein the constraints include a deadline for the data transfer.
- 19. The method of claim 1 wherein the selected circuit or virtual circuit is an isosynchronous circuit.
- 20. The method of claim 1 wherein the selected circuit or virtual circuit delivers data in sequence.
- 21. The method of claim 1 wherein the data is a file.
- 22. For use in a terminal, a data transfer facility comprising:
a) means for negotiating, with another terminal, a circuit or a virtual circuit for a data transfer; b) means for accepting chunks of data from the other terminal; c) means for determining;
(i) for each of the chunks, whether the chunk has any errors, and (ii) whether an expected chunk was not received; and d) means for indicating, either explicitly or by inference, to the other terminal that a chunk has errors or was not received; and e) means for accepting, over a communications channel, retransmitted chunks from the other terminal,
wherein the communications channels are different than the circuit or virtual circuit.
- 23. The data transfer facility of claim 22 wherein the communications channels are the same communications channel.
- 24. The data transfer facility of claim 22 wherein each of the communications channels are packet-switched.
- 25. The data transfer facility of claim 22 wherein the communications channels have a lower bandwidth than that of the circuit or virtual circuit.
- 26. The data transfer of claim 22 further comprising:
(f) non-volatile storage means; and (g) means for writing data segments in received chunks, determined not to have any errors, to the non-volatile storage means.
- 27. For use in a terminal, a data transfer facility comprising:
a) means for negotiating, over a communications channel, with another terminal, a circuit or virtual circuit for a data transfer; b) means for accepting data; c) means for segmenting the accepted data to generate data segments; d) means for adding overhead to each of the data segments to define chunks of data; and e) means for transmitting the chunks of data to the other terminal over the circuit or virtual circuit,
wherein the communications channel is different than the circuit or virtual circuit.
- 28. The data transfer facility of claim 27 wherein the communications channel is packet-switched.
- 29. The data transfer facility of claim 27 wherein the communications channel has a lower bandwidth than that of the circuit or virtual circuit.
- 30. The data transfer facility of claim 27 further comprising:
f) means for determining whether or not any of the chunks of data was either not received by the other terminal or received with an error; and g) means, if it was determined that a chunk of data was not received by the other terminal or received with an error, for retransmitting, over a communications channel other than the circuit or virtual circuit, the chunk of data.
- 31. The data transfer facility of claim 30 wherein the means for determining whether or not any of the chunks of data was either not received by the other terminal or received with an error processes an explicit error message from the other terminal.
- 32. The data transfer facility of claim 30 wherein the means for determining whether or not any of the chunks of data was either not received by the other terminal or received with an error implies an error from the absence of a positive acknowledge message from the other terminal.
- 33. The data transfer facility of claim 30 further comprising:
(h) non-volatile storage means storing data segments wherein the means for retransmitting extracts a data segment included in the chunk to be retransmitted from the non-volatile storage means.
§0. RELATED APPLICATIONS
[0001] Benefit is claimed, under 35 U.S.C. §119(e)(1), to the filing date of provisional patent application serial No. 60/293,028, entitled “PRELIMINARY SPECIFICATION AND EXPLANATION OF A DATA TRANSFER TECHNIQUE OF THE PRESENT INVENTION: AN END-TO-END PROTOCOL FOR TRANSPORTING BULK DATE OVER (VIRTUAL) CIRCUITS”, filed on May 23, 2001 and listing Tim Moors and Malathi Veeraraghavan as the inventors, for any inventions disclosed in the manner provided by 35 U.S.C. §112, ¶1. This provisional application is expressly incorporated herein by reference. However, the invention is not intended to be limited by any statements in that provisional application. Rather, that provisional application should be considered to describe exemplary embodiments of the invention.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60293028 |
May 2001 |
US |