Skip to content
All tools
Tool

Estimate UDP packet loss and FEC exposure

Calculate observed shred gaps, sampling uncertainty, transaction exposure, and idealized FEC recovery from explicit assumptions.

Shreds lost

5.6 / second

20,106 an hour

The same percentage, expressed in a unit that is harder to dismiss.

Sets beyond recovery
effectively none
Chance a single FEC set loses more shreds than its coding shreds can rebuild.
Unrecoverable sets per hour
under 0.01
Each one is a gap in your view of a block that no amount of retrying will fill.

This assumes losses are independent, and they are not. Real loss arrives in bursts: a full buffer drops everything for a few milliseconds, which takes out neighbouring shreds that often belong to the same set. Burst loss is far more damaging than the same average spread evenly, so treat the recovery figures here as the optimistic end of the range rather than a forecast.

3 estimates separate observation from impact

The packet-loss estimator calculates observed unique-shred loss, the chance that a multi-shred object is complete under an independent-loss model, and idealized FEC-set recovery probability. Each result has a different denominator.

The tool does not infer loss from received packet rate alone. The measured feed average of 5,585 packets per second varies with network activity. A 60-second count below 335,100 is not proof that the difference was dropped.

Method for observed gaps

For a sequence domain where the expected unique identities are known:

text

expected_unique = expected sequence positions
received_unique = distinct valid positions received
missing_unique = expected_unique - received_unique
observed_loss_rate = missing_unique / expected_unique
observed_loss_percent = observed_loss_rate * 100

Duplicates are reported separately and do not increase received_unique. Invalid packets do not fill a position. Expected positions must come from valid protocol metadata, a complete companion source, or a clearly bounded FEC set.

An approximate 95 percent interval for a proportion can use the Wilson score method. The component shows the formula and uses it instead of the fragile normal approximation near zero loss. The interval describes sampling uncertainty under binomial assumptions, not burst correlation or unknown expected packets.

Method for object exposure

If packet loss is independent with probability q and an object requires n specific shreds, its no-loss probability is:

text

P(complete) = (1 - q)^n
P(affected) = 1 - (1 - q)^n

Expected affected objects across N similar objects are:

text

expected_affected = N * P(affected)

This model ignores FEC and correlation. It is useful as a sensitivity calculation, not a prediction when drops occur in bursts.

Method for ideal FEC recovery

For k required original symbols, m parity symbols, and independent per-symbol loss q, recovery succeeds when at least k of k plus m independent symbols arrive.

text

P(recoverable) = sum from r=k to k+m of
  combination(k+m, r) * (1-q)^r * q^(k+m-r)

The equivalent failure event is losing more than m symbols. The calculation assumes valid compatible symbols and ideal decoding. It does not include CPU deadline or metadata errors.

Worked observed-loss example

Assume a later complete source establishes 100,000 expected unique shred identities for an interval. The receiver has 99,950 unique valid identities and 80 duplicate datagrams.

text

missing_unique = 100,000 - 99,950 = 50
observed_loss_rate = 50 / 100,000 = 0.0005
observed_loss_percent = 0.05 percent
duplicate_rate_by_expected = 80 / 100,000 = 0.08 percent

The result is 0.05 percent observed unique loss for that defined source comparison. It does not say where the 50 packets disappeared. NIC, kernel, application, capture, and upstream counters locate the boundary.

Worked transaction-exposure example

Assume the same q of 0.0005 and a simplified transaction object that requires three specific shreds with no recovery.

text

P(complete) = (1 - 0.0005)^3
            = 0.9995^3
            = about 0.99850075

P(affected) = about 0.00149925
            = about 0.1499 percent

Across 10,000 comparable objects, the model expects about 15 affected objects. Real transactions do not all span exactly three shreds, and entries share fragments. The example demonstrates why object impact can exceed the raw packet-loss percentage.

Worked FEC interpretation

Take a group with k equal to 32 data symbols and m equal to 32 coding symbols. Recovery can tolerate up to 32 missing symbols under the ideal coding model. With q equal to 0.0005, failure probability under independent loss is extremely small.

That result can be misleading in production. A burst can remove many adjacent data and coding packets. A receiver stall can drop the tail of an entire group. Correlated loss violates the independent binomial model. The tool therefore shows the ideal result beside observed burst lengths and group failures when a capture is supplied.

Locate the loss boundary

Compare sender or independent-source identities with NIC hardware counters, interface counters, kernel UDP statistics, socket overflow, application receive count, validation rejects, FEC gaps, and decoded entries. Counts cover different layers and may use different intervals.

A rising UDP receive-buffer error with stable NIC receipts points toward socket pressure. NIC missed-packet counters point earlier. An application identity gap with no lower-layer drop can come from filtering, parsing, or a bad expected-set definition.

Clock the interval precisely. Counter resets, interface restarts, and unrelated UDP traffic can invalidate subtraction. Filter the expected source 64.130.40.90 and purchased destination port where the measurement layer permits.

Limitations

Independent packet loss is often the wrong model for a busy receiver. Interrupt delay, full rings, scheduler stalls, route events, and bursts create correlated gaps. The tool labels binomial results idealized and accepts an empirical burst distribution when available.

FEC recoverability does not mean recovery finished before a strategy deadline. It also does not make the original arrival complete. Track first-recoverable and decoded times.

Expected packet count cannot be derived from the 5,585 packet-per-second mean for a short interval. Use sequence metadata or a reference source. Mean-rate comparison is capacity arithmetic only.

Packet capture can drop independently. A pcap gap may be a capture failure while the production socket succeeded. Instrument both paths and avoid claiming a network-loss percentage from one unverified file.

How it works out the answer

Compute observed_loss = missing_unique / expected_unique. Under an explicit independent-loss model with packet loss q, an n-shred object is complete with probability (1 − q)^n. For a Reed-Solomon group with k required symbols and m parity symbols, ideal recovery probability is the binomial sum from r = k through k + m of C(k + m, r)(1 − q)^r q^(k + m − r).

Questions

Can I estimate packet loss from 5,585 packets per second?
Not by comparing one interval with that mean. Feed rate varies with network activity. Loss needs an expected identity set from sequence metadata, a complete FEC group, sender records, or an independent source. The measured mean is useful for capacity and stall arithmetic, not a short-window packet oracle.
Why can transaction exposure exceed packet-loss percentage?
A transaction or entry can depend on several specific shreds. Under independent loss q, an n-shred object's affected probability is one minus (one minus q) raised to n. Shared fragments, varying object sizes, FEC, and correlated bursts change real results, but the formula exposes the compounding sensitivity.
Does FEC make UDP loss irrelevant?
No. FEC can reconstruct missing data when enough compatible symbols arrive. Large or correlated gaps can exceed parity, recovery costs CPU, and content may become ready after its latency deadline. Record direct arrivals, first-recoverable time, recovery completion, and unrecovered groups as separate outcomes.