64
Ö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

Övervakning av kvalitet för SIP-baserad kommunikation

Embed Size (px)

DESCRIPTION

Ö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 - PowerPoint PPT Presentation

Citation preview

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 Konfigurera en flödesmätare med information Konfigurera en flödesmätare med information

från SIP-signaleringenfrån SIP-signaleringen Mäta en multimediasessions datatrafik med Mäta en multimediasessions datatrafik med

flödesmätarenflödesmätaren Delar i examensjobbet:Delar i examensjobbet:

Konfigurering av SIP-server och klienterKonfigurering av SIP-server och klienter SIP-laborationSIP-laboration Undersökning av flödesmätaren NeTraMetUndersökning av flödesmätaren NeTraMet Utveckling av prototypUtveckling av prototyp Testning av prototypTestning av prototyp

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

IP-telefoniIP-telefoni

Telefoni över datornätverkTelefoni över datornätverk Varför IP-telefoni i stället för vanlig Varför IP-telefoni i stället för vanlig

telefoni?telefoni? Finns två standarder/inriktningarFinns två standarder/inriktningar

IETF (SIP, RTP)IETF (SIP, RTP) ITU-T (H.232)ITU-T (H.232)

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

SIP – Session SIP – Session Initiation ProtocolInitiation Protocol Signaleringsprotokoll på applikationsnivåSignaleringsprotokoll på applikationsnivå Transportprotokoll: UDP eller TCPTransportprotokoll: UDP eller TCP Hanterar signalering mellan klient och serverHanterar signalering mellan klient och server

Koppla upp och ner mediasessionerKoppla upp och ner mediasessioner Informera om ändringar i en existerande Informera om ändringar i en existerande

mediasessionmediasession SIP Klient kallas ”User Agent” (UA)SIP Klient kallas ”User Agent” (UA)

Klientdel UACKlientdel UAC Serverdel UASServerdel UAS

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

SIP – Session SIP – Session Initiation ProtocolInitiation Protocol

Meddelandetyper i SIP:Meddelandetyper i SIP: Metoder (INVITE, BYE m.fl.)Metoder (INVITE, BYE m.fl.) Svarskoder (180 Ringing, 200 OK m.fl.) Svarskoder (180 Ringing, 200 OK m.fl.)

Ett SIP-meddelande består av:Ett SIP-meddelande består av: SIP-huvudSIP-huvud Eventuell datadel skriven i SDP (Session Eventuell datadel skriven i SDP (Session

Description Protocol)Description Protocol)

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

SIP – Session SIP – Session Initiation ProtocolInitiation ProtocolSIP-servrarSIP-servrar

Tar emot SIP förfrågningar och svarar på Tar emot SIP förfrågningar och svarar på dessadessa

SIP-servertyperSIP-servertyper ProxyProxy OmdirigeringOmdirigering RegistreringRegistrering

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

RTP – Real-time Transport RTP – Real-time Transport ProtocolProtocol

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

Klarar av flera mediatyperKlarar av flera mediatyper Transportprotokoll: UDPTransportprotokoll: UDP Har ingen QoSHar ingen QoS RTP-port, kodeks etc. definieras i SIP-RTP-port, kodeks etc. definieras i SIP-

signaleringensignaleringen

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

SER – SIP Express RouterSER – SIP Express Router SIP-serverprogramvara utvecklad av iptel.orgSIP-serverprogramvara utvecklad av iptel.org Klarar av alla tre servertypernaKlarar av alla tre servertyperna Uppbyggnad:Uppbyggnad:

Enkla grundfunktionerEnkla grundfunktioner Kan byggas ut med hjälp av modulerKan byggas ut med hjälp av moduler Konfigureras med C-liknande skriptspråkKonfigureras med C-liknande skriptspråk

Verktyg:Verktyg: serweb serweb serctlserctl

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

TrafikmätningarTrafikmätningar Varför?Varför?

Se hur ett nätverk mårSe hur ett nätverk mår Se om nätverket behöver uppgraderasSe om nätverket behöver uppgraderas Se om Service Level Agreement följsSe om Service Level Agreement följs

Vad mäts vanligtvis?Vad mäts vanligtvis? Fördröjning (envägs och tur-och-retur)Fördröjning (envägs och tur-och-retur) Fördröjningsvariation (jitter)Fördröjningsvariation (jitter) PaketförlusterPaketförluster GenomströmningGenomströmning

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

TrafikmätningarTrafikmätningar

Två typer av mätmetoderTvå typer av mätmetoder PassivaPassiva AktivaAktiva

Dessa typer kan kombinerasDessa typer kan kombineras Aktivt: Fördröjningar och fördröjningsvariation Aktivt: Fördröjningar och fördröjningsvariation Passivt: Paketförluster och genomströmningPassivt: Paketförluster och genomströmning

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

EtherealEthereal

Passivt mätverktygPassivt mätverktyg ProtokollanalysatorProtokollanalysator Använder sig av:Använder sig av:

libpcap i Linuxlibpcap i Linux Winpcap i WindowsWinpcap i Windows

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

Flödesmätaren NeTraMetFlödesmätaren NeTraMet Passivt mätverktygPassivt mätverktyg Mäter trafikflöden mellan två ändpunkter i ett Mäter trafikflöden mellan två ändpunkter i ett

nätverknätverk Tre adressattribut definierar ett flöde:Tre adressattribut definierar ett flöde:

””Adjacent”Adjacent” ””Peer”Peer” ””Transport”Transport”

Flödena definieras med reglerFlödena definieras med regler Reglerna skrivs i SRL - Simple Ruleset Reglerna skrivs i SRL - Simple Ruleset

LanguageLanguage Datastrukturen definierad med SNMP MIBarDatastrukturen definierad med SNMP MIBar

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

Flödesmätaren NeTraMetFlödesmätaren NeTraMet Programmet NeMaCProgrammet NeMaC

Administrerar NeTraMet instanserAdministrerar NeTraMet instanser Hämtar data från de noder som kör NeTraMetHämtar data från de noder som kör NeTraMet

Information som NeTraMet sparar:Information som NeTraMet sparar: Id-nummer för flödetId-nummer för flödet Typ av flödeTyp av flöde Sändar- och destinationsadresserSändar- och destinationsadresser Antal paket och bytes som skickats och Antal paket och bytes som skickats och

kommit inkommit in

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

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

OAM – Operations Administration and OAM – Operations Administration and MaintenanceMaintenance

Kombinerar passiv och aktiv mätningKombinerar passiv och aktiv mätning Använder monitoreringspaket (OAM-paket)Använder monitoreringspaket (OAM-paket) En grupp flöden kopplas till ett flöde med OAM-En grupp flöden kopplas till ett flöde med OAM-

paketpaket Gruppen identifieras med ett grupp-idGruppen identifieras med ett grupp-id Extra information som sparas:Extra information som sparas:

Tidstämpel när ett OAM-paket kommer inTidstämpel när ett OAM-paket kommer in Antal OAM-paket som skickats sen förra hämtningen Antal OAM-paket som skickats sen förra hämtningen

av NeMaCav NeMaC

Page 15: Ö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 Hur ska signaleringsinformationen tas tillvaraHur ska signaleringsinformationen tas tillvara

Koppla upp samtal mellan två klienter via Koppla upp samtal mellan två klienter via en SIP-serveren SIP-server

Spela in SIP- och RTP-trafiken som Spela in SIP- och RTP-trafiken som utväxlasutväxlas

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

SIP-laboration: UppläggSIP-laboration: Upplägg

SIP ServerSIP Server Operativsystem: Fedora Core 2Operativsystem: Fedora Core 2 SIP-serverprogamvara: SIP Express Router (SER)SIP-serverprogamvara: SIP Express Router (SER)

SIP KlienterSIP Klienter Operativsystem: Fedora Core 2 och Windows XP ProfessionalOperativsystem: Fedora Core 2 och Windows XP Professional SIP-klientprogramvara: Linphone och Kphone (plus X-Lite, SIP-klientprogramvara: Linphone och Kphone (plus X-Lite,

Windows Messenger 5.1 och SJ Phone).Windows Messenger 5.1 och SJ Phone). Trafiken spelades in och analyserades i EtherealTrafiken spelades in och analyserades i Ethereal

SIP KlientSIP Klient

RX 1

TX 1

RX 2

TX 2

R X 3

TX 3

R X 4

TX 4

Switch

SIP KlientSIP Server

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

SIP-laboration: TrafikfallSIP-laboration: Trafikfall Registrering av klient med SIP-servernRegistrering av klient med SIP-servern Samtal mellan två parterSamtal mellan två parter Samtal som ej besvarasSamtal som ej besvaras

Uppringande part lägger påUppringande part lägger på Uppringd är upptagen eller avbryter (genom aktivt beslut)Uppringd är upptagen eller avbryter (genom aktivt beslut) Uppringd gör ingentingUppringd gör ingenting

Försök att ringa part som ej är registrerad med SIP-Försök att ringa part som ej är registrerad med SIP-servernservern

Samtal där någon av parterna pausar samtaletSamtal där någon av parterna pausar samtalet Tredje part ringer upp någon som redan är i samtalTredje part ringer upp någon som redan är i samtal Andra scenarion och inställningarAndra scenarion och inställningar

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

SIP-laboration: Trafikfall SIP-laboration: Trafikfall Samtal mellan två parterSamtal mellan två parter

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

Klient BSIP-proxy

INVITEINVITE

100 Trying100 Trying

180 Ringing180 Ringing

200 OK200 OK

ACK

RTP Trafik(går ej genom proxy)

BYE

ACK

A ri

nger

up

p B

B s

vara

r

Klient A

Samtalet avslutas

Med ”record route” Utan ”record route”

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

SIP-laboration: TrafikfallSIP-laboration: TrafikfallSamtal som ej besvarasSamtal som ej besvaras

Klient A Klient BSIP-Proxy

INVITEINVITE

100 Trying100 Trying

180 Ringing180 Ringing

A ringer upp B

CANCELCANCEL

200 Canceling200 OK

487 Request Terminated

487 Request Terminated ACK

ACK

Uppringningsförsöket avbryts av uppringaren A

Uppringaren lägger på

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

SIP-laboration: TrafikfallSIP-laboration: TrafikfallSamtal som ej besvarasSamtal som ej besvaras

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

.

Klient A Klient BSIP-Proxy

INVITEINVITE

100 Trying100 Trying

180 Ringing180 Ringing

A ri

nger

upp

B

408 Request Timeout CANCEL

ACK 487 Request Terminated

200 OK

ACK

Upp

rings

nins

förs

öket

av

bryt

s av

pro

xyn

efte

r em

vis

s tid

Proxy-timeouttid (tex 120s)

Uppringd är upptagen eller avbryter genom aktivt beslut

Uppringd gör ingenting

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

SIP-laboration: Information i SIP-laboration: Information i signaleringmeddelandena signaleringmeddelandena

Användare (”From”- och ”To”-raderna)Användare (”From”- och ”To”-raderna) Klientadresser (”Contact”-raden)Klientadresser (”Contact”-raden) Call-IDCall-ID CSeqCSeq Media information i SDP-datadelenMedia information i SDP-datadelen

MediatypMediatyp ProtokollProtokoll Format (kodek)Format (kodek) RTP-portRTP-port

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

SIP-laboration: Parametrar som SIP-laboration: Parametrar som kan användas vid kvalitetsmätningkan användas vid kvalitetsmätning

UppkopplingsstatistikUppkopplingsstatistik Misslyckade/avbrutna försök att starta upp ett Misslyckade/avbrutna försök att starta upp ett

samtalsamtal SamtalsspärrSamtalsspärr Upptagen mottagareUpptagen mottagare Mottagaren svarar ejMottagaren svarar ej Uppringaren lagt på luren innan svarUppringaren lagt på luren innan svar Mottagare temporärt oåtkomligMottagare temporärt oåtkomlig Ej registrerad mottagareEj registrerad mottagare

UppkopplingstidUppkopplingstid

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

Undersökning av NeTraMetUndersökning av NeTraMet Första test:Första test:

SRL-skript från annat examensarbeteSRL-skript från annat examensarbete Både datatrafiken och OAM-paket genererades med Både datatrafiken och OAM-paket genererades med

pingping Första omskrivning av SRL-skriptFörsta omskrivning av SRL-skript

Datatrafiken av typ UDPDatatrafiken av typ UDP Både sändar- och mottagaradresser och portar Både sändar- och mottagaradresser och portar

definieradesdefinierades Andra omskrivningen av SRL-skriptetAndra omskrivningen av SRL-skriptet

Även OAM-paketen av typ UDPÄven OAM-paketen av typ UDP Bara sändarens adress och portar definieratsBara sändarens adress och portar definierats

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

Generering av OAM-paketGenerering av OAM-paket OAM-paket behöver vara: OAM-paket behöver vara:

Ha UDP som transportprotokollHa UDP som transportprotokoll Ha samma storlek som datapaketenHa samma storlek som datapaketen

Varför?Varför? RTP kör UDP med en viss storlek på paketenRTP kör UDP med en viss storlek på paketen Eventuella olika prioriteter i nätverketEventuella olika prioriteter i nätverket

Tre metoder att generera OAM-paket testades:Tre metoder att generera OAM-paket testades: UDP Ping loggerUDP Ping logger Perl-skriptPerl-skript NTools paketgenerator ngen NTools paketgenerator ngen

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

Generering av OAM-paketGenerering av OAM-paket UDP Ping LoggerUDP Ping Logger

Nerdlabs ConsultingNerdlabs Consulting Skickar ett UDP-paket i sekunden Skickar ett UDP-paket i sekunden Går ej att definiera hur ofta paketen ska Går ej att definiera hur ofta paketen ska

skickas eller hur stora de ska varaskickas eller hur stora de ska vara Perl-skriptPerl-skript

Använder Net::Ping och Time::HiResAnvänder Net::Ping och Time::HiRes Går inte att definiera vilken port paketen ska Går inte att definiera vilken port paketen ska

sändas frånsändas från

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

Generering av OAM-paket Generering av OAM-paket NTools paketgenerator – ngenNTools paketgenerator – ngen

Norbert Vegh på TeliaSonera AB R & BNorbert Vegh på TeliaSonera AB R & B Kan generera både UDP- och TCP-Kan generera både UDP- och TCP-

strömmarströmmar Går att definiera:Går att definiera:

Hur stora paketen ska varaHur stora paketen ska vara Hur ofta de ska skickasHur ofta de ska skickas Vilken port de ska skickas från och motVilken port de ska skickas från och mot

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

Undersökning av NeTraMet (igen)Undersökning av NeTraMet (igen)Testning av SRL-skriptTestning av SRL-skript

Samtal mellan två SIP-klienter sattes uppSamtal mellan två SIP-klienter sattes upp RTP-portarna definierades i SIP-klientprogramvaranRTP-portarna definierades i SIP-klientprogramvaran

OAM-paketen genererades med ngenOAM-paketen genererades med ngen Hastighet 1 paket per 10:e sekundHastighet 1 paket per 10:e sekund Mottagardatorns port: echo-porten (7)Mottagardatorns port: echo-porten (7)

Första test Första test NeTraMet bara på sändardatornNeTraMet bara på sändardatorn En instans av NeMaCEn instans av NeMaC

Andra testAndra test NeTraMet på båda datorernaNeTraMet på båda datorerna Två NeMaC instanser på sändardatornTvå NeMaC instanser på sändardatorn

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

Utveckling av prototyp: Utveckling av prototyp: SIP-information för konfigurering av SIP-information för konfigurering av

trafikmätningentrafikmätningen Typ av SIP-meddelandeTyp av SIP-meddelande

Metod såsom INVITE, BYE etc ellerMetod såsom INVITE, BYE etc eller Svarskod tex 180 Ringing, 200 OK etcSvarskod tex 180 Ringing, 200 OK etc

Klienternas IP-adresserKlienternas IP-adresser Sändaren: Contact-raden i INVITE-meddelandetSändaren: Contact-raden i INVITE-meddelandet Mottagaren: Contact-raden i 180 Ringing Mottagaren: Contact-raden i 180 Ringing

meddelandetmeddelandet Samtalets Call-IDSamtalets Call-ID

Från INVITE-meddelandetFrån INVITE-meddelandet Sändarens RTP-portSändarens RTP-port

Från SDP-data i INVITE-meddelandetFrån SDP-data i INVITE-meddelandet

Page 29: Ö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 Hämta nödvändig information från

signaleringensignaleringen Skapa SRL-filen och kompilera denSkapa SRL-filen och kompilera den Starta två instanser av NeMaCStarta två instanser av NeMaC Starta UDP-generatornStarta UDP-generatorn Stoppa mätningen när samtalet kopplas nerStoppa mätningen när samtalet kopplas ner

Page 30: Ö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 31: Ö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 32: Övervakning av kvalitet för SIP-baserad kommunikation

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

Importering av PerlmodulerImportering av Perlmoduler Definiering av globala variablerDefiniering av globala variabler Subrutinen createconfig()Subrutinen createconfig() Subrutinen siphandler()Subrutinen siphandler() Subrutinen get_callid()Subrutinen get_callid() Subrutinen got_a_packet()Subrutinen got_a_packet() HuvudprogrammetHuvudprogrammet

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

Protoypen: Lösning 1Protoypen: Lösning 1Huvudprogrammet och subrutinen Huvudprogrammet och subrutinen

got_a_packet()got_a_packet() HuvudprogrammetHuvudprogrammet

Öppnar upp nätverkskortet för insamlande av UDP-Öppnar upp nätverkskortet för insamlande av UDP-paketpaket

Om ett UDP-paket så skickas detta till got_a_packet()Om ett UDP-paket så skickas detta till got_a_packet() Subrutinen got_a_packetSubrutinen got_a_packet

Kontrollerar om ett paket är ett SIP-paketKontrollerar om ett paket är ett SIP-paket Om detta är fallet så avkodas paketetOm detta är fallet så avkodas paketet Viktig information om SIP-paketet läggs in i variablerViktig information om SIP-paketet läggs in i variabler

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

Protoypen: Lösning 1Protoypen: Lösning 1

Nej

Ja

StartHämta UDP-paket

Är paketet ett SIP-paket?

Gå till siphandler-subrutinen

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

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

Består av algoritmen som hanterar de Består av algoritmen som hanterar de inkommande SIP-meddelandernainkommande SIP-meddelanderna

Startar endast mätningar för samtal från Startar endast mätningar för samtal från den dator specificerats vid programstartden dator specificerats vid programstart

Om mätning ska göras så:Om mätning ska göras så: Skapas SRL-filenSkapas SRL-filen Starta NeMaC och OAM-paketgeneratorn vid Starta NeMaC och OAM-paketgeneratorn vid

samtalets startsamtalets start

Page 36: Ö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 37: Övervakning av kvalitet för SIP-baserad kommunikation

Protoypen: Lösning 1Protoypen: Lösning 1Subrutinerna createconf() och Subrutinerna createconf() och

getcallid()getcallid() Anropas från subrutinen siphandler()Anropas från subrutinen siphandler() Subrutinen createconf()Subrutinen createconf()

Skapa SRL-fil med de inställningar som tagits Skapa SRL-fil med de inställningar som tagits from SIP-meddelandernafrom SIP-meddelanderna

Kompilera SRL-filenKompilera SRL-filen Subrutinen getcallid()Subrutinen getcallid()

Hämta ett SIP-meddelandes Call-IDHämta ett SIP-meddelandes Call-ID

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

Protoypen: Lösning 2Protoypen: 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

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

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

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

servernservern Två olika skriptTvå olika skript

Klientskript som körs på SIP-klienternaKlientskript som körs på SIP-klienterna Serverskript som körs på SIP-servernServerskript som körs på SIP-servern

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

Protoypen: Lösning 2Protoypen: Lösning 2KlientskriptetKlientskriptet

Hämtar vid uppstart av ett samtal som ska Hämtar vid uppstart av ett samtal som ska mätasmätas Call-IDCall-ID Mottagarens IP-nummerMottagarens IP-nummer

Startar UDP-generatorn vid samtalets startStartar UDP-generatorn vid samtalets start

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

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

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

Protoypen: Lösning 2Protoypen: Lösning 2ServerskriptetServerskriptet

En instans per dator, vars trafik ska mätas, En instans per dator, vars trafik ska mätas, körskörs

Hämtar information om klienten som Hämtar information om klienten som startar samtaletstartar samtalet

Skapar SRL-fil och kompilerar denSkapar SRL-fil och kompilerar den Startar NeMaC vid samtalets startStartar NeMaC vid samtalets start

Page 43: Ö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 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

Page 44: Ö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 45: Ö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 Resultat skrevs i två flödesfilerResultat skrevs i två flödesfiler Fyra tidstämplar per OAM-paketFyra tidstämplar per OAM-paket OAM-paket skickades 1 gång i sekundenOAM-paket skickades 1 gång i sekunden

Klient i HaningeKlient i Karlskrona

t1 t2

t4 t3

UDP-pingförfrågan

UDP-pingsvar

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

Mätning av trafikMätning av trafik

Information som ficks i flödesfilernaInformation som ficks i flödesfilerna OAM-paketets ID-värdeOAM-paketets ID-värde TidstämpelTidstämpel Bytes RTP-trafik in och ut från datornBytes RTP-trafik in och ut från datorn Antal RTP-paket in och ut från datornAntal RTP-paket in och ut från datorn

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

Mätning av trafikMätning av trafikParametrar som räknades utParametrar som räknades ut

FördröjningFördröjning Round Trip Time (RTT)Round Trip Time (RTT) ProcesseringstidProcesseringstid ””Exakt” RTT”Exakt” RTT” EnvägsfördröjningEnvägsfördröjning

Drift i klockorna (NTP användes)Drift i klockorna (NTP användes)

FördröjningsvariationFördröjningsvariation ITU-T:s definitionITU-T:s definition IETF:s definitionIETF:s definition

Genomströmning per övervakningsblockGenomströmning per övervakningsblock

Page 48: Ö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 49: Övervakning av kvalitet för SIP-baserad kommunikation

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

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

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

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

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

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 msR

elat

iv fr

ekve

ns

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

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

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 52: Övervakning av kvalitet för SIP-baserad kommunikation

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

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

Processeringstiden har stor påverkanProcesseringstiden har stor påverkan Port 7 har lägre prioritet Port 7 har lägre prioritet Program på datorn som påverkarProgram på datorn som påverkar En idé är att hitta eller utveckla en annan En idé är att hitta eller utveckla en annan

lösning för OAM-paketenlösning för OAM-paketen Toppen innan huvudtoppen dyker upp från Toppen innan huvudtoppen dyker upp från

Haninge till KarlskronaHaninge till Karlskrona

Page 53: Ö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 54: Ö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 msR

elat

iv fr

ekve

ns

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

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

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

RTTRTT IETF:s fördröjningvariationIETF:s fördröjningvariation

Jämnt fördelat runt medelvärdetJämnt fördelat runt medelvärdet

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

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

Genomströmning per övervakningsblockGenomströmning per övervakningsblock (bytes(i-1,i)*8)/(tid(i)-tid(i-1))(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 57: Ö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

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

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

Jämn genomströmningJämn genomströmning Beror på att RTP skickar små paket med Beror på att RTP skickar små paket med

konstant hastighetkonstant hastighet Tappas inga eller få paketTappas inga eller få paket

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

Resultat av mätningResultat av mätningPaketförlusterPaketförluster

Ingen eller mycket låga paketförlusterIngen eller mycket låga paketförluster Går inte att beräkna tappade paket per Går inte att beräkna tappade paket per

övervakningsblockövervakningsblock Olika numrering på paketOlika numrering på paket Brist på synkroniseringBrist på synkronisering

Går att räkna ut totalt tappade paket Går att räkna ut totalt tappade paket

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

Diskussion och slutsatserDiskussion och slutsatser Serverversionen av prototypenServerversionen av prototypen

Användas av operatörAnvändas av operatör Record Route måste vara sattRecord Route måste vara satt Definition av vilka samtal ska mätas Definition av vilka samtal ska mätas

Klientversionen av prototypenKlientversionen av prototypen Eventuellt finna lösning för att: Eventuellt finna lösning för att:

Skicka mätdata till en central lagringsplats ellerSkicka mätdata till en central lagringsplats eller Hämta mätdata från klienternaHämta mätdata från klienterna

Problem med att använda ngen som OAM-Problem med att använda ngen som OAM-paketgeneratorpaketgenerator

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

Diskussion och slutsatserDiskussion och slutsatser Problem med tidstämplingens noggrannhetProblem med tidstämplingens noggrannhet

Tidstämpling görs i programmet ej på nätverkskortetTidstämpling görs i programmet ej på nätverkskortet Lösning: kompletterande mätningar mellan kantnoderLösning: kompletterande mätningar mellan kantnoder

Synkronisering av klockor görs med NTPSynkronisering av klockor görs med NTP Påverkar envägsfördröjningarPåverkar envägsfördröjningar Tur-och-retur fördröjningar troligtvis tillräckligtTur-och-retur fördröjningar troligtvis tillräckligt

GPS ingen lösningGPS ingen lösning Extra hårdvara behövsExtra hårdvara behövs

Alternativ metod att mäta trafikkvalitet: RTCP-XRAlternativ metod att mäta trafikkvalitet: RTCP-XR Använder rapporter från RTCPAnvänder rapporter från RTCP Kan bara mäta RTP-trafikKan bara mäta RTP-trafik

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

Diskussion och slutsatserDiskussion och slutsatserIdéer för att förbättra prototypenIdéer för att förbättra prototypen

Skriva om källkod så: Skriva om källkod så: Server- och klientversionerna finns i samma Server- och klientversionerna finns i samma

programprogram 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 Utveckla program som behandlar och redovisar flödesfilernaredovisar flödesfilerna

Utveckla en bättre metod att generera Utveckla en bättre metod att generera OAM-paketenOAM-paketen

Page 63: Ö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 64: Övervakning av kvalitet för SIP-baserad kommunikation

Frågor?Frågor?