1 / 64

Ö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. Konfigurera en flödesmätare med information från SIP-signaleringen Mäta en multimediasessions datatrafik med flödesmätaren

Download Presentation

Övervakning av kvalitet för SIP-baserad kommunikation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 ProtocolSIP-servrar • Tar emot SIP förfrågningar och svarar på dessa • SIP-servertyper • Proxy • Omdirigering • Registrering

  7. 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

  8. 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

  9. 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

  10. 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

  11. Ethereal • Passivt mätverktyg • Protokollanalysator • Använder sig av: • libpcap i Linux • Winpcap i Windows

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

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

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

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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. Protoypen: Lösning 1Klienten gör statistikinsamling

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

  33. Protoypen: Lösning 1Huvudprogrammet 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

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

  35. Protoypen: Lösning 1Subrutinen 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

  36. Vänta på relevant SIP-meddelande INVITE Hämta och lagra sändarens IP, mediaport och Call-ID Skapa SRL-filen och kompilera denna CANCEL, 486 Busy Here, 480 Temporarily Unavailable, 603 Declined eller 404 Not Found Vänta på nästa relevanta SIP-meddelande 180 Ringing Ta bort SRL- och regelfilerna plus rensa satta variabler Hämta destinationens IP CANCEL, 486 Busy Here eller 603 Declined Vänta på nästa relevanta SIP-meddelande 200 OK Starta NeMaC-instanser mot sändarens och mottagarens NeTraMet Starta UDP-generatorn mot mottagarens port 7 Mätning pågår BYE Stoppa NeMaC-instanserna och UDP-generatorn

  37. Protoypen: Lösning 1Subrutinerna 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

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

  39. Protoypen: Lösning 2 SIP-servern gör statistikinsamling • 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

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

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

  42. Protoypen: Lösning 2Serverskriptet • 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

  43. Vänta på relevant SIP-meddelande INVITE Hämta och lagra sändarens IP, mediaporten och Call-ID Skapa SRL-filen och kompilera denna CANCEL, 486 Busy Here, 480 Temporarily Unavailble, 603 Declined eller 404 Not Found Vänta på nästa relevanta SIP-meddelande 180 Ringing Ta bort SRL- och regelfilerna plus rensa satta variabler Hämta destinationens IP CANCEL, 486 Busy Here eller 603 Declined Vänta på nästa relevanta SIP-meddelande 200 OK Starta NeMaC-instanser mot sändarens och mottagarens NeTraMet Mätning pågår BYE Stoppa NeMaC-instanserna

  44. Mätning av trafik • Mätning för att testa prototypen • IP-telefonisamtal mellan Haninge och Karlskrona

  45. 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

  46. 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

  47. Mätning av trafikParametrar 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

  48. Resultat av mätningFö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

  49. Resultat av mätningFördröjning

  50. Resultat av mätningFördröjning

More Related