8/17/2019 Memoria Pro Yec to Final
1/167
Universidad de Valladolid
E. T. S. DE INGENIERÍA INFORMÁTICAIngeniería Inor!"#i$a
T%$ni$as A&M 'asadas en $on#rol (redi$#ivo
Alumno: Eduardo Hernández Ramos
T)#ora* M+ Teresa Álvare, Álvare,
8/17/2019 Memoria Pro Yec to Final
2/167
En memoria de mi abuela Felisa
3
8/17/2019 Memoria Pro Yec to Final
3/167
Índice
RESUMEN..................................................................................................-
CAPÍTULO I. INTRODUCCIÓN............................................................
1. 1 Introducción..............................................................................................................................11
1. 2 Propósito del proyecto..............................................................................................................12
1. 3 Planificación..............................................................................................................................13
1. 4 Estructura de la memoria........................................................................................................13
CAPÍTULO II. INTRODUCCIÓN A LAS REDES DEORDENADORES...................................................................................../
2. 1 Introducción..............................................................................................................................15
2. 2 Pila de protocolos......................................................................................................................16
2. 3 TCP / IP.....................................................................................................................................12.3.1 Protocolo IP........................................................................................................................192.3.2 Protocolo TCP....................................................................................................................19
CAPÍTULO III. EL PROBLEMA DEL CONTROL DE LACONGESTIÓN..........................................................................................01
3. 1 Introducción..............................................................................................................................23
3. 2 Principios !enerales del control de la con!estión..................................................................24
3. 3 "#todos de pre$ención de con!estión.....................................................................................25
3. 4 Primeras decisiones para el control de la con!estión............................................................26
3. 5 "#todos e%tremos para controlar la con!estión....................................................................263.5.1 &l!oritmo 'rop Tail...........................................................................................................273.5.2 &l!oritmo (E'...................................................................................................................27
CAPÍTULO IV. AQM EN OPNET®......................................................0-
4. 1 Introducción..............................................................................................................................2)
4. 2 Estudio del nodo *o+...............................................................................................................2)
5
8/17/2019 Memoria Pro Yec to Final
4/167
4.2.1 "odelo de nodos del elemento *o+..................................................................................294.2.2 "odelo de procesos del nodo attribute_definer ................................................................30
4. 3 ,odo router ethernet4_slip8_gtwy...........................................................................................324.3.1 "odelo de procesos ip_dispatch........................................................................................334.3.2 "odelo de procesos ip_output_iface.................................................................................45
CAPÍTULO V. EL CONTROL PID CLÁSICO...................................../-
5. 1 Introducción..............................................................................................................................5)
5. 2 'el PI' continuo al PI' discreto............................................................................................5)5.2.1 PI' discreti-ado mediante apro%imación rectan!ular...................................................605.2.2 PI' discreti-ado mediante apro%imación ilineal o de Tustin......................................60
5. 3 T#rminos de un re!ulador PI' y efectos asociados...............................................................61
5. 4 indup del inte!rador.............................................................................................................63
5. 5 +intoni-ación de re!uladores PI'...........................................................................................645.5.1 "#todo de la respuesta en salto........................................................................................645.5.2 "#todo de sensiilidad 0ltima..........................................................................................65
5. 6 Implementación del re!ulador PI' en P,ET.....................................................................665.6.1 &nlisis de reuisitos.........................................................................................................675.6.2 'iseo e implementación del controlador PI'................................................................71
CAPÍTULO VI. EL CONTROL PREDICTIVO BASADO ENMODELO...................................................................................................22
6. 1 Introducción..............................................................................................................................
6. 2 Estrate!ia del "PC..................................................................................................................
6. 3 ormulación del prolema.......................................................................................................76.3.1 ormulación del 8PC utili-ando modelo función de transferencia..............................81
6. 4 El control predicti$o aplicado al control de la con!estión....................................................56.4.1 9ineali-ación del modelo...................................................................................................856.4.2 :tili-ación del modelo en el "PC....................................................................................86
6. 5 Implementación del "PC en P,ET....................................................................................6.5.1 &nlisis de reuisitos.........................................................................................................876.5.2 'iseo e implementación del control predicti$o utili-ando P,ET............................89
CAPÍTULO VII. SIMULACIONES Y RESULTADOS........................-2
. 1 E%perimentos utili-ando Control Predicti$o..........................................................................).1.1 ;ariaciones en el $alor del
8/17/2019 Memoria Pro Yec to Final
5/167
.1.4 ;ariaciones en el $alor de = .............................................................................................104
. 2 E%perimentos utili-ando Control PI'..................................................................................175.2.1 ;ariaciones en la constante proporcional......................................................................106.2.2 ;ariaciones en la constante inte!ral...............................................................................107.2.3 ;ariaciones en la constante deri$ati$a...........................................................................107
.3 Comparación de distintos m#todos de control de la con!estión..........................................17).3.1 Primeros e%perimentos comparando el PI' y el "PC................................................109.3.2 Comparando "PC y PI' con (E' y 'rop Tail...........................................................110
. 4 Conclusiones............................................................................................................................121
CAPÍTULO VIII. PRUEBAS Y PROBLEMAS..................................01
. 1 Prueas....................................................................................................................................123.1.1 Prueas unitarias.............................................................................................................123.1.2 Prueas de inte!ración....................................................................................................124
. 2 'epurar códi!o en P,ET>.................................................................................................124
. 3 Prolemas................................................................................................................................125
CAPÍTULO IX. CONCLUSIONES Y TRABAJO FUTURO.............02
). 1 Conclusiones............................................................................................................................12
). 2 Traa?o futuro.........................................................................................................................12
APÉNDICE A. LA HERRAMIENTA OPNET®.................................0-
&. 1 Introducción...........................................................................................................................12)
&. 2 'ominio de (ed @,etAorB 'omain.....................................................................................131
&. 3 'ominio de ,odos @,ode 'omain.......................................................................................131
&.3.1 "ódulos............................................................................................................................132&.3.2 Cone%iones.......................................................................................................................134&.3.3 &triutos..........................................................................................................................135
&. 4 'ominio de procesos..............................................................................................................135&.4.1 Entorno de un Proceso....................................................................................................135&.4.2 Componentes de un modelo de proceso........................................................................141
&. 5 +imulación..............................................................................................................................14&.5.1 Construcción de un modelo de simulación...................................................................148&.5.2 +imulación de e$entos discretos.....................................................................................149
APÉNDICE B. ADICIÓN DE ATRIBUTOS Y ESTADÍSTICAS...../1
7
8/17/2019 Memoria Pro Yec to Final
6/167
Técnicas AQM basadas en Control Predictivo
D. 1 "odificación de atriutos......................................................................................................153D.1.1 &cceso a la tala de atriutos.........................................................................................153D.1.2 &adir un nue$o atriuto...............................................................................................154D.1.3 &adir $alores a un atriuto ya creado.........................................................................154
D. 2 &dición de nue$as estadsticas &*"....................................................................................156
APÉNDICE C. GUÍA DE INSTALACIÓN DE OPNET®................/-
C. 1 Instalación de P,ET 'e$elopment Fit module...............................................................15)
C. 2 Instalación de ;isual +tudio .,ET Professional 2773.........................................................161
C. 3 tención de la licencia.........................................................................................................164
APÉNDICE D. PRINCIPIOS BÁSICOS DEL CONTROL DIGITAL..................................................................................................................32
'. 1 Introducción al control di!ital..............................................................................................16
'. 2 Conceptos sicos..................................................................................................................16'.2.1 9a-o aierto y la-o cerrado............................................................................................167'.2.2 9a-o de control di!ital....................................................................................................169
'. 3 (euisitos !enerales de un sistema de control....................................................................16)'.3.1 Estailidad.......................................................................................................................169
'.3.2 'inmica..........................................................................................................................169'.3.4 Errores Estacionarios.....................................................................................................171
'.4 Conceptos sicos de modelado.............................................................................................11
APÉNDICE E. CONTENIDO DEL CD...............................................21
APÉNDICE F. ACRÓNIMOS Y ABREVIATURAS...........................2/
BIBLIOGRAFÍA.....................................................................................22
8
8/17/2019 Memoria Pro Yec to Final
7/167
Re!"e#
La utilización de técnicas del mundo de la automática para lorar un óptimo control de laconestión en las redes !" es alo asom#roso. $n el presente pro%ecto se detalla el estudio dedi&erentes técnicas de control de procesos' partiendo del conocido control "!( clásico' )asta el más
no*edoso +ontrol "redicti*o #asado en modelo. (ic)as estrateias serán implementadas )aciendouso de la potente )erramienta de simulación ,"-$' la cuál nos dará in&inidad de posi#ilidades para modelar' e/perimentar % comparar resultados.
A$%&'(%
sin tec)niues &rom t)e orld o& automatics' to ac)ie*e an optimal control &or !" netorsconestion' is somet)in amazin. )is proect' details t)e stud% o& di&&erent process controltec)niues' startin &rom t)e ellnon classical "!( control implemented in se*eral a%s' untilt)e neest #ased on model "redicti*e +ontrol. )ese strateies ill #e implemented usin t)e
poer&ul simulatin tool' ,"-$' )ic) ill i*e us in&init% o& posi#ilities &or modelin'e/perimentin and comparin results.
8/17/2019 Memoria Pro Yec to Final
8/167
C')*%!+, I
I#%&,-!((/#
1. 1 Introducción
La conestión de la red es el pro#lema ue sure cuando ésta enera más trá&ico del ue se puedecursar. "ara lidiar con ello se )an ido sucediendo di&erentes técnicas % propuestas a lo laro detiempo' partiendo de sencillos aloritmos eneralistas mu% acepta#les' a otros muc)o máscompleos optimizados en determinadas circunstancias. $l o#eti*o de este te/to es e/poner unaserie de técnicas inno*adoras para conseuir controlar esa conestión de &orma e&iciente.
$l control de procesos se relaciona con el control de plantas industriales mediante laoptimización % actuación so#re distintas *aria#les % manitudes ue nos permiten o#tener unosresultados satis&actorios. ' a cuento de ué *iene esto: ;u% &ácil' utilizaremos técnicas de
control de procesos para controlar la conestión en las colas del router.
8/17/2019 Memoria Pro Yec to Final
9/167
Técnicas AQM basadas en Control Predictivo
$ste eemplo nos permitirá entender el control de procesos % el por ué nos resulta tan interesante.+ontrolar un proceso' a randes rasos' se puede resumir en controlar el *alor de una o *arias*aria#les de salida en &unción de una o *arias *aria#les de entrada. $l caudal de entrada de aua'en el caso del tanue' se corresponder=a con el &luo de pauetes de datos de entrada en el caso delrouter. $l depósito en s= ser=a eui*alente a la cola en la ue los pauetes esperan para ser
procesados. Los pauetes procesados por el router se li#eran' de &orma similar al l=uido ue saledel tanue. ?uardando las distancias' se podr=a asemear una ma%or o menor *elocidad de procesamiento a a#rir o cerrar más el ri&o. @unue de momento no lo usti&iuemos' en am#os procesos distinuimosA
Planta ;ariales de entrada ;ariales de salida
($"BC!, +audal de salida -i*el del depósito
D,$D "ro#a#ilidad descarte pauete amaEo de la cola
+omo *isión inicial es su&iciente' más adelante se tratará el mismo eemplo de manera más técnica.
1. 2 Propósito del proyecto
La moti*ación principal del presente pro%ecto )a sido el análisis' diseEo e implementación denue*as técnicas para controlar la conestión en un router.
Ce partió del aprendizae % estudio de la )erramienta de simulación ,"-$F' una aplicación per&ecta para nuestro propósito' permit=a una comparati*a detallada de resultados as= como
indaar en su implementación para aEadir nue*as &uncionalidades. ,"-$F de por s= lle*a %aincluidos *arios aloritmos de control de conestión e/istentes en la realidad' por lo ue su estudio)a sido un sustento enorme para el desarrollo de nue*as técnicas.
La compleidad in)erente de ,"-$F reuiere de un estudio pre*io considera#le. La pocadocumentación e/istente en la red so#re la )erramienta )a sido un punto neati*o' &iando
primordialmente el aprendizae en la propia a%uda del producto G,"09H' as= como en anteriores pro%ectos lle*ados a ca#o en la $C!! de la *a G@l*10H % G-ic10H. La ma%or=a de tutorialeslocalizados tocan aspectos mu% eneralistas de la )erramienta' centrándose en diseEos de alto ni*el% a#stra%éndose completamente del códio &uente de la )erramienta. "or todo ello' se )a intentadocu#rir el enorme *ac=o de documentación e/istente % los cap=tulos relacionados con aspectos de la)erramienta serán tratados de la &orma más concisa posi#le.
na *ez ue la )erramienta deó de ser el pro#lema' se procedió a la implementación delaloritmo de lazo cerrado "!(' mu% t=pico en procesos industriales como el descrito en G@n11H' para aplicarlo a nuestro pro#lema de conestión. ;e sumer= una *ez más en el mundo delmodelado' de la simulación' del control de procesos industriales %' por Iltimo' se modeló elmecanismo de control de la conestión dentro de este marco. $sos mismos puntos' % ueriendo dar un ran paso más' se siuieron posteriormente para aEadir so#re la )erramienta un controladorpredicti$o asado en modelo.
Ce )a intentando realizar un estudio lo más realista % serio posi#le' pero' no ol*idemos' ue el pro#lema ue esto% tratando de resol*er es realmente compleo' dependiente de mIltiples*aria#les' as= ue en muc)as ocasiones' siendo )umilde' los razonamientos % conclusiones estarán
#asadas en mis destrezas e/plotadas al má/imo como ineniero' con las posi#les &altas de
apreciación % errores )umanos ue se cometen.
12
8/17/2019 Memoria Pro Yec to Final
10/167
1. INTRODUCCIÓN
1. 3 Planificación
Dealmente la plani&icación de este pro%ecto no )a sido tarea sencilla. +ompainar su desarrollo conotros tra#aos )a sido' en muc)as ocasiones' complicado. ;uc)as tareas )an su&rido demoras de
tiempo mu% por encima de lo esperado inicialmente. $n la >iura 1. 2 podemos *er el dia!rama de8antt ue nos muestra la e*olución del pro%ecto a lo laro de su tiempo de desarrollo. @unue no)a%a una relación e/pl=cita entre las distintas tareas' su posición a lo laro del tiempo indica su
posi#le *=nculo.
1. 4 Estructura de la memoria
@ modo de rápido *istazo' e/plicaré a continuación en unas pocas l=neas el contenido de cada unode los cap=tulos en los ue se )a di*idido la presente memoria.
Captulo 1. +ap=tulo introductorio. Ce o&rece una introducción al te/to' as= como unadescripción eneral del tra#ao realizado.
Captulo 2. !ntroducción a las redes de ordenadores. Ce e/plicarán conceptos #ásicos eimportantes para el entendimiento del pro%ecto. Decordaremos el modelo de re&erencia,C! para después centrarnos en la implementación de +"J!".
Captulo 3. $l pro#lema del control de la conestión. Ce e/plicará detalladamente en uéconsiste este &enómeno % se e/pondrán di&erentes métodos para reducir su e&ecto. @u=detallaremos los aloritmos utilizados actualmente % se mostrarán *arias apreciacionesso#re los mismos.
Captulo 4. @u= se e/plicarán a &ondo los elementos rele*antes de la )erramienta,"-$F relacionados con el control de la conestión.
Capitulo 5. @loritmo "!( clásico. $/plicaremos detalladamente en ué consiste elaloritmo' los procesos para los ue es utilizado %' por Iltimo' la manera paso a paso deimplementarlo en ,"-$F.
Captulo 6. @loritmos de +ontrol "redicti*o. Ce detallará en concreto el ;K"+ %*eremos como se )a implementado utilizando ,"-$F.
Captulo . $/perimentos. na ran cantidad de e/perimentos % simulaciones ocuparáneste cap=tulo. eremos comparati*as entre los distintos aloritmos' as= como el e&ecto uetiene la *ariación de multitud de parámetros en los resultados o#tenidos en la simulación.Ce )arán apreciaciones o#eti*as para los resultados más e*identes acompaEadas deconnotaciones de =ndole más personal para detalles más a#stractos.
Captulo . Kre*e cap=tulo en el ue se e/pone la &orma en la ue se )a procedido a la)ora de realizar las prue#as.
Captulo ). +onclusiones. ;iradas al pasado % &uturo en #ase al tra#ao realizado. &p#ndice &. @péndice conce#ido a modo de manual para el entendimiento' uso %
alteración de la )erramienta ,"-$F. Ce e/plicarán los distintos ni*eles de modelado %simulación ue o&rece este producto.
&p#ndice D. Ce e/plicará paso a paso el proceso seuido para aEadir nue*os atri#utos %estad=sticas de estudio so#re la aplicación ,"-$F.
&p#ndice C. $s un peueEo tutorial para uiarnos en la instalación de la )erramienta desimulación ,"-$F.
&p#ndice '. !ntroducción al +ontrol (iital. Dápida *isión del control de procesos.
(istinción entre control automático % manual lazo a#ierto % lazo cerrado' diitalizacióndel control' controladores más importantes' &enómenos caracter=sticos...
&p#ndice E. (escripción del contenido del +( adunto a la memoria. &p#ndice . @crónimos % de&iniciones mencionados a lo laro del documento.
13
8/17/2019 Memoria Pro Yec to Final
11/167
Técnicas AQM basadas en Control Predictivo
F i g ) r a
.
0
D i a g r a m a d e
G a n t t d e l a r e a l i z a c i ó n d e l p
r o y e c t o
14
8/17/2019 Memoria Pro Yec to Final
12/167
C')*%!+, II
I#%&,-!((/# ' +' &e-e -e,&-e#'-,&e
2. 1 Introducción
M!nternetN' ese término tan desconocido' tan e/clusi*o de la ente moderna )ace apenas 10 aEos %tan interado en nuestras *idas a d=a de )o%. @ctualmente' por lo menos en mi caso' es poco onada conce#i#le la *ida sin la red de redes. (esde primera )ora de la maEana %a esto%consultando mi smart!one para enterarme de las Iltimas noticias' mientras camino )acia mi
puesto de tra#ao miro los Iltimos t"eets escritos por mis #ollo"in$s. na *ez en la o&icinaaccedo a la red corporati*a % comienzo a desarrollar so&tare' sincronizo mis cam#ios en &ic)eroscon los del resto de mi euipo a tra*és de C-' desplieo las aplicaciones en di&erentes entornos'consulto li#ros % documentación online... "or &in se )ace la )ora de *ol*er a comer a casa' por elcamino decido utilizar la aplicación de ese &amoso restaurante para pedir ese plato ue tanto meusta. ras reposar la comida me pono a tra#aar en el presente pro%ecto' *eo ue mi licencia dela )erramienta ,"-$ )a caducado' me conecto al ser*idor de licencias % la renue*o para unosmeses % as= comienzo con mi ue)acer *espertino. $l cielo se *a oscureciendo' una noti&icaciónde %!atsa llea a mi telé&ono' mi rupo de amios )a decidido salir a tomar unos pinc)os %caEas % uieren ue me apunte' para desconectar del duro d=a de tra#ao decido marc)ar' actualizomi estado de #aceboo& % acudo raudo % *eloz. (urante la reunión un colea me enseEa la nue*aaplicación de su smart!one % cómo racias a ella puede estar al tanto de los resultados %)orarios de los e*entos deporti*os ue le interesan. >inalmente lleo a casa' contesto *arios emails % puo en e'a( por esa &iura ue lle*o tanto tiempo ueriendo conseuir. $s )ora de irse ala cama' escri#o un t"eet de #uenas noc)es % cierro los oos.
$l d=a ue aca#o de descri#ir no )u#iese transcurrido de iual &orma de no ser por internet.@unue no lo creamos estamos e/puestos al tránsito de datos %' por e/tensión' de la in&ormacióndurante todo el tiempo >iura 2. 1.
$*identemente' esta situación no se )a dado de la noc)e a la maEana. Las meoras tanto en lain&raestructura como en la lóica de las redes )a ido meorando nota#lemente con el transcurso delos aEos. $l creciente consumo de datos )a *enido acompaEado de una meora en la e&iciencia dela red.
$/isten *arios puntos % ni*eles desde los cuales se pueden contri#uir a optimizar el trá&ico dedatos. $n el presente pro%ecto )e uerido a#ordar la pro#lemática de la conestión de pauetes en
los router % para ello se )a realizado la implementación % estudio de di&erentes propuestas."ara situarnos en el conte/to ue nos ataEe' se )a escrito este cap=tulo introductorio parae/plicar conceptos importantes relacionados con las redes de ordenadores.
8/17/2019 Memoria Pro Yec to Final
13/167
Fig)ra 0. Simplificación de una topología WAN
2. 2 Pila de protocolos
"ara reducir la compleidad de su diseEo' la ma%or=a de las redes están oranizadas como una pilade capas o ni*eles' cada una construida a partir de la ue está de#ao de ella. $l nImero de capas'as= como el nom#re' contenido % &unción de cada una de ellas di&ieren de red a red. $l propósito decada capa es o&recer ciertos ser*icios a las capas superiores' a las cuales no se les muestran losdetalles reales de implementación de los ser*icios o&recidos.
$ste concepto es mu% conocido % utilizado en el campo de la in&ormática' donde se conoce dedi*ersas maneras' como ocultamiento de in&ormación' tipos de datos a#stractos' encapsulamientode datos % proramación orientada a o#etos. La idea #ásica es ue una pieza particular de so&tareo )ardare proporciona un ser*icio a sus usuarios pero nunca les muestra los detalles de suestado interno ni sus aloritmos. Gan03H
$/iste un modelo #asado en una propuesta desarrollada por la !C, para estandarizar los protocolos en un modelo de capas. Cu nom#re es modelo ,C! % está &ormado por siete capas. $n la>iura 2. 2 se puede o#ser*ar un esuema del modelo.
8/17/2019 Memoria Pro Yec to Final
14/167
II. INTRODUCCIÓN A )A* R+D+* D+ ORD+NADOR+*
Fig)ra 0. 0 Niveles OSI y relaciones ost!router
Ce *a a proceder a resumir #re*emente cada una de las capas del modelo de re&erencia ,C!.
9a capa fsicaG $n esta capa es donde se transmite la in&ormación' %a como #its' a tra*ésdel canal de comunicación. Los aspectos de diseEo implican aseurarse de ue cuando unlado en*=a un #it 1' éste se reci#a en el otro lado con *alor 1. Las cuestiones a resol*er eneste ni*el están relacionadas con *alores de tensión' muestreos' conectores de red... Losaspectos de diseEo' por tanto' tienen ue *er muc)o con inter&aces mecánicas' eléctricas %de temporización' además del medio &=sico de transmisión' ue está usto por de#ao de
esta capa. 9a capa de enlaceG Ce encara de trans&ormar los datos del emisor en tramasnormalmente' de alunos cientos o miles de #%tes % transmitirlas de &orma secuencial.$n un ser*icio con&ia#le el receptor en*=a una trama de con&irmación. @ parte' esta capatam#ién se encara de controlar el &luo de in&ormación para no saturar a receptores lentos.
9a capa de redG $ncarada de controlar las operaciones de la su#red. +ómo aspecto mu%importante está el enrutamiento entre redes. $sta capa es la ue más nos importa en el
presente pro%ecto' en ella es donde se !estiona el control de la con!estión con permisode la capa de transporte en los puntos donde se producen cuellos de #otellas ue colapsanla red.
9a capa de transporteG $sta capa tiene como principal o#eti*o &ramentar los datos ue
le llean de la capa superior % aseurarse de ue éstos se reci#en correctamente en eldestino control e/tremo a e/tremo.
17
8/17/2019 Memoria Pro Yec to Final
15/167
Técnicas AQM basadas en Control Predictivo
La capa de transporte tam#ién determina ué tipo de ser*icio proporcionar a la capa de sesión %'&inalmente' a los usuarios de la red. $l tipo de cone/ión de transporte más popular es un canal
punto a punto li#re de errores ue entrea mensaes o #%tes en el orden en ue se en*iaron. Cinem#aro' otros tipos de ser*icio de transporte posi#les son el en*=o de mensaes aislados' ue noarantiza el orden de entrea' % la di&usión de mensaes a mIltiples destinos. $l tipo de ser*icio sedetermina cuando se esta#lece la cone/ión. +omo o#ser*ación' es imposi#le alcanzar un canalli#re de erroresO lo ue se uiere dar a entender con este término es ue la tasa de error es tan #aaue se puede inorar en la práctica.
La capa de transporte es una *erdadera cone/ión de e/tremo a e/tremo' en toda la ruta desdeel orien )asta el destino. $n otras pala#ras' un prorama en la máuina de orien lle*a a ca#o unacon*ersación con un prorama similar en la máuina de destino' usando los enca#ezados demensae % los mensaes de control. $n las capas in&eriores' los protocolos operan entre cadamáuina % sus *ecinos inmediatos' % no entre las máuinas de los e/tremos' la de orien % la dedestino' las cuales podr=an estar separadas por muc)os enrutadores Gan03H.
Capa de sesiónG "ermite a los usuarios de máuinas di&erentes esta#lecer Pcon*ersaciónP.Cer*icios relacionados con las sesiones son el control del diáloo' administración deoperaciones cr=ticas % sincronización.
Capa de presentaciónG La#ores de análisis sintáctico % semántico de la in&ormacióntransmitida.
Capa de aplicaciónG +ontiene los protocolos ue utilizan los usuarios de &orma directa."or eemplo el &amoso protocolo Q" del RRR' el >" de trans&erencia de &ic)eros oel C;" de correo electrónico' as= como otros más espec=&icos tal como C-;" demonitorización de redes.
2. 3 TCP / IP
$l modelo ,C! es sólo una re&erencia' sólo nos da las pautas % normas en la creación de una pila de protocolos. +"J!" es una implementación real multicapa e/tendida mundialmente. +omo se puede *er en la >iura 2. 3 se de&ine un modelo de cuatro capas. $n la >iura 2. 4 se muestran los protocolos presentes en cada una de esas las capas.
Fig)ra 0. 1 "#uivalencias de la pila OSI con la pila $C%&I%
18
8/17/2019 Memoria Pro Yec to Final
16/167
8/17/2019 Memoria Pro Yec to Final
17/167
Técnicas AQM basadas en Control Predictivo
Fig)ra 0. / Niveles $C%&I% y relaciones ost!router
+" nos proporciona dos utilidades cla*eA
1. (ireccionamientoA tiliza puertos. $l campo del identi&icador +" permite )asta 65.536direcciones puertos +" di&erentes' lo ue parece más ue su&iciente para cualuier red.G+$K10H
2. +ontrol del diáloo e/tremo a e/tremo.
@ continuación listamos las caracter=sticas principales de +"A
>ia#ilidad en el transporte de la in&ormación. $stá orientado al &luo de octetos octect stream &ia#le de e/tremo a e/tremo. Ce uiere aseurar de ue los pauetes llean a sudestino.
!nter&az b##ered con usuarios. "or cada usuario' +" reser*a recursos entre ellosutilizando b##ers.
+one/ión #ll0dle/ es posi#le transmitir en am#os sentidos de &orma simultánea. -o tiene en cuenta la estructura de los datos de usuario. $s relati*amente compleo pero #astante e&iciente. Kasado en la &amilia de procedimientos
slidin$ "indo"s *entana deslizante. +ontrol de diálooA ?arantiza ue durante la transmisión no )a% pérdida de octetos % ue
no se produzca saturación ni #loueo en los b##ers. +" se encarará de controlar el &luo para ue un emisor no lleue a saturar al receptor. (el mismo modo' %a en +" e/istirá cierto control de la conestión' como *eremos en el
pró/imo cap=tulo' para e*itar la saturación de la red.
20
8/17/2019 Memoria Pro Yec to Final
18/167
II. INTRODUCCIÓN A )A* R+D+* D+ ORD+NADOR+*
@lunos de los parámetros más importantes en +" se descri#en a continuaciónA
i!ura 2. 6 ransacción e/tremo ae/tremo por +"
Tamao de $entanaG ;á/ima cantidad deoctetos ue se pueden en*iar en el siuientesemento. La entidad emisora puede en*iar unacantidad determinada de datos' pero antes de#eesperar un asentimiento con la actualización deltamaEo de *entana por parte del receptor. GR>H
;entanaG Cecuencia consecuti*a de posiciones alas ue +" tienen acceso.
&CFG "osición del siuiente octeto ue se uiereen*iar. Cir*e de acuse de reci#o de con&irmaciónde recepción del semento >iura 2. 6.
21
8/17/2019 Memoria Pro Yec to Final
19/167
C')*%!+, III
E+ )&,$+e"' -e+ (,#%&,+ -e +'(,#0e%/#
3. 1 Introducción
+uando )a% demasiados pauetes presentes en la su#red o en una parte de ella' )a% unaderadación del desempeEo. $sta situación se llama conestión. $n la >iura 3. 1 se muestra estes=ntoma. +uando la cantidad de pauetes descarados en la su#red por los !osts está dentro de sucapacidad de conducción' todos se entrean e/cepto unos pocos a&liidos por errores detransmisión % la cantidad entreada es proporcional al nImero en*iado. Cin em#aro' a medidaue aumenta el trá&ico' los routers %a no pueden manearlo % comienzan a perder pauetes. $sto
tiende a empeorar las cosas. +on muc)o trá&ico el desempeEo se desploma por completo % casi no)a% entrea de pauetes. Gan03H
Fig)ra 1. Gr)fica de desempe*o de la red ante casos de congestión
23
8/17/2019 Memoria Pro Yec to Final
20/167
La conestión se puede de#er a *arias causas. Ci los pauetes llean a partir de *arias l=neas deentrada' por eemplo' cuatro clientes conectados a un router' % éste dispone de una Inica l=nea desalida so#re la ue redireccionar los pauetes' se puede dar el caso de ue la cola se empiece allenar. Ci no )a% su&iciente memoria para encolar todos los pauetes ue llean éstos se perderán.:na cola de tamao infinito tampoco sera solución ' %a ue para cuando muc)os pauetesllearan al principio de la cola su temporizador +" %a )a#r=a e/pirado *arias *eces' lo ue a su*ez )u#iese enerado nue*os reen*=os de duplicados de esos pauetes. $stos pauetes' %ainser*i#les' serán reen*iados a lo laro de la red' aumentado la cara de &orma mu% nota#le.
$s #astante e*idente ue un procesador lento tam#ién puede causar conestión. Ci la +" eslenta realizando las tareas de administración necesarias' en la cola se irán acumulando pauetes ala espera de ser procesados. (el mismo modo' l=neas con poco anc)o de #anda' tam#ién puedenocasionar pro#lemas de conestión. Qa% ue #uscar un euili#rio entre todos los componentes dela red' en caso contrario no se conseuirá más ue localizar el cuello de #otella en otra parte de lared.
3. 2 Principios !enerales del control de la con!estión
Los pro#lemas de los sistemas compleos' como es el caso de las redes de ordenadores' se puedenanalizar desde el punto de *ista de una teor=a de control. "odemos di*idir las soluciones en dosrandes rupos' de lazo a#ierto % de lazo cerrado. Kásicamente' las soluciones en lazo a#iertointentan resol*er el pro#lema en #ase a un #uen diseEo' intentando e*itar ue el error suceda.+uando el sistema %a está &uncionando no se )acen correcciones. ;ecanismos de este tipo ser=anlas decisiones de aceptación de nue*o trá&ico' de descarte de pauetes' de calendarización. odastienen en comIn el )ec)o de ue toman decisiones independientemente del estado actual de la red.
$n contraste' las soluciones de lazo cerrado están #asadas en el concepto de un ciclo de #eedbac& . $ste método tiene tres partes cuando se aplica al control de conestiónA
1. ;onitorizar el sistema para detectar cuándo % dónde ocurren las conestiones.2. $n*iar esa in&ormación a los sitios donde se pueda actuar so#re el pro#lema.3. +orreir el pro#lema desde esos luares.
Ce pueden utilizar *arias métricas para monitorizar la su#red #uscando conestiones. Las principales son el porcentae de pauetes descartados de#ido a &alta de espacio de b##er ' lalonitud media de las colas' la cantidad de pauetes para los cuales termina el temporizador % setransmiten de nue*a cuenta' el retardo promedio de los pauetes % la des*iación estándar delretardo de pauete. $n todos estos casos' un aumento en las ci&ras se traduce en un aumento en laconestión. $l seundo paso del ciclo de retroalimentación es la trans&erencia de in&ormaciónrelati*a a la conestión desde el punto en ue se detecta )asta el punto en ue puede )acerse alo al
respecto.La manera más o#*ia es ue el router ue detecta la conestión en*=e un pauete al orien u
or=enes del trá&ico' anunciando el pro#lema. "or supuesto' estos pauetes adicionales aumentanla cara precisamente en el momento en ue no se necesita más cara' es decir' cuando la su#redestá conestionada.
"or suerte' e/isten otras opciones. "or eemplo' en cada pauete puede reser*arse un #it ocampo para ue los routers lo llenen cuando la conestión re#ase alIn um#ral. +uando un router detecta este estado conestionado' llena el campo de todos los pauetes de salida' para a*isar a los*ecinos.
,tra estrateia es )acer ue los )osts o routers en*=en de manera periódica pauetes de sondeo para preuntar e/pl=citamente so#re la conestión. $sta in&ormación puede usarse para enrutar eltrá&ico &uera de áreas con pro#lemas. n s=mil ser=a' por eemplo' una emisora de radio' la cuáltiene )elicópteros so#re*olando por una ciudad' desde all= se detectar=an las calles con ma%or
24
8/17/2019 Memoria Pro Yec to Final
21/167
III. +) PRO')+MA D+) CONTRO) D+ )A CON+*TIÓN
trá&ico % se in&ormar=a por radio a los conductores so#re la situación' para ue éstos no circulen por las *=as con&licti*as.
$n todos los esuemas de &eed#ac' la esperanza es ue el conocimiento so#re la conestión)aa ue los )osts emprendan acciones adecuadas con el propósito de reducir la conestión. "araoperar de &orma correcta' la escala de tiempo de#e austarse cuidadosamente. Ci el router rita@L, cada *ez ue llean dos pauetes seuidos' % C!?@' cada *ez ue está inacti*o durante 20Tse' el sistema oscilará sin control % nunca con*ererá. "or otra parte' si un enrutador espera 30minutos para aseurarse antes de tomar una decisión' el mecanismo de control de conestiónreaccionará tan lentamente ue no será de utilidad. "ara &uncionar de &orma óptima se reuiereencontrar la constante de tiempo correcta' pero éste no es un asunto tri*ial.
Ce conocen muc)os aloritmos de control de conestión. @ &in de oranizarlos lóicamente'an % Dedd% 1995 )an desarrollado una ta/onom=a de los aloritmos de control de conestión.
$mpiezan di*idiendo los aloritmos por lazo a#ierto % lazo cerrado' de la misma &orma ue se)a indicado anteriormente. (entro del primer rupo' se podr=an destacar dos su#cateor=as' losaloritmos ue actIan en el orien % los ue lo )acen en el destino. Los aloritmos de lazo cerradotam#ién se di*iden en dos su#cateor=asA retroalimentación e/pl=cita e impl=cita. $n los aloritmosde retroalimentación e/pl=cita' reresan pauetes desde el punto de conestión para a*isar al
orien. $n los aloritmos impl=citos' el orien es el ue intu%e la e/istencia de una conestión)aciendo o#ser*aciones locales' como el tiempo necesario para ue reresen las con&irmaciones derecepción.
La presencia de conestión sini&ica ue la cara es temporalmente superior en una partedel sistema a la ue pueden manear los recursos colouialmente' un cuello de #otella. $/istendos soluciones iniciales ue se nos pueden ocurrirA aumentar los recursos o disminuir la cara. "or eemplo' la su#red puede comenzar a utilizar l=neas de acceso tele&ónico para aumentar de maneratemporal el anc)o de #anda entre ciertos puntos. La di*isión del trá&ico entre *arias rutas en luar de usar siempre la meor tam#ién aumenta e&ecti*amente el anc)o de #anda. "or Iltimo' a &in decontar con ma%or capacidad' los routers de repuesto ue normalmente sir*en sólo como respaldopara )acer ue el sistema sea tolerante a &allas' pueden ponerse en l=nea cuando aparece una
conestión se*era. Cin em#aro' a *eces no es posi#le aumentar la capacidad' o ésta %a )a sidoaumentada al má/imo. $ntonces' la Inica &orma de com#atir la conestión es disminuir la cara.$/isten *arias maneras de reducir la cara' como near el ser*icio a alunos usuarios' deradar elser*icio para alunos o todos los usuarios % o#liar a los usuarios a proramar sus solicitudes deuna manera más predeci#le.
3. 3 "#todos de pre$ención de con!estión
$n los sistemas de ciclo a#ierto se intenta pre*enir la conestión antes de ue ésta suceda. "odemosaplicar di&erentes pol=ticas a di&erentes ni*eles de la pila. @ continuación se muestra una ta#la con
una clasi&icación de las mismasA Gan03H
Capa Polticas
Transporte • "ol=tica de retransmisión• "ol=tica de almacenamiento en cac)é de pauetes &uera de orden• "ol=tica de con&irmaciones de recepción• "ol=tica de control de &luo• (eterminación de terminaciones de temporizador
(ed • +ircuitos *irtuales *s. dataramas en la su#red• Poltica de encolamiento y ser$icio de pauetes
25
8/17/2019 Memoria Pro Yec to Final
22/167
Técnicas AQM basadas en Control Predictivo
• Poltica de descarte de pauetes• @loritmo de enrutamiento• @dministración de tiempo de *ida del pauete
Enlace • "ol=tica de retransmisiones• "ol=tica de almacenamiento en cac)é de pauetes &uera de orden• "ol=tica de con&irmación de recepción• "ol=tica de control de &luo
3. 4 Primeras decisiones para el control de la con!estión
n router puede monitorizar el estado de sus l=neas % *er el estado en el ue se encuentran susrecursos. Ci se detecta ue )a% conestión' el router puede reaccionar de *arias manerasA
El it de ad$ertenciaG +uando se detecta#a conestión' el enrutador marca#a a 1 el #it dead*ertencia. $n el momento ue el receptor o#ten=a el pauete' si se encontra#a el #it marcado' loindica#a de iual manera en el pauete de con&irmación de la recepción. +uando el orien reci#=aeste pauete' si *e=a sinos de conestión' disminu=a el trá&ico %' si la situación persist=a' lo seu=areduciendo proresi*amente. $n el momento ue se resta#leciera la situación % el #it %a no *inieramarcado el orien podr=a aumentar de nue*o la cara so#re la su#red.
Pauetes re!uladoresG $n este momento incidimos so#re el pro#lema de &orma directa. Ci unrouter detecta conestión' éste enera un pauete )acia el orien para indicarle el pro#lema %marca el pauete para ue el resto de routers sepan ue %a se )a noti&icado de la situación % no semanden más pauetes reuladores. $l pauete reulador indica al orien ue tiene ue reducir un
porcentae determinado el trá&ico so#re la red. $s pro#a#le ue el )ost orien reci#a más pauetesreuladores re&erentes a otros en*=os' para e*itar la reducción indiscriminada de trá&ico inorará
los pauetes reuladores durante un periodo de tiempoO si pasado ese periodo se siuen reci#iendo pauetes )a% ue *ol*er a reducir el trá&ico' as= )asta ue %a no se reci#an' entonces es el momentode *ol*er a aumentar la cara.
Los )osts pueden reducir el trá&ico austando los parámetros de sus pol=ticas' por eemplo' sutamaEo de *entana. "or lo eneral' el primer pauete reulador causa ue la tasa de datos sereduzca en 0'50 con respecto a su tasa anterior' el siuiente causa una reducción de 0'25' etcétera.Los incrementos se dan en aumentos más peueEos para e*itar ue la conestión se *uel*a aenerar rápidamente.
Los pauetes reuladores pueden ser de distinto ni*el para indicar la se*eridad de laconestión ad*ertencia sua*e' una se*era o un ultimátum.
Decordad ue con este método se monitoriza el estado de la l=nea' sin em#aro' e/isten
*ariantes en las ue lo ue se controla son los parámetros de los b##ersJcolas.$ste método no &unciona mu% #ien en distancias randes o a altas *elocidades porue lareacción a la conestión es demasiado lenta.
3. 5 "#todos e%tremos para controlar la con!estión
$n casos e/tremos' cuando la conestión sea #astante ele*ada' no uedará otra ue descartar pauetes. $ncontramos un s=mil en el tema de la ener=a eléctrica' cuando la demanda de ener=aes e/cesi*a' se producen apaones controlados para e*itar ue toda la red eléctrica se *ena a#aopor eemplo en d=as calurosos de *erano' como el d=a en el ue escri#o estas l=neas' en los ue se
usa sin conocimiento el aire acondicionado.La primera apro/imación de realizar el descarte ser=a eliminar pauetes de manera aleatoriacuando se produce el colapso. Cin em#aro' dependiendo de la situación' se pueden #uscar otras
posi#ilidades más óptimas. !mainemos' por eemplo' ue se está realizando la transmisión de un
26
8/17/2019 Memoria Pro Yec to Final
23/167
III. +) PRO')+MA D+) CONTRO) D+ )A CON+*TIÓN
&ic)ero' suponamos ue consta de 12 pauetes % ue el nImero 3 se pierde' esto creará un )uecoen la recepción ue puede )acer necesaria la retransmisión de los pauetes del 3 al 12' en este casoes pre&eri#le des)acerse de pauetes *ieos ue de los nue*os creará menos retransmisiones. ncaso opuesto es el de la trans&erencia de contenido multimedia' au= es más importante reci#ir
primero lo más nue*o."uede e/istir la posi#ilidad en la ue e/ista una di&erenciación de pauetes. Las aplicaciones
pueden marcar los pauetes con una prioridad en #ase a su importancia. $l router eliminará de suscolas los pauetes en &unción de su prioridad importancia.
La razón podr=a ser monetaria' siendo más #arato el en*=o de pauetes de #aa prioridad ue elde los de alta prioridad. +omo alternati*a' los emisores podr=an tener permitido en*iar pauetes dealta prioridad #ao condiciones de cara liera' pero a medida ue aumente la cara' los pauetes
podr=an descartarse' lo ue )ar=a ue los usuarios %a no siuieran en*iándolos. $ste caso podr=acoincidir U uardando las distancias U con el de ser*icios de almacenamiento masi*o de &ic)erospor eemplo Raids!are o el malorado Me$aload ' cuentas premium C cuentas ratuitas.
3.5.1 &l!oritmo 'rop Tail
(rop tail es un aloritmo mu% simple de estión de colas para sa#er cuando eliminar un pauete.$n contraste con otros aloritmos más compleos como D$(' en (rop ail todo el trá&ico es tratadode la misma manera. +uando la cola esta llena a su má/ima capacidad' los nue*os pauetes uelleuen serán descartados )asta ue la cola *uel*a a tener su&iciente espacio para aceptar trá&icoentrante.
La pérdida de dataramas causa ue el emisor +" orien pase a un estado de arranue lento'en el ue +" reducirá el tamaEo de la *entana de conestión )asta ue se *uel*an a reci#ir losreconocimientos del receptor.
3.5.2 &l!oritmo (E'
$s #ien sa#ido ue tratar con la conestión después de ue se detecta por primera *ez es máse&ecti*o ue dear ue daEe el tra#ao % lueo tratar de solucionarlo. $sta o#ser*ación conduce a laidea de descartar pauetes antes de ue se ocupe todo el espacio de #I&er. n aloritmo popular
para realizar esto se conoce como D$( detección temprana aleatoria >lo%d % Vaco#son' 1993.$n alunos protocolos de transporte entre ellos +"' la respuesta a pauetes perdidos consiste enue el orien disminu%a su *elocidad. $l razonamiento detrás de esta lóica es ue +" &uediseEado para redes ca#leadas' % éstas son mu% con&ia#les' por lo tanto' la pérdida de pauetes sede#e principalmente a des#ordamientos de #I&er % no a errores de transmisiones. $ste )ec)o puedeapro*ec)arse para reducir la conestión.
$l o#eti*o de )acer ue los enrutadores se des)aan de los pauetes antes de ue la situación
sea irremedia#le de au= el término MtempranaN en el nom#re' es ue )a%a tiempo para )acer aloantes de ue sea demasiado tarde. "ara determinar cuándo comenzar a descartarlos' los enrutadoresmantienen un promedio mó*il de sus lonitudes de cola. +uando la lonitud de cola promedio enalunas l=neas so#repasa un um#ral' se dice ue la l=nea está conestionada % se toma alunamedida.
(e#ido a ue tal *ez el enrutador no puede sa#er ué orien está causando la ma%or=a de los pro#lemas' pro#a#lemente lo meor ue se puede )acer es eleir un pauete al azar de la cola ue puso en marc)a la acción.
+ómo puede el enrutador in&ormar al orien so#re el pro#lema: na &orma es en*iarle un pauete reulador' como descri#imos anteriormente. Cin em#aro' con ese método sure un pro#lema %a ue coloca toda*=a más cara en la %a conestionada red. na estrateia di&erente es
descartar el pauete seleccionado % no reportarlo. $l orien notará en alIn momento la &alta decon&irmación de recepción % tomará medidas. (e#ido a ue sa#e ue los pauetes perdidos por loeneral son causados por la conestión % las eliminaciones' responderá reduciendo la *elocidad enluar de aumentarla. $sta &orma impl=cita de retroalimentación sólo &unciona cuando los or=enes
27
8/17/2019 Memoria Pro Yec to Final
24/167
Técnicas AQM basadas en Control Predictivo
responden a la pérdida de pauetes reduciendo su tasa de transmisión. $n las redes inalám#ricas'en las ue la ma%or=a de las pérdidas se de#e al ruido en el enlace de radio' no se puede utilizar este método.
$l diarama de &luo de la >iura 3. 2 muestra el comportamiento del aloritmo.+uando llea un pauete' se calcula el tamaEo medio de la cola % %a' directamente' se procede
a encolar o eliminar el pauete si el tamaEo de la cola se encuentra por encima o por de#ao de dosum#rales má/imo % m=nimo respecti*amente.
Ci el tamaEo está entre estos dos um#rales calculamos una pro#a#ilidad ue nos permitirátomar la decisión de des)acernos o no del pauete en &unción de la siuiente e/presiónA
7minJma/7min t!t!t! d av$ Ma/ P −−=
Fig)ra 1. 0 Diagrama de flu'o del algoritmo +"D
28
8/17/2019 Memoria Pro Yec to Final
25/167
C')*%!+, IV
AQM e# OPNET®
4. 1 Introducción$n este cap=tulo ueremos estudiar a &ondo los elementos de red ue nos proporciona ,"-$F %ue tienen relación directa con el control de la conestión. $n el @péndice @ e/iste un u=ae/tendida de ,"-$F ue nos permite conocer a &ondo la )erramienta. $n caso de ue el lector noesté &amiliarizado con esta aplicación es recomenda#le leer primero dic)o te/to.
$n primera instancia se irá *iendo paso a paso % ni*el a ni*el como se utilizaJimplementa laestión acti*a de colas para' después' aEadir las modi&icaciones pertinentes para ampliar la&uncionalidad del simulador esto será más adelante' en los cap=tulos 5 % 6.
@ ni*el de topolo=a de red' los nodos de ,"-$ ue nos interesan serán el nodo iura 4. 1' ue es el ue recoe' de&orma lo#al' los atri#utos relacionados con la calidad de ser*icio so#re la red.
Fig)ra 4. Icono del elemento ,oS
"rimero detallaremos la estructura a tra*és del modelo de nodos' para después sumerirnos so#resu comportamiento en el modelo de procesos. $n el apéndice @ se *en los conceptos % normasutilizadas en cada ni*el de desarrollo' de &orma ue in*itamos al lector a acudir a dic)o cap=tulo sinecesita re&orzar o entender aluno de los conceptos utilizados.
4.2.1 "odelo de nodos del elemento *o+
+omo %a se )a dic)o' este elemento se utiliza para con&iurar de manera lo#al per&iles de
8/17/2019 Memoria Pro Yec to Final
26/167
Fig)ra 4. 0 %rocesador del modelo de nodos -attri(ute.definer/
$ste modelo de nodos es as= de sencillo porue su Inico cometido consiste en la con&iuración de parámetros accesi#les por otros modelos en el momento de la simulación. -o tiene &uncióneui*alente a ninIn dispositi*o &=sico. $l modelo de procesos del Inico nodo recoerá losatri#utos introducidos por el usuario. ,tros elementos' como el de de&inición de aplicaciones %
per&iles tienen una simplicidad similar a éste."ara poder *er los atri#utos ue o&rece este modelo de nodos al usuario' accesi#les desde el
modelo de red' )a% ue mirar en el menI Inter#acesW Model Attribtes' pero como se puedeo#ser*ar no e/iste ninuna entrada' eso es de#ido a ue estos atri#utos son )eredados directamentedel modelo de procesos. "oco más podemos e/plicar a este ni*el' #aemos un ni*el más a#ao.
4.2.2 "odelo de procesos del nodo attribute_definer
$n el modelo de procesos será dónde realmente se recoan los parámetros introducidos por elusuario a ni*el de red.
Fig)ra 4. 1 0odelo de procesos de attribute_definer
+omo se *e en la &iura' el modelo de procesos es denominado 3os2attribte2de#iner .?rá&icamente' el diarama de estados de este nodo está &ormado por un Inico estado' el estado
arse' ue además es el estado inicial e*identemente al ser el Inico. -inuna transición serealiza. $l color roo del estado indica ue éste es no &orzado n#orced state. Cus enter e/ectivesconsta de 56 l=neas % sus e/it e/ectives estarán *ac=as tampoco tendr=a sentido ue )u#ieraaluna l=nea' %a ue no )a% transición aluna ue o#liue a eecutar dic)o códio.
@ continuación *amos a *er los di&erentes MapartadosN de descripción de este modelo.
Header DlocB
$ntre los &ic)eros de ca#ecera ue se inclu%en ca#e destacarA
#include
$ste &ic)ero de&ine las estructuras asociadas al maneo de colas 3ee mana$ement . Lasestructuras au= de&inidas serán utilizadas en e/ternal &ile omsXm.e/.c' el cual implementa
30
8/17/2019 Memoria Pro Yec to Final
27/167
I4. AQM +N OPN+T5
&unciones para la estión de colas' entre ellas' las &unciones espec=&icas utilizadas en el control de laconestión.
$n el apartado en el ue se prede&inen las &unciones es importante &iarse en la siuienteattr_def_fifo_profiles_info_parse' la cuál recoe los atri#utos uardados en el atri#uto compuesto>!>, "ro&iles.
;ariales de Estado
@ destacar la *aria#le m(2ob6id de tipo Ob6id ' ue ser*irá como re&erencia para acceder a losdistintos atri#utos.
;ariales Temporales
Cerán utilizadas' como %a se )a *isto' Inicamente dentro del modelo de procesos. Con *aria#lesau/iliares para el maneo e identi&icación de o#etos.
Enter E%ecuti$es
Las acciones realizadas en esta porción de códio son las siuientesA
Ce inicializan las *aria#les de estado % temporales al iual ue ciertas estructuras. Deistra la e/istencia del modelo de procesos para ue pueda ser accesi#le desde otros
modelos por eempo i2disatc! dentro del nodo Douter' mediante la &unciónoms2r2rocess2re$ister .
!n*oca a la &unción attr2de#2#i#o2ro#iles2in#o2arse78 para recoer los atri#utos del tipo>!>, si están con&iurados.
am#ién llama a otras &unciones relacionadas con otras disciplinas % protocolos.
unction DlocB
amos a centrarnos en la &unción nom#rada anteriormente attr_def_fifo_profiles_info_parse.
static void attr_def_fifo_profiles_info_parse (void ){OmsT_Qm_Attributes qm_attr_ptr ! O"_$%&'OmsT_Qm_%"_Queue_onfiuration qconfi_ptr ! O"_$%&'op_ima_ob_attr_et(m*_obid+,-%-O "rofiles,+ qc_information_obid)'/
0Obtener el nombre del perfil -%-O0op_ima_ob_attr_et (queuin_t*pe_obid+ ,"rofile $ame,+ prof_name)'
/*Reservar memoria para almacenar el atributo QoS usado por la interfazIP*/
qm_attr_ptr ! ip_qos_attributes_create (%pT_-ifo_"ool+ 1+(int)Oms_2uffer_"arent_&imit+ O"_T345)'qconfi_ptr ! (OmsT_Qm_%"_Queue_onfiuration)qm_attr_ptr6>queue_confiuration789'op_ima_ob_attr_et(queuin_t*pe_obid+,:etails,+(queue_confiuration_obid))'
/op_ima_ob_attr_et (queue_confiuration_child_obid+ ,;aimum Queue=ie,+ ma_queue_sie)'qconfi_ptr6>ma_sie ! (double) ma_queue_sie'/
31
8/17/2019 Memoria Pro Yec to Final
28/167
Técnicas AQM basadas en Control Predictivo
/* En este punto se implementará, como se verá más adelante, larecolección y reserva de memoria de los atributos relacionados con el PI y el !P" */
/* Re#istrar los datos del atributo $I$% Profiles en una base de datos#lobal pasando el puntero a la estructura &m'attr'ptr( )s la informaciónes accesible para todos los ob+etos de la red, por e+emplo, los routers
IP */
oms_data_def_entr*_insert (,-%-O "rofiles,+ prof_name+ qm_attr_ptr)'-O4T'?
La estructura 3m2attr2tr ' de tipo OmsT2Qm2Attribtes' es realmente importante' uardain&ormación mu% olosa so#re las colas como el nImero má/imo de pauetes' nImero de colas por de&ecto' % contiene otras estructuras para almacenar parámetros de cada una de las colas en
particular' del estilo a 3m2attr2tr9:3ee2con#i$ration' ue como se puede o#ser*ar en el
códio' se le )ace una asinación del tipo OmsT2Qm2IP2Qee2Con#i$ration' la otra estructuraimportante' ue mantiene parámetros !" espec=&icos de las colas.
+on esto concluimos el estudio del nodo !"
8/17/2019 Memoria Pro Yec to Final
29/167
I4. AQM +N OPN+T5
Fig)ra 4. / 0odelo de nodos del elemento +outer
-os *amos a centrar en el nodo !"' all= es dónde se encuentra todo el MmeolloN de control de laconestión. (e#emos recordar ue !" en la implementación +"J!" eui*ale' uardando lasdistancias' al ni*el de Ded en el modelo de re&erencia ,C!.
"ara o#ser*ar el comportamiento del procesador !" de#emos acudir a su modelo de procesos padre como se o#ser*ará' coe/iste con otros procesos )ios ue se eecutan en paralelo.
4.3.1 "odelo de procesos ip_dispatch
$l modelo de procesos padre se llama i2disatc! % su diarama de transiciones entre estados se
puede *er en la >iura 4. 6.i2disatc! implementa las &unciones de enrutado !"' &ramentación % reensam#lado. Los pauetes !" llean so#re aluna inter&az % son enrutados a la inter&az de salida apropiada #asándose en la dirección de destino del pauete. $l proceso i2disatc! reuiere una cantidaddeterminada de tiempo para enrutar cada pauete. Los pauetes son remitidos utilizando unadisciplina >!>,.
$l modelo de procesos i2disatc! se encarará de repartir distintas interrupciones entre sus)ios' los cuáles tienen responsa#ilidades % realizan tareas concretas.
33
8/17/2019 Memoria Pro Yec to Final
30/167
Técnicas AQM basadas en Control Predictivo
Fig)ra 4. 3 0odelo de procesos ip_dispatch
@ continuación iremos *iendo los distintos #loues distinti*os del modelo al iual ue se )izo alestudiar el nodo
8/17/2019 Memoria Pro Yec to Final
31/167
8/17/2019 Memoria Pro Yec to Final
32/167
Técnicas AQM basadas en Control Predictivo
Estudio del códi!o fuente
Dealizaremso un #arrido del códio &uente para entender su comportamiento. $mpezaremos por i2disatc!2clean2and2create2c!ild2rocesses78
ip_dispatch_cleanup_and_create_child_processes
$n los comentarios del mismo códio &uente se e/plica el &uncionamiento.
static void ip_dispatch_cleanup_and_create_child_processes (void ){&istproc_record_handle_list_ptr'//* ista para #uardar los procesos re#istrados */ proc_record_handle_list_ptr ! op_pr_list_create ()'
/* etermina la disciplina de cola- $I$%, .$Q,((( El proceso IP dele#arásus tareas en un proceso i+o para cada interfaz &ue enva datos( */ ip_rte_qos_information_process ();
...-O4T'?
ip_rte_qos_information_process
static void ip_rte_qos_information_process (void ){&ist qos_ifaces_list'%pT_Qos_%nfointf_qos_info'
%pT_Qo=_%face_onfi qos_iface_confi_ptr'%pT_3te_%face_Qo=_:ata interface_qos_data_ptr'//** "rea los procesos i+os para procesar pa&uetes en la cola de salida(Se #enera un proceso i+o por cada interfaz( "ada uno modela un mecanismode encolado como $I$%, .$Q o PQ, además de mecanismos de control decon#estión como RE/PI/!P"( **/
/* 0uarda en la memoria compartida información acerca de cada interfaz*/
module_data.shared_mem.iprmd_ptr ! module_data'
/* )lmacena en memoria compartida andles para pa&uetes enviados ydescartados( 1ambien se comparten otras variables de estado con el modelode proceso de la interfaz de salida para tener en cuenta el traficobac2#round en las estadisticas de esa interfaz de salida(*/
module_data.shared_mem.locl_p@_dropped_hdl_ptr !module_data.locl_num_p@ts_dropped_hndl'module_data.shared_mem.lobl_p@_dropped_hdl_ptr !module_data.lobl_num_p@ts_dropped_hndl'module_data.shared_mem.locl_num_p@ts_sent_hdl_ptr !module_data.locl_tot_p@ts_sent_hndl'/
/* %btener num de interfaces(*/ iface_table_sie ! inet_rte_num_interfaces_et (module_data)'
36
8/17/2019 Memoria Pro Yec to Final
33/167
I4. AQM +N OPN+T5
/* Inicializar la lista QoS iface( */ op_pr_list_init (qos_ifaces_list)'
/*"omprobar la e3istencia del ob+eto QoS )ttributes "onfi#( Si no e3isteo no está confi#urado, crea perfiles por defecto(*/ ip_rte_qos_attr_config_info ();
/* %btener y preprocesar la informacion de la IP QoS local */ ip_qos_info_process ((void *) &module_data, &qos_ifaces_list);
/* %btener el numero de interfaces con QoS activa */ total_num_of_qos_ifaces ! op_pr_list_sie (qos_ifaces_list)'
/* Reservar memoria para el array de datos de la interfaz QoS */ module_data.interface_qos_data_pptr !(%pT_3te_%face_Qo=_:ata)op_pr_mem_alloc(iface_table_sie sieof(%pT_3te_%face_Qo=_:ata ))'/
/* "rear una tabla para buscar el ob+id de cada interfaz*/ intf_obid_loo@up_table !ip_rte_proto_intf_attr_obid_table_build(module_data.ip_parameters_obid)'
/* Recorrer todas las QoS active interfaces para inicializar parametrosrelacionados con QoS( */ for (qos_iface_inde ! 8' qos_iface_inde < total_num_of_qos_ifaces' qos_iface_inde ){
qos_iface_confi_ptr ! (%pT_Qo=_%face_onfi )op_pr_list_remoBe(qos_ifaces_list+ O"_&%=T"O=_C5A:)'
/* %btener iface'info'ptr desde el nombre de la interfaz */ if (inet_rte_is_local_intf_name (qos_iface_confi_ptr6>iface_name+
module_data+iface_id+iface_info_ptr+ %net_Addr_-amil*_4n@noDn)){ /
/* 4abilitar Queuin# en esta Interfaz */ if (qos_iface_confi_ptr6>qm_attr_ptr E! O"_$%&){ iface_info_ptr6>queuin_scheme !
qos_iface_confi_ptr6>queuin_scheme'
/* "rear una estructura para pasar ob+id del &os'information'attribute almodelo de proceso ip'output'iface*/
intf_qos_info ! (%pT_Qos_%nfo) op_pr_mem_alloc (sieof (%pT_Qos_%nfo))' / intf_qos_info6>bandDidth_t*pe ! qos_iface_confi_ptr6>bandDidth_t*pe' intf_qos_info6>q_profile_name ! qos_iface_confi_ptr6>q_profile_name' intf_qos_info6>buffer_sie ! qos_iface_confi_ptr6>buffer_sie' intf_qos_info6>attribs_ptr
! qos_iface_confi_ptr6>qm_attr_ptr'
/* "rear y #enerar proceso i+o ip'output'iface para la interfaz(*/ iface_info_ptr6>output_iface_prohandle !
37
8/17/2019 Memoria Pro Yec to Final
34/167
Técnicas AQM basadas en Control Predictivo
op_pro_create (,ip_output_iface,+ module_data.shared_mem)' module_data.shared_mem.iface_inde ! iface_id' op_pro_inBo@e(iface_info_ptr6>output_iface_prohandle+
intf_qos_info)' ? / ?
/?
@ continuación se e/plicarán *arias &unciones implementadas en &ic)eros e/ternos a las ue elmodelo de procesos tiene acceso mediante su declaración en el #loue de ca#ecera.
ip_rte_qos_attr_config_info ip _qos_attr_def_support.ex.cJ
ip_rte_qos_attr_confi_info (){
/** "omprueba la e3istencia de ip attribute ob+ect( **/
if (ip_attribute_obect_eists !! O"_-A&=5){
/* "omprueba la e3istencia del ob+eto mediante el re#istro de procesos( */ op_pr_list_init (proc_record_handle_list)' oms_pr_process_discoBer (O"_O2F%:_%$GA&%:+proc_record_handle_list+
,protocol,+ O;=_"3_=T3%$H+ ,ip_qos_attribute_obect,+ O"_$%&)' if (op_pr_list_sie (proc_record_handle_list) !! 8) { /* Si no e3iste el nodo QoS, crea los valores por defecto( */ oms_qm_pac@ae_init ()' ip_rte_queuin_profiles_defaults_reister ()'? ?-O4T'?
$n esta &unción )a% una llamada a la &unción oms2r2rocess2discover ' ue es la ue determina sie/iste o no un atri#uto
8/17/2019 Memoria Pro Yec to Final
35/167
I4. AQM +N OPN+T5
-%$ (ip_qos_info_process (Obid attr_obid+ qos_ifaces_lptr+ ...))'
/* 5otificaciones */ ip_qos_notif_lo_handles_init()'
/* 4acer un cast para una variable local e&uivalente a module'data */ module_data_ptr ! (%pT_3te_;odule_:ata ) data_ptr'
/* 6ariable para #uardar atributos IP QoS(*/ attr_obid ! module_data_ptr6>ip_qos_params_obid'
/* )cceso al atributos Interface Information del router, &ue #uardaráinformación QoS pero esta vez de forma local, en el router( */ status ! op_ima_ob_attr_et (attr_obid+ ,%nterface %nformation,+
iface_info_obid)'
/* %btener el n7mero de interfaces confi#uradas en el router( */ num_roDs ! op_topo_child_count (iface_info_obid+ O"_O2FTJ"5_H5$53%)'
/* Salir de 8sta función si no ay interfaces confi#uradas( */ if (num_roDs !! 8)-O4T'oms_qm_pac@ae_init ()'0 %nicialia ciertos Balores Qo= 0op_pr_list_init (policies_list)'
/* "reación de base de datos para almacenar perfiles QoS locales( */ profiles_dbase_ptr ! ip_qos_profiles_database_create (module_data_ptr)'
/* Recorrer todas las interfaces IP del router( */ for (i ! 8' i < num_roDs' i){/* Reco#er identificador del atributo interfaz */ ith_attr_obid ! op_topo_child (iface_info_obid+
O"_O2FTJ"5_H5$53%+ i)'
/* Procesar la información en esta interfaz( */ ip_qos_iface_info_process (attr_obid+ ith_attr_obid+ qos_ifaces_lptr+
profiles_dbase_ptr+ policies_list+O"_-A&=5)'
/* %btener información de subinterfaces( En nuestro caso está vaco*/ op_ima_ob_attr_et (ith_attr_obid+ ,=ubinterface %nformation,+
sub_iface_info_obid)'
/*)&u ay procesamiento de subinterfaces, pero lo omitimos por no aber
confi#urado esa información( */ /?
/* iberar memoria */ ip_qos_local_profiles_memor*_free (profiles_dbase_ptr+ policies_list)'-O4T'?
$n esta &unción se recoe toda la in&ormación introducida por el usuario relacionada con lasinter&aces del nodo router Inter#ace In#ormation' >iura 4. 7. Qemos o#*iado el procesamiento desu#inter&aces porue no las lleamos a utilizar.
39
8/17/2019 Memoria Pro Yec to Final
36/167
Técnicas AQM basadas en Control Predictivo
Fig)ra 4. 2 Configuración de la interfaz I% n1 2 del nodo +outer
@ continuación estudiaremos la &unción ue se encara de estionar los *alores introducidos en elatri#uto compuesto Qo* *c!eme i23os2i#ace2in#o2rocess .
ip_qos_iface_info_process ip_qos_support.ex.cJ
static void ip_qos_iface_info_process (Obid qos_attr_obid+ Obidiface_obid+ &ist qos_ifaces_lptr+%pT_Qo=_"rofiles_:base profiles_dbase_ptr+
&ist policies_lptr+ 2oolean is_subiface){ompcode status'Obid qos_scheme_obid+ hold_q_obid'int hold_q_capacit* ! 61+ bandDidth'char iface_name 7KLM9'%pT_Qo=_2andDidth_T*pe bD_t*pe'%pT_Qo=_%face_%nfo iface_qos_info_ptr'%pT_Qo=_%face_onfi qos_iface_confi_ptr ! O"_$%&'
/* $unción &ue procesa la información de cada interfaz, incluyendo QoS(*/
-%$ (ip_qos_iface_info_process (Obid iface_obid+&ist qos_ifaces_lptr+/))'
/* Reservar memoria para la estructura QoS( */ iface_qos_info_ptr! (%pT_Qo=_%face_%nfo ) op_pr_mem_alloc (sieof (%pT_Qo=_%face_%nfo))'
/* Initializar la estructura con valores por defecto( */ iface_qos_info_ptr6>hold_q_capacit* ! (int) Oms_2uffer_"arent_&imit'iface_qos_info_ptr6>reserBed_bandDidth ! 1.8'iface_qos_info_ptr6>bandDidth_t*pe ! %p_Qo=_3elatiBe_2andDidth'iface_qos_info_ptr6>buffer_sie ! 1888888'/iface_qos_info_ptr6>schedulin_info ! O"_$%&'iface_qos_info_ptr6>red_info ! O"_$%&'iface_qos_info_ptr6>in_shapin_info ! O"_$%&'iface_qos_info_ptr6>out_shapin_info ! O"_$%&'
40
8/17/2019 Memoria Pro Yec to Final
37/167
I4. AQM +N OPN+T5
/* %btención de varios atributos de la interfaz( */ op_ima_ob_attr_et (iface_obid+ ,$ame,+ iface_name)'op_ima_ob_attr_et (iface_obid+ ,;aimum 3eserBed 2andDidth,+
bandDidth)'op_ima_ob_attr_et (iface_obid+ ,3eserBed 2andDidth T*pe,+ bD_t*pe)'/
op_ima_ob_attr_et (iface_obid+ ,2uffer =ie,+iface_qos_info_ptr6>buffer_sie)'op_ima_ob_attr_et (iface_obid+ ,Cold Queue apacit*,+ hold_q_obid)'op_ima_ob_attr_et (hold_q_obid+ ,Outbound,+ hold_q_capacit*)'/
/* %btener el atributo QoS( */ status ! op_ima_ob_attr_et (iface_obid+ ,Qo= =cheme,+qos_scheme_obid)'/* %rdenar la información QoS para la interfaz( */ ip_qos_iface_attribute_sort (profiles_dbase_ptr+ iface_qos_info_ptr+qos_attr_objid,qos_scheme_objid, policies_lptr);
/* "rear perfiles QoS para esta interfaz( */ ip_qos_iface_profiles_create (profiles_dbase_ptr+ qos_iface_confi_ptr+iface_qos_info_ptr, qos_attr_objid);/-O4T'?
+omo Qo* *c!eme es un atri#uto compuesto' se utiliza la &unción resaltadai23os2i#ace2attribte2sort para reistrarlo.
ip_qos_iface_attribute_sort ip_qos_support.ex.cJ
static void ip_qos_iface_attribute_sort (%pT_Qo=_"rofiles_:base profiles_dbase_ptr+ %pT_Qo=_%face_%nfo iface_qos_info_ptr+ Obidqos_attr_obid+ Obid qos_scheme_obid+ &ist policies_lptr){ompcode status'Obid th_attr_obid'int + num_entries'char scheme_name 7KLM9'%pT_Qo=_=cheme_T*pe scheme_t*pe'
%pT_Qo=_;echanism_%nfo qos_mechanism_info_ptr'
/* Esta función clasifica la información QoS confi#urada dentro de lainterfaz en una de las si#uientes cate#oras- scedulin#,in/out ")R yRE( Sólo se muestra el códi#o perteneciente al caso &ue nosotrostenemos- $I$% y )Q! */
-%$ (ip_qos_iface_attribute_sort (iface_qos_info_ptr+... ))'
num_entries ! op_topo_child_count (qos_scheme_obid+ O"_O2FTJ"5_H5$53%)'
for ( ! 8' < num_entries' ){
th_attr_obid ! op_topo_child (qos_scheme_obid+O"_O2FTJ"5_H5$53%+ )'
0 3ecoe los atributos T*pe * $ame0 op_ima_ob_attr_et (th_attr_obid+ ,T*pe,+ scheme_t*pe)'
41
8/17/2019 Memoria Pro Yec to Final
38/167
Técnicas AQM basadas en Control Predictivo
op_ima_ob_attr_et (th_attr_obid+ ,$ame,+ scheme_name)'
/* %btiene sceme'type para las condiciones de despu8s y lo #uarda en laestructura &os'mecanism'info'prt */ / strcp* (qos_mechanism_info_ptr6>profile_name+ scheme_name)' qos_mechanism_info_ptr6>t*pe ! scheme_t*pe'
if ((scheme_t*pe!!%p_Qo=_%n_Traffic_"olic*) NN(scheme_t*pe!!%p_Qo=_Out_Traffic_"olic*)){/* 5o es nuestro caso( */
?else{ if ((scheme_t*pe !! %p_Qo=_:-Q_lass_2ased) NN (scheme_t*pe !! %p_Qo=_-%-O) NN/ { /* 1is is a scedulin# mecanism( */ if (iface_qos_info_ptr6>schedulin_info !! O"_$%&){/*5uestro caso, valor dado en ip'&os'iface'info'process*/ iface_qos_info_ptr6>schedulin_info ! qos_mechanism_info_ptr' profile_not_used ! O"_-A&=5' ? else{/?/ ??-O4T'?
$n estas &unciones no se están asinando muc)os *alores porue %a )an sido con&iuradosanteriormente de manera lo#al. "or esta razón parte del códio no se )a incluido.
ip_qos_iface_profiles_create ip_qos_support.ex.cJ
static void ip_qos_iface_profiles_create (%pT_Qo=_"rofiles_:base profiles_dbase_ptr+%pT_Qo=_%face_onfi qos_iface_confi_pptr+%pT_Qo=_%face_%nfo iface_qos_info_ptr+ Obid qos_attr_obid){char profile_name'%pT_Queuin_=cheme queuin_scheme'%pT_Qo=_;echanism_%nfo qos_mechanism_ptr+ red_info_ptr'OmsT_Qm_Attributes qm_attr_ptr ! O"_$%&'%pT_Qo=_%face_onfi qos_iface_confi+ qos_iface_confi_ptr ! O"_$%&'
Boolean is_confi_needed ! O"_-A&=5'
/* Esta función crea perfiles QoS para las interfaces IP */ /* basada en la infomación contenida en iface'&os'info'ptr(*/ -%$ (ip_qos_iface_profiles_create (profiles_dbase_ptr+qos_iface_confi_ptr+...))'
/* )si#nar el nombre de la interfaz( */ qos_iface_confi.iface_name ! iface_qos_info_ptr6>iface_name'qos_iface_confi.qm_attr_ptr ! O"_$%&'
/* 6er si ay confi#uración de QoS scedulin# en la interfaz( */ if(iface_qos_info_ptr6>schedulin_info E! O"_$%&){ qos_mechanism_ptr ! iface_qos_info_ptr6>schedulin_info'/* "o#er la información RE( */
42
8/17/2019 Memoria Pro Yec to Final
39/167
I4. AQM +N OPN+T5
red_info_ptr ! iface_qos_info_ptr6>red_info' profile_name ! qos_mechanism_ptr6>profile_name'
/* %btener &ueuin# sceme basándose en el tipo de perfil confi#urado */ sDitch (qos_mechanism_ptr6>t*pe){/ case %p_Qo=_-%-OP
queuin_scheme ! %p_-%-O_Queuin' qm_attr_ptr ! ip_qos_fifo_profile_et (profiles_dbase_ptr+ iface_qos_info_ptr6>hold_q_capacit*+ qos_mechanism_ptr,red_info_ptr,qos_attr_objid); break'/?
/* 0uardar varios valores en la estructura &os'iface'confi#*/ qos_iface_confi.queuin_scheme ! queuin_scheme' qos_iface_confi.bandDidth_t*pe ! iface_qos_info_ptr6>bandDidth_t*pe' qos_iface_confi.reserBed_bandDidth! iface_qos_info_ptr6>reserBed_bandDidth' qos_iface_confi.buffer_sie ! iface_qos_info_ptr6>buffer_sie' qos_iface_confi.qm_attr_ptr ! qm_attr_ptr'
/* 0uardar el nombre del perfil */ qos_iface_confi.q_profile_name ! (char ) op_pr_mem_alloc (sieof (char) (strlen (profile_name) 1))' strcp* (qos_iface_confi.q_profile_name+ profile_name)' is_confi_needed ! O"_T345'?
if (is_confi_needed){
/* Reservar memoria para confi#uración de interfaz QoS( */
qos_iface_confi_ptr ! (%pT_Qo=_%face_onfi ) op_pr_mem_alloc (sieof (%pT_Qo=_%face_onfi))' qos_iface_confi_ptr ! qos_iface_confi' qos_iface_confi_pptr ! qos_iface_confi_ptr'
?/-O4T'?
ip_qos_fifo_profile_get ip_qos_support.ex.cJ
$n esta &unción se comprue#a la e/istencia de per&iles >!>,. $n caso de ue %a e/istiera se )acon&iurado de manera lo#al con el nodo
8/17/2019 Memoria Pro Yec to Final
40/167
Técnicas AQM basadas en Control Predictivo
%pT_Qo=_"rofile_5ntr* profile_entr*_ptr'OmsT_Qm_%"_Queue_onfiuration qconfi_ptr ! O"_$%&'OmsT_Qm_35:_Queue_"arams red_params_ptr ! O"_$%&'
/* %btener el nombre del perfil( */ profile_name ! qos_mechanism_ptr6>profile_name'
/* "omprobar si el perfil ya e3iste en la base de datos local( Si es as,salimos de la función( Si es default, creamos el perfil por defecto */ profile_entr*_ptr ! (%pT_Qo=_"rofile_5ntr* ) ip_qos_profile_dbase_access(profile_name+ profiles_dbase_ptr+ %p_Qo=_=chedulin_"rofile+%p_-%-O_Queuin+ O"_$%&)'//* 6eamos directamente el caso de un perfil confi#urado #lobalmente en labase de datos, pero todava no está en la local( Primero accedemos a labase de datos #lobal en busca del perfil*/ qm_attr_ptr ! (OmsT_Qm_Attributes )oms_data_def_entr*_access (,-%-O "rofiles,+ profile_name)'
/* 9na vez encontrado, a:ade el perfil #lobal al local del router desdela base de datos mediante la si#uiente función- */ ip_qos_profile_dbase_entr*_add (profile_name+ (Boid ) qm_attr_ptr+O"_$%&+ profiles_dbase_ptr+ %p_Qo=_=chedulin_"rofile+ %p_-%-O_Queuin+O"_$%&)'-35T (qm_attr_ptr)'?
ras esta pila de llamadas a &unciones se de*uel*e el control a i2rte23os2in#ormation2rocess 'ue de&initi*amente crea % lanza instancias del modelo de proceso i2ott2i#ace para cada una delas inter&aces !" del enrutador. $n cada una de estas instancias se eecutará de manera concurrente
el procesado de pauetes en cada una de las colas.
'eclaración de procesos
8/17/2019 Memoria Pro Yec to Final
41/167
I4. AQM +N OPN+T5
Fig)ra 4. 5 Acceder al modelo de procesos i'o
4.3.2 "odelo de procesos ip_output_iface
@l iual ue se )a )ec)o con i2disac!' iremos )aciendo un estudio de cada uno de los apartadosue de&inen este modelo de procesos.
;ariales de estado
@u= se de&inen un par de estructuras #astante importantes' OmsT2Qm2In#o e IT2Inter#ace2In#o>iura 4.9.
$stas *aria#les son importantes porue' como se )a e/plicado anteriormente' serán las ue*a%an uardando los *alores ue )arán transitar el proceso de un estado a otro del C(. -o
e/plicaremos ninuna en concreto' pero se puede *er cómo *an tomando *alores a medida ue se)acen llamadas a las &unciones tanto del ?nction 'loc& como de &ic)eros e/ternos e/.c.
;ariales temporales
@ destacar la *aria#le invocation2mode' ue nos permite di&erenciar de ué manera se estáin*ocando el proceso.
45
8/17/2019 Memoria Pro Yec to Final
42/167
Técnicas AQM basadas en Control Predictivo
Fig)ra 4. - 3aria(les de estado del modelo de proceso ip_output_iface
Header locB
Ce inclu%e el &ic)ero de ca#ecera i23os2sort.! ' ue a su *ez inclu%e oms23m.!.La siuiente macro es importanteA
#define 355%G5_"A5T
((inBocation_mode !! O"_"3O%$G_%$:%35T) (rsBp_call_t*pe !!3sBp_%nBalid))
iura 4. 10 podemos *er el diarama de estados de este modelo de procesos. @)ora mismonos encontramos en el punto al ue uer=amos llear' estamos en el modelo so#re el ue tenemosue diseEar % adaptar nuestros nue*os aloritmos de control de la conestión. $s au= donde sedescri#e el comportamiento de la inter&az !".
46
8/17/2019 Memoria Pro Yec to Final
43/167
I4. AQM +N OPN+T5
Fig)ra 4. 6 0odelo de procesos ip_output_iface
Ce trata del estado inicial se *e claramente por la &lec)a % es de tipo no &orzadocolor *erde. +uando se inicia el proceso entra por este estado % sale directamente
por la transición incondicional sin )a#er realizado ninuna tarea de#ido a laausencia de e/ectives. $n esta transición se llama a la &unción do2init78' ésta esuna &unción de&inida en el #nction bloc& ' su cometido consiste en inicializar
*aria#les' destacando la *aria#le de estado 3m2in#o' de tipo OmsT2Qm2In#o. $sta*aria#le es con&iurada por cada una de las inter&aces % contiene in&ormación so#rela misma má/imo nImero de pauetes en cada cola' &uncionamiento del
procesador o lista de pauetes.
$ste estado no dispone e/ectives' por tanto no eecuta códio internamente. ieneuna transición incondicional con una llamada a la &unción allocate2b##ers78' lacuál está de&inida en el #nction bloc& . Ce lle*a a ca#o una seunda &ase de lainicialización de las *aria#les del proceso tras la eecución de la &unción do2init nom#rada anteriormente.
$n sus e/it e/ctives compro#ará de ué tipo es la interrupción ue le )a lleado %en &unción de ello tomará una u otra de las posi#les transiciones de salida. @nosotros' la transición ue más nos interesa es la desencadenada cuando se reci#eun pauete D$+$!$X"@+S$. +uando esta transición se lle*a a ca#o se realizauna llamada a la &unción en3ee2ac&et78 de&inida en el #loue de &unciones' elmismo nom#re de la &unción %a nos indica concisamente en ué consiste la misma.$sta &unción es la ue procesa cada pauete % decide ué )acer con élA descartarlo oencolarlo en la inter&az !" de salida o #ien procesarlo en el caso de ue no )a%aconestión.
Implementación del encolado de pauetes.
$n este apartado se )ará un detallado estudio del mecanismo ue ,"-$ implementa para modelar el comportamiento del encolado de pauetes en un router !".
47
8/17/2019 Memoria Pro Yec to Final
44/167
Técnicas AQM basadas en Control Predictivo
$n primer *eremos la manera de distri#uir los b##ers' para ello *amos a oear el códio ue)an implementado los desarrolladores de ,"-$ en la &unción allocate2b##ers.
allocate_buffers
static void allocate_buffers (void )
{%pT_3te_%face_Qo=_:ata iface_qos_data_ptr'OmsT_2uffer_"ool_Candle buffer_pool_handle'char neD_name 7K889+ int f_name71KR9'double processin_rate'-%$ (allocate_buffers ())'
buffer_pool_handle ! (OmsT_2uffer_"ool_Candle) op_pro_armem_access ()'
/* Re#istro de funciones en una tabla #lobal */ ip_qos_sup_functions_register ();
/* %btener los datos QoS de la interfaz( */ iface_qos_data_ptr ! shared_mem_ptr6> iprmd_ptr6>interface_qos_data_pptr7interface_inde9'//* Initializa la estructura &m'info(*/ qm_info ! ms_!m_"nfo_#reate (ip_rte_intf_inde_et (interface_info_ptr)+processin_rate+ ip_qos_info_assign+ buffer_pool_handle+queuin_processin_scheme+ op_pro_self ()+ Oms_Qm_%"+ (void )intf_qos_info_ptr)'/-O4T'?
ip_qos_sup_functions_register ip_qos_support.ex.cJ
$sta &unción reistra *arias &unciones en la ta#la lo#al OmsI2Arc!2*eci#ic2?nc2Tablerelacionadas con la estión de colas. Las distintas posiciones de la ta#la se asocian a macros. ;ásadelante *eremos la llamada a la &unción reistrada i23os2ac&et2en3ee2test .
O;=_5I"O3T void ip_qos_sup_functions_reister (void ){
/Oms%_Arch_=pecific_-unc_Table 7Oms_Qm_%"97Oms_Qm_5nqueue_Test_-unc9!(OmsT_Qm_Arch_Goid_-unc ) ip_qos_pac@et_enqueue_test'Oms%_Arch_=pecific_-unc_Table7Oms_Qm_%"97Oms_Qm_:rop_"olic*_Gars_reate_-unc9!
(OmsT_Qm_Arch_Goid_-unc ) oms_qm_red_Bars_create'Oms%_Arch_=pecific_-unc_Table7Oms_Qm_%"97Oms_Qm_:rop_"olic*_Gars_4pdate_-unc9!
(OmsT_Qm_Arch_Goid_-unc ) oms_qm_red_Bariables_update'Oms%_Arch_=pecific_-unc_Table7Oms_Qm_%"97Oms_Qm_:rop_"olic*_Gars_:elete_-unc9!
(OmsT_Qm_Arch_Goid_-unc ) oms_qm_red_Bariables_delete'/?
48
8/17/2019 Memoria Pro Yec to Final
45/167
I4. AQM +N OPN+T5
La ta#la OmsI2Arc!2*eci#ic2?nc2Table *iene de&inida en el &ic)ero oms23m.! de la siuientemaneraA
e$tern OmsT_Qm_Arch_Goid_-unc Oms%_Arch_=pecific_-unc_Table7Oms_Qm_;a_Arch_T*pes9 7Oms_Qm_;a_Arch_-unc_T*pes9'
La pala#ra reser*ada e/tern ele*a la *aria#le a un ám#ito lo#al para ue sea accesi#le desdedi&erentes &unciones.
"odemos *er un eemplo de macro asociada a esta ta#la en el siuiente &ramentoA
#define O;=_5$Q_T5=T_-4$ (arch_t*pe) ((OmsT_Qm_5nqueue_Test_-unc)SOms%_Arch_=pecific_-unc_Table 7arch_t*pe9 7Oms_Qm_5nqueue_Test_-unc9)
(e esta manera' se crea un acceso uni&icado a las &unciones' por si )u#iese distintas aruitecturas
con di&erentes &unciones. (e esta &orma' en *ez de cam#iar la llamada a la &unción' se )acen nue*asasinaciones a la ta#la % seuimos accediendo a ella utilizando la misma macro.
La &unción oms23m23sc!eme2seci#ic2#nctions2re$ister actIa de &orma similar a la ueaca#amos de e/plicar. @socia &unciones so#re la ta#la OmsI2Qsc!eme2*eci#ic2?nc2Table 'declarada en oms23m.!. $sta ta#la contendrá &unciones espec=&icas para cada una de las disciplinasde cola. "or eemplo' esta asinación se corresponder=a con la estructura >!>,A
/Oms%_Qscheme_=pecific_-unc_Table 7Oms_Qm_-%-O_Queuin97Oms_Qm_"@t_:eq_omplete9! (OmsT_Qm_Qscheme_Goid_-unc) O"_$%&'
Oms%_Qscheme_=pecific_-unc_Table 7Oms_Qm_-%-O_Queuin97Oms_Qm_Queue_=elect9! (OmsT_Qm_Qscheme_Goid_-unc) Oms_Qm_-%-O_Queue_=elect'
@l iual ue en el caso anterior' la in*ocación de las &unciones asociadas se realizará utilizandomacros. $n oms23m.! podemos *erA
#define O;=_"T_:5Q_O;"&5T5_-4$(qscheme)((OmsT_Qm_"@t_:eq_omplete_-unc)S
Oms%_Qscheme_=pecific_-unc_Table 7qscheme97Oms_Qm_"@t_:eq_omplete9)#define O;=_Q4545_=5&5T_-4$(qscheme) ((OmsT_Qm_Queue_=elect_-unc)SOms%_Qscheme_=pecific_-unc_Table 7qscheme97Oms_Qm_Queue_=elect9)
La &unción i23os2in#o2assi$n' de&inida en i23os2sort.e/.c' es espec=&ica del protocolo !"' %da *alores a ciertos campos de la estructura 3m2in#o. $s una &unción #astante interesante porueo#tiene in&ormación de la #ase de datos lo#al' como el nom#re del per&il
8/17/2019 Memoria Pro Yec to Final
46/167
Técnicas AQM basadas en Control Predictivo
Oms_Qm_Info_create oms_qm.ex.cJ
Ce encara de inicializar la estructura OmsT2Qm2In#o. $sta estructura contiene toda la in&ormaciónrele*ante relati*a a la inter&az' desde el má/imo nImero de pauetes )asta la estructura en s= en laue se almacenarán los pauetes.
O;=_5I"O3T OmsT_Qm_%nfo Oms_Qm_%nfo_reate (int interface_inde+ doublespeed+ OmsT_Qm_%nfo_Assin_-unc_"tr assin_function_ptr+OmsT_2uffer_"ool_Candle buffer_pool+ OmsT_Qm_Queuin_=cheme q_scheme+"rohandle qm_inBo@er_prohandle+ OmsT_Qm_Arch_T*pe qm_client_t*pe+ void arch_info){static "mohandle qm_info_pmh ! O"_";O_%$GA&%:'OmsT_Qm_%nfo qm_info ! O"_$%&'char intf_name 7M9'/oms_qm_qscheme_specific_functions_reister ()'sprintf (intf_name+ ,%nterface #Ud,+ interface_inde)'
/* Inicialización y reserva de memoria para la estructura %ms1'Qm'Info(*/ qm_info ! (OmsT_Qm_%nfo ) op_pr_pmo_alloc (qm_info_pmh)'//* Inicializar miembros de 8sta estructura */ qm_info6>child_queue_pool_ptr! O"_$%&'qm_info6>default_queue_pool_ptr! O"_$%&'qm_info6>qpool_in_serBice_ptr! O"_$%&'qm_info6>buffer_pool_handle! O"_$%&'qm_info6>arch_t*pe! qm_client_t*pe'//* "reación de colas para esta interfaz y otras operaciones, dependiendo
del protocolo*/ assin_function_ptr (interface_inde+ speed+ qm_info+ buffer_pool)'//* evolver la estructura &m'info con toda la información concerniente alas colas de una interfaz( */ -35T (qm_info)'?