System and method for fast, reliable byte stream transport
First Claim
1. A method for controlling a transmission of a data stream from a sending node to a receiving node in a data communication network, the method comprising:
- (a) initially transmitting first information defining a begin and an end of a first unique range of data from a receiving node to a sending node, said first information authorizing transmission of a first quantity of data between the defined begin and end from said sending node;
(b) transmitting data of said data stream defined by said first information from a buffer disposed at said sending node to said receiving node;
(c) transmitting second information defining a begin and an end of a second unique range of data from said receiving node to said sending node when an event occurs, said second information authorizing transmission of a second quantity of data between the defined begin and the end from said sending node; and
(d) releasing at least a portion of said buffer at the sending node corresponding to said first unique range of data on receiving said second information.
2 Assignments
0 Petitions
Accused Products
Abstract
Reliable byte stream transfer protocols play an important role in modern networks. The present invention implements such a protocol using credits for flow control and negative acknowledgements for reliable delivery. The credit mechanism uses credit transfer in installments and is immune to the losses or corruptions of intermediate credit installments. Negative acknowledgements are used to solicit the retransmission of data stream component. The present invention provides full compatibility at the programming interface with reliable byte transfer protocols, such as TCP, and also allows full interoperability among hosts running the aforesaid standard protocol or the protocol of the present invention.
-
Citations
76 Claims
-
1. A method for controlling a transmission of a data stream from a sending node to a receiving node in a data communication network, the method comprising:
-
(a) initially transmitting first information defining a begin and an end of a first unique range of data from a receiving node to a sending node, said first information authorizing transmission of a first quantity of data between the defined begin and end from said sending node; (b) transmitting data of said data stream defined by said first information from a buffer disposed at said sending node to said receiving node; (c) transmitting second information defining a begin and an end of a second unique range of data from said receiving node to said sending node when an event occurs, said second information authorizing transmission of a second quantity of data between the defined begin and the end from said sending node; and (d) releasing at least a portion of said buffer at the sending node corresponding to said first unique range of data on receiving said second information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for transmitting a data stream from a sending node a receiving node in a communication network having a plurality of nodes and with a plurality of interconnect able paths, wherein said data are formed into a plurality of data packets in accordance with a predetermined protocol, the method comprising:
-
a) providing a predetermined identifier associated with data packets; b) determining the predetermined identifier associated with a packet, and c) if said predetermined identifier indicates a first transport system comprising a specified range of data credit and negative acknowledgement-based transport system; (i) transmitting credits from a receiving node to a sending node responsive to occurrence of an event, said credits specifying a unique range of data having a defined begin and a defined end to be transmitted; (ii) transmitting a specified unique range of data of a data stream from said sending node to said receiving node, corresponding to a range of data specified in credits received by said sending node from said receiving node; and (iii) transmitting at least one negative acknowledgement from said receiving node to said sending node, specifying data for retransmission. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A system for transmitting a data stream from a sending node to a receiving node in a data communication network, comprising:
-
a) means for transmitting a range of data of a data stream from a sending node to a receiving node, said range of data having a specified beginning and a specified ending of a range of data credits present at said sending node; b) means for transmitting a number of data credits specifying the beginning and the ending of the range of data of said data stream from said receiving node to said sending node upon occurrence of at least one event; and c) means for transmitting at least one negative acknowledgement from said receiving node to said sending node, when at least one transmitted datum is lost or corrupted. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
-
-
57. A system for transmitting a data stream from a sending node having credits indicating a an amount of data from said data stream to be transmitted over an established connection to a receiving node in a communication network having a plurality of nodes and with a plurality of interconnect able paths, and wherein said predetermined amount of data is formed into a plurality of data packets in accordance with a predetermined protocol, the system comprising:
-
a) a predetermined identifier associated with said data packets; b) a first transmitter for transmitting an amount of data of a data stream from a sending node to a receiving node, corresponding to a range of data having a begin datum and end datum specified by credits present at said sending node, if said predetermined identifier indicates implementation of a credit and negative acknowledgement transport system; c) a second transmitter for transmitting credits from said receiving node to said sending node when a predetermined event occurs, said credits specifying a begin and an end of a range of data sought to be received; and
for transmitting a negative acknowledgement from said receiving node to said sending node, when at least one transmitted datum is lost or corrupted. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76)
-
Specification