Ö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
Embed
Övervakning av kvalitet för SIP-baserad kommunikation
Ö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
Ö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
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
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
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
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
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
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
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
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.
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
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
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
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
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
Prototypen: Lösning 1Prototypen: Lösning 1Perlskriptets delarPerlskriptets delar
Importering av PerlmodulerImportering av Perlmoduler Definiering av globala variablerDefiniering av globala variabler HuvudprogrammetHuvudprogrammet Subrutiner: Subrutiner:
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
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
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
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
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
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
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
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
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
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
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
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))
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
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
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
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