lunes, 7 de julio de 2008

Protocolos de Comunicación

Un Protocolo es un conjunto de reglas o normas que emplean dos equipos informáticos para intercambiar información, de tal forma que puedan establecer y mantener una comunicación sin errores.
Las funciones más importantes de los protocolos son; control de errores, de Flujo, de Congestión y estrategias de encaminamiento.Las comunicaciones entre ordenadores, están divididas en las tres fases siguientes:
1. Establecimiento: Se establece la conexión física de los terminales y se ponen de acuerdo en cuanto al procedimiento empleado para el intercambio de información.
2. Transmisión de Información: Ambos sistemas intercambian información por el enlace ya establecido. En esta fase se da comprobaciones de la información trasmitida/recibida para corregir cualquier error si lo hubiera.
3. Terminación: Concluye la comunicación.
En definitiva, los protocolos de comunicación son programas (software) que se instalan tanto en el Terminal de origen como en el de destino. Estos programas añaden una serie de datos de control, a la información que se pretende trasmitir. Estos datos de control son agregados por el trasmisor y suprimidos por el receptor antes que la información llegue al usuario.
Inicialmente, los protocolos los establecía el fabricante del dispositivo, sin embargo, con el desarrollo de la informática, fue necesario normalizar o estandarizar estos protocolos y el fabricante se sujeta por lo general a esta normativa. Debe aclararse que un protocolo define únicamente cómo deben comunicar los equipos, es decir, el formato y la secuencia de datos que van a intercambiar, no define cómo se programa el software para que sea compatible con el protocolo.
La Organización Internacional de Normalización ISO (siglas en inglés), ha propuesto un modelo de comunicación que le ha llamado OSI (Open system interconection) que se basa en siete niveles: físico, de enlace, de red, transporte, sesión, presentación y aplicación; aunque no todas las comunicaciones sean tan complejas como para requerir de los siete niveles.
De todos los niveles propuestos por la OSI, los que siempre están presentes en toda comunicación, son evidentemente los de control de enlace, en inglés (Data Link Control; DLC). El objetivo de estos protocolos es:Sincronización de trama y transparencia: está relacionado con el sincronismo de carácter; o sea que el receptor pueda reconocer cual es primer bits de la secuencia que corresponde a la información, de igual forma, la información cuando es relativamente grande se divide en tramas o bloques de información, el reconocimiento del inicio y fin de estos bloques se le conoce como sincronismo de trama.
La transparencia está referida a la capacidad del protocolo de recibir cualquier tipo de información, aún cuando dentro de la codificación de la misma, puedan repetirse códigos asignados a los códigos de control.
Existen tres métodos de sincronizar la trama: Principio y fin, Principio y cuenta, Guión.
Por el método principio y fin, el comienzo y el fin de cada trama se indica mediante caracteres de control, el receptor reconoce estos caracteres y determina el comienzo y fin de cada trama. Para que el protocolo sea transparente se ocupa un carácter de escape o DEL (Data Link Escape), si un carácter de la información trasmitida por el usuario coincide con el código de escape, este se envía dos veces.Las debilidades del protocolo anterior para asegurar la transparencia, dio origen a los protocolos de Principio y Cuenta, los cuales emplean una longitud de cabecera de trama fija, sin embargo los dos protocolos anteriores tienen una orientación hacia el carácter, o sea la mínima información es un carácter.
Para independizar el protocolo de la información, se generaron protocolos orientados al bit, pudiendo transmitirse cualquier cantidad de bits y no necesariamente múltiplos de ocho. En este sistema el único delimitador es un guión o bandera.
La Coordinación de la Comunicación está referida a que los ordenadores sepan como identificar cada uno de los mensajes que recibe, debe recordarse que la comunicación pude establecerse entre varios ordenadores, cuando no existe un ordenador moderador o coordinador de cada uno de los terminales, deben contemplarse métodos para las colisiones de información y los sistemas deben tener la capacidad de reestablecerse.
En el Control de Errores, se dan las modalidades tanto de detección como de corrección, sin embargo, lo usual es solamente la detección y petición de retransmisión. Entre los métodos de detección pueden citarse: El de Paridad y el cíclico y para la retransmisión, el de parada y espera, y el de envío continuo.
En el Método de Paridad, se añade un bit (llamado de paridad) a cada uno de los caracteres transmitidos, este bit debe tener un valor de cero o uno, de tal forma que el número total de unos del carácter sea un número impar, si el método es por paridad impar, o bien un número par, si el método es de paridad par. A este método también se le conoce como de paridad vertical o también como sistema de comprobación de redundancia vertical. Cuando el bit de comprobación también se añade al final de cada trama, a este se le conoce con el nombre de carácter de comprobación horizontal.En la terminología técnica se le es muy conocido por el nombre de carácter de suma de compración (checksum en inglés).
El Método cíclico o polinómico, agrega al final de cada trama una secuencia de bits, conocida como secuencia de verificación de trama (SVT), esta secuencia esta relacionada matemáticamente con la información de la trama. El receptor recalcula el valor y lo compara con la secuencia que recibe.En relación al pedido de retransmisión en caso de detectarse un error, los métodos usuales son el de parada y espera; en el que después de enviar cada trama, espera a recibir respuesta de aceptación o rechazo; ACK si es de confirmación o NAK, si es de rechazo.
En el método de envío continuo, se le añaden identificadores numéricos a cada trama. Los métodos de parada y espera están más relacionados con los protocolos orientados al carácter, y el de envío continuo, con aquellos orientados al bit.
Con el Desarrollo y el cada ves más exigente mercado informático, han surgido una amplia variedad de protocolos de comunicación, entre los más destacables pueden citarse;FTP, HTTP, NFS, POP 3, IMAP4, TCP/IP, ARP, SSL, S-HTTP, ICMP, FTP.Algunos de ellos los veremos en artículos independientes por su importancia y extensión.

Comunicaciones Digitales

Contenido
*** Comunicaciones Serie
*** Interfaces Estándar
*** Comunicaciones Simplex, half-duplex y full-duplex.
*** Protocolo Comienzo Final.
*** Cálculo de Líneas Radio Frecuencia.
*** El Estándar RS- 232.
Comunicaciones en Serie
Cuando se envía más de un bit de datos a la vez, se dice que la transferencia de datos es en paralelo. Si los datos se envían de uno en uno, la comunicación es en serie.En las comunicaciones en serie sólo es necesaria una línea de datos, además de la línea neutra.
Ya que los datos en el ordenador se almacenan en paralelo, estos deben convertirse a serie, separándose unos de otros por espacios de tiempo definidos por el reloj de transmisión.
La mayoría de los terminales CRT que se usan con sistemas de ordenadores están preparados para transmisiones en serie, incluso si las unidades se encuentran muy cerca del ordenador por razones de facilidad de instalación.Algunas impresoras y algunos otros dispositivos periféricos van equipados con ambos tipos de comunicación, aún cuando operan con puerto USB.
Interfaces Estándard
Se han hecho esfuerzos para intentar estandarizar las características del interfaz serial y paralelo.La Asociación de Industrias Electrónicas EIA y otros grupos nacionales e internacionales han definido estándares para equipos de comunicaciones de datos en serie. Estos estándares proporcionan especificaciones mecánicas, eléctricas y funcionales de un interfaz. Proporcionan un juego estándar de reglas o procedimientos, llamado protocolo para establecer y mantener comunicaciones por medio del interfaz.
Uno de los más usados estándares de comunicación serie adoptado por la EIA se conoce como el RS-232C, este estándar está limitado a una velocidad 20.000 bits por segundo (bps) y para una distancia máxima de 50 pies.Otros estándares como el RS-422 y el RS-423, permiten velocidades de transmisión más altas y a mayores distancias. Pero la mayoría de las aplicaciones no requiere estos incrementos, por lo que las limitaciones del RS-232 son aceptables.
Comunicaciones Simplex, half-duplex y full-duplex.
Las comunicaciones seriales entre módulos se implementan haciendo posible la transmisión en una o dos direcciones.En la comunicación simplex los datos van en una sola dirección. Físicamente los driver lógicos permiten enviar los datos sólo en una dirección específica.
Las comunicaciones half-duplex, los datos pueden transmitirse de un módulo a otro y viceversa, pero sólo en una dirección a la vez.En la full-duplex se pueden producir en ambas direcciones al mismo tiempo, ya que hay físicamente dos vías separadas para los datos.
Separación de los Datos
En las comunicaciones en serie se necesita algún tipo de procedimiento para indicar cuándo se va a enviar datos a un módulo y cuándo este módulo ha recibido los datos. Por otra parte debe distinguirse entre un bit y el siguiente, y entre cada uno de los grupos de bits que forman un carácter, una palabra o cualquier tipo de bloque.Si para separar los bits se utiliza un espacio de tiempo constante, T, y la unidad receptora conoce ese espacio de tiempo, entonces se pueden usar circuitos digitales para identificar cada bits, esto hace innecesaria una señal de envío y repuesta.
Si la velocidad de transmisión es lo suficientemente lenta, se puede hacer que los módulos de recepción y transmisión usen sus propios sincronizadores o relojes para determinar el valor de T.Antes de transmitir un carácter, el reloj de recepción se sincroniza con el reloj de transmisión por medio de un bit de comienzo. En este método se adiciona un carácter de final de carácter para que los relojes vuelvan a sincronizarse. Este método se conoce como Método de Comunicación Asíncrona.
Protocolo Comienzo Final
En este método, la línea de datos está en alta hasta que hay datos para enviar, entonces la línea de datos se pone en baja durante una unidad de tiempo; es decir el tiempo necesario para enviar un bit serial. Este es el bit de comienzo, el cual va seguido de los bits en serie del carácter. El bits menos significativo va de primero. Este carácter se especifica de acuerdo con un código, tal como un código ASCII de 7 bits. A veces se incluye también un bit de paridad el cual se usa para detectar errores. Finalmente se envían uno o más bits de final.
En las comunicaciones en serie, el bit bajo (0) se le conoce como espacio y al bit alto (1) como marca. El número total de bits enviados de un carácter más los de comienzo y final se le conoce como estructura. Este Protocolo se emplea para casi todas las comunicaciones Asíncronas.El bit de paridad ayuda a detectar los errores de un bit que se pueden producir durante la transmisión.
El bit de paridad se obtiene contando el número de unos (1) del código del carácter. Si el número de unos (1) es un número impar, y se desea una paridad par, entonces se pone un uno (1) en el bit de paridad, de forma que en el carácter haya un número par de unos (1). Si por el contrario, se desea paridad impar, y el carácter es el mismo, entonces se selecciona un cero (0) como bit de paridad, de forma que el número de unos (1) sea impar. El circuito generador de paridad de la unidad de envío cuenta el número de unos (1) del carácter que se se va a enviar y pone el bit de paridad correspondiente. La unidad receptora cuenta también el número de unos (1) y calcula cual tiene que ser el bit de paridad. Entonces compara el bit de paridad recibido con el bit de paridad calculado. Si los bits de paridad coinciden, entonces se asume que no hay error.La paridad no asegura que se vayan a detectar todos los bits que se hayan perdido o que hayan cambiado, pero es un método fácil y sencillo y se usa frecuentemente en el Protocolo Asíncrono.
Hardware y Software

En la práctica, se fabrican IC que se encargan de convertir los datos paralelos del ordenador a su contraparte serie y añaden el correspondiente bit de paridad a cada estructura de datos. A estos se les llama Transmisores Receptores Asíncronos Universales (UART). El UART es tratado como si fuera un puerto y va unido directamente a los buses de dirección de datos y de control. Si no se quiere usar este IC el programa tendrá que añadir la información de estructura necesaria y enviar los bits en serie.
Hay ciertos microprocesadores que soportan comunicaciones en serie directamente desde el chip, de no se así se puede emplear un simple circuito digital de bloqueo (flip-flop). Es recomendable incluir la UAR dentro del Hardware contra hacerlo vía Software, salvo cuando las unidades son lo suficientemente numerosas como para que implique una reducción de costos significativa.