[PATCH] TcpRtt support in ragraph
Tomoyuki Sakurai
cherry at trombik.org
Mon Aug 25 21:12:23 EDT 2008
On Mon, Aug 25, 2008 at 07:36:17PM -0400, Carter Bullard wrote:
>
> Hi,
> TcpRtt is actually calculated as the complete round trip time
> measured as the syn->synack times "+" the synack->ack time.
> Even if argus is in the middle, you will get a full roundtrip time
> calculated, but you have to see all three packets in order
> to calculate the metric. Its possible that you have asymmetric
> paths for the TCP data?
No, the path is symmetric and argus sees complete TCP stream. But your
suggestion made me think again and I understood why. In short, argus is
right, it was pf on OpenBSD router that made TCP handshakes.
> Because the TcpRtt is the sum of two other metrics, you can
> print the two components and the totals to see where its messing up.
>
> ra -r file -s +synack +ackdat +tcprtt - tcp
"ra $OPTIONS - tcp and not src net $MYNET" shows:
Proto sCo Dir dCo State SynAck(Sec) AckDat(Sec) TcpRtt(Sec)
tcp JP -> JP sSEf 0.000169 0.000097 0.000266
tcp US -> JP sSEfF 0.000143 0.000101 0.000244
tcp CN -> JP sSEfF 0.000233 0.000098 0.000331
tcp RU -> JP sSEfF 0.000165 0.000098 0.000263
tcp KH -> JP sSEfF 0.000236 0.000105 0.000341
tcp GB -> JP sSEfF 0.000122 0.000100 0.000222
tcp DE -> JP sSE 0.000255 0.000102 0.000357
tcp SG -> JP sSEf 0.000155 0.000102 0.000257
tcp TH -> JP sSEfF 0.000131 0.000101 0.000232
tcp MY -> JP sSEfF 0.000133 0.000104 0.000237
These would be impressive RTTs if they were real :)
I had "pass ... synproxy state" in pf.conf. That means pf was proxying
initial TCP handshake for the client and then argus saw the packets.
After disabling synproxy keyword, argus sees unmodified TCP handshake.
Proto sCo Dir dCo State SynAck(Sec) AckDat(Sec) TcpRtt(Sec)
tcp US -> JP sSEf 0.000279 0.142032 0.142311
tcp JP -> JP sSEf 0.000216 0.119915 0.120131
tcp JP -> JP sSEf 0.000246 0.119765 0.120011
tcp US -> JP sSEfF 0.000158 0.203272 0.203430
tcp JP -> JP sSEfF 0.000253 0.045925 0.046178
tcp TH -> JP sSEfF 0.000134 0.183594 0.183728
tcp EU -> JP sSEfF 0.000224 0.281545 0.281769
tcp JP -> JP sSEfF 0.000208 0.018305 0.018513
Now that the result is reasonable.
If you are using synproxy, place the argus where unmodified packets can
be seen, like in front of OpenBSD host. You'll still miss RTT between
the OpenBSD router and dst host, but in most cases, it wouldn't be a
problem since the missed RTT would be a few msec.
Sorry for the noise.
--
Tomoyuki Sakurai
More information about the argus
mailing list