memoria pro yec to final

Upload: giovannisottilaro

Post on 06-Jul-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 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)'?