Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica

Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica IE – 0502 Proyecto Eléctrico Desarrollo de un sistema para la supervisión de fallas de centrales telefónicas PBX Meridian® a través de Internet. Por: Anthony Cascante Rodríguez Edgar Guadamuz Arias Ciudad Universitaria Rodrigo Facio JULIO del 2005 i Desarrollo de un sistema para la supervisión de fallas de centrales telefónicas PBX Meridian® a través de Internet. Por: Anthony Cascante Rodríguez Edgar Guadamuz Arias Sometido a la Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de Costa Rica como requisito parcial para optar por el grado de: BACHILLER EN INGENIERÍA ELÉCTRICA Aprobado por el Tribunal: _________________________________ Ing. Johny Cascante Ramírez Profesor Guía _________________________________ Ing. Max Ruiz Arrieta Profesor lector _________________________________ Ing. Francisco Rojas Fonseca Profesor lector i ÍNDICE GENERAL ÍNDICE DE FIGURAS........................................................................................................................................IV ÍNDICE DE TABLAS ......................................................................................................................................... V NOMENCLATURA ..............................................................................................................................................VI RESUMEN...........................................................................................................................................................VIII CAPÍTULO 1: INTRODUCCIÓN ....................................................................................................................... 1 1.1 JUSTIFICACIÓN ................................................................................................................................................. 1 1.2 OBJETIVOS....................................................................................................................................................... 6 i. Objetivo General .......................................................................................................................................... 6 ii. Objetivos Específicos.................................................................................................................................. 6 1.3 METODOLOGÍA ............................................................................................................................................... 7 CAPÍTULO 2: MARCO TEÓRICO .................................................................................................................... 9 2.1 LA CENTRAL TELEFÓNICA MERIDIAN ............................................................................................................. 9 2.1.1 Funcionamiento y arquitectura ............................................................................................................. 9 2.1.2 Formas de comunicación con la Meridian ......................................................................................... 15 2.1.3 Alarmas y mensajes del sistema .......................................................................................................... 18 2.2 TRANSMISIÓN DE DATOS EN FORMA SERIAL ................................................................................................ 23 2.3 TRANSMISIÓN DE DATOS POR INTERNET ...................................................................................................... 26 2.3.1 Definición red ....................................................................................................................................... 26 2.3.2 Tecnología Ethernet ............................................................................................................................. 27 2.3.3 Definición TCP / IP.............................................................................................................................. 28 2.3.4 Modelo de referencia iso de 7 capas................................................................................................... 29 2.3.5 Dispositivos para el interfuncionamiento de INTERNET.................................................................. 31 2.3.6 El X.25 y su relación con el modelo ISO ............................................................................................ 33 2.3.7 El modelo de estratificación por capas de TCP/IP de Internet......................................................... 34 2.3.8 Estratificación por capas en un ambiente de Internet TCP/IP ......................................................... 37 2.3.9 Estratificación por capas en presencia de una subestructura de red ............................................... 38 2.3.10 Como funciona TCP/IP...................................................................................................................... 40 2.3.11 Administración TCP/IP...................................................................................................................... 41 2.3.12 ¿Qué es internet?................................................................................................................................ 42 2.3.13 Servicios de internet a nivel de aplicación:...................................................................................... 42 2.3.14 Servicios de internet a nivel de red ................................................................................................... 45 2.3.15 Protocolos para la gestión de redes.................................................................................................. 47 2.4 LA INTERFAZ SOCKET ................................................................................................................................... 47 CAPÍTULO 3: DISEÑO DEL SISTEMA DE TRANSMISIÓN DE DATOS.............................................. 54 3.1 REQUISITOS DE DISEÑO ................................................................................................................................. 55 3.2 ESCOGENCIA DE LA LÍNEA A SEGUIR ............................................................................................................ 57 3.4 CONFIGURACIÓN DE LA CENTRAL MERIDIAN 1. .......................................................................................... 58 3.5 DISEÑO DEL PROGRAMA PARA TRANSMITIR DATOS ..................................................................................... 59 3.5.1 ESPECIFICACIONES DEL COMPORTAMIENTO DEL PROGRAMA .................................................................. 60 ii 3.5.2 DISEÑO DEL MÓDULO DE CAPTURA DE MENSAJES DE LA MERIDIAN 1. ................................................... 63 3.5.3 DISEÑO DEL MÓDULO DE IDENTIFICACIÓN Y REGISTRO DE LOS MENSAJES. ............................................ 65 3.5.4 DISEÑO DEL PROCESO SOCKET CLIENTE.................................................................................................... 66 3.5.5 DISEÑO DEL MÓDULO SERVIDOR ............................................................................................................... 67 3.5.6 DISEÑO DEL MÓDULO PARA ESCRIBIR EN LA BASE DE DATOS .................................................................. 67 CAPITULO 4: DISEÑO DE LA APLICACIÓN WEB................................................................................... 69 4.1 MÓDULO INDEX.HTML .................................................................................................................................. 70 4.2 MÓDULO LOGIN.CGI ...................................................................................................................................... 71 4.3 MÓDULO CABEZA.CGI ................................................................................................................................... 72 4.4 MÓDULO LEERLOG.CGI ................................................................................................................................. 73 CAPÍTULO 5: GUÍA PARA LA INSTALACIÓN Y EL USO ...................................................................... 75 5.1 REQUISITOS DE HARDWARE Y SOFTWARE ................................................................................................... 75 5.2 INSTALACIÓN DEL SISTEMA .......................................................................................................................... 77 5.3 USO DE LA APLICACIÓN WEB ........................................................................................................................ 79 CAPÍTULO 6: CONCLUSIONES Y RECOMENDACIONES ..................................................................... 83 BIBLIOGRAFÍA ................................................................................................................................................... 86 APÉNDICES........................................................................................................................................................... 87 ANEXOS: NEMÓNICOS DE LOS MENSAJES DE ERROR. ..................................................................... 88 iii ÍNDICE DE FIGURAS Figura 2.1 Central PBX en el contexto de la red telefónica pública. ................................... 10 Figura 2.2 Arquitectura básica de la Meridian. ................................................................. 13 Figura 2.3 Acceso local y acceso remoto.......................................................................... 16 Figura 2.4: Conector DB9 típico....................................................................................... 23 Figura 2.5 Buffers presentes en la transmisión serial. ....................................................... 25 Figura 2.6: Representación de una trama de Ethernet........................................................ 28 Figura 2.7 Modelo por capas ISO. .................................................................................... 30 Figura 2.8: Dispositivos para el funcionamiento de Internet.............................................. 32 Figura 2.9 Capas conceptuales del TCP/IP ....................................................................... 35 Figura 2.10 Estratificación por capas en una Internet con TCP ......................................... 37 Figura 2.11 Proceso de comunicación entre sockets.......................................................... 53 Figura 3.1 Diferentes esquemas de conexión .................................................................... 54 Figura 3.2: Diagrama funcional básico del sistema de transmisión.................................... 62 Figura 4.1: Esquema de funcionamiento de la aplicación Web.......................................... 69 Figura 4.2: Captura de pantalla de index.html................................................................... 70 Figura 4.3: Diagrama ASM de login.cgi ........................................................................... 71 Figura 4.4: Captura de pantalla de cabeza.cgi ................................................................... 72 Figura 4.5: Diagrama ASM de leerlog.cgi ........................................................................ 74 Figura 5.1: Página de inicio.............................................................................................. 80 Figura 5.2: Ejemplo de ordenamiento por defecto............................................................. 80 Figura 5.3: Opciones de búsqueda o filtrado..................................................................... 81 Figura 5.4: Característica a filtrar ..................................................................................... 81 Figura 5.5: Opciones de ordenamiento ............................................................................. 82 Figura 5.6: Ejemplo de una búsqueda ............................................................................... 82 Figura 5.6: Resultado de la búsqueda de ejemplo ............................................................. 82 iv ÍNDICE DE TABLAS Tabla 2.1 Módulos principales de una central digital......................................................... 12 Tabla2.2: Designación de pines para un conector DB9 RS-232......................................... 24 Tabla 4.1: Parámetros y sus posibles valores en leerlog.cgi .............................................. 73 v NOMENCLATURA CGI Common Gateway Interface. DRAM Dinamic Random Access Memory. DTMF Dual Tone Multifrequency. DTR Digitone Receiver. DCE Data Comunication Equipment. DTE Data Terminal Equipment. HTTP Hiper Text Transfer Protocol. HTML Hiper Text Mark-up Languaje. IP Internet Protocol. LAPW Limited Access Password. MSC Mini System Controller. PBX Private Branch Exchange. vi PPP Point to Point Protocol. ROM Read Only Memory. SDI Serial Data Interface. SSC Small System Controller. TCP Transfer Control Protocol. TDS Tone and Digit Switch. TTY Tele Typer Terminal. UART Universal Asyncronous Receiver/Transmiter. vii RESUMEN Este proyecto consistió en el diseño de un sistema para la transmisión y presentación de las fallas ocurridas en centrales telefónicas a través de Internet. El sistema está formado por tres partes principales, encargadas de leer datos del puerto serie, transmitir datos por Internet y presentar esos datos en una página Web, respectivamente. Para la transmisión de datos por Internet se utilizaron sockets. Los datos recibidos en el servidor se almacenaron en archivos de texto planos. Para la presentación de las bases de datos en una página Web se utilizó un conjunto de CGI que brindan herramientas para buscar, ordenar y restringir la información. viii CAPÍTULO 1: Introducción 1.1 Justificación Las telecomunicaciones han sido una parte fundamental en la vida del ser humano. La reducción de los tiempos de transmisión de datos, así como la capacidad de los medios para transportar cada vez más información han sido un reto esencial para la tecnología. El desarrollo de las civilizaciones, con el consecuente aumento en las actividades comerciales, científicas, culturales y académicas acrecentó la necesidad de buscar medios que permitieran establecer comunicación rápida entre grandes distancias. Con el descubrimiento de la electricidad en el siglo XVIII se comenzó a buscar formas para utilizar señales eléctricas en la transmisión de mensajes, pero fue hasta 1837 que Charles Wheatstone y William F. Cooke patentaron el telégrafo eléctrico en Gran Bretaña, al mismo tiempo que Samuel Morse lo hacía en Estados Unidos. Morse también desarrolló un código telegráfico, basado en puntos y rayas, que lleva su nombre. La telegrafía se desarrolló con el pasar de los años. En 1874, Thomas Edison desarrolló la telefonía cuádruple, la cual permitía enviar y recibir simultáneamente dos mensajes. Como resultados importantes de estas técnicas están el teletipo, el télex y el facsímil. El siguiente reto fue intentar transmitir voz por medio de señales eléctricas. Hubo algunos intentos que permitieron transmitir vibraciones sonoras, pero el primer teléfono eléctrico propiamente dicho fue inventado por Alexander Graham Bell, en 1876. El teléfono revolucionó nuestro concepto de comunicación, permitiendo establecer conversaciones con personas que se encuentran a mucha distancia, en un tiempo bastante corto. En un principio, el funcionamiento del sistema telefónico suponía la existencia de una operadora humana encargada de realizar las conexiones deseadas entre abonados. Así, para realizar una llamada, primero debía comunicarse con la operadora, decirle con quién se 1 deseaba hablar y entonces la operadora transfería la llamada manualmente. Posteriormente aparecieron las primeras centrales telefónicas automáticas basadas en el sistema de pulsos. Este sistema consistía en un disco marcador, el cual poseía un sistema mecánico, que abría y cerraba un conmutador eléctrico para marcar el número deseado, de acuerdo con el número de giros que daba el disco. Esto producía una serie de pulsos, de amplitud igual al voltaje suministrado por la central, generalmente 50V. Las centrales entonces tenía equipos contadores de pulsos que determinaban el número que se deseaba marcar. Estas centrales se conocían como centrales automáticas de conmutación y los teléfonos de esta tecnología son conocidos como del tipo 500. Sus principales inconvenientes eran el elevado costo de mantenimiento y la lenta marcación. Ya para mediados del siglo XX se hizo posible la creación de otro sistema telefónico, basado en tonos. Para realizar la marcación se cuenta con conjunto de botones, uno por cada número y símbolo. Los botones están dispuestos en un arreglo de filas y columnas, donde cada fila corresponde a una frecuencia baja y cada columna está asociada a una frecuencia alta. De esta manera al oprimir un botón se transmite un único par frecuencia bajafrecuencia alta. Las facilidades de amplificación del transistor permitieron que los tonos transmitidos fueran de baja potencia en vez de los pulsos de marcado de gran potencia. Esta transmisión se conoce como sistema de tonos y los aparatos telefónicos fueron denominados del tipo 2500. Las centrales se diseñaron entonces para recibir tonos, sin embargo, dado que la mayoría de las centrales en los sistemas telefónicos eran de pulsos y aún existían muchos teléfonos tipo 500, las centrales se construyeron para que también continuaran funcionando con el sistema de pulsos. Además, dado que aún existían muchas líneas que no admitían tonos, los teléfonos 2500 cuentan con un interruptor que permite variar entre el sistema de marcación por pulsos y por tonos. 2 Por último aparecieron las centrales telefónicas digitales, las cuales están sustituyendo a sus similares analógicas. Estas centrales están controladas por una computadora, lo cual ha mejorado notablemente los tiempos de procesamiento de las llamadas lo que permite manejar simultáneamente muchas llamadas, por multiplexación en el tiempo (TDM). Así mismo, la red telefónica permitió el transporte simultáneo de voz y datos, facilitando la comunicación entre computadoras y otras terminales alejadas entre sí. La señal analógica de la voz es digitalizada en la central, transmitida por medios de alta capacidad y transformada de nuevo a analógica cuando llega a la central de destino. Todo esto se realiza por medio de software almacenado una computadora. La conexión entre la central y el abonado sigue siendo analógica, sobre cables de cobre. Sin embargo, en algunas ciudades grandes ya se utiliza fibra óptica. Junto a las centrales digitales se ha introducido una serie de servicios adicionales a lo que son llamadas, como es el caso de identificación de llamadas, llamada en espera, correos de voz, conferencia (llamadas multiusuario), transferencia de llamadas, etc. Además, la confiabilidad del sistema se ha incrementado, al incluir duplicidad en los equipos. Sin embargo no han desaparecido las fallas que pueden ocurrir en una central, ya sea por errores internos en el software o el hardware de la máquina, errores externos, provenientes de la empresa que suministre energía eléctrica o la red telefónica pública o incluso errores debido a una mala configuración de la central u operaciones incorrectas se intentaron hacer. Las centrales digitales, como cualquier computadora tienen puertos de salida y entrada de datos por los cuales se introducen instrucciones para programar la central y salen los mensajes de los resultados de las operaciones realizadas, el nombre de un dato solicitado (prompt) o mensajes de alerta cuando han ocurrido fallas. Para poder acceder a estos mensajes generalmente se conecta una computadora a uno de estos puertos y mediante un programa como Hiperterminal, es posible comunicarse con la central, pero evidentemente se debe estar muy cerca de la misma. 3 Existe otra forma que permite estar a una distancia mayor. Consiste en poner un MODEM a la salida de la central y otro MODEM en la computadora terminal. Esta forma puede ser útil, sin embargo, el acceso a la central por ese puerto puede lograrse únicamente con la computadora conectada al otro extremo. Además es posible conectar la central a la red local de la empresa propietaria. De esta forma la central se convierte en un elemento más de la red y podría ser accedido desde cualquier computadora de la misma. Más aún, si la red tiene salida a Internet, el acceso puede realizarse en forma remota, por medio de los protocolos TCP/IP. Internet es una red de redes global, lo cual quiere decir que potencialmente se podría tener acceso a una central conectada a la red desde cualquier lugar del planeta. Internet funciona bajo el modelo cliente-red-servidor, donde los datos viajan en paquetes a través de la red, desde el cliente hasta el servidor y viceversa. La “red” contiene miles de enrutadores que se encargan de direccionar los paquetes hacia su destino, gracias a la dirección IP incluida en la cabeza de cada paquete. El hecho de conectar una central a la red y desarrollar un sistema de supervisión de la misma permitiría a los administradores y técnicos tanto de la empresa propietaria de la central como de la compañía encargada de dar soporte consultar si hay fallas o no sin necesidad de estar cerca de la central. Este trabajo pretende realizar tal conexión a través de una página en Internet, por lo que la comunicación con la central se realizaría a través de un servidor. La central será específicamente una central privada (PBX) de tipo Meridian, que es una marca registrada de la empresa Nortel. La primera central totalmente digital de Nortel se llamó SL-1 y empezó a producirse en 1975. Cuatro años después se introdujo la central DM-100, que soportaba hasta 100 000 líneas. La central Meridian se patentó en 1988 como una continuación de la SL-1 para China y rápidamente se comercializó en todo el mundo. 4 Este proyecto pretende aportar una herramienta tecnológica para el personal técnico, que permita agilizar la detección y solución de fallas en las centrales Meridian. Como resultado se espera reducir el tiempo de solución de las fallas, ya que los técnicos tendrán cierta información sobre el error ocurrido antes de llegar al lugar donde se produjo. Alternativamente, dependiendo de la falla, la solución podría enviarse vía teléfono o correo electrónico, lo cual supone tiempos mucho menores. Además, la realización de este proyecto es el primer paso en un proceso de automatización que se podría iniciar. El sistema podría adaptarse para brindar un servicio similar a otros equipos, supervisar no sólo fallas de las centrales sino también registros de tráfico y otros parámetros de desempeño, así como acceder y modificar la configuración de la máquina. Incluso podría implementarse un sistema de solución automática para algunas de las fallas. El proyecto cuenta con el apoyo de la empresa Telectro, distribuidora en nuestro país de productos Nortel, la cual manifestó su interés en el desarrollo del mismo y facilitó la documentación técnica específica, así como el uso de centrales Meridian para realizar pruebas. Además, Telectro cuenta con un sitio Web donde puede montarse el sistema y observar su comportamiento y aceptación. 5 1.2 Objetivos i.Objetivo General Diseñar un sistema de supervisión que permita detectar las fallas de las centrales telefónicas PBX Meridian a través de Internet. ii. Objetivos Específicos •Conocer el funcionamiento de las centrales telefónicas, profundizando en las centrales PBX Meridian. •Presentar la forma en que se comunica la central Meridian y determinar las variables que se desean supervisar. •Estudiar los principios fundamentales de la transmisión de datos en una red de computadoras e Internet, protocolos TCP/IP, HTTP, fundamentos de los servidores y otros. •Diseñar un sistema de transmisión de datos encargado de enviar los datos de la central al servidor. •Diseñar una aplicación Web para la comunicación servidor-usuario que sea amigable, segura, que funcione en tiempo real y que avise automáticamente la ocurrencia de fallas. 6 1.3 Metodología Para realizar el diseño propuesto se siguió la siguiente metodología: •Recopilación de información bibliográfica acerca de los aspectos generales de las centrales telefónicas. Toda la búsqueda de la información se realiza en artículos publicados en libros, revistas y publicaciones en Internet. •Recopilación de información bibliográfica acerca de los aspectos específicos de las centrales Meridian. Para esto se revisa la información técnica dada por el fabricante, Nortel. •Investigación bibliográfica de los protocolos de transmisión TCP/IP y HTTP, así como los fundamentos de las redes de computadoras, los servidores e Internet. Se utilizan libros especializados, libros de redes en general y sitios de Internet. •Para realizar el diseño del programa agente se redactó primeramente un planteo escrito de las restricciones de diseño y características que debe tener. Posteriormente se dibujaron diagramas de bloques, diagramas ASM y cualquier otro tipo de representación gráfica del algoritmo que se debe implementar. Por último se escogió un lenguaje de programación y se escribió un código fuente. Fue necesario realizar consultas sobre el lenguaje específico de programación para poder redactar el código fuente. Esto se hizo en libros especializados y en sitios de Internet. Finalmente se compiló el programa y se realizaron algunas pruebas y simulaciones. 7 •En el diseño de la aplicación Web se siguió una metodología similar. Primero se redactó un planteo escrito, luego se dibujaron esquemas y por último se escogió un editor de HTML, y se escribió el código de la página. •Redacción de un informe escrito del proyecto, de acuerdo con las especificaciones expuestas en el programa del curso, incluyendo una revisión de los capítulos I y II, entrega y revisión de un avance, un borrador final y una versión final del trabajo. Además se realizó una presentación para la defensa del proyecto. 8 CAPÍTULO 2: Marco Teórico En este capítulo se hace una introducción a los fundamentos teóricos que sustentarán el diseño que se desea realizar. Se tratan diversos temas que deben ser tomados en cuenta, comenzando con aspectos relativos a la central Meridian, su funcionamiento, arquitectura, formas de comunicación y formato de los mensajes de error. En segundo lugar se estudian conceptos relacionados con la transmisión de datos por Internet, como son la arquitectura de la red, servidores, enrutadores y protocolos de transmisión. Se hace énfasis en el protocolo TCP/IP y la interfaz socket. 2.1 La central telefónica Meridian Meridian 1 es el nombre de la familia de centrales telefónicas PBX de Nortel. Existen varios modelos, llamados opciones, de los cuales los más populares son: 11C mini, 11C, 61C, 81C y Succession. Cada una presenta diferentes características en cuanto a capacidad y tamaño, sin embargo todas comparten una arquitectura muy similar y muchos de sus componentes son compatibles entre sí. 2.1.1 Funcionamiento y arquitectura La red telefónica tiene conectados una cantidad inimaginable de teléfonos en todo el mundo. Cuando una persona levanta el auricular para hablar con otra desea establecer una conexión física con la línea de la otra persona. Si tal conexión fuera dedicada, es decir, con un par de cables que siempre están disponibles para realizar la conexión, la cantidad de cables necesarios para comunicar a todos los usuarios del sistema entre sí sería práctica y económicamente prohibitiva. 9 En lugar de eso, cada usuario está conectado a una central telefónica que le permite comunicarse con cualquier otro usuario sin necesidad de una conexión dedicada. Una central telefónica, básicamente, es un equipo que permite realizar una conexión temporal de voz entre dos o más aparatos conectados a ella. En el proceso de establecer la conexión, una central podría tener que comunicarse con otra central, ya sea directamente o por medio de una o varias centrales de paso. Si la llamada es internacional, la conexión debe incluir una central internacional. En el caso de las centrales privadas (PBX) la conexión puede ser interna (con una oficina del mismo edificio, por ejemplo) o bien externa, con la red pública (si existe conexión). Figura 2.1 Central PBX en el contexto de la red telefónica pública. Para realizar su función, la central lleva a cabo un proceso de conmutación en el que se utiliza multiplexación por división en el tiempo (TDM). Esto permite transmitir una gran 10 cantidad de conversaciones por el mismo medio físico. Se dice que la conexión es temporal porque una vez finalizada la conversación la central libera la conexión. Con esto es posible establecer luego una nueva conexión entre otro par de usuarios. Dado que la voz es una señal analógica, antes de que una llamada pueda ser procesada debe haber un proceso de conversión de analógico a digital (con sus correspondientes subprocesos de muestreo, cuantificación y codificación PCM). En el proceso de comunicación por teléfono existe una convención (que funciona como interfaz máquina – hombre) para que el usuario pueda indicarle a una central con quién desea hablar, así como para que la persona a la que se llama sepa cuando alguien lo llama. Se denomina “abonado A” a la persona que intenta establecer una conexión y “abonado B” a la persona que recibe la llamada. Para que el abonado A le indique a la central el número telefónico del destino, éste levanta su auricular y espera hasta escuchar el tono de invitación a marcar. A continuación marca el número telefónico y espera la respuesta de la central, que pueden ser dos: tono de ocupado o tono de timbrado. Si el abonado B no tiene la línea ocupada, escuchará que su teléfono timbra y entonces lo contesta. En ese momento la central establece la conexión y se desentiende de la misma. Con base en la descripción anterior, es posible distinguir los módulos principales con los que debe contar la central digital. En la siguiente tabla se enumeran estos módulos y se explica brevemente su función. 11 Tabla 2.1 Módulos principales de una central digital. Nombre Genérico Alimentación eléctrica Denominación Meridian Power equipment Descripción Fuente de poder AC/DC, baterías, UPS. Generador de tonos y cadencias Tone and digit switch (TDS)Genera los diferentes tonos de invitación a marcar, llamando, línea ocupada. Generador de timbrado Ring generator Encargado de generar la señal que indica al usuario que tiene una llamada. Unidad de control Common equipment Realiza el procesamiento, control, ejecución del software y funciones de memoria del sistema. Red de conmutación Network equipment Realiza funciones de conmutación para interconectar puertos del equipo periférico. Equipo periférico Periferal equipment Son las interfaces hacia puntos de conexión al mundo externo (terminales, teléfonos y troncales). Supervisión y control System monitor Supervisa variables como voltaje, potencia, temperatura, etc. Circuitos de conferencia Conference Sistema que permite establecer comunicación entre más de dos teléfonos. Marcación DTMF (dual tone Digitone receiver (DTR) Encargado de la interpretación multifrequency) de las señales de marcación por tonos. 12 Unidad de control Procesamiento, memoria, control Red de Conmutación Circuitos conmutadores Fuente de Poder Equipo Periférico Líneas, troncales e interfaces de datos Terminales Teléfonos, Operadoras y equipos de datos Figura 2.2 Arquitectura básica de la Meridian. Estos módulos son tarjetas electrónicas que van montadas en un gabinete. El gabinete presenta una sección para las tarjetas y otra para el cableado necesario. Hay gabinetes principales y pueden haber gabinetes de expansión. La fuente de alimentación AC/DC, el módulo de supervisión y control y el generador de timbrado van juntos en un mismo módulo, llamado simplemente fuente. Todos los gabinetes deben tener su propia fuente. 13 La unidad de control, la red de conmutación, el DTR, el TDS, la memoria, los puertos de entrada/salida y los circuitos de conferencia van juntos en otra tarjeta, llamada SSC (Small System Controller) o MSC (Mini System Controller , en el caso de la opción 11C mini), que corresponde a la CPU. En el gabinete hay campos para insertar módulos adicionales como son las tarjetas de expansión por fibra, el módulo de correo de voz (Meridian Mail), tarjetas para troncales (líneas de salida a la red pública), tarjetas para líneas digitales y analógicas, etc. El software que controla las operaciones de la central se denomina X11, que es un sistema operativo multitarea. Como complemento está la base de datos que contiene toda la información sobre números de puerto, registros de troncales, números de extensión y configuraciones. Sobre el X11 se incorporan paquetes adicionales para realizar funciones más específicas. Todo el software está almacenado en una memoria DRAM. Hay también una memoria tipo ROM programable donde está el firmware, o programas basado en microinstrucciones a nivel lógico. Existe además otra memoria tipo flash suplementaria para guardar una copia de respaldo de los datos. Esto permite recargar el sistema rápidamente y acceder en forma rápida a los programas de recubrimiento. Algunos programas corren permanentemente, otros tienen horarios establecidos por el usuario. Los programas que siempre están presentes en la memoria se llaman programas residentes (algunos programas residentes están ubicados en la ROM y otros se cargan automáticamente a la DRAM en el arranque), mientras que los programas no residentes deben cargarse para su ejecución en rutinas de medianoche (se ejecutan a las 24 horas, cancelando la ejecución de cualquier otro programa), rutinas de fondo (que corren cuando ningún otro programa está cargado en el área de programa) o diagnósticos interactivos. Por esta razón, los programas no residentes se denominan overlays o loads. Éstos se identifican por un título seguido de un nemónico y un número, por ejemplo Trunk Diagnóstic -LD 36. Cuando ya no se necesita más un programa no residente, éste es removido de la memoria. 14 Aparte de la memoria, la SSC tiene otros componentes, entre los que se encuentran las interfaces para tarjetas de expansión, un socket PCMCIA, 32 canales de conferencia, 30 canales de TDS, tres puertos seriales y una para conexión a Ethernet de 10Mbps, entre otros. Como seguridad se incluyó un dispositivo (security device) sin el cual el X11 no funciona. Hay otros elementos que permiten que el sistema sea menos vulnerable a fallas externas. Uno de estos elementos es el denominado Power Fail Transfer Unit (PFTU), el cual se encarga de conmutar las troncales hacia teléfonos analógicos de emergencia, cuando la central deja de funcionar. La activación del PFTU puede hacerse por diferentes formas: por una falla en la alimentación, una falla en la CPU, falla en la conexión de fibra (en el caso de gabinetes de expansión), porque la CPU envió una señal o por activación manual. Un banco de baterías o UPS es otro elemento de protección que permite que el sistema siga funcionando aún si se interrumpe la alimentación AC. Este elemento se coloca fuera del gabinete. Por último se mencionará que hay un termostato que se abre si la temperatura del sistema alcanza los 80 ºC. 2.1.2 Formas de comunicación con la Meridian La familia Meridian 1 utiliza un sistema de indicador – respuesta para comunicarse con el usuario. El sistema imprime un indicador en la Terminal Teletipo (TTY) del sistema y el usuario escribe una respuesta en la TTY para contestar al indicador. Para realizar tal comunicación, debe utilizarse los siguientes dispositivos de entrada/salida en lugares locales o remotos: •Terminal TTY o VDT como dispositivo de entrada/salida. •Impresora compatible RS-232 C sólo como dispositivo de salida. •Aparato de teléfono de mantenimiento como terminal de entrada/salida. 15 •Cualquier terminal que posea las siguientes características: -Interface: RS-232 C -Código: ASCII -Velocidad: 300, 600, 1200, 4800, 19200 baudios. -Corriente de Bucle: 20mA Tanto para acceso local como para acceso remoto, las terminales se conectan al sistema a través de paquetes de interface de datos Serie (SDI). Para dispositivos de acceso remoto (cualquiera ubicado a más de 15m de la central) debe utilizarse módems y una línea telefónica entre la terminal y la SDI, como se muestra en la siguiente figura. Figura 2.3 Acceso local y acceso remoto Para una correcta operación, las terminales usadas para comunicarse con las opciones 51C, 61C, 81 y 81C deben configurarse a 7 bits de datos sin bit de paridad, baudeaje de 9600, un bit de parada y XON. 16 Antes del release 19 sólo un dispositivo podía comunicarse con el sistema. Si se intentaba ingresar al sistema cuando alguien ya lo había hecho implicaba sacar del sistema al usuario que ya había ingresado. Después del release 19 se implementó la capacidad multiusuario, con lo que varios usuarios pueden ingresar simultáneamente a través de los diferentes puertos de la máquina. Sin embargo, sólo una terminal a la vez puede utilizar el área de overlay, es decir, sólo una terminal a la vez puede cargar programas no residentes, aunque varias terminales pueden recibir simultáneamente los mensajes de salida del sistema. Una terminal puede ser configurada como de sólo entrada, sólo salida o entrada y salida. El sistema cuenta con un mecanismo para evitar que los puertos TTY afecten la correcta operación del equipo. Si se detecta una interferencia excesiva o bien un conjunto de caracteres inválidos en un puerto, ese puerto queda bloqueado por cuatro minutos, luego de los cuales se rehabilita automáticamente. Si se reincide 3 veces, la rehabilitación deberá ser hecha en forma manual. Para poder conectarse con la Meridian 1 a través de un puerto serie es necesario identificarse, por medio de un loggin y un password. Es posible crear un password con acceso limitado (LAPW, limited access password) que defina el acceso deseado a programas específicos, así como que el password permita sólo imprimir. La Meridian 1 tiene soporte para Ethernet usando el protocolo punto-a-punto (PPP), el cual forma parte del protocolo TCP/IP. Esto brinda al sistema una interface de red que permite a aplicaciones usar TCP/IP para acceder al sistema de forma remota. Aunque PPP está diseñado tanto para comunicaciones síncronas y asíncronas, sólo las asíncronas son admitidas por la Meridian. El sistema además admite una única conexión PPP al mismo tiempo para evitar sobreuso de procesador y memoria por concepto de tráfico de red desde PPP y Ethernet. 17 Dado que en PPP se utilizan 8 bits, mientras que los overlays del sistema utilizan 7 bits, el puerto del sistema debería utilizar siempre 8 bits para satisfacer los requerimientos del protocolo PPP. Debido a que el sistema siempre coloca el bit más significativo en alto (el octavo bit en 1) las terminales receptoras deben configurarse para que apliquen una máscara cuando van a comunicarse con overlays del sistema. De esta forma se ignora el octavo bit, para evitar visualizar caracteres corruptos en la pantalla cuando se acceda a overlays del sistema. El protocolo PPP está diseñado para trabajar en comunicaciones “full dúplex”. La velocidad de transmisión está limitada por el puerto SDI. La información se transmite con 8 bits, un bit de parada, ninguna paridad y modo de transmisión DTE, en una interface RS232C estándar. 2.1.3 Alarmas y mensajes del sistema Para la mayoría de opciones del sistema, la CPU envía sólo un código cuando se envía un mensaje. Para interpretar ese código y saber cuáles acciones son requeridas hay que consultarlo en un documento denominado System Messages. Las opciones 51C, 61C, 81 y 81C dan aparte del código un texto explicativo y las acciones requeridas para algunos mensajes. A través de una terminal se pueden ingresar comandos para indicarle al sistema que realice tareas específicas. El sistema ejecuta las tareas y envía mensajes de regreso a la terminal, indicando el estado o errores. Los mensajes del sistema identifican fallas en el equipo. Los mensajes son códigos que tienen un nemónico seguido de un número. El nemónico está asociado al tipo de falla y el número identifica al mensaje específico. Así, por ejemplo el nemónico PWR identifica a una falla en la alimentación o temperatura, mientras que 18 PWR0014 se refiere específicamente que el monitor del sistema no ha podido completar una autoevaluación. Un caso de los mensajes que incorporan descripción y acciones requeridas puede ser “CCED200 CPU test failed Check the CP card”. El monitor del sistema supervisa la temperatura, el estado del sistema de enfriamiento y el voltaje de alimentación de cada módulo, así como el estado del CPU y el generador de timbrado. En sistemas grandes pueden haber varios monitores de sistema. En este caso uno de ellos actúa como máster o principal y los demás como esclavos. El monitor máster entonces pregunta el estado a cada esclavo y manda el informe al CPU, que se comunica únicamente con el monitor principal. Los mensajes generados por el monitor del sistema tienen el nemónico PWR. El Monitor de Errores es un programa residente que continuamente rastrea el procesamiento de llamadas. Se generará un mensaje de sistema si el programa detecta información de procesamiento de llamadas inválida o mal formateada. Los mensajes de sistema generados por este programa van precedidos por el nemónico ERR, que usualmente indica fallas de hardware, o el nemónico BUG, que generalmente indica problemas de software. En el proceso de inicialización se ejecuta un programa que momentáneamente interrumpe el procesamiento de llamadas para limpiar fallas del CPU. Luego se rehabilita el procesamiento de llamadas y se generan mensajes con el nemónico INI que indican el estado del sistema. El programa Overload Monitor monitorea continuamente el volumen de mensajes de sistema. Si observa que alguna tarjeta de línea o trocal está generando muchos mensajes de error, el programa deshabilita la tarjeta y genera mensajes con el nemónico OVD. Hay en total más de 120 nemónicos para mensajes del sistema. La cantidad de errores específicos con cada uno de los nemónicos varía mucho, ya que algunos tienen menos de 20 19 y otros más de 1000 mensajes específicos asociados. En el anexo 1 se enumeran todos los nemónicos con su significado. Existe la posibilidad de guardar un número limitado de ciertos tipos de mensajes de sistema en un archivo histórico. Este archivo puede ser revisado cada vez que se desee y puede escogerse los tipos de mensajes que se guardarán, de una lista de opciones. Si el archivo está lleno y llega un nuevo mensaje, se eliminará el mensaje más viejo para guardar el nuevo mensaje. En este caso, cuando se revise el archivo se desplegará el mensaje file overflow, para advertir que se ha reemplazado información. Las alarmas del sistema se basan en varios monitores de fallas e indicadores. La categoría de la alarma -mayor, menor o remota- indica la severidad de la falla. Una alarma mayor requiere una acción inmediata por parte de un técnico. Una alarma menor requiere acción por un técnico, pero no necesariamente inmediata. Una alarma remota podría requerir atención por el técnico. Una alarma mayor indica una falla que interfiere seriamente con el proceso de llamadas. Las siguientes fallas son causa de una alarma mayor: •Falla del CPU o bus de control. •Falla en •Falla el disco del sistema cuando se intentaba cargarlo. de la fuente de alimentación (si no hay respaldo de baterías o UPS). •Exceso de temperatura. Cuando se presenta una alarma mayor se prende un LED rojo ubicado en la parte superior de la columna afectada. Además se envía una indicación a todas las mesas de operadoras. Por último, si la central está equipada con un PFTU, este conmuta y entonces los teléfonos analógicos designados quedan conectados directamente a las troncales. Una alarma menor indica que el sistema ha encontrado una falla de hardware o software que requiere atención. Las siguientes fallas son causa de alarmas menores: •Falla en circuitos de conferencia. 20 •Falla en el DTR. •Falla en la memoria. •Más de una falla en diferentes tarjetas de líneas o troncales. •Falla de red. •Falla de señalización de equipo periférico. •Falla en la interfaz de datos serial (SDI). •Falla en el TDS. •Falla en la identificación automática de marcación saliente. Una alarma menor envía una indicación a las mesas de operadoras de los grupos afectados por la falla. Esta indicación es opcional, puede ser deshabilitada. Una alarma remota es una extensión opcional de una alarma mayor a otro lugar, como un centro de control o centro de prueba, o un indicador como una luz o una campana. Cuando se da una alarma mayor, la Meridian 1 cierra el contacto de un relé de 30Vdc y 2A. Las alarmas del sistema también pueden enviar mensajes de la forma ABCDxxxx, donde ABCD es el nemónico y xxxx es el código del mensaje de tres o cuatro dígitos. Hay alarmas producidas por el sistema automáticamente(alarmas del sistema) y alarmas producidas cuando un usuario interactúa con el equipo (alarmas de overlay). Es posible filtrar las alarmas para recibir en una terminal solo cierto tipo de mensajes. Por ejemplo, el usuario puede configurar una terminal para que reciba sólo los mensajes que requieren atención. Esto se realiza por medio de una lista de alarmas y una lista de excepciones. Aquellos mensajes que se encuentren en la lista de alarmas pero no en la de excepciones serán enviados a la terminal. Por ejemplo, si se agrega PWR++++ a la lista de alarmas, y PWR0000 a la lista de excepciones, entonces todos los mensajes PWR excepto el PWR0000 se enviarán a la terminal. Sólo se pueden filtrar alarmas del sistema, en el anexo 1 se muestra cuáles mensajes pueden ser filtrados. Mensajes de tráfico y alarmas de overlay 21 no pueden ser filtradas. Puede definirse 50 campos en la lista de alarmas y 50 en la lista de excepciones. El filtro de alarmas permite dar a las alarmas un grado de severidad, de cuatro posibles: ninguno, menor, mayor y crítica. Es posible establecer un número de repeticiones que debe darse en 24 horas una alarma mayor para ser considerada como crítica. También se puede establecer el número de veces que debe ocurrir un error en 24 para que sea suprimido, evitando así mensajes redundantes. A continuación se muestra el formato de los mensajes filtrados. La segunda y tercera línea son opcionales. <severidad> <id> <fecha> <hora> <no sec> <evento> <numero de secuencia> Operator data:<mens op> Expert data:<mens exp> Donde <severidad> es la severidad de la alarma: ninguna, menor, mayor o crítica. Esta se expresa por medio de asteriscos, donde *** equivale a critica, ** a mayor, * a menor y sin asteriscos representa severidad ninguna. <id> es un identificador del error, hasta 10 caracteres, tal como BUG3001 <fecha> Fecha de ocurrencia en formato DD/MM/AA <hora> Hora de ocurrencia en formato HH:MM:SS <no sec> número de secuencia de este reporte (5 dígitos). <mens op> un campo de 30 caracteres para ayudar a determinar cómo solucionar la falla. <mens exp> un campo de 30 caracteres para uso de un experto para encontrar fallas de programación. 22 Un ejemplo de alarma siguiendo el formato anterior es el siguiente: *** BUG015 15/12/95 12:05:45 00345 EXPDATA: 04BEF0FC 05500FBA 05500EE2 05500EC6 05500EAA BUG015 + 05500E72 + 05500E56 + 0550D96 + 055053A + 04D84E02 + 04D83CFC 2.2 Transmisión de datos en forma serial El puerto serie es un dispositivo de entrada/salida muy utilizado para comunicar equipos como enrutadores, centrales, UPS, etc con computadores. Generalmente consta de un conector de 9 pines, de los cuales uno se usa para transmitir datos, otro para recibir y el resto para control. Figura 2.4: Conector DB9 típico 23 Tabla2.2: Designación de pines para un conector DB9 RS-232. Pin Descripción Pin Descripción 1 DCD- Data Carrier Detect 6 DSR-Data Set Ready 2 RXD- Received Data 7 RTS- Request To Send 3 TXD- Transmitted Data 8 CTS- Clear To Send 4 DTR- Data Terminal Ready 9 Ring Detect 5 GND- Logic Ground Cuando la comunicación por el puerto serie se realiza en forma asíncrona, debe seguirse cierto orden para que la computadora entienda dónde termina un dato y dónde empieza el siguiente. El pin de transmisión está normalmente en 1. Cuando va a enviarse un dato, éste debe ir precedido por un bit de inicio, que pone la línea en 0. A continuación se transmiten todos los bits del dato (generalmente 8) y por último uno o más bits de parada, que indican el final del dato. Opcionalmente se transmite también un bit de paridad. Los datos pueden ser enviados o recibidos en cualquier momento, a esto se debe el nombre de asíncrono. La cantidad de bits que forman un dato, los bits de parada y los bits de paridad son parámetros de transmisión usualmente configurables. Para referirse a una transmisión de 8 bits de datos, un bit de parada y ninguna paridad, se escribe 8N1. Otro parámetro importante que se debe configurar es la velocidad de la transmisión (o el baudaje) expresada en bits por segundo. Es necesario que tanto el emisor como el receptor de un sistema de transmisión serial tengan los mismos valores en los parámetros anteriores, para que la comunicación pueda ser establecida correctamente. Como parte importante en el proceso de enviar y recibir bits, hay un mecanismo de control de flujo, encargado precisamente de regular el flujo de datos entre las dos interfaces seriales. Existen dos sistemas de control de flujo. El primero de ellos es el control por 24 software, el cual utiliza las mismas líneas de transmisión y recepción de datos para enviar los bits de inicio o parada. Cuando se utilizan caracteres especiales para enviar el bit de inicio, se denomina XON, mientras en el caso del bit de parada, se llama XOFF. Los caracteres especiales utilizados por XON y XOFF están definidos en el código ASCII, lo que los hace útiles para transferencia de información textual. Sin embargo, al utilizar la misma línea de transmisión, el control por software introduce un retardo en la velocidad real de transmisión. El segundo sistema es el control por hardware, el cual utiliza más bien las señales de control CTS y RTS del RS-232 para indicar cuándo un dispositivo está listo para enviar o recibir más información. La mayoría de la electrónica del puerto serie se encuentra en un chip llamado UART (Universal Asyncronous Receiver/Transmiter). Este chip tiene un par de buffers (uno de transmisión y otro de recepción) de 16 bytes cada uno. Además en la memoria principal hay otro par de buffers de mayor tamaño, por ejemplo 8Kbytes. Programa de Buffer en la Buffer en la <------------->memoria principal <--------------->UART <-------------> línea serial. aplicación 8K bytes 16-bytes Figura 2.5 Buffers presentes en la transmisión serial. Una vez que un byte está en el buffer de la UART, éste será enviado, pero su flujo se controla por el sistema de control, sea por hardware o por software. Si el control de flujo detiene la transmisión y el programa envía n nuevos datos, éstos quedan en el buffer de la memoria principal, hasta que el control de flujo acepte nuevos datos. 25 En los sistemas basados en Unix, como es el caso de Linux, una forma de acceder al puerto serie es mediante su fichero descriptor /dev/ttyS0, el cual debe abrirse con una llamada a una función como open(). Como el archivo /dev/ttyS0 puede tener permisos restringidos de lectura o escritura, el programa encargado de abrir el puerto debe ser ejecutado por el superusuario, o bien, cambiar los permisos del archivo o hacer que el programa corra como propietario del archivo (no recomendable por cuestiones de seguridad). 2.3 Transmisión de datos por Internet 2.3.1 Definición red Una red es un sistema de comunicación entre computadoras, incluye tanto el soporte físico que abarca cableado y tarjetas de las computadoras, así como el conjunto de programas que forman el sistema operativo de red. Existen varias topologías para realizar una red, entre las que se encuentran la topología bus, estrella y anillo. Además, de acuerdo con la relación entre los miembros de una red, ésta se puede clasificar en dos grupos: redes con servidor y redes entre pares. Otra clasificación se hace con base en la distancia que cubre la red. Así surgen otros dos grupos: las redes de área local (LAN) y las redes de área extensa (WAN). A su vez existen diferentes tecnologías de red, entre las que se encuentran Ethernet, redes ATM, redes Token Ring y otras. Algunas de estas tecnologías están enfocadas a la conexión entre computadores, mientras que otras hacia la conmutación de paquetes. El estudio detallado de las características de cada tecnología queda fuera de los objetivos de este trabajo, sin embargo se incluye un vistazo rápido de la tecnología Ethernet, para utilizarla como referencia. 26 2.3.2 Tecnología Ethernet Ethernet es una popular tecnología LAN de conmutación de paquetes, utilizada actualmente por muchas compañías medianas y grandes. Esta tecnología fue inventada por Xerox, a principios de los años setenta. El diseño original utilizaba un cable coaxial. Sin embargo, varios de los dispositivos originales presentaban características indeseables. Los avances de la tecnología hicieron posible la construcción de redes Ethernet con cables de cobre convencionales (par trenzado). Conocido con el nombre de 10Base-T, el esquema de cableado de par trenzado conecta cada computadora con un hub (concentrador) Ethernet. La conexión entre una computadora y el hub no debe ser mayor a 100m. Cuando una computadora envía un paquete, el hub lo transmite a todas las demás computadoras. Por eso se dice que Ethernet es un bus de difusión. Además, Ethernet es un sistema entre pares, o punto a punto, ya que no existe un servidor o autoridad central para garantizar el acceso. Los paquetes se transmiten y no se proporciona información de si el paquete se ha recibido o no. Debido a su topología de bus, cada tarjeta de red debe monitorear el canal mientras está transmitiendo, para saber si hay alguna señal exterior que interfiera con su transmisión. Esto se conoce como detección de colisiones. Si se detecta una colisión, el emisor aborta la transmisión e intenta retransmitir después de cierto tiempo, obtenido por un procedimiento de retroceso exponencial, para evitar que las transmisiones de dos emisores estén continuamente colisionando. Como se mencionó anteriormente, cada paquete es difundido por el hub hacia todas las demás computadoras conectadas; sin embargo, generalmente se desea que el paquete sea recibido por una computara en particular. 27 Para lograr lo anterior, las redes Ethernet definen un sistema de direccionamiento de 48 bits. A cada computadora conectada se le asigna un número único de 48 bits (6 octetos). Este número se conoce como dirección Ethernet, y es un valor dado por el fabricante del hardware. De esta manera, no existen dos unidades de hardware de interfaz con la misma dirección Ethernet. Cada paquete o trama de Ethernet consta de un encabezado donde se coloca la dirección de destino, la dirección fuente y otros datos de control, como se muestra en la siguiente figura: Preámbul o 8 octetos Dirección destino 6 octetos Dirección Datos de la trama fuente 6 octetos Área de datos 64-1500 octetos 2 octetos CRC 4 octetos Figura2.6: Representación de una trama de Ethernet. El encabezado de la trama incluye el preámbulo, las direcciones fuente y destino (estas son las direcciones Ethernet, llamadas también MAC address) y el tipo de datos que se están transfiriendo. El preámbulo consiste en un conjunto de bits que alternan unos y ceros para ayudar a la sincronización de los nodos de recepción. Además, cada trama tiene otro conjunto de bits para verificación por redundancia cíclica (CRC) que ayuda a la interfaz a detectar los errores de transmisión. 2.3.3 Definición TCP / IP 28 Como se ha visto, las redes pueden proceder de una variedad de fabricantes y es probable que tenga diferencias tanto en hardware como en software. Así mismo, puede ser de diferente tecnología. Para posibilitar la comunicación entre éstas es necesario un conjunto de reglas formales para su interacción. A estas reglas se les denominan protocolos. Se han desarrollado diferentes familias de protocolos para comunicación por red de datos para los sistemas UNIX. El más ampliamente utilizado es el Internet Protocol Suite, comúnmente conocido como TCP / IP. Es un protocolo que proporciona transmisión fiable de paquetes de datos sobre redes. El nombre TCP / IP Proviene de dos protocolos importantes de la familia, el Transmission Control Protocol (TCP) y el Internet Protocol (IP). Todos juntos llegan a ser más de 100 protocolos diferentes definidos en este conjunto. El TCP / IP es la base del Internet que sirve para enlazar computadoras que utilizan diferentes sistemas operativos, incluyendo PC, minicomputadoras y computadoras centrales sobre redes de área local y área extensa. TCP / IP fue desarrollado y demostrado por primera vez en 1972 por el departamento de defensa de los Estados Unidos, ejecutándolo en el ARPANET, una red de área extensa del departamento de defensa. 2.3.4 Modelo de referencia iso de 7 capas Existen dos modelos dominantes sobre la estratificación por capas de protocolo. La primera, basada en el trabajo realizado por la International Organization for Standardization (Organización para la Estandarización o ISO, por sus siglas en inglés ), conocida como Referencia Model of Open System Interconnection Modelo de referencia de interconexión de sistemas abiertos ) de ISO, denominada frecuentemente modelo ISO. El modelo ISO contiene 7 capas conceptuales organizadas como se muestra a continuación: 29 CAPA FUNCION 1 Aplicación 2 Presentación 3 Sesión 4 Transporte 5 Red 6 Enlace de datos (Interfaz de Hardware) 7 Conexión de Hardware Físico Figura 2.7 Modelo por capas ISO. El modelo ISO, elaborado para describir protocolos para una sola red, no contiene un nivel especifico para el ruteo en el enlace de redes, como sucede con el protocolo TCP/IP. Capas: •Conexión de hardware físico: proporciona los medios mecánicos, eléctricos, funcionales y de procedimiento para mantener y desactivar las conexiones físicas para la transmisión de bits entre entidades de enlace de datos. Así, en este nivel, la normativa establece parámetros de tensión, características de los cables, etc. •Enlace de datos: El objetivo de la capa de enlace es facilitar los medios funcionales y de procedimientos para establecer, mantener y liberar conexiones de enlace de datos. Sus funciones básicas en resumen son: 30 oSincronización y entramado oEstablecimiento y desconexión del enlace oControl de flujo oDetección y recuperación de errores. •Red: El objetivo de esta capa es el de proporcionar los medios para establecer, mantener y liberar la conexión, a través de una red donde existe una malla compuesta de enlaces y nodos. Es el responsable de las funciones de conmutación y encaminamiento de la información. •Transporte: Su función principal esta en controlar que la información transmitida entre dos computadoras llegue al destinatario tal y como le fue enviada. •Sesión: Se encarga de sincronizar y organizar el intercambio de información entre distintos usuarios. •Presentación: Da una normativa de cómo se tiene que realizar la presentación de los datos para obtener compatibilidad entre los usuarios (códigos de caracteres usados, etc.) •Aplicación: Su función es la de actuar como interface con el usuario y con el resto de capas, permitiendo al usuario introducir opciones. 2.3.5 Dispositivos para el interfuncionamiento de INTERNET 31 En forma general, los equipos utilizados para la interconexión de redes son (en la figura se muestra como actúan sobre distintos niveles del modelo OSI): 7 Aplicación 7 Aplicación 6 Presentación 6 Presentación 5 Sesión 4 Transporte 5 Sesión Gateways 4 Transporte 3 Red Routers 3 Red 2 Enlace Bridges 2 Enlace 1 Físico Repeaters 1 Físico Figura 2.8: Dispositivos para el funcionamiento de Internet. •Repetidores o “Repeaters”: Son el dispositivo más elemental de la serie y, como su nombre indica, se limitan simplemente a regenerar la señal, sin cambiar su físico de transmisión empleado: cable coaxial, de pares, fibra óptica, etc. •Puentes o “Bridges”: Sirven para enlazar dos o más LANs que empleen igual protocolo de enlace. No realizan control de flujo, ignorando protocolos de nivel superior, por lo que se comportan de forma transparente respecto a estos. •Encaminadotes o “Routers”: Operan de manera similar a los puentes, con la particularidad de que lo hacen en la capa de red de OSI, que incluye una dirección de red y una de 32 dispositivo; ello proporciona innumerables ventajas, ya que permite la interoperatividad entre redes diferentes, como pueden ser CDMA/CD y una Token Ring, y permite dividir una red en varias subredes, eligiendo el mejor camino para enviar un paquete sin la necesidad de mantener extensas tablas que contengan la dirección de todos y cada uno de los dispositivos. •Pasarelas o “Gateways”: Son dispositivos especializados en proporcionar conectividad, desde el acceso, entre entornos con diferentes protocolos, actuado como traductores. 2.3.6 El X.25 y su relación con el modelo ISO Aun cuando fue diseñado para proporcionar un modelo conceptual y no una guía de implementación, el esquema de estratificación por capas de ISO ha sido la base para la implementación de varios protocolos. Entre los protocolos comúnmente asociados con el modelo ISO, el conjunto de protocolos conocido como X.25 es probablemente el mejor conocido y el más ampliamente utilizado. X.25 fue establecido como una recomendación de la Telecommunications Section de la International Telecommunications Union (ITU-TS), una organización internacional que recomienda estándares para los servicios telefónicos internacionales. X.25 ha sido adoptado para las redes públicas de datos y es especialmente popular en Europa. Consideraremos a X.25 para ayudar a explicar la estratificación por capas de ISO. Dentro de la perspectiva de X.25, una red opera en gran parte como un sistema telefónico. Una red X.25 se asume como si estuviera formada por complejos conmutadores de paquetes que tienen la capacidad necesaria para el ruteo de paquetes. Los anfitriones no están comunicados de manera directa a los cables de comunicación de la red. En lugar de ello, cada anfitrión se comunica con uno de los conmutadores de paquetes por medio de una 33 línea de comunicación serial. En cierto sentido la comunicación entre un anfitrión y un conmutador de paquetes X.25 es una red miniatura que consiste en un enlace serial. El anfitrión puede seguir un complicado procedimiento para transferir paquetes hacia la red. 2.3.7 El modelo de estratificación por capas de TCP/IP de Internet El segundo modelo mayor de estratificación por capas no se origina de un comité de estándares, sino que proviene de las investigaciones que se realizan respecto al conjunto de protocolos de TCP/IP. Con un poco de esfuerzo, el modelo ISO puede ampliarse y describir el esquema de estratificación por capas del TCP/IP, pero los presupuestos subyacentes son lo suficientemente distintos para distinguirlos como dos diferentes. En términos generales, el software TCP/IP está organizado en cuatro capas conceptuales que se construyen sobre una quinta capa de hardware. El siguiente esquema muestra las capas conceptuales así como la forma en que los datos pasan entre ellas. 34 CAPAS CONCEPTUALES PASO DE OBJETOS ENTR E CAPAS APLICACIÓN FLUJOS O MENSAJES TRANSPORTE PAQUETES DE PROTOCOLOS DE TRANSPORTE INTERNET INTERFAZ DE RED DATAGRAMA IP HARDWARE TRAMAS ESPECIFICAS DE RED Figura 2.9 Capas conceptuales del TCP/IP •Capa de aplicación. Es el nivel mas alto, los usuarios llaman a una aplicación que acceda servicios disponibles a través de la red de redes TCP/IP. Una aplicación interactúa con uno de los protocolos de nivel de transporte para enviar o recibir datos. Cada programa de aplicación selecciona el tipo de transporte necesario, el cual puede ser una secuencia de mensajes individuales o un flujo continuo de octetos. El programa de aplicación pasa los datos en la forma requerida hacia el nivel de transporte para su entrega. •Capa de transporte. La principal tarea de la capa de transporte es proporcionar la comunicación entre un programa de aplicación y otro. Este tipo de comunicación se conoce frecuentemente como comunicación punto a punto. La capa de transporte regula el flujo de información. Puede también proporcionar un transporte confiable, asegurando que los datos lleguen sin errores y en secuencia. Para hacer esto, el software de protocolo de transporte tiene el lado de recepción enviando acuses de recibo de retorno y la parte de envío retransmitiendo los paquetes perdidos. El software de transporte divide el flujo de datos que se está enviando en pequeños fragmentos (por lo general conocidos como paquetes) y pasa cada paquete, con una dirección de destino, hacia la siguiente capa de transmisión. Aun 35 cuando en el esquema anterior se utiliza un solo bloque para representar la capa de aplicación, una computadora de propósito general puede tener varios programas de aplicación accesando la red de redes al mismo tiempo. La capa de transporte debe aceptar datos desde varios programas de usuario y enviarlos a la capa del siguiente nivel. Para hacer esto, se añade información adicional a cada paquete, incluyendo códigos que identifican qué programa de aplicación envía y qué programa debe recibir, así como una suma de verificación para verificar que el paquete ha llegado intacto y utiliza el código de destino para identificar el programa de aplicación en el que se debe entregar. •Capa Internet. La capa Internet maneja la comunicación de una máquina a otra. Ésta acepta una solicitud para enviar un paquete desde la capa de transporte, junto con una identificación de la máquina, hacia la que se debe enviar el paquete. La capa Internet también maneja la entrada de datagramas, verifica su validez y utiliza un algoritmo de ruteo para decidir si el datagrama debe procesarse de manera local o debe ser transmitido. Para el caso de los datagramas direccionados hacia la máquina local, el software de la capa de red de redes borra el encabezado del datagrama y selecciona, de entre varios protocolos de transporte, un protocolo con el que manejará el paquete. Por último, la capa Internet envía los mensajes ICMP de error y control necesarios y maneja todos los mensajes ICMP entrantes. •Capa de interfaz de red. El software TCP/IP de nivel inferior consta de una capa de interfaz de red responsable de aceptar los datagramas IP y transmitirlos hacia una red específica. Una interfaz de red puede consistir en un dispositivo controlador (por ejemplo, cuando la red es una red de área local a la que las máquinas están conectadas directamente) o un complejo subsistema que utiliza un protocolo de enlace de datos propios (por ejemplo, cuando la red consiste de conmutadores de paquetes que se comunican con anfitriones utilizando HDLC). 36 2.3.8 Estratificación por capas en un ambiente de Internet TCP/IP Anfitrión A Anfitrión B Aplicación Aplicación Mensaje idéntico Transporte Transporte Paquete idéntico Ruteador Internet Internet Internet datagrama idéntico datagrama idéntico Interfaz de Red Interfaz de Red Interfaz de Red Red física 2 Red física 1 Figura 2.10 Estratificación por capas en una Internet con TCP Como se muestra en la figura, la entrega del mensaje utiliza dos estructuras de red separadas, una para la transmisión desde el anfitrión A hasta el ruteador R y otra del ruteador R al anfitrión B. El siguiente principio de trabajo de estratificación de capas indica que el marco entregado a R es idéntico al enviado por el anfitrión A. En contraste, las capas de aplicación y transporte cumplen con la condición punto a punto y están diseñados de modo que el software en la fuente se comunique con su par en el destino final. Así, el principio de la estratificación por capas establece que el paquete recibido por la capa de transporte en el destino final es idéntico al paquete enviado por la capa de transporte en la fuente original. 37 Es fácil entender que, en las capas superiores, el principio de estratificación por capas se aplica a través de la transferencia punto a punto y que en las capas inferiores se aplica en una sola transferencia de máquina. No es tan fácil ver como el principio de estratificación de capas se aplica a la estratificación Internet. Por un lado, se ha dicho que los anfitriones conectados a una red de redes deben considerarse como una gran red virtual, con los datagramas IP que hacen las veces de tramas de red. Desde este punto de vista, los datagramas viajan desde una fuente original hacia un destino final y el principio de la estratificación por capas garantiza que el destino final reciba exactamente el datagrama que envío la fuente. Por otra parte, sabemos que el encabezado "datagram” contiene campos, como "time to live", que cambia cada vez que el "datagram" pasa a través de un ruteador. Así, el destino final no recibirá exactamente el mismo diagrama que envío la fuente. Se debe concluir que, a pesar de que la mayor parte de los datagramas permanecen intactos cuando pasan a través de una red de redes, el principio de estratificación por capas solo se aplica a los datagramas que realizan transferencias de una sola máquina. Para ser precisos, no debemos considerar que las capas de Internet proporcionan un servicio punto a punto. 2.3.9 Estratificación por capas en presencia de una subestructura de red Cuando un ruteador recibe un datagrama, este puede entregar el datagrama en su destino o en la red local, o transferir el datagrama a través de una línea serial hacia otro ruteador. La cuestión es la siguiente: "¿cómo se ajusta el protocolo utilizado en una línea serial con respecto al esquema de estratificación por capas del TCP/IP?" La respuesta depende de como considera el diseñador la interconexión con la línea serial. 38 Desde la perspectiva del IP, el conjunto de conexiones punto a punto entre ruteadores puede funcionar como un conjunto de redes físicas independientes o funcionar colectivamente como una sola red física. En el primer caso, cada enlace físico es tratado exactamente como cualquier otra red en una red de redes. A esta se le asigna un numero único de red (por lo general de clase C) y los dos anfitriones que comparten el enlace tiene cada uno una dirección única IP asignada para su conexión. Los ruteadores se añaden a la tabla de ruteo IP como lo harían para cualquier otra red. Un nuevo modulo de software se añade en la capa de interfaz de red para controlar el nuevo enlace de hardware, pero no se realizan cambios sustanciales en el esquema de estratificación por capas. La principal desventaja del enfoque de redes independientes es la proliferación de números de redes (uno por cada conexión entre dos maquinas), lo que ocasiona que las tablas de ruteo sean tan grandes como sea necesario. Tanto la línea serial IP (Serial Line IP o SLIP) como el protocolo punto a punto (Point to Point Protocol o PPP) tratan a cada enlace serial como una red separada. El segundo método para ajustar las conexiones punto a punto evita asignar múltiples direcciones IP al cableado físico. En lugar de ello, se tratan a todas las conexiones colectivamente como una sola red independiente IP con su propio formato de trama, esquema de direccionamiento de hardware y protocolos de enlace de datos. Los ruteadores que emplean el segundo método necesitan solo un numero de red IP para todas las conexiones punto a punto. Usar el enfoque de una sola red significa extender el esquema de estratificación por capas de protocolos para añadir una nueva capa de ruteo dentro de la red, entre la capa de interfaz de red y los dispositivos de hardware. Para las máquinas con una sola conexión punto a punto, una capa adicional parece innecesaria. La organización del software de la capa Internet pasa hacia la interfaz de red todos los datagramas que deberá enviarse por cualquier conexión punto a punto. La interfaz los pasa hacia él modulo de ruteo dentro de la 39 red que, además, debe distinguir entre varias conexiones físicas y rutear el datagrama a través de la conexión correcta. El programador que diseña software de ruteo dentro de la red determina exactamente como selecciona el software un enlace físico. Por lo general, el algoritmo conduce a una tabla de ruteo dentro de la red. La tabla de ruteo dentro de la red es análoga a una tabla de ruteo de una red de redes en la que se especifica una transformación de la dirección de destino hacia la ruta. La tabla contiene pares de enteros, (D, L), donde D es una dirección de destino de un anfitrión y L especifica una de las líneas físicas utilizadas para llegar al destino. Las diferencias entre una tabla de ruteo de red de redes y una tabla de ruteo dentro de la red son que esta ultima, es mucho más pequeña. Contiene solamente información de ruteo para los anfitriones conectados directamente a la red punto a punto. La razón es simple: la capa Internet realiza la transformación de una dirección de destino arbitraria hacia una ruta de dirección especifica antes de pasar el datagrama hacia una interfaz de red. De esta manera, la capa dentro de la red solo debe distinguir entre máquinas en una sola red unto a punto. 2.3.10 Como funciona TCP/IP Una red TCP/IP transfiere datos mediante el ensamblaje de bloques de datos en paquetes, cada paquete comienza con una cabecera que contiene información de control; tal como la dirección del destino, seguido de los datos. Cuando se envía un archivo por la red TCP/IP, su contenido se envía utilizando una serie de paquetes diferentes. El Internet protocol (IP), un protocolo de la capa de red, permite a las aplicaciones ejecutarse transparentemente sobre redes interconectadas. Cuando se utiliza IP, no es necesario conocer que hardware se utiliza, por tanto ésta corre en una red de área local. 40 El Transmissión Control Protocol (TCP); un protocolo de la capa de transporte, asegura que los datos sean entregados, que lo que se recibe, sea lo que se pretendía enviar y que los paquetes que sean recibidos en el orden en que fueron enviados. TCP terminará una conexión si ocurre un error que haga la transmisión fiable imposible. Una abstracción que los protocolos de transporte del TCP/IP utilizan para ordenar, asignar y distinguir conexiones son los puertos de protocolo. Los protocolos TCP/IP identifican puertos mediante enteros pequeños positivos. Usualmente el sistema operativo permite a un programa de aplicación especificar qué puerto desea utilizar. Algunos puertos se reservan para servicios estándar (por ejemplo, el puerto 80 se utiliza como servidor de páginas Web (http), mientras que el puerto 21 es para ftp, etc) 2.3.11 Administración TCP/IP TCP/IP es una de las redes más comunes utilizadas para conectar computadoras con sistema UNIX. Las utilidades de red TCP/IP forman parte de la versión 4, muchas facilidades de red como un sistema UUCP, el sistema de correo, RFS y NFS, pueden utilizar una red TCP/CP para comunicarse con otras máquinas. Para que la red TCP/IP esté activa y funcionado será necesario: •Obtener una dirección Internet. •Instalar las utilidades Internet en el sistema •Configurar la red para TCP/IP •Configurar los guiones de arranque TCP/IP •Identificar otras máquinas ante el sistema •Configurar la base de datos del o y ente de STREAMS •Comenzar a ejecutar TCP/IP. 41 2.3.12 ¿Qué es internet? Internet es una red de computadoras que utiliza convenciones comunes a la hora de nombrar y direccionar sistemas. Es una colecciona de redes independientes interconectadas; no hay nadie que sea dueño o active Internet al completo. Las computadoras que componen Internet trabajan en UNIX, el sistema operativo Macintosh, Windows 95 y muchos otros. Utilizando TCP/IP y los protocolos veremos dos servicios de red: : Servicios de Internet a nivel de aplicación : Servicios de Internet a nivel de red 2.3.13 Servicios de internet a nivel de aplicación: Desde el punto de vista de un usuario, una red de redes TCP/IP aparece como un grupo de programas de aplicación que utilizan la red para llevar a cabo tareas útiles de comunicación. Utilizamos el término interoperabilidad para referirnos a la habilidad que tienen diversos sistemas de computación para cooperar en la resolución de problemas computacionales. Los programas de aplicación de Internet muestran un alto grado de interoperabilidad. La mayoría de usuarios que accesan a Internet lo hacen al correr programas de aplicación sin entender la tecnología TCP/IP, la estructura de la red de redes subyacente o incluso sin entender el camino que siguen los datos hacia su destino. Sólo los programadores que crean los programas de aplicación de red necesitan ver a la red de redes como una red, así como entender parte de la tecnología. Los servicios de aplicación de Internet más populares y difundidos incluyen: 42 •Correo electrónico. El correo electrónico permite que un usuario componga memorandos y los envíe a individuos o grupos. Otra parte de la aplicación de correo permite que un usuario lea los memorandos que ha recibido. El correo electrónico ha sido tan exitoso que muchos usuarios de Internet depende de él para su correspondencia normal de negocios. Aunque existen muchos sistemas de correo electrónico, al utilizar TCP/IP se logra que la entrega sea más confiable debido a que non se basa en compradoras intermedias para distribuir los mensajes de correo. Un sistema de entrega de correo TCP/IP opera al hacer que la máquina del transmisor contacte directamente la máquina del receptor. Por lo tanto, el transmisor sabe que, una vez que el mensaje salga de su máquina local, se habrá recibido de manera exitosa en el sitio de destino. •Transferencia de archivos. Aunque los usuarios algunas veces transfieren archivos por medio del correo electrónico, el correo está diseñado principalmente para mensajes cortos de texto. Los protocolos TCP/IP incluyen un programa de aplicación conocido como FTP (File Transfer Protocol) para transferencia de archivos, el cual permite que lo usuarios envíen o reciban archivos arbitrariamente grandes de programas o de datos. Por ejemplo, al utilizar el programa de transferencia de archivos, se puede copiar de una máquina a otra una gran base de datos que contenga imágenes de satélite, un programa escrito en Pascal o C++, o un diccionario del idioma inglés. El sistema proporciona una manera de verificar que los usuarios cuenten con autorización o, incluso, de impedir el acceso. Como el correo, la transferencia de archivos a través de una red de redes TCP/IP es confiable debido a que las dos máquinas comprendidas se comunican de manera directa, sin tener que confiar en máquinas intermedias para hacer copias del archivo a lo largo del camino. •Acceso remoto. El acceso remoto permite que un usuario que esté frente a una computadora se conecte a una máquina remota y establezca una sesión interactiva. El 43 acceso remoto hace aparecer una ventana en la pantalla del usuario, la cual se conecta directamente con la máquina remota al enviar cada golpe de tecla desde el teclado del usuario a una máquina remota y muestra en la ventana del usuario cada carácter que la computadora remota lo genere. Cuando termina la sesión de acceso remoto, la aplicación regresa al usuario a su sistema local. Este aplicación se conoce como TELNET (Telecommunicating Networks) •Gopher. Es un servicio de búsqueda y recuperación de ficheros distribuidos por toda la red que emplea una estructura jerárquica de menús. Es un servicio de información sobre los recursos de la red en los que cada servidor se encarga de organizar su propia información, siendo las referencias cruzadas entre ellos lo que permite que funcionen con un conjunto único. •Grupos de Noticias (News). Son grupos de discusión, abiertos o cerrados, sobre temas de interés muy variado. Funciona a modo de los tablones de anuncios en los que cualquiera puede dejar o leer mensajes. Una variante de este servicio es IRC (Internet Relay Chat) un servicio que permite intercambiar mensajes por escrito en tiempo real. •World Wide Web. WWW es uno de los servicios que experimenta un crecimiento mayor. Fue desarrollado por CERN (Centro Europeo de Estudios Nucleares) y consiste en un estándar (HTML/Hypertext Markup Language) para presentar y visualizar páginas multimedia –texto, sonidos, imágenes, vídeos- que emplea hipertexto (documentos que contienen enlaces o vínculos con otros documentos), siendo muy fácil de utilizar. El lenguaje HTML no especifica elementos tipográficos exactos, sino el papel del texto dentro del documento, lo que permite cualquier plataforma. Una página HTML se puede crear con un simple editor de texto y programa gráfico estándar, no siendo necesaria ninguna herramienta 44 de programación. Para transmitir información escrita en HTML se utiliza el protocolo HTTP (Hiper Text Transfer Protocol), el cual está definido como parte del TCP/IP. 2.3.14 Servicios de internet a nivel de red Un programador que crea programas de aplicación que utilizan protocolos TCP/IP tiene una visión totalmente diferente de una red de redes, con respecto a la visión que tiene un usuario que únicamente ejecuta aplicaciones como el correo electrónico. En el nivel de red, una red de redes proporciona dos grandes tipos de servicios que todos los programas de aplicación utilizan. Aunque no es importante en este momento entender los detalles de estos servicios, no se deben omitir del panorama general del TCP/IP: •Servicio sin conexión de entrega de paquetes (UDP). La entrega sin conexión es una abstracción del servicio que la mayoría de las redes de conmutación de paquetes ofrece. Simplemente significa que una red de redes TCP/IP rutea mensajes pequeños de una máquina a otra, basándose en la información de dirección que contiene cada mensaje. Debido a que el servicio sin conexión rutea cada paquete por separado, no garantiza una entrega confiable y en orden. Como por lo general se introduce directamente en el hardware subyacente, el servicio sin conexión es muy eficiente. •Servicio de transporte de flujo confiable (TCP). La mayor parte de las aplicaciones necesitan mucho más que sólo la entrega de paquetes, debido a que requieren que el software de comunicaciones se recupere de manera automática de los errores de transmisión, paquetes perdidos o fallas de conmutadores intermedios a lo largo del camino entre el transmisor y el receptor. El servicio de transporte confiable resuelve dichos problemas. Permite que una aplicación en una computadora establezca una “conexión” con una aplicación en otra 45 computadora, para después enviar un gran volumen de datos a través de la conexión como si fuera perramente y directa del hardware. Muchas redes proporcionan servicios básicos similares a los servicios TCP/IP, pero existen unas características principales que los distingue de los otros servicios: •Independencia de la tecnología de red. Ya que el TCP/IP está basado en una tecnología convencional de conmutación de paquetes, es independiente de cualquier marca de hardware en particular. La Internet global incluye una variedad de tecnologías de red que van de redes diseñadas para operar dentro de un solo edificio a las diseñadas para abarcar grandes distancias. Los protocolos TCP/IP definen la unidad de transmisión de datos, llamada datagrama, y especifican cómo transmitir los datagramas en una red en particular. •Interconexión universal. Una red de redes TCP/IP permite que se comunique cualquier par de computadoras conectadas a ella. Cada computadora tiene asignada una dirección reconocida de manera universal dentro de la red de redes. Cada datagrama lleva en su interior las direcciones de destino para tomar decisiones de ruteo. •Acuses de recibo punto-a-punto. Los protocolos TCP/IP de una red de redes proporcionan acuses de recibo entre la fuente y el último destino en vez de proporcionarlos entre máquinas sucesivas a lo largo del camino, aún cuando las dos máquinas no estén conectadas a la misma red física. •Estándares de protocolo de aplicación. Además de los servicios básicos de nivel de transporte (como las conexiones de flujo confiable), los protocolos TCP/IP incluyen estándares para muchas aplicaciones comunes, incluyendo correo electrónico, transferencia 46 de archivos y acceso remoto. Por lo tanto, cuando se diseñan programas de aplicación que utilizan el TCP/IP, los programadores a menudo se encuentran con que el software ya existente proporciona los servicios de comunicación que necesitan. 2.3.15 Protocolos para la gestión de redes Dado que la tendencia natural de una red cualquiera es a crecer, conforme se añaden nuevas aplicaciones y más y más usuarios hacen uso de la misma, los sistemas de gestión empleados han de ser lo suficientemente flexibles para poder soportar los nuevos elementos que se van añadiendo. Con la idea de presentar una solución única, para cualquier tipo de red se diseño el protocolo SNMP (Simple Network Managment Protocol). Para el protocolo SNMP la red constituye un conjunto de elementos básicos – Administradores o Gestores- ubicados en el/los equipo/s de gestión de red y Agentes (elementos pasivos ubicados en los nodos –host, routers, multiplexores, módems, etc. A ser gestionados-), siendo los segundos los que envían información a los primeros, relativa a los elementos gestionados, bien al ser interrogados o de manera secuencial. 2.4 La interfaz Socket Para que los programas de aplicación puedan hacer uso de los diferentes protocolos debe existir entre ambos una interfaz. La arquitectura de la interfaz no está estandarizada: existen diferencias entre un sistema operativo y otro. Sin embargo, los sockets son una interfaz que es soportada en diferentes ambientes, por lo que es útil tomarla como base. Originalmente los sockets fueron desarrollados para el sistema UNIX, pero actualmente existen variantes como la interfaz Winsock, que proporciona la funcionalidad socket para 47 Micosoft Windows. Los sockets también están disponibles en las distintas distribuciones de Linux, así como en el sistema MacOS.1 Además, los sockets son soportados por lenguajes de programación de alto nivel comunes como C/C++, Java y Perl, entre otros. Los sockets son mecanismos de comunicación entre procesos que permiten que un proceso intercambie información con otro, incluso estando estos procesos en distintas máquinas. Como proceso debe entenderse cualquier programa de aplicación que se ejecuta a nivel de usuario. Antes de poder describir más detalladamente los sockets se debe introducir el paradigma de E/S que sigue el sistema UNIX. En este sistema operativo, los procesos de entrada/salida siguen un modelo open-read-write-close (abrir-leer-escribir-cerrar). De esta forma, antes de que un proceso pueda realizar operaciones de E/S debe llamar a una función open para especificar el archivo o dispositivo que se va a usar. La llamada a open devuelve un entero descriptor de archivo. (En UNIX, los dispositivos son transformados en el archivo de espacio de nombre se sistema. Las operaciones de E/S entre archivos y dispositivos no tienen diferencias, en la mayoría de los casos. Por ejemplo, una unidad de disco compacto podría estar representada por un archivo especial denominado /dev/cdrom). Luego de que se ha abierto un objeto, se realizan las operaciones de lectura y escritura necesarias por medio de funciones read y write, respectivamente. Al finalizar las operaciones de transferencia, el proceso de usuario llama a close para informar al sistema operativo que se ha terminado de usar el objeto. En un principio, los diseñadores de UNIX agruparon las operaciones de E/S de red bajo el paradigma anterior, utilizando el archivo especial /dev/tcp. Sin embargo, los protocolos de red eran más complejos que los dispositivos normales de E/S. Además se deseaba que los servidores fueran capaces de esperar conexiones pasivamente, así como la posibilidad de 1En esta sección se hace referencia a la interfaz Socket bajo el sistema BSD de UNIX. 48 mandar la dirección de destino con cada datagrama y no destinos enlazados en el momento en que se llama a open. Estas razones impulsaron a los diseñadores a abandonar el modelo de E/S descrito previamente, y los llevó a adoptar a los sockets como una generalización del mecanismo de acceso a archivos de UNIX, que permiten adoptar varios protocolos. Al igual que con el acceso a archivos, los programas de aplicación requieren que el sistema operativo cree un socket cuando lo necesite. El sistema devuelve un entero, denominado descriptor, que utiliza el programa de aplicación para hacer referencia al socket. La diferencia entre descriptores de archivos y descriptores de socket es que los primeros hacen referencia siempre a un archivo o dispositivo específico cuando la aplicación llama a open, mientras que se pueden crear sockets si enlazarlos a direcciones de destino específicas. La aplicación puede elegir entre abastecer una dirección de destino cada vez que se utiliza el socket (como en el caso de envío de datagramas), o bien, enlazar la dirección de destino a un socket (como en el caso de una conexión TCP). Los sockets conservan semejanzas con las operaciones de E/S con descriptores de archivos. De esta forma, es posible realizar operaciones semejantes a read y write. Así, un proceso puede escribir en un socket, lo cual implica mandar un flujo de datos a través de la conexión, mientras que el otro proceso puede leer del socket para recibir los datos. El proceso de comunicación con sockets está basado en la filosofía Cliente-Servidor. Existe un proceso servidor, que crea un socket cuyo nombre lo conocerá el proceso cliente. Ambos procesos podrán entonces comunicarse en forma bidireccional por medio de la conexión con dicho socket nombrado. Los pasos a seguir para entablar la comunicación son básicamente los siguientes: 1º) El proceso servidor crea un socket con nombre y espera la conexión. 2º) El proceso cliente crea un socket sin nombre. 3º) El proceso cliente realiza una petición de conexión al socket servidor. 49 4º) El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con nombre. Es muy común que cuando se establece la comunicación, el servidor lance un proceso hijo para que se encargue de la transferencia de datos, mientras que el padre continúa esperando conexiones. Cuando un proceso termina de utilizar un socket, éste llama a una función close para cerrar el socket. Los sockets se distinguen por dos características fundamentales: el tipo y el dominio. En la creación del socket se definen estas características para darle a la conexión la funcionalidad deseada, pasándolas como parámetros de la función que abre el socket: int socket (dominio, tipo, protocolo). El resultado de esta llamada es el descriptor del socket recién creado. El tipo del socket se refiere a la naturaleza del mismo, el tipo de comunicación que puede brindar. Los tipos disponibles son los siguientes: * Tipo SOCK_DGRAM: sockets para comunicaciones en modo no conectado, con envío de datagramas de tamaño limitado. Se basa sobre el protocolo UDP. * Tipo SOCK_STREAM: para comunicaciones fiables en modo conectado, de dos vías y con tamaño variable de los mensajes de datos. Utiliza el protocolo TCP. * Tipo SOCK_RAW: permite el acceso a protocolos de más bajo nivel como el IP. * Tipo SOCK_SEQPACKET: tiene las características del SOCK_STREAM pero además el tamaño de los mensajes es fijo. El dominio de un socket indica el formato de las direcciones IP que sigue, así como los protocolos que utilizará el mismo. Los dominios pueden ser: *AF_UNIX: el cliente y el servidor son procesos de una misma máquina. *AF_INET: el cliente y el servidor pueden estar en cualquier máquina de Internet. *AF_PUP o AF_NS: cliente y servidor deben estar en una red de Xerox Corporation. 50 *AF_APLETALK: red Appletalk de Apple Computer Corporation. *AF_CCITT: para protocolos CCITT, protocolos X25, etc. Puede darse el caso de que un tipo de socket soporte varios protocolos para un mismo servicio. Por ejemplo, podría tener más de un protocolo para entrega de datagramas sin conexión. El programador puede escoger el protocolo específico a través del tercer parámetro de la llamada a socket. La creación del socket, por sí misma no crea una asociación con ninguna dirección local o de destino. Para asignarle a un socket servidor una dirección de puerto definida debe llamarse a una función especial encargada de realizar el enlace: bind (socket, direccion_local, longitud_de_dirección). Para esto debe especificarse el descriptor del socket previamente creado, una estructura que provee la dirección local a la que el socket deberá enlazarse y un argumento adicional que indica la longitud de las direcciones medidas en octetos. En lugar de dar la dirección solamente como una secuencia de octetos, los diseñadores eligieron utilizar un estructura para las direcciones. Esta estructura se denomina genéricamente sockaddr y comienza con un campo de 16 bits que identifica el conjunto de protocolos al que pertenece la dirección, seguido por la dirección que puede ser de hasta 14 octetos (grupos de 8 bits). Cada familia de protocolos define cómo se usarán los octetos en el campo de dirección. Para TCP/IP, la dirección de socket se conoce como sockaddr_in e incluye una dirección IP y un número de puerto de protocolo. Por razones semejantes, el proceso cliente debe llamar a una función para establecer una conexión antes de que pueda transferir datos a través del socket recientemente creado: connect (socket, dirección_destino, longitud_de_dirección). La llamada a esta función requiere argumentos similares que la utilizada para enlazar el socket servidor con un número de puerto. En este caso se requiere el descriptor de socket que se refiere al socket servidor. La estructura de dirección se refiere a la dirección de destino a la que deberá enlazarse y se requiere igualmente la longitud de la dirección de destino medida en octetos. 51 En el caso de utilizar TCP, la función anterior intenta realizar la conexión con el destino y en caso de no lograrlo devuelve un error. En cambio, si se utilizan servicio sin conexión, la función no hace más que almacenar localmente la dirección de destino. Para que un servidor acepte conexiones, se requiere realizar llamadas a un par de funciones adicionales. La primera, listen (socket, longitud_cola), sirve para especificar la longitud de la cola de espera que podrá manejar el servidor en ese socket. Si una petición de conexión llega en el momento en el que el servidor está aún ocupado atendiendo a la anterior, la petición entrante quedará en la cola de espera, en lugar de ser rechazada. La segunda función, accept (socket, puntero_sockaddr_cliente, puntero_longitud_dirección_cliente) sirve para aceptar las conexiones entrantes. La función accept se bloquea hasta que el servidor reciba una petición de conexión. En ese momento crea un socket sin nombre con las mismas características que el socket servidor original, lo conecta al socket cliente y devuelve un descriptor de fichero que puede ser utilizado para la comunicación con el cliente. Proceso servidor Crea un socket con nombre Asignarle una dirección al socket. Proceso cliente socket() 52 bind() Crea un socket sin nombre socket() Realiza una petición de conexión al servidor connect() Figura 2.11 Proceso de comunicación entre sockets 53 CAPÍTULO 3: Diseño del sistema de transmisión de datos. La función fundamental que debe cumplir el sistema a diseñar es hacer llegar los mensajes de sistema de una central Meridian a un servidor, para mostrar esta información en una página de Internet. De acuerdo con lo visto en el marco teórico, se desprenden tres posibilidades distintas para realizar la conexión, como se muestra en la siguiente figura. La primera consiste en utilizar una computadora para recibir los mensajes de la central y enviarlos al servidor por TCP/IP. La segunda opción realiza la misma opción, pero utilizando una caja convertidota de RS-232 a RJ-45. La tercera alternativa es conectar la central directamente a la red local. Figura 3.1 Diferentes esquemas de conexión 54 En este capítulo se realiza el diseño del sistema de captura y transmisión de los mensajes y se deja para el siguiente capítulo lo correspondiente al diseño de la aplicación Web. Como primer paso se establecen las especificaciones y restricciones que requiere el sistema para luego escoger el método que mejor se adecúe a esas condiciones. 3.1 Requisitos de diseño En vista de que se espera implementar el sistema en empresas privadas y/o entidades gubernamentales que posean una central Meridian 1, es necesario cumplir con ciertos requisitos para cuidar los recursos tanto de la central como de la red de la empresa. Además se tiene que cumplir otros requisitos que hacen que el sistema sea atractivo y funcional: Seguridad El sistema debe ser seguro. El acceso a la central debe ser evitado, con el fin de no correr el riesgo de que otras personas alteren la configuración de la central del cliente, ni que tengan acceso a su base de datos. Estabilidad El sistema para capturar y transmitir la información debe ser estable. Debe ser capaz de funcionar continuamente 24 horas todos los días. Para cumplir con este aspecto, es necesario que tanto el hardware como el software utilizado para implementar el sistema sean capaces de trabajar ininterrumpidamente. Además se requiere que la conexión a Internet por la cual se va a realizar la transmisión también sea estable. 55 Respaldos Es necesario que el sistema realice copias de seguridad de los mensajes capturados de la central, de esta manera se tendrá un respaldo en caso de que falle la conexión con el servidor y así los datos podrán ser retransmitidos. Sencillez El diseño del sistema debe ser lo más sencillo posible. Esto facilita la implementación del mismo, su operación y la realización de mejoras futuras o ampliaciones para incrementar su funcionalidad. Si el diseño es sencillo, la detección y solución de fallas durante las pruebas es más rápida. Además, hay que tomar en cuenta que el número de clientes que deseen implementar el sistema de supervisión en su empresa podría aumentar con el tiempo, por lo que aumentaría también la demanda de procesamiento del servidor. Si el sistema es sencillo, el servidor podrá satisfacer las demandas de todos los clientes en una forma fácil, sin utilizar muchos de sus recursos. El hecho de utilizar pocos recursos de hardware en la implementación del sistema tiene una repercusión económica importante, debido a que permite utilizar los equipos existentes en otras aplicaciones conjuntas, o bien, comprar equipos menos costosos (la capacidad de una computadora en cuanto a memoria, velocidad de procesador y disco duro son aspectos determinantes en su precio). 56 Modularidad Se desea que el sistema esté compuesto por módulos, cada uno con una función bien definida. Esto simplifica la tarea de diseño y la hace más ordenada, a la vez que facilita futuras reimplementaciones o modificaciones de alguno de los módulos. Claridad Todos los módulos que se utilicen en el diseño deben tener razones que los justifiquen y debe tenerse un conocimiento profundo de su estructura y funcionamiento, para garantizar el funcionamiento del sistema total y también para favorecer las modificaciones futuras o adaptaciones necesarias a la hora de su implementación. El diseño debe estar detalladamente documentado, para facilitar la interpretación del mismo por parte de terceros. 3.2 Escogencia de la línea a seguir El proyecto se diseñó siguiendo la línea de una computadora “cliente” encargada de recibir los mensajes de la central y enviarlos al servidor de páginas Web vía TCP/IP. La opción de conectar directamente la central a la red local se desechó por motivos de seguridad, ya que esa conexión utiliza SNMP, lo cual implicaría que la central queda protegida del exterior únicamente por la seguridad de la red local (el firewall) y es susceptible a ataques provenientes de la misma red interna. La alternativa de una caja convertidota de RS-232 a RJ-45 no fue descartada por completo, sin embargo, implica un gasto adicional y no presenta las facilidades de procesamiento de una computadora. 57 Se estableció que esta computadora debía tener el sistema operativo Linux, y todo el software utilizado debía ser libre. Esto se hizo por dos razones principales: la primera, la estabilidad y seguridad que ofrecen los sistemas basados en Unix, y la segunda, el software libre no representa ningún costo adicional para la empresa. Además, el hecho de tener una computadora realizando esta función presenta las siguientes ventajas: • Se puede procesar las alarmas y otros datos provenientes de la central. • Permite realizar copias de seguridad de la información recibida, así como redireccionarla hacia distintos lugares. • Es posible crear una red privada virtual, así como otros mecanismos para aumentar la seguridad del sistema. • La computadora no tiene grandes exigencias de procesamiento, lo cual permite utilizar una computadora vieja, cuyo costo es bastante bajo en comparación con una caja convertidora de RS232 a TCP nueva. 3.4 Configuración de la central Meridian 1. Aquí se describe la configuración que debe realizarse en la central para que envíe los mensajes a través del puerto serie. Los principales requisitos de la configuración a realizar son: • Salida con formato, para facilitar su identificación e interpretación de los datos • Puerto de solo salida, como medida de seguridad, para que nadie sea capaz de entrar en la configuración de la central aunque tengan acceso a la computadora cliente. 58 Para el primer punto, basta cargar el LD117, que es el programa encargado del manejo de fallas, y escribir el siguiente comando: => CHG FMT_OUTPUT ON El comando anterior activa el formato de los mensajes de salida. Con respecto a la seguridad del sistema, el programa encargado es el LD17. Como mínimo debe realizarse las siguientes correcciones: Prompt Respuesta del del sistema usuario REQ CHG TYPE ADAN USER X MTC comentario deshabilita el puerto como unidad de mantenimiento. X SCH deshabilita la capacidad de cambiar cualquier servicio o base de datos 3.5 Diseño del programa para transmitir datos Luego de plantear el funcionamiento en forma esquemática se redactaron códigos en el lenguaje de programación Perl para las distintas etapas del sistema. La escogencia del 59 lenguaje se realizó tomando en cuenta recomendaciones de profesores de la escuela de Ingeniería Eléctrica, y a la vez se prefirió este lenguaje sobre otros posibles por razones como facilidad y rapidez a la hora de escribir el código fuente, facilidad para encontrar y usar módulos y la versatilidad del lenguaje, ya que Perl es muy completo en todas las etapas del sistema, lo que permitió escribir la totalidad de los programas en el mismo lenguaje. 3.5.1 Especificaciones del comportamiento del programa Los módulos básicos que componen el sistema son: un módulo encargado de capturar los mensajes del puerto serie de la Meridian, un módulo que actúa como proceso cliente y un tercer módulo actuando como proceso servidor (este último ubicado en el servidor de la página Web). Además, se incluyen módulos adicionales para brindar funciones de registro y bases de datos. La siguiente figura presenta un diagrama funcional del sistema: 60 Meridian Captura de Mensajes lee_puerto.pl Identificación Computadora 1 corriendo Linux Registro Proceso Cliente Cliente::enviar() Red local Internet Proceso Servidor servidor.pl Identificación del cliente Servidor Database::actualiza_base() Actualización de Bases de datos 61 Figura 3.2: Diagrama funcional básico del sistema de transmisión. Según el diagrama anterior, hay un bloque encargado de capturar cualquier mensaje que emita la central Meridian. Este es un ciclo infinito, para evitar la pérdida de algún mensaje, éste se ubica en el programa principal, lee_puerto.pl (como apéndice se incluyen los listados de todos los programas del sistema de transmisión de datos, en forma electronica). Los mensajes así obtenidos se identifican y aquellos que cumplen el formato establecido se guardan en un registro de seguridad y se envían al módulo cliente, para que los transmita vía sockets al servidor. El proceso cliente es una subrutina que es llamada cada vez que el programa principal identifica un mensaje con formato válido. Esta subrutina se llama enviar() y se incluyó en un módulo llamado Cliente, por lo que su llamado en el programa principal debe hacerse como Cliente::enviar(mensaje). Junto con el mensaje que se desea enviar se pasa como argumento un número de identificación de la central, que es útil para individualizar las bases de datos posteriormente. La subrutina enviar() se encarga de crear un socket que se conecta con el servidor. Igualmente debe haber un proceso servidor que atienda las peticiones de conexión y reciba los mensajes enviados, éste es el programa servidor.pl. Los mensajes recibidos se pasan como parámetro al módulo encargado de identificar y registrar los mensajes en bases de datos. Esto es necesario porque se asume que se tendrán diferentes clientes, y cada uno debe escribir en su propia base de datos. Esta funcionalidad está implementada en la subrutina actualiza_base(), en el módulo Database. Por último, la presentación de la base de datos se realiza en forma dinámica, a través de un CGI que acepta algunos parámetros por parte del usuario para presentar y filtrar la información en la página Web. El diseño HTML y de los cgi es el tema del siguiente capítulo. 62 A continuación se detalla el diseño de los módulos necesarios para la transmisión de los mensajes por Internet y su incorporación a la base de datos. El primer programa, lee_puerto.pl contiene los módulos de captura de mensajes, identificación, registro y proceso cliente: 3.5.2 Diseño del módulo de captura de mensajes de la Meridian 1. El módulo de captura de los mensajes de la Meridian es un ciclo infinito que espera un mensaje en el puerto serie. Cuando aparece cualquier mensaje, éste es identificado para comprobar que se trata de un mensaje de interés. Bajo el sistema operativo Linux, esto se realiza primeramente con un redireccionamiento del puerto serie hacia un descriptor. Luego de eso el procedimiento es idéntico al de apertura y lectura desde un archivo. La principal dificultad corresponde al ajuste de los parámetros de transmisión del puerto, como son la velocidad, bits de inicio, bits de parada, paridad, bits de datos y control de flujo. Sin embargo, estos ajustes son realizados fácilmente a través de métodos incluidos en el módulo Device::SerialPort, el cual es de código libre y se puede obtener de la página de la CPAN.2 El módulo define la clase SerialPort. Como cualquier clase, lo primero que hay que hacer es crear un objeto de esa clase, mediante el constructor new (lee_puerto.pl, línea 27). Otros métodos útiles definidos en la clase son: baudrate(), parity(), databits(), stopbits(), hanhshake() los cuales ajustan los parámetros de velocidad, bits de paridad, bits de datos, bits de parada y control de flujo, respectivamente. Una vez configurados los parámetros, se realiza el redireccionamiento mediante la función open y se puede leer del puerto como si se hiciera de un archivo. En este caso es un 2 www.cpan.org 63 archivo especial, pues no contiene el carácter de fin de archivo, por lo que leer del archivo se convierte en un ciclo infinito que continuamente espera mensajes (lee_puerto.pl, línea 50). 64 3.5.3 Diseño del módulo de identificación y registro de los mensajes. Cualquier mensaje que se obtenga en el ciclo anterior es guardado en un registro local (lee_puerto.pl, línea 59). Esto se realiza fácilmente: primero se abre el archivo con open FILEHANDLE, nombre de archivo y posteriormente se “imprime” en FILEHANDLE, como print FILEHANDLE “mensaje a imprimir”. FILEHANDLE se conoce como el descriptor del archivo. Sin embargo, no todos los mensajes serán enviados al servidor, ya que pueden haber mensajes que no sean alarmas. Por eso, cada mensaje es identificado para comprobar que cumple el formato de alarma establecido. El formato de las alarmas es el siguiente: <severidad> <id> <fecha> <hora> <no sec> <evento> <numero de secuencia> Operator data:<mens op> Expert data:<mens exp> La severidad se da según el número de asteriscos en el campo severidad. Los campos que se desean presentar son los que se encuentran en la primera línea. La identificación del formato se realiza con la siguiente expresión regular (lee_puerto.pl linea 54): /\** \w+ \d\d\/\d\d\/\d\d \d\d:\d\d:\d\d \d+/ La expresión anterior será verdadera si se cumple el patrón, que quiere decir lo siguiente: \** : Cero o más asteriscos . Ej: *** \w+ : Uno o más caracteres alfanuméricos. Ej.: BUG035 d\d\/\d\d\/\d\d : Formato de la fecha, dd/mm/aa. Ej.: 03/05/05 65 \d\d:\d\d:\d\d : Formato de la hora, hh:mm:ss. Ej.: 12:45:50 \d+: Uno o más dígitos, corresponde al número de secuencia de la alarma. Se puede observar que cada mensaje que cumple con el formato es enviado junto con un número de identificación ($id). Esto es muy útil para organizar la información en bases de datos separadas al llegar al servidor. 3.5.4 Diseño del proceso socket cliente. En esta sección se expone la propuesta para la implementación del proceso socket cliente, el cual forma parte del sistema de transmisión de mensajes por Internet. Los lineamientos expuestos en la sección 2.4 son válidos, sin embargo aquellos se refieren a funciones de más bajo nivel que las implementadas en el módulo IO::Socket, incluido en el núcleo de Perl. El módulo IO::Socket usa en el fondo las funciones definidas en el módulo Socket, las cuales coinciden con las vistas en la sección 2.4. No obstante, IO::Socket es una clase descendiente de IO::Handle, por lo que hereda todos sus métodos, lo cual permite que al crear un objeto de tipo IO::Socket, podamos tratarlo como si fuera un archivo. Otra ventaja de utilizar la clase IO::Socket es la posibilidad de usar la clase derivada IO::Socket::INET, la cual permite crear sockets de tipo INET, en una forma mucho más fácil. De hecho, es posible establecer todos los parámetros del socket al momento de crearlo, debido a que su constructor new() acepta que se le pasen, como la dirección IP remota, el puerto al cual debe conectarse y el protocolo que debe usarse (Cliente.pm, línea 16). Al crear el objeto, se hace una llamada a socket() para crear el socket, pero además se llaman las otras funciones para realizar la conexión, como connect() en el caso del cliente y bind(), listen() y accept() en el caso del servidor. Por esta razón, al crear un objeto de esta 66 clase, el mismo hace referencia a un socket ya inicializado y puede utilizarse directamente para trasmitir datos (Cliente.pm, línea 24). 3.5.5 Diseño del módulo servidor La creación del proceso servidor es muy similar a la creación del cliente, con el módulo IO::Socket::INET (servidor.pl, línea 21). Para este caso, simplemente hay que incorporar los parámetros de número de puerto donde se van a establecer las conexiones (LocalPort)y el número de conexiones que pueden esperar en la cola (Listen). Es recomendable agregar el parámetro ReuseAddr y ReusePort para permitirle al servidor reutilizar la dirección y el puerto antes de llamar a bind(). El servidor que se implementa a continuación tiene capacidad de atender únicamente una conexión al mismo tiempo. Las conexiones entrantes durante el tiempo en el que el servidor está atendiendo otra conexión quedan en una cola de espera, si la longitud de la cola lo permite. Esto es necesario debido a que cada mensaje que entra queda guardado en un registro particular y una base de datos general. Si hubiesen dos o más conexiones abiertas simultáneamente, cada una estaría abriendo y escribiendo simultáneamente en un mismo archivo, lo cual puede causar resultados inesperados. Además, el hecho de que se atienda una conexión a la vez no representa una desventaja significativa, debido a que el tiempo que dura cada conexión es el necesario para abrir un archivo y escribir una nueva entrada en él, por lo que se espera que las conexiones en la cola sean rápidamente atendidas y por lo tanto la longitud de la cola no sea extremadamente extensa. 3.5.6 Diseño del módulo para escribir en la base de datos Como sistema para almacenar los mensajes enviados al servidor se utilizan archivos de texto planos, donde cada línea del archivo corresponde a una alarma diferente, y el número 67 de campos de cada entrada es constante. Cada programa cliente que se conecta al servidor tiene preasignado un número de identificación, lo que le permite al servidor escoger un archivo diferente para cada central. El número de identificación de la central se escogió de tres dígitos, de los cuales los dos primeros corresponden al número de identificación de la empresa propietaria, y el último dígito corresponde al número de central dentro de la empresa. Este sistema tiene capacidad para 100 empresas diferentes, cada una con un máximo de 10 centrales. El sistema escribe en tres bases de datos diferentes: una llamada database_pbx$id, donde $id es el número de tres cifras correspondiente a la central, otra llamada database_empresa$id_empresa, donde $id_empresa es el número de dos cifras propio de cada empresa y la última, database_telectro, donde se escribe toda la información (Database.pm, líneas 22, 26 y 28). Esta organización permite tener respaldos de datos separados para cada central y cada empresa; y permite además que una empresa que tenga más de una central pueda observar en la misma página las alarmas de todas sus centrales de una forma más fácil, como se verá en el siguiente capítulo. Hay un segmento de código (Database.pm, línea 33) que realiza una sustitución del número de asteriscos en el campo de severidad de la alarma por la severidad que representa: ninguna, menor , mayor o crítica. Antes de escribir cualquier entrada nueva, el programa comprueba que la longitud del archivo no exceda cierto límite (Database.pm, línea 41). Esto se realiza principalmente por motivos de visualización de la página, ya que resulta molesto que al abrir la página el número de mensajes que aparece sea exagerado. Por ahora, si se sobrepasa el límite establecido, el mensaje más viejo es eliminado antes de escribir el nuevo mensaje, pero esta funcionalidad puede ser fácilmente modificada para que el programa reescriba esos mensajes en un registro de mayor extensión. 68 CAPITULO 4: Diseño de la aplicación Web Partiendo del diseño que se realizó del programa para la transmisión de datos encargado de la captura, transmisión y almacenaje en base de datos plana de los mensajes de la central Meridian hasta un servidor, se diseñó una aplicación Web para permitir visualizar en tiempo real estos mensajes en forma ordenada, amigable y con algunas facilidades de búsqueda, filtrado y visualización. También esta aplicación se diseñó de tal forma que cuando el usuario ingrese su nombre y clave la aplicación escoja en forma automática e imperceptible al usuario la base de datos correspondiente entre las diferentes bases de datos que existen. De manera que cumpliera las anteriores características se creó el siguiente sistema utilizando CGIs y HTML: Genera código HTML de pagina principal Nombre de la base de datos index.html login.cgi baduser /badpass.html HTML cabeza.cgi usuario Calve marco 1 Nombre de la base de datos usuario/clave incorrecto HTML leerlog.cgi marco 2 Nombre de la base de datos + opciones de búsqueda Figura 4.1: Esquema de funcionamiento de la aplicación Web 69 El usuario ingresa a index.html que le solicita el nombre y la clave, estos datos son pasados a login.cgi que verifica la existencia del usuario y la correcta escritura de la clave. login.cgi crea una pagina principal hecha de dos marcos; en el superior carga la cabeza.cgi que contiene las opciones de búsqueda y en el inferior carga leerlog.cgi que muestra el contenido de la base de datos, login.cgi pasa como parámetro el nombre de la base de datos a leerlog.cgi y a cabeza.cgi. Es indispensable que cabeza.cgi tenga el nombre de la base de datos ya que cuando se realiza una búsqueda es necesario volver a llamar a leerlog.cgi con las opciones de búsqueda y el nombre de la base de datos, ya que este sistema debe funcionar de forma multiusuario o sea que tanto el programa cabeza.cgi como leerlog.cgi pueden estar siendo utilizados al mismo tiempo por diferentes clientes y la única forma diferenciar la base de datos correcta es pasándola como parámetro. El diseño HTML se realizó con la asistencia del programa DreamWeaver de Macromedia. Para el diseño de los módulos CGI se utilizó el lenguaje de programación PERL. 4.1 Módulo index.html Se visualiza de la siguiente manera: Figura 4.2: Captura de pantalla de index.html 70 Este módulo constituye el inicio de la aplicación y su función principal consiste en obtener el nombre de usuario y su clave y pasarlos como parámetros a login.cgi. El listado completo de todos los códigos HTML se encuentra en el CD de apéndices. 4.2 Módulo login.cgi Este modulo recibe el nombre de usuario y su clave como parámetros con los que realiza el siguiente procesamiento NO Existe el usuario? Corre baduser.html; es igual a index.html pero con un mensaje de error SI NO SI Clave correcta? Corre badpass.html; es igual a baduser pero cambia el mensaje de error Nombre de base de datos = nombre de la base de datos del usuario ingresado Se imprime el código HTML que crea la pagina principal con 2 marcos; en el superior se llama a cabeza.cgi y en el inferior se llama leerlog.cgi En el llamado de estos dos CGIs se incluye como parámetro el nombre de la base de datos Figura 4.3: Diagrama ASM de login.cgi 71 Su implementación en lenguaje PERL se encuentra en el CD de apéndices. 4.3 Módulo cabeza.cgi Este modulo imprime el código HTML necesario para visualizar lo siguiente: Figura 4.4: Captura de pantalla de cabeza.cgi La figura anterior constituye la cabeza o marco superior de la página principal. Este contiene las opciones de búsqueda, omisión y ordenamiento de la base de datos. El primer menú sirve para escoger entre búsqueda o omisión, en el campo de texto se escribe la(s) palabra(s) que se desean buscar u omitir, en el segundo menú se escoge entre las columnas: central, severidad, código alarma y fecha que es donde se realizaría la búsqueda u omisión y en el tercer menú se escoge si se desea visualizar las entradas de la base de datos en orden de severidad (de critica a menor) o en orden de fecha (de primero el evento más reciente). Este módulo pudo haber sido un HTML estático, pero fue necesario hacerlo un CGI para poder pasar el parámetro de nombre de la base de datos al modulo leerlog.cgi 72 4.4 Módulo leerlog.cgi Este modulo es el más complejo y poderoso de todos los vistos en esta sección, tiene la capacidad de generar el código HTML necesario para presentar una base de datos plana de cualquier tamaño en forma de una tabla. Para generar este código HTML se basa en una plantilla (plantilla.html, ver CD de apéndices), lo que permite fácilmente realizar modificaciones visuales a la tabla. El nombre de la base de datos se le pasa como parámetro lo cual permite que este programa sea capaz por si mismo de visualizar cualquier cantidad de bases de datos diferentes, por lo que cualquier cantidad de usuarios pueden estar utilizando el programa al mismo tiempo y visualizando resultados distintos. También es el que se encarga de realizar las búsquedas, omisiones y ordenamiento, para lo que recibe los siguientes parámetros con los siguientes posibles valores: Tabla 4.1: Parámetros y sus posibles valores en leerlog.cgi Parámetro Posibles valores archivo database_XXXX ordenar fecha o severidad tipo buscar u omitir dato XXXX columna columna0, columna1, columna3, columna4 Y realiza el siguiente procesamiento: 73 columna2, Datos = contenido de la base de datos Se le da vuelta a la base de datos para que los últimos datos ingresados que son los mas recientes queden de primeros y así quede ordenado por fecha (que es el ordenamiento por defecto) SI NO ordenar = severidad? Datos1 = buscar “criticas” en dato Datos2 = buscar “mayores” en dato Datos3 = buscar “menores” en dato Datos4 = buscar “ningunas” en dato Datos = unir Datos1 + Datos2 + Datos3 + Datos4 NO Datos = cada uno de las palabras que contiene dato. Para cada una de ellas: tipo = buscar? Datos = Datos – entradas que tengan “datos” en “columna” SI Datos = entradas que tengan “datos” en “columna” Generar tabla a partir de Datos Figura 4.5: Diagrama ASM de leerlog.cgi En el siguiente capítulo se incluye un ejemplo de utilización. 74 Capítulo 5: Guía para la instalación y el uso La propuesta de diseño realizada en los dos capítulos anteriores fue probada y cumplió con la funcionalidad deseada. Se llevaron a cabo simulaciones por medio de programas que emulaban el comportamiento de la central, una calculadora HP48 que emite mensajes a través de su puerto serie y finalmente una central telefónica real. Las pruebas se realizaron sobre varios sistemas operativos: para la computadora cliente se utilizó Linux Debian Woody, Debian Sid y Mandrake 9.1, todos con kernel 2.4 o superior. Para el servidor de páginas Web se utilizó apache sobre los mismos sistemas operativos mencionados y además se probó sobre los sistemas OSX 10.2 y 10.4 de Apple. Todas las pruebas tuvieron resultados positivos. El sistema funciona en forma estable, eficiente y rápida. Además, la seguridad de la central está garantizada, de acuerdo con lo visto en el capítulo 3. Sin embargo la transmisión de datos por Internet no es totalmente segura por lo que se recomienda tomar medidas de seguridad antes de implementar el sistema (en el siguiente capítulo se detallan las recomendaciones al respecto). No obstante, el sistema puede implementarse en forma segura si se realiza en una red privada (o en una red privada virtual) que esté protegida mediante un firewall. Para poner en marcha la propuesta se requiere lo siguiente: 5.1 Requisitos de Hardware y Software Se determinó que la computadora cliente debe contar con las siguientes características mínimas. Preferiblemente esta computadora debe utilizarse únicamente como computadora cliente del sistema y para la administración local de la central. 75 Hardware: Procesador Pentium 75Mhz. 24 Mb de memoria RAM. Disco Duro de 450 Mb. Interfaz RS-232. Tarjeta de Red 10/100 Base T. UPS propia. Software: Sistema Operativo Linux, kernel 2.4 o superior Perl 5.8.4. Módulo DeviceSerialPort. El servidor debe contar, al menos, con el siguiente equipamiento. Evidentemente si se va a implementar el sistema dentro de una red local, la computadora cliente puede ser utilizada como servidor de páginas web, por lo que se necesitaría únicamente una computadora que cumpla con los requisitos de hardware y software tanto del cliente como del servidor. Hardware: Procesador Pentium II 300 MHz. 128 Mb de memoria RAM. Disco Duro de 4 Gb. Tarjeta de Red 10/100 Base T. UPS propia 76 Software: Sistema Operativo Linux, kernel 2.4 o superior Servidor de páginas web Apache. Perl 5.8.4 Para la computadora que actúa como servidor es todavía más recomendable que no sea utilizada como estación de trabajo, por lo que no necesita el sistema gráfico de Linux (sistema X) sino solamente el sistema básico de consola. 5.2 Instalación del sistema Antes de que la computadora cliente pueda enviar los mensajes al servidor, en éste segundo debe estar ejecutándose tanto el servidor de páginas web apache como el programa servidor.pl. En el sistema Debian Linux, el apache utiliza las páginas web ubicadas en el directorio /var/www, mientras que los cgi que puede ejecutar deben ubicarse en /usr/lib/cgibin. La estructura de archivos y directorios debe quedar de la siguiente manera: /var/www/ index.html baduser.html badpass.html imagenes/ flash/ css/ 77 /usr/lib/cgi-bin/ plantilla.html login.cgi cabeza.cgi leerlog.cgi Subrutinas.cgi servidor.pl Database.pm database_telectro database_pbx000 database_empresa00 Los archivos deben contar con los permisos necesarios para verse, ejecutarse y modificarse correctamente, según sea el caso. Las bases de datos correspondientes a cada empresa y cada central deben existir para que el programa servidor.pl puede ejecutarse. Cuando se requiera agregar una nueva empresa o una nueva central, debe realizarse lo siguiente: • Crear los archivos necesarios, de la forma database_pbxXYZ y database_empresaXY. • Agregar el nombre de la central al hash %nombres (Database.pm, línea 39). • Asignarle al programa lee_puerto.pl correspondiente a la nueva central el número de identificación $id XYZ (lee_puerto.pl, línea 22). El puerto donde el servidor espera conexiones es el 9000, pero puede cambiarse si es necesario (servidor.pl, línea 19). Una vez que el servidor ha sido configurado y está ejecutando el programa servidor.pl, cada cliente puede iniciar el envío de mensajes. La computadora cliente requiere 78 únicamente de dos archivos: Cliente.pm y lee_puerto.pl. Las principales variables que hay que ajustar en estos archivos son: • El número de identificación de la central (lee_puerto, línea 22). • El directorio donde se ubica el registro de respaldo (lee_puerto, línea 23). • Los parámetros de transmisión del puerto (lee_puerto.pl, línea 33). • La dirección IP del servidor (Cliente.pm, línea 16). • El puerto de conexión (Cliente.pm, línea 19). Si por algún motivo se deja de ejecutar el programa servidor.pl, cada programa lee_puerto.pl finalizará cuando llegue un mensaje del puerto serie, debido al error de conexión. En este caso hay que volver a ejecutar lee_puerto.pl nuevamente después de que se reestablezca la conexión con el servidor. 5.3 Uso de la aplicación web • Inicio ! Index.html constituye el inicio de la aplicación web, en el caso en el que este sistema se vaya a instalar en un sitio web ya diseñado el nombre index.html no prodrá ser utilizado debido a este será el nombre de la página principal, por lo que deberá de cambiarse el nombre y realizar un enlace desde la página principal para que el cliente pueda accesar desde ahí. ! Index.html presenta el siguiente formulario donde se debe introducir el nombre y la clave de usuario. 79 Figura 5.1: Página de inicio • Después de ingresar el nombre de usuario y la clave correctos se presentan las alarmas (marco inferior) y las opciones de busqueda (marco superior). De forma predeterminada se presentan todas las alarmas en orden de fecha. • Figura 5.2: Ejemplo de ordenamiento por defecto 80 ! Opciones de busqueda y visualización ! Este sistema nos permite realizar una búsqueda u omisión (filtrado) de una o más alarmas por alguna de sus características (Central, Severidad, Codigo Alarma, Fecha, Hora, # Evento) ! En la primera casilla (de izquierda a derecha) de selección el usuario puede escoger entre buscar u omitir Figura 5.3: Opciones de búsqueda o filtrado ! En el espacio siguiente (caja de texto) se debe de introducir la palabra o las palabras (separadas por espacios) que se desean buscar u omitir ! En la siguiente casilla se debe de seleccionar la característica de la alarma por la que se va realizar la búsqueda u omisión. Figura 5.4: Característica a filtrar 81 ! En la siguiente casilla se escoge si los resultados se desean visualizar de forma ordenada por fecha (de primero el evento más reciente) o por severidad (de primero los eventos con severidad crítica) Figura 5.5: Opciones de ordenamiento ! Asi por ejemplo si se desea buscar las alarmas mayores y menores y presentarlas de forma ordenada por severidad se modifica las casillas de la siguiente forma Figura 5.6: Ejemplo de una búsqueda y se obtienen los siguientes resultados Figura 5.6: Resultado de la búsqueda de ejemplo • También es posible ordenar la tabla sin realizar ninguna búsqueda o filtrado. Para esto simplemente se debe dejar la caja de texto en blanco y especificar el orden que se desea para la tabla (por fecha o severidad) 82 CAPÍTULO 6: Conclusiones y Recomendaciones El proyecto realizado cumple satisfactoriamente con el objetivo general planteado, el cual fue diseñar un sistema para la supervisión de centrales telefónicas a través de Internet. El sistema está enfocado a la transmisión de mensajes de las fallas ocurridas en una central hacia un servidor, donde tales mensajes son presentados en una página Web. Como resultado del diseño de los diferentes módulos que constituyen el sistema propuesto se obtuvo una aplicación que es funcional, útil y fácil de implementar. Además es flexible, en cuanto permite que se mejoren o agreguen nuevas funcionalidades. El proyecto está basado en la interrelación de módulos de distinta naturaleza y función. Básicamente está constituido por tres bloques: el primero encargado de capturar los mensajes que emite la central a través de su puerto serie. A continuación está el bloque de transmisión de datos por Internet, el cual está constituido por un socket cliente y otro servidor. Por último, hay un bloque encargado de la presentación dinámica de la información en formato HTML, lo que permite que el usuario final acceda a esta información por medio de cualquier browser. Para el desarrollo de los códigos se utilizó el lenguaje de programación Perl, bajo el sistema operativo Linux. Se demostró que el lenguaje de programación escogido es muy versátil y ofrece una amplia variedad de funciones y módulos que facilitó en gran medida la redacción de los códigos, como por ejemplo los módulos DeviceSerialPort, IO::Socket y CGI. Sin embargo, se observó que Perl es un lenguaje que trabaja con scripts, lo cual deja el código fuente expuesto y podría ser modificado por terceras personas. La seguridad de la central telefónica fue un aspecto que se tomó en cuenta durante el diseño. Para esto se configuró el puerto serie de la misma de manera que no permitiera su utilización como terminal de mantenimiento ni diera acceso a la base de datos. Para el almacenamiento de la información en el servidor se utilizó un conjunto de bases de datos planas: una para cada central, otra para cada empresa (en el caso de que una 83 empresa posea más de una central) y otra general, que permite observar todas alarmas de todas las centrales al mismo tiempo. La aplicación Web que se diseñó utiliza la información de las bases de datos para generar una tabla en una página HTML. Esta aplicación incluye herramientas para buscar y ordenar la información que se presenta, lo que facilita al usuario final la interpretación de los datos y le da un aspecto amigable. Conviene realizar trabajos similares que supervisen el desempeño de las centrales y permitan llevar a cabo decisiones remotas de mantenimiento. Para aumentar la seguridad y utilidad del sistema de manera que se pueda brindar el servicio de una forma más confiable, se tienen las siguientes recomendaciones: •La transmisión de la información debe ser segura. Debe impedirse que personas ajenas decodifiquen los datos que se están enviando por Internet y tengan de esa forma información de la central del cliente. Para esto es necesario encriptar los datos transmitidos o crear una red privada virtual (VPN). •También se puede incrementar la seguridad del sistema agregando un firewall propio para el servidor, de manera que permita únicamente las conexiones en el puerto predeterminado (puerto 9000). Además, si las direcciones IP de los clientes se conocen de antemano, es posible aceptar solo las conexiones provenientes de tales direcciones IP. •Para que un cliente pueda confiar en la información que observa en la página, la misma debe presentar un estado de la conexión actual, tanto entre la central y la computadora cliente como entre esta última y el servidor. •Es importante que el sistema sea lo más independiente posible de mantenimiento. Es deseable que el programa haga una retransmisión de la información en caso de que se corte la comunicación, así como que el programa se ejecute automáticamente al encender la computadora. También es posible que el programa busque formas alternativas de 84 comunicación con el servidor en caso de que se caiga la conexión, por ejemplo que intente conectarse vía telefónica. •Procesar información sobre los registros de tráfico es un aspecto que haría al sistema muy atractivo comercialmente, ya que estos registros contienen amplia información sobre el desempeño de la central. •Incluir un sistema de bases de datos más completo da la posibilidad de realizar búsquedas más avanzadas sobre los datos registrados. Se recomienda utilizar el sistema de bases de datos SQL. •Es posible modificar el programa lee_puerto.pl para que además de recibir datos de la central sea capaz de darle comandos a la central. Esto permitiría a los técnicos programar centrales y acceder a su configuración vía Internet. Actualmente los técnicos de Telectro realizan configuraciones remotas de centrales ubicadas en Honduras, El Salvador, etc, pero lo hacen vía MODEM. Esto representa un costo mucho mayor, debido a que están realizando una llamada internacional. •Es conveniente evitar que el código del programa lee_puerto sea alterado. Se recomienda buscar un método ya sea para comprobar la integridad del código o bien para ocultarlo del usuario. •El sistema de aviso de alarmas puede mejorarse haciendo que el programa se encargue de notificar a los técnicos la ocurrencia de ciertas alarmas criticas, ya sea mediante un correo electrónico, un mensaje a un teléfono celular, etc. •Para mejorar la eficiencia del sistema, se recomienda que la computadora cliente tenga como segunda función actuar como servidor de paginas Web para la red local de la empresa. Esto aumentaría notablemente la velocidad del sistema ya que reduce el ancho de banda necesario para la transmisión de los datos, al tiempo que reduce también el uso del procesador del servidor principal. 85 BIBLIOGRAFÍA Libros: Comer, D. Redes Globales de Información con Internet y TCP/IP. Tercera Edición, Editorial Prentice Hall, 1996. Chinchilla, J y Aizprúa, M. Networking Essencial. Primera Edición, Grupo Asesor en Informática S.A., Costa Rica, 1998. Guelich, S., Shishir, G. y Birznieks, G. CGI Programming with Perl. Segunda edición, Editorial O'Reilly, Estados Unidos, 2000. Huidobro, J. Sistemas Telemáticos. Primera Edición, Editorial Paraninfo, España, 1999. Schwartz, R. y Phoenix, T. Learning Perl. Tercera Edición, Editorial O'Reilly, Estados Unidos, 2001. Páginas Web: López, Juan. Tutorial HTML, www.um.es/~psibm/tutorial Comprehensive Perl Archive Network, www.cpan.org Los Sockets: Una Referencia Rápida, www.hackuma.com/socketz.htm Perl Documentation perldoc.perl.org The Apache Software Foundation, www.apache.org The CGI Resource Index, cgi.resourceindex.com The Perl Directory, www.perl.org Documentos electrónicas: Biblioteca de Consulta Encarta. Microsoft, 2002. Meridian Electronic Referente Library (MERL). Nortel Networks, Canada, 2002. 86 Apéndices Se incluye un CD con todos los programas utilizados en el desarrollo de este sistema. 87 ANEXOS: Nemónicos de los Mensajes de Error. Se indica si el mensaje puede ser filtrado. Nemónic Significado o ACD Automatic Call Distribution Load Management ADD Automatic Call Distribution Data Dump AMH Auxiliary Message Handler AML Application Module Link AMLM Application Module Link Maintenance ATM Automatic Trunk Maintenance AUD Software Audit AUTH Authorization Code BERR Bus Error Monitor BIC Bus Interface Circuits BKP Remote Backup BRI Basic Rate Interface BSD Background Signaling Diagnostic BUG Software Error Monitor CCBR Customer Configuration Backup and Restore CCED Core Common Equipment Diagnostic CCR Customer Controlling Routing CDM Call Detail Recording Diagnostic CDN Control DN CED Common Equipment Diagnostic CIOD Core Input/Output Diagnostic CLKC Clock Controller CMF Compelled Multifrequency Diagnostic CMON Core Monitor CND Caller's Name Display CNF Conference Circuit Diagnostic CNI Core to Network Interface CNV Conversion COM Data Communication 88 Filtro x x x x x x x x x x x x x x x x x x Nemónic Significado o CRI Carrier Remote IPE CSA Command and Status Link Diagnostic CSC Customer Service Change DBMT Database Media Transfer DCH D-Channel Diagnostic DLO Disk Layout DSET Digit Set Download DTA Digital Trunk Diagnostic DTC Digital Trunk Clock Controller Diagnostic DTD Dial Tone Detector Diagnostic DTI Digital Trunk Interface Diagnostic DTM Digital Trunk Maintenance DTRK Digital Trunk Diagnostic EDD Equipment Data Dump EHM Automatic Path Retention EMR Emergency Key ERR Error Monitor (Hardware) ESDA Enhanced Serial Data Interface ESDI Enhanced Serial Data Interface ESN Electronic Switched Network FHW Faulty Hardware FIJI Fiber Juntion Interface FIR Fibre Remote IP FMEM Flash Memory HEX Hexadecimal Codes and Conversion HWI Hardware Infrastructure Maintenance HWR Hardware Reset ICU Intercept Computer Update IGS Intergroup Switch and System Clock Generator INI Initialize INST Installation IOD Input/Output Diagnostic ISR Intergroup Switch and System Clock Generator Diagnostic ITG Integrated IP Telephony Gateway 89 Filtro x x x x x x x x x x x x x x x x x x Nemónic Significado o ITS Integrated IP Telephony Gateway LNK Link Diagnostic MAT Meridian Administration Tool MCT Malicious Call Trace MEM Memory Management MFC Multifrequency Compelled Signaling MFD Multifrequency Signaling Diagnostic MFE Multifrequency Signaling Diagnostic MFK Multifrequency Signaling for KD3 MFR Multifrequency Receiver MFS Multifrequency Sender Diagnostic for ANI MISP Multi-purpose ISDN Signaling Processor MOB Mobility MPH Meridian Package Handler MRB Message Registration Block MSDL Multi-purpose Serial Data Link MSR Multigroup Switch Replacement MWL Message Waiting Lamps Reset NACD Network Automatic Call Distribution NCT Network Call Trace NPR Network and Peripheral Equipment Diagnostic NWS Network and Signaling Diagnostic OHAS Off-Hook Alarm Security OSM Operating System Messaging OSN On-Site Notification OVD Overload Monitor OVL Overlay Loader PCH System Patch Reports PMS Property Management System Interface PRI Primary Rate Interface Diagnostic PWR Power and System Monitor RCV Recovery Messages RPD 1.5Mb/s Remote Peripheral Equipment Diagnostic RPE 2Mb/s RPE Alarm Handler 90 Filtro x x x x x x x x x x x x x x x x x x Nemónic Significado o RPL 1.5Mb/s Remote Peripheral Equipment Local End Diagnostic RPM 2Mb/s Remote Peripheral Equipment Diagnostic RPT System Reporting SCH Service Change SCSI Small Computer System Interface SDL Peripheral Software Download SECA Security Administration Alarm SRPT System Reports SYS System Loader TDS Tone and Digit Switch Diagnostic TEMU Tape Emulation TFC Traffic Control TFN Customer Network Traffic TFS Traffic Measurement TMDI TMF Test Multifrequencies TRA Call Trace TRK Trunk Diagnostic TSM Time Slot Monitor TTY Teletype Error Reports VAS Valued Added Server VTN Voice Port TN XCT Conference, Tone and Digit Switch, and Multifrequency Senders Cards XMI Network to Controller Message Interface. 91 Filtro x x x x x x x x x x x x x
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Related manuals
Download PDF
advertisement