Tema 1. Introducción La bibliografía y las figuras son de Redes de Computadoras A.S. Tanenbaum y D.J. Wetherall, 5 Edición. 1. Redes de ordenadores - En el inicio de la informática: sistemas altamente centralizados en «centros de cálculo». Había poca conectividad. Los usuarios llevaban los programas para ejecutarlos. - En la actualidad: gran número de ordenadores interconectados e interactuando, distribuidos físicamente. Las comunicaciones son más importantes que la potencia de cálculo. Suele confundirse las redes de ordenadores y los sistemas distribuidos, por la relación que hay entre ellos: un sistema distribuido se construye sobre una red de ordenadores. En los sistemas distribuidos hay una capa software (suele llamarse un middleware que se sitúa entre la aplicación y el sistema operativo de cada ordenador participante) que unifica los ordenadores que se usan para una aplicación, de forma que se ven como un todo. En las redes de ordenadores nos ocupamos de sistemas independientes, es decir, cada ordenador es independiente y con su propio sistema operativo. Cuando un ordenador quiere comunicar con otro tiene que usar algún sistema de comunicaciones (hardware y software). Un ejemplo de sistema distribuido es la World Wide Web. Con nuestro navegador web nos conectamos a cualquier página poniendo direcciones y pinchando enlaces. Nos da la impresión de que todo es una misma cosa, como si fuese todo un único sistema coherente. No usamos explícitamente el sistema de comunicaciones ni nos percatamos de que nos conectamos a diferentes servidores porque lo oculta el software del sistema distribuido. 2. Tipos de redes No hay un acuerdo en cómo clasificar las redes. En cambio, destacan dos puntos de vista que iremos mencionando en los próximos temas. Una clasificación se basa en el tipo de transmisión. Diferenciamos entre redes punto a punto y redes de difusión (broadcast). En las redes punto a punto un mensaje se envía desde un ordenador a otro en una red. El envío puede ser directo (dos ordenadores conectados por un cable) o podría necesitar visitar otros ordenadores o elementos de la red, por ejemplo encaminadores (routers). En las redes de difusión un mensaje es recibido por todos los ordenadores de la red pero como se pone la dirección de destino, probablemente sólo el destinatario tratará el mensaje. Una red WiFi es un ejemplo, al enviar el mensaje, cualquiera puede captarlo. En estas redes, normalmente hay una dirección especial para indicar que el mensaje se envía a todos los ordenadores. A esta acción le llamamos una difusión o broadcasting. Otra posibilidad es enviar mensajes a grupos de ordenadores. Esta última acción es lo que llamaremos multidifusión o multicasting. Otra clasificación puede basarse en la escala o tamaño geográfico de la red. Podríamos diferenciar los siguientes tipos de red: - Redes de área personal, Personal Area Network (PAN). Cubre distancias de pocos metros. Ejemplo, Bluetooth. - Redes de área local, Local Area Network (LAN) (de decenas de metros a 1 Km). Ejemplo, WiFi, Ethernet. Normalmente son redes privadas que se circunscriben a una casa o edificio, pero podrían conectar el recinto de una empresa o un campus. - Redes de área metropolitana, Metropolitan Area Network (MAN) (decenas de Kms). Ejemplo, redes de televisión por cable. - Redes de área amplia, Wide Area Network (WAN) (miles de Kms). Ejemplo, la red de un proveedor de servicios de internet (ISP). - Redes de redes, interredes (internet o internetworks). Se trata de conjuntos de redes interconectadas. Internet (en mayúscula para diferenciarla) es un caso concreto de una red de redes. Proporcionan un direccionamiento uniforme a redes de diferentes tecnologías y diferentes propietarios o de diferente naturaleza. Por ejemplo, permiten comunicar un teléfono móvil con un servidor web. La dimensión puede ser de nivel planetario, como es el caso de Internet. 3. Arquitecturas de red Los sistemas de redes informáticas se estructuran en capas o niveles para dividir un problema complejo en varios problemas más simples. Cada nivel se ocupa de resolver o facilitar el funcionamiento de una parte haciendo uso del nivel inferior y ofrecer servicio a su nivel superior. Por ejemplo, un navegador web es una aplicación que usa el protocolo TCP para poder enviar sus peticiones a un servidor. A su vez, la capa representada por TCP necesita el protocolo IP, de un nivel inferior, para poder enviar bytes. En esta organización, cada nivel en un punto de la red comunica con el nivel equivalente, es decir, ese mismo nivel, en otra parte de una red. Las normas que organizan esta comunicación son los protocolos de comunicación. Los protocolos de comunicación contienen cosas como el formato de los mensajes, los campos que contienen, cómo interpretar o actuar ante el contenido de estos campos, los permisos de comunicación, etc. Una arquitectura de red se describe como el conjunto de niveles y sus respectivos protocolos en los que se organiza el sistema de comunicaciones. En una entidad de comunicación (un elemento de la red), un nivel ofrece servicios a su nivel superior y usa los servicios del nivel inferior. El conjunto de primitivas o funciones a través de las que se ofrecen esos servicios son las interfaces entre los niveles. Estas primitivas son dependientes de las implementaciones de una arquitectura de red y por eso no forman parte de la misma. Es decir, una misma arquitectura puede estar implementada y adaptada para diferentes sistemas operativos de ordenadores por diferentes empresas o programadores. El hecho de realizar o cumplir la misma arquitectura, permitirá que esos ordenadores con diferentes sistemas operativos (y diferentes implementaciones de la arquitectura de red) puedan comunicar. Pilas de protocolos: arquitectura de red. Cómo están definidas las interfaces y funciones en una implementación no concierne a cómo se ha hecho en otra implementación (que está en otro ordenador). En cambio, las normas y formatos de comunicación en un nivel deben respetarse para que la comunicación sea posible. La arquitectura viene a ser como un estándar o un convenio. Cuando se envía un mensaje desde el nivel más alto (realizamos algo desde una aplicación que envía datos por una red) el mensaje atraviesa la pila de protocolos desde el nivel de la aplicación hasta la codificación de información aplicando modificaciones sobre un medio físico (por ejemplo modificando el voltaje sobre un cable de cobre). Al atravesar cada nivel (usando las operaciones que ofrece su interfaz) normalmente cada nivel añade información al mensaje para que sea interpretada por ese mismo nivel en el ordenador que recibe el mensaje. Por ejemplo, direcciones que deben ser interpretadas en ese nivel, indicaciones de entrega al nivel superior, datos que permiten numerar y ordenar los mensajes, etc. Normalmente esta información se añade en cabeceras pero en algunos casos también se pueden añadir campos al final del mensaje. El formato de las cabeceras y la interpretación de sus campos se define en los protocolos del nivel respectivo. A veces, al pasar un mensaje a un nivel inferior es necesario trocear ese mensaje en varias partes. Por ejemplo, si en ese nuevo nivel sus protocolos dictan que el tamaño máximo de los mensajes es inferior al del nivel superior. Si es necesario, los protocolos de ese nivel incluirán medidas para que no se pierdan datos ni se modifique el orden inicial. En la recepción del mensaje, se sigue el orden inverso. Desde el nivel del medio físico el mensaje va subiendo niveles hasta llegar a la aplicación a la que se destina el mensaje. En cada nivel se recupera, interpreta y elimina la cabecera que se trata en cada caso. En comunicaciones que implican atravesar diferentes redes y organizaciones para llegar al destino, el mensaje puede retransmitirse muchas veces (como si fuese saltando de un punto intermedio a otro). En cada salto o envío debe atravesar los niveles de red en los puntos intermedios. Por ejemplo, cuando se envía un mensaje por internet, el mensaje (hasta el nivel de los protocolos de internet) será tratado y reenviado por cada encaminador o router. Arquitectura OSI. El cuadro central se vuelve a producir cada vez que el mensaje pasa por un encaminador de internet. 4. Modelos de referencia Hay dos arquitecturas de red que se suelen usar como modelos de referencia para comparar o entender arquitecturas de red: OSI (Open System Interconnexion) de ISO (International Standard Organization) y TCP/IP. La primera no se usa en la práctica pero se suele usar como referencia para comparar otras arquitecturas. TCP/IP es el modelo en uso, pero no describe bien todos los niveles. 4.1 Modelo OSI OSI es una arquitectura de red. En OSI hay 7 niveles pero algunos de ellos son muy complejos y otros tienen una utilidad discutible. Niveles de la arquitectura OSI. La arquitectura de red OSI de ISO tiene los siguientes niveles: 1. Capa Física. Cómo enviar datos sobre un medio físico. 2. Capa de Enlace de Datos. Cómo organizar el envío de datos sobre un canal de comunicación. Preparar los mensajes, fiabilidad, ajuste de velocidad entre emisor y receptor, organización de los turnos de comunicación. 3. Capa de Red. Direccionamiento y rutas para conectar diferentes redes y que puedan comunicar. 4. Capa de Transporte. Preparar flujos de datos en mensajes. Comunicación fiable entre dos puntos. 5. Capa de Sesión. Permisos y organización de la comunicación. 6. Capa de Presentación. Tratar estructuras abstractas de datos para que puedan ser interpretadas de igual manera en diferentes ordenadores. 7. Capa de Aplicación. Protocolos de las aplicaciones de los usuarios. Por diferentes razones este estándar no tuvo éxito. 4.2 TCP/IP Es el modelo que se difundió en la industria y que es utilizado actualmente. Está definido desde un punto de vista práctico más que un modelo bien estructurado y definido. Describe las capas que equivalen a los niveles de red, transporte y aplicación de OSI, pero por debajo de la capa de red simplemente se indica que hay primitivas para enviar mensajes. En la asignatura usaremos un modelo híbrido en el que al modelo TCP/IP le añadimos la capa de enlace de datos y la capa física del modelo OSI. Es decir, que consideraremos los siguientes niveles: físico, de enlace de datos, de red, de transporte y de aplicación. 5. Esquema general de las redes 5.1 Origen de Internet Internet se originó en los años 1950 (durante la guerra fría) como un conjunto de nodos conectados por módems de 56kbps. La idea es que los nodos conectaran con varios vecinos y que se enviasen mensajes independientes. De esta manera se podía aumentar la fiabilidad con respecto al sistema de conmutación de telefonía, el cual se basa en una jerarquía de centralitas. A esta red se le llamó ARPANET y fue creada por el Departamento de Defensa de los EEUU. Esta red fue evolucionando y se fueron conectando universidades y centros de investigación. El número de conexiones aumentó rápidamente y se fueron mejorando potentes dorsales de interconexión. La evolución dio en lo que ahora es Internet. 5.2 Estructura actual Estructura actual de Internet • POP Punto de presencia. Los datos son separados del sistema telefónico. También indica dónde un operador llega con su red y puede vender conexión a sus clientes. • ISP Internet Service Provider. Hay diferentes niveles, según las conexiones que tienen con otros operadores. Los operadores grandes (Tier 1) poseen grandes redes con enlaces dorsales (backbone) que conectan países y continentes. Las redes de los ISPs forman sistemas autónomos (redes en las que se optimizan el encaminamiento y tiene un direccionamiento propio) . Internet es la conexión de sistemas autónomos. Tier, clasificación de los operadores • IXP (Internet eXchange Point). Son lugares donde los ISP llegan con su red y se intercambian tráfico y direccionamiento. Si el acuerdo de intercambio es entre operadores de tamaño similar, normalmente es gratuito y se llama peering. En cambio un operador pequeño puede contratar mediante pago a uno grande para conectar con el resto de Internet. Esto último es lo que se conoce como transit. Normalmente se intentará alcanzar los destinos usando su red propia, mediante redes con las que se tiene peering y en última instancia pagando por el tránsito. • IANA (Internet Assigned Numbers Authority) es una organización repartida en regiones del mundo que va repartiendo bloques de direcciones de Internet. Cada sistema autónomo posee uno o varios bloques. • NAP (Network Access Point). Las dorsales y redes de operadores llegan a encaminadores (routers) que conectan entre ellos con redes de alta velocidad. Los sistemas autónomos también se conectan en estas ubicaciones. Lo mismo que los IXP. • Protocolos de encaminamiento. Algoritmos para encontrar las rutas y las redes, de forma dinámica, tanto entre sistemas autónomos e internos a los sistemas autónomos. 1.6- Estándares y unidades 1.6.1- Estándares Los fabricantes y desarrolladores podrían hacer productos que solo comunican entre ellos. En cambio, para los usuarios es mejor que productos de diferentes marcas puedan comunicar entre sí. Para esto es necesario ponerse de acuerdo en estándares que indiquen cómo deben interactuar productos de diferentes marcas o fabricantes. De esta manera los usuarios pueden disfrutar de un mercado más abierto. En las comunicaciones los estándares estarán destinados a los protocolos, que, como se ha visto, son los que marcan o dictan cómo se hace la interacción entre los niveles de una arquitectura de red. Un producto puede cumplir unos estándares (cumple correctamente los protocolos) pero puede ser un producto cerrado o propietario. Internamente no tenemos por qué saber cómo está hecho. Hay estándares que se imponen por el mercado o el uso. Normalmente porque un sistema es nuevo y se impone ante otras alternativas. Otros estándares se desarrollan en grupos o comités de expertos, de forma consensuada. En estos comités puede haber representantes de gobiernos y los estándares pueden ser de obligado cumplimiento. Otros comités pueden estar formados por representantes de empresas o asociaciones de usuarios del sector concerniente. En muchas ocasiones los estándares impuestos por uso, informalmente, son revisados por grupos de expertos. Por ejemplo, el protocolo para web, http en la versión de los creadores inicialmente se impuso como un estándar de uso. Ahora es un estándar revisado y definido por la IETF (Internet Engineering Task Force). Algunos grupos que revisan y proponen estándares en el mundo de las telecomunicaciones e Internet: • ITU (International Telecommunication Union). Es un organismo internacional adscrito a la ONU con representantes de muchos gobiernos de países y también de fabricantes y empresas de telecomunicaciones. Se encargan de proponer estándares para sistemas de telefonía y comunicaciones de datos para que todos podamos comunicar. • ISO (International Standards Organization). Propone estándares internacionales para multitud de áreas, no solo materia de telecomunicaciones. Como miembros tiene entidades de estandarización de muchos países, como ANSI, de EEUU o DIN de Alemania. En temas de telecomunicaciones suele trabajar conjuntamente con ITU. • NIST (National Institute of Standards and Technology). Es parte del Departamento de Comercio del gobierno de EEUU. También se le suele conocer como el National Bureau of Standards. Es importante porque las compras del gobierno de EEUU deben ser conformes a los estándares propuestos por este organismo. • IEEE (Institute of Electrical and Electronics Engineers). Se trata de la mayor organización de profesionales a nivel mundial. En especial, su comité 802 se encarga de proponer estándares para la mayor parte de redes de área local (algunos con mucho éxito y otros que no han sido adoptados por la industria). Por ejemplo, el grupo de trabajo 802.3 se encarga de las redes Ethernet y el 802.11 de las redes WiFi. • IAB (Internet Architecture Board). Se encarga de proponer estándares para el funcionamiento de Internet. • IRTF (Internet Research Task Force). Parte de IAB. Se ocupa investigar y hacer propuestas a largo plazo sobre Internet. • IETF (Internet Engineering Task Force). Se encarga de aspectos más prácticos y a corto plazo. Trabajan en grupos destinados a diferentes aspectos de Internet (aplicaciones, integración con otros estándares, direcciones y enrutamiento, seguridad, ...). Tienen establecido un mecanismo para proponer nuevos estándares, a través de RFCs (Request For Comments). • W3C (World Wide Web Consortium). Es un consorcio de industriales que se encarga de protocolos y guías para la web. Estándares de Internet A partir de los RFC, el IETF propone los estándares para Internet. Un RFC es un documento técnico donde se describe un problema o nuevo sistema y se describe cómo debe resolverse o qué debe cumplir una implementación. Para proponer un nuevo estándar o una revisión de alguno existente, debe describirse en un RFC y suscitar interés en la comunidad de usuarios. Entonces se convierte en una Proposición de Estándar. Si se hace una implementación que se prueba intensamente por dos grupos independientes durante 4 meses, entonces se pasa al estado de Borrador de Estándar. Si IAB se convence del problema y de la calidad de la solución propuesta, entonces el RFC puede convertirse en un Estandar de Internet. Los RFC se pueden consultar para aclarar dudas y guiar implementaciones (www.ietf.org/rfc). 1.6.2- Unidades Las cantidad de memoria se mide en potencias de 2: 1kByte = 1024Bytes = 2¹⁰ bytes. El ancho de banda de las redes se mide en bits/segundo y son potencias de 10. Por ejemplo, 1 megabit por segundo = 10⁶ bits/seg ó 1 Mbps. Prefijos métricos.