Top Banner
Övervakning av Övervakning av kvalitet för SIP- kvalitet för SIP- baserad kommunikation baserad kommunikation Magisterarbete i Magisterarbete i Datornätverk gjort på KTH Datornätverk gjort på KTH Syd av Emma Roos Syd av Emma Roos Handledare: Thomas Lindh Handledare: Thomas Lindh
32

Övervakning av kvalitet för SIP-baserad kommunikation

Mar 19, 2016

Download

Documents

Avani

Övervakning av kvalitet för SIP-baserad kommunikation. Magisterarbete i Datornätverk gjort på KTH Syd av Emma Roos Handledare: Thomas Lindh. Projektbeskrivning. Titta på en multimediasessions signaleringsinformation för att: Få statistik om sessionen - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Övervakning av kvalitet för SIP-baserad kommunikation

Övervakning av kvalitet för Övervakning av kvalitet för SIP-baserad kommunikationSIP-baserad kommunikation

Magisterarbete i Datornätverk Magisterarbete i Datornätverk gjort på KTH Syd av Emma Roosgjort på KTH Syd av Emma Roos

Handledare: Thomas LindhHandledare: Thomas Lindh

Page 2: Övervakning av kvalitet för SIP-baserad kommunikation

ProjektbeskrivningProjektbeskrivning Titta på en multimediasessions Titta på en multimediasessions

signaleringsinformation för att:signaleringsinformation för att: Få statistik om sessionenFå statistik om sessionen Konfigurera mätning av datatrafikens kvalitéKonfigurera mätning av datatrafikens kvalité

Datatrafiken ska mätas med en flödesmätareDatatrafiken ska mätas med en flödesmätare I arbetet skulle det:I arbetet skulle det:

SIP och flödesmätaren NeTraMet undesökasSIP och flödesmätaren NeTraMet undesökas Utveckla en prototyp som tar information från SIP och Utveckla en prototyp som tar information från SIP och

konfigurerar en mätning med denna informationkonfigurerar en mätning med denna information Testa prototypen i en mätningTesta prototypen i en mätning

Page 3: Övervakning av kvalitet för SIP-baserad kommunikation

SIP – Session SIP – Session Initiation ProtocolInitiation Protocol

Signaleringsprotokoll på applikationsnivåSignaleringsprotokoll på applikationsnivå Kopplar upp och ner mediasessionerKopplar upp och ner mediasessioner Informerar om ändringar i en mediasessionInformerar om ändringar i en mediasession

Olika SIP-servertyperOlika SIP-servertyper ProxyProxy OmdirigeringOmdirigering RegistreringRegistrering

SIP Express Router - SERSIP Express Router - SER

Page 4: Övervakning av kvalitet för SIP-baserad kommunikation

RTP - Real-time Transport ProtocolRTP - Real-time Transport Protocol

Används av datatrafiken i en Används av datatrafiken i en mediasessionmediasession

Klarar av flera mediatyperKlarar av flera mediatyper Transportprotokoll: UDPTransportprotokoll: UDP

Page 5: Övervakning av kvalitet för SIP-baserad kommunikation

SIP-laborationSIP-laboration Mål:Mål:

Få en översikt hur SIP fungerarFå en översikt hur SIP fungerar Se vilken signaleringsinformation som kan Se vilken signaleringsinformation som kan

användas vid kvalitetsövervakninganvändas vid kvalitetsövervakning Koppla upp olika trafikfall mellan klienter Koppla upp olika trafikfall mellan klienter

via en SIP-servervia en SIP-server Spela in SIP- och RTP-trafikenSpela in SIP- och RTP-trafiken

Page 6: Övervakning av kvalitet för SIP-baserad kommunikation

SIP-laboration: SIP-laboration: Exempel på meddelandeutbytenExempel på meddelandeutbyten

Klient BSIP-proxy

INVITEINVITE

100 Trying100 Trying

180 Ringing180 Ringing

200 OK200 OK

ACK ACK

RTP Trafik(går ej genom proxy)

BYE BYE

ACKACK

A ri

nger

up

p B

B s

vara

r

Klient A

Samtalet avslutas

Samtal mellan två parter, med ”record route”

Klient A Klient BSIP-Proxy

INVITEINVITE

100 Trying100 Trying

180 Ringing180 Ringing

A ringer upp B

486 Busy Here/603 Decline

486 Busy Here/603 Decline ACK

ACK

Upp

rings

nins

förs

öket

av

bryt

s av

m

otta

gare

n, B

.

Uppringd är upptagen eller avbryter genom aktivt beslut

Page 7: Övervakning av kvalitet för SIP-baserad kommunikation

SIP-laboration: Nyttig information i SIP-laboration: Nyttig information i signaleringsmeddelandenasignaleringsmeddelandena

Typ av SIP-meddelandeTyp av SIP-meddelande Klienternas IP-adresser (”Contact”-raden)Klienternas IP-adresser (”Contact”-raden) Call-IDCall-ID Mediainformation i SDP-datadelenMediainformation i SDP-datadelen

MediatypMediatyp Protokoll (RTP)Protokoll (RTP) RTP-portRTP-port

Page 8: Övervakning av kvalitet för SIP-baserad kommunikation

Flödesmätaren NeTraMet Flödesmätaren NeTraMet OAM-versionOAM-version

Mäter trafikflöden mellan två ändpunkterMäter trafikflöden mellan två ändpunkter Flödena definieras t.ex. med IP-adresser, Flödena definieras t.ex. med IP-adresser,

protokolltyp och portarprotokolltyp och portar Operations Administration and MaintenanceOperations Administration and Maintenance Kombinerar passiv och aktiv mätningKombinerar passiv och aktiv mätning Använder monitoreringspaket (OAM-paket)Använder monitoreringspaket (OAM-paket) Inkommande OAM-paket triggar mätningInkommande OAM-paket triggar mätning Programmet NeMaCProgrammet NeMaC

Administrerar NeTraMet Administrerar NeTraMet Hämtar trafikstatistik från NeTraMetHämtar trafikstatistik från NeTraMet

Page 9: Övervakning av kvalitet för SIP-baserad kommunikation

Undersökning av NeTraMetUndersökning av NeTraMet

SRL-skript från annat examensarbete som SRL-skript från annat examensarbete som skrevs omskrevs om Datatrafiken och OAM-paketen ändrades från Datatrafiken och OAM-paketen ändrades från

ICMP till UDPICMP till UDP Bara sändarens IP-adress och portar Bara sändarens IP-adress och portar

definieradesdefinierades Hur ska OAM-paket ska genereras?Hur ska OAM-paket ska genereras? Test av SRL-skript och OAM-generering.Test av SRL-skript och OAM-generering.

Page 10: Övervakning av kvalitet för SIP-baserad kommunikation

Undersökning av NeTraMet:Undersökning av NeTraMet:Generering av OAM-paketGenerering av OAM-paket

OAM-paket behöver: OAM-paket behöver: Ha UDP som transportprotokollHa UDP som transportprotokoll Ha samma storlek som datapaketenHa samma storlek som datapaketen Svar skickas tillbaka från mottagarenSvar skickas tillbaka från mottagaren

Lösning:Lösning: Paketen genererades med ngenPaketen genererades med ngen Skicka paketen mot mottagarens port 7Skicka paketen mot mottagarens port 7

Page 11: Övervakning av kvalitet för SIP-baserad kommunikation

Utveckling av prototyp:Utveckling av prototyp:Prototypens funktionPrototypens funktion

Prototypen ska:Prototypen ska: Se att ett samtal håller på att kopplas uppSe att ett samtal håller på att kopplas upp Hämta nödvändig information från signaleringenHämta nödvändig information från signaleringen Skapa SRL-filen och kompilera denSkapa SRL-filen och kompilera den När mottagaren svararNär mottagaren svarar

Starta två instanser av NeMaCStarta två instanser av NeMaC Starta OAM-paketgeneratornStarta OAM-paketgeneratorn

Stoppa mätningen när samtalet kopplas nerStoppa mätningen när samtalet kopplas ner

Page 12: Övervakning av kvalitet för SIP-baserad kommunikation

Utveckling av prototyp:Utveckling av prototyp:Prototypens uppbyggnadPrototypens uppbyggnad

Skriven i PerlSkriven i Perl Använder sig av modulerna:Använder sig av modulerna:

Net::PcapUtilsNet::PcapUtils NetPacketNetPacket

Finns i två varianter där:Finns i två varianter där: Klienten gör statistikinsamlandetKlienten gör statistikinsamlandet SIP-servern gör statistikinsamlandetSIP-servern gör statistikinsamlandet

Page 13: Övervakning av kvalitet för SIP-baserad kommunikation

Protoypen: Lösning 1Protoypen: Lösning 1Klienten gör statistikinsamlingKlienten gör statistikinsamling

SIP Klient SIP KlientDatornätverk

NeTraMetNeTraMetsip-nemac.pl

(NeMaC x2)(UDP-generator)

Uppringaren Den uppringde

SIP-proxy

Page 14: Övervakning av kvalitet för SIP-baserad kommunikation

Prototypen: Lösning 1Prototypen: Lösning 1 Programmet i stora drag Programmet i stora drag

Nej

Ja

StartHämta UDP-paket

Är paketet ett SIP-paket?

Gå till siphandler-subrutinen

Avkoda paketet

Page 15: Övervakning av kvalitet för SIP-baserad kommunikation

Prototypen: Lösning 1Prototypen: Lösning 1Perlskriptets delarPerlskriptets delar

Importering av PerlmodulerImportering av Perlmoduler Definiering av globala variablerDefiniering av globala variabler HuvudprogrammetHuvudprogrammet Subrutiner: Subrutiner:

got_a_packet()got_a_packet() siphandler()siphandler() createconfig()createconfig() get_callid()get_callid()

Page 16: Övervakning av kvalitet för SIP-baserad kommunikation

Prototypen: Lösning 1Prototypen: Lösning 1Subrutinen siphandler()Subrutinen siphandler()

Har algoritmen som hanterar SIP-Har algoritmen som hanterar SIP-meddelandenameddelandena

Startar endast mätningar för samtal från Startar endast mätningar för samtal från en specifik klienten specifik klient

Page 17: Övervakning av kvalitet för SIP-baserad kommunikation

Mätning pågår

CANCEL, 486 Busy Here eller 603 Declined

CANCEL, 486 Busy Here, 480 Temporarily Unavailable, 603 Declined eller 404 Not Found

INVITE

180 Ringing

200 OK

BYE

Hämta och lagra sändarens IP, mediaport och Call-ID

Skapa SRL-filen och kompilera denna

Vänta på nästa relevanta SIP-meddelande

Hämta destinationens IP

Vänta på nästa relevanta SIP-meddelande

Ta bort SRL- och regelfilerna plus rensa satta variabler

Starta NeMaC-instanser mot sändarens och mottagarens NeTraMet

Starta UDP-generatorn mot mottagarens port 7

Stoppa NeMaC-instanserna och UDP-generatorn

Vänta på relevant SIP-meddelande

Page 18: Övervakning av kvalitet för SIP-baserad kommunikation

Prototypen: Lösning 2Prototypen: Lösning 2SIP-servern gör statistikinsamlingSIP-servern gör statistikinsamling

SIP Klient SIP KlientDatornätverk

NeTraMetNeTraMet

sip-nemac-server.plNeMaC x2

sip-nemac-client.plUDP-generator

Uppringaren Den uppringde

SIP-proxy

Bygger i stor del på lösning 1Bygger i stor del på lösning 1 ””Record-route” måste vara satt på proxynRecord-route” måste vara satt på proxyn

Page 19: Övervakning av kvalitet för SIP-baserad kommunikation

Mätning av trafikMätning av trafik Mätning för att testa prototypenMätning för att testa prototypen IP-telefonisamtal mellan Haninge och KarlskronaIP-telefonisamtal mellan Haninge och Karlskrona

Sunet BTHs nätverkKTHs nätverkSYSTEM

RPS

STATUSDUPLTXSPEEDLINE PW

M O D

1 1 X

1 2 X 1 4 X

1 3 X 2 3 X

2 4 X

1 X

2 X

RouterRX 1TX 1

RX 2TX 2

RX 3TX 3

RX 4TX 4

SwitchIP-telefoniklient

IP-telefoniklient

RX 1TX 1

RX 2TX 2

RX 3TX 3

RX 4TX 4

Switch

Haninge Karlskrona(Campus Haninge, KTH Syd)(Datorföreningen FUKT, RSN)

SIP server

SER

NeTraMetLinphone

NeTraMetsip-nemac.plKPhone

Page 20: Övervakning av kvalitet för SIP-baserad kommunikation

Mätning av trafikMätning av trafik Samtal initierades från KarlskronaSamtal initierades från Karlskrona Samtalstid ca 5 minuterSamtalstid ca 5 minuter Ett OAM-paket i sekunden skickadesEtt OAM-paket i sekunden skickades Resultat skrevs i två flödesfilerResultat skrevs i två flödesfiler Information som ficks i flödesfilernaInformation som ficks i flödesfilerna

OAM-paketets ID-värdeOAM-paketets ID-värde TidstämpelTidstämpel Antal bytes RTP-trafik in och utAntal bytes RTP-trafik in och ut Antal RTP-paket in och ut Antal RTP-paket in och ut

Page 21: Övervakning av kvalitet för SIP-baserad kommunikation

Mätning av trafikMätning av trafik

Fyra tidstämplar per OAM-paketFyra tidstämplar per OAM-paket

Klient i HaningeKlient i Karlskrona

t1 t2

t4 t3

UDP-pingförfrågan

UDP-pingsvar

Page 22: Övervakning av kvalitet för SIP-baserad kommunikation

Resultat av mätningResultat av mätningFördröjningFördröjning

Räknades ut med hjälp av tidstämplarRäknades ut med hjälp av tidstämplar RTT: t4-t1RTT: t4-t1 Processeringstid: t3-t2Processeringstid: t3-t2 ””Exakt” RTT: t4-t1-(t3-t2)Exakt” RTT: t4-t1-(t3-t2) Fördröjning Karlskrona -> Haninge: t2-t1Fördröjning Karlskrona -> Haninge: t2-t1 Fördröjning Haninge -> Karlskrona: t4-t3Fördröjning Haninge -> Karlskrona: t4-t3

RTT Processeringstid ”Exakt” RTT

Medelvärde 13,56 ms 0,861 ms 12,699 ms

Standardavvikelse 1,835 ms 1,732 ms 0,533 ms

Maxvärde 23,89 ms 11,179 ms 14,946 ms

Minvärde 11,694 ms 0,363 ms 11,266 ms

Page 23: Övervakning av kvalitet för SIP-baserad kommunikation

Resultat av mätningResultat av mätningFördröjningFördröjning

Histogram över "exakt" RTT för trafik mellan Karlskrona och Haninge

0,00

0,02

0,04

0,06

0,08

0,10

0,12

0,14

11 11,5 12 12,5 13 13,5 14 14,5 15

RTT (utan processtid) i ms

Rel

ativ

frek

vens

Histogram på RTT för trafik mellan Karlskrona och Haninge

0,00

0,02

0,04

0,06

0,08

0,10

0,12

RTT i ms

Rel

ativ

frek

vens

Mindre spridning på värdena när ”exakt” Mindre spridning på värdena när ”exakt” RTT användsRTT används

Page 24: Övervakning av kvalitet för SIP-baserad kommunikation

Resultat av mätningResultat av mätningFördröjningFördröjning

Processeringstiden har stor påverkan på Processeringstiden har stor påverkan på RTT:nRTT:n

Histogram över processeringstiden i Haninge noden för OAM-paketen

0,0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1,0

Processeringstid i ms

Rel

ativ

frek

vens

0,0

5,0

10,0

15,0

20,0

25,0

30,0

0 50 100 150 200 250 300

Monitoreringspaket

Tid

(ms)

RTT

Process tid

'Exakt' RTT

Page 25: Övervakning av kvalitet för SIP-baserad kommunikation

Resultat av mätningResultat av mätningFördröjningsvariationFördröjningsvariation

Räknades ut med värdena för ”exakt” RTTRäknades ut med värdena för ”exakt” RTT ITU-T:s metodITU-T:s metod

d(i)-medel(d) (eller d(i)-min(d))d(i)-medel(d) (eller d(i)-min(d)) IETF:s metodIETF:s metod

d(i)-d(i-1)d(i)-d(i-1)

Fördröjningsvariation, ITU-T Fördröjningsvariation, IETF

Medelvärde 0 ms 0,004 ms

Standardavvikelse 0,533 ms 0,756 ms

Maxvärde 2,248 ms 2,352 ms

Minvärde -1,433 ms -2,225 ms

Page 26: Övervakning av kvalitet för SIP-baserad kommunikation

Resultat av mätningResultat av mätningFördröjningsvariationFördröjningsvariation

Histogram över fördröjningsvariationen (ITU-T) för trafik mellan Karlskrona och Haninge

0,00

0,02

0,04

0,06

0,08

0,10

0,12

0,14

-1,5 -1,0 -0,5 0,0 0,5 1,0 1,5 2,0 2,5

Fördröjningsvariation (ms)

Rel

ativ

frek

vens

Histogram över fördröjningsvariationen (IETF) för trafik mellan Karlskrona och Haninge

0,00

0,01

0,02

0,03

0,04

0,05

0,06

0,07

-2,5 -2,0 -1,5 -1,0 -0,5 0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5

Fördröjningsvariation i ms

Rel

ativ

frek

vens

ITU-T:s fördröjningsvariationITU-T:s fördröjningsvariation Samma sannolikhetsfördelning som ”exakt” RTTSamma sannolikhetsfördelning som ”exakt” RTT

IETF:s fördröjningvariationIETF:s fördröjningvariation Jämnt fördelat runt medelvärdetJämnt fördelat runt medelvärdet

Page 27: Övervakning av kvalitet för SIP-baserad kommunikation

Resultat av mätningResultat av mätningGenomströmningGenomströmning

Genomströmning per övervakningsblockGenomströmning per övervakningsblock (antal_bytes(i-1,i)*8)/(tid(i)-tid(i-1))(antal_bytes(i-1,i)*8)/(tid(i)-tid(i-1))

Genomströmning Karlskrona -> Haninge Haninge -> Karlskrona

Medelvärde 85,459 kbps 85,598 kbps

Standardavvikelse 0,585 kbps 1,258 kbps

Maxvärde 87,32 kbps 88,068 kbps

Minvärde 82,144 kbps 82,938 kbps

Page 28: Övervakning av kvalitet för SIP-baserad kommunikation

Resultat av mätningResultat av mätningGenomströmningGenomströmning

Histogram över för RTP-trafikens genomströmning per övervakningsblock från Karlskrona till Haninge

0,0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

82 82,5 83 83,5 84 84,5 85 85,5 86 86,5 87 87,5

Genomströmning i kbps

Rel

ativ

frek

vens

Histogram över för RTP-trafikens genomströmning per övervakningsblock från Haninge till Karlskrona

0,0

0,1

0,1

0,2

0,2

0,3

0,3

82 82,5 83 83,5 84 84,5 85 85,5 86 86,5 87 87,5 88 88,5

Genomströmning i kbps

Rel

ativ

frek

vens

Jämn genomströmningJämn genomströmning RTP skickar små paket med konstant hastighetRTP skickar små paket med konstant hastighet Tappades inga eller få paketTappades inga eller få paket

Page 29: Övervakning av kvalitet för SIP-baserad kommunikation

Diskussion och slutsatserDiskussion och slutsatser

Problem med att använda ngen mot port 7Problem med att använda ngen mot port 7 Problem med tidstämplingens noggrannhetProblem med tidstämplingens noggrannhet

Tidstämpling görs i programmet ej på Tidstämpling görs i programmet ej på nätverkskortetnätverkskortet

Synkronisering av klockor görs med NTPSynkronisering av klockor görs med NTP GPS ingen lösningGPS ingen lösning

Page 30: Övervakning av kvalitet för SIP-baserad kommunikation

Idéer för att förbättra prototypenIdéer för att förbättra prototypen

Ta fram metod för att välja ut vilka samtal som Ta fram metod för att välja ut vilka samtal som ska mätasska mätas

Skriva om källkod så: Skriva om källkod så: Server- och klientversionerna finns i samma programServer- och klientversionerna finns i samma program Andra mediatyper än audio hanterasAndra mediatyper än audio hanteras Information om missade samtal etc. sparasInformation om missade samtal etc. sparas

Utveckla program som behandlar och redovisar Utveckla program som behandlar och redovisar flödesfilernaflödesfilerna

Utveckla bättre metod att generera OAM-paketUtveckla bättre metod att generera OAM-paket

Page 31: Övervakning av kvalitet för SIP-baserad kommunikation

SammanfattningSammanfattning Hämta information från SIP för att:Hämta information från SIP för att:

Få statistik om samtalFå statistik om samtal Konfigurera mätning med flödesmätareKonfigurera mätning med flödesmätare

SIP-laborationSIP-laboration Undersökning av NeTraMet och hur OAM-paket Undersökning av NeTraMet och hur OAM-paket

ska genererasska genereras Utveckling av prototyp i PerlUtveckling av prototyp i Perl

KlientversionKlientversion ServerversionServerversion

Mätning gjord med prototypenMätning gjord med prototypen

Page 32: Övervakning av kvalitet för SIP-baserad kommunikation

Frågor?Frågor?