• No se han encontrado resultados

Resultados obtenidos con α =0.998, la razón de transmisión entre router 1 y

CAPÍTULO 3. RESULTADOS Y DISCUSIÓN

3.4 Análisis de resultados

3.4.3 Resultados obtenidos con α =0.998, la razón de transmisión entre router 1 y

router 2 es 5 Mbps.

En este caso, el ancho de banda entre los routers se disminuye (de 10Mbps a 5Mbps), esto significa que causa un incremento del retardo y del jitter en la transmisión. Como se puede notar en las figuras 3.7 y 3.8, el retardo extremo a extremo de la red aumenta aproximadamente a 150 ms y el jitter alcanza los 20 ms. Para estas nuevas condiciones el tamaño promedio de buffer se incrementa (hasta 160ms (Figura 3.9). Las pérdidas durante de la transmisión alcanzan los 23 paquetes, y el algoritmo desecha 162 paquetes.

Nótese en la figura 3.10, que el intervalo entre los 0,8 y 4ms se corresponde con una cadena de paquetes desechados por el algoritmo. Esta situación es una consecuencia de que para los parámetros iniciales resulta imposible adaptar el tamaño del buffer durante la primera

ráfaga. Después del primer intervalo de silencio el algoritmo ajusta los parámetros y reduce la cantidad de paquetes rechazados.

Figura 3.9: Tamaño de buffer.

3.5 Conclusiones parciales del capítulo.

Como se aprecia en el ejemplo, cuando la red es bastante estable, el algoritmo se desempeña adecuadamente con un valor de α alto. En la medida en que empeoran las condiciones de la red, ese mismo valor de α ya no es adecuado. En general, cuado las condiciones de la red tiene una dinámica alta, el algoritmo con α fijo tiene resultado poco alentadores.

CONCLUSIONES Y RECOMENDACIONES

Conclusiones

En este trabajo se arriba a las siguientes conclusiones

1. Aunque es cierto que existe un esfuerzo importante en el desarrollo de mecanismos que garanticen QoS para redes IP no parece probable que se defina una solución universal a mediano o corto plazo. Esta situación estimula las investigaciones relacionadas con los mecanismos de control de jitter para garantizar una calidad adecuada para los servicios interactivos en tiempo real.

2. Hasta este momento no existe un algoritmo único universalmente aceptado para el control de jitter. Los algoritmos propuestos tienen desempeños disímiles para escenarios concretos. Es muy importante contar con herramientas y métodos que permitan la evaluación de los mismos.

3. En este trabajo se hizo un estudio detallado sobre las variantes de dos tipos de algoritmo para buffer de reproducción de audio, uno que ajusta durante las ráfagas de silencio, y otro que ajusta en cualquier momento.

4. Se exploraron herramientas que permiten implementar y evaluar algoritmos de buffer de reproducción. Se seleccionó el algoritmo de Ramjee (Ramjee et al, 1994) como caso de estudio para ilustrar el uso de dichas herramientas y se discutieron los resultados de la evaluación que coinciden con los resultados teóricos descritos en la literatura consultada.

5. El esquema de evaluación propuesto básicamente consiste en obtener trazas de tráfico, reales o simuladas mediante NS2, fíltralas y utilízalas en la evaluación del desempeño de algoritmos de reproducción de audio escritos en Matlab. Este

esquema resulta apropiado para algoritmos como los que aquí se analizan, sin embargo existen algoritmos donde los parámetros del emisor se ajustan mediante retroalimentación del desempeño en el receptor. Para este tipo de algoritmo no resulta adecuado la implementación en Matlab

Recomendaciones.

En épocas recientes se han diseñado algoritmos que toman la evaluación de la calidad percibida como un elemento en el funcionamiento del mecanismo de control del buffer de reproducción. Aunque en el presente trabajo se describen los métodos para evaluación de la calidad, no se analiza ningún algoritmo de este tipo. Teniendo en cuenta la creciente importancia de este tipo de algoritmo se recomienda la evaluación de los mismos.

REFERENCIAS

1. AGUILAR, M. J. (2005) “Teléfono software basado en SIP e implementación de PESQ”. Facultad de ingenieria. Bogota, Universidad Javeriana.

2. BALAN, V. (2006) “An Experimental Evaluation of Voice-over-IP Quality over the Datagram Congestion Control Protocol”. School of Engineering and Science

International University Bremen.

3. BOLOT, J. C., CREPIN, H. & GARCIA, A. (2005) “Analysis of audio packet loss in the Internet”. Proc.International Workshop on Network and Operating System

Support for Digital Audio and Video (NOSSDAV). Durham.

4. CLARK, A. (2003) “Analysis, measurement and modelling of Jitter”. International

telecommunication union. Geneva, Telchemy Incorporated.

5. CISCO SYSTEMS, INC. (2006) “Understanding Jitter in Packet Voice Networks”.

[En línea], disponible en

www.cisco.com/en/US/tech/tk652/tk698/technologies_tech_note09186a00800945df .shtm. [Consultado el día 17 de enero de 2008].

6. FERRARI, D. & VERMA, D. (1990) “A scheme for real-time channel establishment in wide-area networks” en I EEE Journal on Selected Area sin

Communications, vol. 8 no. 3, pp. 368–379.

7. GRUTA, D. (2007) “Improvements areas in QoS for VoIP solution”. Internacional conference on software testing.

8. ITU-D. (2003) “The Essential Report on IP Telephony”. [En línea], disponible en: http://www.itu.int/ITU-D/e-strategy/publications-articles/pdf/IP-tel_report.pdf. [consultado el día 11 de mayo de 2007].

9. JACOBSON, V. (1988) “Congestion avoidance and control”. Procc.1988ACM

SIGCOMM Conf. Standford.

10. JON POSTEL, editor (1981) “Transmission Control Protocol specification”. ARPANET Working group Requests for Comment. ARPANET Working group Requests for Comment, RFC 793.

11. LIANG, Y., FARBER, N. & GIROD, B. (2001) “Adaptive playout scheduling using time-scale modification in packet voice communications” en Revista IEEE

Xplore, 3. Stanford University.

12. NARBUTT, M. & MURPHY, L. (2003) “VoIP Playout Buffer Adjustment using Adaptive Estimation of Network Delays”. Department of Computer Science.

13. NEUMAN, A., (2007) Telefonía IP 2. (VoIP). N&K Panama. [En línea]. Panamá, disponible en: http://www.nkpanama.com. [Consultado el día 17 de mayo de 2008].

14. RAMJEE, M. et al., (1994) “Adaptive Playout Mechanisms for Packetized Audio Applications in Wide-Area Networks” en Revista Proc. IEEE Infocom 1994, IEEE

CS Press.

15. RÍOS, A. et al., (2007) Desarrollo de una plataforma de VoIP basada en Software Libre. [En línea], disponible en: http://www.jornadespl.org/biblioteca/v- jornades/comunicacions/desarrollo-de-una-plataforma-de-voip-basada-en-software- libre. [Consultado el día 13 de febrero de 2008].

16. SCHULZRINNE, H. (1993) “Reducing and characterizing packet loss for high- speed computer networks with real-time services”. University of Massachusetts.

17. SIECKMEYER, C. (1995) “Evaluation of adaptive playout algorithms for packet audio”. Berlin, Dept.of Electrical Engineering.

18. VIIPURI, T. (2002) “A Case Study of Simulating DiffServ in NS-2”. [En línea], disponible en www.netlab.hut.fi/opetus/s383180/2005/harj/H3/diffnet.pdf. [Consultado el día 29 de abril de 2008].

BIBLIOGRAFÍAS

1. BLACK, U. (2000) “Voice over IP” [En línea], New Jersey, Prentice Hall, Disponible en: \\neumann\e-Books\Network [Accedido: 12 de abril de 2007

].

2. HERSENT, O.; GURLE, D. Y J.P., PETIT, (2000) “IP Telephony: packet based multimedia communications systems”. Addison-Wesley.

3. NARBUTT, M., KELLY, A., MURPHY, L. & PERRY, P. (2005) “Adaptive VoIP Playout Scheduling:Assessing User Satisfaction”. IEEE Computer Societ.

ANEXOS

ANEXO1: LOS PUNTAJES DE EVALUACIÓN Tabla1: Escala MOS

Tabla2: Escala ACR

ANEXO 2: Resultado de la comparación entre los algoritmos (Fig. 1- 7).

Figura 1: Comparación usando traza 1(UMASS-INRIA).

ANEXO 2: Resultado de la comparación entre los algoritmos (Fig. 1- 7 ).

Figura 2: Comparación usando traza 2(UMASS-INRIA).

Figura 3: Comparación usando traza 3(UMASS-UCI).

ANEXO 2: Resultado de la comparación entre los algoritmos (Fig. 1- 7 ).

Figura 4: Comparación usando traza 4(UMASS-UCI).

ANEXO 2: Resultado de la comparación entre los algoritmos (Fig. 1- 7 ).

Figura 6: Comparación usando traza 6 (UMASS-OSAKA).

ANEXO 3: Código fuente del generador de tráfico.

# The preamble

set ns [new Simulator] ;# initialise the simulation

# Predefine tracing

set f [open g729nuevo.tr w]

$ns trace-all $f

set nf [open g729nuevo.nam w]

$ns namtrace-all $nf

#Create nodes

set n(r0) [$ns node]

set n(r1) [$ns node]

#Create more nodes

for {set i 0} {$i < 8} {incr i} {

set n($i) [$ns node]

}

#Create links between the nodes

for {set i 0} {$i < 4} {incr i} {

$ns duplex-link $n($i) $n(r0) 10Mb 10ms DropTail

$ns queue-limit $n($i) $n(r0) 80

}

$ns queue-limit $n(r0) $n(r1) 80

for {set i 4} {$i < 8} {incr i} {

$ns duplex-link $n($i) $n(r1) 10Mb 10ms DropTail

$ns queue-limit $n($i) $n(r1) 80

}

#Create a TCP agents and attach it to nodes

for {set i 0} {$i < 3} {incr i} {

set tcp($i) [new Agent/TCP]

$tcp($i) set class_ 1

$tcp($i) set window_ 100

$ns attach-agent $n($i) $tcp($i)

set tcpsink($i) [new Agent/TCPSink]

}

$ns attach-agent $n(5) $tcpsink(0)

$ns attach-agent $n(6) $tcpsink(1)

$ns attach-agent $n(7) $tcpsink(2)

# Create a FTP traffic sources and attach it to TCP agents

for {set i 0} {$i < 3} {incr i} {

set ftp($i) [new Application/FTP] ;# TCP does not generate its own traffic

$ftp($i) attach-agent $tcp($i)

}

#Connect the traffic sources with the traffic sinks

$ns connect $tcp($i) $tcpsink($i)

}

$ns at 0.3 "$ftp(0) start"

$ns at 5 "$ftp(1) start"

$ns at 15 "$ftp(2) start"

#Create a UDP agents and attach it to nodes

set udp0 [new Agent/UDP] ;# A UDP agent

$ns attach-agent $n(3) $udp0 ;# on node $n0

set null0 [new Agent/Null] ;# Its sink

$ns attach-agent $n(4) $null0 ;# on node $n4

set expoo [new Application/Traffic/Exponential]

$expoo attach-agent $udp0

$expoo set packetSize_ 60

$expoo set burst_time_ 1000ms

$expoo set idle_ 1500ms

$expoo set rate_ 24kb

$udp0 set class_ 0

$ns connect $udp0 $null0

$ns at 0.1 "$expoo start"

$ns at 10 "$ns detach-agent $n(0) $tcp(0) ; $ns detach-agent $n(5) $tcpsink(0)"

$ns at 40 "$ns detach-agent $n(1) $tcp(1) ; $ns detach-agent $n(6) $tcpsink(1)"

$ns at 60 "finish"

proc finish {} {

$ns flush-trace

close $f

close $nf

puts "running nam..."

exec nam out.nam &

exit 0

}

# Finally, start the simulation.

ANEXO 4: Código fuente del algoritmo de la reproducción de buffer

fid = fopen('g729nuevo.tr');

C = textscan(fid, '%s %f %n %n %s %n %s %n %f %f %n %n') % importa el fichero de datos de tráfico

x=439027; % número de eventos ocurridos

timeofevent=zeros(x,1); timeofevent=C{1,2}; nodesource=zeros(x,1); nodesource=C{1,3}; nodedest=zeros(x,1); nodedest=C{1,4}; seqnum=zeros(x,1); seqnum=C{1,11}; received=strcmp(C{1,1}, 'r'); tráfico =strcmp(C{1,5}, 'exp'); drop=strcmp(C{1,1}, 'd'); trans=strcmp(C{1,1}, '+'); IDdeflujo=zeros(x,1); IDdeflujo=C{1,8}; dr=0; rec=0; tr=0; for i=1:x

if IDdeflujo(i,1)==0&trans(i,1)==1&nodesource(i,1)==5 % calcula # de los paquetes transmitidos

tr=tr+1;

elseif IDdeflujo(i,1)==0&drop(i,1)==1 % calcula # de los paquetes perdidos en la transmisión

dr=dr+1;

elseif IDdeflujo(i,1)==0&received(i,1)==1&nodedest(i,1)==6 % calcula # de los paquetes recibidos rec=rec+1; end end sndrop=zeros(dr,2); time=zeros(rec,2); transmited=zeros(tr,2); d=0; r=0; t=0; for i=1:x if IDdeflujo(i,1)==0&trans(i,1)==1&nodesource(i,1)==5 t=t+1; transmited(t,1)=timeofevent(i,1); transmited(t,2)=seqnum(i,1); elseif IDdeflujo(i,1)==0&drop(i,1)==1 d=d+1; sndrop(d,1)=seqnum(i,1);

sndrop(d,2)=timeofevent(i,1); elseif IDdeflujo(i,1)==0&received(i,1)==1&nodedest(i,1)==6 r=r+1; time(r,1)=timeofevent(i,1); time(r,2)=seqnum(i,1); end end for i=1:dr for j=1:tr if transmited(j,2)==sndrop(i,1); transmited(j,1)=0; end end end con =0; transmited1=zeros(rec,2); for i =1:rec+dr if transmited(i,1)~=0 con=con+1; transmited1(con,1)=transmited(i,1); transmited1(con,2)=transmited(i,2); end end

for i=1: rec

ins_delay(i,1)=time(i,1)-transmited1(i,1); % calcula retardo extremo a extremo de la red

end

dmin=0.05; %demora de propagación+ demora de paquetización

dest_delay=zeros();% delays of packets on a destination side ( inicial JB)

mean_delay = 0.030144;

mean_variance = 0; % cumulative variance

counter=0;

min_JB=0.04; %definir: min_JB % tamaño mínimo de buffer

JB_size=min_JB;

JBbuffer=zeros(rec,1); % aquí empieza la programación de buffer

var=0; % # de ajustes de buffer

counter=0; # de paquetes desechados en buffer

for i = 1: rec-1 if transmited1(i+1,1)-transmited1(i,1)<0.1 %rafaga mean_variance=0.875*mean_variance+0.125*abs(mean_delay-ins_delay(i,1)); mean_delay=0.875*mean_delay+0.125*ins_delay(i,1); playout_time=mean_delay+4*mean_variance; end

if ins_delay(i,1)>dmin+JB_size

dest_delay(i,1)=dmin+JB_size+transmited1(i,1);

dest_delay(i,2)=0; % 0-lost packet

counter=counter+1;

else

dest_delay(i,1)=dmin+JB_size+transmited1(i,1); % delay including JB

dest_delay(i,2)=1; % 1 - arrived packet

dest_delay(i,3)=mean_delay;

dest_delay(i,4)=mean_variance;

dest_delay(i,5)=playout_time;

dest_delay(i,6)=time(i,2); % # de secuencia de los paquetes

end

if transmited1(i+1,1)-transmited1(i,1)>0.1

% intervalo de silencio

% ajustar los parámetros.

var=var+1;

JB_size=max(playout_time, dmin+min_JB)-dmin; # cambia tamaño de buffer

JBbuffer(var,1) =JB_size;

end

Documento similar