Presentation laddar. Vänta.

Presentation laddar. Vänta.

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

Liknande presentationer


En presentation över ämnet: "Övervakning av kvalitet för SIP-baserad kommunikation Magisterarbete i Datornätverk gjort på KTH Syd av Emma Roos Handledare: Thomas Lindh."— Presentationens avskrift:

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

2 Projektbeskrivning  Konfigurera en flödesmätare med information från SIP-signaleringen  Mäta en multimediasessions datatrafik med flödesmätaren  Delar i examensjobbet:  Konfigurering av SIP-server och klienter  SIP-laboration  Undersökning av flödesmätaren NeTraMet  Utveckling av prototyp  Testning av prototyp

3 IP-telefoni  Telefoni över datornätverk  Varför IP-telefoni i stället för vanlig telefoni?  Finns två standarder/inriktningar  IETF (SIP, RTP)  ITU-T (H.232)

4 SIP – Session Initiation Protocol  Signaleringsprotokoll på applikationsnivå  Transportprotokoll: UDP eller TCP  Hanterar signalering mellan klient och server  Koppla upp och ner mediasessioner  Informera om ändringar i en existerande mediasession  SIP Klient kallas ”User Agent” (UA)  Klientdel UAC  Serverdel UAS

5 SIP – Session Initiation Protocol  Meddelandetyper i SIP:  Metoder (INVITE, BYE m.fl.)  Svarskoder (180 Ringing, 200 OK m.fl.)  Ett SIP-meddelande består av:  SIP-huvud  Eventuell datadel skriven i SDP (Session Description Protocol)

6 SIP – Session Initiation Protocol 100 Trying INVITE 180 Ringing 200 OK UAC UAS ACK 200 OK BYE INVITE - transaktion BYE - transaktion Dialog

7 SIP – Session Initiation Protocol SIP-servrar  Tar emot SIP förfrågningar och svarar på dessa  SIP-servertyper  Proxy  Omdirigering  Registrering

8 RTP – Real-time Transport Protocol  Används av datatrafiken i en mediasession  Klarar av flera mediatyper  Transportprotokoll: UDP  Har ingen QoS  RTP-port, kodeks etc. definieras i SIP- signaleringen

9 SER – SIP Express Router  SIP-serverprogramvara utvecklad av iptel.org  Klarar av alla tre servertyperna  Uppbyggnad:  Enkla grundfunktioner  Kan byggas ut med hjälp av moduler  Konfigureras med C-liknande skriptspråk  Verktyg:  serweb  serctl

10 Trafikmätningar  Varför?  Se hur ett nätverk mår  Se om nätverket behöver uppgraderas  Se om Service Level Agreement följs  Vad mäts vanligtvis?  Fördröjning (envägs och tur-och-retur)  Fördröjningsvariation (jitter)  Paketförluster  Genomströmning

11 Trafikmätningar  Två typer av mätmetoder  Passiva  Aktiva  Dessa typer kan kombineras  Aktivt: Fördröjningar och fördröjningsvariation  Passivt: Paketförluster och genomströmning

12 Ethereal  Passivt mätverktyg  Protokollanalysator  Använder sig av:  libpcap i Linux  Winpcap i Windows

13 Flödesmätaren NeTraMet  Passivt mätverktyg  Mäter trafikflöden mellan två ändpunkter i ett nätverk  Tre adressattribut definierar ett flöde:  ”Adjacent”  ”Peer”  ”Transport”  Flödena definieras med regler  Reglerna skrivs i SRL - Simple Ruleset Language  Datastrukturen definierad med SNMP MIBar

14 Flödesmätaren NeTraMet  Programmet NeMaC  Administrerar NeTraMet instanser  Hämtar data från de noder som kör NeTraMet  Information som NeTraMet sparar:  Id-nummer för flödet  Typ av flöde  Sändar- och destinationsadresser  Antal paket och bytes som skickats och kommit in

15 Flödesmätaren NeTraMet OAM-version  OAM – Operations Administration and Maintenance  Kombinerar passiv och aktiv mätning  Använder monitoreringspaket (OAM-paket)  En grupp flöden kopplas till ett flöde med OAM- paket  Gruppen identifieras med ett grupp-id  Extra information som sparas:  Tidstämpel när ett OAM-paket kommer in  Antal OAM-paket som skickats sen förra hämtningen av NeMaC

16 SIP-laboration  Mål:  Få en översikt hur SIP fungerar  Se vilken signaleringsinformation som kan användas vid kvalitetsövervakning  Hur ska signaleringsinformationen tas tillvara  Koppla upp samtal mellan två klienter via en SIP-server  Spela in SIP- och RTP-trafiken som utväxlas

17 SIP-laboration: Upplägg  SIP Server  Operativsystem: Fedora Core 2  SIP-serverprogamvara: SIP Express Router (SER)  SIP Klienter  Operativsystem: Fedora Core 2 och Windows XP Professional  SIP-klientprogramvara: Linphone och Kphone (plus X-Lite, Windows Messenger 5.1 och SJ Phone).  Trafiken spelades in och analyserades i Ethereal

18 SIP-laboration: Trafikfall  Registrering av klient med SIP-servern  Samtal mellan två parter  Samtal som ej besvaras  Uppringande part lägger på  Uppringd är upptagen eller avbryter (genom aktivt beslut)  Uppringd gör ingenting  Försök att ringa part som ej är registrerad med SIP- servern  Samtal där någon av parterna pausar samtalet  Tredje part ringer upp någon som redan är i samtal  Andra scenarion och inställningar

19 SIP-laboration: Trafikfall Samtal mellan två parter Klient BSIP-proxy INVITE 100 Trying 180 Ringing 200 OK ACK RTP Trafik (går ej genom proxy) BYE ACK A ringer upp B B svarar Klient A Samtalet avslutas Klient BSIP-proxy INVITE 100 Trying 180 Ringing 200 OK ACK RTP Trafik (går ej genom proxy) BYE ACK A ringer upp B B svarar Klient A Samtalet avslutas Med ”record route” Utan ”record route”

20 SIP-laboration: Trafikfall Samtal som ej besvaras Klient A Klient B SIP-Proxy INVITE 100 Trying 180 Ringing A ringer upp B CANCEL 200 Canceling 200 OK 487 Request Terminated ACK Uppringningsförsöket avbryts av uppringaren A Uppringaren lägger på

21 SIP-laboration: Trafikfall Samtal som ej besvaras Klient AKlient B SIP-Proxy INVITE 100 Trying 180 Ringing A ringer upp B 486 Busy Here/603 Decline ACK Uppringsninsförsöket avbryts av mottagaren, B. Klient A Klient B SIP-Proxy INVITE 100 Trying 180 Ringing A ringer upp B 408 Request Timeout CANCEL ACK 487 Request Terminated 200 OK ACK Uppringsninsförsöket avbryts av proxyn efter em viss tid Proxy-timeouttid (tex 120s) Uppringd är upptagen eller avbryter genom aktivt beslut Uppringd gör ingenting

22 SIP-laboration: Information i signaleringmeddelandena  Användare (”From”- och ”To”-raderna)  Klientadresser (”Contact”-raden)  Call-ID  CSeq  Media information i SDP-datadelen  Mediatyp  Protokoll  Format (kodek)  RTP-port

23 SIP-laboration: Parametrar som kan användas vid kvalitetsmätning  Uppkopplingsstatistik  Misslyckade/avbrutna försök att starta upp ett samtal  Samtalsspärr  Upptagen mottagare  Mottagaren svarar ej  Uppringaren lagt på luren innan svar  Mottagare temporärt oåtkomlig  Ej registrerad mottagare  Uppkopplingstid

24 Undersökning av NeTraMet  Första test:  SRL-skript från annat examensarbete  Både datatrafiken och OAM-paket genererades med ping  Första omskrivning av SRL-skript  Datatrafiken av typ UDP  Både sändar- och mottagaradresser och portar definierades  Andra omskrivningen av SRL-skriptet  Även OAM-paketen av typ UDP  Bara sändarens adress och portar definierats

25 Generering av OAM-paket  OAM-paket behöver vara:  Ha UDP som transportprotokoll  Ha samma storlek som datapaketen  Varför?  RTP kör UDP med en viss storlek på paketen  Eventuella olika prioriteter i nätverket  Tre metoder att generera OAM-paket testades:  UDP Ping logger  Perl-skript  NTools paketgenerator ngen

26 Generering av OAM-paket  UDP Ping Logger  Nerdlabs Consulting  Skickar ett UDP-paket i sekunden  Går ej att definiera hur ofta paketen ska skickas eller hur stora de ska vara  Perl-skript  Använder Net::Ping och Time::HiRes  Går inte att definiera vilken port paketen ska sändas från

27 Generering av OAM-paket NTools paketgenerator – ngen  Norbert Vegh på TeliaSonera AB R & B  Kan generera både UDP- och TCP- strömmar  Går att definiera:  Hur stora paketen ska vara  Hur ofta de ska skickas  Vilken port de ska skickas från och mot

28 Undersökning av NeTraMet (igen) Testning av SRL-skript  Samtal mellan två SIP-klienter sattes upp  RTP-portarna definierades i SIP-klientprogramvaran  OAM-paketen genererades med ngen  Hastighet 1 paket per 10:e sekund  Mottagardatorns port: echo-porten (7)  Första test  NeTraMet bara på sändardatorn  En instans av NeMaC  Andra test  NeTraMet på båda datorerna  Två NeMaC instanser på sändardatorn

29 Utveckling av prototyp: SIP-information för konfigurering av trafikmätningen  Typ av SIP-meddelande  Metod såsom INVITE, BYE etc eller  Svarskod tex 180 Ringing, 200 OK etc  Klienternas IP-adresser  Sändaren: Contact-raden i INVITE-meddelandet  Mottagaren: Contact-raden i 180 Ringing meddelandet  Samtalets Call-ID  Från INVITE-meddelandet  Sändarens RTP-port  Från SDP-data i INVITE-meddelandet

30 Utveckling av prototyp: Prototypens funktion  Prototypen ska:  Se att ett samtal håller på att kopplas upp  Hämta nödvändig information från signaleringen  Skapa SRL-filen och kompilera den  Starta två instanser av NeMaC  Starta UDP-generatorn  Stoppa mätningen när samtalet kopplas ner

31 Utveckling av prototyp: Prototypens uppbyggnad  Skriven i Perl  Använder sig av modulerna:  Net::PcapUtils  NetPacket  Finns i två varianter där:  Klienten gör statistikinsamlandet  SIP-servern gör statistikinsamlandet

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

33 Protoypen: Lösning 1 Perlskriptets delar  Importering av Perlmoduler  Definiering av globala variabler  Subrutinen createconfig()  Subrutinen siphandler()  Subrutinen get_callid()  Subrutinen got_a_packet()  Huvudprogrammet

34 Protoypen: Lösning 1 Huvudprogrammet och subrutinen got_a_packet()  Huvudprogrammet  Öppnar upp nätverkskortet för insamlande av UDP- paket  Om ett UDP-paket så skickas detta till got_a_packet()  Subrutinen got_a_packet  Kontrollerar om ett paket är ett SIP-paket  Om detta är fallet så avkodas paketet  Viktig information om SIP-paketet läggs in i variabler

35 Protoypen: Lösning 1 Nej Ja Start Hämta UDP-paket Är paketet ett SIP-paket? Gå till siphandler- subrutinen

36 Protoypen: Lösning 1 Subrutinen siphandler()  Består av algoritmen som hanterar de inkommande SIP-meddelanderna  Startar endast mätningar för samtal från den dator specificerats vid programstart  Om mätning ska göras så:  Skapas SRL-filen  Starta NeMaC och OAM-paketgeneratorn vid samtalets start

37 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

38 Protoypen: Lösning 1 Subrutinerna createconf() och getcallid()  Anropas från subrutinen siphandler()  Subrutinen createconf()  Skapa SRL-fil med de inställningar som tagits from SIP-meddelanderna  Kompilera SRL-filen  Subrutinen getcallid()  Hämta ett SIP-meddelandes Call-ID

39 Protoypen: Lösning 2 SIP-servern gör statistikinsamling

40  Bygger i stor del på lösning 1  ”Record-route” måste vara satt på SIP- servern  Två olika skript  Klientskript som körs på SIP-klienterna  Serverskript som körs på SIP-servern

41 Protoypen: Lösning 2 Klientskriptet  Hämtar vid uppstart av ett samtal som ska mätas  Call-ID  Mottagarens IP-nummer  Startar UDP-generatorn vid samtalets start

42 CANCEL, 486 Busy Here eller 603 Declined Mätning pågår CANCEL, 486 Busy Here, 480 Temporarily Unavailble, 603 Declined eller 404 Not Found INVITE Hämta och lagra Call-ID Vänta på nästa relevanta SIP-meddelande 180 Ringing Hämta destinationens IP Vänta på nästa relevanta SIP-meddelande Rensa satta variabler 200 OK Starta UDP-generatorn mot mottagarens port 7 Stoppa UDP-generatorn Vänta på relevant SIP-meddelande BYE

43 Protoypen: Lösning 2 Serverskriptet  En instans per dator, vars trafik ska mätas, körs  Hämtar information om klienten som startar samtalet  Skapar SRL-fil och kompilerar den  Startar NeMaC vid samtalets start

44 Mätning pågår CANCEL, 486 Busy Here eller 603 Declined CANCEL, 486 Busy Here, 480 Temporarily Unavailble, 603 Declined eller 404 Not Found INVITE Hämta och lagra sändarens IP, mediaporten och Call-ID Skapa SRL-filen och kompilera denna Vänta på nästa relevanta SIP-meddelande 180 Ringing 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 200 OK Stoppa NeMaC-instanserna Vänta på relevant SIP-meddelande BYE

45 Mätning av trafik  Mätning för att testa prototypen  IP-telefonisamtal mellan Haninge och Karlskrona

46 Mätning av trafik  Samtal initierades från Karlskrona  Samtalstid ca 5 minuter  Resultat skrevs i två flödesfiler  Fyra tidstämplar per OAM-paket  OAM-paket skickades 1 gång i sekunden

47 Mätning av trafik  Information som ficks i flödesfilerna  OAM-paketets ID-värde  Tidstämpel  Bytes RTP-trafik in och ut från datorn  Antal RTP-paket in och ut från datorn

48 Mätning av trafik Parametrar som räknades ut  Fördröjning  Round Trip Time (RTT)  Processeringstid  ”Exakt” RTT”  Envägsfördröjning  Drift i klockorna (NTP användes)  Fördröjningsvariation  ITU-T:s definition  IETF:s definition  Genomströmning per övervakningsblock

49 Resultat av mätning Fördröjning  Räknades ut med hjälp av tidstämplar  RTT: t4-t1  Processeringstid: t3-t2  ”Exakt” RTT: t4-t1-(t3-t2)  Fördröjning Karlskrona -> Haninge: t2-t1  Fördröjning Haninge -> Karlskrona: t4-t3 RTTProcesseringstid”Exakt” RTT Medelvärde13,56 ms0,861 ms12,699 ms Standardavvikelse1,835 ms1,732 ms0,533 ms Maxvärde23,89 ms11,179 ms14,946 ms Minvärde11,694 ms0,363 ms11,266 ms

50 Resultat av mätning Fördröjning

51

52

53  Mindre spridning på värdena när ”exakt” RTT används  Processeringstiden har stor påverkan  Port 7 har lägre prioritet  Program på datorn som påverkar  En idé är att hitta eller utveckla en annan lösning för OAM-paketen  Toppen innan huvudtoppen dyker upp från Haninge till Karlskrona

54 Resultat av mätning Fördröjningsvariation  Räknades ut med värdena för ”exakt” RTT  ITU-T:s metod  d(i)-medel(d) (eller d(i)-min(d))  IETF:s metod  d(i)-d(i-1) Fördröjningsvariation, ITU-TFördröjningsvariation, IETF Medelvärde0 ms0,004 ms Standardavvikelse0,533 ms0,756 ms Maxvärde2,248 ms2,352 ms Minvärde-1,433 ms-2,225 ms

55 Resultat av mätning Fördröjningsvariation

56  ITU-T:s fördröjningsvariation  Samma sannolikhetsfördelning som ”exakt” RTT  IETF:s fördröjningvariation  Jämnt fördelat runt medelvärdet

57 Resultat av mätning Genomströmning  Genomströmning per övervakningsblock  (bytes(i-1,i)*8)/(tid(i)-tid(i-1)) GenomströmningKarlskrona -> HaningeHaninge -> Karlskrona Medelvärde85,459 kbps85,598 kbps Standardavvikelse0,585 kbps1,258 kbps Maxvärde87,32 kbps88,068 kbps Minvärde82,144 kbps82,938 kbps

58 Resultat av mätning Genomströmning

59  Jämn genomströmning  Beror på att RTP skickar små paket med konstant hastighet  Tappas inga eller få paket

60 Resultat av mätning Paketförluster  Ingen eller mycket låga paketförluster  Går inte att beräkna tappade paket per övervakningsblock  Olika numrering på paket  Brist på synkronisering  Går att räkna ut totalt tappade paket

61 Diskussion och slutsatser  Serverversionen av prototypen  Användas av operatör  Record Route måste vara satt  Definition av vilka samtal ska mätas  Klientversionen av prototypen  Eventuellt finna lösning för att:  Skicka mätdata till en central lagringsplats eller  Hämta mätdata från klienterna  Problem med att använda ngen som OAM- paketgenerator

62 Diskussion och slutsatser  Problem med tidstämplingens noggrannhet  Tidstämpling görs i programmet ej på nätverkskortet  Lösning: kompletterande mätningar mellan kantnoder  Synkronisering av klockor görs med NTP  Påverkar envägsfördröjningar  Tur-och-retur fördröjningar troligtvis tillräckligt  GPS ingen lösning  Extra hårdvara behövs  Alternativ metod att mäta trafikkvalitet: RTCP-XR  Använder rapporter från RTCP  Kan bara mäta RTP-trafik

63 Diskussion och slutsatser Idéer för att förbättra prototypen  Skriva om källkod så:  Server- och klientversionerna finns i samma program  Andra mediatyper än audio hanteras  Information om missade samtal etc. sparas  Utveckla program som behandlar och redovisar flödesfilerna  Utveckla en bättre metod att generera OAM-paketen

64 Sammanfattning  Hämta information från SIP för att:  Få statistik om samtal  Konfigurera mätning med flödesmätare  SIP-laboration  Undersökning av NeTraMet och hur OAM-paket ska genereras  Utveckling av prototyp i Perl  Klientversion  Serverversion  Mätning gjord med prototypen

65 Frågor?


Ladda ner ppt "Övervakning av kvalitet för SIP-baserad kommunikation Magisterarbete i Datornätverk gjort på KTH Syd av Emma Roos Handledare: Thomas Lindh."

Liknande presentationer


Google-annonser