Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI 5.-ARQUITECTURA DE UNA RED Y CORRECCIÓN DE ERRORES Protocolo= Programa pequeño que analiza unas cosas y el otro me entiende. La comunicación entre dos ordenadores y para su entendimiento necesitan unos niveles y normas para pode entenderse. Interface: La comunicacion entre las normas se denomina interface. Una de las necesidades más elementales de un sistema de comunicación, es el desarrollo de los estándares. Sin ellos, sólo podrían comunicarse los equipos de un mismo fabricante. Las conexiones entre los equipos también se han ido estandarizando. Entre las distintas entidades que se han dedicado a esta estandarización está la ISO. Ellos, han definido el modelo OSI. El modelo OSI define siete niveles distintos, para facilitar la comunicación entre sistemas abiertos. El modelo no asegura la comunicación, pero es la base para poder organizar y decidir los protocolos que se van ha utilizar. El modelo OSI, especifica las normas o reglas necesarias para que el intercambio de datos entre equipos de diferentes fabricantes sea posible. Basándose en este modelo, se ha desarrollado un gran grupo de protocolos para que los diferentes tipos de ordenadores puedan trabajar en común y puedan comunicarse. Con el fin de simplificar la complejidad de cualquier red, los diseñadores de redes han convenido estructurar las diferentes funciones que realizan y los servicios que proveen en una serie de niveles o capas. Cada grupo o nivel se encargará de resolver un problema, y las decisiones y cambios que lleve a cabo no afectarán al resto de grupos o niveles. Los niveles definidos por este modelo son los siguientes: Nivel de Aplicación Nivel de Presentación Nivel de Sesión Nivel de Transporte Nivel de Red Niel de Enlace Nivel Físico OSI: 7 niveles con los cuales se entienden entre aplicación y 5.1.- CONCEPTOS Antes de profundizar en los diferentes niveles, varios conceptos: Cada nivel tendrá relación con los niveles que estén a su lado, es decir el superior y el inferior, y solamente con ellos Cada nivel de be ocuparse de su nivel inmediatamente inferior, al que solicita servicios, y del nivel inmediatamente superior, a quien devuelve resultados. Llamaremos Interface a las normas de intercomunicación entre capas adyacentes. Los elementos activos de cada nivel se denominan ENTIDADES. Hay entidades software como procesos, y hay entidades hardware como chips. Un SAP es el punto de acceso al servicio. Es decir, el punto en el que una capa puede encontrar disponibles los servicios de la capa inmediatamente inferior. Un IDU es la unidad de datos del interfaz, es decir, es el bloque de información que la entidad del nivel N le pasa a la entidad del nivel N-1 a través del interface N/N-1. -1- Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI Un SDU es la unidad de datos del servicio, es decir, un IDU está formado por un SDU y un ICI. El ICI es información de control, y el SDU la información que una entidad quiere enviar a otra entidad del mismo nivel a través de la red. Un PDU es la unidad de datos de protocolo. Si no podemos enviar de una vez un SDU y tenemos que fraccionarlo porque su tamaño no es adecuado para la transmisión directa, cada uno de los trozos y la cabecera que se le añada formarán un PDU. Protocolo N+1 Nivel N+1 Interface n+1 / n Interface n+1 / n Protocolo N Nivel N Interface n+1 / n Nivel N-1 Nivel N+1 Nivel N Interface n+1 / n Protocolo N-1 Nivel N+1 Nivel N-1 IDU ICI SDU Interface N+1 / N SAP Nivel N Nivel N Protocolo N N-PDU Cabecera SDU -2- Nivel N Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI Protocolo ICMP Aplicación ping Establece el tipo de tiempo de conexión. Se puede cambiar. Mira si tiene conexión. Devuelve un resultado. 5.2.- NIVELES DEL MODELO OSI Nivel Físico Se encarga de dar el soporte mecánico, electrónico y físico para que dos entidades del nivel de enlace puedan intercambiarse bits. Entre otras funciones debe garantizar la compatibilidad de los conectores, cuántos pines tiene cada conector y la función de cada uno. Nivel de Enlace Se encarga de los medios funcionales para que dos entidades del nivel de red puedan intercambiarse datos sin errores. Deben superar la falta de seguridad que hay en los circuitos. Recogerá los datos que le pasa el nivel de red y los agrupa formando tramas, a las cuales añadirá bits de control para la detección y corrección de errores. También se encarga de la sincronización. Nivel de Red Se encargan de los problemas que surgen en la comunicación entre distintas redes. Debe dar salida a las congestiones y conocer bien la topología de la red, ya que debe realizar tareas de encaminamiento. Nivel de Transporte Se asegura de que el receptor reciba lo que ha enviado el emisor. Es decir, acepta los datos del nivel de sesión, los fracciona adecuadamente para que sean aceptados en la subred (su capa inferior), y se asegura de que llegarán correctamente al nivel de transporte del destinatario. Asegura el intercambio de información entre entidades del nivel de Sesión, independientemente de las características de la red que tienen por debajo. Nivel de Sesión Permite el diálogo entre emisor y receptor estableciendo una sesión, que es el nombre que reciben las conexiones en este nivel. Establece, mantiene y finaliza la comunicación entre diferentes aplicaciones. En ocasiones facilita más de una conexión a un mismo usuario, abriendo diferentes sesiones. El nivel de sesión determina si la comunicación será bidireccional o simultánea. -3- Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI Nivel de Presentación Se ocupa de la sintaxis y de la semántica de la información que se pretende transmitir. Se encarga de la comunicación entre sistemas que tienen diferentes presentaciones de datos. Realiza trabajos de conversión o traducción. Además también puede comprimir los datos para que la transmisión sea menos costosa, o encriptarlos para garantizar la privacidad. Nivel de Aplicación Este nivel define los protocolos de las aplicaciones y procesos que va a utilizar el usuario. Si los procesos están en el mismo equipo, lo hace el sistema operativo. Pero si están en diferentes equipos, pone en marcha el mecanismo necesario para ello, utilizando los servicios de los niveles inferiores. De todas formas, el modelo OSI no se ha extendido tanto como esperaban. Al final ha sido el modelo TCP/IP el que más se utiliza. 5.3.- MODELO TCP/IP Las razones de que el modelo OSI no haya tenido éxito podría ser estas: Antes de desarrollar el OSI ya existía el modelo TCP/IP y el cambio es costoso El crecimiento del uso de Internet ha empujado la arquitectura TCP/IP El modelo TCP/IP sólo tiene cinco niveles: Nivel Físico Define las características de soporte, señalización y codificación. Nivel de Acceso a Red Se encarga de la interfaz entre el sistema final y la subred en la que está conectado. Nivel de Internet Envía y guía los datos a lo largo de la red desde el origen hasta destino. 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. Nivel 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. Un ordenador puede tener varios programas de aplicación accediendo 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 -4- Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI 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. Nivel de Aplicación Se encarga de la comunicación entre aplicaciones y procesos de diferentes equipos. Un swich es más rapido que un hub, porque tiene tres niveles hasta el de red. 5.4.- DETECTAR Y CORREGIR ERRORES Aunque tomemos todas las medidas que estén a nuestro alcance para que la transmisión de datos sea segura, es habitual que se produzcan. El ruido, radiaciones atmosféricas o equipos defectuosos pueden ser los causantes de estos errosres. Al aumentar la velocidad de transmisión, el nº de bits afectados aumenta puesto que se mueven más bits en el mismo instante. Para poder reducir la tasa de errores, se utilizan los métodos de detección y correción de errores. Lo más difícil suele ser detectarlos. Para la detección de errores se utiliza el término de distancia. Distancia Es el número de bit distintos entre dos palabra ( 8 bits en código ASCI)que están en código binario. Ejemplo: 10101010 distancia (d)=3 10011000 Distancia de un código binario Es la mínima distancia entre dos palabras cualesquiera del código. Ejemplo código BCD (Binary Code Decimal) Información ................................................ Palabra 0 ................................................... 0000 1 ................................................... 0001 2 ................................................... 0010 Longitud del código BCD = 4 3 ................................................... 0011 4 ................................................... 0100 Distancia = 1 5 ................................................... 0101 6 ................................................... 0110 7 ................................................... 0111 8 ................................................... 1000 9 ................................................... 1001 -5- Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI 5.4.1.- “PERDER” INFORMACIÓN En ocasiones no llega al receptor toda la información enviada por el emisor. Aunque puede ocurrir también que dicha información llegue “cambiada”. En ambos casos se considera como pérdida de información. 5.4.2.- DETECCIÓN DE ERRORES Antes de empezar con los métodos diferentes hay que mencionar el concepto de distancia. La distancia entre dos palabras en código binario, es el número de bits diferentes entre ellas. PARIDAD SIMPLE Este sistema consiste en enviar, junto con la información, otros bits de control que representan ciertas características sobre los datos. Concretamente se añadirá un bit por cada carácter emitido Si los datos sufren alguna alteración, al analizar los bits de paridad se detectaría. Hay dos tipos de paridad: par e impar si el nº de 1’s es par si el nº de 1’s es impar Cantidad de 1 tiene que se par. Paridad Impar: si el nº de 1’s es par si el nº de 1’s es impar Paridad Par: 0 1 1 0 La distancia de este código es 2. Por lo tanto, con este método se detectarán los errores en 1 o 3 bits. Ejemplo código BCD (Binary Code Decimal) con bir de paridad par. Información ................................................ Palabra .......................... Bit paridad 0 ................................................... 0000 ........................................... 0 1 ................................................... 0001 ........................................... 1 2 ................................................... 0010 ........................................... 1 3 ................................................... 0011 ........................................... 0 4 ................................................... 0100 ........................................... 1 Distancia = 1 5 ................................................... 0101 ........................................... 0 6 ................................................... 0110 ........................................... 0 7 ................................................... 0111 ........................................... 1 8 ................................................... 1000 ........................................... 1 9 ................................................... 1001 ........................................... 0 PARIDAD DE BLOQUE Se creó basándose en el anterior. Se trata de añadir un segundo grupo de bits de paridad y mejora bastante el sistema. También hay par e impar. Un ejemplo, queremos enviar: 00110, 01010, 11001, 11111 -6- Administración de Sistemas Informáticos 0 0 1 1 --- Redes 0 1 1 1 1 0 0 1 1 1 0 1 IES Zubiri-Manteo BHI 0 0 1 1 Añadimos los bits de paridad a las filas y a las columnas: Nosotros 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 X enviaríamos: 001100 010100 110011 111111 0 1 0 1 0 Supongamos que el receptor recibe lo siguiente: 00110001110011001111111101 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 1 0 X ERROR ERROR En este caso podríamos detectar cual ha sido el bit que ha llegado mal y podríamos corregirlo. Pero si se produce el error en dos bit sería imposible detectarlo CÓDIGOS DE REDUNDANCIA CÍCLICA Los métodos basados en la paridad son protecciones contra los errores. Además estos métodos son simples y fáciles de usar. Entre sus inconvenientes, la baja eficacia contra los errores en algunas aplicaciones. Por lo tanto los códigos basados en la paridad se utilizan cuando el coste de otros métodos más sofisticados resulta demasiado caro, en cuanto a consumo de recursos. Además, los códigos basados en paridad se usan cuando cada dato lleva sus bit de protección contra errores. Es decir, en entornos en los cuales la transmisión se hace dato a dato, o dicho de otra forma en entornos ASÍNCRONOS. Cuando se trabaja en entornos SINCRONOS no resulta rentable, puesto que la utilización del ancho de banda del canal no es la más adecuada. -7- Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI Por lo tanto, cuando se envían los datos por grupos o bloques,se utilizan otros métodos de detección y corrección de errores. Estos métodos utilizan casi todo el ancho de banda del canal para la transmisión de datos. Para hallar el bit de paridad se utiliza un polinomio generador. Ejemplo de funcionamiento de estos métodos: Antes de enviar la información emisor y receptor deciden cual va a ser la cable. Si hay que transmitir el número N, el emisor dividirá N entre la cable (división entera) y el resto obtenido se añadira al número N para ser enviado. Supongamos que queremos transmitir el número 17, en un entorno con riesgo de producirse errores. Antes de enviar se define una cable. Por ejemplo: 7. Luego el número que se desea transmitir (17) se divide con la cable (7): 17/7 = 2L3 (donde 2 es el divisor y 3 es el resto). El número que se envía es el 173. Supongamos que el receptor recibe el número 193. El número lo dividirá en dos: 19 y 3. El receptor tiene que conocer la cable que utiliza el emisor, y realiza la división 19/7= 2L5 Compara el resto calculada por él y el recibido. 5 =/ 3 =/ 0. Luego detecta que ha habido un error en la transmisión. Este método es un método para la detección, por lo tanto el receptor al detectar un posible error pide al emisor el reenvió del dato. Los códigos de redundancia cíclica se implementan fácilmente mediante hardware y son muy rápidos y eficaces. 5.4.3.- CORRECCION DE ERRORES Una vez que hemos detectado un error en la transmisión, el siguiente paso será corregirlo. Hay dos posibilidades: Cuando la corrección la realiza el RECEPTOR: En ocasiones, los errores detectados mediante el método de paridad etc, suelen ser sencillos de corregir. Puede que baste con cambiar el bit que viene mal. Corrección por retransmisión: Cuando el receptor detecta que algo no ha llegado bien pero no es capaz de identificar cual es el bit erróneo, sólo le -8- Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI puede pedir al emisor que repita la transmisión. Para que esto sea posible, la comunicación entre ambos debe ser bidireccional, de lo contrario, el receptor no podrá solicitar la retransmisión. CÓDIGOS HAMMING Son códigos correctores cuya distancia mínima es de 3. Pueden detectar errores de 2 bits y corregir errores de 1 bit. Al número que está codificado se les añade unos bit que sirven para demostrar algunas paridades. Estos bits que se añaden formarán la posición del bit que ha llegado erróneo. n bit p p bits de paridad Nº de p bits a añadir entre los n bits de datos: 2p >= n+p+1 Ejemplo: Código Hamming para un número expresado en código BCD Siendo n = 4 23 >= 4+3+1 ; p=3 Luego el número en BCD que vamos a enviar será de 7 bits Mediante el código binario de p bits analizaremos el resultado de la transmisión : 0 --> No ha habido error. L --> El error ha sido en el bit número L. P3 p2 p1 posición erronea 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 no hay error error en b1 error en b2 error en b3 error en b4 error en b5 error en b6 error en b7 Los bits de paridad serán b4, b2 y b1. -9- Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI P1-->“1” si el error está en, b7 , b5 , b3 o b1. P2-->“1” si el error está en, b7, b6 , b3 o b2. P3-->“1” si el error está en, b7, b6, b5 o b4. Entonces: b1 --> es el bit de paridad de b3,b5, y b7. b2 --> es el bit de paridad de b7,b6, y b3. b4 --> es el bit de paridad de b7,b6, y b5. Podemos desarrollar ya todo el código b7 b6 b5 b4 b3 b2 b1 ---- ---- ---- ---- --> BCD B7 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B6 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B5 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 B4 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 B3 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 B2 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 B1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 Supongamos que queremos transmitir 0000111, y el receptor recibe lo siguiente: 0100111. b7 0 0 b6 1 b5 0 0 b4 0 b3 1 1 b2 1 b1 1 1 Error en el bit b6!!! 2+4 =6 /* bits de paridad distintos*/ CORRECCIÓN: basta cambiar el valor del bit. -10- Administración de Sistemas Informáticos 0 0 1 1 1 0 --- Redes IES Zubiri-Manteo BHI 0 1 EJERCICIOS 1. Examinar los números que recibe el receptor: 225 y 222 siendo la clave 5, y 301 y 300 siendo la clave 6. 2. Escribe en código ASCII la palabra REDES. Calcular bloque de paridad par. ¿Cuál sería la secuencia binaria que hay que enviar? . 3. Examina el control utilizado en el bloke paridad par: 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 0 0 x 4. Examina el número recibido 0011000 zenbakia. Sabiendo que se han utilizado códigos Hamming. 5. Desarolla el código Hamming para n=2 y examina el número 11010. -11- Administración de Sistemas Informáticos --- Redes IES Zubiri-Manteo BHI PRACTICA 6 PROTOCOLOS Mira en Internet los distintos tipos de protocolos que hay. Que detección y corrección de errores utiliza cada uno. -12-