Professional Documents
Culture Documents
* School for Elec/rical and Elec/ronic Engineering. Po/chef5lroom University for Chris/ian
Higher Educa/ion. P.D. Box 20862. Noordbrug, PO/chefs/room, 2522 Sou/h Africa
** Telkol/1 SA LId. In/egra/ed Technology and Applica/ions S/ra/egy. Priva/e Bag X74.
PrelOria 000 I
The SIP protocol acts as a signalling protocol for the sessions it creates and typical tasks
include initiation, modification and termination of the multimedia sessions. SIP uses the RTP
protocol for transmitting the data of the multimedia sessions. The RTCP protocol is the
control protocol of RTP. The RTCP protocol's primary function is to provide feedback on the
quality of the data distribution.
The purpose of this paper is to examine what data can be extracted from the packet flow
generated between two Session Initiation Protocol (SIP) user agents busy in a call, to derive a
method to extract these data, and to estimate the Quality of Service experienced during the
call from these data. The extracted data could be used to derive detail records.
A network simulation program was used to simulate ome of the Internet's parameters like
packet loss and inter-arrival jitter. A network sniffer was then used to capture the packet flow
between the two SIP user agent, to obtain relevant data. A method to extract information
from the captured data will be described. Data extracted from the SIP messages, the RTP
protocol, the UDP and/or T P and IP protocols include the IP addresses of the originator and
the receiver of the call, the ring time, start time and duration of the call, the amount of data
that was sent and the type of media and codec used. From the RTCP protocol's data, graphs
were drawn reflecting the network's performance experienced during the call. Typical graphs
include Interval Jitter Experienced, Cumulative Packets Sent, umulative Packets Received,
Interval Packet Send Rate, Interval Packet Receive Rate, Interval Payload Data Rate and
Interval Payload Throughput Rate.
It is shown that data necessary to perform detailed usage based billing as well as measuring
the servicc quality for Service Level Agreement purposes can be extracted from the packet
flow.
type and source identifier [I]. The RTP header was used to simulate the Internet. Figure 6 depicts
format is given in Figure 4. the set-up configuration.
It is important to emphasize that the RTP protocol The simulation program (The Cloud from
does not make provision for resource reservation and www.shunra.com) adjusted certain parameters of the
docs not guarantee any quality-of-service for real- simulated Internet. The adjusted parameters
time services [13]. included the packet loss, jitter and delay.
IOl
o I I I 21
m I2l
31 41 51 61 71 sl 91 01 II 21 31 41 51 61 71 81 91 0 I 11 21 31 41 51 61 71 81 91 01 I
f3l
Y-2IP[X[ CC 1 MI PT I Scoucncc numbcr
Timcstamp
Synchronisation sourcc (SSRC) idcntificr
Contributing sourcc (CSRC) idcntificrs
...
Ol m m [3l
0[1121314151617181910\11213\41516\7181910\112131415\61718191011
v=21 pI RC 1 PT=SR=200 1 Length
SSRC of packet sender
NTP timestamp, most significant word
NTP timestamp, least significant word
RTP timestamp
sender's packet count
sendcr's octet count
SSRC I (SSRC of first source)
Fraction lost 1 Cumulativc number of packets lost
Extended highest sequence number
Interarrival jitter
Last SR
Delay since last SR (DLSR)
SSRC 2 (SSRC of second source)
...
Profile specific extensions
S
Moritoring Program
UA1 UA2
LID!' port =
Rll' port #
to port 80dcc ' The RTP and RTCP packets are also number of the RTCP stream is the RTP port number
identified by their destination port numbers. The plu one (usually an odd number) [13].
RTP port numbers are negotiated before the session
starts via IP. Each RTP stream has a Using Packet I of section 4.\ the process of
corresponding RTCP stream. The destination port decoding the packets will be shown. The decoding
64 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGLNEERS September 2003
process for each type of packet is very similar with header are the source port (2 bytes) and the
only minor changes. destination port (2 bytes) [18] and [19).
4.3. Processing the Ethernet and IP Headers The destination port determines whether the higher
layer protocol is a SIP message, a RTP packet or a
The first protocol that must be decoded is the RTCP packet [20). The SIP protocol listens on port
Ethernet protocol [15). Relevant data that can be 5060 dee for SIP messages. The RTP port numbers
extracted includes the destination media access are negotiated before the call starts via SIP. The
control (MAC) address (6 bytes), the source MAC RTCP port numbers can be calculated from the
address (6 bytes) and the Ethernet Protocol field (2 negotiated RTP port numbers.
bytes). The Ethernet Protocol field is used to
determine the next higher protocol [15). For the example packet, the source port (22 3t) can
be computed as 8767dee . Tn a similar way the
In Packet I of section 4.1 the destination MAC destination port (22 3t) is also computed as 8767 dee .
address contains the bytes (00 dO b7 15 cc e2), the
source MAC address contains the bytes (00 dO b7 15 4.5. Decoding ofthe SIP Messages
cc e I), and the Ethernet Protocol field contains the
bytes (00 80). The destination MAC address can be After a SIP message has been identified, the
computed as 00DOB715CCE2 he x> the source MAC message can be decoded by simply converting the
address as 00DOB715CCE I hex and the Ethernet hexadecimal values of the bytes of the data portion
Protocol field as 800"ex. The value of 800"ex of the TCP or UDP packet to the corresponding
indicates that the encapsulated protocol is an IP ASCII characters. Message 1 is an example of a
packet. decoded SIP message.
From the [P header [16], the Protocol field (one INVITE sip:4444@143.160.101.73 SIP/2.0
byte), IP source address (4 bytes) and IP destination From: sip:4444@143.160.1OI.74;tag=lc41
address (4 bytes) can be extracted. The Protocol To: sip:4444@143.160.101.73
field determines the higher layer protocol being Call-Id: call-979217538-2@143.160.1 0 1.74
transported. Only two higher layer protocols will be Cseq: 1 INVITE
Content-Type: applicationlsdp
considered namely the TCP and UDP protocols. If
Content-Length: 114
the higher layer protocol is a TCP packet, the Accept-Language: en
Protocol field will have a value of 6 he x> and if it is an Supported: sip-cc, sip-cc-O I, timer
UDP packet a value of I I "ex will be contained [16). Contact: sip:4444@143.160.1 0 1.74
The source address field identi fies the sender of this User-Agent: PingteVO.8.0 (WinNT)
datagram. The destination address field identifies Via: SIP12.0/UDP 143.160.101.74
thc ultimate destination of this datagram. [P
addresses arc written in a format known as the v=O
o=Pingtel5 51N IP4 143.160.101.74
dotted decimal address format [17], e.g.
s=phone-call
143.160.101.74.
c=IN IP4 143.160.101.74
t=00
For Packet I, the protocol field contains a value of m=audio 8766 RTP/AVP 0 8
(I I) and indicates that the next upper protocol is an
UDP packet. The IP source address field (8f aO 65 Message I.
4a) and the IP destination address field (8f aO 65 49)
can be computed by converting each byte to The following information can be extracted from the
decimal. The IP addresses can be converted to the SIP protocol:
dotted decimal address format by placing dots after • the IIlltlator of the request:
each byte. The IP source address is computed as sip:4444@143.160.101.74;
143.160.101.74 and the IP de tination address as • the desired recipient of the request:
143.160.101.73. sip:4444 143.\60.\ 0 1.73;
• the type of media (audio or video) that is
4.4. Decoding of/he rep and UDP Headers going to be sent: audio;
• the protocol that is going to be used to
A fter the Ethernet and IP headers have been
transport the real-time data: RTP;
processed, and the higher layer protocol has been
• the port number where the VolP data is
identified as the either TCP or UDP protocol, the
going to be sent (the RTP port number):
packet can be processed further.
8766;
• the type of codec that is going to be used: 0
Although the packet headers of the two protocols
di ffer, and the two protocols are designed for two
-G.7! I.
different applications, they contain the same
necessary information. Important fields in the
September 2003 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRICAL ENGINEERS 65
4.6. Decoding ofthe RTCP Packets The information extracted from the sender report
block refers to the sender of the data, in this case the
The call parameters are negotiated with SIP before participant identified in the IP Source field in the IP
the start of the session. During the negotiation the header. Information contained includes the NTP
RTP port numbers are established, and the RTCP timestamp, the sender packet count and the sender
port numbers can be derived from the RTP port octet count.
numbers. For Packet 1 of section 4.1 the destination
port number of the UDP header identifies the The data that was received by the receiver and the
example packet as a RTCP packet. quality of reception are conveyed in the receiver
repOlt block. The information contained in the
From the RTCP packet the network time protocol receiver block refers to the data received by the
(NTP) timestamp (8 bytes), the sender's packet receiver indicated in the IP Source field in the IP
count (4 bytes), the sender's octet count (4 bytes), header. Information that can be extracted from the
the fraction of packets lost (l byte), cumulative receiver block includes the fraction loss, the
number of packets lost (3 bytes), extended highest cumulative number of packets lost, the extended
sequence number (4 bytes) and inter-arrival jitter (4 highest sequence number received and the inter-
bytes) can be extracted [13]. arrival jitter.
For the example packet, the NTP timestamp (be 08 5.1. Formulae for Some of the QoS Parameters
39 Ic 10 e5 60 41) is computed as 3188209948.066
seconds, the sender's packet count (00 00 00 fd) as The data extracted from the RTCP packets can be
253 dcc , the sender's octet count (00 00 ge 20) as used to calculate several QoS parameters. Table I
40480 dcc , the fraction of packets lost (00) and lists a number of such parameters for the sender of
cumulative number of packets lost (00 00 00) as 0, the data, with the equations used to calculate them.
the extended highest sequence number (00 00 23 a5)
as 9125 dcc and the inter-arrival jitter (000000 9a) as The parameters that can be extracted from the
154dcc . receiver are summarized in Table 2.
As was mentioned earlier, the RTP protocol is used With circuit switched networks, it was sufficient to
to transfer the video or audio or any other real-time collect only the start time, the end time, duration, the
data. The RTP header can be decoded in a similar originator, and the receiver of a particular call.
way as the RTCP packets. The RTP data are a When IP networks are used to transfer real-time
specific encoding as for instance G.711. Useful data, other information is also needed for the detail
information that can be extracted from the RTP records. Information needed includes the amount of
protocol includes the payload type and timestamp data that was sent during a call, the type of
[13]. It is however possible to get an estimation of information that was sent (HTTP, SIP, H.323, etc.)
the quality of service experienced by only inspecting the quality of service experienced and the type of
the RTCP and SIP packets, ignoring the RTP codec that was used.
packets.
In this investigation this data has been extracted
from the packet flow of an IP network. Table 3
5. QUALITY OF SERVICE ESTJMATIONS gives an example of a detail record, with the
parameters extracted or calculated from the
The information extracted from the RTCP packets is protocols.
used to give an indication of the quality of service
(QoS) experienced during the call. Using the equations in Table I and Table 2, various
graphs can also be plotted for the sender and
A typical two-party voice session that is full duplex receiver of an RTP stream. These graphs give more
consists of two RTP streams. One RTP stream insight into the QoS experienced during the call.
transports the voice data from the originator of the
call to the recipient, and the other stream transports An example of the possible uses of these graphs is as
the voice data from the recipient to the originator. follows: A Service Level Agreement can be
Each RTP stream has a corresponding RTCP stream determined beforehand. Whcn the sender violates a
which provides feedback on the quality of service certain service level, for instance by overloading the
experienced. network, the user can be fined according to these
graphs. Also, when the receiver experiences a
As only two-party voice sessions were investigated, service whose quality does not conform to the
the RTCP packets consisted of two parts, a sender agreed service level, the network provider can be
report block and a receiver report block. From each liable for a discount, which can be calculated from
block, the required data was extracted. the information on the graphs.
66 THE TRA SA TIONS OF THE SA INSTITUTE OF ELECTRICAL ENGI EERS September 2003
Figure 8 gives examples of graphs obtained from rate per interval. The Interval Payload Data Rate
combining sender statistics of one participant with and Throughput Rate plots the data rate (in octets/s)
receiver statistics of another participant during a per interval for the data send (Payload data) and the
call. data received at the receiver (Throughput Data).
The explanation of the different sections in this For the example graphs in Figure 8, the network was
graph is as follows: The umulative Packets Sent parameterised to simulate a random packet loss of
and -Received ection shows the difference in the 10% (with The Cloud). The packet loss of 10% is
number of packets sent from the sender and the clearly depicted in Figure 8. From this graph, the
nlllnber of packets received by the receiver for a network operator can evaluate the QoS experienced
time interval. The umulative Packet Count and - during the call made.
Loss section shows the number of packets that was
sent from the sender, and the number of packets that
the receiver did not receive. In Figure 9 the cases of 0%, 10%, 30% and 60%
packet loss are compared.
The Interval Packet Send and -Receive Rate plots
the rate per interval at which the packets were sent In Figure 10, the situations for 0, 3 and 60 ms of
and received. The Interval Packet Send and -Loss inter-arrival jitter are compared.
Rate plots the loss rate per interval against the send
Where parameterj with j in [1,2] denotes the values extracted I'TOm two RTCP packets. The packet with the
highest NTP Timestamp value denotes the case wherc j = 2, and the packet with the lowest NTP Timestamp
where j = I.
parameter Equation
Packets Received per ([Extended_highest_sequence_numberz - Extended_highest_sequence_numberd -
Interval rCumulative number of packets lostz - Cumulative number of packets 10Slin
Interval Received Packet Packets Received per Interval
Rate (NTP Timeslampz - NTP Timestampl)
Interval Packet Loss Cumulative number of packets lostz - Cumulative number of paekels lost l
Interval Packet Loss Rate Interval Packet Loss
(NTP Timestampz - NTP Timestampl)
Interval Apparent (Packcts_Received er_lntervaIRx) x (Interval_Average_Payload_SizeTx)
Throughput Available (Note I)
Interval Apparent
Available Throughput (I nterval_Received_Packet_ RateRx) x (Interval_Average_Payload_SizeTX)
Rate (Note I)
Interval Jilter (s) Jittcr x RTPtimestamp unit
Interval Fraction Loss (Cumulative number of packets lostz - Cumulativc number of packets lost l )
(btendcd hil!hest sCQuence numberz - Extended highest sequence numberl)
Intcrval Fraction Loss Interval Fraction Loss
Ratc (NTP Timcstampz NTP TimestampI)
Notc I: parameter" denotes the parameter of the sender (obtained from the RTCP sender block where the source
IP address equals that of the sender) and parameter", that of the receiver (obtained from the RT P receiver block
where the source IP address equals that of the receiver).
September 2003 THE TRANSACTIONS OF THE SA INSTITUTE OF ELECTRI AL ENGINEERS 67
Note I: This data can be calculated by observing when the 180 (ring time), ACK (call start), and BYE (call end)
messages of the SI P protocol are sent [22].
Note 2: This field is a cumulative count of the Packets Received per Interval parameter of Table I.
o
Cumulative Packets Sent and -Received Cumulative Packet Count and -Loss
8000 8000·
I
~
<Il
6000 I
<Il
~
6000
~-m~
II
4000 4000
'" 2000 1 '" 2000 1 i
1
0- 0-
~ I 0
0.,...· -
~e;
L - -----"L- ---',
o el *--~ • • • • I· !
o 50 100 150 200 250 o ~ 100 1~ 200 ~o
Elapsed Time (s) Elapsed Time (s)
Interval Packet Send and -Receive Rate tnterval Packet Send and -Loss Rate
40 40
30 30 th h';~~
if
~ ~
~ 20 ]1 20 I
I \.1
.. . . I
0
'"
0- 10 II' i
'"
0- 10
I ;
o
o 50
I
100 150 200 250
0'
0
el
50
0
100
• 0
150
I
200
0
250
Elapsed Time (s) Elapsed Time (s)
}~ I
~
Q)
I
500 llJr."
., \ 1 I.tO
Scnder Information
Receiver Information
ou I
0'
o 50 100 150 200 250
Elapsed Time (s)
2.5
6000 - -- f-
V
'"
8
J£ 1.5 ~ 4000 V/
I:.
2000 /
0.5
0
0 100 200 300 400
~ 100 200 300 400
Elapsed Time (s) Elapsed Time (s)
/
3000 - ~ 3000
~ 2000
,- ~. ~ 2000
a. a.
1000
.// ~ - 1000
(f
,;
-
0
100 200 300 400 0 100 200 300 400
Elapsed Time (s) Elapsed Time (s)
0% packet loss
10% packet loss
30% packet loss
60% packet loss
0.01
3.5
0.008
~
iii 0.006
~
0.004
0.002
0
0 50 100 150 200 50 100 150 200 250
Elapsed Time (5) Elapsed Time (5)
Interval Jitter· 60 ms
0.05
0.04
'"
r
iii 0.03
~
0.02
0.01
o 50 100 150 200 250
Elapsed Time (5)
The means of the jitter for the three situations are [7] P. Loshin, TCPIIP clearly explained, 2 nd ed.
respectively 2.4 ms, 2.6 ms and 30.5 ms. The reason Boston: AP Professional. 1997.
why the mean of the jitter experienced for the case [8] H. Schulzrinne, Internet technical resources.
when the jitter parameter was set to 0 ms with The [Web:]
Cloud was 2.4 ms, is that this value is the inherent http://www.cs.columbia.edu/~hgslinternet/
jitter of the Ethernet LAN and the programs used. [Date of access: 8 Nov. 2001]
The jitter increased when the jitter parameter was set [9] W. Stallings. Data and computer
to 3 ms. The jitter increased further when the jitter communications, 5th ed. New Jersey: Prentice-
parameter was set to 60 ms, but didn't reach 60 ms. Hall, 1997.
A reason for this can be that the program used to [10] P. Tiilikainen, SIP (RFC 2543), an
simulate the jitter reached its maximum for the jitter. implementation for Marratech Pro. MSc.
Thesis, Lulea University of Technology, Lulea,
2000.
7. CONCLUSION [II] H. Schulzrinne, The Session Initiation
Protocol (SIP). [Web:]
Currently two major efforts for IP telephony exist. http://www.cs.columbia.edu/~hgs/teaching/ais/sli
The one is H.323 and the other is SIP. SIP is a very des/sip2.pdf [Date of access: 5 Jun. 200 I].
flexible protocol and has an uncomplicated [12] M. Handley and V. Jacobson, SDP: Session
implementation, making it a good candidate for the Description Protocol. RFC 2327. 1998.
de-facto V 0] P standard [21]. [13] H. Schulzrinne, S. Casner, E. Frederick and V.
Jacobson, RTP: a transport protocol for real-
The SIP protocol is used for signalling and the RTP time applications. RFC 1889. 1996
protocol for transportation of the data for a [14] H. Schulzrinne, Some Frequently Asked
multimedia session. At this stage, the SIP protocol Questions about RTP. [Web:]
lacks a billing infrastructure [I]. This paper's main http://www.cs.columbia.edu/~hgs/rtp/faq.html
aim was to see what data could be extracted from the [Date of access: 10 Nov. 2001].
packet flow of a VoIP session, to derive a method [15] R. Haden, Ethernet Basics. [Web:]
for the extraction purpose, and to depict the QoS http://www.rware.demon.co.uklethemet.htm
experienced during a call, for the purposes of [Date of access: 8 Nov. 2001].
compiling detail records. Possible uses of the detail [16] Information Science Institute University of
records include billing, fraud management and Southern California, Internet Protocol. RFC
network planning. 791. 1981.
[17] D. Hoggan, 2000. The Internet book:
Introduction and reference. [Web:]
REFERENCES http://www.theinternetbook.net/[Date of access:
8 Nov. 2001], 2000
[I] H. Schulzrinne and J. Rosenberg, "Internet [18] J. Postel, Transmission Control Protocol. RFC
telephony: architecture and protocols - an ]ETF 793, 1981.
perspective," Computer Networks, no. 31, pp. [19] J. Postel, User datagram protocol. RFC 768,
237-255, 1999. 1980.
[2] McLain Computer Consultants, What is VolP. [20] A. llkov, (alen.ilkov@cacheflow.com). RTP
[Web:] and RTCP port numbers. [E-mail to:] Versfeld,
http://www.techcorrect.com/TechWrite/Write02. D.J.J. (eeidjjv@puknet.puk.ac.za) 27 Mar.
html [Date of access: 7 Nov. 2001]. 2001.
[3] M. Hassan, A Nayandoro and M. Atiquzzaman, [21] I. Dalgic and H. Fang, Comparison of H.323
"Internet telephony: services, technical and SIP for IP Telephony signalling. [Web:]
challenges, and products," IEEE http://www.cS.coIumbia.edu/~hgs/papers/others/
Communications Magazine, vol. 4, no. 34, pp. 96 Dalg9909_Comparison. pdf [Date of access: 8.
- 103,2000. Nov. 2001].
[4] Anon, Voice over IP (VoIP). [Web:] [22] C.U. Eckel, (eckelcu@cisco.com) 2001. Call
http://www.protocols.com/papers/voip.htm [Date Detail Records for SIP. [E-mail to:] Versfeld,
of access: 7 Nov. 2001]. D.J.J. (eeidjjv@puknet.puk.ac.za) Jun. II.
[5] Anon, Voice over IP technology. [Web:] [23] M. Handley, H. Schulzrinne, E. Schooler and J
http://www.alliancedatacom.com/voice-overi p- Rosenberg, SIP: Session Initiation Protocol.
tutorial.htm [Date of access: 7 Nov. 2001]. Internet Draft RFC 2543,2001.
[6] Insight, IP billing: moving beyond Telecom's
time and distance billing model 1999-2004.
[Web:] http://www.insight-corp.com/ipbill.html
[Date of access: 7 Nov. 200 I].