← Back to Patent Explorer
US6105064A Expired / Lapsed US ⏱️ 0.0 years remaining

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

Assignee: Micro Focus Software Inc
•
Filing: 1997-05-30
•
Granted: 2000-08-15
•
Expires: 2017-05-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Howard Davis
  • 👤 Grant Echols
  • 👤 Michael Dege
  • 👤 B. Gregory Hundley
  • 👤 Greg Neath
  • 👤 Jonathan Richey

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 09:12
CPC Classifications
H; H04; H04L; H04L47/00; H04L47/10; H04L47/28; H04L47/27; H04L47/283; H04L47/35

Claims Analysis

Total Claims: 59
Claim 1
Independent Claim 132 words
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.
Claim 2
Independent Claim 132 words
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.
Claim 3
Dependent Claim 49 words
The method of claim 1, wherein the step of selecting a window size comprises the steps of: measuring packet throughput from the sending endnode to the receiving endnode at a plurality of different window sizes; and selecting the smallest window size at which the measured packet throughput is greatest.
Claim 4
Dependent Claim 25 words
The method of claim 2, wherein the step of selecting the window size comprises determining an excessive window size at which throughput no longer increases.
Claim 5
Dependent Claim 41 words
The method of claim 1, wherein the step of selecting a metering interval comprises the steps of: measuring interpacket gaps between packets arriving at an endnode; and determining the metering interval of the sending endnode based on the measured interpacket gaps.
Claim 6
Dependent Claim 27 words
The method of claim 4, wherein the step of determining the metering interval comprises determining an average interpacket gap time for packets received at the receiving endnode.
Claim 7
Dependent Claim 40 words
The method of claim 5, further comprising the computer-implemented step of sending a packet from the receiving endnode to the sending endnode containing a new average interpacket gap time in response to a change in the average interpacket gap time.
Claim 8
Dependent Claim 22 words
The method of claim 1, further comprising the computer-implemented step of multiplexing a plurality of logical connections over a single transport session.
Claim 9
Dependent Claim 43 words
The method of claim 1, wherein the step of placing packets on the network for transmission comprises the step of using packets that have a network-layer-independent internal format to generate packets that have a format which is tailored to a predetermined network layer.
Claim 10
Dependent Claim 31 words
The method of claim 8, wherein the generated packets have a format that is tailored to a network layer selected from the group consisting of IP, IPX, and ATM network layers.
Claim 11
Dependent Claim 23 words
The method of claim 1, further comprising the computer-implemented step of filling a single data packet with data from a plurality of connections.
Claim 12
Dependent Claim 46 words
The method of claim 1, further comprising the computer-implemented step of sending an acknowledgment from the receiving endnode to the sending endnode in response to receipt of a data packet by the receiving endnode and also in response to an occurrence of an acknowledgment update event.
Claim 13
Dependent Claim 74 words
The method of claim 11, wherein the acknowledgment update event is selected from the group of events consisting of: the passage of at least an acknowledgment update time interval amount of time since the most recent sending of an acknowledgment by the receiving endnode, and the receipt of at least an acknowledgment update packet count number of packets at the receiving endnode since the most recent sending of an acknowledgment by the receiving endnode.
Claim 14
Dependent Claim 44 words
The method of claim 12, further comprising the computer-implemented step of sending a packet containing the acknowledgment update packet count from the sending endnode to the receiving endnode in response to receiving notice of a change in the window size of the sending endnode.
Claim 15
Dependent Claim 41 words
The method of claim 1, further comprising the computer-implemented step of sending a plurality of acknowledgments in one packet from the receiving endnode to the sending endnode to acknowledge receipt by the receiving endnode of a corresponding plurality of data packets.
Claim 16
Dependent Claim 40 words
The method of claim 1, further comprising the computer-implemented step of sending an acknowledgment in a second data packet from the receiving endnode to the sending endnode in response to receipt of a first data packet by the receiving endnode.
Claim 17
Dependent Claim 52 words
The method of claim 1, further comprising the computer-implemented step of receiving at the sending endnode an address change packet which specifies a new address for the receiving endnode, the step of placing packets on the network further comprising placing a data packet on the network for transmission to the new address.
Claim 18
Dependent Claim 30 words
The method of claim 16, further comprising the step of validating the address change packet prior to placing a data packet on the network for transmission to the new address.
Claim 19
Independent Claim 141 words
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.
Claim 20
Independent Claim 141 words
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.
Claim 21
Dependent Claim 43 words
The method of claim 18, wherein the step of placing packets on the network for transmission comprises the step of using packets that have a network-layer-independent internal format to generate packets that have a format which is tailored to a predetermined network layer.
Claim 22
Dependent Claim 46 words
The method of claim 18, further comprising the computer-implemented step of sending an acknowledgment from the receiving endnode to the sending endnode in response to receipt of a data packet by the receiving endnode and also in response to an occurrence of an acknowledgment update event.
Claim 23
Dependent Claim 40 words
The method of claim 18, further comprising the computer-implemented step of sending an acknowledgment in a second data packet from the receiving endnode to the sending endnode in response to receipt of a first data packet by the receiving endnode.
Claim 24
Dependent Claim 52 words
The method of claim 18, further comprising the computer-implemented step of receiving at the sending endnode an address change packet which specifies a new address for the receiving endnode, the step of placing packets on the network further comprising placing a data packet on the network for transmission to the new address.
Claim 25
Dependent Claim 66 words
The method of claim 18, wherein the step of dynamically selecting a preferred window size further comprises the computer-implemented steps of: successively increasing a current window size and then measuring the packet throughput associated with the current window size until a maximum associated throughput is identified; and then selecting as the preferred window size the smallest window size with which the maximum packet throughput is associated.
Claim 26
Dependent Claim 32 words
The method of claim 23, further comprising the computer-implemented step of selecting a metering interval which limits the rate at which data packets are placed on the network during the placing step.
Claim 27
Dependent Claim 40 words
The method of claim 24, wherein the step of selecting a metering interval comprises the steps of: measuring interpacket gaps between packets arriving at an endnode; determining the metering interval of the sending endnode based on the measured interpacket gaps.
Claim 28
Dependent Claim 163 words
The method of claim 18, wherein the step of dynamically selecting a preferred window size further comprises the computer-implemented steps of: designating an initial window size as a current window size; installing the current window size as an upper bound on the number of unacknowledged packets; measuring packet throughput from the sending endnode to the receiving endnode after the installing step; determining whether the measured throughput associated with the current window size is no greater than a measured throughput associated with a previous window size; and choosing a subsequent action based on the outcome of the determining step, wherein the subsequent action comprises selecting a previous window size as the preferred window size if the measured throughput associated with the current window size is no greater than the measured throughput associated with that previous window size, and the subsequent action otherwise comprises replacing the current window size with a designated larger window size and then repeating the installing, measuring, determining, and choosing steps.
Claim 29
Independent Claim 111 words
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.
Claim 30
Independent Claim 111 words
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.
Claim 31
Dependent Claim 15 words
The method of claim 27, wherein the packet carries information for a plurality of connections.
Claim 32
Dependent Claim 19 words
The method of claim 28, wherein the packet is a data packet carrying data for a plurality of connections.
Claim 33
Dependent Claim 20 words
The method of claim 28, wherein the packet is a control packet carrying control information for a plurality of connections.
Claim 34
Dependent Claim 23 words
The method of claim 28, wherein the packet carries both data and control information, and provides carrying capability for a plurality of connections.
Claim 35
Dependent Claim 19 words
The method of claim 27, wherein at least one of the packets carries information for a plurality of connections.
Claim 36
Dependent Claim 48 words
The method of claim 27, wherein the step of placing the data packet on the network for transmission comprises the step of using a data packet that has a network-layer-independent internal format to generate a packet that has a format which is tailored to a predetermined network layer.
Claim 37
Dependent Claim 46 words
The method of claim 27, further comprising the computer-implemented step of sending an acknowledgment from the receiving endnode to the sending endnode in response to receipt of the data packet by the receiving endnode and also in response to an occurrence of an acknowledgment update event.
Claim 38
Dependent Claim 16 words
The storage medium of claim 1, wherein the method steps comprise the steps of claim 34.
Claim 39
Dependent Claim 40 words
The method of claim 27, further comprising the computer-implemented step of sending an acknowledgment in a second data packet from the receiving endnode to the sending endnode in response to receipt of a first data packet by the receiving endnode.
Claim 40
Dependent Claim 52 words
The method of claim 27, further comprising the computer-implemented step of receiving at the sending endnode an address change packet which specifies a new address for the receiving endnode, the step of placing packets on the network further comprising placing a data packet on the network for transmission to the new address.
Claim 41
Dependent Claim 74 words
A computer storage medium having a configuration that represents data and instructions which will cause at least a portion of a computer system to perform method steps for 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 steps comprising the steps of claim 1.
Claim 42
Dependent Claim 16 words
The storage medium of claim 38, wherein the method steps comprise the steps of claim 2.
Claim 43
Dependent Claim 16 words
The storage medium of claim 38, wherein the method steps comprise the steps of claim 4.
Claim 44
Dependent Claim 16 words
The storage medium of claim 38, wherein the method steps comprise the steps of claim 6.
Claim 45
Dependent Claim 16 words
The storage medium of claim 38, wherein the method steps comprise the steps of claim 12.
Claim 46
Dependent Claim 74 words
A computer storage medium having a configuration that represents data and instructions which will cause at least a portion of a computer system to perform method steps for 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 steps comprising the steps of claim 18.
Claim 47
Dependent Claim 16 words
The storage medium of claim 43, wherein the method steps comprise the steps of claim 19.
Claim 48
Dependent Claim 16 words
The storage medium of claim 43, wherein the method steps comprise the steps of claim 20.
Claim 49
Dependent Claim 16 words
The storage medium of claim 43, wherein the method steps comprise the steps of claim 26.
Claim 50
Dependent Claim 57 words
A computer storage medium having a configuration that represents data and instructions which will cause at least a portion of a computer system to perform method steps for controlling the transmission of packets over a computer network between a sending endnode and a receiving endnode on the network, the method steps comprising the steps of claim 27.
Claim 51
Dependent Claim 16 words
The storage medium of claim 47, wherein the method steps comprise the steps of claim 28.
Claim 52
Independent Claim 105 words
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.
Claim 53
Independent Claim 105 words
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.
Claim 54
Dependent Claim 50 words
The system of claim 49, wherein the means for selecting a window size comprises: means for measuring packet throughput from the sending endnode to the receiving endnode at a plurality of different window sizes; and means for selecting the smallest window size at which the measured packet throughput is greatest.
Claim 55
Dependent Claim 42 words
The system of claim 49, wherein the means for selecting a metering interval comprises: means for measuring interpacket gaps between packets arriving at an endnode; and means for determining the metering interval of the sending endnode based on the measured interpacket gaps.
Claim 56
Independent Claim 113 words
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.
Claim 57
Independent Claim 113 words
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.
Claim 58
Independent Claim 105 words
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.
Claim 59
Independent Claim 105 words
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.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-08-15 2004-02-14 2004-08-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-08-15 2008-02-14 2008-08-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-08-15 2012-02-14 2012-08-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag