Professional Documents
Culture Documents
The objective of this experiment is to capture all IP packets sent to and received
from two hosts over the course of a video conference and analyze the RTP and
RTCP packets captured during this process. Data is captured both at both hosts for
two calls, once during low network load and once when network load is high.
For our experiment, Googles Hangouts was initially used to establish a call but
their deviation from RFC 3550 standards and use of encryption made it difficult to
analyze the recorded data. Go2Meeting was used next and we discovered that
they too employed encryption, making analysis difficult. Therefore we resorted to
the use of Linphone, an open source VoIP project supported by Belledonne
Communications.
Experiment conditions
Host 1
Host 2
Location
New Brunswick
East Brunswick
Device used
Personal Laptop
Personal Laptop
ISP
Optimum
Comcast
Public IP
68.193.145.122
68.44.24.247
IP in local network
192.168.1.7
192.168.2.72
Trial one
Date: 11/4/2014 Time: 11:10 PM
Trial two
Date: 11/6/2014 Time: 2:11 PM
The Process
The First step was to setup a video call from host 1 to host 2 with encryption
disabled. This was achieved by setting the Media encryption type in the network
settings tab in the Preferences window to None.
After the call was setup, all transmitted data was captured using wireshark. We
decided to capture data for 10 minutes, so the stop capture automatically after
option in the capture options page was set to stop after 10 minutes.
The capture process was performed at both hosts simultaneously and the data
was stored to a pcapng file.
The capture of the second call was performed with intervals where, one of the
Hosts mic was deactivated and then the other host had his mic de-activated and
then the both mic were deactivated. During the periods when the mic was
deactivated, the video was also disabled. Video could not be disabled for one
source at a time as Linphone provided no such feature.
Identifying RTP packets
All captured RTP and RTCP packets are simply displayed as UDP packets in
wireshark. To identify our RTP and RTCP packets, Wiresharks Decode as feature
was used. When used on a single packet, it is capable of identifying all packets in
that particular stream (data to and from the source and destination ports
specified in that packet). To successfully decode all RTP packets, we initially
filtered out data that was still interpreted as UDP and not as RTP or RTCP using
the display filter
udp and not(rtp) and not(rtcp)
Linphone allows us to specify what ports are to be used for audio and video
communication, so this allows us to spot RTP packets and then the decode as'
function can be used to make wireshark identify the RTP packets. Upon exploring
we identified that Linphone follows standard conventions and transmits RTCP
packets from the next higher up odd numbered port for each source. This was
used to identify and decode the RTCP packets.
All necessary data was added to columns and were exported to a csv file. Excel
was used to calculate all necessary statistics.
Identifying Payload type
Initial plan for identifying Payload types was based on the fact that Audio data
occupies lesser space than video data. So, we expected the overall space occupied
by the packets of the audio stream to be lesser than that occupied by the video
stream.
But with the use of linphone, we were able to manually set Audio and Video
ports. So to identify payload type, one can simply look into the details of any
packet sent from a particular port and associate that payload type to the purpose
of that port.
Network paths
Upon capturing the data and identifying the IP of the server used by Linphone,
Tracert was used to identify the path from the hosts to the server.
1. Path from Host 1 to Linphone Server
Statistics
Session 1: Host 1
Session Duration=10 Minutes, Session completed using LINPHONE with both
audio and video turned ON for the entire duration.
Source Destination Number of
Port(1)
Port(1)
Packets(2)
9078
7078
55388
62842
11014
29988
9079
55389
120
7079
62843
120
9078
7078
11877
29900
55389
9079
120
62843
7079
120
Host 1 Outgoing
RTP Packet Size(3)
Lost
Mean Time Between Two
Payload
(Length in Bytes)
SSRC Identifiers(5) Packets
Packets(s)(7)
Type(4)
(6)
Min Max
Mean
Min
Max
Mean
56.0 1294.0 1043.57458 RTPType-103 0x2CE7
0 0.000031 0.232708 0.05443793
88.0 136.0 103.26740 RTPType-124 0x6D9E
0 0.000031 0.050535 0.01999859
0x2CE7(Sender)
146.0 146.0 146.00000
0
0x687B(First source)
4.912988 5.031413 4.99930410
SR(200)
0x6D9E(Sender)
146.0 146.0 146.00000
0
4.989735 5.010318 4.99988136
0x2DC0(First Source)
Host 1 Incoming
RTP Packet Size(3)
Lost
Mean Time Between Two
Payload
(Length in Bytes)
SSRC Identifiers(5) Packets
Packets(s)(7)
Type(4)
(6)
Min Max
Mean
Min
Max
Mean
56.0 1294.0 1027.18426 RTPType-103 0x687B
34 0.000011 2.783036 0.05048929
74.0 136.0
92.38416 RTPType-124 0x2DC0
84 0.000011 2.747859 0.02005557
0x687B(Sender)
150.0 150.0 150.00000
0
0x2CE7(First source)
2.957019 7.048796 5.00016892
SR(200)
0x2DC0(Sender)
150.0 150.0 150.00000
0
4.950914 5.039732 5.00024492
0x6D9E(First Source)
Host 2
Source
Port(1)
Destination
Port(1)
9078
7078
35248
57170
9079
35249
7079
57171
Source
Port(1)
Destination
Port(1)
57170
35248
9078
7078
35249
9079
57171
7079
Host 2 Outgoing
RTP Packet Size(3)
Number of
Payload
(Length in Bytes)
SSRC Identifiers(5)
Packets(2)
Type(4)
Min Max
Mean
11906 56.0 1294.0 1043.5746 RTPType-103 0x687B
29972 88.0 136.0
103.2674 RTPType-124 0x2DC0
0x687B(Sender)
120 150.0 150.0
150.0000
0x2CE7(First source)
SR(200)
0x2DC0(Sender)
120 150.0 150.0
150.0000
0x6D9E(First Source)
Host 2 Incoming
RTP Packet Size(3)
Number of
Payload
(Length in Bytes)
SSRC Identifiers(5)
Packets(2)
Type(4)
Min Max
Mean
10968 56.0 1294.0 1027.18426 RTPType-103 0x2CE7
29928 74.0 136.0
92.38416 RTPType-124 0x6D9E
0x2CE7(Sender)
120 146.0 146.0 146.00000
0x687B(First source)
SR(200)
0x6D9E(Sender)
120 146.0 146.0 146.00000
0x2DC0(First Source)
Lost
Mean Time Between Two
Packets
Packets(s)(7)
(6)
Min
Max
Mean
0 0.000030 0.344843 0.05034288
0 0.000027 0.067819 0.01999939
0
Lost
Mean Time Between Two
Packets
Packets(s)(7)
(6)
Min
Max
Mean
41 0.000020 0.636363 0.05465503
48 0.000018 0.525384 0.02002977
0 4.805372 5.156351 4.99952360
0
Session 2: Host 1:
Session Duration=10 Minutes, Session completed using LINPHONE with audio and
video transmission changed according to the following table
Duration in secs
Audio
Host 1 Video
Audio
Host 2 Video
Source
Port(1)
Destination
Port(1)
9078
22512
7078
48084
0-100
ON
ON
ON
ON
Number of
Packets(2)
2018
3930
5068
15424
9849
20
9079
22513
40
20
7079
48085
64
40
100-220
ON
OFF
OFF
OFF
220-340
OFF
OFF
ON
OFF
340-460
OFF
OFF
OFF
OFF
460-600
ON
ON
ON
ON
Host 1 Outgoing
RTP Packet Size(3)
Payload
SSRC Identifiers
(Length in Bytes)
Type(4)
(5)
Min Max
Mean
56.0 1294.0
976.5970
0x6F50
RTPType-103
56.0 1294.0
962.4204
0x604
76.0 124.0
103.4417
0x1478
75.0 126.0
84.8048 RTPType-124 0x1288
76.0 126.0
102.3511
0x40EB
0x6F50(Sender)
146.0 146.0
146.0000
0x7C7B(First source)
0x604(Sender)
146.0 146.0
146.0000
0x11A6(First source)
0x1478(Sender)
146.0 146.0
146.0000
SR(200)
0x7632(First Source)
0x1288(Sender)
146.0 146.0
146.0000
0x7280(First source)
0x40EB(Sender)
146.0 146.0
146.0000
0x11A6(First source)
Lost
Packets
(6)
0
0
0
0
0
Source
Port(1)
Destination
Port(1)
22512
9078
48084
7078
Number of
Packets(2)
2171
3985
5071
15413
9839
20
22513
9079
40
20
48085
7079
64
40
Host 1 Incoming
RTP Packet Size(3)
Payload
(Length in Bytes)
SSRC Identifiers(5)
Type(4)
Min Max
Mean
57.0 1294.0 1045.02150
0x7C7B
RTPType-103
57.0 1294.0 1051.96938
0x11A6
75.0 128.0
90.29000
0x7632
74.0 130.0
79.85449 RTPType-124 0x7280
74.0 137.0
83.93721
0x6A38
0x7C7B(Sender)
150.0 150.0
150.0000
0x6F50(First source)
0x11A6(Sender)
150.0 150.0
150.0000
0x604(First source)
0x7632(Sender)
150.0 150.0
150.0000
SR(200)
0x1478(First Source)
0x7280(Sender)
150.0 150.0
150.0000
0x1288(First source)
0x11A6(Sender)
150.0 150.0
150.0000
0x40EB(First source)
Lost
Packets
(6)
7
12
12
28
4
8.63646
4.8873041
Host 2:
Source
Port(1)
Destination
Port(1)
9078
27940
7078
19518
Number of
Packets(2)
2167
3997
5060
15425
9452
20
9079
27941
40
20
7079
19519
64
40
Source
Port(1)
Destination
Port(1)
27940
9078
19518
7078
Number of
Packets(2)
2000
3659
5044
15396
9445
20
9079
27941
40
20
7079
19519
64
40
Host 2 Outgoing
RTP Packet Size(3)
Payload
SSRC Identifiers
(Length in Bytes)
Type(4)
(5)
Min Max
Mean
56.0 1294.0
976.5970
0x7C7B
RTPType-103
56.0 1294.0
962.4204
0x11A6
76.0 124.0
103.4417
0x7632
75.0 126.0
84.8048 RTPType-124 0x7280
76.0 126.0
102.3511
0x6A38
0x7C7B(Sender)
150.0 150.0
150.0000
0x6F50(First source)
0x11A6(Sender)
150.0 150.0
150.0000
0x604(First source)
0x7632(Sender)
150.0 150.0
150.0000
SR(200)
0x1478(First Source)
0x7280(Sender)
150.0 150.0
150.0000
0x1288(First source)
0x11A6(Sender)
150.0 150.0
150.0000
0x40EB(First source)
Host 2 Incoming
RTP Packet Size(3)
Payload
(Length in Bytes)
SSRC Identifiers(5)
Type(4)
Min Max
Mean
57.0 1294.0 1044.02150
0x6F50
RTPType-103
57.0 1294.0 1052.96938
0x604
75.0 128.0
90.14000
0x1478
74.0 130.0
79.63449 RTPType-124 0x1288
74.0 137.0
85.93721
0x40EB
0x6F50(Sender)
146.0 146.0
146.0000
0x7C7B(First source)
0x604(Sender)
146.0 146.0
146.0000
0x11A6(First source)
0x1478(Sender)
146.0 146.0
146.0000
SR(200)
0x7632(First Source)
0x1288(Sender)
146.0 146.0
146.0000
0x7280(First source)
0x40EB(Sender)
146.0 146.0
146.0000
0x11A6(First source)
Lost
Packets
(6)
0
0
0
0
0
Lost
Packets
(6)
7
12
12
28
4
8.63646
4.8873041
(1) The software used for the conference was LINPHONE. This is an open
source software with a lot of options. The encryption option was disabled
for this experiment. The port pairs were chosen to be 7078 for audio and
9078 for video on both PCs. The UDP traffic is directed from one
participant PC to LINPHONE servers. The data is then transmitted to other
participants PC. The server does not seem to perform any processing of its
own. Since the SSRC identifiers remain intact for all packets, it appears that
the traffic does not pass through any mixers. Both the participant connect
to the same LINPHONE server, in our case it was 91.121.209.194.
The Packets were decoded to be RTP/RTCP by Wireshark Decode As
option. However, it was confirmed that the decoding of Wireshark was
correct by reviewing that the UDP port pairs used by the software were
strictly in accordance with RFC 3550. I.e. even numbered port was used for
RTP packets and the next higher odd numbered port was used for the
RTCP packets. The tables show the exact values of all UDP port pairs as
used by RTP/RTCP packets in this experiment.
(2) Audio packets seem to be larger in number and transmitted more
frequently than video packets. But video packets are longer than Audio
Packets. Based on the first session, mean time between packets is almost
constant for audio and video at .02s and .05s each. And Sizes are also
almost similar with audio packets sized around 100 bytes and video
packets sized around 1000 bytes.
This makes audio packets more in number by a factor of 2.5 and smaller
than video packets by a factor close to 10. So Video data makes up close to
80% of our data traffic ignoring the RTCP packets which with a mean time
of 5 seconds between each packet and a fixed packet size close 150 bytes
occupy a very small portion of the traffic.
It is worth mentioning that in session two, when video was disabled, no
packets were transmitted but while audio was muted, transfer still
occurred.
(3) The criteria for identifying the audio packets is that RTP audio packets are
smaller in size and usually larger in number and transmitted at a higher
rate as compared to RTP video packets, which are larger in size, still large
in number but smaller than RTP audio packets and have less rate of
transmission of packets.
RTCP packets coming from a particular source are always of the same
length (146 in the case of host 1 and 150 in the case of host 2). This can be
explained based on the fact the main message carries only blocks of fixed
length. The length can increase based on the number of report blocks, but
both carry only one at all times. The difference of 4 bytes between the two
RTCP packets comes from the Chunk added to the end by Linphone. This
chunk contains user data and that includes the users Local IP as text. A
difference in the number of digits between the two hosts IPs causes its
length to increase by 4 bytes.
(4) The Payload Type for RTP (both audio and video) packets is assigned in the
dynamic PT range which is 96-127. The statistics of packets sizes can be
found in the respective tables.
(5) SSRC identifiers identify each device in a session. SSRC identifiers seem to
be assigned randomly at the beginning of a session. All devices in the two
sessions were observed to have a unique SSRC identifier.
Whenever a device is turned off for a while and then reactivated, it seems
to receive a new SSRC identifier. This should explain the different sender,
first source combinations in the SSRC identifier column of the observations
in the second session.
The SSRC identifiers are used to uniquely identify each device in a session.
This SSRC identifier is randomly assigned at the beginning of each session.
No two devices in a session can have the same SSRC identifier. For our two
sessions, all devices were observed to have unique SSRC identifiers.
The Sender Report contain the SSRC identifier of the device sending the
RTP stream as well as the device at remote end sending similar RTP stream
but in other direction. This is exactly what can be observed from the tables.
As an example, the sender report sent from Camera of participant 1(SSRC
identifier: 0x687B) contains SSRC identifier as 0x687B and its first source
field contains the SSRC identifier of the camera of PC2 (SSRC Identifier:
0x2CE7). Similar is the case for the other device i.e. Mic.
(6) Packet loss is observed only in the incoming streams. It is logical to assume
that this is because the loss occurs during transmission and host 1 can only
detect loss in the stream it received from host 2 and similarly, only host 2
can detect the loss in the stream from host 1.
A correlation could not be made between packet loss and network load as
they seem to vary irrespective of network load.
(7) Since the algorithm for computing the RTCP packets transmission interval
takes into consideration the dynamic changing of number of participant in
a session, this did not affect our observations. Since the number of
participants was only two and the transmission bandwidth was considered
to be stable, the interval between Sender Reports was nearly constant
with a mean of almost 5 Seconds.
This shows how the difference in mean times is greater during periods of higher
traffic load. This difference in means in this case is low enough to be
compensated with other techniques but greater changes can cause a drop in
quality.
References
1. http://www.ece.rutgers.edu/~marsic/books/CN/projects/wireshark/wsproject-3.html
2. http://www.ietf.org/rfc/rfc3550.txt
3. http://www.networksorcery.com/enp/protocol/rtp.htm
4. http://en.wikipedia.org/wiki/Real-time_Transport_Protocol