Methods for transmitting data
First Claim
1. A method for transmitting data over a communications link, comprising:
- (A) setting a maximum data transmission rate to a value less than or equal to an available bandwidth of the communications link;
(B) partitioning the data into a plurality of blocks which each includes a plurality of frames;
(C) transmitting all of the frames to one or more recipients;
(D) during transmission, receiving acknowledgments from the recipients which include indications of frames requiting retransmission; and
(E) repeating steps (C), (D), and (E) for only those times which the acknowledgments indicate require retransmission.
9 Assignments
0 Petitions
Accused Products
Abstract
A data transmission method quickly and reliably transfers data (e.g., a computer file) from a source to recipients. While the frames are being transmitted, negative acknowledgments from recipients are received by the source. These acknowledgments indicate which frames require retransmission. After all frames have been transmitted out, a retransmission is performed by the source for only those frames which the acknowledgments indicate require retransmission. Additional retransmissions can occur. This multi-pass data transfer technique requires only negative acknowledgements to be sent by the recipients. Features include the ability to set the transmission rate and to define multicast groups. Also, it is possible to determine the capacity of links of unknown capacity using a "multicast network probe" feature of the invention, and to determine the frame error rates of known-capacity links by utilizing the same feature. A "multicast ping" feature of the invention can be used to determine the connectivity between a source and members of a multicast group. "Speed groups" can be set up after determining link capacities, or if they are already known, whereby the recipients connected to the source by the fastest links receive all of the data while slower-link recipients receive only a portion of the data, on the first pass. The number of recipients which can receive the data from the source can be greatly increased by using a "negative acknowledgement collection" scheme whereby "replication points" (preferably routers) collect individual negative acknowledgements and forward them as a unit to the next level.
-
Citations
18 Claims
-
1. A method for transmitting data over a communications link, comprising:
-
(A) setting a maximum data transmission rate to a value less than or equal to an available bandwidth of the communications link; (B) partitioning the data into a plurality of blocks which each includes a plurality of frames; (C) transmitting all of the frames to one or more recipients; (D) during transmission, receiving acknowledgments from the recipients which include indications of frames requiting retransmission; and (E) repeating steps (C), (D), and (E) for only those times which the acknowledgments indicate require retransmission.
-
-
2. A method for quickly and reliably transmitting data to at least two recipients over a communications link, comprising:
-
(A) setting a maximum data transmission rate to a value less than or equal to an available bandwidth of the communications link; (B) transmitting a plurality of frames of data over the link to the recipients until all of the plurality of frames have been transmitted; (C) while performing step (B), receiving acknowledgments from one or more of the recipients, the acknowledgments including indications of frames requiring retransmission; and (D) after all of the plurality of frames have been transmitted, repeating steps (B), (C), and (D) for only those frames which the acknowledgments indicate require retransmission. - View Dependent Claims (3, 4)
-
-
5. A method for transmitting data over a communications link, comprising:
-
(A) defining a multicast group of recipients to receive the data wherein the group includes a subset of all recipients; (B) partitioning the data into a plurality of blocks which each includes a plurality of frames; (C) transmitting all of the frames to the multicast group; (D) during transmission, receiving acknowledgments from the recipients in the multicast group, the acknowledgements including indications of frames requiring retransmission; and (E) repeating steps (C), (D), and (E) for only those frames which the acknowledgments indicate require retransmission.
-
-
6. A method for quickly and reliably transmitting data to a multicast group of recipients over a communications link, comprising:
-
(A) defining the multicast group of recipients to receive the data wherein the group includes a subset of all recipients; (B) transmitting a plurality of frames of data over the link to the multicast group until all of the plurality of frames have been transmitted; (C) while performing step (B), receiving acknowledgments from one or more of the recipients in the multicast group, the acknowledgments including indications of frames requiring retransmission; and (D) after all of the plurality of frames have been transmitted, repeating steps (B), (C), and (D) for only those frames which the acknowledgments indicate require retransmission. - View Dependent Claims (7, 8, 9)
-
-
10. A method for determining the capacities of communication links connecting recipients to a source, comprising:
-
(A) determining which recipients are connected to the source by the communication links, each recipient being connected to the source by a different one of the communication links; (B) transmitting a plurality of frames of data from the source to the recipients determined in step (A) at a predetermined rate over the communication links until all of the plurality of frames have been transmitted; (C) while performing step (B), receiving acknowledgments from the recipients determined in step (A), the acknowledgements including indications of frames requiting retransmission; (D) storing the acknowledgements and the predetermined rate at the source; (E) repeating steps (B), (C), (D), and (E) for a different predetermined rate until steps (B), (C), (D), and (E) have been repeated a predetermined number of times; and (F) determining capacity of one or more of the communication links from information stored at the source. - View Dependent Claims (11, 12)
-
-
13. A method for determining the frame error rates of communication links connecting recipients to a source, comprising:
-
(A) determining which recipients are connected to the source by the communication links, each recipient being connected to the source by a different one of the communication links; (B) transmitting a plurality of frames of data from the source to the recipients determined in step (A) at a predetermined rate over the communication links until all of the plurality of frames have been transmitted; (C) while performing step (B), receiving acknowledgments from the recipients determined in step (A), the acknowledgements including indications of frames requiring retransmission; (D) storing the acknowledgements and the predetermined rate at the source; and (E) determining frame error rate of one or more of the communication links from information stored at the source. - View Dependent Claims (14)
-
-
15. A method for determining the connectivity between a source and members of a multicast group on a network, comprising:
-
sending a ping request from the source over the network to all of the members of the multicast group; receiving at the source responses to the ping request from all of the members of the multicast group; and determining, at the source, roundtrip delay for the ping request to travel to each of the members of the multicast group and back to the source.
-
-
16. A method for transmitting data, comprising:
-
(A) transmitting a plurality of frames of data from a source to at least one recipient which is connected to the source by a first communication link having a first capacity; (B) transmitting a subset of the plurality of frames of the data from the source to at least one other recipient which is connected to the source by a second communication link having a second capacity where the first capacity is higher than the second capacity; (C) transmitting the plurality of frames over the first link and the subset of the plurality of frames over the second link until all of the plurality of frames have been transmitted over the first link; (D) while performing step (C), receiving acknowledgments from the recipients connected to the source by the first and second links, the acknowledgments including indications of frames requiring retransmission; and (E) after all of the plurality of frames have been transmitted over the first link, repeating steps (C), (D), and (E) for only those frames which the acknowledgments indicate require retransmission.
-
-
17. A method for quickly and reliably transmitting data to a large number of recipients, comprising:
-
(A) transmitting a plurality of frames of data over a link through a replication point to the recipients until all of the plurality of frames have been transmitted; (B) while performing step (B), receiving and collecting acknowledgments from all of the recipients at the replication point, the acknowledgments including indications of frames requiring retransmission; (C) passing on the received and collected acknowledgements from the replication point as an indication of frames requiring retransmission for all of the recipients; (D) after all of the plurality of frames have been transmitted, repeating steps (A), (B), (C), and (D) for only those frames which the replication point has indicated require retransmission. - View Dependent Claims (18)
-
Specification