Fundamentos de Internet

Formas de Interconexión

Tras ver ya los lenguajes que entienden los ordenadores, así como algunas definiciones relevantes, vamos a profundizar en las formas de conexión existentes entre los equipos.

Las formas de interconexión a grandes escalas son dos: directa e indirecta. En la directa se usa un enlace para comunicar a dos o más equipos de la misma red, mientras que en la indirecta se hace uso de conmutadores de paquetes.

Dentro de las conexiones directas existen dos subtipos:

1. Punto a punto: un cable une a dos equipos a nivel de enlace.

2. Acceso múltiple: existen muchos equipos conectados entre sí a través de un mismo cable conocido como BUS.

Dentro las conexiones indirectas, existen dos subtipos:

1. Redes conmutadas (LAN): donde se usan switches y es una red de área local.

2. Conjunto de redes conmutadas (internet): son necesarios el uso de los routers o encaminadores.

Estructura de Internet

Internet hemos visto que es el conjunto de equipos y redes que se comunican entre sí. La forma estructural de internet se podría dividir de la siguiente forma:


1. Borde de la Inter-red: es donde residen los hosts o nodos ( equipos finales ejecutando Apps).

2. Redes de acceso: son las que le proporcionan a los hosts finales la conexión con el resto de internet.

3. Redes de núcleo: es el conjunto de redes interconectadas a través del mundo . En ellas están los ISP’s o proveedores de Internet. Los ISPs tienen una jerarquía donde los de menor tamaño se comunican a través de los de mayor tamaño y la interconexión directa entre ISP’s se da mediante puntos de intercambio de tráfico (IXP).


Por último, los enlaces comparten su régimen binario entre todos los usuarios de internet.

Núcleo de la red. Compartición de recursos

Nosotros como usuario final en el entorno local, solo generamos tráfico y sólo dependemos del régimen binario de nuestra tarjeta de red. Sin embargo, cuando se hace una consulta a través de internet, esos paquetes viajan atravesando el núcleo de la red (los distintos routers conectados a través de enlaces), es decir de los distintos equipos que hay en el mundo, reenviando el paquete hasta llegar al destino. Por tanto, si escalamos el mismo escenario a muchos usuarios llegamos a la conclusión de que todos compartimos esos recursos/enlaces obligando a buscar una forma de compartir los recursos. En otras palabras, el uso de enlaces compartidos entre los usuarios obliga a fijar una forma de “repartir” el uso de la capacidad de conmutación de los conmutadores de paquetes y del régimen binario de sus enlaces. Existen dos forma:

1. Conmutación de circuitos: se usa por ejemplo en la red telefónica y se dedica un circuito (se reserva parte del régimen binario de cada enlace en el camino para la comunicación) para cada comunicación durante toda su duración. Es lo que se conoce como multiplexión por división en el tiempo.

Como podemos ver en la siguiente imagen,  hay un equipo que está ejecutando Discord que se quiere conectar a otro equipo que también lo está ejecutando. En esa llamada telefónica se podría reservar un (camino rojo), con parte del régimen binario de los enlaces,  para que cuando surja otra llamada (camino azul) , se le pueda llegar a dar otro circuito (otro trozo de régimen binario) y la llamada se pueda cursar en caso de coincidencia de enlaces. 



2. Conmutación de paquetes: los datos se envían a la red en paquetes o bloques sin dedicación de recursos exclusiva, es decir, cada paquete usa toda la capacidad del canal (todo el régimen binario) cuando le toca ser servido. Esto hace que sea necesario un búfer (un almacén para los paquetes hasta que se puedan procesar y enviar)  y se reduzca la probabilidad de pérdidas. Es lo que se conoce como multiplexión estadística.

Aplicaciones distribuidas

Una aplicación distribuida no es más que un servicio que se le ofrece a un usuario y para el cual cooperan procesos distintos equipos informáticos. Pueden ir desde un buscador web como google hasta la redes de bitcoin.

En las aplicaciones distribuidas cada proceso necesita usar primitivas del servicio de transporte de mensajes entre procesos para enviar o recibir mensajes y se necesita establecer una organización de esos procesos. Para indicar la organización de la aplicación entre varios procesos, es decir, como los diferentes procesos que componen la aplicación se comunican entre sí se usa lo que se conoce como una Arquitectura. Se distinguen tres tipos de arquitecturas:

1. Cliente-Servidor: un cliente inicia la comunicación con el servidor. Éste último siempre está activo, tiene una dirección IP permanente conocida por los clientes y está en escucha de peticiones de muchos clientes. No existen comunicación entre clientes. Ej: Buscador web


2. Peer to peer (P2P): es un cliente + servidor pero con características de sólo clientes, por lo que sólo hay comunicación entre clientes. Ej: Bitcoin, BitTorrent, Freenet, Ares, GNutella, etc.


3. Mixta: los peers consultan servidores para saber con qué peers deben comunicarse y obtener lo que buscan. Ej: Skype, utorrent, etc.

Cada aplicación elige el nivel de transporte que más se adecúe a sus necesidades. Por ejemplo, una aplicación web tradicional usa el protocolo de aplicación HTTP (no seguro ya que no cifra) y el servicio de transporte que usa es TCP. Por otro lado un servicio de streaming multimedia puede usar HTTP o RTP (RFC 1889) como protocolo de aplicación y  TCP o UDP como protocolo de transporte.