Another vote for packet drop detection
Peter Van Epp
vanepp at sfu.ca
Sun Jan 29 16:55:09 EST 2012
On Sun, Jan 29, 2012 at 08:56:09AM -0500, Carter Bullard wrote:
> OK, I think that we are already doing all that is needed in argus to report on
> suspicion of infrastructure loss. I have written about this for many years, and
> I'm glad that we're talking about this topic now. We have done so much work
> to make sure that we're pretty accurate in reporting loss, and many have put
> Argus through the ringer on this. (if you think you see a bug in simply reporting
> loss, please send to the list a packet trace that demonstrates that, and I'll fix
> it). If Argus is doing a good job estimating loss, then we're talking about only
> adding another metric to differentiate unobserved traffic vs loss, based on
> your criteria.
>
Correct, but in this specific case the loss being flagged is between
the monitor (tap) point and the argus sensor rather than in the monitored link.
With the current loss metrics I don't know how I would extract that specific
loss (not that it can't be done, I just don't know how :-)). I do agree it is
a valuable statistic to have as it points (on an ongoing basis as opposed to
one time testing of sensor capacity which should be done as well) to a sensor
error. As such I think the metric should go in the man records as it is sensor
rather than link related.
> So, lets talk about how we can estimate the amount of unobserved traffic. TCP
> provides you with a number of possibilities for knowing what the offered load is/was,
> i.e. the amount of traffic that was actually transmitted. The most reliable is the total
> number of bytes. This is derived by differencing the closing sequence number
> and the initial base sequence number, adjusting for rollover. This is an excellent
> number, as it tells you the exact number of bytes reliably transmitted (Br).
>
> Now this is the TCP bytes. Argus tracks this stat, and reports today the TCP bytes
> observed (Bo). This number is the TCP bytes for the all transmitted packets,
> original data (Od) and retransmissions (Rb). If you can compare Od with Br,
> you will realize how many bytes you didn't see. Now how many packets you
> didn't see will have to be estimated.
>
What wireshark is doing is seeing that the monitored end point acked
a packet that the sensor didn't see. That implies that the monitored link saw
the packet but for some reason, probably sensor link loss, the sensor didn't
see the packet. That is going to happen sometimes simply because the sensor
link after the tap is UDP, and the bit error rate of the underlying link is
sometimes going to cause errors in valid packets (not all that often we hope,
but sometimes even on passive taps with fibre, much more often on either or
both of copper links and active taps or span ports) that will cause the sensor
to drop what is a valid packet on the monitored link. It would be useful for
management purposes to have a count of how many the sensor sees (or more
correctly didn't see :-)) in the man record. Its then relatively easy to have
a script running on the sensor (or in argus itself if desired, but I think a
script is probably the better bet, since not everyone is this paranoid even
though they chould be :-), that will alert if the loss number gets too high
indicating that a problem has occurred in the sensor link and that a human
needs to take a look at it and fix to maintain accuracy. If you don't need
the accuracy you can ignore this as long as it doesn't get too large, but if
you want it or need it the capability is there (as is the data even if you had
been ignoring it :-)).
Peter Van Epp
More information about the argus
mailing list