Introducción a la red (1)

El objetivo de esta serie ( #introred ) es explicar de una forma comprensible ( es decir, sin aburrir con el petardo del modelo OSI ) los fundamentos de Internet.

Basicamente existen 2 tipos de redes de ordenadores. Por un lado tenemos las LAN, que son redes sin gateway y conectadas en el mismo cable. Se suelen encontrar en casas, oficinas, etc. Y por otro lado estan las WAN ( Wide Area Network ), que son redes que interconectan varias LAN. Principalmente destaca Internet, que es una WAN a nivel mundial.

La imagen que encabeza el artículo es un mapa de Internet, aunque seguramente esté desactualizado porque Internet cambia constantemente. Obviamente no es un mapa total de Internet ( seguramente jamás harán uno ), pero sí que contiene las redes más importantes.

Internet funciona con una serie de capas similares a una cebolla. El contenido util de una capa es a su vez otra capa, y el de este, otra capa, y así sucesivamente. Cada una de estas capas resuelve ciertos problemas en la comunicación entre ordenadores. Vamos a empezar hoy con las capas más altas y ya profundizaremos en otros artículos.

Supongamos que estamos visitando una página web. Para que la petición que hace el navegador sea entendida por el servidor web, tienen que «hablar» un protocolo común. Este protocolo es el http. Pongo aquí una imagen con un ejemplo de dialogo http entre un cliente ( el autor de este artículo y su pericia ) y un servidor ( el nginx que usa la web de kernel.org )

Ejemplo de HTTP

Si se es observador, se pueden sacar ciertas conclusiones, como que el header http es de la forma [ PETICIÓN RUTA HTTP/VERSIÓN ]. La petición suele ser GET, aunque existen otras, como POST para el envío de formularios o PUT para subir archivos.

También se observan algunos campos con la sintaxis «Campo: Valor», por ejemplo, el valor de «Host» se usa para indicarle cual de las webs disponibles queremos. Esto se hace porque hay algunos servidores que alojan varias webs a la vez.

Hay otros campos como «Content-Lenght» en la respuesta del servidor, ( para saber donde acaba lo que el servidor va a mandar ), o «Content-Type», el cual nos permite saber si lo que el servidor envía es una web html, un fichero .webm ( vídeo ), si es audio, xml, etc. Los servidores web en su configuración tienen una tabla que asocia ciertas extensiones de archivo a tipos mime. Por ejemplo el html se asocia al tipo text/html.

Esta explicación que he hecho es muy simplista, el http real tiene muchos mas campos y complejidad. Lo importante es que existen unos documentos ( Los RFC ), que explican con todo lujo de detalles los diversos protocolos de red, aunque se requieren unos conocimientos previos para entenderlos.

Aunque no debería hacer falta decirlo, existen muchos protocolos aparte del HTTP. Por ejemplo, tenemos el SMTP ( envío de correo ), IMAP ( recepción de correo ), XMPP ( mensajería instantánea ), SSH ( shell de comandos remota ), etc.

Lo importante de estos protocolos es que resuelven el problema de comunicar 2 aplicaciones, una del lado cliente y otra del lado servidor. Por ello esto se denomina nivel de aplicación. En futuras entradas seguiremos con el nivel de transporte.

Saludos !

Compartir

4 Comentarios

  1. Cambia eso anda desikoder :). Lo de LAN, «Por un lado tenemos las LAN, que son redes sin gateway y conectadas en el mismo cable. «

    Es erroneo.

    1. Totalmente, las redes LAN Y WAN son muy parecidas(no hay ninguna diferencia en cuando a la topologia de la red) , la diferencia esta en las velocidades de trasnsmision, y los metodos utilizados para llevar la comunicacion de un lado a otro.

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax