View
48
Download
1
Category
Preview:
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
Ö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 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
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)
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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”
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å
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
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
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
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
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
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
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
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
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
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
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
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
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
Protoypen: Lösning 1Protoypen: Lösning 1
Nej
Ja
StartHämta UDP-paket
Är paketet ett SIP-paket?
Gå till siphandler-subrutinen
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Frågor?Frågor?
Recommended