--------------------------------------------------------------- Redes de Computadoras fuente: * Redes de Computadoras e Interredes (D. Comer, edit. Prentice Hall) * Web: Desarrollo de Aplicaciones al descubierto (Breedlove B. et al, edit. Prentice Hall) Una red es un dispositivo que posibilita la comunicación entre computadoras dando lugar al intercambio de información y a compartir recursos. Las redes de computadoras han crecido exponencialmente. Hace dos décadas casi nadie tenía acceso a redes, salvo algunos gobiernos y corporaciones importantes. Hoy, la comunicación entre computadoras se ha vuelto esencial en nuestras vidas: publicidad, producción, planeamiento, defensa, educación, investigación, gobierno, etc., etc., etc. Hace poco más de 15 años Internet era un proyecto de investigación en que participaban solo unas cuantas docenas de instituciones. Hoy, casi 15 años más tarde, llega a cientos de millones de personas en alrededor de 100 países. El impacto en nuestra sociedad actual es decisivo en todo sentido. La sociedad irremediablemente cambia frente al acceso indiscriminado de información indiscriminada. Aun así, la explosividad del crecimiento no ha posibilitado el asentamiento definitivo de estándares para definir íntegramente al producto. Y d ada la masividad de su penetración, esto pasa a relevar una importancia no menor. Hay muchas empresas creando productos y servicios, de infraestructura y de consumo, y muchas tecnologías asociadas, y los problemas de compatibilidad son de enorme impacto. Por ejemplo, no hay una sola teoría unificada para lo conectividad, como las hay para muchísimos fenómenos de la física o de la biología. Esto hace confuso comprender la interacción entre las partes involucradas. Muchas organizaciones han intentado el establecimiento de normas pero la gran cantidad y el rápido cambio de las tecnologías llevan a que los modelos asociados sean, bien simplistas, perdiéndose detalles importantes, o bien muy complejos, al punto de hacerlos sumamente difíciles de manipular y utilizar. Esto redunda también en la falta de una terminología universal y aceptada. ---------------------------------------------------------------- Medios de Transmisión En el nivel más bajo, la comunicación entre computadoras involucra la transferencia de energía en alguna de sus formas. No es calor ni es energía cinética. Se trata de energía electromagnética, sea en la forma de corriente eléctrica, ondas de radio o luz. Y dependiendo de la naturaleza de la energía transportada, se adopta un medio adecuado al efecto, sea este cobre (par trenzado -UTP-, cable coaxil, etc.), el espacio o una fibra óptica. El hardware se encarga de modular esta energía de un modo conveniente para que atraviese con eficiencia el medio de transmisión adoptado y, a la vez, el software que gobierna y coordina al hardware se encarga de generar la información de alto nivel, prepararla para la transmisión a un destino elegido, procesar la recibida, verificar su consistencia y recuperarse de los errores que se llegaran a detectar. A diferencia del cobre, la fibra óptica puede transportar información a más distancia para la misma degradación, no provocan interferencia en el medio circundante, pueden llevar más información porque son mayores las posibilidades de codificación de la luz y requieren de una sola línea, a diferencia de las dos que requiere el cobre. Como contraparte, es sensiblemente más cara por unidad de longitud que el cobre, requiriendo además entrenamiento y equipo comparativamente mucho más sofisticado para su instalación y mantenimiento. La transmisión por ondas de radio asume una gran variedad de posibilidades dependiendo de la frecuencia y potencia en juego, desde un sistema de enlace local limitado a un edificio hasta uno satelital de alcance mundial. En estos últimos, la banda de altas frecuencias en cuestión permite la utilización de multiplicidad de canales simultáneos. ------------------------------------------------------------------ Transmisión de datos La forma más sencilla de transmitir información requiere de al menos dos estados de alguna entidad capaz de transitar por un medio. Es necesario la entidad pueda transitar para que la información viaje y son necesarios al menos dos estados para que pueda haber información. En general, la entidad consiste en alguna clase fenómeno físico y, en el contexto de las computadoras actuales, esto es corriente eléctrica. Los dos estados aludidos se identifican lógicamente como 1 y 0, aunque físicamente pueden asumir varias normas alternativas. Lo mismo ocurrirá cuando le electricidad sea reemplazada por luz. Una entidad capaz de asumir exactamente dos estados se dice que puede almacenar un bit de información. Así, transmitir información por un cable implica poner en uno de sus extremos un tren de 1s. y 0s. para recogerlos en el otro. Surgen naturalmente varias preguntas. Por ejemplo: ¿Cuánto debe durar cada bit ? Desde y hasta cuántos bits por unidad de tiempo se pueden transmitir? ¿Cómo saber si en el extremo de salida se recibió exactamente lo que se transmitió? ¿Cómo saber en el extremo de salida cuándo se inicia una transmisión válida? ¿Cómo saber cuándo termina? Etc., etc., etc. Conocer las respuestas a estas preguntas y a muchísimas otras por el estilo posibilita que dos fabricantes que nunca se han conocido desarrollen sistemas automáticos para la transmisión y la recepción de esos bits y consigan que todo funcione armoniosamente (la mayor parte de las veces!). Las respuestas mencionadas se denominan NORMAS e instituciones sin fines de lucro como EIA, ITU e IEEE constituyen permanentemente comités de trabajo para crearlas. Un ejemplo típico es la norma EIA RS-232-C que regula la transferencia serial asincrónica de caracteres por un par de cobre, por ejemplo, entre una computadora y un dispositivo como un modem, una impresora o un teclado. Esta norma establece las características físicas del medio de transmisión (p.e., 15 m máx., fichas de conexión, etc.) así como las eléctricas de los bits transmitidos (p.e., 1s. y 0s. se representan con tensiones de -15 y +15 V, velocidades de transmisión en Baud, etc.. Al viajar las señales que transportan la información por el medio físico adoptado sufren degradaciones acumulativas producto de la pérdida de la energía originalmente impresa por el transmisor. Estas degradaciones se ma nifiestan como pérdida de sus características iniciales, lo que se traduce en que, si son grandes, el receptor no sea capaz de reconocer aquello que se transmitió, invalidando todo el esfuerzo puesto en juego. Una de las finalidades de las normas consiste, precisamente, en poner límites a lo que se puede hacer. Un límite superior para la velocidad de transmisión de información está dado por el hecho que las señales no pueden cambiar de valor instantáneamente. Esto limita la velocidad de transmisión de los bits y, esta cota superior para la velocidad de transmisión de la información se denomina ancho de banda. Todos los sistemas físicos capaces de transmitir información 'gozan' de esta limitación, que es propia en valor para cada uno. En la década de 1920 un investigador descubrió la relación fundamental entre el ancho de banda de un sistema y la cantidad máxima de bits por segundo que puede transmitir. Si un sistema de transmisión de ancho de banda B utiliza K estados diferentes para transmitir información, la velocidad máxima de datos es D = 2 B log2(K). Este máximo es teórico y no se lo puede alcanzar en la práctica por el ruido inherente e inevitable de todo sistema físico. Las señales ondulatorias de tipo senoidal pueden atravesar mayores distancias que las discretas para la misma cifra de degradación. Por esta razón, cuando se trata de distancias largas, se adopta la modulación digital de los bits sobre una portadora analógica de características senoidales. Esta idea de modular portadoras surgió junto a la telefonía, la radio y la TV. En el extremo receptor, la modulación es extraída, se descarta la portadora, y se recupera la información original de modulación. Los equipos destinados a modular y demodular señales digitales se denominan módems. Lo que se puede modular en una onda senoidal es, básicamente, su amplitud, su frecuencia y/o o su fase. Una característica interesante de las portadoras es que portadoras de diferentes frecuencias pueden compartir un mismo medio de tránsito sin interferir unas con otras. Esta técnica se conoce como multiplexado por división de frecuencia (FDM). Existen otras técnicas de multiplexado para compartir un medio de transporte como el TDM y el CDM. Volviendo a los módems, para una comunicación de datos a distancia se puede u tilizar un esquema como el sgte.: PC <--> (RS232) <--> MODEM <====> // <===> MODEM <--> (RS232) <--> PC El cobre que subtiende la larga distancia, usualmente, corresponde a líneas arrendadas a las empresas de telefonía. Si bien la codificación de bits y su transmisión como impulsos eléctricos o de luz es lo más básico a la comunicación de datos, la mayor parte de las redes tienen interfaces que permiten pensar en términos de la transmisión de bytes y de grupos organizados de bytes, es decir, de información más abstracta. A esta altura conviene diferenciar datos de información, siendo los 1ros. análogos a los ladrillos de que está hecha la información, es decir, átomos de información, en general, aun inteligibles para los humanos. Por lo general una red está diseñada para la transferencia de datos. Estos datos son encapsulados por la red en paquetes previo a ser puestos en tránsito (los paquetes son a su vez luego separados en sus bits y estos, finalmente, enviados y recibidos como se explicó antes). La división de los datos en paquetes favorece la detección rápida y recuperación temprana de errores. Asimismo posibilita que varias computadoras compartan los recursos de transcepción de paquetes en una base de multiplexado en tiempo. Si cada computadora se adueñara del recurso de red y no lo liberara hasta haber transmitido toda la información deseada, el uso de redes no habría pasado de una aplicación de alto nivel para mover grandes volúmenes de datos pero nunca hubiera alcanzado al gran público. la segmentación de los datos en paquetes sumado a una política igualitaria de derecho de acceso al medio hace que las demoras que sufre cada transmisor sean muy pequeñas porque son pequeños los paquetes. Los paquetes o frames son agrupaciones de bytes cuya organización interna está especificada por normas. Ésta incluye, además del dato crudo a transmitir, por ejemplo, indicadores del tipo de información contenida, destino del paquete, indicadores de su inicio y fin, códigos detectores y correctores de errores, etc. ------------------------------------------------- Tecnologías LAN y topologías de red Aun con las ventajas que supone la conexión punto a punto de dos computadoras (uso al máximo del ancho de banda, posibilidad de elección a gusto del formato de frames, intimidad), la conexión de N supone una cantidad de (N^2 - N)/2 conexiones directas dado que cada nueva computadora debe tener conexión con todo el resto. Esto torna inaccesible el costo de tal red. A fines de la década de 1960 e inicio de la de 1970 se desarrolló la tecnología de LAN en la que un único medio es compartido sobre la base de un esquema TDM en que las computadoras conectadas se turnan para enviar sus paquetes. De las investigaciones urgieron varios diseños de LANs que varían entre sí en especificaciones eléctricas, técnicas de modulación y metodologías para arbitrar un uso equitativo del medio. Esto trajo como consecuencia una fuerte reducción de costos de interconexión local de computadoras. Esta tecnología de medio compartido es útil en redes locales, en que en general la cantidad de nodos es comparativamente reducida. Las conexiones de larga distancia siguen utilizando conexiones dedicadas y punto a punto. Esto se debe a que la gran cantidad de computadoras involucradas intentando compartir un canal generaría sobrecargas del sistema de arbitrio de uso y, en definitiva, el tráfico de información de control crecería comparablemente al de datos, lo que tornaría a la red en un recurso caro e ineficiente. Junto a la conveniencia económica, el principio de localidad ha favorecido decisivamente la masividad de uso de las LANs. Este último predice que las computadoras físicamente cercanas tienen más necesidad de comunicarse ente sí que las lejanas y que, comunicada una computadora con otra, hay gran probabilidad que el tráfico se repita e incremente en el futuro. Desde el punto e vista de su topología, las LANs tradicionales se clasifican en estrella, anillo y canal. En una red en estrella, un concentrador central recibe datos de un nodo transmisor y lo dirige directamente al receptor. Una ventaja de esta configuración es que el corte de un cable solo deshabilita un nodo. En una red en anillo los paquetes son puestos en circulación por el nodo transmisor y pasan de nodo en nodo hasta que uno de ellos detecta que es el destinatario, quitándolos de circulación. El inconveniente de estas redes es que basta que se abra la conexión entre dos nodos para que quede fuera de servicio toda la red. En una red en canal todas las computadoras están conectadas al mismo cable. Cuando una desea transmitir escucha si han paquetes en tránsito. Si no hay transmite. Como todas los nodos ven simultáneamente a todos los paquetes, solo el que se reconoce como destinatario los procesa. En esta topología, el corte del canal separa a al red en dos, afectando fuertemente a su perfil eléctrico al punto de tornarla inservible aun cuando desde el punto de vista lógico pareciera que las dos secciones pueden seguir funcionando independientemente una de la otra. Ethernet es el nombre de una tecnología de red desarrollada a principios de los 70 por Xerox en Palo Alto, CA, que adopta la topología de canal. Formalmente, luego, Xerox, DEC e Intel colaboraron para hacer del concepto una norma. A la fecha, IEEE controla la norma Ethernet. Eléctricamente es una red de cable coaxil de 500 m a lo sumo con nodos cada 3 m como mínimo. Opera a 10 Mbps, aunque una versión más moderna, la FastEthernet lo hace a 100 Mbps. La norma especifica todos los detalles, incluidos el formato de cuadro, los voltajes y la técnica de modulación. Para la solución de colisiones, Ethernet usa el CSMA/CD. En esta técnica, si dos o más computadoras intentan transmitir al mismo tiempo se produce una colisión de paquetes. En ese caso, todos los nodos la detectan, abortan, y se congelan durante un tiempo aleatorio hasta reiniciar el proceso. Esto da a la metodología de arbitraje una característica estocástica. Un ejemplo de una red que usa topología de anillo es la TokenRing de IBM. En esta, en tanto no hay paquetes en circulación, circula uno especial que actúa como ficha o permiso. Cuando una estación desea transmitir espera a recibir la ficha. Cuando la tiene la retira en tanto transmite y, una vez que concluyó, la vuelve a poner en circulación. De este modo se evita que dos estaciones intentes transmitir a la vez. Asimismo, el mecanismo de circulación de ficha hace de esta red una de acceso determinístico. ---------------------------------------------------- Direccionamiento en una red LAN En la inmensa mayoría de las LANs hay al menos dos computadoras conectadas. Y basta que haya más de dos para que se presente el problema del direccionamiento, i.e., cómo hace un nodo transmisor para individualizar a uno receptor entre varios otros y cómo hace ese receptor, entre los otros, para tomar solo él un paquete que le va destinado. En cada nodo, el hardware de interfaz de red (la NIC) detecta una señal eléctrica y extrae una copia del frame. Cada estación porta un identificador numérico denominado dirección física de red o dirección de hardware. Cuando la NIC detecta que la dirección de destino de un paquete coincide con su propia dirección física, entonces lo acepta y toma para sí. El procesamiento en la NIC es autónomo respecto del de la CPU. Cabe agregar que cada paquete porta, además, la dirección de red del nodo remitente. Las formas posibles de direccionamiento son tres: estático, configurable y dinámico. En el esquema estático, la dirección de red de cada NIC se estampa en fábrica y no es posible alterarla. En el esquema configurable el cliente establece la dirección de red de la NIC, sea manualmente o mediante software. En el esquema dinámico, la dirección de red se asigna automáticamente cada vez que la NIC se inicializa por lo que puede ser diferente en cada sesión de trabajo. Amén de la forma de direccionamiento utilizada, todas las NICs cuentan con una dirección de difusión o de broadcast. Esta es común a todas las NICs lo que simplifica al máximo el problema de enviar un único mensaje a todas las estaciones a la vez. En definitiva, cada NIC acepta los paquetes que tienen su dirección como destino o bien que tienen como destino a la dirección de broadcast. Del mismo modo que los paquetes cuentan con campos para las direcciones de red de los nodos fuente y destino, pueden también contar con un campo para identificar el tipo de paquete. Si no se cuenta con este campo, el transmisor y el receptor deben acordar previamente un modo de señalizar diferentes tipos de paquetes, por ejemplo, adoptando algún contenido de datos como significativo de información de control. Cada tecnología LAN define un formato normalizado de frame pero, en general, hay dos o tres áreas principales en cada paquete: un área de cabecera en que se consigna información necesaria para el tráfico y tipo procesamiento del paquete, como las direcciones de origen y destino, y un sector de datos en que se imprime la carga útil del paquete. Suele haber muy a menudo un tercer campo dedicado a la detección y recuperación de errores. Por ejemplo, el frame Ethernet cuenta, en la cabecera, con 8 By de preámbulo (alternan 1s. y 0s. para la sincronización), 6 By para la dirección de destino, 6 By para la dirección de origen más 2 By para la identificación del tipo de frame. Luego sigue el área de datos, que puede ocupar entre 46 y 1500 By, y, finalmente, el sector de código para la detección y corrección de errores, ocupando los 4 By finales. preámbulo: 8 By + destino: 6 By + origen: 6 By + tipo: 2 By + datos: 46..1500 By + CRC: 4 By La norma establece que los 48 bits de destino en 1 indican la dirección de broadcast. Finalmente, la entidad que asigna oficialmente direcciones físicas de red a los fabricantes de NICs con direccionamiento estático es IEEE. ----------------------------------------------- Hardware para conexionado de LANs Hay más de una tecnología para conectar una NIC a una LAN. POr ejemplo, Ethernet prevé tres modos alternativos. Una norma actualmente dejada de usar en la ThickNet en la que la red está constituida por un coaxil grueso y la NIC solo maneja los detalles de bajo nivel (direccionamiento, CRC, etc.) en términos digitales. La modulación y demodulación analógica para la puesta y recuperación de los paquetes en el cable coaxil la realza un transceiver separado, conectándose cada NIC con su transceiver mediante un cable y ficha denominados AUI. Alternativamente, cada NIC puede conectarse a un multiplexor AUI, el que luego se conecta a un único transceiver. A cada extremo del cable coaxil de la red Ethernet (recordar que es una topología de canal) se debe conectar un terminador que impida la reflexión de los paquetes. Otra norma de conexión de NIC a la red en el contexto de Ethernet es la Thinnet, que utiliza cable coaxil fino. En este caso el hardware analógico está integrado a cada NIC por lo que no se necesitan transceivers, ni multiplexores, ni cables AUI adicionales. La conexión de la red a la NIC se hace mediante una ficha BNC. El tercer tipo de conexionado entre NIC y red en Ethernet es el par trenzado (cable UTP), denominado 10Base-T. En este esquema, que utiliza fichas de tipo RJ-45, los nodos se conectan a un equipo concentrador (hub) el que cuenta con un único punto de conexión a la red de cable coaxil. Este hub funciona como un multiplexor y, aun cuando la conexión pueda parecer topología de una estrella, eléctricamente se sigue comportando como el canal Ethernet. Una limitación fundamental en las LANs es la de largo máximo del canal. En el diseño de red se busca optimizar una ecuación que tiene al costo, la capacidad, la distancia y al retardo máximo como variables. Para garantizar que el acceso igualitario al medio por parte de los nodos, manteniendo una calidad de señal mínima aceptable, sea efectivo dentro de un límite de tiempo se debe limitar la longitud de la red. Para aumentar la longitud de una LAN se han desarrollado varias tecnologías y equipos normalizados. Por ejemplo, para compensar la degradación de las señales analógica que viajan por la red se pueden usar repetidores (repeaters). Estos equipos analógicos copian en su salida una versión amplificada de lo que ven a su entrada. De este modo se pueden conectar dos segmentos de red de largo máximo permitido cada uno (500 m). Siendo dispositivos pasivos y transparentes (desde el punto de vista lógico), una computadora conect ada no pueden determinar si otra pertenece al mismo segmento o a otro diferente. Aún cuando eléctricamente pareciera ser posible extender una LAN indefinidamente mediante el uso de estos dispositivos, la realidad no es tan así. Cada repeater introduce retardos y, tarde o temprano, la suma de retardos agregados al canal supera a la especificación de la norma. En efecto, la norma Ethernet limita a 4 la cantidad de repetidores entre dos nodos cualquiera. de una LAN. Otro dispositivo capaz de extender la longitud de una LAN es un puente (bridge) que puede definirse como un repeater inteligente. En efecto, un bridge no solo toma partido en la reproducción analógica de las señales sino que hace una interpretación de la información digital contenida en cada paquete. Esta inteligencia agregada permite, por ejemplo, que el bridge reproduzca en el segmento de red conectado a su salida solo aquellos paquetes destinados a las computadoras que se hallan conectadas a él, no así los que están destinados a las computadoras conectadas a su segmento de entrada. Asimismo, el bridge es capaz de verificar la integridad digital de un frame previo a su retransmisión. Por esa razón es capaz de evitar la transmisión de ruidos de un segmento as otro. Para construir las tablas de direcciones de red en cada segmento el bridge se vale de las direcciones de origen de los frames que recibe. Un frame recibido en uno de los puertos corresponde necesariamente a una computadora conectada al segmento unido a ese puerto. Para que este esquema funcione se debe asegurar que cada NIC emita al menos un frame en alguna oportunidad. Este filtrado de paquetes producido por los bridges posibilita que cada segmento pueda operar en simultáneo dado que todos son estancos a menos que haya paquetes a ser transferidos de uno a otro. Por esta razón, al diseñar una LAN es muy conveniente que las computadoras que se comunican entre sí con más frecuencia estén en segmentos independientes. Finalmente, un puente bien puede ser una computadora con dos NICs funcionando en modo promiscuo, con software de bridge, dotadas, eventualmente, de amplificadores analógicos. El concepto de bridge sirve para explicar un mecanismo usado muy frecuentemente: las redes conmutadas. En estas, un grupo de computadoras se conectan a un conmutador que simula una LAN con un segmento por cada computadora, todos unidos entre sí por bridges. Esta configuración presenta la ventaja principal de las LANs con segmento unidos con puentes: el paralelismo. Un hub se asemeja en el hecho que todas las co mputadoras ven un medio compartido y un protocolo adecuado (CSMA/CD, token passing, etc.) gobierna el acceso al mismo. En este esquema solo una computadora se puede comunicar por vez con otra, lo que arroja un ancho de banda máximo R (a menos de un broadcast). En cambio, dado que un concentrador posibilita que todas las N computadoras se comuniquen de a pares en simultáneo, el ancho de banda del sistema es RN/2. --------------------------------------------------------------------- Redes MAN y WAN Las tecn ologías e red se clasifican en tres tipos de acuerdo a su envergadura: LAN (área local), MAN (área metropolitana) y WAN (área interurbana, nacional o internacional). Este concepto -envergadura - no está asociado directamente con la localización geográfica de los nodos sino más bien con la cantidad de nodos involucrados en la red manteniendo una calidad mínima de servicio. Las WANs están constituidas por una interconexión de conmutadores de paquetes. Estos tienen grupos de conexiones de E/S de alta velocidad para ser conectados a otros conmutadores de paquetes así grupos de conexiones de E/S de baja velocidad para ser conectados a computadoras individuales o redes LAN. Para manejar las diferencias de velocidad cada conmutador de paquetes emplea una cola interna de alta capacidad. Cada WAN opera en forma similar a una LAN en el sentido que define un formato de paquete y que cada computadora conectada recibe una dirección física. El direccionamiento es de tipo jerárquico, por ejemplo, dividiendo las direcciones en dos partes, una que individualiza a un conmutador y otra que individualiza a una computadora conectada a aquel. Cada conmutador cuenta con una tabla (la tabla de enrutamiento) con todos los destinos posibles en la WAN y, para cada uno, el destino intermedio siguiente que lo acerca al final. En definitiva son tablas de siguiente salto, no con toda la ruta a cada destino. Así, se dice que el esquema tiene independencia de la fuente. De hecho, no es posible saber qué camino tomó un paquete para llegar al conmutador actual. Las tecnologías de WAN son variadas. Entre las más usadas están ARPANET, X.25, ISDN, frame relay, SMDS y ATM. ARPANET fue una de las 1ras. WAN por conmutación de paquetes, puesta en servicio por le Dpto. de Defensa de EEUU hace unos 30 años. Si bien es una tecnología lenta y ya fuera de uso su mención es significativa porque dejó un amplio legado do conceptos, terminología y algoritmos. Las redes X.25 fueron definidas por la ITU (antes, CCITT) y tomaron más auge en Europa que en EEUU. C ada red X.25 consta de dos o más conmutadores de paquetes, unidos mediante líneas arrendadas. Las redes ISDN son más recientes y, al igual que las X.25, también fueron definidas por el sector de telefonía. El concepto de diseño pretende integrar voz + datos en una red WAN. ISDN viene en dos formatos: interfaz de tasa básica (BRI)(2B+D: 144 Kbps = 2 * 64 Kbps + 16 Kbps) e interfaz de tasa primaria (PRI). La primera fue prevista para usuario individuales pequeñas empresas y la segunda para corporaciones, que requieren mayor ancho de banda. Las redes ATM también integra voz + video + datos, dividiendo los paquetes entrantes en celdas de 53 By (5 By de cabecera + 48 By de datos). Las redes WAN ofrecen dos tipos de servicio: orientado a conexión y sin conexión. En el 1er. tipo, el inicio de una transmisión de un nodo a otro se inicia con un pedido de conexión, lo establece un circuito permanente que se mantiene hasta que el emisor concluye con la comunicación. La ruta por los nodos intermedios permanece activa y dedicada en tanto el emisor no señaliza el fin de la comunicación. En un servicio sin conexión, no es necesario el establecimiento de una ruta para todo el tráfico porque cada paquete toma su propio camino para llegar al destino sin establecimiento de u na conexión permanente. POr ejemplo, Ethernet, token ring y FDDI son servicios sin conexión orientados a LAN. Frame relay y ATM son servicios orientados a conexión para WAN. ------------------------------------------------------------------- Software de red El hardware de red (medio, módems, NICs, hubs, bridges, routers, conmutadores, etc.) maneja los aspectos de más bajo nivel de la comunicación. Para ayudar a los programadores a desarrollar las aplicaciones, el software de red crea una interfaz que maneja automáticamente todos los detalles de bajo nivel permitiendo que los desarrolladores se concentren en aspectos más abstractos de la cuestión de la transferencia de información entre computadoras. La división del software de red en capas simplificó grandemente el diseño, análisis, implementación y prueba de los componentes involucrados. Cada capa maneja una porción del problema de la comunicación y la combinación de todas procura una comunicación segura capaz de recuperarse en caso de fallas o situaciones excepcionales. Un modelo de capas famoso por haber dado satisfacción a lo antedicho es el modelo ISO de 7 capas (física, de enlace, de red, de transporte, de sesión, de presentación y de aplicación). Modelos más actuales han reducido la cantidad de capas pero, en general, se ha mantenido la terminología y los conceptos subyacentes definidos por OSI. * capa 1-física: especifica el hardware básico de red, incluido el medio de transporte. * capa 2-de enlace: especifica la organización de los datos en frames. * capa 3-de red: especifica la asignación de direcciones. * capa 4-de transporte: especifica los detalles de la transferencia confiable. * capa 5-de sesión: especifica el establecimiento de comunicación con un sistema remoto y manejo de los aspectos de validación de acceso. * capa 6-de presentación: especifica la manera de presentar los datos en diferentes sistemas y su conversión (ASCII a EBCDIC, etc.). * capa 7-de aplicación: especifica el uso de la red por parte de cada aplicación. Al pasar por cada capa, el software correspondiente agrega / quita un trozo de encabezamiento a cada paquete que le es propio y necesario para desarrollar su función. Por ejemplo, en un modelo de 7 capas, un paquete puesto en el medio consta de los datos originados por una a plicación mas una cabecera compuesta por 6 secciones apiladas, la agregada por la capa 7, la agregada por la capa 6, la agregada por la capa 5... y hasta la agregada por la capa 2. Los sistemas de red sin conexión pueden entregar paquetes en el receptor fuera del orden cronológico de emisión. Para resolver el problema, la capa de transporte del software de red agrega información de secuencia a cada paquete para que la capa homónima del receptor pueda reconstruir el orden. Asimismo, la capa descarta paquete s duplicados que se hubieran recibido a causa de alguna falla en algún sitio de la red. ------------------------------------------------------------------------ Interredes LANs y WANs están destinadas a diferentes tipos de servicio y, para cada una, hay varias tecnologías diferentes que las implementan. En la década de los 70 se volvió evidente el problema de vincular a computadoras conectadas a redes de diferentes tecnologías. La solución conceptual a este problema (cualquier computadora conectada a una red puede acceder a cualquier otra de otra red) se denomina 'servicio universal'. Este concepto ha sido implementado con éxito ya desde hace tiempo en la red telefónica. El equipo destinado a conectar redes de diferentes tecnologías se denomina enrutador (router) y funciona conceptualmente como un bridges en que los puertos de entrada y de salida están adaptados para operar con redes diferentes. En general, un router puede interconectar a más de dos redes, sean estas LAN o WAN, y, como se dijera, de diferentes tecnologías. Dado que los formatos de frames y los esquemas de direccionamiento son diferentes en las distintas tecnologías de red, los routers deben también valerse de software de red modelado en capas para ofrecer el servicio universal buscado. Si todo esto funciona bien, se dice que la interred proporciona una red virtual porque el sistema de comunicación es una abstracción: todo el hardware y el software dan la ilusión de un sistema de red uniforme, ocultando una miríada de detalles y pasos intermedios que median entre una computadora y otra. La familia de protocolos que más se destaca y más se usa en interredes es la de protocolos TCP/IP. El trabajo en esta TCP/IP comenzó en los años 70, al tiempo en que se desarrollaban las LANs, primeramente financiado por ARPA y luego por la NSF. La difusión y masividad de TCP/IP han posibilitado una multitud de interredes privadas así como el crecimiento y evolución de Internet. -------------------------------------------------------------------------------- TCP/IP El modelo al que responde TCP/IP consta de 5 capas: física, de interfaz de red, de interred, de transporte y de aplicación. * capa 1-capa física: corresponde a capa 1 del modelo ISO. * capa 2-capa de interfaz de red: corresponde a capa 2 del modelo ISO. * capa 3-capa de interred: especifican el formato de los paquetes e información de enrutamiento. * capa 4-capa de transporte: corresponde a capa 4 del modelo ISO. * capa 5-capa de aplicación: corresponde a capa 6 y 7 del modelo ISO. Los hosts de TCP/IP implementan este modelo de capas. Los routers también pero solo hasta la capa 4, no requiriendo la capa 5 en la medida que no ejecutan aplicaciones. El concepto de servicio universal y sistema uniforme posibilitó la elección de un sistema de direccionamiento virtual para cada host y router independientes del hardware, incluidas las direcciones físicas. El protocolo IP es el responsable de implementar este sistema de direccionamiento. La norma establece que cada host recibe una dirección de 32 bits o dirección IP. Cada dirección IP se divide en dos partes: prefijo y sufijo. El prefijo identifica a la red física a que se conecta el host y el sufijo al host mismo. Cada red física recibe así en Internet un número de red diferente de las demás. De este modo, si bien la coordinación de números de red debe ser global, la de números de host puede ser local. El prefijo requiere de suficiente cantidad de bits como para asegurar un número único a cada red física en Internet. El sufijo requiere de suficiente cantidad de bits como para la individualización de todas las computadoras que se conecten a la red física. Los diseñadores optaron por un sistema que permite interconectar redes tanto grandes como pequeñas, dividiendo el espacio de direcciones IP en tres clases primarias en que prefijo y sufijo son de distinto ancho, determinando los 1ros 4 bits de la dirección a la clase primaria: (MSB) 0000 (=> 0..127): clase A --> prefijo 7 bits + sufijo: 24 bits (MSB) 1000 (=> 128..191): clase B --> prefijo 14 bits + sufijo: 16 bits (MSB) 1100 (=> 192..223): clase C --> prefijo 21 bits + sufijo: 8 bits (MSB) 1110 (=> 224..239): clase D --> reservada para broadcast. (MSB) 1111 (=> 240..255): clase E --> reservada para uso futuro. clase A --> 128 sub redes; 16777216 computadoras / red clase B --> 16384 sub redes; 65535 computadoras / red clase C --> 2097152 sub redes; 256 computadoras / red En una interred, cada prefijo de red debe ser único y, para Internet, la IANA (Autoridad de Asignación de Números de Internet) coordina en el ámbito global el reparto de números de red a los ISPs. * La utilización de 0s. como sufijo de una dirección IP está reservado para identificar a la misma red. Por eso un IP de este tipo nunca aparece en un campo de dirección de un paquete. * La utilización de 1s. como sufijo de una dirección IP está reservada como dirección de broadcasting de la red especificada en el prefijo. Por eso, ningún host de una red puede ser asignado con ese valor. * La utilización de 127 como prefijo (clase A) (como en, p.e ., 127.0.0.1) indica una dirección de reciclado. Se utiliza para depurar aplicaciones que hacen uso de la red. El uso de esta dirección impide que un paquete salga a la red, llegando solo hasta la codificación digital en la NIC. Otra aplicación en el mismo host puede recibir el paquete, posibilitando así la prueba de, al menos, una de ellas, sino ambas. Prefijo Sufijo Tipo de dirección ==== ====== ================= ceros ceros Esta computadora red ceros de red red unos difusión dirigida unos unos difusión limitada Propósito ========= usada durante arranqu e para obtener IP dinámico. identifica una red (no puede aparecer en un paquete). difusión en red específica (origen remoto del paquete). difusión en red local (origen local del pa quete). 127 cq. retorciclo usada para depurar aplicaciones que usan la red. No solo los host deben ser provistos de direcciones IP. También los routers. Es más, cada router debe recibir una dirección IP por cada red a la que se conecta. De hecho, un router es una computadora -de propósito especial- conectada a varias redes. Del mismo modo, los hosts multibase, que pueden conectarse a más de una red -aun no cumpliendo las funciones de router- deben recibir un IP por cada conexión. En la asociación entre una dirección IP y la de hardware de un host pueden darse dos casos. Si el host destino está en la misma red que el de origen, la resolución es directa. Caso contrario, el host origen dirige el paquete al router correspondiente (direcionándolo mediante el IP de la conexión que éste dedica a la red en que está el host de origen, y que corresponde a la misma red) el que, de acuerdo a su tabla de enrutamiento, decide cómo debe seguir el tráfico, es decir, si a su vez ha de pasarlo a otro router o si, en cambio, puede resolver la asociación sobre un host una red a la que se halla también conectado. Los algoritmos de resolución de direcciones de hardware clásicos son tres: * búsqueda en tabla local (generalmente usado en WANs). * mediante cálculo (técnica en la que el IP se elige de modo tal que sencillas operaciones aritméticas y booleanas arrojan la dirección física a partir del IP)(es útil cuando las direcciones físicas son configurables). * por intercambio de mensajes (técnica en la que los hosts intercambian mensajes, con servidores dedicados para resolución de direcciones, que son tablas centralizadas, o con el resto de los hosts en la red en la dirección de difusión hasta que uno responde). En particular, TCP/IP incluye un protocolo de resolución de direcciones denominado ARP, que define dos tipos básicos de mensajes: de solicitud, que lleva la dirección IP del origen y la del destino del que se requiere la física, y de respuesta, que devuelve la dirección IP junto con una de hardware enviada por el host que se ha reconocido direccionado. Mediante el tráfico de mensajes ARP, cada host va construyendo un pequeño caché local en que almacena temporalmente las asociaciones más utilizadas. Debido a que los routers pueden conectar redes de diferente tecnología, los formatos frame de hardware de cada red no pueden ser transferidos de un lado a otro sin más. Para superar esto, el protocolo de interred define un formato de paquete universal y virtual que es independiente de las redes físicas que configuran la interred. Cada host y cada router cuentan luego con software destinado a interpretar a estos paquetes universales. En TCP/IP, la denominación de los paquetes universales es datagrama IP. Éstos, curiosamente, tiene el mismo formato que los frames de hardware: cabecera + datos. El tamaño de los datagramas es variable y es determinado por el host o router transmisor. En efecto, cada red define un valor para MTU (unidad máxima de transmisión: tamaño máximo del frame). Si un router debe pasar un paquete universal a otra red cuyo MTU es inferior al tamaño del paquete a transferir, el router se encarga de fragmentarlo en paquetes más pequeños, de tamaño menor o igual al MTU de la red, asignándoles identificadores de secuencia y marcándolos como fragmento de un datagrama más grande. El reensamblado tiene lugar en el host destino (sino se obligaría a todos los paquetes a pasar por un router intermedio que asumiera esa función). Si un fragmento llega corrupto o no llega, el host destino descarta a todos los fragmentos recibidos del datagrama original. Dado que los datagramas son generados en capas intermedias del modelo ISO, al llegar a la capa física son vistos como datos a ser encapsulados en el protocolo de frame físico. De hecho, aun cuando un datagrama encapsulado contiene, por ejemplo, una dirección de IP de destino en su propia cabecera, si el destino está en la misma red, su traducción una dirección física se halla replicada en la cabecera del frame de hardware. Si el host destino está en otra red, la cabecera del frame contiene la dirección de hardware del port del router adecuado. El protocolo IP es solo una parte del TCP/IP, ubicada en su capa de interred. Aquel es vulnerable a duplicación de datagramas, entrega retardada o fuera de orden, corrupción de datos y pérdida de datagramas. Para tomar acciones correctivas, TCP/IP se vale de capas adicionales, en efecto, lo que constituye la familia de protocolos TCP en la capa de transporte destinadas a ofrecer un servicio de traslado confiable de paquetes. TCP ofrece: * orientación a conexión: la aplicación que transmite debe primeramente solicitar una conexión al destino para luego emplearla en la transferencia. * comunicación punto a punto: solo dos hosts terminales. * confiabilidad total: los paquetes llegan todos, íntegros y en orden. * comunicación full duplex. * interfaz de flujo: los datos no se organizan en registros sino que fluyen hacia y desde esta desde capa como un stream. * arranque confiable. Cuando TCP recibe un paquete, envía un ACK. Cuando remite uno, inicia un timer. El tiempo de vida de un paquete TCP es una magnitud que se adapta dinámicamente en el protocolo en forma estadística y depende de cada conexión. Asimismo, las capas IP intercambia información referida al desbordamiento o no de los buffers de recepción, lo que conduce a un ajuste automático de la tasa de transmisión en el otro extremo de la conexión. Una sesión TCP es virtual porque solo ocurre en software como vínculo dedicado entre dos aplicaciones, una en el host origen y otra en el host destino. TCP se sirve de IP para dirigir los mensajes, que son encapsulados por datagramas IP y enviados por la interred. TCP ve a IP como un servicio de transferencia de paquetes entre dos hosts. IP ve a los paquetes TCP como datos a transmitir o recibir. No los interpreta. ----------------------------------------------------- Interacción cliente / servidor Las capas del protocolo de interredes manejan todos los aspectos de una comunicación segura y eficiente entre hosts sobre una interred. Tan bueno es el resultado que la inmensa cantidad de detalles de tal comunicación quedan en general ocultos al usuario. A este último solo le interesan los servicios de las aplicaciones que usan a la red como recurso de comunicación, tan libre de errores como si tratara de un mero cable entre dos o más computadoras. Las aplicaciones definen nombres simbólicos para los recursos que ponen disponibles en la red de modo tal que, en definitiva, ni siquiera es necesario conocer las direcciones de IP. En general, la vinculación entre aplicaciones funciona de manera similar al sistema telefónico, en que ambas partes cooperan. Pero a diferencia de aquel, no hay una señal de llamada. El usuario debe iniciar la aplicación que va a procesar el tráfico a sabiendas de que otro usuario va a intentar un contacto. Este paradigma de aplicación se denomina cliente / servidor. Una aplicación -server- en un host ofrece un servicio que uno o más aplicaciones clientes aprovechan, tal vez, simultáneamente. Son estos clientes quienes inician la comunicación con la aplicación server, que permanece pasiva esperando un contacto. Las aplicaciones clientes, en general, a) es una aplicación arbitraria que, un momento puede requerí de acceso a información o a un recurso remoto. b) se ejecuta localme nte en el host cliente. c) es el que inicia el contacto con un host server. d) puede acceder a varios servicios remotos pero contacta a los servers de a uno por vez. e) no requiere de hardware especial ni de sistemas operativos especiales. Las aplicaciones servidoras, en general, a) son programas especializados de propósito específico, que puede sostener comunicación con varios clientes a la vez, si bien ofrece un solo tipo de servicio. b) opera en una computadora compartida. c) espera pasivamente el contacto con clientes. d) requiere de hardware poderoso y de un sistema operativo apropiado. Los protocolos de transporte (nivel 3, lindero al 4, de aplicación) ofrecen mecanismos para que cada cliente especifique unívocamente cada tipo de servicio deseado. El mecanismo asigna a cada uno un identificador. Al iniciar su operación, cada aplicación server registra en la capa de transporte el servicio que ofrece y que es luego invocado por cada cliente que lo contacta. Por ejemplo, TCP utiliza números de 2By como identificadores de servicio denominados "números de puerto de protocolo". Un server puede atender a varios clientes a la vez corriendo concurrentemente los denominados hilos de control -threads-. TCP utiliza las direcciones IP y de ports TCP de cliente y server para individualizar el thread destino de cada solicitud de un cliente. En efecto, cada aplicación server consta de dos partes principales. Una destinada a aceptar solicitudes de clientes y crear threads, y la otra que tiene por misión atender a cada thread activo. En definitiva, para cada aplicación server en ejecución hay siempre N+1 threads activos: uno correspondinte a la parte que atiende a los cleintes y crea nuevos threads y N correspondientes uno a cada uno de los N pedidos de clientes siendo atendidos. AL interactuar con la capa de transporte, cada aplicación debe especificar detalles como si se trata de un cliente o un server, datos a transmitir o sitios en que recibir, etc. La interfaz que usa una aplicación para interactuar con un protocolo de transporte se denomina API (application program interface). Un API define una serie de operaciones que puede realizar una aplicación para interactuar con un protocolo de transporte. La API de sockets es una norma de facto muy difundida para interconectar aplicaciones con capa 3. Un ejemplo interesante de aplicación bajo el modelo cliente-servidor es el servidor de nombres de dominio (DNS). Este es un mecanismo para ocultar a los usuarios de Internet los números IP detrás de nombres de fantasía, como 'www.lip.uns.edu.ar' o '[email protected]'. Cualquiera de ellos debe ser de algún modo asociado a una dirección IP si es que ha de dar lugar a tráfico de información por la red. Estos nombres de fantasía son claramente amistosos para los humanos, aunque no para las computadoras, que están mucho más 'cómodas' con los números que constituyen a cada IP. Otras aplicaciones típicas del modelo cliente -servidor son el correo electrónico, la navegación en la web, el protocolo de transferencia de archivos (FTP), etc. En particular, la WWW es un repositorio información audiovisual en línea de creciente inmensidad al que los usuarios acceden y en el que pueden buscar mediante aplicaciones cliente denominadas navegadores de www. Seleccionado un 'sitio web', y si corresponde a una dirección (DNS) válida, una 'página web' es descargada en el espacio local del navegador por el 'server de páginas web' apuntado. Cada pagina web contiene información audiovisual así como enlaces a otras páginas, posiblemente, en otros servidores web. Técnicamente, www es un sistema de 'hipermedio' de acceso interactivo. Hipermedio es una extensión del concepto de 'hipertexto'. En ambos la información se almacena como documentos y puede contener punteros a otros documentos. El lenguaje de diseño y especificación de una página web es HTML (lenguaje de marcaje de texto). La sintaxis que incluye toda la información necesaria para su localización por intermedio de un navegador web es una cadena de caracteres denominada URL: http://nombre_de_computadora:port/nombre_de_documento La conexión entre cliente y server en esta aplicación es intermitente. Se inicia con el pedido de una página que, una vez descargada del server al cliente, es presentada, luego de lo cual la conexión termina. El protocolo de comunicación entre ambos es el de transporte de hipertexto (HTTP), que define formatos estándard para pedidos de los clientes y respuestas de los servers. El navegador web es una aplicación que consta de varios clientes, un grupo de intérpretes y un controlador que los administra. El controlador recibe mensajes del teclado y del mouse y, en función de los estímulos recibidos desde éstos, activa los alguno o algunos de los clientes, (http, ftp o email). Además, cada navegador cuenta con al menos un intérprete HTML para presentar los documentos web cuando que el cliente HTTP recibe. Cabe destacar que cada documento web recibido es una copia de un original en un server web, que es almacenada localmente en una memoria de corta vida denominada 'caché'. Los documentos www pueden ser de tres tipos básicos: estáticos, dinámicos y activos. Los primeros tienen contenido invariante, a menos que su autor cambie el diseño y/o contenido (p.e. la biografía de una persona fallecida). Las páginas dinámicas son construidas en forma automática en el server previo a su remisión al cliente, por lo que pueden contener información actualizada. Pero esta información comienza a envejecer ni bien ha sido construida la página dinámica (p.e., temperatura actual o precio de acciones). Las páginas activas descargan en el navegador pequeños programas que, pudiendo conectarse independientemente con uno o más servers, pueden obtener y presentar información permanentemente actualizada.