INF 1400 Redes de Computadores Jorge Baier A. Alvaro Soto A. Departamento de Ciencia de la Computación P. Universidad Católica de Chile [jabaier,asoto]@ing.puc.cl Contenido 1. Introducción 2. Protocolos de bajo nivel 3. Protocolos de aplicación 4. Modelo cliente/sevidor 5. Laboratorio de modelo cliente/servidor 6. Diseño de redes y seguridad 7. Laboratorio de seguridad en redes 8. Redes inalámbricas Introducción 1. Conceptos básicos ¿Qué es una red de computadores? Una red de computadores es un conjunto de computadores autónomos conectados entre sı́ y que, por lo tanto, pueden intercambiar información. Por autónomo se entiende a máquinas que no dependen en forma exclusiva de otras máquinas. Los objetivos para el uso de redes son diversos, entre ellos se encuentra compartir recursos, ahorrar dinero y aumentar la confiabilidad. Otras razones: comunicación, entretenimiento. Un ejemplo de la compartición de recursos es el esquema cliente/servidor. Cuales son las ventajas de una red de computadores Permite compartir recursos (impresoras, discos, etc) Facilita la incorporación de nuevos equipos y usuarios Facilita la administración de licencias de software Facilita la comunicación de información (email, web) ... Tipos de redes Desde el punto de vista de la tecnologı́a de transmisión Redes de tipo broadcast: Estas redes cuentan con un canal único de comunicación. La información enviada en paquetes puede ser recibida por todas las máquinas que comparten el canal. Ejemplo de estas redes son las redes Ethernet. Redes punto a punto: La comunicación se establece a través de una conexión directa entre pares de máquinas especı́ficas. Para ir del origen al destino, un paquete puede tener que visitar una o más máquinas intermedias . Desde el punto de vista de la cobertura Red de área local (LAN). Una red, generalmente privada, de extensión pequeña. Cubre hasta unos pocos kilómetros en tamaño. Red de área metropolitana (MAN). Es esencialmente una versión más grandes de una LAN, y normalmente usa una tecnologı́a similar. Red de área amplia o global (WAN). Cubre grandes áreas geográficas: un paı́s o un continente. Redes de área local Más conocidas como LAN (Local Area Network ) o network backbone. Son usadas para conectar computadores en edificios de empresas y universidades. Una LAN tradicional tienen velocidad de transferencia entre los 10 Mbps hasta los 100 Mbps. 1 Mbps = 1 Mega bit por segundo, es decir 106 bits por segundo. La implementación más común de una LAN está definida en el estándar 802.3 de la IEEE y se denomina Ethernet. Redes de área metropolitana Más conocidas como MAN: Metropolitan Area Network. Pueden cubrir un grupo de oficinas corporativas o una ciudad. Las hay tanto públicas como privadas. Pueden usarse para datos y voz, y estar ligadas a la televisión por cable. Tienen uno o dos cables, sin conmutadores. direccion de los datos Bus A Computador 1 2 3 Bus B direccion de los datos Estándar IEEE 802.6, o DQDB: Distributed Queue Dual Bus. Redes de área global Más conocidas como WAN: Wide Area Network. Comprenden a un conjunto de máquinas llamadas hosts, que se conectan a través de una subred. La subred lleva mensajes de un host a otro, y está compuesta por dos tipos de componentes: lı́neas de transmisión: que permiten enviar bits entre las máquinas, y elementos de interconexión: computadores especializados en conectar dos o más lı́neas de transmisión, conocidos como enrutadores (routers). La comunicación entre enrutadores que no están conectados entre sı́, debe hacerse indirectamente, a través de otros enrutadores. Un paquete enviado entre enrutadores, se recibe por completo en cada enrutador intermedio, y se almacena allı́ hasta que la lı́nea de salida está desocupada; sólo entonces se reenvı́a. Esto se conoce como una subred point-to-point, store-and-forward, o como conmutación de paquetes (packet switching). Las redes WAN pueden tener diversas topologı́as, según como se interconectan los enrutadores. Otras categorı́as Redes inalámbricas Se diferencian de las otras, porque la comunicación no se realiza a través de cables. Pueden dar conectividad a fuentes móviles. Actualmente es sencillo instalar una LAN inalámbrica. Sin embargo, tienen limitaciones de velocidad pues transmiten a una velocidad de entre 1 y 2 Mbps. Interredes En el mundo existen múltiples redes, con distintos tipos de hardware y software. Las interredes utilizan computadores de enlace (gateways) para conectar distintos tipos de redes. El nombre en inglés para una interred es iternetwork o, más simplemente, internet. Nótese que se utiliza minúscula para designar el nombre. Comunicación de datos Comunicación en base a circuitos conmutables (circuit switched communication): La conección se estable cuando la comunicación comienza y el canal se mantiene reservado en forma exclusiva por el resto de la sesión o llamada. Comunicación en base a paquetes (packet switched communication): En este caso la información es dividida en paquetes que son transmitidos en forma independiente. Comunicación en base a circuitos virtuales (virtual circuit switching): Este es un caso especial de comunicación en base a paquetes, donde todos los paquetes siguen la misma ruta. Cuatro Aplicaciones tipicas: Sesión interactiva en un terminal computacional Transmisión de voz en paquetes Transferencia de archivos Gráficas de alta resolución 2. Arquitectura en Capas Se han visto los distintos tipos de redes que existen y las dos principales formas de enviar datos en la red. Interesa conocer cómo es posible que la información sea transmitida desde un computador a otro. Las primeras redes se diseñaron teniendo al hardware como la preocupación principal. Hoy, el software de las redes es altamente estructurado. Para reducir la complejidad del diseño de programas que permiten usar una red, la mayor parte de ellos se organiza en capas. La capa n de una máquina se comunica con la capa n de la otra máquina. El conjunto de reglas y convenciones que se utiliza para lograr la comunicación entre ellas es conocido como el protocolo de la capa n. Básicamente, es un acuerdo de comunicación entre capas del mismo nivel en computadores distintos. El protocolo es entre pares (peer to peer ). Jerarquı́a de protocolos Un sistema con cuatro capas Máquina A Capa 4 Capa 3 Capa 2 Capa 1 Máquina B Protocolo Capa 4 Protocolo Capa 3 Protocolo Capa 2 Protocolo Capa 1 Capa 4 Capa 3 Capa 2 Capa 1 Medio físico Los datos no se transmiten directamente entre los pares. Interfaz entre capas Hay una interfaz entre cada par de capas adyacentes, que define las operaciones primitivas y servicios que la capa inferior ofrece a la superior. Si la capa 3 de la máquina A desea comunicarse con la capa 3 de la máquina B: La capa 3 de la máquina A pasa sus datos a la capa 2 de la misma máquina. La capa 2 realiza ciertas transformaciones a los datos y luego los pasa a la capa 1. La capa 1 también realiza modificaciones de tal manera de poder transmitir los datos a través del medio fı́sico hacia la máquina B. Los datos son recibidos por la capa 1 de la máquina B, y son pasados a la capa 2 y, finalmente, a la capa 3. Las “modificaciones” hechas por cada una de las capas son esenciales para que se puedan comunicar los datos, y consisten principalmente en encabezados (headers) y agregados (trailers) que se envian junto al mensaje mismo. El modelo OSI de la ISO Es un modelo de referencia, que fue desarrollado y propuesto por la International Standards Organization en 1983. Se llama modelo OSI, Open Systems Interconnection, pues se refiere a la interconexión de sistemas abiertos. El modelo tiene siete capas, y define una forma de organizar los protocolos. No es una arquitectura de red en si mismo, sólo define qué debe hacer cada capa. No especifica los servicios exactos ni protocolos que debe usar cada una de ellas, aunque ISO ha producido estándares para protocolos de todas las capas. Aplicación Presentación Sesión Transporte Red Enlace de datos Fı́sico Protocolos de capas inferiores 1. Nivel fı́sico Provee el medio fı́sico para la transmisión de bits entre un par de nodos de la red. Ejemplo: cable coaxial, par trenzado, fibra óptica, etc. Espectro Electromagnético Degradación Debido a Lı́mites en Ancho de Banda Ejemplos de Codificacion de Mensajes Protocolos de capas inferiores 2. Nivel de enlace de datos (DLC: data link control layer) Se encarga de chequear que los paquetes lleguen correctamente a su destino. En caso de detectarse errores en la Tx, esta capa se encarga de solicitar re-transmisión. Para verificar la correcta Tx de los paquetes, esta capa agrupa los bits en unidades llamadas marcos frames). Estos contienen información extra que permite determinar el comienzo y fin de una Tx, asi como chequear errores. 3. Nivel de red Enruta los paquetes desde el nodo origen al nodo destino, a través de múltiples enlaces. Realiza labores de control de flujo decidiendo cuando aceptar paquetes desde el nivel de transporte y cuando transmitir paquetes al nivel de enlace de datos. Ejemplos: X.25 e IP. Protocolos de capas superiores 4. Nivel de transporte Provee entrega confiable de mensajes entre el origen y el destino. Divide mensaje en paquetes, y lo ensambla en el destino. Control de flujo entre hosts. Ejemplos: TCP y UDP. 5. Nivel de sesión Agrega funcionalidad al nivel de transporte. Control de diálogo, sincronización. Poco usado. 6. Nivel de presentación Codifica la información en formatos que son independientes del sistema. Se preocupa del significado de la información. Poco usado. 7. Nivel de aplicación Colección de protocolos para actividades comunes. Ejemplos: TELNET, FTP, SMTP, DNS, HTTP. El modelo TCP/IP Este es el modelo original usado por la ARPANET. Definido inicialmente por Cerf y Kahn en 1974. La capa de internet Permite que los hosts puedan comunicarse. Se define un protocolo de red conocido como Internet Protocol (IP). La función de esta capa es llevar a los paquetes al lugar de destino. Esta capa es la que se preocupa de enrutar los paquetes. La capa de transporte Sobre la capa de internet se ubica la capa de transporte, que permite establecer una comunicación entre dos máquinas. Se usa dos protocolos a este nivel: TCP (Transmission Control Protocol ), y UDP (User Datagram Protocol ). TCP se utiliza si se desea obtener una comunicación confiable entre dos máquinas (sin errores). TCP desensambla los mensajes en paquetes, y agrega la información necesaria para que la máquina de destino pueda rearmar el mensaje. UDP es no-confiable y se utiliza para aplicaciones que no necesitan del estricto control que provee TCP, y en que una entrega más rápida es más importante. Las aplicaciones más comunes para este protocolo son la transmisión de sonido y video. Las capas de Internet La siguiente figura muestra los protocolos de red, de transporte, y algunos protocolos de aplicación usados en Internet. HTTP, TELNET, FTP, SMTP, DNS, etc. Protocolos TCP UDP IP Red Ethernet, Token Ring, SatNet, etc Aplicación Transporte Red Enlace y fisico La capa de enlace en Ethernet Hoy en dı́a, la mayorı́a de las redes locales son Ethernet. Las redes Ethernet están definidas en el estándar 802.3 de la IEEE. Son redes de tipo broadcast, es decir, todos los computadores que están instalados en una red de este tipo comparten, en general, el mismo canal de comunicaciones. Hoy, cada estación se conecta a través de un cable (par trenzado) a un concentrador (hub). Hub .... Los cables pueden ser de distintos tipos: actualmente se usa el 100Base-T. Antes se usaba cables coaxiales que conectaban a las máquinas formando un bus o un anillo. Actualmente, las tarjetas de red Ethernet vienen hechas para velocidades de 10 Mbps y 100 Mbps (full y half duplex). Colisiones Cada vez que una estación transmite, la información emitida es enviada al hub. El hub retransmite la información por todas las lı́neas que salen de él. Como estas redes comparten el mismo canal de comunicación, es posible que dos máquinas decidan transmitir al mismo tiempo. Si comparten el mismo canal, ¿cómo es posible que aún ası́ se sigan pudiendo comunicar? Para que la comunicación se pueda lograr sin problemas, cada máquina conectada a una Ethernet es capaz de detectar una colisión. Una colisión se produce cuando dos estaciones deciden transmitir “al mismo tiempo.” CSMA/CD. Cuando una estación transmite a otra, Escucha el canal de comunicaciones. Si está ocurriendo una transmisión, espera hasta que el canal vuelve a estar inactivo. Inicia la transmisión. Si antes de terminar su transmisión, se produce una colisión, aborta la transmisión, espera un tiempo aleatorio y vuelve a intentar. Arquitecturas más complejas A medida que el número de estaciones de trabajo crece, el número de colisiones en la red también aumenta. ¿Cómo es posible tener redes locales con muchos computadores? La respuesta está en utilizar redes más “inteligentes.” Se puede evitar que todas las máquinas siempre compartan el mismo canal de comunicación. Se logra mediante el uso de switches. Un switch se parece externamente a un hub. Se conectan de la siguiente manera: Switch Ethernet Switch Hub A Hub B Hub Hub Hub C Hub Si se produce tráfico en entre dos máquinas de la red A, el switch no reparte ese tráfico a las redes B y C. De esta forma, si hay alto tráfico en la red A, no se ven afectadas ni la red B ni la red C. Si una máquina de la red A se quiere comunicar con otra de la red B, el switch sólo transmite los datos hacia el hub B, no viéndose afectado el hub C. Redes ATM El modo de transferencia ası́ncrono: Asynchronous Transfer Mode. Redes capaces de transmitir voz, que requiere un ancho de banda bajo, pero constante, y de transmitir datos, que se produce en ráfagas que requieren mucho ancho de banda por cortos perı́odos, para luego no requerir nada. Ni la conmutación de circuitos, usada en telefonı́a, ni tampoco la conmutación de paquetes, usada en Internet, son adecuadas. Se usa la conmutación de celdas (cells) sobre circuitos virtuales. El origen establece una conexión, un circuito virtual, con el destino. Durante el establecimiento de la conexión, se determina una ruta entre origen y destino, y se almacena información en los conmutadores intermedios. Los paquetes se envı́an a través de esta ruta, pero trozado por el hardware en unidades pequeñas de tamaño fijo, llamadas celdas. Todas las celdas de un mismo circuito siguen la ruta que está almacenada en los conmutadores para él. Cuando el circuito ya no se necesita, la información se elimina de los conmutadores. Ventajas de las redes ATM Puede usarse la misma red para transmitir voz, datos, televisión, cintas de video, radio y otros tipos de información, reemplazando lo que antes eran redes separadas. La red sólo ve celdas, sin importarle que transportan. La conmutación de celdas es adecuada para el envı́o a muchos destinos al mismo tiempo, necesario para televisión La conmutación de circuitos tradicional no sirve. La conmutación de celdas es adecuada para la transmisión punto a punto. Medios de difusión como televisión por cable no sirven. Las celdas, con su tamaño fijo permiten hacer conmutación muy rápidamente, lo que es mucho más difı́cil con conmutación de paquetes usando store-and-forward. Se evita el problema de la demora en un paquete, porque uno grande está usando la lı́nea. Al transmitir celdas, después de transmitir una, se transmite otra, que no tiene por qué ser del mismo paquete. Las capas de ATM Jerarquı́a propia de protocolos. Niveles Superiores Nivel de Adaptación Nivel de ATM Nivel Físico El nivel fı́sico tiene la misma funcionalidad que el nivel 1 del modelo OSI. El nivel de ATM se encarga de las celdas y de su transporte, incluyendo el enrutamiento. Cubre el nivel 2 y partes del 3. A diferencia del nivel 2, no recupera celdas dañadas o perdidas. El nivel de adaptación se encarga de dividir los paquetes en celdas y ensamblarlos en el destino, que es parte del nivel 4. El nivel de adaptación no ofrece una comunicación de origen a destino perfectamente confiable. Hay que implementar una conexión de transporte en las capas superiores para conseguirlo. Por ejemplo, usando ATM para transmitir tráfico TCP/IP. Conmutadores para ATM Tienen puertos a los que se conectan las lı́neas de transmisión, y que pueden usarse tanto para entrada como para salida. Internamente, tiene lı́neas de entrada, de salida, y un entretejido para la conmutación que las conecta. A 155 Mbps, una celda debe ser conmutada en 3 µseg. Como pueden llegar tantas como hay lı́neas, debe hacerse en paralelo. Cuando llega una celda, se examina un campo de su encabezado que indica el circuito al que pertenece, y se pone en el puerto de salida correcto para ese circuito.