#This file was created by Wed Sep 8 21:13:12 1999 #LyX 1.0 (C) 1995-1999 Matthias Ettrich and the LyX Team \lyxformat 2.15 \textclass book \begin_preamble \AtBeginDocument{% Desactivar los caracteres activos de Babel \gdef~{\nobreakspace{}}% \catcode`\"=12} \let\oldenumerate=\enumerate \renewcommand{\enumerate}{% \oldenumerate% \setlength{\itemsep}{0cm}% \setlength{\topsep}{0cm}% } \let\olditemize=\itemize \renewcommand{\itemize}{% \olditemize% \setlength{\itemsep}{0cm}% \setlength{\topsep}{0cm}% } \lhead{} \rhead{\slshape \leftmark} \rfoot{\thepage} \cfoot{} \addtolength{\headheight}{\baselineskip} \addtolength{\footskip}{\baselineskip} \usepackage{pslatex} \end_preamble \language spanish \inputencoding latin1 \fontscheme times \graphics default \float_placement htbp \paperfontsize 12 \spacing single \papersize Default \paperpackage a4wide \use_geometry 0 \use_amsmath 1 \paperorientation portrait \secnumdepth 3 \tocdepth 2 \paragraph_separation indent \defskip medskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 1 \paperpagestyle fancy \layout Title JNET: NIVEL DE RED PARA RADIO-PAQUETE AX.25 \layout Author Julián Muñoz Domínguez - ea4acl \layout Standard \latex latex \backslash thispagestyle{empty} \layout Standard \protected_separator \layout Standard \added_space_top vfill \added_space_bottom vfill \hfill \size large A mi familia, amigos, y grandes amores. \layout Standard \added_space_top vfill \pagebreak_bottom \protected_separator \layout Standard \latex latex \backslash thispagestyle{empty} \latex default \protected_separator \layout Standard \added_space_top vfill \added_space_bottom bigskip \align center Especiales agradecimientos a \emph on Luis Alfredo Ramos (EB4EUF) \emph default por la tarea de relectura y corrección del proyecto, a \emph on Simon Mudd (EA4ELS/G0FNB) \emph default por las facilidades logísticas de impresión de documentos, y a \emph on Eduardo Martínez (EC4DFP/EA4AXU) \emph default por las pruebas realizadas vía radio-paquete. \layout Standard \added_space_bottom bigskip \align center A todos los familiares y amigos, que me han apoyado y animado en los momentos difíciles. \layout Standard \added_space_top vfill Agradecimientos al equipo de personas repartidas en el mundo que han hecho posible la existencia de un entorno de software gratuito, sin el cual no hubiera sido posible realizar este proyecto. Especialmente: \layout Itemize Al software LyX y LaTeX para la edición del proyecto. \layout Itemize Al entorno gráfico de ventanas KDE. \layout Itemize Al sistema operativo GNU-Linux. \layout Standard \added_space_top vfill \pagebreak_bottom \protected_separator \layout Standard \begin_inset LatexCommand \tableofcontents{} \end_inset \layout Chapter El radio-paquete \layout Section Introducción al radio-paquete \layout Standard El radio-paquete es un sistema que permite enlazar varios sistemas telemáticos a través de un canal radioeléctrico compartido. Se basa en el \emph on AX.25, el protocolo de nivel de enlace \emph default del radio-paquete, y una disciplina de acceso múltiple al canal por detección de portadora y sin detección de colisiones. \layout Standard Más allá de consideraciones técnicas, quiero destacar que este sistema represent a una nueva área de experimentación en la actividad del radioaficionado, el área de las redes de ordenadores en entornos radioeléctricos. Se trata de un entorno específico y difícilmente repetible, unos ciudadanos en sus casas, con sus medios, experimentando de forma altruista, con la finalidad de aprender y comunicarse. Antes del boom de Internet, y del correo electrónico, ya existía una red mundial de correo electrónico apoyada solamente en radio-paquete, y aparecieron multitud de servicios y técnicas, utilizando por ejemplo enlaces vía satélite, enlaces de alta velocidad, o de baja velocidad en onda corta, como queda expuesto en el documento \begin_inset Quotes eld \end_inset Comunicaciones digitales en el entorno de la radioafición \begin_inset Quotes erd \end_inset \begin_inset LatexCommand \cite{1} \end_inset . \layout Standard Estas técnicas se han visto ampliamente superadas, con los avances de la telecomunicación comercial; la telefonía móvil e Internet han hecho posible lo que muchos radioaficionados deseaban conseguir con el radio-paquete. Pero estos nuevos sistemas siguen funcionamientos diferentes al radio-paquete, porque su finalidad es completamente diferente: mientras unos dan un servicio fiable y de calidad a la sociedad, el otro solo pretende ser un caldo de cultivo de experimentación y de servicios dirigidos a los radioaficionados. \layout Standard Por otro lado, cabe destacar que el radio-paquete no tiene definido un nivel de red estándar. Existen diseños e implementaciones de niveles de red, algunos se están utilizando, pero como veremos a continuación el entorno de la radioafición hace realmente difícil realizar un nivel de red adaptado a todas las necesidade s. \layout Section Desorden del radio-paquete \begin_inset LatexCommand \label{sec:PacCaos} \end_inset \layout Standard El entorno de utilización del radio-paquete es caótico por naturaleza, por los siguientes motivos: \layout Itemize Las estaciones siguen una disposición geográfica aleatoria, siendo mayor su densidad en los núcleos de población (frecuente congestión) y menor en zonas o provincias de baja densidad de población (amplias zonas sin cubrir). \layout Itemize No existe una autoridad coordinadora de las estaciones radioeléctricas, siendo prácticamente imposible garantizar que los operadores de las estaciones cooperen y tomen decisiones y acuerdos en cortos plazos de tiempo. El comportamiento de las estaciones radioeléctricas depende directamente de lo que decidan sus operadores, y es por lo tanto imposible de prever. \layout Itemize Existe diversidad en frecuencia. Cada estación tiene transceptores radioeléctricos sintonizados en las frecuenci as definidas por el operador. \layout Itemize Existe movilidad. Algunos sistemas de radio-paquete se utilizan en estaciones móviles (ver \begin_inset LatexCommand \cite{1} \end_inset ). \layout Itemize El medio radioeléctrico es variable. Algunas de las bandas de operación de los radioaficionados tienen comportamient os difíciles de prever. \layout Itemize Es habitual utilizar anchos de banda estrechos, y tener relaciones señal a ruido bajas. \layout Itemize Las estaciones tienen dificultades para compartir el medio radioeléctrico: \begin_deeper \layout Itemize La disciplina de acceso al canal no es muy eficiente. \layout Itemize Problema de la estación oculta: ocurre frecuentemente que una estación oiga a dos estaciones que no se oyen entre ellas. Estas estaciones van a colisionar sistemáticamente. \end_deeper \layout Itemize Asimetría de los enlaces: las estaciones radioeléctricas están equipadas de desigual manera, y pueden existir interferencias locales, haciendo que solo sea posible la comunicación en un sentido. \layout Standard Este desorden dificulta el diseño de un nivel de red. En sistemas profesionales se solucionan los problemas de forma distribuida a lo largo de todo el diseño: calidad de los sistemas digitales, calidad de las estaciones radioeléctricas, emplazamiento de los nodos, sistemas de recuperación de errores. Aquí esto no es posible, no se puede actuar físicamente sobre la estación, porque suponen costes y trabajo para el operador, hay que adaptarse a las condiciones existentes y sacarles el mejor provecho posible. \layout Section El protocolo AX.25 versión 2.0 \layout Standard Actualmente se utiliza la versión 2.0 del protocolo AX.25, definido por la American Radio Relay League \begin_inset LatexCommand \cite{2} \end_inset . AX.25 2.0 está implementado en multitud de software y hardware de radioaficionado s. Sus principales características son: \layout Itemize Sigue el estándar HDLC del CCITT, protocolo de nivel de enlace orientado a conexión. \layout Itemize Trabaja en modo balanceado exclusivamente. No existen estaciones maestras ni esclavas. \layout Itemize Posibilidad de mandar datos a través de una conexión establecida (modo numerado, o conectado), o sin conexión (modo no numerado, de datagramas o \begin_inset Quotes eld \end_inset unproto \begin_inset Quotes erd \end_inset ). \layout Itemize Rechazo simple. \layout Section El protocolo AX.25 versión 2.2 \layout Standard La última revisión del protocolo AX.25 fue publicada en Noviembre de 1997 \begin_inset LatexCommand \cite{3} \end_inset , y no ha sido implementada aún. Son muchas las mejoras, pero su complejidad aumenta significativamente. Las principales novedades con respecto a la versión 2.0 son: \layout Itemize El protocolo se describe mediante especificación SDL \begin_float footnote \layout Standard Mediante diagramas SDL \emph on simplificados \emph default orientados a entender el algoritmo de cada proceso. \end_float . \layout Itemize El nivel de enlace se divide en 4 máquinas de estados finitos extendidas. \layout Itemize Se define la capa superior del nivel físico, y su interfaz con el nivel de enlace. Se presentan dos máquinas: para full-dúplex y simplex. \layout Itemize Se especifican las primitivas de interacción entre niveles de red, enlace y físico, así como la primitivas de interacción entre las máquinas internas del nivel de enlace. \layout Itemize Se especifica la negociación de parámetros. \layout Itemize Rechazo selectivo. \layout Section Jnet - Estudio de un nuevo nivel de red \layout Standard Hemos visto que el entorno del radio-paquete tiene muchas condiciones adversas. \emph on La elección de las condiciones adversas que se tratarán prioritariamente condicionará el diseño del nivel de red \emph default . De esta elección inicial va a depender el resto del estudio. \layout Standard Es por lo tanto fundamental el criterio de elección. Este criterio es personal, como usuario y administrador de sistemas de radio-paquete, experimentando desde hace 8 años en este entorno, he detectado necesidades no cubiertas o mal cubiertas por los actuales sistemas. \layout Standard Los principales objetivos de este nuevo nivel de red, bautizado \emph on JNET \emph default , serán: \layout Enumerate Aprovechar al máximo los recursos disponibles. \newline La tara de información producida por el nivel de red debe ser optimizada. \layout Enumerate Ser poco exigente con el equipamiento utilizado. \newline No se exige una probabilidad de error mínima de los enlaces, ni una tasa binaria mínima. \layout Enumerate Ser flexible con la arquitectura de la red. \newline No se exigen disposiciones particulares de los nodos (en estrella, en árbol, etc\SpecialChar \@. \SpecialChar \@. \SpecialChar \@. ). \layout Enumerate Ser claro. \layout Enumerate Ser abierto, dando pie a la experimentación. \layout Standard Estos objetivos son decisivos a la hora de crear y optar por soluciones. Los dos últimos llevan a tomar dos decisiones iniciales: \layout Enumerate Este proyecto fin de carrera se distribuye libremente con licencia de distribuci ón OpenContent, ver apéndice \begin_inset LatexCommand \ref{apen:distrib} \end_inset . \layout Enumerate El nivel de red se va a apoyar en AX25 versión 2.2. La utilización de primitivas y de diagramas SDL mejora muchísimo la claridad y facilita la modificación y mejora de este trabajo. \layout Standard Este proyecto \emph on NO incluye \emph default la descripción del formato del protocolo de red, se limita a estudiar y proponer soluciones mediante modelos, procedimientos y recomendaciones \begin_float footnote \layout Standard Muchos de los cuales, al igual que en AX25 versión 2.2, son descritos mediante diagramas SDL \emph on simplificados. \end_float . Es un sistema dividido en subsistemas funcionales que interaccionan coherenteme nte, y solucionan problemas mediante procedimientos factibles. \layout Chapter Los niveles de red existentes \begin_inset LatexCommand \label{cap:nivred} \end_inset \layout Standard Empezaremos analizando los niveles de red de radio-paquete existentes actualment e, para poder sacar lo mejor de cada uno. La mayoría de estos no tiene una descripción formal de su modelo topológico, esta es implícita al funcionamiento de los nodos. Más problemático es el tratamiento de algunos niveles de red como \emph on rose \emph default y \emph on flexnet \emph default , que ni siquiera tienen especificaciones públicas de funcionamiento interno, solo tienen descripciones de uso para los usuarios finales. Se ha llevado a cabo una investigación, consistente en ponerse en contacto con los autores o implementadores de estos protocolos, consiguiendo información no publicable, además de experimentar con estas redes a nivel práctico en enlaces reales de radio-paquete; por estos motivos, algunas de las descripci ones hechas a continuación no son directamente comprobables en la bibliografía. \layout Section Flexnet \begin_float footnote \layout Standard Ver http://dl0td.afthd.tu-darmstadt.de/~flexnet/ \begin_inset LatexCommand \cite{4} \end_inset \end_float \layout Standard Flexnet es el nivel de red más potente, el más utilizado en Europa, pero es el más opaco (no hay documentación) en lo que refiere a su funcionamiento interno. Su funcionamiento se reparte en dos planos: plano de control, y plano de transporte. \layout Standard El plano de control establece la señalización entre nodos, realiza las medidas de los enlaces y propaga el mapa de la red. Este intercambio de señalización sólo es posible si puede realizarse la conexión entre los nodos adyacentes. La calidad de los enlaces se caracteriza por el tiempo de ida y vuelta a través del enlace que tarda en recorrer una cantidad determinada de informaci ón, medición que realizan periódicamente los nodos. \layout Standard El plano de transporte realiza el establecimiento de circuitos virtuales, y mueve la información de usuarios mediante un procedimiento poco común: se utiliza el campo de digipeaters de las tramas AX.25 (repetidores digitales, un campo creado para encaminamiento definido en el origen, ver \begin_inset LatexCommand \cite{1} \end_inset ), tanto para la comunicación entre nodos y entre nodos y usuarios finales. Esto permite que las conexiones a nivel de red sean conexiones AX.25 sin necesidad de encapsular ninguna pdu de red, los paquetes se propagan entre nodos. Estos nodos en terminología flexnet se llaman \begin_inset Quotes eld \end_inset digipeaters \begin_inset Quotes erd \end_inset , porque actúan como repetidores digitales AX.25, con la diferencia que del campo de digipeaters de las tramas retransmitidas se inserta y quita dinámicame nte la dirección del siguiente nodo del camino. \layout Standard Estos saltos son manejados de forma independiente. Aunque parezca que los datos entrantes al nodo sean retransmitidos ciegamente (este \begin_inset Quotes eld \end_inset parecido \begin_inset Quotes erd \end_inset se debe a que es el comportamiento normal de los repetidores digitales AX.25), realmente son dos enlaces independientes, en los que se produce el control de flujo y retransmisiones localmente. El control de flujo utiliza las tramas de control de flujo del nivel de enlace (RNR receiver not ready), y se propagan hacia atrás por procedimiento de back pressure (ver \begin_inset LatexCommand \cite{5} \end_inset ). \layout Standard Otro detalle de importancia es que flexnet también puede transportar tramas no numeradas, aunque en este caso su comportamiento es idéntico a un digipeater AX.25 (retransmisión ciega). Pero además es posible unir diferentes redes flexnet mediante digipeaters no flexnet. Basta incluir la dirección de este digipeater en la llamada original. \layout Standard El encaminamiento es dinámico, de tipo \begin_inset Quotes eld \end_inset estado de enlaces \begin_inset Quotes erd \end_inset . \layout Standard La principal fuerza de este sistema es su gran eficiencia, y su polivalencia, que probablemente a efectos prácticos contrapesen sus inconvenientes, que son: \layout Itemize Secretismo del protocolo de señalización inter-nodos y criterios de control de flujo. \layout Itemize Necesidad de establecimiento de enlaces para detección de nodos adyacentes e intercambio de señalización. \layout Itemize Necesidad de enlaces descongestionados de suficiente calidad y simétricos. El envío de los paquetes de medición de tiempos se hace periódicamente. Flexnet recomienda que los nodos intermedios estén conectados en full-duplex, y no tener varios nodos en la misma frecuencia. \layout Standard Sin lugar a dudas, este nivel de red es uno de los mejores en la actualidad. \layout Section Rose \begin_float footnote \layout Standard Ver página web de rose, http://www.rats.org/rose \end_float \layout Standard Al igual que flexnet, utiliza el campo de digipeaters para el acceso a la red. Pero el parecido acaba ahí, ya que para la comunicación entre nodos se utiliza la especificación X.25 en su nivel de paquetes (PLP) \begin_inset LatexCommand \cite{6} \end_inset . No hay ninguna medición de la calidad de los enlaces, el encaminamiento es estático (definido por el operador del nodo, con posibilidades de rutas alternativas) pero protegido contra bucles \begin_inset LatexCommand \cite{7} \end_inset (se utilizan facilidades X.25 para este fin), el control de flujo sigue un modelo \begin_inset Quotes eld \end_inset back pressure \begin_inset Quotes erd \end_inset mediante los paquetes de control RNR de PLP/X.25 \begin_inset LatexCommand \cite{8} \end_inset . \layout Standard Es menos flexible que flexnet: no permite el transporte de tramas no numeradas, la utilización de digipeaters AX.25 intermedios sólo es posible entre el usuario final y el nodo de acceso. \layout Standard Es menos eficiente que flexnet: hace lo mismo que flexnet, pero utilizando PLP, lo cual supone mayor tara de información. \layout Section Net/Rom \begin_float footnote \layout Standard Ver ftp://hes.iki.fi/pub/doc/ax25-doc-1.0.tar.gz / netrom.ps \begin_inset LatexCommand \cite{9} \end_inset \end_float \layout Standard Cronológicamente Net/Rom es el primer nivel de red para radioaficionados. Su modelo de red se basa en un encaminamiento que utiliza el procedimiento de vector de distancia. Tiene por lo tanto los problemas de los sistemas con algoritmo de vector de distancia (los nodos sólo conocen la topología cercana de la red, peores decisiones, peligros de bucles, borrado de enlaces defectuosos). \layout Standard Es menos flexible que flexnet: no permite el transporte de tramas no numeradas, y la utilización de digipeaters intermedios no es posible, salvo si el operador del nodo crea manualmente algún enlace con un nodo vecino a través de digipeater. \layout Standard La detección de nodos adyacentes es dinámica, mediante la transmisión periódica de señalización al canal que incluye la lista de destinos alcanzables. La calidad de los enlaces es definida por el operador en cada interfaz \begin_float footnote \layout Standard El interfaz es el puerto por el que se accede a un determinado canal radioeléctr ico, pudiendo haber nodos multi-puertos \end_float ; se define una calidad por defecto para un interfaz determinado, y todo enlace a un nodo adyacente detectado por este interfaz tendrá esta calidad. \layout Standard El protocolo se compone de dos protocolos: un protocolo de nivel de red no orientado a conexión, y un protocolo de nivel 4 orientado a conexión, encargado del establecimiento de circuitos virtuales, del control de flujo (mediante algoritmo de ventanas deslizantes) y de la detección de errores. \layout Standard Son muchos los problemas de Net/Rom. A continuación describo los más importantes: \layout Itemize No se adapta a canales con cambios frecuentes de propagación (la mayoría), ya que el procedimiento de detección de adyacencias no incluye un procedimiento lo suficientemente rápido de detección de fallo de enlaces. Esto unido al algoritmo de vector de distancia hace que en condiciones variables la mayoría de los nodos no estén alcanzables, y las rutas estén equivocadas. Un ejemplo claro: si recibimos en un pico de propagación la lista de destinos alcanzables de un nodo, se borrarán rutas anteriores alcanzables, y serán sustituidas por otras rutas que no funcionarán. \layout Itemize En la práctica se observan bucles. \layout Itemize El procedimiento de control de flujo por ventana es muy lento e ineficiente en circuitos de altos tiempos de respuesta \begin_inset LatexCommand \cite{5} \end_inset . \layout Itemize La calidad de los enlaces es inexacta, debido a que en la práctica en un mismo canal la calidad de los enlaces puede variar mucho. \layout Section INP \begin_float footnote \layout Standard Ver http://www.nordlink.org/eng/inp3.htm \begin_inset LatexCommand \cite{10} \end_inset \end_float \layout Standard INP (Internode Protocol) es una mejora de Net/Rom. Tiene muchos aspectos a tener en consideración. \layout Standard Sus características son las siguientes: \layout Itemize Mismo nivel de transporte que Net/Rom. \layout Itemize Se abandona el sistema de difusión de rutas. \layout Itemize Se define un nuevo protocolo de señalización entre nodos, que se transmite por enlaces establecidos y no por difusión; permite: \begin_deeper \layout Itemize Intercambio de rutas. \newline Un nodo informa a su vecino de todos los destinos alcanzables (vector de distancia). Puesto que ahora esta información va dirigida a un nodo concreto (al nodo con el que estamos conectados), se pueden aplicar procedimientos de optimizació n de vectores de distancia (algoritmo de Poison). \layout Itemize Medición de enlaces. \newline Al igual que flexnet, se mide el tiempo de ida y vuelta para definir la calidad de un enlace. \layout Itemize Transporte de señalización de usuario. \newline De esta forma se permite difundir información útil para otros protocolos, por ejemplo la resolución de dirección ARP puede llevarse a cabo mediante este mecanismo. \end_deeper \layout Standard Como inconvenientes: \layout Itemize Sigue utilizando vectores de distancia (poca escalabilidad). \layout Itemize Más tara aún que Net/Rom, ya que aparte de las cabeceras de los dos protocolos (red y transporte) encapsulados en las conexiones, hay que enviar paquetes periódicamente para medir el tiempo de ida y vuelta. \layout Chapter Modelo de red de Jnet \layout Standard A lo largo de este proyecto, se exponen y analizan estructuradamente diferentes enfoques funcionales de Jnet (control de flujo, encaminamiento, mediciones, modelo de nodo y red ...). Todos ellos están íntimamente relacionados, cada uno supone la presencia de \begin_inset Quotes eld \end_inset piezas de engranaje \begin_inset Quotes erd \end_inset que \emph on deben ser factibles de realizar \emph default . En multitud de ocasiones, el análisis ha llevado a elementos demasiado complejos o imposibles de realizar; el proceso seguido en estos casos ha sido cíclico, consistente en modificar otros elementos de algunos enfoques funcionales, hasta llegar a una solución global coherente. \layout Standard El resultado \emph on final \emph default es el expuesto en este capítulo y los siguientes, \emph on no tratándose de modelos y enfoques arbitrarios \emph default , sino condicionados por la condición de realizabilidad de los elementos y la consecución de un diseño coherente. \layout Standard \added_space_top defskip En este capítulo se define el modelo topológico de la red Jnet; es decir, cómo es el grafo que representa a un conjunto de nodos y la comunicación entre ellos, qué tipo de nodos y enlaces existen, cómo se caracterizan, y el uso de circuitos virtuales. \layout Section Características \layout Standard Ya conocidas las características de los niveles de red existentes, mi intención es diseñar un nivel de red \emph on diferente \emph default a los demás, que aporte aspectos nuevos, que siga \emph on enfoques y conceptos nuevos \emph default , lo suficientemente generales para ser aplicables también en protocolos que se diseñen e implementen en el futuro. El objetivo es enriquecer lo existente, y proponer alternativas. \layout Standard Las dos características que presentamos a continuación condicionan por completo el modelo de red elegido: \layout Subsection* Enlaces unidireccionales \begin_inset LatexCommand \label{sec:enlacunid} \end_inset \layout Standard Vamos a permitir la utilización de enlaces \emph on completamente \emph default unidireccionales. Esto significa poder utilizar \emph on equipos que sólo puedan recibir \emph default , o \emph on sólo puedan transmitir \emph default . Esta capacidad ausente en los actuales niveles de red permite el uso de tales equipos, que son muy económicos y simples, especialmente en el caso de los receptores. En una configuración típica de estación de aficionado, la parte crítica es la transmisión a alta velocidad; con esta opción, es posible utilizar receptores sencillos capaces de recibir señales codificadas a una alta velocidad binaria y un transmisor más sencillo de velocidad más baja \begin_float footnote \layout Standard El uso de equipos que solo puedan transmitir exige un cuidado especial en la prevención de las colisiones ya que la política de acceso al canal es ALOHA en vez de CSMA. \end_float . \layout Standard Esta configuración no es el clásico full-duplex donde las frecuencias del canal de ida y de vuelta están fijadas a priori. Aquí no es necesario prefijar, el propio nivel de red debe ser capaz de aprender por donde transmitir en caso de tener varios canales de transmisión posibles, y adaptarse a las características del canal escogido. \layout Subsection* Enlaces bidireccionales asimétricos \layout Standard Otro aspecto olvidado en los actuales protocolos de red es la alta asimetría de los enlaces. En este aspecto se desea dar un enfoque extremamente flexible. Que una estación tenga un canal con capacidad de transmisión y recepción no significa que deba utilizar ambas. Puede desear que a pesar de tener establecida una conexión hdlc, esta sea utilizada solamente en un sentido, o en vez de tener una conexión hdlc tenga dos enlaces unidireccionales (sin conexión hdlc) independientes. En Jnet, los dos sentidos de la comunicación serán medidos y modelados de forma independiente. \layout Section Modelo de grafo de la red \layout Standard El modelo de red Jnet se compone de nodos que encaminan la información a través de enlaces con conexión hdlc (modo numerado), o sin conexión hdlc (modo no numerado), con las siguientes características: \layout Itemize Todos los nodos son idénticos, son el punto de unión de los enlaces. \layout Itemize Los enlaces se caracterizan con varios parámetros. \layout Itemize No aparecen reflejados explícitamente los canales radioeléctricos. \layout Standard La red se compone de 3 elementos: \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable multicol5 4 2 0 0 -1 -1 -1 -1 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 2 1 0 "5cm" "" 2 1 1 "5cm" "c" 0 2 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 1 0 0 0 1 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" \series bold Nombre \series default \newline \series bold Representación gráfica \series default \newline Nodo \latex latex \backslash \backslash \latex default \newline \begin_inset Figure size 22 22 file nodo_solo.eps width 1 0.8 height 1 0.8 flags 1 \end_inset \newline Enlace sin conexión hdlc \newline \begin_inset Figure size 56 5 file enlace_sin_hdlc.eps width 1 2 height 1 0.05 flags 1 \end_inset \newline Enlace con conexión hdlc \newline \begin_inset Figure size 56 14 file enlace_con_hdlc.eps width 1 2 height 1 0.5 flags 9 \end_inset \layout Description Enlace \protected_separator sin \protected_separator conexión \protected_separator hdlc significa que el envío se hace mediante tramas no numeradas. \layout Description Enlace \protected_separator con \protected_separator conexión \protected_separator hdlc significa que una conexión AX.25 debe establecerse entre los dos nodos, por la cual se transmitirá la información. \layout Description El \protected_separator sentido \protected_separator de \protected_separator la \protected_separator flecha especifica el sentido de la comunicación. El envío bidireccional de información se modela mediante dos enlaces en sentido opuesto. \layout Subsection* Ejemplos \layout Standard \added_space_top 0.3cm \added_space_bottom 0cm \align center \LyXTable multicol5 6 2 0 0 -1 -1 -1 -1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 2 1 1 "90mm" "" 2 1 1 "60mm" "c" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 1 "" "" Dos nodos unidos por un enlace con conexión hdlc \newline \hfill \begin_inset Figure size 85 22 file dos_nodos_con_enlace_con_hdlc.eps width 1 3 height 1 0.8 flags 1 \end_inset \hfill \newline Dos nodos unidos por un enlace sin conexión hdlc \newline \hfill \begin_inset Figure size 85 22 file dos_nodos_con_enlace_sin_hdlc.eps width 1 3 height 1 0.8 flags 9 \end_inset \hfill \newline Dos nodos comunicados bidireccionalmente por dos enlaces sin conexión hdlc \newline \hfill \begin_inset Figure size 85 22 file dos_nodos_con_dos_enlaces_sin_hdlc.eps width 1 3 height 1 0.8 flags 9 \end_inset \hfill \newline Dos nodos comunicados bidireccionalmente por un enlace con conexión hdlc (ver nota) \newline \hfill \begin_inset Figure size 85 22 file dos_nodos_con_dos_enlaces_hdlc.eps width 1 3 height 1 0.8 flags 9 \end_inset \hfill \newline Anillo \newline \hfill \begin_inset Figure size 113 113 file anillo.eps width 1 4 height 1 4 flags 1 \end_inset \hfill \newline Configuración mixta \newline \hfill \begin_inset Figure size 141 113 file ejemplo_de_grafo.eps width 1 5 height 1 4 flags 1 \end_inset \hfill \layout Standard \added_space_top bigskip \size small \emph on Nota: Es un único enlace hdlc, pero utilizado para transmitir información bidireccionalmente. Por este motivo aparecen dos flechas. \layout Section \pagebreak_top Parámetros de los enlaces \begin_inset LatexCommand \label{sec:tipoparams} \end_inset \layout Standard Los parámetros de los enlaces se estructuran en dos niveles, mediante funciones matemáticas que llamamos \begin_inset Quotes eld \end_inset funciones características \begin_inset Quotes erd \end_inset : \layout Description Parámetros \protected_separator característicos Definen el enlace de forma abstracta a nivel de grafo. Son los únicos tomados en consideración para las operaciones que se basan en el grafo (o mapa) de la red. \layout Description Parámetros \protected_separator primarios Son magnitudes medidas y codificadas por un nodo, caracterizando uno de los enlaces que entran o sale de este nodo, y posteriormente comunicadas al resto de la red. Mediante el tratamiento de parámetros primarios se obtienen los parámetros característicos de los enlaces. \layout Description Funciones \protected_separator características Toman como parámetros los parámetros primarios y su resultado es un parámetro característico. \layout Standard Mediante esta estructuración se consigue una mayor \emph on flexibilidad \emph default : \layout Itemize Se puede mantener el mismo nivel de red manteniendo los parámetros característic os, incluso \emph on cambiando el tipo de parámetros primarios medidos en cada nodo \emph default . En Jnet por ejemplo, existen varias formas de medir las tasa binarias de los enlaces; si los algoritmos propuestos en este proyecto por motivos específicos no resultaran factibles de implementar, siempre cabría la posibilid ad de realizar otras medidas y cambiar los parámetros primarios (y consecuenteme nte las funciones características). \layout Itemize Se pueden realizar \emph on medidas de forma distribuida \emph default . Un parámetro característico puede ser obtenido mediante parámetros primarios transmitido por el nodo destino \emph on y \emph default el nodo origen de un enlace. Por ejemplo la probabilidad de error de paquete podría ser obtenida realizando un coeficiente entre el número de paquetes transmitidos por el nodo origen (=parámetro primario medido y transmitido por el nodo origen) y el número de paquetes recibidos por el nodo destino (=parámetro primario medido y transmitido por el nodo destino). \layout Itemize Se puede cambiar el modelo de grafo de la red (parámetros característicos) manteniendo las magnitudes medidas. \layout Subsection Parámetros característicos \layout Subsubsection* Enlace con conexión hdlc \layout Standard Son definidos por dos parámetros, Cj y Fj. \layout Description \begin_inset Figure size 85 22 file dos_nodos_con_enlace_hdlc_con_parametros.eps width 1 3 height 1 0.8 flags 2 \end_inset \layout Description Fj es la tasa binaria de la información transportada por el enlace, en bits por segundo. \layout Description Cj es la capacidad máxima de este enlace en bits por segundo. \layout Subsubsection* Enlace sin conexión hdlc \layout Standard Son definidos por tres parámetros, Cj, Fj y Pj. \layout Description \begin_inset Figure size 85 22 file dos_nodos_con_enlaces_sin_hdlc_con_parametros.eps width 1 3 height 1 0.8 flags 1 \end_inset \layout Description Fj es la tasa binaria de la información transportada por el enlace, en bits por segundo. \layout Description Cj es la capacidad máxima de este enlace en bits por segundo. \layout Description Pj es la probabilidad de no error de paquete en el enlace (o bien la probabilida d de que un paquete no se pierda en el enlace). \layout Subsection Parámetros primarios y funciones características \layout Subsubsection* Enlaces con conexión hdlc \layout Standard En los enlaces con conexión hdlc, los parámetros característicos son iguales a los parámetros primarios, y por lo tanto las funciones características son la función identidad. \layout Description Fj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Cj \begin_inset Formula \( _{p} \) \end_inset son los parámetros primarios. \layout Description K, \protected_separator L son las funciones características, tales que: \newline Fj=K(Fj \begin_inset Formula \( _{p} \) \end_inset ) Cj=L(Cj \begin_inset Formula \( _{p} \) \end_inset ) \newline Siendo K=L=Id (función identidad) \layout Subsubsection* Enlaces sin conexión hdlc \layout Standard En los enlaces sin conexión hdlc, los parámetros característicos Fj y Pj son iguales a los parámetros primarios, y por lo tanto sus dos funciones características M y O son la función identidad. \layout Standard En cambio Cj se obtiene combinando Fj \begin_inset Formula \( _{p} \) \end_inset , Pj \begin_inset Formula \( _{p} \) \end_inset y otro parámetro primario Hj \begin_inset Formula \( _{p} \) \end_inset : Hj \begin_inset Formula \( _{p} \) \end_inset es el ancho de banda de canal no utilizado. \layout Description Fj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Hj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Pj \begin_inset Formula \( _{p} \) \end_inset son los parámetros primarios. \layout Description M,N,O son las funciones características, tales que: \newline Fj=M(Fj \begin_inset Formula \( _{p} \) \end_inset ) Cj=N(Fj \begin_inset Formula \( _{p} \) \end_inset , Pj \begin_inset Formula \( _{p} \) \end_inset , Hj \begin_inset Formula \( _{p} \) \end_inset ) Pj=O(Pj \begin_inset Formula \( _{p} \) \end_inset ) \newline Siendo M=O=Id (función identidad) \newline N se especifica en el apartado \begin_inset LatexCommand \ref{sec:medCjsin} \end_inset . \layout Subsection Magnitudes y codificación de los parámetros primarios \begin_inset LatexCommand \label{sec:codifparm} \end_inset \layout Standard Para contribuir a la máxima eficiencia de la distribución de los parámetros primarios en la red, vamos a definir su rango de valores y su codificación. \layout Description Fj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Cj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Hj \begin_inset Formula \( _{p} \) \end_inset Las tasas binarias se codifican tal que: \begin_inset Formula \( Valor=X\times 10^{Y} \) \end_inset , y se transmite la pareja (X,Y-1) en formato binario, de la siguiente manera: \begin_deeper \layout Description \begin_inset Figure size 187 45 file formato_tasa_binaria.eps height 1 1.6 flags 1 \end_inset \end_deeper \layout Standard El rango de estas variables es: \begin_inset Formula \( X\in \left[ 0,127\right] \) \end_inset ; \begin_inset Formula \( Y\in \left[ 1,8\right] \) \end_inset \layout Subsubsection* Valor mínimo de Fj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Cj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Hj \begin_inset Formula \( _{p} \) \end_inset \layout Standard \begin_inset Formula \( X=0;\, Y=1\Rightarrow Fj_{p},Cj_{p},Hj_{p}=0 \) \end_inset [Se puede utilizar para marcar un enlace inactivo, bloqueado, o incapaz de transportar más información] \layout Standard \begin_inset Formula \( X=1;\, Y=1\Rightarrow Fj_{p},Cj_{p},Hj_{p}=10\, bps \) \end_inset \layout Subsubsection* Valor máximo de Fj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Cj \begin_inset Formula \( _{p} \) \end_inset , \protected_separator Hj \begin_inset Formula \( _{p} \) \end_inset \layout Standard \begin_inset Formula \( X=127;\, Y=8\Rightarrow Fj_{p},Cj_{p}=12.7\, Gbps \) \end_inset \layout Standard \added_space_top defskip Por lo tanto: \begin_inset Formula \( Fj_{p},Cj_{p}\in \left[ 10\, bps,12.7\, Gbps\right] \) \end_inset \layout Description Pj \begin_inset Formula \( _{p} \) \end_inset La probabilidad de no error de paquete se codifica con un entero de 5 bits. Sea P este entero; P es tal que: \begin_inset Formula \( Pj_{p}=P\times \frac{1}{31} \) \end_inset . \begin_inset Formula \( Pj_{p}\in \left[ 0,1\right] \) \end_inset , con saltos de 1/31 (32 niveles). \layout Section \pagebreak_top Mecanismo de comunicación \layout Subsection ¿ Circuitos virtuales o datagramas ? \layout Standard Es la primera gran decisión a tomar. Un nivel de red por datagramas permite un encaminamiento muy dinámico y eficiente, incluso con posibilidades de multiencaminamiento y control de flujo optimizado a multi-encaminamiento (ver \begin_inset LatexCommand \cite{5} \end_inset ). La comunicación por datagramas no tiene estados \begin_float footnote \layout Standard El estado de cada pdu viaja con ella, en su cabecera por ejemplo. \end_float , es decir que el nodo no tiene memoria de una conexión particular, solo conoce el estado de la red, que es el mismo para todos los paquetes que procesa. \layout Standard Pero Jnet optimiza la comunicación, define el estado de un camino determinado, y el estado de congestión de los enlaces, resuelve los problemas localmente, no extremo a extremo, y necesita que los caminos sean determinísticos; los nodos no serán iguales, actuarán de forma diferente en función de su posición en el camino \begin_float footnote \layout Standard Lo observaremos especialmente cuando abordemos el control de flujo interno, ver apartado \begin_inset LatexCommand \ref{sec:flowint} \end_inset . \end_float , el estado de la comunicación no estará solamente en el nodo origen y destino, debe de estar en todos los nodos participantes. En Jnet se van a intentar controlar algunos factores críticos de una comunicaci ón, y para ello se requiere definir estados, algoritmos específicos a cada estado, reservar recursos en el nodo para memorizar el estado y las variables de cada comunicación. Es decir, surge la necesidad de manejar circuitos virtuales para tener una visión global y detallada de cada comunicación; esto no resulta posible (o eficiente) con una red orientada a datagramas. \layout Standard \line_top \line_bottom \align center \emph on Jnet es una red orientada a Circuitos Virtuales. \layout Subsection Tipos de circuitos virtuales \begin_inset LatexCommand \label{sec:tipcv} \end_inset \layout Standard El circuito virtual es la unidad básica de comunicación entre dos usuarios finales. Debido a la unidireccionalidad o asimetría de los enlaces, los circuitos virtuales serán unidireccionales. Una comunicación bidireccional se modela mediante dos circuitos unidireccionale s. No obstante para obtener la plena funcionalidad del control de flujo interno, el circuito de ida debe estar ligado con el circuito de vuelta; esto lleva a definir dos tipos de circuitos virtuales: \layout Description Circuito \protected_separator virtual \protected_separator unidireccional Define una comunicación unidireccional entre el nodo origen y el nodo destino. El control de flujo interno no podrá alcanzar su plena funcionalidad, y por lo tanto cuando este no sea suficiente se recurrirá al descarte de paquetes. Esta modalidad permite aprovechar situaciones en las que solo existe la posibilidad de comunicación unidireccional a nivel de red entre usuarios. Se trata de una modalidad nueva, que permitiría por ejemplo el uso del protocolo de difusión por satélite Pacsat \begin_float footnote \layout Standard Ver \begin_inset Quotes eld \end_inset Comunicaciones digitales en el entorno de la radioafición \begin_inset Quotes erd \end_inset \begin_inset LatexCommand \cite{1} \end_inset \end_float a nivel de red. \layout Description Circuito \protected_separator virtual \protected_separator bidireccional Define una comunicación bidireccional entre dos nodos. Se compone de un circuito virtual de ida y un circuito virtual de vuelta, que no tienen porqué seguir el mismo camino. La denominación \begin_inset Quotes eld \end_inset ida \begin_inset Quotes erd \end_inset o \begin_inset Quotes eld \end_inset vuelta \begin_inset Quotes erd \end_inset es completamente arbitraria, ambos sentidos son tratados de la mima forma, pero independientemente. Es necesaria la clara diferenciación de los dos circuitos virtuales que componen el circuito virtual bidireccional, sin que por ello signifique que uno es más importante que otro. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 234 file circuitos_virtuales_ejemplo.eps width 3 100 flags 9 \end_inset \layout Caption Ejemplo de circuito virtual bidireccional \end_float \layout Subsection Características de los circuitos virtuales \layout Standard Los circuitos virtuales están caracterizados por los siguientes elementos, que son conocidos por todos los nodos incluidos en ellos: \layout Description Tipo \protected_separator de \protected_separator circuito \protected_separator virtual Indica si es un circuito virtual de tipo unidireccional o bidireccional. \layout Description Identificador \protected_separator de \protected_separator circuito \protected_separator virtual Todo circuito virtual tendrá asociado un Identificador único en la red. Los circuitos virtuales de ida y de vuelta compartirán el mismo identificador de circuito virtual. \layout Description Identificador \protected_separator de \protected_separator sentido Sirve para diferencia los dos sentidos de la comunicación de los circuitos virtuales bidireccionales. \layout Description Camino \protected_separator completo \protected_separator del \protected_separator circuito \protected_separator virtual El camino que sigue el circuito virtual es conocido desde su establecimi ento. \layout Description Estados, \protected_separator tipos, \protected_separator de \protected_separator los \protected_separator enlaces \protected_separator y \protected_separator los \protected_separator nodos \protected_separator del \protected_separator circuito \protected_separator virtual Todos son conocidos en detalle, sus evoluciones son seguidas. \layout Subsection Multiplexación de servicios \layout Standard Es posible que cada usuario final desee tener varios servicios en su estación. Existen dos posibilidades: \layout Itemize Utilización de un circuito virtual independientemente para cada servicio. Cada servicio tiene una dirección de usuario final diferente. AX.25 actúa de esta manera a nivel de enlace: cada servicio se encuentra en una dirección diferente. \begin_deeper \layout Standard Ventajas: \layout Itemize Al abrirse circuitos virtuales diferentes, el encaminamiento es más óptimo ya que se vuelve a decidir el camino del circuito virtual, produciéndose un efecto de reparto de carga. \layout Itemize Al no usar otros protocolos intermedios, la eficiencia a la hora de transportar información es óptima. \layout Standard Inconvenientes: \layout Itemize Se abre un nuevo circuito virtual cada vez que se quiere acceder a un nuevo servicio, esto supone una carga en la red y la reserva de recursos independient es que hubieran podido ser compartidos. \layout Itemize Cada circuito virtual abierto tendrá un procedimiento separado de control de flujo. Si los circuitos virtuales siguen el mismo camino estos procedimientos seguirán una evolución similar y simultánea, siendo más eficiente el tratamient o de la congestión si los servicios se multiplexaran dentro de un mismo circuito virtual. \end_deeper \layout Itemize Utilización del mismo circuito virtual. Esta solución puede conseguirse con un protocolo de multiplexación sobre el nivel de red que ofrezca varios Puntos de Acceso a Servicio (S.A.P.). \begin_deeper \layout Standard Ventajas: \layout Itemize No se abre un nuevo circuito virtual a cada vez que se quiere acceder a un nuevo servicio. \layout Itemize Procedimiento de control de flujo unificado. \layout Standard Inconvenientes: \layout Itemize Encaminamiento no óptimo. \layout Itemize Tara de información de las cabeceras del protocolo de multiplexación, que serán añadidas a cada n-pdu. \end_deeper \layout Standard La primera solución es directamente aplicable, mientras que la segunda exige el diseño de un sencillo protocolo de multiplexación, que no vamos a especifica r en este proyecto. \layout Chapter Modelo de nodo \begin_inset LatexCommand \label{cap:modnodo} \end_inset \layout Section Enfoque - Modelo funcional \layout Standard El nodo se va a presentar funcionalmente: se describen un conjunto de subsistema s y como encajan entre ellos para dar una cierta funcionalidad. El modelo general del nodo se puede observar en la figura \begin_inset LatexCommand \ref{fig:modgennod} \end_inset . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file modelo_nodo_general.eps width 3 100 height 3 100 flags 5 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:modgennod} \end_inset Modelo general del nodo \end_float \layout Section Subsistema de acceso a la red \begin_inset LatexCommand \label{sec:accesred} \end_inset \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 446 294 file mod_nodo_acceso_red.eps width 3 75 flags 1 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:acces_red} \end_inset Subsistema de acceso a la red \end_float Es el conjunto de sistemas que están en contacto con el interfaz de la capa de red: permiten el acceso a la red de los usuarios del nivel de transport e o superior. \layout Standard Como podemos observar en la figura \begin_inset LatexCommand \ref{fig:acces_red} \end_inset , son 3 los módulos que participan directamente en esta tarea. \layout Description Máquina \protected_separator de \protected_separator control \protected_separator de \protected_separator flujo \protected_separator de \protected_separator acceso \protected_separator a \protected_separator la \protected_separator red Limita el tráfico inyectado en la red, conforma el tráfico enviado a la máquina del circuito virtual (ver capítulo \begin_inset LatexCommand \ref{cap:flowcontrol} \end_inset , apartado \begin_inset LatexCommand \ref{sec:flowaccess} \end_inset ). \layout Description Máquina \protected_separator de \protected_separator gestión \protected_separator de \protected_separator circuitos \protected_separator virtuales Al recibir una petición de establecimiento/cerrado de circuito virtual, la máquina de gestión de circuitos virtuales tendrá por labor la creación/destrucción de este circuito virtual. Reservará/liberará los recursos necesarios para este circuito, especialmente creará/destruirá un proceso específico ( \begin_inset Quotes eld \end_inset \family sans máquina de circuito virtual \family default \begin_inset Quotes erd \end_inset ) dedicado a la gestión de este circuito virtual particular. \layout Description Encaminador Es quien entrega las pdus dirigidas a los usuarios finales: cuando este nodo es el nodo destino del circuito virtual, el encaminador sabe a qué usuario final entregar la información. \layout Section Encaminador \layout Standard En función de una tabla de encaminamiento, el encaminador decide por que camino enviar las pdus de datos o de señalización de los demás sistemas. \layout Subsection* Formato de la tabla de encaminamiento \layout Standard \begin_float tab \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable multicol5 4 7 0 0 -1 -1 -1 -1 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 2 1 0 "15mm" "" 2 1 0 "20mm" "" 2 1 0 "15mm" "" 2 1 0 "15mm" "" 2 1 0 "15mm" "" 2 1 0 "15mm" "" 2 1 1 "15mm" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" \series bold \size footnotesize Id de C.V. \newline Sentido (ida/ vuelta) \newline Canal de salida \newline Enlace de salida \newline Canal de entrada \newline Enlace de entrada \newline Usuario local \series default \size default \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \layout Caption \begin_inset LatexCommand \label{tab:encamin} \end_inset Tabla de encaminamiento \end_float \layout Standard La tabla de encaminamiento es una base de datos que tiene una entrada por cada sentido de un circuito virtual. Su objetivo es indicar por qué enlaces un circuito virtual entra y sale del nodo. Como veremos en el capítulo \begin_inset LatexCommand \ref{cap:Encamin} \end_inset , el encaminamiento se decide al origen, por lo tanto \emph on los elementos son creados y borrados por la máquina de gestión de circuitos virtuales \emph default en el momento del establecimiento y cerrado de circuitos virtuales. \layout Standard Como podemos observar en la tabla \begin_inset LatexCommand \ref{tab:encamin} \end_inset , cada elemento se compone de: \layout Description Identificador \protected_separator de \protected_separator circuito \protected_separator virtual El identificador del circuito virtual cuya ruta se indica. \layout Description Sentido Indica si este elemento se refiere al circuito virtual de ida o de vuelta. \layout Description Canal \protected_separator de \protected_separator salida Es posible que el nodo tenga acceso a varios puertos (o canales). Indica en qué puerto se encuentra el enlace utilizado por el circuito virtual para su salida del nodo. \layout Description Enlace \protected_separator de \protected_separator salida Enlace utilizado por el circuito virtual para su salida del nodo. \layout Description Canal \protected_separator de \protected_separator entrada Indica en qué puerto se encuentra el enlace utilizado por el circuito virtual para su entrada al nodo. \layout Description Enlace \protected_separator de \protected_separator entrada Enlace utilizado por el circuito virtual para su entrada al nodo. \layout Description Usuario \protected_separator local Contiene la referencia del usuario local al que deben ser entregadas las pdus (si el nodo no es el nodo destino del circuito virtual, esta campo está vacío). \layout Subsection* Encaminador \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 244 file mod_encaminador.eps width 3 100 flags 5 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:encaminador} \end_inset Máquina de encaminamiento \end_float El encaminador es un punto de cruce que envía la información al lugar apuntado por la tabla de encaminamiento (exclusivamente a usuarios locales o a los canales radioeléctricos). Su localización es central, es el \emph on distribuidor de salida \emph default . En la figura \begin_inset LatexCommand \ref{fig:encaminador} \end_inset podemos observar sus conexiones, de las que destacan: \layout Description Tabla \protected_separator de \protected_separator proximidad El formato y descripción de esta tabla se describe en el apartado de \emph on máquina de gestión de red \emph default (página \begin_inset LatexCommand \pageref{sec:maqgestred} \end_inset ). Mediante esta tabla, el encaminador es capaz de mandar datos a nodos concretos, sin utilizar circuitos virtuales. Entre otros datos, en esta tabla figura la relación de convergencia nivel3-nive l2, es decir qué enlace (dirección de enlace AX.25 y canal) se debe de utilizar para alcanzar un nodo con una determinada dirección de red. \layout Description Máquinas \protected_separator de \protected_separator medición \protected_separator de \protected_separator enlace \protected_separator a \protected_separator nivel \protected_separator de \protected_separator red Existe una \family sans máquina de medición de enlace \family default por cada enlace. Es el único punto de acceso para envío de datos a través de un enlace dado, al fin de que todo lo transmitido pueda ser medido. El encaminador decide a qué enlace enviar las pdus (de datos o señalización) en función del circuito virtual, consultando la \family sans tabla de encaminamiento \family default . \layout Description Señalización \protected_separator de \protected_separator la \protected_separator máquina \protected_separator de \protected_separator gestión \protected_separator de \protected_separator circuitos \protected_separator virtuales Los mensajes de apertura y de cerrado de circuitos virtuales son enviados al nodo vecino a través del \family sans encaminador \family default , que ya conoce el enlace a utilizar puesto que la propia \family sans máquina de gestión de circuitos virtuales \family default ha actualizado la tabla de encaminamiento con este dato. \layout Section Máquina de circuito virtual \begin_inset LatexCommand \label{sec:maqcv} \end_inset \layout Standard Existe una máquina de circuito virtual para cada circuito virtual que pasa por el nodo, creada y destruida por la máquina de gestión de circuitos virtuales. El control de flujo interno es su principal función \begin_float footnote \layout Standard Ver el apartado \begin_inset LatexCommand \ref{sec:flowint} \end_inset , control de flujo interno. \end_float , tiene capacidad de bloquear el tráfico del circuito virtual, e intercambiar señalización con los nodos de su circuito virtual. \layout Standard En la figura \begin_inset LatexCommand \ref{fig:maqcv} \end_inset se puede observar su conexionado con los demás elementos. \begin_float fig \layout Standard \align center \begin_inset Figure size 595 179 file mod_maquina_cv.eps width 3 100 flags 1 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:maqcv} \end_inset Máquina de circuito virtual \end_float Cabe destacar la llegada de señalización de las máquinas de medición de enlace a nivel de red, que miden el nivel de congestión de cada enlace; con esta información, la máquina de circuito virtual toma decisiones respecto a las acciones de control de flujo. \layout Section \pagebreak_top Máquina de gestión de circuitos virtuales \layout Standard Sus funciones son: \layout Itemize \emph on Creación \emph default de los circuitos virtuales demandados por los usuarios locales, decidiendo su camino, dado el mapa de la red, comprobando que es viable el proceso, y que se lleva a cabo correctamente en el resto del circuito virtual. \layout Itemize Recepción y propagación de las \emph on señales de establecimiento \emph default de circuito virtual proveniente de nodos vecinos. \layout Itemize Añadir la nueva ruta a la tabla de encaminamiento. \layout Itemize \emph on Reserva de los recursos \emph default necesarios para los circuitos virtuales que pasan por el nodo; especialmente, \emph on creará una \emph default \emph on máquina de circuito virtual \emph default para cada circuito virtual dedicada a la gestión de este circuito virtual particular. \layout Itemize \emph on Destrucción \emph default de los circuitos virtuales cerrados por los usuarios locales, comprobando que se lleva a cabo correctamente en el resto del circuito virtual. \layout Itemize Recepción y propagación de las señales de \emph on cerrado \emph default de circuito virtual. \layout Itemize Borrar la ruta de la tabla de encaminamiento. \layout Itemize Destruir los recursos ocupados, \emph on destruir la máquina de circuito virtual \emph default . \layout Standard En la figura \begin_inset LatexCommand \ref{fig:gestcv} \end_inset podemos observar como se interconexiona para llevar a cabo estas tareas. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 476 338 file mod_gesti_cv.eps width 3 80 flags 1 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:gestcv} \end_inset Máquina de gestión de circuitos virtuales \end_float \layout Section Máquinas de medición de enlaces a nivel de red \begin_inset LatexCommand \label{sec:maqmednred} \end_inset \layout Standard Como ya se ha dicho, cada enlace tiene asignado una máquina de medición de enlace. Toda la información mandada por un enlace debe pasar por su respectiva máquina de medición, siendo esta el único punto de acceso al enlace. En el capítulo \begin_inset LatexCommand \ref{cap:mediciones} \end_inset se abordarán en detalle los procedimientos de medición. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 416 244 file mod_med_enlace.eps width 3 70 flags 1 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:medenlac} \end_inset Máquinas de medición de enlaces a nivel de red \end_float En la figura \begin_inset LatexCommand \ref{fig:medenlac} \end_inset se pueden observar las interacciones con los demás elementos, de los que cabe destacar: \layout Description Máquina \protected_separator de \protected_separator medición \protected_separator de \protected_separator enlace \protected_separator a \protected_separator nivel \protected_separator enlace Como se describe en el capítulo de mediciones (capítulo \begin_inset LatexCommand \ref{cap:mediciones} \end_inset ), se ha diseñado una máquina de mediciones cuyo marco de funcionamiento es interno al nivel 2, y realizando mediciones a bajo nivel. \layout Description Máquina \protected_separator de \protected_separator gestión \protected_separator de \protected_separator red Realiza consultas sobre magnitudes medidas: capacidad máxima del enlace, tasa binaria cursada. También le son comunicadas ciertas incidencias como la rotura o restablecimient os de enlaces. \layout Description Máquinas \protected_separator de \protected_separator circuitos \protected_separator virtuales Son informadas del nivel de congestión de sus enlaces. Para esta tarea, la máquina de medición de enlace a nivel de red debe tener una \emph on lista en la que que conste todos los circuitos virtuales que utilizan su enlace \emph default . Ver apartado \begin_inset LatexCommand \ref{sec:conginf} \end_inset . \layout Section Máquina de gestión de red \begin_inset LatexCommand \label{sec:maqgestred} \end_inset \layout Standard La función de la máquina de gestión de red es crear y actualizar el mapa de la red y la tabla de proximidad; debe recibir la señalización de topología de red de los nodos vecinos, detectar nodos adyacentes, obtener y calcular los parámetros primarios de los enlaces de este nodo. \layout Subsection Tabla de proximidad \layout Standard \begin_float tab \layout Standard \align center \LyXTable multicol5 3 11 0 0 -1 -1 -1 -1 1 1 0 0 1 0 0 0 1 1 0 0 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" \series bold \size small Dirección de red \newline Nº \newline Cj \begin_inset Formula \( _{p} \) \end_inset \newline Fj \begin_inset Formula \( _{p} \) \end_inset \newline Hj \begin_inset Formula \( _{p} \) \end_inset \newline Pj \begin_inset Formula \( _{p} \) \end_inset \newline Sentido \newline Tipo \newline Enlace \newline Canal \newline Estado \series default \size default \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \newline \layout Caption \begin_inset LatexCommand \label{tab:proxim} \end_inset Tabla de proximidad \end_float La tabla de proximidad recoge toda la información que caracteriza el entorno del nodo: los nodos adyacentes, y los enlaces para llegar a ellos. Como podemos observar en la tabla \begin_inset LatexCommand \ref{tab:proxim} \end_inset , cada elemento (fila) de la tabla describe un enlace, con sus características (columnas), que son las siguientes: \layout Description Dirección \protected_separator de \protected_separator red Es la dirección de red del nodo al que apunta esta enlace. \layout Description Número Se trata de un identificador (número entero) que permite diferenciar enlaces que apuntan al mismo nodo pero a través de canales diferentes. Es \begin_inset Quotes eld \end_inset 0 \begin_inset Quotes erd \end_inset cuándo no existe más de un enlace a este nodo, y se va incrementando a medida que aparecen enlaces alternativos para este mismo nodo. \layout Description Cj \begin_inset Formula \( _{p} \) \end_inset Parámetro primario Cj \begin_inset Formula \( _{p} \) \end_inset (capacidad máxima de este enlace en bits por segundo). \layout Description Fj \begin_inset Formula \( _{p} \) \end_inset Parámetro primario Fj \begin_inset Formula \( _{p} \) \end_inset (tasa binaria de la información transportada por el enlace, en bits por segundo) \layout Description Hj \begin_inset Formula \( _{p} \) \end_inset Parámetro primario Hj \begin_inset Formula \( _{p} \) \end_inset (el ancho de banda de canal no utilizado) \layout Description Pj \begin_inset Formula \( _{p} \) \end_inset Parámetro primario Pj \begin_inset Formula \( _{p} \) \end_inset (probabilidad de no error de paquete del enlace). No tiene sentido para enlaces con conexión hdlc. \layout Description Sentido Ida o vuelta. Los enlace hacia y desde un nodo no tienen las mismas características, y son diferenciadas mediante este indicador. \layout Description Tipo Especifica si se trata de un enlace \emph on con \emph default conexión hdlc o \emph on sin \emph default conexión hdlc. \layout Description Canal Canal dónde se encuentra el enlace a este nodo. \layout Description Enlace Dirección de enlace (ax.25) para alcanzar el nodo. \layout Description Estado Estado de la conexión (abierta o cerrada). Solo tiene sentido en enlaces con conexión. \layout Subsection Mapa de red \layout Standard El mapa de red describe la topología de la red, haciendo abstracción de los niveles inferiores. Es un grafo en el que se describen los enlaces con: \layout Enumerate Pareja (dirección de red de origen, dirección de red de destino) \layout Enumerate Tipo de enlace (con o sin conexión hdlc) \layout Enumerate Parámetros característicos (Cj, Fj, Pj) \layout Enumerate Identificador de enlace: se trata del campo que se llama \begin_inset Quotes eld \end_inset número \begin_inset Quotes erd \end_inset en la tabla de proximidad. Sólo se utiliza cuando existen varios enlaces entre dos nodos. \layout Subsection Comunicación con otros elementos del nodo \begin_inset LatexCommand \label{sec:gestionred} \end_inset \layout Standard En la figura \begin_inset LatexCommand \ref{fig:gestionred} \end_inset podemos ver los elementos con los que se comunica la máquina de gestión de red. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 416 212 file mod_gestion_red.eps width 3 70 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:gestionred} \end_inset Máquina de gestión de red \end_float \layout Standard Cabe destacar: \layout Description Decodificador \protected_separator de \protected_separator señalización Los mensajes enviados al canal por las \family sans máquinas de gestión de red \family default y \family sans máquinas de distribución de mapa de red \family default de otros nodos son recibidos por esta vía. Se reciben señalizaciones de detección de nodos adyacentes, señalización de medición de probabilidad de no error de paquete, y de mapas de red (enviado por \family sans máquinas de distribución de mapa de red \family default ). \layout Description Broadcast Se trata de un módulo que se encuentra en cada canal, junto con las \family sans máquinas de medición de enlaces a nivel de red \family default , que permite difundir mensajes de señalización en el canal, usando tramas no numeradas dirigidas a un dirección de enlace predefinida para que los \family sans decodificadores de señalización \family default de los nodos a la escucha sepan decodificarlas (como se indica en el punto anterior). Esta señalización se utiliza para mediciones de probabilidad de no error de paquete (como describiremos en el capítulo de mediciones, capítulo \begin_inset LatexCommand \ref{cap:mediciones} \end_inset ), y para que los nodos adyacentes nos detecten. \layout Description Máquinas \protected_separator de \protected_separator medición \protected_separator de \protected_separator enlace \protected_separator a \protected_separator nivel \protected_separator de \protected_separator red Se reciben por esta vía mensajes que señalizan la rotura o restablecimientos de enlaces, y se realizan consultas sobre los parámetros primarios Cj \begin_inset Formula \( _{p} \) \end_inset y Fj \begin_inset Formula \( _{p} \) \end_inset . \layout Description Máquinas \protected_separator de \protected_separator medición \protected_separator de \protected_separator enlace \protected_separator a \protected_separator nivel \protected_separator de \protected_separator enlace Se realizan consultas a esta máquina con el objetivo de conocer el número de paquetes recibidos de una cierta estación, y el número de paquetes que hemos transmitido, el factor de ocupación del canal, el ancho de banda de canal no utilizado, datos relevantes en el cálculo de la probabilidad de no error de paquete Pj. \layout Description Máquina \protected_separator de \protected_separator distribución \protected_separator de \protected_separator mapa \protected_separator de \protected_separator red La máquina de gestión de la red detecta los cambios de topología y de parámetros de los enlaces locales, que plasma en el mapa de la red. Pero para una rápida distribución de estos cambios, la \family sans máquina de distribución de mapa de red \family default es avisada inmediatamente mediante señalización interna. \layout Section Máquina de distribución del mapa de red \layout Standard Este sistema es el de conexionado más sencillo : lee el mapa de red y la tabla de proximidad, es avisado de los cambios por la \family sans máquina de gestión de red \family default . Propaga las actualizaciones a los nodos vecinos utilizando un formato definido en el protocolo de encaminamiento. \layout Standard No obstante, a pesar de esta sencillez aparente, debe realizar una tarea compleja: controlar la difusión de la información de la topología de red, optimizando los recursos de la red y manteniendo la adecuada velocidad de propagación de esta información. Es pues una tarea de control de flujo y de encaminamiento, pero a nivel de difusión de información, no de comunicaciones entre dos nodos dados de la red. Básicamente deberá regular los siguientes aspectos: \layout Itemize Velocidad a la que se envían las actualizaciones. \layout Itemize Metodología de caché. \begin_float footnote \layout Standard Almacenamiento en memoria de datos recibidos, y actualizaciones de estos mismos, para su posterior selectiva retransmisión. \end_float \layout Itemize Política de prioridades. \layout Itemize Encaminamiento de la difusión. \layout Standard Debido a estas características especiales, no es evidente aplicar los resultados del estudio de control de flujo y encaminamiento de información de usuario, siendo incluso probable que el modelo de datagramas se ajuste mejor a este caso. Es otro plano que requiere otro sistema de encaminamiento, pero que por razones de eficiencia deberá basarse en la topología ya obtenida en el mapa de la red. \layout Standard Este capítulo no es abordado en el proyecto. No obstante es una parte importante, que deberá ser investigada en el futuro. \layout Section Decodificador de señalización \layout Standard El decodificador de señalización compone la otra cara de la moneda: es el punto de entrada de todos los datos externos recibidos a través del nivel de enlace. \layout Standard \added_space_bottom bigskip Si se recibe una n-pdu de datos, debe ser entregada a la \family sans máquina de circuito virtual \family default a la que pertenece. Si se trata de una n-pdu de señalización, esta debe ser decodificada y entregada al módulo que deberá procesarla. Recapitulando los anteriores apartados, podemos realizar el siguiente reparto de señalización: \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable multicol5 5 3 0 0 -1 -1 -1 -1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 2 1 0 "45mm" "" 2 1 0 "45mm" "" 2 1 1 "45mm" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" \family sans \series bold \size small Destino de la señalización \newline Tipo de señalización \newline Origen de la señalización \series default \newline \size footnotesize Máquinas de circuitos virtuales \newline Control de flujo interno \newline Máquinas de circuitos virtuales \newline Máquina de gestión de circuitos virtuales \newline Establecimiento/corte de circuitos virtuales \newline Máquina de gestión de circuitos virtuales \newline Máquina de gestión de red \newline Actualización de mapa de red \newline Máquina de distribución de mapa de red \newline Máquina de gestión de red \newline Probabilidad de no error de paquete, detección de adyacencias \newline Máquina de gestión de red \layout Chapter Mediciones \begin_inset LatexCommand \label{cap:mediciones} \end_inset \layout Section Modificaciones de AX\SpecialChar \@. 25 v2\SpecialChar \@. 2 \layout Standard Algunas de las máquinas y algoritmos expuestos a continuación suponen modificaci ones de la especificación original AX.25 versión 2\SpecialChar \@. 2. Se ha querido evitar al máximo esta práctica; en ningún caso se han aplicado \begin_inset Quotes eld \end_inset parches \begin_inset Quotes erd \end_inset o mejoras superficiales que perjudicarían la actual especificación, si no que se ha mejorado, completando partes incompletas y añadiendo funcionalidad es, incorporando nuevas máquinas de estado que no perjudican ni alteran el funcionamiento del resto de las máquinas. \layout Standard Resulta por ejemplo llamativo que las primitivas descritas en ax.25 v2.2 no tengan parámetros (valores transportados por las primitivas). Ello se debe a que estos parámetros no son estrictamente necesarios para la especificación, son implícitos. Pero en las nuevas máquinas introducidas, en algunos casos estos parámetros son imprescindibles, y por lo tanto se mencionan y describen explícitamente. \layout Standard La inserción de nuevas máquinas hace necesaria la aparición de nuevas señales, que son generadas o recibidas por las máquinas actualmente implementadas en la norma. Es por lo tanto necesario modificar también estas máquinas, para que generen y reciban estas señales. Estas modificaciones no suponen grandes cambios, ni suponen ninguna tarea adicional. \layout Section Máquina de medición de enlace a nivel de enlace - MEASUREMENT MACHINE \begin_inset LatexCommand \label{sec:MEASUR} \end_inset \layout Subsection Ubicación \layout Standard El modelo de AX.25 v2.2 divide el nivel de enlace en máquinas de estados finitos (máquina de enlace, segmentador, gestor de enlace, multiplexor de enlace), como se puede observar en la figura \begin_inset LatexCommand \ref{fig:ax25v22} \end_inset . La función de cada máquina se describe en \begin_inset Quotes eld \end_inset AX.25 Link Access Protocol for Amateur Radio, version 2.2 \begin_inset Quotes eld \end_inset \begin_inset LatexCommand \cite{3} \end_inset . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 172 file ax25v2.2.eps width 3 100 flags 1 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:ax25v22} \end_inset Máquinas de ax25 v2.2 \end_float \layout Standard Las \family typewriter máquinas de enlace de datos \family default (2), \family typewriter segmentador \family default (1), \family typewriter gestor de enlace \family default (3), son específicas para cada enlace. Se crean cada vez que se crea un enlace ax.25 con otra estación. En cambio, el \family typewriter multiplexor \family default (4) es único, dando servicio a todas las máquinas que se encuentran sobre él. \layout Standard Existen mediciones de interés para el nivel de red que no pueden ser medidas a nivel de red: no se puede conocer el número de tramas ax.25 transmitidas porque el nivel de enlace realiza retransmisiones invisibles al nivel de red, no se pueden conocer las estadísticas de las estaciones recibidas porque el nivel de enlace no informa al nivel de red sobre tramas dirigidas a otras estaciones, y tampoco es posible saber si el canal tiene portadora de datos. En el estudio posterior, estas mediciones resultan útiles para obtener parámetros del canal, como la probabilidad de no error de paquete y el factor de ocupación del canal. \layout Standard Esto nos lleva a ampliar la actual especificación ax.25 v2.2, añadiéndole estas facilidades de medición. Para ello vamos diseñar una máquina de medición, que tendrá por objetivo medir tres magnitudes: \layout Itemize Número de paquetes transmitidos por cada máquina de enlace. \layout Itemize Estaciones recibidas y número de paquetes de estas estaciones. \layout Itemize Porcentaje de tiempo que el canal está ocupado con portadora de datos. \layout Standard La segunda magnitud no puede medirse en máquinas específicas de cada enlace establecidos, ya que no tiene porque existir enlace establecido con todas las estaciones oídas (y por lo tanto no existen las máquinas correspondientes). Igualmente, no tiene sentido medir la tercera magnitud en las máquinas específicas de cada enlace. La primera magnitud puede medirse en las máquinas específicas de cada enlace o a nivel del multiplexor; la máquina de enlace envía los paquetes al \family typewriter multiplexor \family default (mediante las primitivas \family typewriter LM-EXPEDITED-DATA Request \family default o \family typewriter LM-DATA Request \family default ). \layout Standard Para realizar una única máquina, la máquina de mediciones a nivel de enlace se va a encontrar al mismo nivel que el \family typewriter multiplexor \family default . Sólo habrá una máquina de mediciones por canal físico, que medirá las magnitude s referidas a este canal. En la figura \begin_inset LatexCommand \ref{fig:ax25mea} \end_inset vemos la ubicación de esta máquina, que bautizamos \family typewriter Measurement Machine \family default (5) (o \family sans máquina de medición de enlace a nivel de enlace \family default ). \begin_float fig \layout Standard \align center \begin_inset Figure size 595 172 file ax25v2.2+MEASUREMENT.eps width 3 100 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:ax25mea} \end_inset Ubicación de la máquina de medidas a nivel de enlace \end_float \layout Subsection Especificación \begin_inset LatexCommand \label{sec:MEAespe} \end_inset \layout Standard La siguiente especificación de \family typewriter Measurement Machine \family default se hace siguiendo la estructura seguida en ax25 v2.2. \layout Subsubsection Interacción con la máquina de estados de la capa física \layout Description PH-BUSY \protected_separator Indication Indicación de que el nivel físico detecta la presencia de una portadora de datos en el canal. \layout Description PH-QUIET \protected_separator Indication Indicación de que el nivel físico ya no detecta la presencia de la portadora de datos en el canal. \layout Subsubsection Interacción con el multiplexor \layout Description MEA-DATA \protected_separator Indication(Callsign) El multiplexor envía esta primitiva a la máquina de medición cuándo recibe un paquete libre de errores. El parámetro de esta primitiva es la dirección de nivel de enlace del paquete recibido. \layout Standard Se modifica la máquina de estados del multiplexor, en concreto la subrutina \begin_inset Quotes eld \end_inset Frame received \begin_inset Quotes erd \end_inset , página 78 de la norma, tal y como puede observarse en la figura \begin_inset LatexCommand \ref{fig:modmulti} \end_inset . El cambio es muy sencillo: se añade la generación de la señal \family typewriter MEA-DATA Indication \family default entre las cajas de test \begin_inset Quotes eld \end_inset FCS Ok? \begin_inset Quotes erd \end_inset y \begin_inset Quotes eld \end_inset digipeat enabled? \begin_inset Quotes erd \end_inset , punto en el que se sabe que se ha recibido una trama AX.25 correcta (sin error de FCS). El multiplexor debe de todas las formas descodificar el campo destino de la trama AX.25, para saber si debe mandarla al nivel superior. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 421 841 file MEA_DATA_Indication.eps height 3 100 flags 1 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:modmulti} \end_inset Modificación del multiplexor - rutina frame received \end_float \layout Subsubsection Interacción con máquina de enlace \layout Description LM-EXPEDITED-DATA \protected_separator Request Envío de tramas no numeradas. \layout Description LM-DATA \protected_separator Request Envío de tramas numeradas. \layout Standard La \family sans máquina de enlace de datos \family default envía paquetes enviando estas dos primitivas al \family sans multiplexor \begin_float footnote \layout Standard No queda claramente expuesto en la máquina de estados de la máquina de enlaces (norma AX.25 v2.2), se sobreentiende que las señales con nombres de tipo de paquetes AX.25 (Información, control, no numerados) se mandan mediante estas primitivas. \end_float . La máquina de medición será sensible a estas primitivas, y contabilizará el número de paquetes transmitidos, y con qué dirección de enlace (cada máquina de enlace tiene una dirección de enlace diferente). \layout Subsubsection Interacción con nivel de red \layout Standard Las siguientes primitivas permiten al nivel de red realizar consultas a la máquina de mediciones: \layout Description MEA-HEARD \protected_separator Request(Callsign) Petición de cuantos paquetes provenientes de la dirección de enlace Callsign han sido oídos, y cuanto tiempo ha transcurrido desde el último paquete. \layout Description MEA-HEARD \protected_separator Confirm(N,T) Respuesta a la consulta anterior. N es el número de paquetes, T es el tiempo transcurrido. En caso de no estar Callsign en la HeardList, se retorna N=0, T=0. \layout Description MEA-SENT \protected_separator Request(Callsign) Petición de cuantos paquetes con dirección de origen Callsign han sido transmitidos por el nodo. \layout Description MEA-SENT \protected_separator Confirm(N) Respuesta a la consulta anterior. N es el número de paquetes. En caso de no estar Callsign en la SentList, se retorna N=0. \layout Description MEA-OCCUPATION \protected_separator Request Petición del porcentaje de tiempo que el canal está ocupado (con portadora de datos), que llamamos \begin_inset Quotes eld \end_inset porcentaje de ocupación del canal \begin_inset Quotes erd \end_inset . \layout Description MEA-OCCUPATION \protected_separator Confirm(OCi) Respuesta a la consulta anterior. \layout Subsubsection Operación interna de la máquina \begin_inset LatexCommand \label{sec:MEAint} \end_inset \layout Paragraph* Primitivas MEA \layout Standard (recibidas del nivel 3) \layout Standard MEA-HEARD \protected_separator Request(Callsign) \layout Standard MEA-SENT \protected_separator Request(Callsign) \layout Standard MEA-OCCUPATION \protected_separator Request \layout Paragraph* Primitivas MEA \layout Standard (mandadas al nivel 3) \layout Standard MEA-HEARD \protected_separator Confirm(N,T) \layout Standard MEA-SENT \protected_separator Confirm(N) \layout Standard MEA-OCCUPATION \protected_separator Confirm(OCi) \layout Paragraph* Primitivas MEA \layout Standard (recibidas del multiplexor) \layout Standard MEA-DATA \protected_separator Indication(Callsign) \layout Paragraph* Primitivas LM \layout Standard (recibidas de la máquina de enlace) \layout Standard LM-EXPEDITED-DATA \protected_separator Request \layout Standard LM-DATA \protected_separator Request \layout Paragraph* Estados \layout Standard 1 estado. \layout Paragraph* Colas: \layout Standard Ninguna. \layout Paragraph* Códigos de error: \layout Standard Ninguno. \layout Paragraph* Variables: \layout List \labelwidthstring 00.00.0000 Heard \protected_separator List Lista de estaciones oídas. Un elemento por dirección AX.25 oída. Cada elemento se compone de 3 campos: \newline CallsignRx (Dirección AX.25) ; Nrx (número de paquetes recibidos) ; LastHeard (instante de recepción del último paquete). \newline Los dos últimos campos se refieren a esta dirección AX.25 en particular. \layout List \labelwidthstring 00.00.0000 Sent \protected_separator List Lista de indicativos de las máquinas de enlace del nodo que han transmitido paquetes. Cada elemento se compone de 2 campos: \newline CallsignTx (Dirección AX.25) ; Ntx (número de paquetes transmitidos por este indicativo). \layout Standard \emph on Las magnitudes de cuantificación del número de paquetes (transmitidos o recibidos) deben ser codificadas de forma que su incremento pueda ser calculado unívocamente. Por ejemplo, en caso de utilizar una codificación que tiene un límite superior \begin_float footnote \layout Standard Es lo habitual en las variables utilizadas en los lenguajes de programación, ya que son codificadas con un numero fijo de bits. Por ejemplo un tipo \begin_inset Quotes eld \end_inset integer \begin_inset Quotes erd \end_inset codificado con dos octetos no puede superar el valor 65535. \end_float \emph on , al alcanzar este valor el contador puede ser puesto a cero y seguir incrementá ndose: el incremento real se deduce sin ambigüedad, siendo este: \emph default \layout Standard \align center \begin_inset Formula \( valor\, anterior-valor\, m\acute{a}ximo+valor\, actual \) \end_inset \layout List \labelwidthstring 00.00.0000 Occupation \protected_separator List Lista de intervalos durante los cuales ha habido una portadora de datos en el canal ( \begin_inset Quotes eld \end_inset ocupación del canal \begin_inset Quotes erd \end_inset ). Un intervalo de ocupación de canal empieza en el momento en el que se recibe la primitiva PH-BUSY, y se acaba al recibir PH-QUIET. Cada elemento de la lista se corresponde con un intervalo de ocupación del canal, y se compone de 2 campos: \newline ti (instante de finalización del intervalo); Ti (duración del intervalo). \newline En la figura \begin_inset LatexCommand \ref{fig:occlist} \end_inset se presenta una esquema resumen de la Occupation List. \layout List \labelwidthstring 00.00.0000 TBUSY Instante en el que se recibió el último PH-BUSY (principio de un intervalo de ocupación de canal). \layout List \labelwidthstring 00.00.0000 OC Último valor del porcentaje de ocupación del canal calculado. \layout List \labelwidthstring 00.00.0000 \begin_float fig \layout Standard \align center \begin_inset Figure size 476 216 file MEA_figurita.eps width 3 80 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:occlist} \end_inset Occupation List \end_float \layout Paragraph* Constantes \layout List \labelwidthstring 00.00.0000 THeard Los indicativos cuyo último paquete no se ha vuelto a oír desde hace más tiempo que THeard son borrados de la Heard \protected_separator List. \layout List \labelwidthstring 00.00.0000 WINOC Duración de la ventana tiempo durante la cual se realiza la medición de la ocupación del canal; es decir que es el intervalo de tiempo en el que se observa el canal para obtener OC. \layout Paragraph* Temporizadores: \layout List \labelwidthstring 00.00.0000 THClear Periodo de limpieza de Heard List. \layout List \labelwidthstring 00.00.0000 TOC Periodo de medición de ocupación y limpieza de la Occupation List. \layout Paragraph* Consejos: \layout Standard Se corre el peligro de que la Occupation List se haga muy grande debido a oscilaciones y pérdidas de sincronismo de los dispositivos detectores de portadora de datos. Se aconseja definir un límite de tamaño, y si este límite se supera: \layout Itemize Dividir la ventana WINOC en dos ventanas de tiempo: \begin_deeper \layout Itemize WINOC1: empieza en el instante \begin_inset Formula \( NOW-WINOC \) \end_inset , y termina en \begin_inset Formula \( NOW-WINOC+WINOC1 \) \end_inset . Es el intervalo de tiempo justo para que la Occupation List alcance su máxima capacidad. \layout Itemize WINOC2: el resto del intervalo. Empieza en el instante \begin_inset Formula \( NOW-WINOC+WINOC1 \) \end_inset y termina en el instante \begin_inset Formula \( NOW \) \end_inset . \end_deeper \layout Itemize Calcular la ocupación dentro del intervalo WINOC1: \newline \begin_inset Formula \( OC=\min (1,\frac{\sum _{T_{i}\in WINOC1}T_{i}}{WINOC1}) \) \end_inset \layout Itemize No volver a calcular OC y no almacenar entradas hasta que WINOC no contenga el intervalo actual WINOC2. . \layout Standard Cuánto mayor sea WINOC, más cálculos se hacen (peligro de saturación del nodo por falta de velocidad de procesamiento) y mayor es la Occupation List (peligro de saturación de la memoria). Por lo tanto WINOC debe ser elegido cuidadosamente en función de la velocidad y las características del canal. \layout Subsubsection Especificación sdl \layout Standard En las figuras \begin_inset LatexCommand \ref{fig:sdlMEA} \end_inset y \begin_inset LatexCommand \ref{fig:sdlMEA2} \end_inset se puede ver la especificación sdl de la máquina de mediciones. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 427 841 file MEA_SDL.eps height 3 100 flags 5 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:sdlMEA} \end_inset Especificación SDL de MEASUREMENT MACHINE \end_float \begin_float fig \layout Standard \align center \begin_inset Figure size 595 568 file MEA_SDL-2.eps width 3 100 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:sdlMEA2} \end_inset Especificación SDL de MEASUREMENT MACHINE - Parte de ocupación de canal. \end_float \layout Section \pagebreak_top Ampliación de AX.25 v2.2 para DL-DATA Confirm \begin_inset LatexCommand \label{sec:AmpliSeg} \end_inset \layout Standard La primitiva \family sans DL-DATA Confirm \family default asiente el envío de las primitivas \family sans DL-DATA Request \family default , indicando la pdu ha sido entregada correctamente a la estación con la que el nivel de enlace ha realizado una conexión. \layout Standard En la actual norma AX.25 v2.2, no está implementado \family sans DL-DATA Confirm \family default , a pesar de ser especificado en el capítulo de intercambio de primitivas (página 130 de la norma). En este capítulo analizamos esta carencia y proponemos una forma de solucionarl a. \layout Subsection Funcionamiento y carencias del fragmentado en AX.25 v2.2 \layout Standard La dificultad de implementación del proceso generador de la primitiva \family sans DL-DATA Confirm \family default radica en el funcionamiento del \family sans Segmentador \family default . \layout Standard El \family sans Segmentador \family default actúa como un \begin_inset Quotes eld \end_inset filtro \begin_inset Quotes erd \end_inset entre el nivel de red y la máquina de enlace, interrumpiendo toda primitiva \family sans DL-DATA Request \family default cuyo campo de información supera un tamaño determinado y generando varias primitivas \family sans DL-DATA Request \family default de menor tamaño (segmentos). \layout Standard La \family sans máquina de enlace de datos \family default no detecta en absoluto este proceso, desconoce a qué pdu original pertenecen los segmento transmitidos, incluso desconoce si está transmitiendo segmentos o paquetes sin segmentar. Pero sólo ella sabe qué pdus son asentidas y cuáles no, ella gestiona el proceso de retransmisiones y movimiento de la ventana de transmisión hdlc. \emph on Para implementar \family sans DL-DATA Confirm \family default , la máquina de enlace de datos debe realizar un seguimiento de las pdus transmitidas y asentidas \emph default . \layout Standard Por otro lado, pueden haber varias primitivas \family sans DL-DATA Request \family default pendientes de asentir: es necesario que las primitivas se diferencien con un identificador, para poder ser asentidas independientemente; \family sans \emph on DL-DATA Request \family default y \family sans DL-DATA Confirm \family default \emph default \emph on tendrán como parámetro un identificador \emph default . \layout Subsection Cambio de nombre de las primitivas \layout Standard En el proceso de segmentación, el segmentador a partir de una primitiva con un determinado identificador debe generar otras primitivas (fragmentos) y asignarles otros identificadores. Además, es el segmentador quién tiene que generar el asentimiento DL-DATA Confirm de primitivas DL-DATA Request segmentadas; este asentimiento sólo se producirá cuando todos los fragmentos hayan sido asentidos por la máquina de enlaces. La operativa del segmentador se complica, y \emph on para obtener mayor claridad se propone cambiar el nombre de las primitivas \emph default , de la forma siguiente: \layout Enumerate Todas las primitivas de transmisión y recepción de datos entre el nivel de red y el segmentador pasan del nombre DL-DATA al nombre SEG-DATA \begin_float footnote \layout Standard Esto incluye a la primitiva DL-DATA Confirm. Por lo tanto en toda rigurosidad la sección hubiera tenido que titularse \emph on Ampliación de AX.25 v2.2 para SEG-DATA Confirm. \end_float . \layout Enumerate Todas las primitivas de transmisión y recepción de datos entre el segmentador y la máquina de enlace empiezan su nombre por DL-DATA. \layout Standard El punto 1 significa el siguiente cambio: \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable multicol5 6 2 0 0 -1 -1 -1 -1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 2 0 0 "" "" 2 1 0 "" "" 0 2 1 0 0 0 0 "" "" 0 4 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" \series bold Antes \newline Ahora \series default \newline DL-DATA Request \newline SEG-DATA Request (Id) \newline DL-DATA Indication \newline SEG-DATA Indication (Id) \newline DL-UNIT-DATA Indication \newline SEG-UNIT-DATA Indication \newline DL-UNIT-DATA Request \newline SEG-UNIT-DATA Request \newline DL-DATA Confirm \newline SEG-DATA Confirm (Id) \layout Standard Con (Id) queremos destacar que ahora las primitivas SEG-DATA tienen un identific ador explicito. Las primitivas SEG-UNIT-DATA no necesitan identificador, porque no son asentidas (envío no orientado a conexión), pero sí pueden ser segmentadas y por este motivo también se cambia su notación. \layout Standard Estos cambios deben aplicarse en las descripciones SDL del segmentador, por simple sustitución del nombre de las señales, en las páginas 122, 123, 124 y 125 de la norma \begin_float footnote \layout Standard Además, estos diagramas SDL van a tener que ser modificados, ver a continuación. \end_float . \layout Standard El resumen del intercambio de primitivas se presenta en la figura \begin_inset LatexCommand \ref{fig:DL->SEG} \end_inset . La notación Id e Id' se utiliza para destacar que los identificadores usados son independientes. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 446 254 file SEG_DATA_esquema.eps width 3 75 flags 1 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:DL->SEG} \end_inset Esquema de las nuevas primitivas SEG \end_float \layout Standard No se ha mencionado anteriormente por no complicar las descripciones, pero realmente el segmentador se divide en dos partes: la parte de segmentación y la parte de reensamblado. La primitivas generadas y recibidas por la parte de reensamblado están rodeadas por una línea punteada en la figura \begin_inset LatexCommand \ref{fig:DL->SEG} \end_inset . En la norma AX25 v2.2 esta parte tiene su propia máquina de estados, que no se ve afectada por la introducción de las primitivas de asentimiento, sólo cambia el nombre de las primitivas \family sans DL-DATA Indication \family default y \family sans DL-UNIT-DATA Indication \family default mandadas al nivel de red. \layout Subsection Funcionamiento \layout Subsubsection Segmentador \layout Standard \added_space_bottom defskip Se propone el siguiente comportamiento para el segmentador: \layout Standard Cuando el segmentador reciba una primitiva que no va a ser fragmentada (tipo \family sans SEG-DATA Request \family default , \family sans SEG-UNIT-DATA Request \family default ), se comportará transparentemente, convirtiendo la primitiva \family sans SEG- \family default en \family sans DL- \family default , manteniendo el mismo identificador. Igualmente ocurrirá con los asentimientos de primitivas no fragmentadas, \family sans DL-DATA Confirmation \family default se convertirá transparentemente en \family sans SEG-DATA Confirmation \family default . \layout Standard \added_space_bottom defskip Para cada primitiva \family sans SEG-DATA Request(Id) \family default que se vaya a fragmentar, el segmentador generará los fragmentos \family sans DL-DATA Request(Id') \family default , creará una tabla asociada a Id cuyos elementos serán Id' y el estado de asentimiento de cada fragmento (si este fragmento está asentido o no), como se muestra a continuación: \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable multicol5 6 2 0 0 -1 -1 -1 -1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 8 1 0 "" "" 8 1 1 "" "" 1 8 1 1 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" \series bold Id \series default \newline Identificador del segmento \newline ¿Segmento asentido? \newline Id' \begin_inset Formula \( _{1} \) \end_inset \newline SI \newline Id' \begin_inset Formula \( _{2} \) \end_inset \newline SI \newline Id' \begin_inset Formula \( _{3} \) \end_inset \newline NO \newline Id' \begin_inset Formula \( _{4} \) \end_inset \newline NO \layout Standard \added_space_top defskip En resumen, el comportamiento de fragmentación es: \layout Enumerate Cuando se fragmenta, el segmentador crea la tabla, almacenando en ella Id de la primitiva original e Id' de los fragmentos. \layout Enumerate Cuando el segmentador reciba \family sans DL-DATA Confirm(Id') \family default de uno de los segmentos, se marca este segmento como asentido en la tabla. \layout Enumerate Cuando todos los segmentos de una tabla estén asentidos, el segmentador envía \family sans SEG-DATA Confirm(Id) \family default y se borra la tabla. \layout Standard En la figura \begin_inset LatexCommand \ref{fig:SEGSDL1} \end_inset , proponemos un nuevo diagrama sdl para el segmentador. \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file SEG_SDL.eps width 3 100 height 3 100 angle 90 flags 1 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:SEGSDL1} \end_inset Diagrama SDL del segmentador \end_float \layout Subsubsection Reensamblador \layout Standard La máquina de reensamblado (páginas 123, 124, 125 de la norma) sólo cambia en la nomenclatura: las señales de salida \family sans DL-DATA Indication \family default y \family sans DL-UNIT-DATA Indication \family default se sustituyen respectivamente por \family sans SEG-DATA Indication \family default y \family sans SEG-UNIT-DATA Indication \family default , salvo en la página 125 en la que hay una errata ( \family sans DL-DATA Indication \family default en vez de \family sans DL-UNIT-DATA Indication \family default , y por lo tanto la señal pasa a llamarse \family sans SEG-UNIT-DATA Indication \family default ). \layout Subsubsection Máquina de enlace de datos \begin_inset LatexCommand \label{sec:SEGlink} \end_inset \layout Standard Gracias a las funciones desarrolladas por el segmentador, la \family sans máquina de enlace de datos \family default sólo tiene que preocuparse de confirmar las primitivas \family sans DL-DATA Request \family default , sean o no fragmentos. \layout Standard La \family sans máquina de enlace de datos \family default encola los datos \begin_float footnote \layout Standard La información transportada por las primitivas es en realidad un parámetro de estas. Es implícito, pero está ahí siempre. \end_float de las primitivas \family sans DL-DATA Request \family default en una cola First In First Out, que va vaciando mediante el procedimiento de ventana deslizante clásico de los sistemas hdlc. La ventana deslizante de transmisión marca exactamente que pdus han sido asentidas y cuales no, y por lo tanto una forma de generar los asentimientos \family sans DL-DATA Confirm(Id') \family default es \emph on asociar este proceso con el proceso de movimiento de la ventana deslizante de transmisión \emph default . \layout Standard Este seguimiento del movimiento de la ventana de transmisión se realiza comprobando las variaciones de la variable \family sans V(a) \begin_float footnote \layout Standard Última número de trama de la que se sabe con certeza su correcta recepción por el corresponsal. \end_float , insertando una función de comprobación \begin_float footnote \layout Standard Que llamamos \begin_inset Quotes eld \end_inset Check npdu acknowledged \begin_inset Quotes erd \end_inset \end_float después de los puntos en los que se asigna un valor a esta variable. Cuando \family sans V(a) \family default ha cambiado, se envían las primitivas \family sans DL-DATA Confirm \family default de las pdus asentidas. \layout Standard El seguimiento del identificador de las pdus asentidas se va a realizar mediante una cola First In First Out (que llamamos \family sans Id queue \family default ) en la que se van a meter los identificadores de las primitivas \family sans DL-DATA Request \family default . Este proceso se realiza en el mismo momento de encolar los datos transportados por estas primitivas, ambos parámetros (identificadores y datos) entran sincronizadamente en sus respectivas colas. \layout Standard El nivel de enlace entrega los datos en orden, de forma que la cola de datos por enviar nunca se desordena: si cada vez que un elemento de información es asentido se saca un elemento de la cola de identificadores, este elemento será el identificador de la primitiva correspondiente. \layout Standard En la práctica, se va a sustituir el símbolo de \begin_inset Quotes eld \end_inset meter Trama de Información en la cola \begin_inset Quotes erd \end_inset : \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \begin_inset Figure size 113 47 file Push_on_I_frame_queue.eps width 3 19 flags 9 \end_inset \layout Standard Por una llamada a la función \begin_inset Quotes eld \end_inset Nueva Trama de Información en la cola \begin_inset Quotes erd \end_inset : \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \begin_inset Figure size 119 55 file New_I_frame_in_queue.eps width 3 20 flags 9 \end_inset \layout Standard En la figura \begin_inset LatexCommand \ref{fig:newiframe} \end_inset vemos que esta nueva función almacena la parte de datos y el identificador en sus correspondientes colas. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 85 255 file New_frame_on_I_queue_subrutina.eps width 1 3 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:newiframe} \end_inset Función \emph on New I frame in queue \end_float \layout Standard En la figura \begin_inset LatexCommand \ref{fig:cheknpdua} \end_inset se representa la cola de identificadores, y la función de comprobación de variación de \family sans V(a) \family default . Lo primero que se realiza es calcular la variación de \family sans V(a) \family default , mediante la variable \family sans OldVa \family default en la que se almacena el valor de \family sans V(a) \family default la última vez que esta función fue llamada. A continuación se sacan tantos elementos como la variación de \family sans V(a) \family default indica, y se generan las primitivas \family sans DL-DATA Confirm(Id') \family default sacando Id' de la cola. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 691 file Check_npdu_acknowledged.eps width 3 100 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:cheknpdua} \end_inset Función Check npdu acknowledged \end_float \layout Standard La inserción de la llamada a la función Check npdu acknowledged se realiza siempre en el punto siguiente a una instrucción de asignación de un valor a V(a) [V(a) <- ??]. En el diagrama SDL esto ocurre en las páginas 95 (rama SREJ), 96 (rama REJ), 99 (rama RR), 100 (rama SREJ) y 101 (rama I). \layout Standard Esta cambio también podría hacerse en la función Check I frame ack'd, pero V(a) se actualiza en sus tres ramas. Para clarificar el diagrama, optamos por insertar una llamada a Check npdu acknowledged después de cada llamada a Check I frame ack'd, páginas 95 (rama RR), 96 (rama I). \layout Section \pagebreak_top Procedimiento general de medición \begin_inset LatexCommand \label{sec:ProgGenMed} \end_inset \layout Standard En la definición de los tipos de parámetros de la red (ver apartado \begin_inset LatexCommand \ref{sec:tipoparams} \end_inset ), se explica que los parámetros primarios son transmitidos por los nodos en la red, y que su recepción permite obtener un grafo de la red con enlaces cuantificados por parámetros característicos, obtenidos a partir de los primarios. \layout Standard Cada nodo debe por lo tanto realizar mediciones localmente, y obtener los parámetros primarios de sus enlaces, para luego difundirlos en la red. \emph on Este apartado trata del procedimiento seguido para obtener estos parámetros primarios \emph default . \layout Standard \begin_float fig \layout Standard \align center \pextra_type 3 \pextra_widthp 50 \begin_inset Figure size 178 341 file mediciones_esquema.eps width 3 30 flags 1 \end_inset \layout Caption \pextra_type 3 \pextra_widthp 50 \begin_inset LatexCommand \label{fig:4fases} \end_inset Las 4 fases del procedimiento general de medición \end_float Las magnitudes medidas, el tráfico, el ancho de banda disponible, la probabilida d de no error del enlace, pueden variar rápidamente, porque dependen de las condiciones de propagación del canal (variable en las frecuencias utilizada s), y de la condiciones de tráfico y congestión. Pero no es posible transmitirlas cada vez que cambian, esto sería un gasto demasiado grande de ancho de banda; queremos optimizar los recursos. Una forma de facilitar la tarea de difusión \begin_float footnote \layout Standard Llevada a cabo por la máquina de difusión de mapa de red. \end_float de estos parámetros, se hace suavizando las variaciones de las mediciones, mediante filtrado paso bajo. \layout Standard Este filtrado paso bajo también es deseable para que los parámetros primarios obtenidos caractericen el comportamiento general de los enlaces, y no se vean demasiado influenciado por variaciones muy puntuales \begin_float footnote \layout Standard La labor de recopilación y filtrado de las medidas se lleva a cabo en la máquina de gestión de red, ver apartado \begin_inset LatexCommand \ref{sec:maqgestred} \end_inset . \end_float . \layout Standard El procedimiento general propuesto a continuación se divide en 4 fases: petición o recepción de la medida, filtrado paso bajo, cuantificación mediante umbrales, codificación, tal y como representamos en la figura \begin_inset LatexCommand \ref{fig:4fases} \end_inset . \layout Subsection Fase 1 - Petición o recepción de medidas \layout Standard Existen dos tipos de mediciones: las que son realizadas contínuamente por sistemas del nodo (que llamamos \emph on mediciones síncronas \emph default ), y las que sólo son medibles cuando ocurre un hito en el nodo (que llamamos \emph on mediciones asíncronas \emph default ); este hito puede ser generado por varias causas, generalmente será la llegada de un elemento de información necesario para la obtención del parámetro primario. \layout Standard En el caso de mediciones síncronas, se consultarán periódicamente al sistema medidor, con periodo \family sans Treq \family default segundos, y se filtrará mediante un filtro digital, lo que requiere almacenar las N salidas anteriores del filtro en una cola de N elementos (que llamamos \emph on cola de tipo síncrono \emph default ). \layout Standard Las mediciones asíncronas se almacenarán en el momento de su obtención, y se les aplicará un proceso de filtrado sencillo. \layout Subsection Fase 2 - Filtrado paso bajo de medidas \layout Standard El siguiente paso consiste en realizar un filtrado paso bajo. El objetivo de este paso es suavizar las variaciones de las medidas, manteniend o la veracidad de las mismas. \layout Standard Las colas de tipo síncrono serán procesadas mediante un filtro digital. Esto es posible porque se realizan muestreos periódicos de las mediciones, el filtrado digital se va a comportar como un filtrado analógico. \layout Standard En cambio, las mediciones asíncronas no pueden ser procesadas de tal forma, por no existir tal periodicidad de mediciones. En efecto, si se filtraran digitalmente las medidas, convirtiendo estas medidas en una serie de números, se perdería la información de su antigüedad. Y si queremos que el valor obtenido al filtrar \emph on represente lo mejor posible el valor actual de cantidad medida \emph default , hay que darle más importancia a las mediciones recientes que a las mediciones antiguas; por ejemplo, no se trata igual la penúltima medición cuándo se ha realizado hace 10 segundos que cuándo se ha realizado hace 10 minutos. \layout Subsubsection Filtrado digital de mediciones síncronas \begin_inset LatexCommand \label{sec:Treq} \end_inset \layout Standard La obtención de las mediciones síncronas no consume recursos radioeléctricos, son realizadas en permanencia por sistemas medidores cuyas salidas vamos a muestrear; por lo tanto en este aspecto no hay limitación al período de muestreo ( \family sans Treq \family default ) de estas mediciones. Pero sí existen otras limitaciones, debido a las propias características de la red, y las limitaciones de capacidad de proceso y de memoria del nodo; hay que escoger un valor de \family sans Treq \family default adecuado a estas características. \layout Paragraph* Orden de magnitud de \family sans Treq \layout Standard \family sans Treq \family default define el reloj de medición. De su valor va a depender mucho la velocidad de reacción del sistema. Un sistema al que se le exige reaccionar en milésimas de segundo, deberá realizar medidas a intervalos de este orden de magnitud. \layout Standard Las redes de radio-paquete no requieren velocidades de reacción grandes, porque el objetivo principal no es la disponibilidad, sino la funcionalidad práctica a nivel de usuario final; los usuarios finales no exigen servicios de alta calidad, sino servicios que funcionen bien, con disponibilidades y calidades medianas. Es normal tener disponibilidades del orden del 80% o 90% \begin_float footnote \layout Standard Son estimaciones personales. \end_float . \layout Standard En este entorno, tiempos de respuesta del orden del minuto son razonables, y para obtener este resultado muestrear cada 10 segundos puede ser adecuado, como veremos a continuación. \layout Paragraph* Límite superior de \family sans Treq \layout Standard \family sans Treq \family default debe ser lo suficientemente bajo para que la salida del filtro no presente demasiado retardo, y esto depende de las características de la magnitud a medir; por ejemplo las presencia de escalones (mediciones que cambian bruscamente de valor y permanecen con este nuevo valor) hace aconsejable limitar el retardo, para que el sistema detecte estas variaciones a tiempo. \layout Standard Como veremos en el apartado \begin_inset LatexCommand \ref{sec:medFj} \end_inset , los parámetros medidos son la capacidad disponible y la tasa binaria de cada enlace; ambas magnitudes presentan escalones. Los retardos máximos tolerables son del orden del minuto, por lo tanto \family sans Treq \family default no debe superar este valor. Si por algún motivo el nodo no es capaz de garantizar esta cadencia, es necesario mejorar sus características técnicas. \layout Paragraph* Límite inferior de \family sans Treq \layout Standard Como veremos en el apartado \begin_inset LatexCommand \ref{sec:medFj} \end_inset , los sistemas medidores consultados utilizan una ventana de tiempo de duración T, durante la cual realizan el conteo de paquetes transmitidos; se trata de una integración en el intervalo T, un prefiltrado que hace que en intervalos \family sans Treq \family default mucho más pequeños que T, las variaciones sean insignificantes. T es del orden de minutos, y con este orden de magnitudes no tendría sentido escoger Treq inferior a 1 segundo. \layout Standard Además, si \family sans Treq \family default es demasiado bajo, la frecuencia de muestreo es alta, y para conseguir que el filtro tenga un ancho de banda lo suficientemente estrecho hay que almacenar grandes cantidades de medidas, por lo tanto se aumentan las exigencia s de capacidad de almacenamiento en memoria del nodo, a su vez que la capacidad de proceso (ya que cada \family sans Treq \family default segundos es necesario recalcular la salida del filtro). \layout Standard Otro factor a tener en cuenta es que las medidas (ancho de banda disponible y tasa de bits) se realizan paquete a paquete; es inútil realizar muestreos con periodos inferiores al tiempo de transmisión de un paquete, ya que no varía significativamente la magnitud medida. Es razonable escoger \family sans Treq \family default varios ordenes de magnitud por encima del tiempo de transmisión de paquete. En condiciones habituales de radioaficionados, el tiempo de transmisión de un paquete es del orden de 100ms-1s (velocidades inferiores a 10Kbits, y con transceptores de tiempos de conmutación lentos). \layout Paragraph* Valor de \family sans Treq \family default escogido y respuesta al escalón \layout Standard Teniendo en cuenta las consideraciones anteriores, se escoge \family sans Treq \family default =10 segundos \begin_float footnote \layout Standard Hemos visto que varios parámetros del sistema pueden influir sobre un valor Treq óptimo. La elección tiene un grado de subjetividad, y puede ser objeto de experimentaci ón. Por este motivo Treq es un parámetro del canal, modificable por el operador del nodo. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset página \begin_inset LatexCommand \pageref{apen:params} \end_inset . \end_float . Y se desea que en 50 segundos la repuesta al escalón unidad sea del orden de 0,8 (En aproximadamente 1 minuto se tiene el 80% de las variaciones de tipo escalón). Estos dos parámetros nos van a ayudar a fijar los parámetros del filtro digital. \layout Standard \added_space_top defskip En el apéndice \begin_inset LatexCommand \ref{apen:filtro} \end_inset se diseña el filtro digital. \layout Subsubsection Filtrado de mediciones asíncronas \begin_inset LatexCommand \label{sec:medasin} \end_inset \layout Standard El enfoque de filtrado digital tal y como se plantea en el apartado \begin_inset LatexCommand \ref{sec:Treq} \end_inset no es utilizable directamente en el caso de las mediciones asíncronas. La llegada de mediciones asíncronas no es periódica, puede ser que la penúltima medición haya llegado hace tanto tiempo que no tenga sentido tenerla en cuenta, porque las condiciones medidas pueden haber variado completamente. \layout Standard Por lo tanto, el filtrado debe tener en cuenta la antigüedad de las mediciones recibidas. Pueden diseñarse varios sistemas que tengan en cuenta este efecto, a continuaci ón proponemos uno: \layout Standard \added_space_top defskip Nos basamos en un filtro digital paso bajo de primer orden, cuya transformada Z de su respuesta al impulso es: \layout Standard \begin_inset Formula \[ H(z)=\frac{cte}{(1-az^{-1})}\] \end_inset \layout Standard Este filtro presente un polo en z=a, con \begin_inset Formula \( a\in \left] 0,1\right[ \) \end_inset . Para que \begin_inset Formula \( H(1)=1 \) \end_inset es necesario que \begin_inset Formula \( cte=1-a \) \end_inset . La ecuación en diferencias de coeficientes constantes de este filtro es: \layout Standard \begin_inset Formula \begin{eqnarray*} & y[n]-ay[n-1]=(1-a)x[n] & \\ \Leftrightarrow & y[n]=(1-a)x[n]+ay[n-1] & \end{eqnarray*} \end_inset \layout Standard Proponemos un filtro de similares características, pero utilizando un \begin_inset Formula \( a \) \end_inset variable para ponderar la importancia del último resultado \begin_inset Formula \( y[n-1] \) \end_inset obtenido, en función del tiempo \begin_inset Formula \( \Delta t \) \end_inset que ha pasado desde la última medida. Es decir: \layout Standard \begin_inset Formula \[ y=(1-a)x+ay_{-1}\] \end_inset \layout Standard La salida del filtro se calcula en el instante de la recepción de la medición \begin_inset Formula \( x \) \end_inset . \begin_inset Formula \( y_{-1} \) \end_inset es la salida del filtro calculada en el instante de la recepción de la anterior medición. \layout Standard Para el cálculo de a, proponemos la siguiente expresión: \layout Standard \begin_inset Formula \[ a=1-\min (1,\frac{\Delta t}{T_{asin}})\] \end_inset \layout Standard Siendo: \layout Description \begin_inset Formula \( \Delta t \) \end_inset el tiempo en segundos que ha pasado desde la recepción de la última medición. \layout Description \begin_inset Formula \( T_{asin} \) \end_inset es el tiempo máximo en segundos de consideración de la salida de filtro. Cuando \begin_inset Formula \( \Delta t>T_{asin} \) \end_inset , el valor de \begin_inset Formula \( a \) \end_inset es 0, y por lo tanto \begin_inset Formula \( y_{-1} \) \end_inset no es tenido en cuenta, y toma el valor de la medición recibida ( \begin_inset Formula \( y=x \) \end_inset ). \layout Description \begin_inset Formula \( a \) \end_inset varía linealmente entre 1 (cuando \begin_inset Formula \( \Delta t \) \end_inset =0) y 0 (cuando \begin_inset Formula \( \Delta t=T_{asin} \) \end_inset ). \layout Standard Un valor razonable en un canal de 1200 baudios es \begin_inset Formula \( Tasin=1800segundos \) \end_inset \begin_float footnote \layout Standard La elección de este parámetros tiene un grado de subjetividad, y puede ser objeto de experimentación. Por este motivo Tasin es un parámetro del canal, modificable por el operador del nodo. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float (media hora), ya que como veremos en el apartado \begin_inset LatexCommand \ref{sec:PjO} \end_inset las mediciones se realizan cada 10 minutos. \layout Standard En resumen, hemos promediado la medición con la anterior salida del filtro, siendo la ponderación de esta última menor cuanto mayor sea la antigüedad de la última medición asíncrona recibida. \layout Subsection Fase 3 - Cuantificación mediante umbrales \begin_inset LatexCommand \label{sec:cuant} \end_inset \layout Standard El objetivo de la cuantificación es reducir las variaciones de las medidas en un rango de valores discretos, al fin de optimizar los recursos de la red utilizados en difundir los parámetros primarios, facilitando el trabajo de la \family sans máquina de distribución del mapa de red \family default . \layout Standard La cuantificación no afecta en absoluto la codificación del parámetro primario (este se sigue codificando con el mismo formato y la misma precisión), ni ninguno de los mecanismos de difusión y recepción de la información, y por lo tanto puede realizarse con total flexibilidad. \layout Standard Se propone la utilización de un cuantificador de intervalos constantes, que tomará dos parámetros locales, que varían según el tipo de medida: \layout Description Vmax: Valor máximo que puede tomar la medición. En el caso de la probabilidad de no error (Pj), Vmax=1, en caso de las tasas de bits (Cj, Fj), Vmax=Bi, siendo Bi la tasa binaria nominal del canal utilizado. \layout Description Nint: El número de intervalos de cuantificación. \layout Standard La longitud de los intervalos de cuantificación será \begin_inset Formula \( \frac{Vmax}{Nint-1} \) \end_inset , y el valor cuantificado es igual a \begin_inset Formula \( K\times \frac{Vmax}{Nint-1} \) \end_inset con \begin_inset Formula \( K\in [0,1,...,Nint-1] \) \end_inset . \layout Standard La probabilidad de no error Pj se codifica en 32 niveles, es recomendable utilizar una cuantificación coherente con esta codificación, por ejemplo con \begin_inset Formula \( Nint=2^{n};n\leq 5 \) \end_inset . \layout Standard El efecto sobre las tasas de bits puede ser perjudicial si no se elige \begin_inset Formula \( Nint \) \end_inset lo suficientemente grande, porque se perdería precisión en la diferencia de \begin_inset Formula \( C_{j}-F_{j} \) \end_inset , valor utilizado para la decisión del encaminamiento (un enlace con \begin_inset Formula \( C_{j}-F_{j}=0 \) \end_inset no se utiliza jamás) y el control de flujo de acceso a la red (no se inyecta nunca tráfico en un enlace con \begin_inset Formula \( C_{j}-F_{j}=0 \) \end_inset ). Para evitar este efecto, se pueden escoger valores de Nint diferentes (primos entre si). \layout Standard Los parámetros locales Vmax y Nint asociados a los cuatro tipos de parámetros primarios se nombran: VmaxPj, VmaxCj, VmaxFj, VmaxHj, NintPj, NintCj, NintFj, NintHj \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Valor máximo de la salida de los cuantificadores de los parámetros primarios Pj, Cj, Fj o Hj \begin_inset Quotes erd \end_inset y \begin_inset Quotes eld \end_inset Número de intervalos de cuantificación de los cuantificadores de Pj, Cj, Fj o Hj \begin_inset Quotes erd \end_inset . Se trata de parámetros locales del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float . \layout Subsection Fase 4 - Codificación \layout Standard Esta fase consiste codificar el parámetro primario como se especifica en el apartado \begin_inset LatexCommand \ref{sec:codifparm} \end_inset . \layout Section \pagebreak_top Medición de Pj \begin_inset LatexCommand \label{sec:medPj} \end_inset \layout Standard La medición de Pj, probabilidad de que un paquete atraviese sin error un enlace sin conexión hdlc, se realiza con la participación de los nodos origen y destino del enlace. \layout Standard El proceso es simple: el nodo destino contabiliza el número de paquetes que recibe del nodo origen, mientras que este último transmite de vez en cuando señalización informando del número de paquetes que ha transmitido. El nodo destino por lo tanto conoce la magnitud \begin_inset Formula \( \frac{N\acute{u}mero\, de\, paquetes\, recibidos\, por\, el\, nodo\, destino}{N\acute{u}mero\, de\, paquetes\, transmitidos\, por\, el\, nodo\, origen} \) \end_inset que es precisamente Pj. Una vez conocido Pj, se filtra, siguiendo el procedimiento de filtrado de mediciones asíncronas del apartado \begin_inset LatexCommand \ref{sec:medasin} \end_inset : \layout Standard \added_space_top bigskip \added_space_bottom defskip \align center \emph on La medición de Pj se obtiene en el nodo destino. \layout Subsection Procedimiento en el nodo origen de un enlace \begin_inset LatexCommand \label{sec:PjO} \end_inset \layout Standard El papel del nodo origen del enlace es simple: transmitir periódicamente con periodo \begin_inset Formula \( T_{P_{j}} \) \end_inset \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Periodo de transmisión del número de paquetes transmitidos en un determinado canal \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float segundos el número de paquetes transmitidos ( \begin_inset Formula \( N_{paqtx} \) \end_inset ). La magnitud \begin_inset Formula \( N_{paqtx} \) \end_inset es independiente del enlace, se refiere al número total de paquetes transmitido s en el canal. \layout Standard Esta operación se realiza con un solo proceso transmisor ( \family sans lanzado por la máquina de gestión de red \family default ) asociado a cada canal. El periodo de transmisión \begin_inset Formula \( T_{P_{j}} \) \end_inset y el número de paquetes transmitidos \begin_inset Formula \( N_{paqtx} \) \end_inset son valores específicos de cada proceso, independientes de los procesos asociados a otros canales. El proceso transmisor realizará las siguientes operaciones con periodicidad \begin_inset Formula \( T_{P_{j}} \) \end_inset : \layout Enumerate Se guarda el número de paquetes transmitidos en la anterior transmisión en la variable \begin_inset Formula \( N_{paqtxlast} \) \end_inset : \begin_inset Formula \( N_{paqtxlast}=N_{paqtx} \) \end_inset . \layout Enumerate Se pide a la \family sans máquina de medición de enlace a nivel de enlace \family default \emph on del canal asociado \emph default al proceso transmisor el número de paquetes transmitidos por la dirección de enlace asignada al nodo, mediante la primitiva \family sans MEA-SENT Request (Dirección de enlace del nodo) \family default . \layout Enumerate Se recibe la respuesta a la solicitud, con la primitiva \family sans MEA-SENT Confirm (Número de paquetes transmitidos) \family default , y se almacena en la variable \begin_inset Formula \( N_{paqtx} \) \end_inset . \layout Enumerate Con \begin_inset Formula \( N_{paqtxlast} \) \end_inset y \begin_inset Formula \( N_{paqtx} \) \end_inset se calcula \begin_inset Formula \( N'_{paqtx} \) \end_inset , el número de paquetes que se han transmitido durante el último periodo \begin_float footnote \layout Standard Esta operación depende de la codificación del número de paquetes. Ver apartado \begin_inset LatexCommand \ref{sec:MEAint} \end_inset . \end_float . \layout Enumerate Se calcula \begin_inset Formula \( N_{paqacc} \) \end_inset , el número acumulado de paquetes transmitidos: \newline \begin_inset Formula \( N_{paqacc}=N_{paqacc}+N'_{paqtx} \) \end_inset . \layout Enumerate Si \begin_inset Formula \( N_{paqacc} \) \end_inset no supera el umbral \family sans Npaqtxmin \family default no se hace nada. El proceso rearranca en el punto 1 en el próximo periodo. \layout Enumerate Si \begin_inset Formula \( N_{paqacc} \) \end_inset supera el umbral \family sans Npaqtxmin \family default : \begin_deeper \layout Enumerate Se lanza el proceso de transmisión de señalización de medición de probabilidad de error, con \begin_inset Formula \( N_{paqtx} \) \end_inset en su campo de información. \layout Enumerate \begin_inset Formula \( N_{paqacc}=0 \) \end_inset . \end_deeper \layout Standard \family sans Npaqtxmin \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Número mínimo de paquetes transmitidos para lanzar la señalización de medición de probabilidad de error de paquete en el nodo origen de un enlace. \begin_inset Quotes erd \end_inset Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float es el número mínimo de paquetes transmitidos en el canal para efectuar la transmisión del número de paquetes transmitidos. En el proceso de comparación del número de paquetes recibidos con el número de paquetes transmitidos pueden haber errores (por ejemplo debido a paquetes encolados) que falsean las medidas. Con \family sans Npaqtxmin \family default se garantiza un valor mínimo de paquetes transmitidos, para limitar el error relativo de la medición. \layout Standard Para un canal a 1200 baudios, se puede escoger por ejemplo \family sans Npaqtxmin \family default =50. \layout Paragraph* Proceso de transmisión de señalización de medición de probabilidad de error \layout Standard El proceso de transmisión propiamente dicho es sencillo: \layout Standard Se utiliza el módulo Broadcast asociado al canal, para transmitir una trama no numerada, que podrá ser captada por \emph on todas \emph default las estaciones presentes en el canal. Es fundamental que esta trama sea transmitida con la máxima prioridad, antes que cualquier otro paquete; en el caso contrario, el número de paquetes transmitidos no se corresponde con la realidad, y se introduce un error en la medición. Dependiendo de la implementación del nodo, puede ser incluso razonable enviar directamente la señalización al módulo de Broadcast sin pasar por el encaminador, para evitar pasar por sus colas. \layout Subsection Procedimiento en el nodo destino de un enlace \begin_inset LatexCommand \label{sec:PjD} \end_inset \layout Standard Cuando el \family sans decodificador de señalización \family default recibe una trama de señalización de medición de probabilidad de error, envía la señal \family sans NM-Perror Indication(Canal, Dirección AX.25, Npaqtx) \family default a la máquina de gestión de red. El procedimiento de medición es lanzado por la máquina de gestión de red cuando recibe esta señal, realizando las siguientes operaciones: \layout Enumerate Se almacena Npaqtx en la variable \begin_inset Formula \( R_{paqtx} \) \end_inset . \layout Enumerate Se pide a la \family sans máquina de medición de enlace a nivel de enlace \family default \emph on del canal indicado \emph default el número de paquetes recibidos de este nodo, mediante la primitiva \family sans MEA-HEARD Request (Dirección AX.25) \family default . \layout Enumerate Se recibe la respuesta a la solicitud, con la primitiva \family sans MEA-HEARD Confirm (Número de paquetes oídos, tiempo transcurrido) \family default , y se almacena \begin_inset Quotes eld \end_inset Número de paquetes oídos \begin_inset Quotes erd \end_inset en la variable \begin_inset Formula \( N_{paqrx} \) \end_inset . \layout Enumerate Con \begin_inset Formula \( N_{paqrxlast} \) \end_inset y \begin_inset Formula \( N_{paqrx} \) \end_inset se calcula \begin_inset Formula \( N'_{paqrx} \) \end_inset , el número de paquetes de la estación origen recibidos desde la recepción de la penúltima primitiva \family sans NM-Perror Indication \begin_float footnote \layout Standard Esta operación depende de la codificación del número de paquetes. Ver apartado \begin_inset LatexCommand \ref{sec:MEAint} \end_inset . \end_float . \layout Enumerate Con \begin_inset Formula \( R_{paqtxlast} \) \end_inset y \begin_inset Formula \( R_{paqtx} \) \end_inset se calcula \begin_inset Formula \( R'_{paqtx} \) \end_inset , el número de paquetes que la estación origen ha transmitido desde la recepción de la penúltima primitiva \family sans NM-Perror Indication \begin_float footnote \layout Standard Esta operación depende de la codificación del número de paquetes. Ver apartado \begin_inset LatexCommand \ref{sec:MEAint} \end_inset . \end_float . Si \begin_inset Formula \( R'_{paqtx=0} \) \end_inset , se para el proceso. \layout Enumerate Se calcula la probabilidad de no error de paquete: \begin_inset Formula \( P'_{j}=\frac{N'_{paqrx}}{R'_{paqtx}} \) \end_inset \layout Enumerate Se almacena \begin_inset Formula \( N_{paqrx} \) \end_inset en \begin_inset Formula \( N_{paqrxlast} \) \end_inset : \begin_inset Formula \( N_{paqrxlast}=N_{paqrx} \) \end_inset \layout Enumerate Se almacena \begin_inset Formula \( R_{paqtx} \) \end_inset en \begin_inset Formula \( R_{paqtxlast} \) \end_inset : \begin_inset Formula \( R_{paqtxlast}=R_{paqtx} \) \end_inset \layout Section \pagebreak_top Medición de Fj \begin_inset LatexCommand \label{sec:medFj} \end_inset \layout Standard La tasa binaria (o flujo de datos) transportada por un enlace es medida por su \family sans máquina de medición de enlace a nivel de red \family default . Cada \family sans máquina de medición de enlace a nivel de red \family default tiene asignado un único enlace, siendo esta un punto de paso obligatorio para cualquier dato que vaya a ser transmitido mediante este enlace; ella interacciona directamente con el nivel 2, mediante las primitivas \family sans SEG-DATA Request \family default , \family sans SEG-DATA Confirm \family default , \family sans SEG-UNIT-DATA Request \family default . \layout Standard La medición de \family sans Fj \family default no se hace de forma continua, sino en intervalos periódicos de tiempo, pero esta característica es ocultada al resto de sistemas, ya que la primitiva de consulta a esta medición ( \family sans NMEA-FJ Request \family default ) es contestada ( \family sans NMEA-FJ Confirm \family default ) con el valor obtenido en el último periodo. \family sans Fj \family default es por lo tanto una medición síncrona. \layout Standard El procedimiento de medición no es el mismo para un enlace con conexión o sin conexión hdlc, se definen dos máquinas diferentes para cada caso, que describimos a continuación. \layout Subsection Enlaces con conexión hdlc \begin_inset LatexCommand \label{sec:medFjcon} \end_inset \layout Standard La medición de la velocidad en un enlace hdlc se realiza observando cuantas pdus han sido asentidas durante un intervalo de tiempo determinado. \layout Standard Para llevar a cabo esta labor, se crea una tabla (tabla almacén de primitivas \family sans DL-DATA Request \family default transmitidas) en la que se almacenan las propiedades de los paquetes transmitid os. Para cada paquete transmitido se crea un registro (fila de la tabla) con los siguientes datos (columnas): \layout Description Identificador El identificador de la primitiva \family sans SEG-DATA Request \family default con la que se ha mandado la pdu al nivel de enlace. \layout Description Longitud El número de bits transportados (longitud en bits del campo de datos de la primitiva \family sans SEG-DATA Request \family default ). \layout Description ACK Indicador booleano. Verdadero si la primitiva ha sido asentido ( \family sans SEG-DATA Confirm \family default ), falso si no lo ha sido. \layout Description Tiempo Indicador temporal de cuando ha llegado la primitiva a la máquina de medición de enlace a nivel de red. Sólo es necesario para medir el tiempo transcurrido, y no es necesario que el reloj esté en hora. \layout Standard \begin_float tab \layout Standard \align center \LyXTable multicol5 5 4 0 0 -1 -1 -1 -1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 8 1 0 "" "" 8 1 0 "" "" 8 1 0 "" "" 8 1 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" \series bold Identificador \newline Longitud \newline ACK \newline Tiempo \series default \newline 4240 \newline 200 \newline Falso \newline 13h15min05s \newline 4236 \newline 200 \newline Falso \newline 13h15min01s \newline 4235 \newline 1024 \newline Verdadero \newline 13h14min50s \newline 4234 \newline 256 \newline Verdadero \newline 13h14min10s \layout Caption \begin_inset LatexCommand \label{tab:medFjcon} \end_inset Tabla almacén de primitivas DL-DATA Request transmitidas \end_float \layout Standard Cuando la máquina de medición de enlace recibe una pdu para transmitir (mediante la primitiva \family sans NMEA-DATA Request \family default ), genera un Identificador que no esté en la tabla, añade una fila con los datos mencionados, y envía al nivel de enlace la primitiva \family sans SEG-DATA Request (Identificador) \family default correspondiente. \layout Standard Cuando recibe del nivel de enlace la primitiva \family sans SEG-DATA Confirm (Identificador) \family default , marcará como verdadero el campo ACK, y anotará el instante de tiempo actual en una variable (por motivos ajenos a la medición de \begin_inset Formula \( F_{j} \) \end_inset , ver apartado \begin_inset LatexCommand \ref{sec:medCj} \end_inset de medición de \begin_inset Formula \( C_{j} \) \end_inset ). El procedimiento de medición es el siguiente: \layout Standard \added_space_top defskip Con un periodo de \family sans TFj \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Periodo de medición de Fj \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float , se realizan las siguientes operaciones: \layout Enumerate Borrar las entradas de primitivas \emph on asentidas \emph default más antiguas que \family sans TFjwin \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Ventana de medición de Fj \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float \family sans \family default ( \begin_inset Formula \( NOW-Tiempo\geq TF_{jwin} \) \end_inset ). \layout Enumerate Calcular Nbits, el número de bits transportados durante el intervalo \family sans TFjwin \family default , sumando las longitudes de las primitivas asentidas. \layout Enumerate Almacenar en el registro interno la tasa binaria medida: \begin_inset Formula \( F_{j}=\frac{Nbits}{TF_{jwin}} \) \end_inset . \layout Standard En las figuras \begin_inset LatexCommand \ref{fig:medFjCj1} \end_inset , \begin_inset LatexCommand \ref{fig:medFjCj2} \end_inset , \begin_inset LatexCommand \ref{fig:medCjFj3} \end_inset se puede ver el diagrama SDL del módulo de medición de Fj y Cj. \layout Subsection Enlaces sin conexión hdlc \begin_inset LatexCommand \label{sec:MedFjsin} \end_inset \layout Standard En un enlace sin conexión hdlc, el nivel 2 no realiza el control de flujo de ventana deslizante. En el transmisor no es posible conocer si una pdu ha sido entregada, ni \emph on cuando \emph default ha sido entregada. El diseño de AX25 v2.2 es tal que el nivel de red puede colapsar por completo el transmisor, no existiendo ningún mecanismo de control de flujo, en ninguno de los puntos. Las tramas son encoladas en la cola del multiplexor hasta el momento en el que les toque el turno ser transmitidas a este enlace; en ese momento la cola es vaciada por completo en la máquina PHY, que no realiza ninguna acción de control de flujo \begin_float footnote \layout Standard Salvo interrupciones temporales del transmisor si este está más de 10 minutos transmitiendo sin parar, pero no es realmente control de flujo ya que no evita el colapso de la cola del transmisor, sino que es una medida preventiva para dar oportunidades de transmitir a otras estaciones del mismo canal. \end_float . \layout Standard Ante esta situación, desde el transmisor resulta difícil la medición del flujo real transportado por el enlace, porque el flujo saliente del nivel de red o del nivel de enlace no se corresponden con el flujo real transportado por el enlace. \layout Standard En cambio, desde el receptor (nodo destino del enlace) la medición de Fj se realiza fácilmente, porque los datos llegan a la tasa que los ha podido transportar el canal: \layout Standard \added_space_top defskip \added_space_bottom defskip \align center \emph on En enlaces sin conexión hdlc, Fj se mide en el receptor. \layout Standard La medición de la velocidad se realiza observando las pdus que han llegado durante un intervalo de tiempo determinado. \layout Standard Para llevar a cabo esta labor, se crea una cola en la que se almacenan la longitud del campo de datos y el instante de llegada de las primitivas \family sans SEG-UNIT-DATA Indication \family default . El procedimiento de medición es el siguiente: \layout Standard \added_space_top defskip Con un periodo de \family sans TFj \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Periodo de medición de Fj \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float , se realizan las siguientes operaciones: \layout Enumerate Borrar (sacar) de la cola los elementos más antiguos que \family sans TFjwin \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Ventana de medición de Fj \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float . \layout Enumerate Calcular Nbits, el número de bits recibidos durante el intervalo \family sans TFjwin \family default , sumando las longitudes de los paquetes recibidos. \layout Enumerate Almacenar en el registro interno la tasa binaria medida: \begin_inset Formula \( F_{j}=\frac{Nbits}{TF_{jwin}} \) \end_inset . \layout Section \pagebreak_top Medición de Cj \begin_inset LatexCommand \label{sec:medCj} \end_inset \layout Subsection Análisis general \layout Standard Todos los enlaces presentes en un mismo canal radioeléctrico comparten un recurso finito: el canal tiene un ancho de banda limitado. El ancho de banda de canal disponible en cada momento depende del uso que hace de él cada enlace. \layout Standard Por lo tanto, no se puede definir la capacidad de un enlace como un ancho de banda fijo disponible asignado a este enlace, porque en la realidad cada enlace comparte el canal, y su capacidad varía en función del tráfico de cada uno de ellos. Una definición más apropiada de la capacidad Cj de un enlace sería: tasa máxima de datos que el enlace podría transportar si las condiciones del canal y el comportamiento del resto de los enlaces se mantuvieran estacionarios. \layout Standard Para la consecución de la medición de tal magnitud se han analizado las siguientes vías de trabajo: \layout Enumerate Medición del tiempo de ida y vuelta: Se trata del sistema utilizado en la red flexnet e inp (ver capítulo \begin_inset LatexCommand \ref{cap:nivred} \end_inset ). \newline Este sistema supone transmitir periódicamente paquetes, y medir el tiempo que tardan en ir y volver. Para que la medida sea exacta, se debe presuponer una cierta simetría del enlace. Esta premisa no es cierta en Jnet, y por lo tanto se descarta la opción. \layout Enumerate Transmisión de ráfagas: la capacidad del canal (Cj) es la tasa de datos transmitida (Fj) medida en situaciones en las que \emph on hay paquetes encolados en el nivel de enlace \emph default ; dicho de otra forma, la tasa de datos (Fj) no es igual a la capacidad del canal (Cj) porque hay momentos en los que el enlace está inactivo (no hay datos pendientes de transmitir por este enlace). A la situación de tener paquetes encolados a nivel de enlace la llamamos \begin_inset Quotes eld \end_inset ráfaga \begin_inset Quotes erd \end_inset , y para realizar las mediciones en situación de \begin_inset Quotes eld \end_inset ráfagas \begin_inset Quotes erd \end_inset , se ha pensado en dos posibilidades: \begin_deeper \layout Enumerate Provocar ráfagas de paquetes: se envían paquetes de prueba al nivel de enlace a una tasa superior que la capacidad del canal, y se mide Fj. \newline El principal problema de esta posibilidad es que los nodos consumen tráfico del canal (un recurso escaso que hay que optimizar), y que la propia medición perturba la medida (se consume capacidad del enlace, por lo tanto la capacidad de este es menor). \layout Enumerate Detectar ráfagas de paquetes: no introducir paquetes de prueba, pero detectar cuando un enlace envía ráfagas. Se han estudiado dos criterios de detección de ráfagas: \begin_deeper \layout Enumerate Medir la tasa de envío de los paquetes al nivel de enlace: \newline se determina un umbral de velocidad de entrega de paquetes del nivel de red al nivel de enlace a partir del cual se considera que los paquetes son enviados en ráfaga. El principal problema es calcular este umbral. Si se le fija a la capacidad nominal del interfaz ( \begin_inset Formula \( B_{j} \) \end_inset ), es probable que en muchas situaciones no llegue a superarse (por ejemplo en el caso de un nodo con un canal de entrada de menor capacidad que el canal de salida). \layout Enumerate Observar la cola en el nivel de enlace. \newline Se trata de detectar los momentos en los que hay paquetes por enviar en la cola de la máquina de nivel de enlace, y obtener Cj realizando mediciones sobre estos paquetes. Esta es la vía seguida para enlaces con conexión hdlc. \end_deeper \end_deeper \layout Enumerate Evaluación de la longitud media de la cola. Se trata de aplicar la teoría de colas, al fin de evaluar la capacidad del sistema a partir de Fj y la longitud media de la cola. Esta opción es analizada en el apéndice \begin_inset LatexCommand \ref{apen:medCj} \end_inset . \layout Enumerate Medición del porcentaje de tiempo que el canal está ocupado. De esta magnitud se puede derivar una estimación del ancho de banda disponible en el canal. Es la opción elegida para enlaces sin conexión hdlc. \layout Standard Formalmente Cj es una medición síncrona, al igual que Fj, aunque como veremos a continuación la \family sans máquina de medición de enlaces a nivel de red \family default la va a obtener asíncronamente. Para responder a la peticiones síncronas de la \family sans máquina de gestión de red \family default ( \family sans primitivas NMEA-CJ Request, NMEA-CJ Confirm \family default ), la máquina de medición de enlaces utilizará un registro donde almacena el último valor medido de Cj \begin_float footnote \layout Standard Salvo si Fj>Cj, ver apartado \begin_inset LatexCommand \ref{sec:medCjhdlc} \end_inset . \end_float . \layout Subsection Enlaces con conexión hdlc \begin_inset LatexCommand \label{sec:MedCjCon} \end_inset \layout Standard La técnica empleada consiste en detectar las ráfagas, medir su longitud \begin_inset Formula \( N_{raf} \) \end_inset en bits y el tiempo \begin_inset Formula \( T_{raf} \) \end_inset que tardan en llegar correctamente al otro extremo del enlace, y calcular la capacidad \begin_inset Formula \( C_{j}=\frac{N_{raf}}{T_{raf}} \) \end_inset . Esta medición se va a realizar simultáneamente a la medición de Fj, por una única máquina. Se van a necesitar tres nuevas variables: \layout Standard \begin_inset Formula \( T_{raffirst} \) \end_inset : instante de llegada del primer paquete de la ráfaga. \layout Standard \begin_inset Formula \( T_{raflast} \) \end_inset : instante de llegada del último asentimiento de un paquete de la ráfaga. \layout Standard \begin_inset Formula \( N_{raf} \) \end_inset : longitud en bits de la parte de la ráfaga que ha llegado correctamente al destino del enlace. \layout Standard \added_space_top defskip A continuación describimos la operativa de la máquina, y en las figuras \begin_inset LatexCommand \ref{fig:medFjCj1} \end_inset , \begin_inset LatexCommand \ref{fig:medFjCj2} \end_inset , \begin_inset LatexCommand \ref{fig:medCjFj3} \end_inset se puede ver el diagrama SDL. \layout Subsubsection Detección de ráfagas \layout Standard El primer paso consiste en detectar y delimitar las ráfagas. Esta tarea, como hemos destacado anteriormente, se puede realizar observando la cola del nivel de enlace. En concreto, como la tasa de transporte de información es marcada por la \family sans máquina de enlace de datos \family default , es su cola la que debe ser observada. \layout Standard No obstante, gracias a la implementación del asentimiento \family sans SEG-DATA Confirm \family default , es posible realizar una tarea equivalente a nivel de red, y obviamente optaremos por esta solución ya que permite no modificar AX.25 v2.2. \layout Standard La delimitación de las ráfagas se realiza definiendo dos estados en la máquina de mediciones: \layout Description Estado-0 \protected_separator Esperando \protected_separator principio \protected_separator de \protected_separator ráfaga Es el estado inicial de la máquina. Cuando llega la primitiva \family sans NMEA-DATA Request \family default a la \family sans máquina de medición de enlaces a nivel de red \family default (solicitud de transmisión de pdu), se comprueba si la primitiva anterior ha sido asentida (campo ACK de la tabla almacén de primitivas DL-DATA Request transmitidas, ver tabla \begin_inset LatexCommand \ref{tab:medFjcon} \end_inset ). \newline Si la primitiva anterior no ha sido asentida, se considera que ha empezado una nueva ráfaga, formada por la primitiva actual y la anterior: \begin_deeper \layout Itemize \begin_inset Formula \( T_{raffirst} \) \end_inset toma el valor del instante de llegada de la primitiva anterior (campo TIEMPO de la tabla almacén de primitivas DL-DATA Request transmitidas). \layout Itemize Se cambia al estado 1. \end_deeper \layout Description Estado-1 \protected_separator Esperando \protected_separator fin \protected_separator de \protected_separator ráfaga Se considera que una ráfaga termina cuando han sido asentidas todos las primitivas de la tabla almacén de primitivas DL-DATA Request (campo ACK). Esta comprobación se realiza al recibir un asentimiento SEG-DATA Confirm. \newline Cuando una primitiva es asentida: \begin_deeper \layout Itemize Se almacena en el registro interno \begin_inset Formula \( T_{raflast} \) \end_inset el instante actual. \layout Itemize Sea \begin_inset Formula \( N \) \end_inset la longitud de la pdu asentida: \begin_inset Formula \( N_{raf}=N_{raf}+N \) \end_inset . \layout Itemize Si todos las primitivas han sido asentidas (=fin de ráfaga): \begin_deeper \layout Itemize Almacenar en el registro interno la capacidad medida: \newline \begin_inset Formula \( C_{j}=\frac{N_{raf}}{NOW-T_{raffirst}} \) \end_inset , siendo \begin_inset Formula \( NOW \) \end_inset el instante actual, medido de la misma forma que \begin_inset Formula \( T_{raffirst} \) \end_inset . \layout Itemize Se cambia al estado 0. \end_deeper \end_deeper \layout Subsubsection Ráfagas largas \layout Standard Como se puede observar, el procedimiento de medición de Cj es asíncrono, y sólo se conoce su nuevo valor hasta que termina una ráfaga. Este comportamiento puede ser problemático: un aumento súbito del tráfico puede generar una ráfaga muy larga, tan larga que solo se acabaría cuando el tráfico sea regulado por mecanismos de control de flujo interno de la red. Durante este intervalo de tiempo, el nodo no habría actualizado Cj, a diferenci a de Fj que se actualiza periódicamente. Es importante que Cj y Fj estén sincronizados, porque Cj-Fj representa el ancho de banda disponible, y se utiliza en el algoritmo de control de acceso a la red. Valores no sincronizados pueden provocar que los nodos inyecten demasiado tráfico en la red. \layout Standard Por este motivo, se va a forzar la actualización de Cj durante las ráfagas largas. En estado-1, se lanza un temporizador con periodo \family sans TFjwin \family default , definido en el apartado \begin_inset LatexCommand \ref{tab:medFjcon} \end_inset , que permitirá actualizar Cj: \begin_inset Formula \( C_{j}=\frac{N_{raf}}{T_{raflast}-T_{raffirst}} \) \end_inset \layout Subsubsection Ráfagas cortas \begin_inset LatexCommand \label{sec:Nrafmin} \end_inset \layout Standard En el caso opuesto de ráfagas muy cortas, puede darse el caso que la medida obtenida no sea acorde a la realidad. Por este motivo, se define el parámetro \begin_inset Formula \( N_{rafmin} \) \end_inset \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Longitud mínima de ráfaga \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float . Si en el proceso de cálculo de Cj se verifica que \begin_inset Formula \( N_{raf}\leq N_{rafmin} \) \end_inset , no se calcula Cj (se mantiene el valor anterior). \begin_inset Formula \( N_{rafmin}\geq 0 \) \end_inset , y por lo tanto no se calcula jamás el valor de Cj si ninguna de las pdus de la ráfaga han sido asentidas ( \begin_inset Formula \( N_{raf}=0 \) \end_inset ). \layout Subsubsection Medición de Cj \begin_inset LatexCommand \label{sec:medCjhdlc} \end_inset \layout Standard El filtrado de Cj se produce en la máquina de gestión de red, con la función de filtrado definida en el apéndice \begin_inset LatexCommand \ref{apen:filtro} \end_inset . La máquina de medición de enlaces a nivel de red se limita a responder a las primitivas periódicas de petición de la medición Cj con el valor almacenado en su registro interno. No obstante, Fj y Cj son medidos mediante algoritmos diferentes, y al fin de evitar incongruencias del tipo \begin_inset Formula \( F_{j}>C_{j} \) \end_inset , en el registro se almacena siempre \begin_inset Formula \( \max (F_{j},C_{j}) \) \end_inset . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 392 841 file SDL_med_Cj_hdlc_1.eps height 3 100 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:medFjCj1} \end_inset Máquina de medición de Cj y Fj - Estado 0 \end_float \begin_float fig \layout Standard \align center \begin_inset Figure size 363 841 file SDL_med_Cj_hdlc_2.eps height 3 100 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:medFjCj2} \end_inset Máquina de medición de Cj y Fj \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 619 841 file SDL_med_Cj_hdlc_3.eps height 3 100 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:medCjFj3} \end_inset Máquina de medición de Cj y Fj - Estado 1 \end_float \layout Subsection \pagebreak_top Enlaces sin conexión hdlc \begin_inset LatexCommand \label{sec:medCjsin} \end_inset \layout Standard Por lo motivos expuestos en el apartado de medición de Fj ( \begin_inset LatexCommand \ref{sec:MedFjsin} \end_inset ), en enlaces sin conexión hdlc no es posible detectar ráfagas desde el nivel de red, porque no se conoce que pdus han sido entregadas y cuales no. Debido al diseño de AX.25 v2.2, esta detección solo sería posible a nivel PHY, y se sale del marco de estudio de este proyecto. \layout Standard Una alternativa es calcular Cj a partir de Fj y de la longitud media de la cola (apéndice \begin_inset LatexCommand \ref{apen:medCj} \end_inset ), pero tampoco es posible por el mismo motivo: la cola se distribuye entre el nivel 2 y el nivel 1, medirla supone modificar ambas capas. \layout Standard Es por lo tanto necesario un \emph on enfoque \emph default alternativo. La arquitectura que ofrece Jnet es muy flexible, permite que el nodo realice cualquier tipo de medición (parámetro primario) útil a la obtención del parámetro característico del enlace. Es incluso posible que el nodo origen y el nodo destino midan independientement e parámetros primarios de naturaleza diferente, de forma que el procesado de ambas medidas permita obtener un parámetro característico del enlace. Queremos destacar que esta flexibilidad da un importante grado de libertad, y que profundizando en el análisis siempre se podrían obtener enfoques y algoritmos de medición más eficaces, o más exactos. \layout Standard \added_space_top defskip En este enfoque propuesto, se asocia la capacidad de un enlace sin conexión hdlc con la capacidad disponible en el canal radioeléctrico. La capacidad disponible en el canal puede asimilarse con intervalos de tiempo en los que no existe portadora alguna en el canal. Estos intervalos de tiempo están disponibles para transmitir tramas no numeradas, y por lo tanto son asimilables a capacidad de canal. Que las transmisiones realizadas durante estos intervalos de tiempos se conviertan en capacidad efectiva del enlace (es decir de cuantos bits por segundo se consiguen transportar realmente) depende de la probabilidad de error de este enlace. \layout Standard El porcentaje de ocupación del canal (OC) es medido por la máquina de medición de nivel de enlace (MEASUREMENT MACHINE, ver apartado \begin_inset LatexCommand \ref{sec:MEASUR} \end_inset ), y la probabilidad de error también es conocida (ver apartado \begin_inset LatexCommand \ref{sec:medPj} \end_inset ). \layout Standard La capacidad del canal es: \layout Standard \begin_inset Formula \begin{equation} \label{mat:CjSin} C_{j}=Fj_{p}+Pj_{p}\times B_{i}\times (1-OC_{i})\times a \end{equation} \end_inset \layout Standard Siendo: \layout Description \begin_inset Formula \( Fj_{p} \) \end_inset El parámetro primario \begin_inset Formula \( Fj_{p} \) \end_inset (tasa de bits actualmente transportada por el canal). \layout Description \begin_inset Formula \( Pj_{p} \) \end_inset El parámetro primario \begin_inset Formula \( Pj_{p} \) \end_inset (probabilidad de no error de paquete). \layout Description \begin_inset Formula \( B_{i} \) \end_inset Capacidad bruta del canal (en bps); por ejemplo 1200 bps, 9600 bps, 19200 bps. \layout Description \begin_inset Formula \( OC_{i} \) \end_inset Porcentaje de tiempo que el canal está ocupado. \layout Description \pagebreak_bottom \begin_inset Formula \( a \) \end_inset Relación de eficiencia del nivel de enlace. Se trata de la relación: \layout Standard \noindent \begin_inset Formula \begin{eqnarray*} a & = & \frac{N\acute{u}mero\, de\, bits\, de\, datos\, de\, usuario\, por\, paquete\, ax.25}{N\acute{u}mero\, de\, bits\, total\, por\, paquete\, ax.25}\\ & = & \frac{N\acute{u}mero\, de\, bits\, de\, datos\, de\, usuario\, por\, paquete\, ax.25}{N\acute{u}mero\, de\, bits\, de\, datos\, de\, usuario\, por\, paquete\, ax.25+tara\, nivel\, de\, enlace} \end{eqnarray*} \end_inset Esta relación permite expresar la relación entre la capacidad del canal y la capacidad real ofrecida por el nivel de enlace. Depende de la longitud media de los paquetes. Para una longitud de 256 octetos de usuario, en modo de ventana no extendida, tenemos: \layout Standard \begin_inset Formula \begin{eqnarray*} a & = & \frac{8\times 256}{8\times 256+[flags]2\times 8+[address]14\times 8+[control]8+[pid]8+[fcs]16}\\ & = & 0.93 \end{eqnarray*} \end_inset \layout Standard En la ecuación \begin_inset Formula \( C_{j}=Fj_{p}+Pj_{p}\times B_{i}\times (1-OC_{i})\times a \) \end_inset cabe destacar lo siguiente: \layout Standard Se suma \begin_inset Formula \( Fj_{p} \) \end_inset a la capacidad del canal \begin_inset Formula \( Pj_{p}\times B_{i}\times (1-OC_{i})\times a \) \end_inset . Esto se debe a que \begin_inset Formula \( (1-OC_{i}) \) \end_inset es el porcentaje de tiempo que el canal está libre, y que por lo tanto \begin_inset Formula \( Pj_{p}\times B_{i}\times (1-OC_{i})\times a \) \end_inset es la capacidad teórica que el nivel de enlace puede ofrecer \emph on además \emph default del tráfico que ya transporta actualmente; es por lo tanto necesario sumar \begin_inset Formula \( Fj_{p} \) \end_inset para obtener la capacidad total que el enlace ofrece. \layout Subsubsection Procedimiento \layout Standard La \family sans máquina de gestión de red \family default del nodo \emph on origen \emph default del enlace solicita con periodo \family sans Treq \family default a la \family sans máquina de medición de enlace a nivel de enlace \family default la tasa de ocupación del canal \begin_inset Formula \( OC_{i} \) \end_inset , y obtiene el parámetro primario \begin_inset Formula \( Hj_{p} \) \end_inset , que llamamos \begin_inset Quotes eld \end_inset ancho de banda disponible de canal visto desde el transmisor \begin_inset Quotes erd \end_inset : \layout Standard \begin_inset Formula \[ Hj_{p}=B_{i}\times (1-OC_{i})\times a\] \end_inset \layout Standard A continuación \begin_inset Formula \( Hj_{p} \) \end_inset se procesa mediante los procedimientos generales descritos en el apartado \begin_inset LatexCommand \ref{sec:ProgGenMed} \end_inset . \layout Standard Queremos destacar que \begin_inset Formula \( Hj_{p} \) \end_inset \emph on se mide en el nodo origen \emph default , y no en el nodo destino como \begin_inset Formula \( Pj_{p} \) \end_inset y \begin_inset Formula \( Fj_{p} \) \end_inset . De haberse hecho en el nodo destino, es probable que \begin_inset Formula \( OC_{i} \) \end_inset fuera diferente \begin_float footnote \layout Standard Debido a que el nodo origen y nodo destino pueden no recibir el mismo tráfico. Ver la descripción del problema de la estación oculta, apartado \begin_inset LatexCommand \ref{sec:PacCaos} \end_inset . \end_float y \begin_inset Formula \( Hj_{p} \) \end_inset hubiera sido el \begin_inset Quotes eld \end_inset ancho de banda disponible de canal visto desde el receptor \begin_inset Quotes erd \end_inset . No obstante, en enlaces unidireccionales con equipos que sólo pueden transmitir (ver apartado \begin_inset LatexCommand \ref{sec:enlacunid} \end_inset ) y no recibir, \begin_inset Formula \( H_{j} \) \end_inset \emph on no puede medirse en el nodo origen \emph default , debe medirse en el nodo destino. \layout Standard La función característica \begin_inset Formula \( N \) \end_inset que permite que cada nodo calcule la capacidad \begin_inset Formula \( C_{j} \) \end_inset del canal es: \layout Standard \added_space_top defskip \align center \begin_inset Formula \( C_{j}=N(Fj_{p},Pj_{p},Hj_{p}) \) \end_inset \layout Standard \align center \begin_inset Formula \( N(Fj_{p},Pj_{p},Hj_{p})=Fj_{p}+Pj_{p}\times Hj_{p} \) \end_inset \layout Chapter Control de flujo \begin_inset LatexCommand \label{cap:flowcontrol} \end_inset \layout Standard Jnet utiliza simultáneamente dos técnicas complementarias de control de flujo: el control de acceso a la red, y el control de flujo interno (o \begin_inset Quotes eld \end_inset nodo a nodo \begin_inset Quotes erd \end_inset ). Ambas técnicas son descritas en las publicaciones \begin_inset Quotes eld \end_inset Data Networks \begin_inset Quotes erd \end_inset \begin_inset LatexCommand \cite{5} \end_inset y \begin_inset Quotes eld \end_inset Protocols & Techniques for Data Communication Networks \begin_inset Quotes erd \end_inset \begin_inset LatexCommand \cite{11} \end_inset . \layout Section Control de acceso a la red \begin_inset LatexCommand \label{sec:flowaccess} \end_inset \layout Subsection Objetivos \layout Standard En Jnet, no se especifica un protocolo de acceso a la red para usuarios finales. En las referencias posteriores, con \begin_inset Quotes eld \end_inset usuario \begin_inset Quotes erd \end_inset del nivel de red nos referimos al nivel de transporte o a cualquier otro sistema que se comunique con el nodo a través de la primitivas de la capa de nivel de red de Jnet; el interfaz con el usuario es el conjunto de estas primitivas. Esto no excluye la utilización de protocolos específicos de acceso al nodo, para ello bastará diseñar un sistema traductor que transforme la interacción con el usuario final mediante estos protocolos en primitivas del nivel de red. \layout Standard La función del control de acceso a la red es limitar el tráfico inyectado en la red por los usuarios, actuando directamente o inmediatamente después del interfaz con estos. En Jnet, esta función es realizada por el subsistema de acceso a la red, mediante la \family sans Máquina de control de flujo de acceso a la red \family default (ver capítulo \begin_inset LatexCommand \ref{cap:modnodo} \end_inset , apartado \begin_inset LatexCommand \ref{sec:accesred} \end_inset ). \layout Standard \added_space_bottom bigskip El control de flujo de acceso a la red se realiza independientemente para cada circuito virtual. El subsistema de acceso a la red conoce los parámetros características de los enlaces que forman cada circuito virtual, y en función de ellos realiza su tarea. \layout Standard En la figura \begin_inset LatexCommand \ref{fig:EsqRepr} \end_inset representamos la situación: \layout Standard \begin_float fig \layout Caption \begin_inset LatexCommand \label{fig:EsqRepr} \end_inset Esquema representativo \layout Standard \align center \begin_inset Figure size 476 131 file acceso_a_la_red_figurita.eps width 3 80 flags 9 \end_inset \end_float \layout Quote El nodo conoce los parámetros característicos de los enlaces utilizados por el circuito virtual ( \begin_inset Formula \( C_{1},C_{2},....,C_{n},F_{1},F_{2},...,F_{n} \) \end_inset ). \layout Quote \series bold rentrada \series default es el tráfico que el usuario ofrece al nodo para este circuito virtual. \layout Quote \series bold ractual \series default es el tráfico actualmente inyectado en el circuito virtual. \layout Quote \series bold rmax \series default es el máximo tráfico inyectable en el circuito virtual. \layout Standard El subsistema de acceso a la red debe: \layout Itemize Calcular rmax en función de ( \begin_inset Formula \( C_{1},C_{2},....,C_{n},F_{1},F_{2},...,F_{n} \) \end_inset ). \layout Itemize Limitar el tráfico inyectado al circuito virtual, tal que \begin_inset Formula \( r_{actual}\leq r_{max} \) \end_inset . \layout Subsection Control de flujo de Gallager \layout Standard El control de flujo de acceso a la red se realiza una vez que el circuito virtual ha sido establecido. Como vemos en el capítulo \begin_inset LatexCommand \ref{cap:Encamin} \end_inset (encaminamiento), se elige el camino que tenga el mayor ancho de banda disponible. Es por lo tanto un criterio de maximización de tráfico. \layout Standard Pero un nivel de red no puede centrarse en la maximización del tráfico: ello supondría una tendencia a utilizar toda la capacidad de los enlaces de la red, es decir una tendencia natural al colapso de los recursos. La meta del control de flujo es evitar esta situación de colapso, y para ello utiliza criterios cuya finalidad no es utilizar al máximo la capacidad de los enlaces. \layout Standard \added_space_bottom bigskip Jnet usa el control de flujo de Gallager, que viene enmarcado dentro de una teoría conjunta de encaminamiento y control de flujo óptimo (ver \begin_inset LatexCommand \cite{5} \end_inset ). En nuestro caso el control de flujo interviene sobre un circuito virtual ya prefijado y sin multiencaminamiento (no se reparte el tráfico de un circuito virtual en varios caminos), y la aplicación de la teoría conjunta de Gallager da un algoritmo de control de flujo que se ajusta a la problemática. Seguiremos el enfoque del artículo \begin_inset LatexCommand \cite{12} \end_inset , por ser más claro y más adaptado a este caso. \layout Standard Se definen las siguientes variables de interés: \layout Description \begin_inset Formula \( \mathbf{D}_{\mathbf{Tj}}(\mathbf{F}_{\mathbf{j}},\mathbf{C}_{\mathbf{j}}) \) \end_inset Número medio de bits presentes en el enlace j. Utilizaremos la expresión simplificada para M/M/1 : \begin_inset Formula \[ D_{T}(F_{j},C_{j})=\frac{F_{j}}{C_{j}-F_{j}}+d_{j}\times F_{j}\] \end_inset \begin_deeper \layout Description \begin_inset Formula \( \mathbf{C}_{\mathbf{j}},\mathbf{F}_{\mathbf{j}} \) \end_inset Son la capacidad y la tasa de datos transportados por el enlace j, es decir sus parámetros característicos. \layout Description \begin_inset Formula \( \mathbf{d}_{\mathbf{j}} \) \end_inset Es el retardo de propagación del canal o de procesamiento del nodo. En la práctica es un parámetro desconocido, salvo para enlaces por satélite. Es interesante tenerlo en cuenta en Jnet, en vista a realizar experimentos con satélites de radioaficionados. No obstante, se trata de un caso aislado, y se ha decido no incluir dj en la lista de parámetros característicos de los enlaces. \end_deeper \layout Description \begin_inset Formula \( \frac{\delta \mathbf{D}_{\mathbf{Tj}}}{\delta \mathbf{ractual}_{\mathbf{i}}}(\mathbf{F}_{\mathbf{j}},\mathbf{C}_{\mathbf{j}}) \) \end_inset Retardo incremental del enlace j. Es es incremento de Dt debido al incremento del tráfico del circuito virtual i. \layout Description \begin_inset Formula \( \frac{\delta \mathbf{D}_{\mathbf{T}}}{\delta \mathbf{ractual}_{\mathbf{i}}_{i}}=\sum ^{\mathbf{N}}_{\mathbf{j}=1}\frac{\delta \mathbf{D}_{\mathbf{Tj}}}{\delta \mathbf{ractual}_{\mathbf{i}}_{i}} \) \end_inset Retardo incremental total del circuito virtual i (suma de los retardos incrementales de los enlaces que participan en el circuito virtual i). \layout Standard Aunque dimensionalmente los retardos incrementales no sean tiempos, sino un incremento del número de bits, el comportamiento de estas variables define el retardo real de los enlaces; definen la sensibilidad del retardo del enlace a los incrementos de tráfico. \layout Standard El control de flujo de Gallager consiste en limitar el tráfico inyectado de forma que el retardo incremental total no supere un umbral \begin_inset Formula \( \mathbf{L}_{\mathbf{o}} \) \end_inset . Además, hace variable este umbral en función del punto de trabajo (ractual), de forma que se consigue el punto de trabajo rmax óptimo, y que hace equitativo el reparto de la red (ver \begin_inset LatexCommand \cite{12} \end_inset ). \layout Standard En algoritmo de Gallager modificado por Thaker G. y Cain J. \begin_inset LatexCommand \cite{12} \end_inset consiste en calcular \begin_inset Formula \( r_{max} \) \end_inset tal que \begin_inset Formula \( L_{o}(r_{max})=\frac{\delta Dt}{\delta r}(r_{actual}) \) \end_inset . \layout Subsection Retardo incremental total del circuito virtual \layout Standard El flujo de un enlace puede descomponerse de la forma: \layout Standard \begin_inset Formula \[ F_{j}=r_{actual}+K_{j}\] \end_inset \layout Standard Siendo \begin_inset Formula \( K_{j} \) \end_inset el tráfico que no proviene del circuito virtual estudiado. Por lo tanto: \layout Standard \begin_inset Formula \[ D_{Tj}(F_{j},C_{j})=\frac{r_{actual}+K_{j}}{C_{j}-r_{actual}-K_{j}}+(r_{actual}+K_{j})\times d_{j}\] \end_inset Vamos a suponer que \begin_inset Formula \( \frac{\delta K_{j}}{\delta _{ractual}}=0 \) \end_inset . Por lo tanto: \layout Standard \begin_inset Formula \begin{eqnarray*} \frac{\delta D_{Tj}(F_{j},C_{j})}{\delta r_{actual}} & = & \frac{1\times (C_{j}-F_{j})-F_{j}\times (-1)}{(C_{j}-F_{j})^{2}}+d_{j}\\ & = & \frac{C_{j}}{(C_{j}-F_{j})^{2}}+d_{j} \end{eqnarray*} \end_inset En consecuencia el retardo incremental total del circuito virtual es: \layout Standard \begin_inset Formula \[ \frac{\delta D_{T}}{\delta r_{actual}}=\sum ^{N}_{j=1}\frac{C_{j}}{(C_{j}-F_{j})^{2}}+\sum ^{N}_{j=1}d_{j}\] \end_inset \layout Subsection Función umbral del retardo incremental total \layout Standard En este apartado definimos la función \begin_inset Formula \( L(r_{actual}) \) \end_inset umbral superior del retardo incremental del circuito virtual \begin_inset Formula \( (\frac{\delta D_{T}}{\delta r_{actual}}) \) \end_inset . Utilizamos la definición dada en \begin_inset Quotes eld \end_inset Interactions Between Routing and Flow Control Algorithms \begin_inset Quotes erd \end_inset \begin_inset LatexCommand \cite{12} \end_inset , en la que, a diferencia del análisis de \begin_inset Quotes eld \end_inset Data Networks \begin_inset Quotes erd \end_inset \begin_inset LatexCommand \cite{5} \end_inset , \begin_inset Formula \( L(r_{actual}) \) \end_inset no tiende a infinito cuando \begin_inset Formula \( r_{actual} \) \end_inset tiende a cero. Esto hace de ella una curva aplicable a casos reales, sin peligro de desbordami entos, y con puntos característicos que permiten obtenerla de forma práctica. No obstante, el análisis realizado en \begin_inset LatexCommand \cite{12} \end_inset sólo se aplica a redes cuyos enlaces tienen todos la misma capacidad. A continuación aplicaremos la teoría, adaptándola a nuestro caso particular. \layout Standard \begin_float fig \layout Standard \align center \pextra_type 3 \pextra_widthp 40 \begin_inset Figure size 238 191 file Lr.eps width 3 40 flags 9 \end_inset \layout Caption Perfil de L(r) \end_float \layout Standard \begin_inset Formula \( L(r_{actual}) \) \end_inset se define mediante 2 puntos característicos: \layout Standard \series bold (0,Lo): \series default Lo es el máximo absoluto de \begin_inset Formula \( L(r_{actual}) \) \end_inset , define el techo de algunos parámetros de los enlaces. Es posible relacionar Lo con el máximo factor de utilización \begin_inset Formula \( \rho _{m} \) \end_inset de un enlace, mediante la relación: \begin_inset Formula \[ Lo=\frac{d(\rho _{m})}{C}\] \end_inset \layout Standard \begin_inset Formula \( d(\rho _{m}) \) \end_inset es una función que se representa en la figura \begin_inset LatexCommand \ref{fig:ro} \end_inset . De peculiar interés es el enlace de menor capacidad del circuito virtual, \begin_inset Formula \( C_{min}=\min (C_{j}) \) \end_inset , ya que en él nos interesa particularmente limitar el factor de utilización máximo \begin_inset Formula \( \rho _{m} \) \end_inset . En este caso: \layout Standard \begin_inset Formula \[ Lo=\frac{d(\rho _{m})}{C_{min}}\] \end_inset \layout Standard \begin_float fig \layout Standard \align center \pextra_type 3 \pextra_widthp 40 \begin_inset Figure size 238 168 file ro.eps width 3 40 height 3 20 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:ro} \end_inset d( \begin_inset Formula \( \rho _{m} \) \end_inset ) \end_float No obstante hay que destacar que el factor de utilización máximo \begin_inset Formula \( \rho _{mj} \) \end_inset en el resto de los enlaces es superior a \begin_inset Formula \( \rho _{m} \) \end_inset , en efecto: \layout Standard \begin_inset Formula \[ \left\{ \begin{array}{c} d(\rho _{m})=C_{min}\times Lo\\ d(\rho _{mj})=C_{j}\times Lo\\ C_{min}\leq C_{j} \end{array}\right. \Rightarrow \rho _{m}\leq \rho _{mj}\] \end_inset \layout Standard Para garantizar un factor de utilización máximo en todos los enlaces, hay que elegir \begin_inset Formula \( Lo=\frac{d(\rho _{m})}{C_{max}} \) \end_inset . Pero ello supone una fuerte limitación del factor de utilización de los enlaces de baja capacidad, y puesto que estos son los enlaces que limitan el tráfico en el circuito virtual, la tasa binaria inyectada en este resultaría mínima. En concreto para el enlace de menor capacidad: \begin_inset Formula \( d(\rho _{mj})=\frac{C_{min}}{C_{max}}Lo \) \end_inset . No es nuestro interés limitar el factor de utilización de todos los enlaces, sino el del enlace de menor capacidad, ya que este es crítico por ser el cuello de botella del circuito virtual. \layout Standard En Jnet elegimos el siguiente valor \begin_inset Formula \( \rho _{m}=0.8\Rightarrow \) \end_inset \begin_inset Formula \( d(\rho _{m})=25 \) \end_inset . Por lo tanto: \layout Standard \begin_inset Formula \[ Lo=\frac{d(\rho _{m})}{C_{min}}=\frac{25}{C_{min}}\] \end_inset \layout Standard \added_space_top defskip \series bold (Co, \begin_inset Formula \( \boldsymbol {\epsilon } \) \end_inset ): \series default Es el segundo punto característicos. Representa la situación en la que la que la capacidad ofrecida por el sistema de control de flujo es máxima. En Jnet, se decide que la capacidad máxima ofrecida es: \layout Standard \begin_inset Formula \[ C_{o}=C_{min}\] \end_inset \layout Standard Y sólo se ofrece en la situación del retardo incremental mínimo posible: \layout Standard \begin_inset Formula \[ \frac{\delta D_{T}}{\delta r_{actual}}m\acute{i}nimo\Leftrightarrow F_{j}=0\Rightarrow \frac{\delta D_{T}}{\delta r_{actual}}=\sum \frac{1}{C_{j}}+\sum d_{j}\] \end_inset Es decir: \layout Standard \begin_inset Formula \[ L(C_{o})=\epsilon =\sum \frac{1}{C_{j}}+\sum d_{j}\] \end_inset \layout Standard En una red sin enlaces por satélite, el segundo término no aparece. \layout Standard Nota: Debe cumplirse que \begin_inset Formula \( L_{o}>\epsilon \) \end_inset . En caso contrario se escoge \begin_inset Formula \( \epsilon =L_{o} \) \end_inset , la curva \begin_inset Formula \( L(r_{actual}) \) \end_inset es un segmento horizontal. \layout Subsubsection* Cálculo de \begin_inset Formula \( \mathbf{L}(\mathbf{r}) \) \end_inset \layout Standard La ecuación de la función umbral del retardo incremental total puede ser expresada de la forma: \layout Standard \begin_inset Formula \[ L(r)=\frac{A}{B+r}+D\] \end_inset \layout Standard Tenemos 3 constantes \begin_inset Formula \( A,B,D \) \end_inset a definir, y necesitamos por lo tanto 3 puntos de la curva. Anteriormente hemos definido 2 puntos ( \begin_inset Formula \( L(0)=L_{o} \) \end_inset , \begin_inset Formula \( L(C_{min})=\epsilon \) \end_inset ). El tercer punto es: \layout Standard \begin_inset Formula \[ L(\frac{C_{min}}{10})=L_{o}-\frac{L_{o}-\epsilon }{2}\] \end_inset \layout Standard Se desea que L(r) decrezca rápidamente, para hacer más equitativo el reparto de la red (penalizando los tráficos de mayor caudal). La fijación del tercer punto permite dar este perfil decreciente acentuado (en la décima parte de Cmin, L(r) ha disminuido la mitad, la otra mitad se recorre en las 9 décimas partes restantes). \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 238 182 file Lr2.eps width 3 40 flags 9 \end_inset \layout Caption Los 3 puntos característicos de L(r) \end_float \layout Standard Partimos de estas 3 ecuaciones: \layout Standard \align left \begin_inset Formula \begin{eqnarray} L(r) & = & \frac{A}{B+r}+D\nonumber \\ L(0) & = & \frac{25}{C_{min}}=\frac{A}{B}+D=L_{o}\, \, \, \, \, \, \, \, \, \, \, \, (1)\nonumber \label{mat:Lr1} \\ L(C_{min)} & = & \epsilon =\frac{A}{B+C_{min}}+D\, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, (2)\nonumber \\ L(\frac{C_{min}}{10}) & = & L_{o}-\frac{L_{o}-\epsilon }{2}=\frac{A}{B+\frac{C_{min}}{10}}+D=K\, \, \, (3)\nonumber \end{eqnarray} \end_inset \layout Standard En el apéndice \begin_inset LatexCommand \ref{apen:Lr} \end_inset despejamos \begin_inset Formula \( A,B,D \) \end_inset , y obtenemos: \layout Standard \begin_inset Formula \begin{eqnarray*} B & = & \frac{C_{min}}{8}\, \, \, \, \, \, \, (5)\\ A & = & \frac{9C_{min}}{64}(L_{o}-\epsilon )\, \, \, \, (6)\\ D & = & \frac{9\epsilon -L_{o}}{8}\, \, \, \, \, \, \, (7) \end{eqnarray*} \end_inset \layout Subsection Ejemplo \layout Standard Analizaremos un caso sencillo, un circuito virtual formado por dos enlaces: \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \begin_inset Figure size 167 47 file Lrejemplo.eps flags 9 \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( L_{o}=\frac{25}{C_{min}}=\frac{25}{1000}=0.025 \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( \epsilon =\sum \frac{1}{C_{j}}=\frac{1}{1000}+\frac{1}{2000}=0.0015 \) \end_inset \layout Standard Lo parámetros de la curva L(r): \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( B=\frac{C_{min}}{8}=\frac{1000}{8}=125 \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( A=\frac{9C_{min}}{64}(L_{o}-\epsilon )=\frac{9000}{64}(0.025-0.0015)=3.3046 \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( D=\frac{9\epsilon -L_{o}}{8}=\frac{9\times 0.0015-0.025}{8}=-0.0014 \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip El retardo incremental: \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( \frac{\delta D_{T}}{\delta r}=\sum ^{N}_{j=1}\frac{C_{j}}{(C_{j}-F_{j})^{2}}=\frac{1000}{(1000-500)^{2}}+\frac{2000}{(2000-900)^{2}}=0.00565 \) \end_inset \layout Standard Control de flujo: \layout Standard \begin_inset Formula \( L_{o}(r_{max})=\frac{\delta Dt}{\delta r}\Leftrightarrow \frac{A}{B+r_{max}}+D=\frac{\delta Dt}{\delta r}\Leftrightarrow r_{max}=\frac{A}{\frac{\delta Dt}{\delta r}-D}-B \) \end_inset . \layout Standard \begin_inset Formula \[ r_{max}=341bps\] \end_inset \layout Subsection Aplicación a Jnet \layout Standard El método de control de flujo de Gallager/Thaker/Cain no es eficiente en una red de radio-paquete, debido a los retardos y a la escasez de ancho de banda. \layout Standard El retardo incremental \begin_inset Formula \( \frac{\delta D_{T}}{\delta r} \) \end_inset es función del tráfico inyectado \begin_inset Formula \( r_{actual} \) \end_inset , porque \begin_inset Formula \( r_{actual} \) \end_inset está incluido en el término \begin_inset Formula \( F_{j} \) \end_inset . Al producirse un incremento de tráfico \begin_inset Formula \( \Delta r_{actual} \) \end_inset dentro del límite permitido por \begin_inset Formula \( r_{max} \) \end_inset , \begin_inset Formula \( F_{j} \) \end_inset se incrementará, y en consecuencia también lo hará \begin_inset Formula \( \frac{\delta D_{T}}{\delta r} \) \end_inset . Cambiará el punto de trabajo, y en consecuencia también \begin_inset Formula \( r_{max} \) \end_inset . Si el usuario no utiliza control de flujo a nivel de transporte (por ejemplo TCP) , su tasa binaria sera siempre la impuesta por el nivel de red, \begin_inset Formula \( r_{max} \) \end_inset , que cambiará hasta converger en un punto de equilibrio. \layout Standard \added_space_bottom bigskip La principal problemática de este método reside en que frente a cambios instantáneos de la demanda del usuario, la evaluación de \begin_inset Formula \( r_{max} \) \end_inset no es óptima y se corrige mediante el proceso de realimentación descrito en el párrafo anterior. En Jnet el procedimiento de procesado y difusión de los parámetros primarios es orientado al ahorro de ancho de banda (con filtrados, cuantificaciones, difusiones controladas), es lento. \begin_inset Formula \( r_{max} \) \end_inset tardaría demasiado en converger hacia el valor óptimo, esto significa que \emph on el método de control de flujo de Gallager/Thaker/Cain en el caso de Jnet no previene convenientemente la congestión de la red \emph default , puesto que durante el (largo) tiempo de convergencia \begin_inset Formula \( r_{max} \) \end_inset es superior al valor óptimo, el que se alcanza al equilibrio. \layout Standard Esta problemática se soluciona modificando el método, añadiéndole condiciones preventivas que lo hagan converger rápidamente \begin_inset Formula \( r_{max} \) \end_inset al valor óptimo: \layout Standard El valor de \begin_inset Formula \( r_{max} \) \end_inset se obtiene en función de \begin_inset Formula \( \frac{\delta Dt}{\delta r} \) \end_inset , que a su vez es función de \begin_inset Formula \( (C_{j},F_{j}) \) \end_inset . Pero \begin_inset Formula \( F_{j} \) \end_inset cambia con el tráfico inyectado. Vamos a prever la variación de \begin_inset Formula \( F_{j} \) \end_inset suponiendo que: \layout Itemize Con el tráfico actualmente inyectado \begin_inset Formula \( r_{actual} \) \end_inset el tráfico actual de los enlaces es \begin_inset Formula \( F_{j} \) \end_inset . \layout Itemize Con un tráfico \begin_inset Formula \( r_{actual}+\Delta r \) \end_inset , el tráfico de los enlaces \emph on sería \emph default \begin_inset Formula \( F'_{j}=F_{j}+\Delta r \) \end_inset . \layout Standard Se trata de calcular \begin_inset Formula \( \Delta r \) \end_inset tal que: \layout Standard \begin_inset Formula \[ \frac{\delta D_{T}}{\delta r}(r_{actual}+\Delta r)=L(r_{actual}+\Delta r)\, \, \, \, \, \, \, (8)\] \end_inset \layout Standard El flujo máximo autorizado \begin_inset Formula \( r_{max} \) \end_inset es \begin_inset Formula \( r_{actual}+\Delta r \) \end_inset , siendo \begin_inset Formula \( \Delta r \) \end_inset la solución a la anterior ecuación. \layout Subsubsection \pagebreak_top Cálculo de \begin_inset Formula \( \mathbf{r}_{\mathbf{max}} \) \end_inset \layout Standard En este apartado especificamos el procedimiento de cálculo de \begin_inset Formula \( r_{max} \) \end_inset . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 476 357 file rmax.eps width 3 80 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:CalcRmax} \end_inset Cálculo de \begin_inset Formula \( r_{max} \) \end_inset \end_float \layout Standard En la figura \begin_inset LatexCommand \ref{fig:CalcRmax} \end_inset representamos gráficamente la resolución de \begin_inset Formula \( r_{max} \) \end_inset . Se trata de hallar la intersección de las curvas \begin_inset Formula \( L(r)=\frac{A}{b+r}+D \) \end_inset y \begin_inset Formula \( \frac{\delta D_{t}}{\delta r}(r)=\sum \frac{C_{j}}{(C_{j}-F_{j}-(r-r_{actual}))^{2}} \) \end_inset , siendo \begin_inset Formula \( \Delta r=r-r_{actual} \) \end_inset . \layout Standard Es fácilmente demostrable que la intersección existe y es única, puesto que \begin_inset Formula \( L(r) \) \end_inset es acotada y decreciente, mientras que \begin_inset Formula \( \frac{\delta D_{t}}{\delta r}(r) \) \end_inset es creciente y \begin_inset Formula \( \lim _{r\rightarrow r_{actual}+\min (C_{j}-F_{j})}(\frac{\delta D_{t}}{\delta r}(r))=\infty \) \end_inset . \layout Standard El intervalo de trabajo es \begin_inset Formula \( [0,r_{actual}+\min (C_{j}-F_{j})[ \) \end_inset , puesto que en ningún caso se debe superar el mínimo caudal disponible \begin_inset Formula \( C_{j}-F_{j} \) \end_inset de los enlaces. \layout Standard \added_space_bottom defskip Finalmente, también hay que recalcar que \emph on en la práctica \emph default es posible el caso \begin_inset Formula \( C_{min}L(r) \) \end_inset . \layout Subsubsection \pagebreak_top Dinámica y comportamiento frente a cambios \layout Standard Vamos a estudiar mediante un ejemplo el comportamiento dinámico del sistema de control de acceso a la red de Jnet, observando como varían las curvas \begin_inset Formula \( \frac{\delta D_{T}}{\delta r} \) \end_inset y \begin_inset Formula \( L(r) \) \end_inset en dos situaciones: cambio de \begin_inset Formula \( r_{actual} \) \end_inset , y cambio de \begin_inset Formula \( F_{j} \) \end_inset . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 476 328 file rmax_cambio_ractual.eps width 3 80 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:camrac} \end_inset Cambio de tráfico \end_float \layout Standard En la figura \begin_inset LatexCommand \ref{fig:camrac} \end_inset representamos un cambio \begin_inset Quotes eld \end_inset instantáneo \begin_inset Quotes erd \end_inset del tráfico introducido en la red. En el instante del cambio, no se detecta ningún cambio en los parámetros primarios del tráfico de la red. La curva \begin_inset Formula \( L(r) \) \end_inset no cambia, pero sí lo hace la curva \begin_inset Formula \( \frac{\delta D_{T}}{\delta r}(r) \) \end_inset (paso de la curva (1) a la curva (2)) con una translación horizontal igual a la variación del tráfico. Por lo tanto también cambia la intersección de las dos curva, el valor de \begin_inset Formula \( r_{max} \) \end_inset es diferente. \layout Standard Pero hay que destacar que esta variación es transitoria e inexacta, puesto que aún no se tiene en cuenta el aumento del retardo incremental causado por el cambio de tráfico. Pasada la situación transitoria, es muy probable que el valor \begin_inset Formula \( r_{max} \) \end_inset sea muy parecido al inicial, al incrementarse \begin_inset Formula \( \frac{\delta D_{T}}{\delta r}(r_{actual}) \) \end_inset el punto de trabajo \begin_inset Formula \( (r_{actual},\frac{\delta D_{T}}{\delta r}(r_{actual})) \) \end_inset tiende a encontrarse sobre la curva inicial. Este ejemplo ilustra un caso en el que es peor recalcular \begin_inset Formula \( r_{actual} \) \end_inset , ya que se tiene la certeza de estar frente a una situación transitoria. En conclusión: \layout Standard \added_space_top defskip \added_space_bottom defskip \align center No se va a calcular de nuevo \begin_inset Formula \( r_{max} \) \end_inset cuando cambie \begin_inset Formula \( r_{actual} \) \end_inset . \layout Standard En cambio, no es posible realizar ninguna afirmación sobre las causas de las variaciones de los parámetros \begin_inset Formula \( C_{j} \) \end_inset y \begin_inset Formula \( F_{j} \) \end_inset de los enlaces del circuito virtual, que pueden ser provocadas por el aumento de \begin_inset Formula \( r_{max} \) \end_inset , por causas externas, o ambas a la vez. Por este motivo: \newline \layout Standard \added_space_bottom defskip \align center \begin_inset Formula \( r_{max} \) \end_inset se calcula de nuevo cuando cambie \begin_inset Formula \( C_{j} \) \end_inset o \begin_inset Formula \( F_{j} \) \end_inset . \layout Subsection Medición de \begin_inset Formula \( \mathbf{r}_{\mathbf{actual}} \) \end_inset y regulación del tráfico \begin_inset LatexCommand \label{sec:leakbuc} \end_inset \layout Subsubsection* Regulación del tráfico \layout Standard Destacamos un punto al que hay que prestar atención: los parámetros primarios \begin_inset Formula \( C_{j} \) \end_inset y \begin_inset Formula \( F_{j} \) \end_inset representan tasas de bits transportadas por los niveles de enlace. En el análisis anterior, hemos considerado que el tráfico entregado \begin_inset Formula \( r_{actual} \) \end_inset al nivel de red iba a poder ser transportado por el circuito virtual dados sus parámetros primarios. En la práctica no es así, porque el nivel de red introduce una tara de información en cada paquete entregado al nivel de enlace (cabeceras del nivel de red). El flujo de bits entrante es menor que el flujo de bits saliente. \layout Standard Se define la relación de eficiencia del nivel de red Jnet, mediante la relación: \newline \begin_inset Formula \begin{eqnarray*} b & = & \frac{N\acute{u}mero\, de\, bits\, de\, datos\, de\, usuario\, por\, paquete\, Jnet}{N\acute{u}mero\, de\, bits\, total\, por\, paquete\, Jnet}\\ & = & \frac{N\acute{u}mero\, de\, bits\, de\, datos\, de\, usuario\, por\, paquete\, Jnet}{N\acute{u}mero\, de\, bits\, de\, datos\, de\, usuario\, por\, paquete\, Jnet+tara\, nivel\, de\, red} \end{eqnarray*} \end_inset \layout Standard \added_space_bottom defskip \begin_inset Formula \( b \) \end_inset depende de la implementación del protocolo Jnet. \layout Standard \added_space_bottom defskip \align center \emph on Por lo tanto, la tasa de información entregada a Jnet por el usuario (nivel de transporte) debe ser limitada al valor \begin_inset Formula \( r_{max}'=r_{max}\times b \) \end_inset . \layout Standard La limitación del tráfico de entrada a la red se realiza con un algoritmo de \begin_inset Quotes eld \end_inset leaky bucket \begin_inset Quotes erd \end_inset (cubo agujereado), que \emph on modificamos \emph default para funcionar con pdus de tamaño variable. \layout Standard Las constantes y variables utilizadas en el algoritmo son: \layout Standard \begin_inset Formula \( T=\frac{1}{r_{max}'} \) \end_inset : tiempo de bit (s/bit). \layout Standard \begin_inset Formula \( K \) \end_inset : bloque de bits (bits). Se trata del tamaño de los bloques liberados por el algoritmo, es decir el tamaño del \begin_inset Quotes eld \end_inset agujero del cubo \begin_inset Quotes erd \end_inset . El valor de K \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Tamaño de bloque de leaky bucket para acceso a la red \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float debe ser del orden o un poco superior al tamaño medio de los paquetes. Por ejemplo K=500. \layout Standard \begin_inset Formula \( C \) \end_inset : Crédito de bits (bits). Límite de bits transmisibles en el instante actual. \layout Standard \begin_inset Formula \( L \) \end_inset : Tamaño de la pdu a transmitir (bits). \layout Standard \added_space_top defskip \added_space_bottom defskip \pagebreak_top El algoritmo es el siguiente: \layout Enumerate C=0 \layout Enumerate Sacar NPDU de la cola de entrada ( = primitiva N-DATA Request proveniente del nivel de transporte). L=longitud del campo de datos. \layout Enumerate \begin_inset LatexCommand \label{list:Txk} \end_inset Esperar ( \begin_inset Formula \( T\times K \) \end_inset ) \layout Enumerate C=C+K \layout Enumerate ¿ C>L ? \newline Si: \begin_deeper \layout Enumerate Entregar los datos al nivel de enlace (= primitiva SEG-DATA Request). \layout Enumerate C=C-K \layout Enumerate Sacar NPDU de la cola de entrada ( = primitiva N-DATA Request proveniente del nivel de transporte). L=longitud del campo de datos. \layout Enumerate Volver al punto 5. \layout Standard No: \layout Enumerate Volver al punto 3. \end_deeper \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 148 214 file leaky_bucket.eps width 3 25 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:leakbuck} \end_inset Leaky bucket \end_float En la figura \begin_inset LatexCommand \ref{fig:leakbuck} \end_inset representamos el funcionamiento del algoritmo. Se representan los paquetes en líneas continuas, y el incremento de créditos en líneas discontinuas. \layout Subsubsection* Medición \layout Standard La medición de \begin_inset Formula \( r_{actual} \) \end_inset se realiza a la salida del módulo de regulación de tráfico. Por lo tanto, se garantiza que \begin_inset Formula \( r_{actual}\leq r_{max} \) \end_inset . No se requiere ningún filtrado especial, pudiéndose realizar la medición en una ventana de tiempo del orden de 1 minuto. \layout Standard \added_space_top bigskip Con estas puntualizaciones, cerramos el capítulo de control de acceso a la red. En el apéndice \begin_inset LatexCommand \ref{apen:rmax} \end_inset se encuentra el código fuente en lenguaje C de la implementación del algoritmo de resolución numérica de \begin_inset Formula \( r_{max} \) \end_inset . \layout Section \pagebreak_top Control de flujo interno \begin_inset LatexCommand \label{sec:flowint} \end_inset \layout Subsection Objetivos y necesidades \layout Standard El control de flujo interno actúa en el transporte de información de usuarios que se produce entre los nodos de la red, con la misma finalidad que el control de acceso a la red: evitar la congestión, y si esta se produce procesarla de forma que sus consecuencias sean mínimas. \layout Standard Hemos observado que el control de acceso a la red utiliza un mecanismo preventiv o potente, pero lento, porque utiliza la señalización de mapa de red (parámetros característicos \begin_inset Formula \( C_{j} \) \end_inset y \begin_inset Formula \( F_{j} \) \end_inset ) difundida por necesidad de optimización del ancho de banda mediante un mecanismo lento. Se trata de un \emph on mecanismo poco reactivo \emph default , \emph on insuficiente \emph default para reaccionar frente a acontecimientos rápidos generadores de congestión, como ocurre frecuentemente en entornos radioeléctricos (interferencias radioeléctricas, fenómenos naturales que deterioran las instalaciones, variaciones de las condiciones de propagación de las ondas, etc.). \layout Standard El control de flujo interno va a suplir estas carencias. Para ello, necesita utilizar un mecanismo de señalización más rápido que el provisto por el mapa de red, un mecanismo no de difusión, sino \emph on dirigido \emph default directamente a los nodos que puedan tener un papel activo en la disminución de la congestión y de sus efectos perjudiciales. ¿Cuál es este mecanismo? ¿Cómo encamina la señalización? A estas dos preguntas contestamos a continuación. \layout Subsection Modelo elegido: back pressure \layout Standard El sistema de control de flujo interno sigue el modelo de \emph on back pressure \emph default (ver características y ventajas de este sistema en \begin_inset Quotes eld \end_inset Data Networks \begin_inset Quotes erd \end_inset \begin_inset LatexCommand \cite{5} \end_inset ). Cada circuito virtual se verá sometido independientemente a un algoritmo de back pressure, siendo la señalización necesaria transportada dentro del mismo circuito virtual. Esto soluciona en gran medida el problema de encaminamiento de la señalización, puesto que se va a utilizar una única ruta predefinida, la misma que sigue la información de usuario dentro del circuito virtual. El control de flujo se hace en cada nodo, dentro de cada máquina de circuito virtual (asignada a un solo circuito virtual, ver apartado \begin_inset LatexCommand \ref{sec:maqcv} \end_inset ). \layout Standard No obstante, existe una problemática: el modelo de back pressure requiere un mecanismo de señalización hacia atrás. Y como se ha descrito en el apartado \begin_inset LatexCommand \ref{sec:tipcv} \end_inset , los circuitos virtuales pueden tener enlaces unidireccionales que hacen imposible la comunicación directa hacia atrás. \layout Standard La solución a esta problemática pasa por utilizar el circuito virtual de vuelta cuando estemos utilizando un circuito virtual bidireccional. En caso de circuitos virtuales unidireccionales, sólo será posible el control de flujo interno cuando todos los enlaces que lo componen sean con conexión hdlc. Por lo tanto hay que tener cuidado en los circuitos virtuales unidireccionales con enlaces sin conexión hdlc, ya que pueden congestionar la red; es un aspecto sujeto a futuras modificaciones y mejoras. \layout Standard \added_space_top defskip Por cada sentido de circuito virtual, se establece una topología de encaminamien to de señalización, en la que tendrán una gran importancia los bucles formados entre el circuito virtual de ida y de vuelta, llegándose a una clara clasificac ión de tipos de nodos y de su papel según su posición. \layout Subsection Topología \begin_inset LatexCommand \label{sec:topolog} \end_inset \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 171 file back_pressure_tipo_de_nodos.eps width 3 100 flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:tipnodos} \end_inset Tipos de nodos \end_float \layout Standard Se definen los siguiente tipos de nodos: \layout Description N Nodo que se encuentra en el circuito virtual de ida y de vuelta. \layout Description M Nodo que sólo se encuentra en el circuito virtual de ida. Se definen dos tipos: \begin_deeper \layout Description MD Nodo M que pertenece al camino inverso directo. \layout Description MI Nodo M que pertenece al camino inverso indirecto. \end_deeper \layout Description O Nodo que sólo se encuentra en el camino de vuelta. \layout Description X Nodo N, cuyo nodo siguiente es de tipo M. \layout Description Y Nodo N, cuyo nodo anterior es de tipo M. \layout Description XY Nodo que es a la vez nodo X y nodo Y. \newline \begin_inset Figure size 67 42 file back_pressure_nodo_xy.eps height 3 5 flags 9 \end_inset \layout Standard Los bucles están formados por nodos X, M, Y, O. Se definen dos segmentos de especial interés: \layout Description Camino \protected_separator inverso \protected_separator directo Esta formado por los nodos M capaces de alcanzar el nodo X anterior utilizando los enlaces utilizados por el circuito virtual directo, pero en sentido opuesto. En la figura \begin_inset LatexCommand \ref{fig:tipnodos} \end_inset representamos esta situación; el \begin_inset Quotes eld \end_inset poder utilizar los enlaces en sentido opuesto \begin_inset Quotes erd \end_inset se marca con doble flecha, y significa: \begin_deeper \layout Description \begin_inset Figure size 56 14 file enlace_con_hdlc.eps width 1 2 height 1 0.5 flags 9 \end_inset Que el enlace es con conexión hdlc. La existencia de un enlace hdlc implica la posibilidad de enviar datos en sentido opuesto, aunque este sentido no sea utilizado por el circuito virtual para enviar datos de usuario. \layout Description \begin_inset Figure size 56 5 file enlace_sin_hdlc.eps width 1 2 height 1 0.05 angle 180 flags 0 \end_inset Que existe un enlace sin conexión hdlc hacia atrás. \layout Standard Pueden darse diferentes combinaciones basadas en este esquema. En caso de posible elección entre enlace con conexión hdlc y sin conexión hdlc, se elegirá el enlace con conexión hdlc (para evitar pérdidas en la señalización). \end_deeper \layout Description Camino \protected_separator inverso \protected_separator indirecto Se trata del conjunto de nodos M que han quedado \begin_inset Quotes eld \end_inset aislados \begin_inset Quotes erd \end_inset del nodo X anterior, se encuentran a partir del nodo M que no tiene posibilidad de enviar datos a su nodo anterior. \layout Standard Este modelo topológico es \emph on fundamental \emph default , porque cada tipo de nodo tiene un comportamiento y características diferentes. El el momento del establecimiento del circuito virtual bidireccional, el nodo debe automáticamente incluirse en una de estas categorías. Es por lo tanto necesario que en el momento del establecimiento los nodos conozcan las características del circuito virtual: identificadores de los nodos (para poder diferenciar los nodos, e identificar los nodos X e Y que pertenecen a ambos sentidos del circuito virtual) y el tipo de enlaces (con o sin conexión hdlc). \layout Standard En general, será necesario un procedimiento de establecimiento de circuito virtual en 3 etapas: \layout Enumerate Establecimiento del circuito virtual de ida: los nodos participantes son informados de las características de este circuito virtual. \layout Enumerate Establecimiento del circuito virtual de vuelta: los nodos del circuito virtual de vuelta son informados de las características del circuito virtual de vuelta y de ida. \layout Enumerate Los nodos del circuito virtual de ida son informados de las características del circuito virtual de vuelta. \layout Standard La topología del circuito virtual de vuelta se define con los mismos criterios, y generalmente será diferente (por ejemplo los nodos O pasan a ser nodos M). Los procedimientos de control de flujo interno del circuito virtual de ida y de vuelta son los mismos, pero se realizan de forma independiente. \layout Subsection Procedimientos generales \layout Standard El sistema de control de flujo por back pressure consiste en la propagación hacia atrás de una onda de aviso de congestión, que ordena a todos los nodos que la reciben parar sus transmisiones (en el caso de Jnet, son las transmisiones de un circuito virtual determinado, no todas). Con la vuelta a la normalidad, se propaga hacia atrás otra onda informando que el tráfico puede de nuevo cursarse. \layout Standard Por este motivo, la señalización de control de flujo se divide en dos fases: señalización de principio de congestión, y señalización de fin de congestión. \layout Standard Más adelante (apartado \begin_inset LatexCommand \ref{sec:listaseind} \end_inset ) definiremos exactamente el \emph on modo pressure \emph default . El nodo tiene un comportamiento claro relativo al transporte de datos de usuario: en modo pressure, no transmite datos de usuario en el circuito virtual determinado; si no está en modo pressure, transmite normalmente los datos de usuario. \layout Subsubsection Back pressure fuera de bucles \layout Standard \begin_float fig \layout Standard \align center \pextra_type 3 \pextra_widthp 50 \begin_inset Figure size 297 197 file back_pressure_directo.eps width 3 50 flags 9 \end_inset \layout Caption Back pressure directo \end_float El procedimiento general de la señalización de control de flujo entre nodos N, X, Y, XY se llama \emph on back pressure directo \emph default . \layout Standard La fase de señalización de principio de congestión se compone de una señal de aviso de principio de congestión que llamamos \begin_inset Quotes eld \end_inset BACK PRESSURE DIRECTO \begin_inset Quotes erd \end_inset . Cuándo un nodo recibe esta señal, inmediatamente la propaga hacia atrás (la envía al nodo anterior). El aviso de congestión debe ser asentido, mediante la señal \begin_inset Quotes eld \end_inset ACK BACK PRESSURE DIRECTO \begin_inset Quotes erd \end_inset , sea cual sea el tipo de enlace (con o sin conexión hdlc). \layout Standard \added_space_bottom bigskip La fase de señalización de fin de congestión es similar a la fase de principio de congestión, con dos señales: \begin_inset Quotes eld \end_inset FIN BACK PRESSURE DIRECTO \begin_inset Quotes erd \end_inset y \begin_inset Quotes eld \end_inset ACK FIN BACK PRESSURE DIRECTO \begin_inset Quotes erd \end_inset . \layout Subsubsection Back pressure en bucles \layout Standard En un bucle, llamaremos \emph on nodo generador de señal de congestión \emph default al primer nodo que informa a los nodos del bucle de una nueva congestión. Si es un nodo Y, es posible que esta noticia de congestión venga de un nodo posterior al bucle. Si se trata de un nodo MD o MI, entonces es que ha detectado una congestión en el enlace a su siguiente nodo. El nodo X no informa al resto del bucle de las congestiones que detecta, no hay necesidad alguna puesto que el bucle se encuentra después de él. \layout Standard En las congestiones detectadas por los nodos MD, es decir en el camino inverso directo, se sigue el procedimiento de back pressure directo. \layout Standard Pero en el camino inverso indirecto, debe utilizarse un procedimiento diferente, que llamamos \emph on back pressure indirecto \emph default . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 476 325 file back_pressure_indirecto.eps width 3 80 flags 9 \end_inset \layout Caption Back pressure indirecto \end_float \layout Standard \pagebreak_bottom La fase de señalización de principio de congestión por \emph on back pressure indirecto \emph default se compone de 5 etapas, de forma que el mensaje pueda dar una vuelta al bucle: \layout Enumerate Back pressure directo por el camino inverso indirecto. Aunque sepamos que por esta vía no se consigue alcanzar al nodo X, es posible avisar algunos nodos MI anteriores utilizando los enlaces que nos comunican con ellos; para ello, se sigue el procedimiento de back pressure directo. Cuando un nodo MI recibe las señal de back pressure directo y no puede propagarla hacia atrás, se limita a mandar el asentimiento y tomar las acciones correspondientes al aviso de congestión. \layout Enumerate El \emph on nodo generador de señal de congestión \emph default envía una señal que llamamos \begin_inset Quotes eld \end_inset FORWARD BACK PRESSURE INDIRECTO \begin_inset Quotes erd \end_inset , que se propaga en sentido del circuito virtual de ida, hasta llegar al nodo Y. \layout Enumerate Al recibir la señalización anterior, el nodo Y genera una señal que llamamos \begin_inset Quotes eld \end_inset BACK PRESSURE INDIRECTO \begin_inset Quotes erd \end_inset , que se propaga por el circuito virtual de vuelta a través de los nodos O, hasta el nodo X. \layout Enumerate Al recibir la señalización anterior, el nodo X genera una señal \begin_inset Quotes eld \end_inset ACK BACK PRESSURE INDIRECTO \begin_inset Quotes erd \end_inset , que se propaga por el circuito virtual de ida a través de los nodos MD y MI hasta llegar al \emph on nodo generador de señal de congestión \emph default . \layout Enumerate El nodo X, además, propaga a los nodos anteriores al bucle el aviso de congestió n (utilizando el procedimiento adecuado al tipo del nodo anterior). \layout Standard La fase de señalización de fin de congestión es idéntica, pero con otros nombres: \layout Enumerate Fin de congestión directo. \layout Enumerate \begin_inset Quotes eld \end_inset FORWARD BACK PRESSURE INDIRECTO FIN DE CONGESTIÓN \begin_inset Quotes erd \end_inset . \layout Enumerate \begin_inset Quotes eld \end_inset BACK PRESSURE INDIRECTO FIN DE CONGESTIÓN \begin_inset Quotes erd \end_inset . \layout Enumerate \begin_inset Quotes eld \end_inset ACK BACK PRESSURE INDIRECTO FIN DE CONGESTIÓN \begin_inset Quotes erd \end_inset . \layout Enumerate Propagación a los nodos anteriores del mensaje de fin de congestión. \layout Standard Nota: Si en el bucle no hay nodos MI, sólo se sigue el procedimiento de back pressure directo. \layout Subsubsection Multienvío \begin_inset LatexCommand \label{sec:multienv} \end_inset \layout Standard En el caso de back pressure en bucles, la señal (2) \begin_inset Quotes eld \end_inset Forward back pressure indirecto \begin_inset Quotes erd \end_inset (o \begin_inset Quotes eld \end_inset forward back pressure indirecto fin de congestión \begin_inset Quotes erd \end_inset ) es enviada varias veces por el \emph on nodo generador de señal de congestión \emph default , de forma que la probabilidad de que el mensaje dé una vuelta al bucle sea mayor que un valor A \protected_separator \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Probabilidad mínima de no pérdida de señalización en un bucle \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float . Para ello, el \emph on nodo generador de señal de congestión \emph default debe calcular la probabilidad de error del bucle, a partir de los parámetros primarios \begin_inset Formula \( P_{j} \) \end_inset de los enlaces (se considera que \begin_inset Formula \( P_{j}=1 \) \end_inset para enlaces con conexión hdlc). Los nodos intermedios (MI, Y, O, X, MD) retransmiten todas las copias de la señalización que reciben. \layout Standard El procedimiento de back pressure directo también es sometido a multienvío. Pero esta vez, tanto el nodo generador de la señal ( \begin_inset Quotes eld \end_inset back pressure directo \begin_inset Quotes erd \end_inset o \begin_inset Quotes eld \end_inset fin back pressure directo \begin_inset Quotes erd \end_inset ) como el nodo receptor (el nodo que genera las señales de asentimiento \begin_inset Quotes eld \end_inset ack back pressure directo \begin_inset Quotes erd \end_inset o \begin_inset Quotes eld \end_inset ack fin back pressure directo \begin_inset Quotes erd \end_inset ) realizan multienvío, transmitiendo la señalización el número de veces necesario para que llegue al extremo del enlace con una probabilidad mayor que A. A diferencia del procedimiento de back pressure indirecto, este procedimiento es local: la recepción de varias copias de una misma señal (es decir referida al mismo identificador de congestión) no debe generar varias copias de asentimientos, ni tampoco varias señales propagadas; el número de señales generadas es independiente del número de señales recibidas (con una basta, y si se reciben más debe hacerse caso omiso de ellas). \layout Subsubsection Temporizadores \begin_inset LatexCommand \label{sec:t1t2} \end_inset \layout Standard El \emph on nodo generador de señal de congestión \emph default (en el procedimiento de back pressure indirecto) o el generador de la señal \begin_inset Quotes eld \end_inset back pressure directo \begin_inset Quotes erd \end_inset o \begin_inset Quotes eld \end_inset fin back pressure directo \begin_inset Quotes erd \end_inset (procedimiento back pressure directo) reinicia el proceso de envío (multienvío) de esta señalización si no recibe la señal de asentimiento correspondiente pasado un cierto tiempo definido por un temporizador. \layout Standard Para cada circuito virtual, y para cada sentido de la comunicación (circuito virtual de ida y de vuelta) se definen dos temporizadores: \layout Quote T1: Temporizador para procedimiento de back pressure directo. \layout Quote T2: Temporizador para procedimiento de back pressure indirecto. \layout Standard Se define localmente al nodo su valor inicial en dos variables T1INIT y T2INIT \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Valor inicial del temporizador de retransmisión por back pressure directo / indirecto \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float . T1 y T2 se van ajustando al valor estimado de ida y vuelta ( \begin_inset Quotes eld \end_inset Round Trip Time \begin_inset Quotes erd \end_inset ), mediante el algoritmo de Phil Karn \begin_inset LatexCommand \cite{13} \end_inset o alguno equivalente (por ejemplo otros algoritmos utilizados en el protocolo TCP). \layout Subsubsection Identificador de congestión \layout Standard Pueden producirse congestiones en distintos nodos de un circuito virtual, y en diferentes instantes de tiempo. Es necesario poder diferenciar estas congestiones, el apartado anterior es un claro ejemplo: para estimar el tiempo de ida y vuelta, hay que estar seguro a qué congestión se refiere el asentimiento recibido. \emph on \emph default El \emph on nodo generador de señal de congestión \emph default debe ser capaz de reconocer los asentimientos a las ondas de back pressure generadas por él. \layout Standard Esta diferenciación se hace mediante un \emph on identificador de congestión \emph default , generado por el \emph on nodo detector de la congestión \emph default . Este identificador debe ser único en el circuito virtual. \layout Subsection Optimización : ocultación de congestiones \layout Subsubsection Introducción \layout Standard En un circuito virtual susceptible a la congestión, es probable que varios enlaces se congestionen, generando una cantidad no despreciable de señalización de back pressure. Para optimizar los recursos, Jnet limita la señalización de back pressure ocultando ondas de back pressure a partes del circuito virtual donde esta información no es de utilidad. \layout Standard \added_space_top defskip La idea es la siguiente: \layout Itemize Cuando un nodo se congestiona, genera una onda de back pressure hacia atrás en el circuito virtual. Si a su vez, este nodo congestionado recibe una onda de back pressure de un nodo que le sigue (que llamamos \begin_inset Quotes eld \end_inset nodo posterior \begin_inset Quotes erd \end_inset ), anunciando otra congestión, la propagación de esta información no es de interés para el resto de nodos puesto que ya han tomado medidas con respecto a la congestión. \layout Itemize Cuando este nodo se descongestiona, no puede enviar la onda de final de congestión hasta que todos los nodos posteriores se hayan descongestionado. \layout Itemize Puede ocurrir que en el momento de la congestión, ya hubiera nodos posteriores congestionados. Esto debe de tenerse en cuenta, puesto que todos los nodos que hayan recibido su onda de \begin_inset Quotes eld \end_inset principio de congestión \begin_inset Quotes erd \end_inset están esperando recibir su onda de \begin_inset Quotes eld \end_inset final de congestión \begin_inset Quotes erd \end_inset , no pudiéndose ocultar esta información. Debe ser por lo tanto un ocultamiento selectivo. \layout Standard Vemos por lo tanto que esta optimización va a suponer una mayor complejidad, justificada debido a la escasez de ancho de banda, o simplemente debido a la voluntad de eficiencia de este proceso en Jnet. Para poder llevarla a cabo, los nodos necesitan memorizar las congestiones recibidas con anterioridad, realizar su seguimiento, y tener diferentes estados de trabajo en los que se comportarán de forma diferente. \layout Subsubsection Listas e indicadores \begin_inset LatexCommand \label{sec:listaseind} \end_inset \layout Standard En cada nodo y por cada sentido de circuito virtual se definen 3 listas: \layout Enumerate \emph on Lista de nodos congestionados \emph default : Lista en la que se almacenan los identificadores de congestión de lo nodos posteriores congestionados. \layout Enumerate \emph on Lista de nodos MD/MI congestionados \emph default : En el caso de los nodos MD, lista en la que se almacenan los identificadores de congestión de los nodos MD posteriores congestionados del mismo bucle. En el caso de los nodos MI, lista de nodos MI posteriores que tienen comunicaci ón con nosotros en modo back pressure directo. \layout Enumerate \emph on Lista de nodos congestionados antes que nosotros \emph default : Lista los identificadores de congestión correspondientes a nodos posteriores que estaban ya congestionados en el momento en el que nuestro nodo se congestio na. También se la llama \emph on lista translúcida \emph default . \layout Standard A su vez, se definen 3 indicadores, que definen el modo del nodo: \layout Enumerate Un nodo está en \emph on MODO PRESSURE \emph default cuando la lista de nodos congestionados tiene elementos. \layout Enumerate Un nodo MD está en \emph on MODO PRESSURE DIRECTO \emph default cuando la lista de nodos MD/MI congestionados tiene elementos. \layout Enumerate Un nodo está en \emph on MODO TRANSLÚCIDO \emph default cuando la lista de nodos congestionados antes que nosotros tiene elementos. \layout Subsubsection Estados de los nodos \begin_inset LatexCommand \label{sec:estnod} \end_inset \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 476 199 file back_pressure_estados.eps width 3 80 flags 9 \end_inset \layout Caption Diagrama de estados de control de flujo interno \end_float \layout Standard Se definen 3 estados de funcionamiento. Estos están asociados a cada circuito virtual, pudiendo un nodo estar en estados diferentes de funcionamiento según el circuito virtual. \layout Description Estado \protected_separator CONGESTIONADO El nodo tiene un enlace del circuito virtual congestionado. \begin_deeper \layout Description Actividad Bloquear los avisos de congestión. \layout Description Descongestión Cuando el enlace congestionado se descongestiona, el nodo: \begin_deeper \layout Enumerate Se borra de la \emph on Lista de nodos congestionados. \layout Enumerate ¿ Está el nodo en modo PRESSURE ? \begin_deeper \layout List \labelwidthstring 00.00.0000 NO Generar la onda back pressure de fin de congestión, y pasar al \emph on estado descongestionado \emph default . \layout List \labelwidthstring 00.00.0000 SI Pasar el \emph on estado de fin de congestión pressure \emph default . \end_deeper \end_deeper \end_deeper \layout Description Estado \protected_separator FIN \protected_separator DE \protected_separator CONGESTIÓN \protected_separator PRESSURE El nodo está a la espera de salir del \emph on modo pressure \emph default para pasar el estado descongestionado. \begin_deeper \layout Description Actividad Bloquear los avisos de congestión. \layout Description Congestión Si uno de los enlaces utilizados por el circuito virtual se congestio na: \begin_deeper \layout Enumerate El nodo se añade a la \emph on Lista de nodos congestionados \emph default . \layout Enumerate Pasar al \emph on estado congestionado \emph default . \end_deeper \layout Description Final \protected_separator de \protected_separator pressure Si el nodo sale del \emph on modo pressure \emph default : \begin_deeper \layout Enumerate Generar la onda back pressure de fin de congestión. \layout Enumerate Pasar al \emph on estado descongestionado \emph default . \end_deeper \end_deeper \layout Description Estado \protected_separator DESCONGESTIONADO \begin_deeper \layout Description Actividad El nodo propaga toda la señalización de control de flujo. \layout Description Congestión Si uno de los enlaces utilizados por el circuito virtual se congestio na: \begin_deeper \layout Enumerate Copiar la \emph on lista de nodos congestionados \emph default a la \emph on lista de nodos congestionados antes que nosotros \emph default . \layout Enumerate Generar el \emph on identificador de congestión \emph default . \layout Enumerate El nodo se añade a la \emph on Lista de nodos congestionados \emph default . \layout Enumerate Generar la onda back pressure de principio de congestión. \layout Enumerate Pasar al \emph on estado congestionado \emph default . \end_deeper \end_deeper \layout Subsection Optimización: anulación de ondas de back pressure \layout Standard En el proceso de control de flujo por back pressure, existen dos \begin_inset Quotes eld \end_inset frentes de ondas \begin_inset Quotes erd \end_inset : el frente de onda de aviso de congestión, y el frente de onda de aviso de fin de congestión. Es posible que debido a la casualidad y a la corta duración de la congestión, el último frente alcance al primero. En tal caso, Jnet para ambos frentes, no los propaga. \layout Standard Este caso se detecta con facilidad: el nodo recibe una señal de \begin_inset Quotes eld \end_inset Fin back pressure \begin_inset Quotes erd \end_inset con un identificador de congestión que no pertenece a la lista de nodos congestionados. \layout Standard Cuando esto ocurre, el nodo almacena el identificador de la señal \begin_inset Quotes eld \end_inset Fin back pressure \begin_inset Quotes erd \end_inset en una lista, que llamamos \emph on lista de back pressure anulados \emph default , y no propaga hacia atrás esta señal. Posteriormente, llega la señal de \begin_inset Quotes eld \end_inset back pressure \begin_inset Quotes erd \end_inset (principio de congestión) correspondiente a esta misma congestión (para saberlo se comprueba si pertenece a la lista de back pressure anulados), que el nodo tampoco propaga hacia atrás. \layout Subsection Modelado del control de flujo interno mediante máquinas \layout Standard En este apartado modelamos las características generales anteriormente descritas , al fin de poder dar una descripción más detallada del comportamiento de cada tipo de nodo. \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 178 235 file back_pressure_2_maquinas.eps width 3 30 flags 9 \end_inset \end_float \layout Standard La tarea se divide y estructura mediante dos máquinas, la \emph on máquina de gestión de estados \emph default y la \emph on máquina de retransmisión y multienvío \emph default . La máquina de retransmisión y multienvío recibe la señalización de los nodos vecinos, la procesa y se la comunica a la máquina de gestión de estado (por ejemplo eliminando señales duplicadas debido al multienvío de nodos vecinos). La máquina de gestión de estados cambia su estado en función de las informacion es que recibe de la máquina de retransmisión y multienvío, y reacciona enviándol e señalización para los nodos vecinos, que esta última se encarga de entregar mediante retransmisiones y multienvío. \layout Subsubsection* \pagebreak_top Máquina de retransmisiones y multienvío \layout Standard Sus funciones son: \layout Itemize En recepción: \begin_deeper \layout Itemize Filtrar las señales duplicadas, debido a la multitransmisión de los nodos vecinos. \layout Itemize Gestión de las señales de asentimiento. \begin_deeper \layout Itemize Medición de tiempo de ida y vuelta (rtt). \layout Itemize Comprobar que una señal es asentida, y borrar los temporizadores correspondiente s. \end_deeper \end_deeper \layout Itemize En transmisión \begin_deeper \layout Itemize Retransmisión. \layout Itemize Multitransmisión. \layout Itemize Generación de los asentimientos \end_deeper \layout Standard La máquina de retransmisiones y multienvío \emph on no tiene estados \emph default . Esto le permite realizar el seguimiento de los temporizadores, del multienvío, de los asentimientos, independientemente del estado de funcionamiento del nodo. \layout Subsubsection* Máquina de gestión de estados \layout Standard La máquina de gestión de estados: \layout Itemize Controla la propagación de las ondas de back pressure. \layout Itemize Actualiza las listas. \layout Itemize Efectúa los cambios de estados del nodo. \layout Standard En los diagramas SDL, salvo si se especifica lo contrario, las señales recibidas y transmitidas por la máquina de gestión vienen y van de/a la máquina de retransmisiones y multienvío. \layout Subsection Nodos N \layout Standard En las figuras \begin_inset LatexCommand \ref{fig:Ncongest} \end_inset , \begin_inset LatexCommand \ref{fig:Nfinconges} \end_inset , \begin_inset LatexCommand \ref{fig:Ndeconge} \end_inset están los diagramas sdl de la máquina de gestión de estados de los nodos tipo N. Se puede observar que no genera las señales de asentimiento (lo hace la máquina de retransmisión y multienvío). \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_N_congestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Ncongest} \end_inset \begin_inset LatexCommand \label{fig:pruebs} \end_inset Máquina de gestión de estados, nodos tipo N, estado congestionado \end_float \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_N_fin_de_congestion_pressure.eps width 3 100 height 3 100 angle 90 flags 0 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Nfinconges} \end_inset Máquina de gestión de estados, nodos tipo N, estado fin de congestión pressure. \end_float \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_N_descongestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Ndeconge} \end_inset Máquina de gestión de estados, nodos tipo N, descongestionado. \end_float \layout Subsection Nodos X \layout Standard En las figuras \begin_inset LatexCommand \ref{fig:Xcongest} \end_inset , \begin_inset LatexCommand \ref{fig:Xfincong} \end_inset , \begin_inset LatexCommand \ref{fig:Xdescong} \end_inset están los diagramas sdl de las máquina de gestión de estados de los nodos tipo X. Observamos matices con respecto a la anulación de ondas de back pressure: las frentes anulados en el nodo X no son propagados hacia atrás, pero sí se envían las señales de asentimiento \emph on ack back pressure indirecto \emph default y \emph on ack back pressure indirecto fin de congestión \emph default , porque estas señales no son suprimibles (las espera el \emph on nodo generador \emph default ). \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_X_congestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Xcongest} \end_inset Máquina de gestión de estados, nodos tipo X, congestionado. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_X_fin_de_congestion_pressure.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Xfincong} \end_inset Máquina de gestión de estados, nodos tipo X, estado fin de congestión pressure. \end_float \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_X_descongestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Xdescong} \end_inset Máquina de gestión de estados, nodos tipo X, estado descongestionado. \end_float \layout Subsection Nodos Y \layout Standard En las figuras \begin_inset LatexCommand \ref{fig:Ycongest} \end_inset , \begin_inset LatexCommand \ref{fig:Yfincong} \end_inset , \begin_inset LatexCommand \ref{fig:Ydescong} \end_inset están los diagramas sdl de la máquina de gestión de estados de los nodos tipo Y. Aunque en el diagrama no se compruebe, lógicamente la emisión de señales de back pressure directo sólo se realiza si existe enlace directo hacia el nodo anterior. \layout Standard De especial interés es el tratamiento de la señal \emph on forward back pressure indirecto \emph default y \emph on forward back pressure indirecto fin de congestión \emph default : son propagadas, pero no incluidas en las listas de nodos congestionados porque vienen de nodos \emph on anteriores \emph default y por lo tanto no influyen en el estado de back pressure de este nodo. \layout Standard No aparecen las señales \emph on ack back pressure indirecto \emph default y \emph on ack back pressure indirecto fin de congestión \emph default porque son procesadas por la \emph on máquina de retransmisión y multienvío \emph default (nota: cuando estas señales llegan hasta un nodo Y es porque Y es el \emph on nodo generador de señal de congestión \emph default ) \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_Y_congestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Ycongest} \end_inset Máquina de gestión de estados, nodos tipo Y, estado congestionado. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_Y_fin_de_congestion_pressure.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Yfincong} \end_inset Máquina de gestión de estados, nodos tipo Y, estado fin de congestión pressure. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_Y_descongestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:Ydescong} \end_inset Máquina de gestión de estados, nodos tipo Y, estado descongestionado. \end_float \layout Subsection Nodos MD \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 297 42 file back_pressure_MDMI.eps width 3 50 flags 9 \end_inset \end_float \layout Standard En las figuras \begin_inset LatexCommand \ref{fig:MDGeneral} \end_inset , \begin_inset LatexCommand \ref{fig:MDcongest} \end_inset , \begin_inset LatexCommand \ref{fig:MDfincong} \end_inset , \begin_inset LatexCommand \ref{fig:MDdescong} \end_inset están los diagramas sdl de la máquina de gestión de estados de los nodos tipo MD. \layout Standard Los nodos del bucle MI (si existen) son siempre posteriores a los nodos MD, y su estado de congestión es recibido mediante el procedimiento de back pressure indirecto mediante las señales \emph on ack back pressure indirecto \emph default y \emph on ack back pressure indirecto fin de congestión \emph default . Al ser nodos posteriores, forman parte de la \emph on lista de nodos congestionados \emph default , y por lo tanto contribuyen al \emph on estado pressure \emph default del nodo. Por este motivo, que un nodo MD esté en estado pressure no es motivo suficiente para que bloquee las señales de back pressure directo de los nodos MD posterior es: puede darse el caso por ejemplo que ninguno de los nodos MD posteriores esté congestionado, y que lo esté algún nodo MI; en tal caso el nodo MD estaría esperando a que se descongestionaran estos nodos MI para salir del modo back pressure fin de congestión, lo que no aporta nada, sino un ralentizamiento del proceso. \layout Standard Por este motivo se ha diseñado el \emph on modo pressure directo \emph default para los nodos MD, y la lista de nodos MD congestionados. El final del modo pressure directo define en instante de salida del \emph on estado fin de congestión pressure \emph default . \layout Standard Las señales \emph on ack back pressure indirecto \emph default y \emph on ack back pressure indirecto fin de congestión \emph default recibidas por esta máquina son siempre referentes a congestiones de otros nodos. \layout Standard Los nodos MD ni reciben ni generan señales \emph on forward back pressure indirecto \emph default / \emph on forward back pressure indirecto fin de congestión \emph default . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_MD_general.eps width 3 100 height 3 100 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:MDGeneral} \end_inset Máquina de gestión de estados, nodos tipo MD, transiciones en todos los estados. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_MD_congestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:MDcongest} \end_inset Máquina de gestión de estados, nodos tipo MD, estado congestionado. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_MD_fin_de_congestion_pressure.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:MDfincong} \end_inset Máquina de gestión de estados, nodos tipo MD, estado fin de congestión pressure. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_MD_descongestionado.eps width 3 100 height 3 100 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:MDdescong} \end_inset Máquina de gestión de estados, nodos tipo MD, estado descongestionado. \end_float \layout Subsection Nodos MI \layout Standard El funcionamiento de los nodos MI es muy parecido al de los nodos MD, salvo que para anunciar su congestión utilizan el mecanismo de back pressure indirecto y, si tienen enlace hacia atrás, el mecanismo de back pressure directo. \layout Standard Además, es aplicable el método de ocultamiento utilizado en los nodos MD con el \emph on modo pressure directo \emph default , con la diferencia que en este modo no se garantiza que todos los nodos MI posteriores congestionados estén incluidos en la lista de nodos MI congestio nados, sólo lo estarán los que tienen la posibilidad de enviarnos avisos de back pressure directo. Es posible que en el conjunto de nodos MI haya varios grupos aislados con posibilidad de back pressure directo. No obstante, sigue siendo útil el procedimiento, puesto que disminuye el tráfico de señalización de congestión. \layout Standard También cabe destacar la diferencia entre las señales \emph on ack back pressure indirecto \emph default / \emph on ack back pressure indirecto fin de congestión \emph default y \emph on forward back pressure indirecto \emph default / \emph on forward back pressure indirecto fin de congestión \emph default : la primera indica la congestión / descongestión de un nodo posterior (por lo tanto entra en la lista de nodos congestionados), mientras que la segunda indica la congestión de un nodo anterior (no entra en la lista de nodos congestionados). \layout Standard Debido a la utilización de los dos métodos de propagación de ondas de back pressure (directo e indirecto), un nodo MI puede recibir por dos caminos diferente la misma señal. Esto se tiene en cuenta en la anulación de frentes de ondas: la señal \emph on ack back pressure indirecto fin de congestión \emph default no anula las señales \emph on back pressure directo \emph default pendientes de llegar. \layout Standard Los diagramas sdl están en las figuras \begin_inset LatexCommand \ref{fig:MIgeneral} \end_inset , \begin_inset LatexCommand \ref{fig:MIcongest} \end_inset , \begin_inset LatexCommand \ref{fig:MIfincongest} \end_inset , \begin_inset LatexCommand \ref{fig:MIdescong} \end_inset . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_MI_general.eps width 3 100 height 3 100 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:MIgeneral} \end_inset Máquina de gestión de estados, nodos tipo MI, transiciones en todos los estados. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_MI_congestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:MIcongest} \end_inset Máquina de gestión de estados, nodos tipo MI, estado congestionado. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_MI_fin_de_congestion_pressure.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:MIfincongest} \end_inset Máquina de gestión de estados, nodos tipo MI, estado fin de congestión pressure. \end_float \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 595 841 file back_pressure_sdl_MI_descongestionado.eps width 3 100 height 3 100 angle 90 flags 8 \end_inset \layout Caption \begin_inset LatexCommand \label{fig:MIdescong} \end_inset Máquina de gestión de estados, nodos tipo MI, estado descongestionado. \end_float \layout Subsection Nodos O \layout Standard Los nodos de tipo O se limitan a retransmitir las señales \emph on back pressure indirecto \emph default y \emph on back pressure indirecto fin de congestión \emph default . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 297 392 file back_pressure_sdl_O_general.eps width 3 50 flags 8 \end_inset \layout Caption Máquina de gestión de estados, nodo tipo O. \end_float \layout Subsection Criterios de congestión de enlaces \layout Subsubsection Enlaces con conexión hdlc \begin_inset LatexCommand \label{sec:conghdlc} \end_inset \layout Standard La máquina de medición enlace a nivel de red conoce la longitud de la cola de pdus pendientes de transmitir, para ello le basta contar el número de bits \emph on Ncolatx \emph default total de las pdus pendientes de asentimiento de la \emph on tabla almacén de primitivas DL-DATA Request transmitidas \emph default (ver apartado \begin_inset LatexCommand \ref{sec:medFjcon} \end_inset ). \layout Standard Por cada interfaz, definimos dos valores umbral \begin_inset Formula \( Ncolatx_{1} \) \end_inset \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Umbral de descongestión de enlaces con conexión hdlc \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float y \begin_inset Formula \( Ncolatx_{2} \) \end_inset \begin_float footnote \layout Standard \begin_inset Quotes eld \end_inset Umbral de congestión de enlaces con conexión hdlc \begin_inset Quotes erd \end_inset . Se trata de un parámetro local del nodo asociado a cada canal. Ver apéndice \begin_inset LatexCommand \ref{apen:params} \end_inset . \end_float , con \newline \begin_inset Formula \( Ncolatx_{1}Ncolatx2 \) \end_inset . Si el enlace está congestionado, se considera que se descongestiona cuando \begin_inset Formula \( NcolatxOC_{2} \) \end_inset . Si el enlace está congestionado, se considera que se descongestiona cuando \begin_inset Formula \( OC_{i}P_{min} \) \end_inset . Esto significa que debe ser capaz de descubrir las mejores rutas, clasificarlas por orden creciente de coste, y recorrerlas hasta que alguna cumpla con la calidad requerida. \layout Standard El caso particular \begin_inset Formula \( P_{j}=1 \) \end_inset corresponde a circuitos virtuales formados por enlaces de alta calidad. Si además se desea que todos estos enlaces sean con conexión hdlc, se le deberá indicar al nivel de red mediante un indicador en la primitiva de conexión. \layout Section Primitiva de establecimiento de conexión \layout Standard Finalmente, para clarificar y plasmar los conceptos anteriores, veamos como son las primitivas de conexión en notación OSI (ver \begin_inset Quotes eld \end_inset Redes de Ordenadores \begin_inset Quotes erd \end_inset \begin_inset LatexCommand \cite{14} \end_inset ). \layout Standard \added_space_top defskip \added_space_bottom defskip Las dos primitivas en sentido de ida son: \layout Standard \family sans N-CONNECT Request (calle, caller, acks_wanted, exp_wanted, qos, user_data) \layout Standard \family sans N-CONNECT Indication (calle, caller, acks_wanted, exp_wanted, qos, user_data) \layout List \labelwidthstring 00.00.0000 calle, \protected_separator caller Direcciones de red del nodo llamante y llamado. \layout List \labelwidthstring 00.00.0000 acks_wanted, \protected_separator exp_wanted Indicadores de confirmación y de envío de datos acelerados, no soportados por Jnet. \layout List \labelwidthstring 00.00.0000 qos Calidad de servicio. En ella se incluyen 4 parámetros: \begin_deeper \layout List \labelwidthstring 00.00.0000 \begin_inset Formula \( P_{ida} \) \end_inset Probabilidad mínima de no pérdida del circuito virtual de ida. \layout List \labelwidthstring 00.00.0000 \begin_inset Formula \( Con_{ida} \) \end_inset Indicador booleano, verdadero si se desea que el circuito virtual de ida sólo contenga enlaces con conexión hdlc, falso en caso contrario. \layout List \labelwidthstring 00.00.0000 \begin_inset Formula \( P_{vuelta} \) \end_inset Probabilidad mínima de no pérdida del circuito virtual de vuelta. \layout List \labelwidthstring 00.00.0000 \begin_inset Formula \( Con_{vuelta} \) \end_inset Indicador booleano, verdadero si se desea que el circuito virtual de vuelta sólo contenga enlaces con conexión, falso en caso contrario. \end_deeper \layout List \labelwidthstring 00.00.0000 user_data Campo para datos de usuario, que el nivel de red transporta transparen temente. \layout Standard \added_space_top defskip \added_space_bottom defskip \pagebreak_top Las dos primitivas en sentido de vuelta son: \layout Standard \family sans N-CONNECT Response (responder, acks_wanted, exp_wanted, qos, user_data) \layout Standard \family sans N-CONNECT Confirmation (responder, acks_wanted, exp_wanted, qos, user_data) \layout List \labelwidthstring 00.00.0000 responder Direcciones de red del nodo que responde. \layout List \labelwidthstring 00.00.0000 acks_wanted, \protected_separator exp_wanted Indicadores de confirmación y de envío de datos acelerados, no soportados por Jnet. \layout List \labelwidthstring 00.00.0000 qos Calidad de servicio. En ella se incluyen 2 parámetros: \begin_deeper \layout List \labelwidthstring 00.00.0000 \begin_inset Formula \( P_{vuelta} \) \end_inset Probabilidad mínima de no pérdida del circuito virtual de vuelta. \layout List \labelwidthstring 00.00.0000 \begin_inset Formula \( Con_{vuelta} \) \end_inset Indicador booleano, verdadero si se desea que el circuito virtual de vuelta sólo contenga enlaces con conexión, falso en caso contrario. \end_deeper \layout List \labelwidthstring 00.00.0000 user_data Campo para datos de usuario, que el nivel de red transporta transparen temente. \layout Standard \latex latex \backslash appendix \layout Chapter Filtro digital para mediciones síncronas \begin_inset LatexCommand \label{apen:filtro} \end_inset \layout Standard Se trata de diseñar un filtro digital paso bajo, cuya respuesta al escalón unidad sea aproximadamente 0,8 para la salida en n=5. \layout Standard \added_space_top 0.3cm \align center \begin_inset Figure size 297 272 file fitro_digital.eps width 3 50 flags 9 \end_inset \layout Standard El filtro será un filtro definido por ecuaciones en diferencias de coeficientes constantes, es decir definido por la ecuación: \begin_inset Formula \[ \sum ^{N}_{k=0}a_{k}y[n-k]=\sum ^{M}_{k=0}b_{k}x[n-k]\] \end_inset \layout Standard La transformada Z de la respuesta al impulso de este filtro es: \layout Standard \begin_inset Formula \begin{equation} \label{mat:Hz} H(z)=\frac{\sum ^{M}_{k=0}b_{k}z^{-k}}{\sum ^{N}_{k=0}a_{k}z^{-k}}=\frac{Y(z)}{X(z)} \end{equation} \end_inset \layout Standard Queremos que \begin_inset Formula \( H(z) \) \end_inset sea un filtro paso bajo con N polos en \begin_inset Formula \( z=\beta \) \end_inset . \layout Standard Para ello, \begin_inset Formula \( X(z) \) \end_inset debe tener N ceros en \begin_inset Formula \( z=\beta \) \end_inset , y puede expresarse de la forma: \layout Standard \begin_inset Formula \begin{eqnarray*} X(z) & = & (z^{-1}-\alpha )^{N}\\ \alpha & = & \beta ^{-1} \end{eqnarray*} \end_inset \layout Standard \begin_inset Formula \( H(z) \) \end_inset va a tener la forma: \layout Standard \begin_inset Formula \[ H(z)=\frac{cte}{(z^{-1}-\alpha )^{N}}\] \end_inset \layout Standard Aplicando el binomio de Newton: \layout Standard \begin_inset Formula \[ X(z)=(z^{-1}-\alpha )^{N}=\sum ^{N}_{k=0}C_{k}^{N}(z^{-1})^{k}(-\alpha )^{N-k}=\sum ^{N}_{k=0}C^{N}_{k}(-\alpha )^{N-k}z^{-k}\] \end_inset \layout Standard Es decir: \layout Standard \begin_inset Formula \[ H(z)=\frac{cte}{\sum ^{N}_{k=0}C^{N}_{k}(-\alpha )^{N-k}z^{-k}}\] \end_inset \layout Standard Identificando con ( \begin_inset LatexCommand \ref{mat:Hz} \end_inset ), vemos que: \layout Standard \begin_inset Formula \[ a_{k}=C_{k}^{N}(-\alpha )^{N-k}\] \end_inset \layout Standard Se desea que el filtro paso bajo tenga ganancia unidad en la frecuencia \begin_inset Formula \( \omega =0 \) \end_inset , por lo tanto: \layout Standard \begin_inset Formula \[ H(1)=1=\frac{cte}{(1-\alpha )^{N}}\Rightarrow cte=(1-\alpha )^{N}\] \end_inset \layout Standard Para que el filtro sea estable, sus polos deben de estar en el interior de la circunferencia unidad. Vamos a escoger como polo múltiple \begin_inset Formula \( \beta =\frac{1}{2} \) \end_inset , es decir \begin_inset Formula \( \alpha =2 \) \end_inset . \layout Standard Por lo tanto: \layout Standard \begin_inset Formula \[ cte=(1-\alpha )^{N}=(1-2)^{N}=(-1)^{N}\] \end_inset \layout Standard Con \begin_inset Formula \( \alpha =2 \) \end_inset , la ecuación en diferencias de coeficientes constantes del filtro es: \layout Standard \begin_inset Formula \begin{eqnarray} & \sum ^{N}_{k=0}C_{k}^{N}(-2)^{N-k}y[n-k]=(-1)^{N}x[n] & \\ \Leftrightarrow & C_{0}^{N}(-2)^{N}y[n]=(-1)^{N}x[n]-\sum ^{N}_{k=1}C_{k}^{N}(-2)^{N-k}y[n-k] & \\ \Leftrightarrow & y[n]=\frac{1}{(-2)^{N}}\left[ (-1)^{N}x[n]-\sum ^{N}_{k=1}C_{k}^{N}(-2)^{N-k}y[n-k]\right] & \label{sec:y[n]} \end{eqnarray} \end_inset \layout Standard El orden N del filtro se determina mediante la condición \begin_inset Formula \( y[5]\simeq 0,8 \) \end_inset en la respuesta al escalón unidad. \layout Standard Para tal fin, se recurre a la simulación, mediante un programa sencillo escrito en C, que se expone a continuación \begin_float footnote \layout Standard Es necesario compilar este programa con la librería matemática estándar. Compilable por ejemplo con el comando \begin_inset Quotes eld \end_inset gcc -lm filtro_digital.c -o filtro_digital \begin_inset Quotes erd \end_inset \end_float : \layout LyX-Code /**************************************** \layout LyX-Code filtro_digital.c Por Julián Muñoz - 01/06/99 \layout LyX-Code Calcula la respuesta al escalón de un filtro \layout LyX-Code paso bajo de orden N con polos en z=0.5 \layout LyX-Code Npolos es el número de Polos, se corresponde \layout LyX-Code con el N del apéndice "filtro digital para \layout LyX-Code mediciones síncronas". \layout LyX-Code ******************************************/ \layout LyX-Code #include \layout LyX-Code #include /* memset */ \layout LyX-Code #include \layout LyX-Code unsigned int factorial \layout LyX-Code \protected_separator \protected_separator (unsigned int n) { \layout LyX-Code \protected_separator unsigned int i=1; \layout LyX-Code \protected_separator unsigned int temp=1; \layout LyX-Code \protected_separator if (n==0) return(1); \layout LyX-Code \protected_separator for (i=1, temp=1; i<=n \protected_separator ; i++) \layout LyX-Code \protected_separator \protected_separator temp=temp*i; \layout LyX-Code return (temp); \layout LyX-Code } \layout LyX-Code unsigned int Cnm \layout LyX-Code \protected_separator (unsigned int n, unsigned \protected_separator int m) { \layout LyX-Code \protected_separator return(factorial(n)/factorial(m)/ \layout LyX-Code \protected_separator \protected_separator \protected_separator \protected_separator \protected_separator factorial(n-m)); \layout LyX-Code } \layout LyX-Code main ( int argc, char *argv[]) { \layout LyX-Code \protected_separator unsigned int Npolos; \layout LyX-Code \protected_separator unsigned int prueba; \layout LyX-Code \protected_separator /* Numero de pasos */ \layout LyX-Code \protected_separator unsigned int Npasos; \layout LyX-Code /* Memoria del filtro, donde se almacena las salidas \layout LyX-Code y[k], se corresponde con y[n-k] del proyecto fin de \layout LyX-Code carrera */ \layout LyX-Code \protected_separator float y[100]; \layout LyX-Code /* pasos */ \layout LyX-Code \protected_separator int i=0; \layout LyX-Code /* salida temporal del filtro */ \layout LyX-Code \protected_separator float f=0.0; \layout LyX-Code \protected_separator float alfa=2.0; \layout LyX-Code \protected_separator int k; \layout LyX-Code \protected_separator printf (" \backslash n Cuantos polos ? "); \layout LyX-Code \protected_separator scanf ( "%u", &Npolos); \layout LyX-Code \protected_separator printf (" \backslash n Cuantos pasos ? "); \layout LyX-Code \protected_separator scanf ( "%u", &Npasos); \layout LyX-Code \protected_separator \layout LyX-Code /* Se pone a cero la memoria del filtro */ \layout LyX-Code \protected_separator memset ( &y ,0, 100*sizeof(y[0])); \layout LyX-Code /* Bucle principal */ \layout LyX-Code \protected_separator for ( i=0 ; i<=Npasos ; i++) { \layout LyX-Code \protected_separator /* Cálculo del sumatorio */ \layout LyX-Code \protected_separator for (f=0.0, k=1; k<=Npolos ; k++) \layout LyX-Code \protected_separator \protected_separator \protected_separator f=f+ Cnm(Npolos,k) * \layout LyX-Code \protected_separator \protected_separator ( pow (-alfa, Npolos-k) ) \layout LyX-Code \protected_separator \protected_separator * y[k] ; \layout LyX-Code \protected_separator f= (1 * pow(-1,Npolos) -f)/ \layout LyX-Code \protected_separator \protected_separator \protected_separator pow (-alfa,Npolos); \layout LyX-Code \protected_separator printf (" \backslash n y[%i] = %f ", i, f); \layout LyX-Code \protected_separator y[0]=f; \layout LyX-Code \protected_separator /* desplazamiento */ \layout LyX-Code \protected_separator for (k=Npolos ; k>0 ; k--) y[k]=y[k-1]; \layout LyX-Code \protected_separator } \layout LyX-Code } \layout Standard Se prueba aumentar el orden del filtro, hasta encontrar uno que satisfaga la condición \begin_inset Formula \( y[5]\simeq 0.8 \) \end_inset . \layout Subparagraph* 1 Polo: \layout LyX-Code Cuantos polos ? 1 \layout LyX-Code Cuantos pasos ? 5 \layout LyX-Code y[0] = 0.500000 \layout LyX-Code y[1] = 0.750000 \layout LyX-Code y[2] = 0.875000 \layout LyX-Code y[3] = 0.937500 \layout LyX-Code y[4] = 0.968750 \layout LyX-Code y[5] = 0.984375 \layout Subparagraph* \pagebreak_top 2 polos: \layout LyX-Code Cuantos polos ? 2 \layout LyX-Code Cuantos pasos ? 5 \layout LyX-Code y[0] = 0.250000 \layout LyX-Code y[1] = 0.500000 \layout LyX-Code y[2] = 0.687500 \layout LyX-Code y[3] = 0.812500 \layout LyX-Code y[4] = 0.890625 \layout LyX-Code y[5] = 0.937500 \layout Subparagraph 3 polos: \layout LyX-Code Cuantos polos ? 3 \layout LyX-Code Cuantos pasos ? 5 \layout LyX-Code y[0] = 0.125000 \layout LyX-Code y[1] = 0.312500 \layout LyX-Code y[2] = 0.500000 \layout LyX-Code y[3] = 0.656250 \layout LyX-Code y[4] = 0.773438 \layout LyX-Code y[5] = 0.855469 \layout Subparagraph 4 polos: \layout LyX-Code Cuantos polos ? 4 \layout LyX-Code Cuantos pasos ? 5 \layout LyX-Code y[0] = 0.062500 \layout LyX-Code y[1] = 0.187500 \layout LyX-Code y[2] = 0.343750 \layout LyX-Code y[3] = 0.500000 \layout LyX-Code y[4] = 0.636719 \layout LyX-Code y[5] = 0.746094 \layout Subparagraph 5 polos: \layout LyX-Code Cuantos polos ? 5 \layout LyX-Code Cuantos pasos ? 5 \layout LyX-Code y[0] = 0.031250 \layout LyX-Code y[1] = 0.109375 \layout LyX-Code y[2] = 0.226562 \layout LyX-Code y[3] = 0.363281 \layout LyX-Code y[4] = 0.500000 \layout LyX-Code y[5] = 0.623047 \layout Standard Observamos que un filtro de orden N=4 es suficiente. \layout Standard Desarrollando la expresión ( \begin_inset LatexCommand \ref{sec:y[n]} \end_inset ) para N=4 obtenemos la ecuación del filtro: \layout Standard \begin_inset Formula \begin{eqnarray*} y[n] & = & \frac{1}{16}\left[ x[n]-C_{1}^{4}(-2)^{3}y[n-1]-C_{2}^{4}(-2)^{2}y[n-2]\right. \\ & & \left. -C_{3}^{4}(-2)^{1}y[n-3]-C_{4}^{4}(-2)^{0}y[n-4]\right] \\ y[n] & = & \frac{1}{16}\left[ x[n]+32y[n-1]-24y[n-2]+8y[n-3]-y[n-4]\right] \end{eqnarray*} \end_inset \layout Chapter Parámetros del nodo \begin_inset LatexCommand \label{apen:params} \end_inset \layout Standard \line_top Para su funcionamiento, Jnet requiere constantes locales, definidas en cada nodo. Este apéndice las recopila a continuación, exponiendo: \layout Itemize Su descripción resumida. \layout Itemize Sus unidades. \layout Itemize Su ámbito (genérica de ámbito global al nodo, o asociada a cada canal). \layout Itemize El valor que toma por defecto (son valores adecuados para instalaciones normales con enlaces entre 1200 y 9600 baudios). \layout Itemize \line_bottom La referencia del apartado y la página de este documento en la que se define esta constante. \layout Description \added_space_top bigskip Bi Velocidad bruta en bps ofrecida al nivel de enlace por el interfaz radio. Por ejemplo 1200 bps, 9600 bps, 19200 bps. \newline Valor por defecto: 1200 bps. \newline Constante asociada a canal. \layout Description Treq Período (en segundos) con el que la \family sans máquina de gestión de red \family default muestrea (o consulta) las mediciones síncronas (tasa de bits y capacidad de enlaces) de las \family sans máquinas de medición de enlaces a nivel de red \family default de un cierto canal. \newline Valor por defecto: 10 s. \newline Constante asociada a canal. \newline Definido en el apartado \begin_inset LatexCommand \ref{sec:Treq} \end_inset , página \begin_inset LatexCommand \pageref{sec:Treq} \end_inset . \layout Description Tasin Tiempo (en segundo) máximo de consideración de la actual salida del filtro asíncrono para el cálculo de su siguiente salida. \newline Valor por defecto: 1800 s. \newline Constante asociada a canal. \newline Definido en el apartado \begin_inset LatexCommand \ref{sec:medasin} \end_inset , página \begin_inset LatexCommand \pageref{sec:medasin} \end_inset . \layout Description TPj Período (en segundo) de transmisión del número de paquetes transmitidos en un determinado canal. \newline Valor por defecto: 600 s. \newline Constante asociada a canal. \newline Definido en el apartado \begin_inset LatexCommand \ref{sec:PjO} \end_inset , página \begin_inset LatexCommand \pageref{sec:PjO} \end_inset . \layout Description Npaqtxmin Número mínimo de paquetes transmitidos para lanzar la señalización de medición de probabilidad de error de paquete en el nodo origen de un enlace. \newline Valor por defecto: 50 paquetes. \newline Constante asociada a canal. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:PjO} \end_inset , página \begin_inset LatexCommand \pageref{sec:PjO} \end_inset . \layout Description VmaxPj, \protected_separator VmaxCj, \protected_separator VmaxFj, \protected_separator VmaxHj Valor máximo de la salida de los cuantificadores de los parámetros primarios Pj, Cj, Fj o Hj. \newline Valor por defecto: VmaxPj=1, VmaxCj=Bi, VmaxFj=Bi, VmaxHj=Bi. \newline Constante asociada a canal. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:cuant} \end_inset , página \begin_inset LatexCommand \pageref{sec:cuant} \end_inset . \layout Description NintPj, \protected_separator NintCj, \protected_separator NintFj, \protected_separator NintHj Número de intervalos de cuantificación de los cuantificadores de Pj, Cj, Fj o Hj. \newline Valor por defecto: NintPj=16, NintCj=20, NintFj=21, NintHj=19. \newline Constante asociada a canal. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:cuant} \end_inset , página \begin_inset LatexCommand \pageref{sec:cuant} \end_inset . \layout Description TFj Período (en segundos) de medición de Fj . \newline Valor por defecto: 10s. \newline Constante asociada a canal. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:medFjcon} \end_inset , página \begin_inset LatexCommand \pageref{sec:medFjcon} \end_inset , y apartado \begin_inset LatexCommand \ref{sec:MedFjsin} \end_inset página \begin_inset LatexCommand \pageref{sec:MedFjsin} \end_inset . \layout Description TFjwin Ventana de medición de Fj \newline Valor por defecto: 120s. \newline Constante asociada a canal. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:medFjcon} \end_inset , página \begin_inset LatexCommand \pageref{sec:medFjcon} \end_inset , y apartado \begin_inset LatexCommand \ref{sec:MedFjsin} \end_inset página \begin_inset LatexCommand \pageref{sec:MedFjsin} \end_inset . \layout Description Nrafmin Longitud mínima de ráfaga. \newline Valor por defecto: 0 \newline Constante asociada a canal. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:Nrafmin} \end_inset , página \begin_inset LatexCommand \pageref{sec:Nrafmin} \end_inset . \layout Description K Tamaño (en bits) de bloque de leaky bucket para acceso a la red. \newline Valor por defecto: 500 bits. \newline Constante de ámbito global al nodo. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:leakbuc} \end_inset , página \begin_inset LatexCommand \pageref{sec:leakbuc} \end_inset . \layout Description \pagebreak_top A Probabilidad mínima de no pérdida de señalización en un bucle. \newline Valor por defecto: 0.9 \newline Constante de ámbito global al nodo. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:multienv} \end_inset , página \begin_inset LatexCommand \pageref{sec:multienv} \end_inset . \layout Description T1INIT Valor inicial (en segundos) del temporizador de retransmisión por back pressure directo. \newline Valor por defecto: 50s. \newline Constante de ámbito global al nodo. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:t1t2} \end_inset , página \begin_inset LatexCommand \pageref{sec:t1t2} \end_inset . \layout Description T2INIT Valor inicial (en segundos) del temporizador de retransmisión por back pressure indirecto \newline Valor por defecto: 120s. \newline Constante de ámbito global al nodo. \newline Definido en apartado \begin_inset LatexCommand \ref{sec:t1t2} \end_inset , página \begin_inset LatexCommand \pageref{sec:t1t2} \end_inset . \layout Description Ncolatx1 Umbral (en bits) de descongestión de enlaces con conexión hdlc, asociado a cada canal. \newline Valor por defecto: 300 bits. \newline Constante asociada a canal. \newline Definido en el apartado \begin_inset LatexCommand \ref{sec:conghdlc} \end_inset , página \begin_inset LatexCommand \pageref{sec:conghdlc} \end_inset . \layout Description Ncolatx2 Umbral (en bits) de congestión de enlaces con conexión hdlc. \newline Valor por defecto: 5000 bits. \newline Constante asociada a canal. \newline Definido en el apartado \begin_inset LatexCommand \ref{sec:conghdlc} \end_inset , página \begin_inset LatexCommand \pageref{sec:conghdlc} \end_inset . \layout Description OC1 Umbral de descongestión de enlaces sin conexión hdlc \newline Valor por defecto: 0.7 \newline Constante asociada a canal. \newline Definido en el apartado \begin_inset LatexCommand \ref{sec:congsinhdlc} \end_inset , página \begin_inset LatexCommand \pageref{sec:congsinhdlc} \end_inset . \layout Description OC2 Umbral de congestión de enlaces sin conexión hdlc. \newline Valor por defecto: 0.9 \newline Constante asociada a canal. \newline Definido en el apartado \begin_inset LatexCommand \ref{sec:congsinhdlc} \end_inset , página \begin_inset LatexCommand \pageref{sec:congsinhdlc} \end_inset . \layout Chapter Primitivas \layout Standard \align left A continuación se presenta una recopilación de las primitivas utilizadas en este documento. \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable multicol5 48 5 0 1 -1 -1 -1 -1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 2 1 0 "35mm" "" 2 1 0 "35mm" "" 2 1 0 "35mm" "" 2 1 0 "70mm" "" 2 1 1 "20mm" "" 0 2 1 0 0 0 0 "" "" 0 2 1 1 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 1 2 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 1 2 0 0 1 0 0 "" "" 1 2 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 1 2 0 0 0 0 0 "" "" 1 8 0 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 0 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 1 8 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 1 2 0 0 0 0 0 "" "" 1 8 0 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 1 2 0 0 0 0 0 "" "" 1 8 0 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 1 2 0 0 0 0 0 "" "" 1 8 0 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 0 0 1 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 0 0 0 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 1 8 0 0 1 0 0 "" "" 0 2 0 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 1 8 0 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 1 8 0 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 2 0 0 0 0 0 "" "" 1 8 0 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" \series bold Origen \newline Destino \newline Primitiva \newline Observación \newline Apartado \series default \newline \family sans \size scriptsize Máquina de gestión de red \newline Máquina de medición \newline MEA-SENT Request \newline Petición del número de \newline \begin_inset LatexCommand \ref{sec:PjO} \end_inset \newline \newline de enlace a nivel de \newline (dirección AX.25) \newline paquetes transmitidos \newline Medición de \newline \newline enlace \newline \newline por nuestro nodo \newline Pj en nodo \newline \newline \newline \newline \newline origen \newline Máquina de medición de \newline Máquina de gestión \newline MEA-SENT Confirm \newline Respuesta a la \newline \begin_inset LatexCommand \ref{sec:MEAespe} \end_inset \newline enlace a nivel de enlace \newline de red \newline (numero de paquetes \newline petición anterior \newline Especificación \newline \newline \newline transmitidos) \newline \newline \newline Máquina de gestión de \newline Máquina de medición \newline MEA-HEARD Request \newline Petición del \newline \begin_inset LatexCommand \ref{sec:PjD} \end_inset \newline red \newline de enlace a nivel de \newline (dirección AX.25) \newline número de paquetes \newline Medición de \newline \newline enlace \newline \newline recibidos por nuestro \newline Pj en nodo \newline \newline \newline \newline nodo provenientes de \newline destino \newline \newline \newline \newline un determinado \newline \newline \newline \newline \newline indicativo \newline \newline Máquina de medición \newline Máquina de gestión \newline MEA-HEARD Confirm \newline Respuesta a la \newline \begin_inset LatexCommand \ref{sec:MEAespe} \end_inset \newline enlace a nivel de enlace \newline de red \newline (número de paquetes \newline petición anterior \newline Especificación \newline \newline \newline oídos, tiempo \newline \newline \newline \newline \newline transcurrido). \newline \newline \newline Máquina de medición de \newline Máquina de medición \newline MEA-OCCUPATION \newline Petición del factor de \newline \begin_inset LatexCommand \ref{sec:conginf} \end_inset \newline enlace a nivel de red, \newline de enlace a nivel de \newline Request \newline ocupación del canal \newline Detección de \newline máquina de gestión de \newline enlace \newline \newline \newline congestión, \newline red \newline \newline \newline \newline \begin_inset LatexCommand \ref{sec:medCjsin} \end_inset \newline \newline \newline \newline \newline medición del \newline \newline \newline \newline \newline ancho de banda \newline \newline \newline \newline \newline disponible \newline Máquina de medición \newline Máquina de medición \newline MEA-OCCUPATION \newline Respuesta a la \newline \begin_inset LatexCommand \ref{sec:MEAespe} \end_inset \newline de enlace a nivel de \newline de enlace a nivel de \newline Confirm (Ocupación) \newline petición anterior \newline Especificación \newline enlace \newline red, máquina de \newline \newline \newline \newline \newline gestión de red \newline \newline \newline \newline Decodificador de \newline Máquina de gestión \newline NM-Perror Indication \newline Indicación de que \newline \begin_inset LatexCommand \ref{sec:PjD} \end_inset \newline señalización \newline de red \newline (Canal, Dirección AX.25, \newline el nodo del canal \newline Medición de \newline \newline \newline Npaqtx) \newline y dirección AX.25 \newline Pj en nodo \newline \newline \newline \newline indicados anuncia \newline destino \newline \newline \newline \newline haber transmitido \newline \newline \newline \newline \newline Npaqtx paquetes. \newline \newline \newline \newline \newline Utilizado para la \newline \newline \newline \newline \newline medición de la \newline \newline \newline \newline \newline probabilidad de no \newline \newline \newline \newline \newline error de paquete. \newline \newline Encaminador, \newline Máquina de medición \newline NMEA-DATA \newline Petición de envío \newline \begin_inset LatexCommand \ref{sec:medFjcon} \end_inset , \newline Máquina de gestión \newline de enlace a nivel de \newline Request \newline de datos a través \newline \begin_inset LatexCommand \ref{sec:MedCjCon} \end_inset ; \newline de red \newline red \newline \newline de un enlace con \newline Medición de Fj y \newline \newline \newline \newline conexión hdlc \newline Cj en enlaces con \newline \newline \newline \newline \newline conexión hdlc \newline Encaminador, \newline Máquina de medición \newline NMEA-UNIT-DATA \newline Petición de envío \newline \newline Máquina de gestión \newline de enlace a nivel de \newline Request \newline de datos a través \newline \newline de red \newline red \newline \newline de un enlace sin \newline \newline \newline \newline \newline conexión hdlc \newline \layout Standard \added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable multicol5 27 5 0 1 -1 -1 -1 -1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 2 1 0 "35mm" "" 2 1 0 "35mm" "" 2 1 0 "35mm" "" 2 1 0 "70mm" "" 2 1 1 "20mm" "" 0 2 1 0 0 0 0 "" "" 0 2 1 1 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 2 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 1 2 0 1 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 1 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 1 2 0 1 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 1 2 0 1 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 1 2 0 1 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 1 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 2 1 1 0 0 0 "" "" 0 2 1 1 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 0 "" "" 1 2 0 1 0 0 0 "" "" 1 2 0 1 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 0 "" "" 0 8 1 0 1 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 1 0 1 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 1 "" "" 0 8 1 1 0 0 0 "" "" 0 8 1 1 0 0 0 "" "" \series bold Origen \newline Destino \newline Primitiva \newline Observación \newline Apartado \series default \newline \family sans \size scriptsize Máquina de gestión de \newline Máquina de medición \newline NMEA-CJ Request \newline Petición del flujo de \newline \begin_inset LatexCommand \ref{sec:medCj} \end_inset \newline red \newline de enlace a nivel de \newline \newline bits transportado por \newline Medición de Cj \newline \newline red \newline \newline un enlace \emph on con \emph default \newline \newline \newline \newline \newline \emph on conexión hdlc \emph default \newline \newline Máquina de medición \newline Máquina de gestión de \newline NMEA-CJ Confirm(Cj) \newline Respuesta a la \newline \newline de enlace a nivel de \newline red \newline \newline petición anterior \newline \newline red \newline \newline \newline \newline \newline Máquina de gestión de \newline Máquina de medición \newline NMEA-FJ Request \newline Petición del flujo de \newline \begin_inset LatexCommand \ref{sec:medFj} \end_inset \newline red \newline de enlace a nivel de \newline \newline bits transportado por \newline Medición de Fj \newline \newline red \newline \newline un enlace \newline \newline Máquina de medición \newline Máquina de gestión de \newline NMEA-FJ Confirm(Fj) \newline Respuesta a la \newline \newline de enlace a nivel de \newline red \newline \newline petición anterior \newline \newline red \newline \newline \newline \newline \newline Máquina de medición \newline Máquina de \newline VC-CONGEST \newline Aviso de congestión \newline \begin_inset LatexCommand \ref{sec:conginf} \end_inset \newline de enlace a nivel de \newline circuito virtual \newline Indication \newline \newline \newline red \newline \newline \newline \newline \newline Máquina de medición \newline Máquina de \newline VC-ENDCONGEST \newline Aviso de fin de \newline \begin_inset LatexCommand \ref{sec:conginf} \end_inset \newline de enlace a nivel de \newline circuito virtual \newline Indication \newline congestión \newline \newline red \newline \newline \newline \newline \newline Máquina de medición \newline Segmentador \newline SEG-DATA Request, \newline Ver apartado \begin_inset LatexCommand \ref{sec:AmpliSeg} \end_inset \newline \begin_inset LatexCommand \ref{sec:AmpliSeg} \end_inset \newline de enlace a nivel de \newline \newline SEG-UNIT-DATA \newline \newline Ampliación del segmentador AX.25 \newline red \newline \newline Request \newline \newline \newline Segmentador \newline Máquina de medición \newline SEG-DATA Indication, \newline \newline \newline \newline de enlace a nivel de \newline SEG-UNIT-DATA \newline \newline \newline \newline red \newline Indication, \newline \newline \newline \newline \newline SEG-DATA Confirm \newline \newline \layout Chapter Medición de la capacidad de un canal a partir de la longitud media de la cola \begin_inset LatexCommand \label{apen:medCj} \end_inset \layout Standard Mediante la teoría de colas y modelando el sistema como M/M/1 o M/D/1, es posible obtener la capacidad teórica de un canal, conocidos dos valores: \layout Standard El número de bits \begin_inset Formula \( F_{j} \) \end_inset cursados por segundo. \layout Standard La longitud media de la cola ( \begin_inset Formula \( \overline{Q} \) \end_inset ), o en número medio de usuario en el sistema ( \begin_inset Formula \( \overline{N} \) \end_inset ). En el caso de \begin_inset Formula \( \overline{N} \) \end_inset , el cálculo es un poco más complejo, pero generalmente es más fácil conocer \begin_inset Formula \( \overline{N} \) \end_inset que \begin_inset Formula \( \overline{Q} \) \end_inset , porque \begin_inset Formula \( \overline{N} \) \end_inset solo requiere un contador que se incremente al entrar un usuario en el sistema y se decremente al salir del sistema; el cálculo de \begin_inset Formula \( \overline{Q} \) \end_inset requiere este mismo decremento pero a la entrada del servidor, punto que, en ciertos casos, es más difícil de definir con exactitud. \layout Standard El análisis matemático resumido es el siguiente: \layout Standard \begin_inset Formula \[ \left. \begin{array}{c} \rho =\frac{F_{j}}{C_{j}}\\ (1)\, \, \, \, \, \overline{N},F_{j}\Rightarrow \rho \end{array}\right\} \Rightarrow C_{j}\] \end_inset \layout Standard El paso (1) se realiza gracias a las fórmulas de Pollaceek-Khintchine: \layout Standard \begin_inset Formula \begin{eqnarray*} \overline{Q}=\frac{\rho ^{2}(1+C^{2}_{s})}{2(1-\rho )} & & \\ C^{2}_{s}=\frac{\sigma _{s}^{2}}{E^{2}[s]} & & \\ \overline{N}=\overline{Q}+\rho & & \end{eqnarray*} \end_inset \layout Standard En el caso de una distribución de servicio determinista (M/D/1): \layout Standard \begin_inset Formula \[ E[s]=\frac{1}{\mu };\, E[s^{2}]=\frac{1}{\mu ^{2}}\Rightarrow C_{s}^{2}=0\Rightarrow \overline{Q}=\frac{\rho ^{2}}{2(1-\rho )}\] \end_inset Por lo tanto: \layout Standard \begin_inset Formula \begin{eqnarray*} \overline{N}=\rho +\frac{\rho ^{2}}{2(1-\rho )}\Leftrightarrow 2(\overline{N}-\rho )(1-\rho )=\rho ^{2} & & \\ 2(\overline{N}-\rho \overline{N}-\rho +\rho ^{2})=\rho ^{2}\Leftrightarrow -\rho ^{2}+2\rho (\overline{N}+1)-2\overline{N}=0 & & \\ \Leftrightarrow \rho ^{2}-2(\overline{N}+1)\rho +2\overline{N}=0 & & \\ & \end{eqnarray*} \end_inset \layout Standard Se trata de una ecuación de segundo grado: \layout Standard \begin_inset Formula \begin{eqnarray*} \rho _{1,2} & = & \frac{2(\overline{N}+1)\pm \sqrt{4(\overline{N}+1)^{2}-4\times 2\overline{N}}}{2}=(\overline{N}+1)\pm \sqrt{(\overline{N}+1)^{2}-2\overline{N}}\\ \rho _{1,2} & = & \overline{N}+1\pm \sqrt{\overline{N}^{2}+1} \end{eqnarray*} \end_inset \layout Standard Pero \begin_inset Formula \( \rho _{2} \) \end_inset no es válido ya que: \layout Standard \begin_inset Formula \[ \rho _{2}=\overline{N}+1+\sqrt{\overline{N}^{2}+1\Rightarrow }\rho _{2}>1\] \end_inset \layout Standard Por lo tanto: \layout Standard \begin_inset Formula \[ \rho =\overline{N}+1-\sqrt{\overline{N}^{2}+1}\] \end_inset \layout Standard Y obtenemos la capacidad en función de \begin_inset Formula \( F_{j} \) \end_inset y \begin_inset Formula \( \overline{N} \) \end_inset : \layout Standard \begin_inset Formula \[ C_{j}=\frac{F_{j}}{\overline{N}+1-\sqrt{\overline{N}^{2}+1}}\] \end_inset \layout Chapter Función umbral del retardo incremental total L(r) \begin_inset LatexCommand \label{apen:Lr} \end_inset \layout Standard Partimos de estas 3 ecuaciones: \layout Standard \align left \begin_inset Formula \begin{eqnarray} L(0) & = & \frac{25}{C_{min}}=\frac{A}{B}+D=L_{o}\, \, \, \, \, \, \, \, \, \, \, \, (1)\nonumber \\ L(C_{min)} & = & \epsilon =\frac{A}{B+C_{min}}+D\, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, (2)\nonumber \\ L(\frac{C_{min}}{10}) & = & L_{o}-\frac{L_{o}-\epsilon }{2}=\frac{A}{B+\frac{C_{min}}{10}}+D=K\, \, \, \, \, \, \, (3)\nonumber \end{eqnarray} \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip Despejemos \begin_inset Formula \( A,B,D \) \end_inset : \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( (1)\Rightarrow D=L_{o}-\frac{A}{B} \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( (2)\Rightarrow \epsilon =\frac{A}{B+C_{min}}+L_{o}-\frac{A}{B}\Leftrightarrow \epsilon -L_{o}=\frac{A\times B-A(B+C_{min})}{B(B+C_{min})}\Leftrightarrow \epsilon -L_{o}=\frac{-A\times C_{min}}{B(B+C_{min)}} \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( \Leftrightarrow \frac{-B(B+C_{min})}{C_{min}}(\epsilon -L_{o})=A\, \, \, \, \, \, (4) \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( (3)\Rightarrow K=\frac{\frac{-B(B+C_{min})}{C_{min}}(\epsilon -L_{o})}{B+\frac{C_{min}}{10}}+L_{o}+\frac{B+C_{min}}{C_{min}}(\epsilon -L_{o}) \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip Sea \begin_inset Formula \( H=\frac{B}{C_{min}} \) \end_inset : \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( K=\frac{-(H+1)(\epsilon -L_{o})}{1+\frac{1}{10H}}+L_{o}+(H+1)(\epsilon -L_{o})=(H+1)(\epsilon -L_{o})(-\frac{1}{1+\frac{1}{10H}}+1)+L_{o} \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip Como \begin_inset Formula \( -\frac{1}{1+\frac{1}{10H}}+1=-\frac{10H}{10H+1}+\frac{10H+1}{10H+1}=\frac{1}{10H+1} \) \end_inset , tenemos: \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( K-L_{o}=\frac{H+1}{10H+1}(\epsilon -L_{o})\Rightarrow (10H+1)(K-L_{o})=(H+1)(\epsilon -L_{o}) \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( \Leftrightarrow H\times 10(K-L_{o})-H(\epsilon -L_{o})=\epsilon -L_{o}-(K-L_{o}) \) \end_inset \layout Standard \begin_inset Formula \[ \Leftrightarrow H=\frac{(\epsilon -L_{o})-(K-L_{o})}{10(K-L_{o})-(\epsilon -L_{o})}\] \end_inset \layout Standard Por lo tanto: \layout Standard \begin_inset Formula \[ B=H\times C_{min}=-C_{min}(\frac{V-W}{V-10W})\] \end_inset \layout Standard Siendo: \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( V=\epsilon -L_{o} \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( \left. \begin{array}{c} W=K-L_{o}\\ (3)\Rightarrow K=L_{o}-\frac{L_{o-\epsilon }}{2}=\frac{L_{o}+\epsilon }{2} \end{array}\right\} \Rightarrow W=\frac{L_{o}+\epsilon }{2}-L_{o}=\frac{\epsilon -L_{o}}{2}=\frac{V}{2}=W \) \end_inset \layout Standard Obtenemos: \layout Standard \added_space_top defskip \added_space_bottom bigskip \begin_inset Formula \( B=-C_{min}(\frac{V-\frac{V}{2}}{V-5V})\Leftrightarrow \) \end_inset \begin_inset Formula \[ B=\frac{C_{min}}{8}\, \, \, \, \, \, (5)\] \end_inset \layout Standard \added_space_bottom defskip \begin_inset Formula \( \left. \begin{array}{c} (4)\\ (5) \end{array}\right\} \Rightarrow A=\frac{-B(B+C_{min})}{C_{min}}(\epsilon -L_{o})=-\frac{C_{min}}{8\times C_{min}}(\frac{C_{min}}{8}+C_{min})(\epsilon -L_{o}) \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( \Leftrightarrow A=-\frac{1}{8}(\frac{9C_{min}}{8})(\epsilon -L_{o})=\frac{9C_{min}}{64}(L_{o}-\epsilon )\Leftrightarrow \) \end_inset \layout Standard \added_space_top defskip \added_space_bottom bigskip \begin_inset Formula \[ A=\frac{9C_{min}}{64}(L_{o}-\epsilon )\, \, \, \, \, (6)\] \end_inset \layout Standard \added_space_top defskip \added_space_bottom defskip \begin_inset Formula \( \left. \begin{array}{c} (1)\\ (5)\\ (6) \end{array}\right\} \Leftrightarrow D=L_{o}-\frac{A}{B}=L_{o}-\frac{9C_{min}}{64}(L_{o}-\epsilon )\times \frac{8}{C_{min}}=L_{o}-\frac{9}{8}(L_{o}-\epsilon )\Leftrightarrow \) \end_inset \layout Standard \begin_inset Formula \( \Leftrightarrow D=-\frac{L_{o}}{8}+\frac{9}{8}\epsilon \Leftrightarrow \) \end_inset \layout Standard \begin_inset Formula \[ D=\frac{9\epsilon -L_{o}}{8}\, \, \, \, \, (7)\] \end_inset \layout Chapter Control de flujo de acceso a la red: implementación del algoritmo de resolución numérica de \begin_inset Formula \( \mathbf{r}_{\mathbf{max}} \) \end_inset . \begin_inset LatexCommand \label{apen:rmax} \end_inset \layout Standard \added_space_bottom bigskip \line_top \line_bottom El programa expuesto a continuación es el el código fuente en lenguaje C de la implementación del algoritmo de resolución numérica de \begin_inset Formula \( r_{max} \) \end_inset . Puede ser compilado en compiladores compatibles ANSI C. \layout Standard \added_space_top bigskip #include \layout Standard \protected_separator \layout Standard /* Simulación de redes con el control de flujo de acceso a la red */ \layout Standard /* Jnet */ \layout Standard \protected_separator \layout Standard double Dt (int enlaces, double C[], double F[], double deltaf) \layout Standard { \layout Standard double valor=0; \layout Standard int contador=0; \layout Standard for (;contador