viernes, 20 de febrero de 2009

Internet y sus protocolos

Hoy vamos a hablar un poco en plan técnico sobre algunos de los protocolos utilizados en Internet. Ya estoy oyendo a algunos decir "puff, vaya rollo", pero tranquilos que no va a ser muy pesado.


¿Qué es eso de dirección IP?
Una dirección IP identifica a un ordenador conectado a Internet. Es por así decirlo el DNI del ordenador. Para navegar por Internet no es necesario que sepamos que existen las direcciones IP, pero existir existen, os lo juro.

Para saber qué dirección IP tenéis asignada, basta con que ejecutéis el comando "ipconfig" desde el MS-DOS (Menú Windows / Ejecutar / cmd ) y veáis los números junto a "Dirección IP".


¿Y si existen las direcciones IP porqué me entero ahora?
Las direcciones IP son números difíciles de recordar, por lo que para facilitar la tarea, se sustituyen por un nombre. Por ejemplo, el nombre www.google.es se traduce automáticamente en la dirección IP 209.85.135.99 . Si escribimos en nuestro navegador la IP anterior, obtendremos el mismo resultado que con www.google.es .


¿Quién se encarga de traducir automáticamente los nombres en IPs?
Los servidores de DNS lo hacen. Normalmente al conectarnos a una red, las IPs de estos servidores ya están establecidas, por lo que ni nos enteramos que hacen falta.


Qué es un protocolo
Un protocolo no es más que un conjunto de reglas para realizar una acción. Traduciéndolo a lenguaje de la calle, podríamos decir que el protocolo para freir un huevo es:
- Poner aceite en una sartén.
- Poner la sartén sobre el fuego de la cocina.
- Encender el fuego.
- Cuando esté caliente el aceite echar el contenido del huevo sobre el aceite (con cuidado que salpica).



Protocolo IP

El protocolo IP marca las reglas para que 2 ordenadores se envíen datos a través de internet. Este protocolo dice que:
  • La información se debe trocear en paquetes de un tamaño determinado. Así por ejemplo, para mandar un fichero de 1Mb quizás nos haga falta enviar 100 paquetes de 10 Kb de tamaño.
  • En cada paquete se adjunta la siguiente información en una zona especial que recibe el nombre de cabecera:
  1. Un número de secuencia, así el receptor sabrá cómo montar la información a partir de los paquetes recibidos. Bastará con componer la información a partir de los paquetes ordenados por su número de secuencia.
  2. La dirección IP del equipo emisor y del equipo receptor del paquete.
Así pues, si dos equipos se comunican mediante el protocolo IP, saben que deben enviarse la información de la forma que hemos descrito.


Protocolo TCP
En este punto podemos pensar lo siguiente: "esto de intercambiar información está muy bien, pero yo normalmente veo varias páginas web a la vez mientras veo la tele por internet y parece que el ordenador no se hace un lío mientras está comunicándose con varios servidores a la vez.". Para solucionar este tema aparece el protocolo TCP que trabaja conjuntamente con el IP.

El protocolo TCP consiste en lo siguiente:
- Cada paquete se recibe/envía desde una puerta de salida/entrada del equipo (comunmente conocida como puerto). Cada aplicación trabaja con un puerto y así no se "estorban". Por ejemplo, los navegadores web suelen utilizar el puerto 80.
- Cada vez que se recibe un paquete de datos, se envía un acuse de recibo al equipo emisor. En el caso de que el emisor no reciba el acuse de recibo tras un tiempo, reenviará el mismo paquete.

Haciendo un simil con el servicio postal, diríamos que el protocolo IP son los repartidores que entregan el paquete en la dirección que se les ha dicho y el protocolo TCP es el funcionario que se encarga de repartir el trabajo y asegurar que todas las cartas se entreguen. Si un repartir informa que no ha podido entregar un paquete, el "funcionario TCP" intenta el reenvío usando otro repartidor, por ejemplo.

El concepto de puerto es quizás más conocido para los usuarios de aplicaciones P2P (eMule, BitTorrent, por ejemplo) ya que estas aplicaciones trabajan con puertos específicos que necesitan ser abiertos explícitamente, ya que por normas de seguridad es posible que estén cerrados.


Protocolo UDP
Este protocolo se basa en que lo importante es la velocidad, por lo que debe evitarse el envío de información que no sea crucial. Este protocolo se suele utilizar para aplicaciones de tiempo real, como puede ser una conversación de voz a través de internet, en la que lo importante es que la voz viaje rápido, "sin importar" si en alguna ocasión se pierde un poco la calidad del sonido.

Este protocolo decide que el acuse de recibo no es útil para los fines buscados, por lo que no se asegura que todos los paquetes enviados por el emisor sean recibidos por el receptor. En el ejemplo anterior significará que quizás no se reciban unas palabras del emisor. De forma técnica, diríamos que es un protocolo unidireccional al no tener acuse de recibo.

Los paquetes no están numerados, sino que cada paquete contiene información útil para el receptor. El receptor no necesita recibir todos los paquetes para componer el mensaje original.

No hay comentarios: