David Grau Serra wrote:
Hi all list,
My presentation: I am david grau and I am from barcelona. Excuses for
my poor english.
My project objective is monitor and evaluate a wireless VoIP (SIP)
peer to peer session by analysing RTCP control stream and filtering
performance parameters such as jitter, delay and packet loss. These
values will be dynamically plotted in order to provide a visual
synopsis of network health.
I use a command line network sniffer (tethereal) to capture the
relevant control packets i.e. RTCP sender and receiver reports.
(tethereal -i 2 -p -c 100 -V -R "rtcp").
I parse the RTCP sender and receiver reports to filter out values for
jitter, delay and packet loss.
The parsing code is working in Java.
The softphone is X-Lite.
I show you part of the parsing:
TIMESTAMP (From tethereal)
18:31:01.248701000
SENDER REPORT
MSW: 3351349861
LSW: 1073741824
Sender's packet count: 2
Sender's octet count: 320
RECEIVER REPORT
Cumulative number of packets lost: 0
Extended highest sequence number received: 0
Interarrival jitter: 0
Last SR timestamp: 2321891328
Delay since last SR timestamp: 1
TIMESTAMP (From tethereal)
18:31:01.280097000
SENDER REPORT
MSW: 3351349861
LSW: 1206885810
Sender's packet count: 4
Sender's octet count: 640
RECEIVER REPORT
Cumulative number of packets lost: 0
Extended highest sequence number received: 0
Interarrival jitter: 0
Last SR timestamp: 2321893359
Delay since last SR timestamp: 1
I know how can I calculate jitter and the packet loss rate.
My problem now is how can I calculate delay (round trip delay).
I don't understand why the "Delay since last SR timestamp" is always 1.
I don't know how it works the "MSW" and "LSW" (Timestamp).
These fields and the way the calculation should be done, is described in
RFC 3550, section 6.4.1.
Ethereal already does this calculation for you (if the preference is
turned on). There have been fixes made to this calculation, the last of
which I believe was made after the last (0.10.14) release.
DLSR is defined as:
"The delay, expressed in units of 1/65536 seconds, between
receiving the last SR packet from source SSRC_n and sending this
reception report block. If no SR packet has been received yet
from SSRC_n, the DLSR field is set to zero."
If the DLSR is always 1, that indicates that either:
- the RTCP stack isn't filling the value in properly, OR
- it really is replying almost instantly after receiving a report from
the other side. This could be because:
- both clients are sending reports at the same rate and they are
almost exactly in sync
- they are sending reports in response to an incoming SR rather than
on a timer (or some other trigger)
Note that the Last SR timestamp is formed by taking the middle 32 bits
from the MSW and LSW fields. Taken together they are the Most
Significant Word and Least Significant Word or an NTP timestamp.
If you still can't get Ethereal to calculate the roundtrip delay
properly, you could send me a capture and I'll take a look.
Regards,
Martin
Does anybody know it?
Many thanks.
Regards,
David Grau
_______________________________________________
Ethereal-users mailing list
Ethereal-users@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-users