System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
First Claim
1. A method of controlling the transmission of packets over a computer network between a sending endnode and a receiving endnode on the network, the packets including a plurality of data packets which are capable of carrying data over the network, the method comprising the computer-implemented steps of:
- selecting a window size which limits the amount of outstanding data, outstanding data being data that has been sent in a data packet from the sending endnode but has not yet been acknowledged by the receiving endnode;
selecting a metering interval which limits the rate at which data packets are placed on the network; and
placing packets on the network for transmission from the sending endnode to the receiving endnode at times which are determined in response to the window size and the metering interval.
16 Assignments
0 Petitions
Accused Products
Abstract
A method for controlling communications between endnodes in a packet-switched computer network includes dynamic window sizing and dynamic packet metering. Dynamic window sizing regularly probes the network to determine whether higher throughput is available at an increased window size, and avoids unnecessary decreases in window size after a packet is dropped or all available data has been transmitted. Dynamic packet metering regularly adjusts the rate at which packets are transmitted in response to changes in the measured propagation rate of packets through the network. To avoid unnecessary ack packets, acks are bundled together and piggybacked on returning data packets when appropriate. The invention provides control even if the address of an endnode changes. The invention also supports multiplexing several logical connections over a single transport session and combining data from several connections in a single packet, as well as construction of packets in a network-layer-independent format.
238 Citations
53 Claims
-
1. A method of controlling the transmission of packets over a computer network between a sending endnode and a receiving endnode on the network, the packets including a plurality of data packets which are capable of carrying data over the network, the method comprising the computer-implemented steps of:
-
selecting a window size which limits the amount of outstanding data, outstanding data being data that has been sent in a data packet from the sending endnode but has not yet been acknowledged by the receiving endnode; selecting a metering interval which limits the rate at which data packets are placed on the network; and placing packets on the network for transmission from the sending endnode to the receiving endnode at times which are determined in response to the window size and the metering interval. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 35, 38, 39, 40, 41, 42)
-
-
18. A method of controlling the transmission of packets over a computer network between a sending endnode and a receiving endnode on the network, the packets including a plurality of data packets which are capable of carrying data over the network, the method comprising the computer-implemented steps of:
-
dynamically selecting a preferred window size which limits the amount of outstanding data by measuring packet throughput from the sending endnode to the receiving endnode and determining the preferred window size based on the measured packet throughput, outstanding data being data that has been sent in a data packet from the sending endnode but has not yet been acknowledged by the receiving endnode; and placing packets on the network for transmission from the sending endnode to the receiving endnode such that the window size is an upper bound on the number of unacknowledged packets. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 43, 44, 45, 46)
-
-
27. A method of controlling the transmission of packets over a computer network between a sending endnode and a receiving endnode on the network, the method comprising the computer-implemented steps of:
-
associating a plurality of logical connections with a single transport session; placing a packet on the network as part of the single transport session for transmission from the sending endnode to the receiving endnode; and selecting a metering interval which limits the rate at which packets are placed on the network and wherein the placing step places packets on the network for transmission from the sending endnode to the receiving endnode at times which are determined in response to metering interval. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 36, 37, 47, 48)
-
-
49. A system for transmitting data packets, comprising:
-
a computer network including a sending endnode and a receiving endnode; means for selecting a window size which limits the amount of outstanding data, outstanding data being data that has been sent in a data packet from the sending endnode but has not yet been acknowledged by the receiving endnode; means for selecting a metering interval which limits the rate at which data packets are placed for transmission; and means for placing packets for transmission from the sending endnode to the receiving endnode at times which are determined in response to the window size and the metering interval. - View Dependent Claims (50, 51)
-
-
52. A system for transmitting data packets, comprising:
-
a computer network including a sending endnode and a receiving endnode; means for dynamically selecting a preferred window size which limits the amount of outstanding data by measuring packet throughput from the sending endnode to the receiving endnode and determining the preferred window size based on the measured packet throughput, outstanding data being data that has been sent in a data packet from the sending endnode but has not yet been acknowledged by the receiving endnode; and means for placing packets for transmission from the sending endnode to the receiving endnode such that the window size is an upper bound on the number of unacknowledged packets.
-
-
53. A system for transmitting data packets, comprising:
-
a computer network including a sending endnode and a receiving endnode; means for associating a plurality of logical connections with a single transport session; means for placing a packet for transmission from the sending endnode to the receiving endnode over at least one of the connections during the session; and means for selecting a metering interval which limits the rate at which packets are placed on the network, and wherein the placing means places packets on the network for transmission from the sending endnode to the receiving endnode at times which are determined in response to metering interval.
-
Specification