Metrics and Methods for One-Way IP Capacity
Extracted elements (30)
The algorithm is restricted from knowing the expected capacity value a priori to ensure fairness and to prevent nefarious operation. A test operator who is certain of the capacity MAY start with a fixed-rate test, but the diagnostic context (subscriber complaint) implies uncertainty, making the load adjustment algorithm RECOMMENDED.
The default sub-interval dt=1 second was chosen to avoid false-maximum readings from path buffers filling transiently. Shorter dt values can alias onto burst patterns from shapers/policers, producing unsustainable capacity readings; dt=1s also aligns naturally with Mbps reporting units.
The load rate algorithm's fast initial ramp-up (Rx+10 steps) followed by a one-time large drop (Rx-30) on first congestion confirmation is intentional: it quickly finds the near-maximum rate while compensating for overshoot. Making the algorithm TCP-like would give it TCP's weaknesses and prevent accurate Maximum IP-Layer Capacity measurement.
UDP is chosen over TCP for IP-Layer Capacity measurements because it allows the most direct correlation to the IP Layer and because ad hoc TCP-based methods repeatedly failed to achieve measurement accuracy in comparison tests. TCP's congestion control weaknesses prevent it from reaching Maximum IP-Layer Capacity.
If traffic conditioning (shaping or policing) exists along the path, different values for dt SHOULD be used across multiple measurement intervals [T,T+I]. Each dt SHOULD be an integer multiple of increasing values k times the serialization delay of a Path MTU at the conditioning point, to avoid mistaking burst tolerance for valid Maximum Capacity.
The IPv6 flow label SHOULD be included in the flow definition when routers have complied with RFC 6438 guidelines, since multipath routing decisions (load balancing) use flow-identifying header fields. For link aggregation scenarios, multiple flows may be needed to occupy each member of the aggregate.
All measurements according to both the IP-Layer Capacity singleton and Maximum IP-Layer Capacity definitions SHALL use the UDP transport layer. Standard-formed packets per RFC 8468 are required.
At least one target performance threshold (PM criterion) MUST be defined for Maximum IP-Layer Capacity. If more than one metric and threshold is defined, the sub-interval with the maximum bits MUST meet all target thresholds.
Both load packets and status feedback messages MUST contain sequence numbers to help with measurements and detect anomalies (loss, out-of-order, duplication). No retransmissions are needed.
Methods MUST be prepared to provide a short preamble transmission to activate on-demand communications access technologies, and to discard the preamble from subsequent test results.
The bit rate of the physical interface of the measurement devices MUST be higher than the smallest link on the path being measured (the bottleneck link). This applies to both Singleton and Maximum Capacity metrics.
The duration of a test (Parameter I) MUST be constrained in a production network, since this active test method will likely cause congestion on the path from Src to Dst during a test.
The IP-Layer Capacity SHOULD be reported with at least single-Megabit resolution in units of Mbps (1,000,000 bits per second). The related One-Way Loss and Round-Trip Delay measurements for the same Singleton SHALL be reported with meaningful resolution.
The load rate adjustment algorithm MUST NOT be used as a general Congestion Control Algorithm (CCA). Its scope is limited to infrequent, diagnostic, short-term capacity measurements as described in Section 2.
The measurement system's load rate adjustment algorithm SHALL NOT be provided with the exact capacity value to be validated a priori. This restriction fosters a fair result and removes the opportunity for nefarious operation.
The number of concurrent independent tests of a path SHALL be limited to one, as running more than one concurrent test attempting to measure maximum capacity on a single path is counterproductive.
The number of sub-intervals with duration dt MUST be set to a natural number m such that T+I = T + m*dt, and all sub-intervals MUST be of equal duration. Non-overlapping consecutive intervals are the RECOMMENDED implementation.
The testing operator MUST set a value for the MaxHops Parameter based on the expected path length, to prevent measurement traffic from straying too far beyond the intended path.
When there are demonstrated and repeatable Capacity modes in the Sample, the Maximum IP-Layer Capacity SHALL be reported for each mode separately, along with the relative time from the beginning of the stream that the mode was observed.
Congestion is inferred when sequence number anomalies AND/OR delay range above the upper threshold occur for three consecutive feedback intervals (slowAdjThresh=3). On first congestion confirmation, the rate drops by 30 table steps (Rx-30) to compensate for the fast initial ramp-up; subsequent decrements are Rx-1.
The feedback timer FT (default 50 msec) controls how frequently the Receiver sends status feedback to the Sender. Recommended default thresholds: 10 sequence errors, 30 msec low delay threshold, 90 msec upper delay threshold. The feedback message timeout defaults to L*FT with L=20 (1 second); load packet timeout defaults to 1 second.
The formal metric "Type-P-IP-Sender-Bit-Rate" measures IP-Layer bits transmitted from the Source during sub-interval st within test interval S, where S SHALL be longer than I. It validates that the sender actually generated desired rates and is not a path performance metric.
The formal singleton metric is "Type-P-One-way-IP-Capacity", defined as the number of IP-Layer bits (including header and data fields) correctly received at the Dst host during one contiguous sub-interval dt, divided by dt. Designated n0[dtn,dtn+1]/dt, it depends on Src, Dst, path, and Type-P.
The formal statistic metric is "Type-P-One-way-Max-IP-Capacity", defined as the maximum of n0[dtn,dtn+1]/dt over all dt-length sub-intervals in [T,T+I] that meet the PM criteria. It is the maximum of a Sample of m Singletons collected during interval I.
The load rate adjustment algorithm uses a pre-built table (R1 through Rn in ascending order). Recommended rate increments are: 1 Mbps steps from 1 Mbps to 1 Gbps; 100 Mbps steps from 1 Gbps to 10 Gbps; 1 Gbps steps above 10 Gbps. Each rate is defined by datagram size ss, burst count cc, and burst interval tt (default 100 microsec).
The Lost Status Backoff timeout is computed as UDRT + (2+w)*FT, where UDRT is the upper delay range threshold (default 90 msec), FT is the feedback interval (default 50 msec), and w is the count of repeated timeouts (initially 0, incremented on each timeout, reset on message receipt). When the timeout fires, the sender decreases the offered load as if congestion was detected.
Client-server authentication and integrity protection for feedback messages conveying measurements are RECOMMENDED. Hosts MUST limit the number of simultaneous tests to avoid resource exhaustion. Senders MUST be rate limited using the pre-built load rate table.
Cooperating Src and Dst hosts with prior agreements are REQUIRED. A user client-initiated setup handshake is REQUIRED to allow firewalls to control inbound unsolicited UDP traffic to control ports (with authentication) or ephemeral ports created as needed.
Service subscribers with limited data volumes who conduct extensive capacity testing may trigger Service Provider data controls. Testing with Service Provider measurement hosts SHOULD be limited in frequency and overall test traffic volume (range of I values SHOULD be limited).
Each offered load rate is encoded as datagrams of fixed payload size ss (no default; ≤1222 bytes tested), sent as a burst of count cc (tested range 1–100) every burst interval tt (default 100 microsec). The maximum UDP payload size MUST account for IP header overhead and tunnel headers to avoid IP-layer fragmentation.