{{ result.summaryTitle }}
{{ result.primary }}
{{ result.summaryLine }}
{{ badge.label }}
Queue buffer delay inputs
Use the queue or interface buffer that can fill before packets are dropped or marked.
Interactive paths often use tighter targets than bulk transfer queues.
ms
Use 100% for a worst-case tail-drop queue, or a lower observed busy-period fill level.
%
Leave as a rough path RTT when you only need delay drain math.
ms
1500 bytes is a common Ethernet MTU; use a lower value for shaped voice or tunnel payloads.
bytes
Use reserve when the configured queue granularity cannot hit the exact delay budget.
%
Budget metricValueReadoutCopy
No delay budget yet
Correct the buffer, link, and target delay inputs to rebuild this queue budget artifact.
{{ row.metric }}{{ row.value }}{{ row.readout }}
Delay ceilingAllowed bufferCurrent marginTuning noteCopy
No tuning table yet
Valid queue and link inputs are required before delay ceiling rows can be exported.
{{ row.ceiling }}{{ row.allowedBuffer }}{{ row.currentMargin }}{{ row.note }}

        
Customize
Advanced
:

Fast service can still feel slow when packets wait at the one place where traffic leaves more slowly than it arrives. That waiting time is queue buffer delay. It is separate from the physical distance across the network, DNS lookup time, radio quality, or server response time. It comes from bytes already sitting in a queue ahead of the next packet.

The unit mismatch is the trap. Buffer space is usually described in bytes, KiB, MiB, packets, or memory cells, while a link drains in bits per second. A 1 MiB queue holds 8,388,608 bits. At 1 Gbps that much data drains in about 8.4 ms, but at 20 Mbps it takes about 419 ms. The same memory depth can therefore be harmless on one bottleneck link and painful on another.

Queue depth
The amount of data that can wait before packets are dropped, marked, or scheduled elsewhere.
Drain rate
The sustained rate that empties the queue, often a shaped WAN rate rather than the label on a physical port.
Occupancy
The filled share of the queue during a busy period. Full occupancy is the worst-case delay budget.
Delay budget
The maximum waiting time the traffic can tolerate before voice, gaming, remote shells, or control traffic starts to feel late.
Diagram of queued bytes draining through a bottleneck link and becoming queue delay

The answer changes whenever the real bottleneck changes. A router may have a 1 Gbps LAN port, a 300 Mbps broadband download rate, and a 35 Mbps shaped upload rate. If the queue being tuned sits behind the upload shaper, the 35 Mbps rate is the number that matters. Using the port label would make the delay look much smaller than the packets will experience.

  • Bulk transfers, cloud backups, game downloads, and media uploads are common ways to fill a queue.
  • Voice, video calls, DNS, SSH, remote desktops, games, and acknowledgments are the kinds of traffic that suffer first when they wait behind the bulk flow.
  • Tail-drop queues can look fine until they fill, then they add delay before they provide drop feedback.
  • Active queue management and fair queuing can keep average queues shorter, but the configured queue depth still sets an important upper bound.

Queue buffer delay is a planning estimate, not a complete network diagnosis. A link can pass the byte budget and still have jitter from Wi-Fi retries, CPU limits, overloaded modems, bad scheduling, packet loss, or traffic bursts elsewhere. The useful starting point is to compare the queue that can fill, the rate that drains it, and the latency budget of the traffic sharing that bottleneck.

How to Use This Tool:

Use the calculator as a queue-depth budget check. Start with the queue that can fill and the rate that drains it, then compare the computed delay with the traffic target you want to protect.

  1. Set Buffer size to the queue depth that can fill before packets are dropped or marked. Choose KiB, MiB, GiB, or MB to match the value from the device, shaper, or policy.
  2. Set Link rate to the sustained bottleneck drain rate. For shaped traffic, enter the shaper or WAN handoff rate instead of the physical port speed when that is where the queue waits.
    A 1 Gbps port behind a 100 Mbps shaper should usually be tested at 100 Mbps for the shaped queue.
  3. Choose a Delay target in milliseconds. Use a tighter target for voice, games, DNS, SSH, and calls; use a looser target only when the queue is dedicated to bulk transfer.
  4. Enter Average occupancy. Use 100% for a worst-case tail-drop budget, or use a lower busy-period value only when queue telemetry supports it.
  5. Open Advanced when you need more context. Baseline RTT enables the BDP comparison, Packet size estimates packet depth and serialization time, and Target buffer reserve adds optional slack to the target byte count.
  6. If Check queue inputs appears, fix the listed field before interpreting the results. Buffer size, link rate, and delay target must be positive, occupancy and reserve must be between 0% and 100%, baseline RTT cannot be negative, and packet size must be at least 64 bytes.
    When inputs are invalid, the result tables stay empty. Correct the warning first, then confirm that Full-buffer drain delay and Target buffer for delay rebuild.
  7. Read Queue Delay Budget first, then use Buffer Tuning Table to compare common delay ceilings and Buffer Delay Curve to show how delay changes as buffer size changes. Keep Link rate, Delay target, and Average occupancy consistent when comparing before and after values.

Interpreting Results:

Start with Full-buffer drain delay. It is the strictest delay number because it assumes the queue is full and every stored byte must leave through the bottleneck before later packets move. Occupancy-weighted delay is a busy-period estimate; it can be useful, but it should not hide a full queue that already exceeds the target.

Target buffer for delay turns the selected millisecond target into a byte ceiling. If the configured queue is larger, the queue cannot meet that target when full. Buffer margin vs target shows the byte difference, while Occupancy cap for target shows how full the queue can get before the selected target is crossed.

Queue buffer delay output interpretation
Output What it tells you What to verify
Full-buffer drain delay Worst-case waiting time if the selected queue is full. Confirm the entered link rate is the real drain rate.
Target buffer for delay The exact byte depth that matches the chosen delay target. Check whether the device supports a queue setting near that value.
BDP comparison Current queue depth compared with the bandwidth-delay product from link rate and baseline RTT. Use a representative RTT before treating the ratio as capacity context.
Packet serialization time How long one selected-size packet takes to transmit on the bottleneck. Use an MTU or packet size that matches the traffic class you are protecting.
Buffer Delay Curve A planning curve for full-buffer and occupancy-weighted delay across buffer sizes. Confirm candidate settings with a loaded-latency test or queue telemetry.

An inside target badge does not prove the path is finished. It only says the selected queue depth fits the selected delay budget under the calculator assumptions. Scheduling, active queue management behavior, Explicit Congestion Notification, packet drops, radio retransmissions, and traffic from other queues can still change live latency.

Technical Details:

Queueing delay is drain time for stored bits. Once traffic is already queued, a later packet cannot leave until enough earlier bits have been transmitted or until scheduling moves it ahead. For a simple single queue, the relationship is linear: doubling the buffer doubles full-buffer delay, and doubling the bottleneck rate halves it.

This is why byte-sized buffers become risky when a queue is placed behind a lower shaper rate. The memory depth has not changed, but the same bytes now drain through fewer bits per second. The delay target calculation reverses the same relationship so a millisecond ceiling can be expressed as a queue depth.

Formula Core:

Let B be buffer bytes, R be link bits per second, T be the delay target in milliseconds, O be average occupancy percent, RTT be baseline round-trip time, and P be packet size in bytes.

Dfull = B×8×1000R Dbusy = Dfull×O100 Btarget = R×T8000 Breserve = Btarget×1+reserve100 BDP = R×RTT8000 Dpacket = P×8×1000R

KiB, MiB, and GiB use powers of 1024. MB uses 1,000,000 bytes. Kbps, Mbps, and Gbps use decimal bit rates. Displayed values are rounded for readability, but the comparisons use the calculated numeric values.

For example, a 16 MiB queue contains 134,217,728 bits. At 100 Mbps, full-buffer drain delay is 134,217,728 / 100,000,000 x 1000, or about 1,342.2 ms. A 50 ms target at the same rate allows 625,000 bytes, which is about 610.35 KiB.

Queue buffer delay calculation inputs and effects
Value Accepted or computed range Effect on the result
Buffer size Greater than zero. Directly increases full-buffer delay and packet depth.
Link rate Greater than zero. Increases drain speed; higher rates reduce delay for the same queue depth.
Average occupancy 0% to 100%. Scales the busy-period delay without changing full-buffer delay.
Target buffer reserve 0% to 100%. Adds slack to the displayed target buffer while leaving the exact delay target visible.
Baseline RTT Zero or positive milliseconds. Enables the bandwidth-delay product comparison when greater than zero.
Packet size At least 64 bytes. Sets packet-depth and serialization-time estimates.

The summary badge uses strict greater-than comparisons. A full-buffer delay exactly equal to the target stays within the full-buffer limit. A full-buffer delay exactly equal to twice the target is still labeled by the lower warning rule because it is greater than the target but not greater than twice the target.

Queue buffer delay status rules
Condition Summary title Badge Meaning
Full-buffer drain delay > 2 x target Full queue exceeds target high bufferbloat risk The full queue is more than twice the selected delay ceiling.
Full-buffer drain delay > target Full queue crosses target trim buffer The full queue is above the selected target but not above twice that target.
Occupancy-weighted delay > target Busy queue crosses target watch occupancy The full queue fits, but the entered busy-period fill level still crosses the target.
None of the greater-than checks match Queue delay inside target inside target The selected queue depth and occupancy fit the chosen delay budget.

Advanced Tips:

  • Use the shaped, policer, or congested handoff rate for Link rate. Port speed is only correct when that port is the queue's real drain point.
  • Compare Full-buffer drain delay with Occupancy-weighted delay instead of relying on one number. A lower busy-period estimate should not hide a full queue that crosses the target.
  • Set Baseline RTT to a representative unloaded path RTT when BDP comparison matters. A stale or remote RTT can make the BDP ratio look more precise than it is.
  • Use Target buffer reserve only for device granularity or operational slack. The exact Target buffer for delay remains the cleaner value for a strict latency budget.
  • After trimming a queue, confirm the result with a loaded-latency test or device telemetry. Active queue management, fair queuing, packet loss, and Wi-Fi retransmissions can change live behavior.

Worked Examples:

A deep WAN queue overwhelms a 50 ms budget

A 16 MiB buffer at 100 Mbps produces a Full-buffer drain delay of about 1,342.2 ms. With Average occupancy at 85%, Occupancy-weighted delay is about 1,140.9 ms. The Target buffer for delay is only about 610.35 KiB, so the high bufferbloat risk badge is the right reading for interactive traffic.

A near-target queue has very little spare room

A 600 KiB queue at 100 Mbps drains in about 49.15 ms. Against a 50 ms target, Buffer margin vs target is only about 10.35 KiB under target. That can earn an inside target badge, but a lower real drain rate or a slightly larger configured queue would cross the same ceiling.

A shaped link changes the result

A 1 MiB queue entered with a 1 Gbps port rate appears to drain in about 8.39 ms. If that queue actually sits behind a 50 Mbps upload shaper, the corrected Full-buffer drain delay is about 167.8 ms. With a 20 ms target, Target buffer for delay falls to about 122.07 KiB, and the tuning note points toward trimming the queue or reducing sustained occupancy.

An invalid packet size blocks the budget

If Packet size is set to 40 bytes, the page reports Check queue inputs and leaves the result tables empty. Raise the packet size to at least 64 bytes, then confirm that Packet serialization time and Current buffer rebuild with the expected packet-depth readout.

FAQ:

Should I use port speed or shaped rate?

Use the rate that drains the queue you are evaluating. If a 1 Gbps interface is shaped to 100 Mbps, Link rate should usually be 100 Mbps for the queue behind that shaper.

Why does occupancy not change the worst-case delay?

Average occupancy changes Occupancy-weighted delay. Full-buffer drain delay still assumes the selected queue is full, so it remains the stricter check.

Why is BDP comparison not available?

BDP comparison is not available when Baseline RTT is zero. Enter a positive round-trip time when you want bandwidth-delay product context.

What should I fix when the page says Check queue inputs?

Read the listed message and correct that field first. The common causes are zero or negative Buffer size, zero Link rate, occupancy outside 0% to 100%, negative Baseline RTT, or Packet size below 64 bytes.

Does inside target mean bufferbloat is solved?

No. inside target means the entered queue depth fits the selected delay target on paper. Confirm the path with loaded-latency measurements and queue telemetry when the network is busy.

Are the entered values sent away for calculation?

The buffer, link, RTT, occupancy, and packet-size calculations run in the browser from the values on the page. They are not sent to a dedicated calculation service.

Glossary:

Queue buffer delay
Waiting time caused by bytes already stored ahead of a packet at the bottleneck link.
Bottleneck link
The slowest effective drain point for the queue being evaluated.
Queue depth
The configured amount of data the queue can hold before packets are dropped, marked, or moved by scheduling.
Drain rate
The sustained bit rate used to empty queued bytes.
Bandwidth-delay product
The amount of data in flight for a given link rate and round-trip time.
Serialization time
The time needed to transmit one selected-size packet at the bottleneck rate.
Active queue management
Queue behavior that marks or drops packets before a queue stays full, with the goal of reducing persistent delay.