Funcionamiento de Internet

Este es un artículo acerca del funcionamiento de internet. En él voy a hablar de:

  • Protocolo TCP/IP – Modelo de capas, funcionamiento básico.
  • Sistema de DNS.
  • Protocolos de HTTP, SMTP, POP, y otros.
  • "Routing" de paquetes.

¿Qué es el TCP/IP?

TCP/IP son las siglas de Transmission Control Protocol/Internet Protocol, es un conjunto de protocolos (reglas, operaciones, métodos de comunicación) que permite a computadoras que cooperan compartir recursos a través de una red. Fue desarrollado por una comunidad de científicos en el proyecto ARPANet, que tuvo como objetivo construir una red de computadoras con propósitos militares.

El nombre más apropiado para esto es "conjunto de protocolos de internet". Dado que TCP e IP son los dos protocolos más
conocidos, se usa el nombre TCP/IP para toda la familia.

Estos protocolos fueron definidos en normas conocidas como RFC ("Request For Comments"), que son emitidas por los organismos que controlan Internet y su desarrollo, formados a su vez por docentes, científicos y corporaciones de distintos países. Uno de los científicos más conocidos es Vinton Cerf, coautor del protocolo TCP y actualmente vicepresidente de MCI y presidente de la ICANN.

TCP/IP es un protocolo compuesto de "capas". Cada una de estas capas resuelve una parte del problema de llevar un mensaje de una computadora a otra. Comparándolo con el correo, las "capas" vendrían a ser la persona que envía la carta, la oficina de correos, los camiones y los carteros, y finalmente la persona que recibe la carta. Cada uno de ellos tiene una responsabilidad específica en el envío de una carta; igual funciona el protocolo TCP/IP y cada una
de sus capas para llevar un mensaje de una computadora a otra.

A grandes rasgos, el TCP/IP funciona dividiendo un mensaje en "paquetes", los cuales se envían a la red separados, y se reúnen en la computadora destino. Si uno de estos paquetes se pierde por el camino, tal situación puede ser detectada y la computadora destino puede pedir que se le reenvíe la información faltante. Las capas además resuelven el problema de tener que comunicar redes que utilizan distintas tecnologías, como cables Ethernet, fibra óptica, cables de teléfono, microondas ("Wi-Fi", por ejemplo), etc.

El TCP

El TCP es responsable de romper el mensaje en paquetes y rearmarlo en el destino, requiriendo la retransmisión de toda la información faltante. Maneja varias conexiones, con distintas computadoras, y usa "puertos" para diferenciar una conexión de otra. Estos puertos son n&
uacute;meros asignados por el sistema operativo a los programas que utilizan el TCP/IP. Cada uno de los paquetes se lo entrega al IP, que se encarga de hacer llegar el paquete a su destino a través de, quizá, muchas redes.

El IP

El IP es responsable por tomar cada uno de los paquetes enviados por el TCP y mandarlos a través de distintas redes hacia su destino final. Al IP no le interesa si un paquete es parte de un mensaje más grande, o si tiene que ir antes o después de algún otro paquete. El IP simplemente los manda. Está diseñado para resolver toda clase de situaciones problemáticas como por ejemplo que alguna determinada ruta deje de estar disponible y deba elegirse otra, o que las rutas que se fueron eligiendo resulta que devuelven el paquete a alguna red por la que este ya pasó ("loop").

El nivel físico

A su vez, el IP envía sus paquetes a travé
s de redes físicas, cada una de ellas con distintas maneras de enviar los datos. En la capa física se resuelven los problemas específicos de cada medio de transmisión, y se convierten los paquetes IP en las señales eléctricas u ópticas, o de microondas, necesarias para hacer llegar la información a otra computadora.

Comparándolo con el correo, el TCP vendría a ser un secretario que decide separar nuestra carta en varios sobres, y el IP es el empleado de la oficina de correos que toma cada sobre y de acuerdo a su destino, lo envía con algún medio de transporte, sea avión, camión o simplemente un cartero. Esos medios de transporte son los que finalmente transportan las cartas hacia sus destinos.

El sistema DNS

El TCP/IP sabe cómo enviar un mensaje de una computadora a otra porque conoce su dirección IP. En la actualidad se usan nú
meros de 32 bits (4 bytes) y cada uno de ellos identifica a una única computadora conectada a Internet. Estos números son asignados por las empresas que dan conexión a internet a nuestras computadoras cuando estas se conectan a la red, ya sea a través de cable-modem (“Ethernet”), Wi-Fi (microondas), fibra óptica, teléfono, etc.

Un número de IP se parece a esto: 200.48.127.213. Evidentemente, es difícil acordarse de una pila de números para ir a visitar por ejemplo un sitio web o mandar un e-mail. Por eso se inventó el sistema DNS. DNS son las siglas de "Domain Name System". Este sistema se encarga de traducir los números de IP a nombres que sean más fáciles de entender para los seres humanos, como por ejemplo www.strellis.com.ar.

En www.strellis.com.ar, la primera palabra se denomina "host" y el resto se denomina "nombre de dominio". El host es el nombre de
alguna computadora, en este caso, una llamada www que atiende a los clientes que les piden páginas web, como el Internet Explorer, el Firefox, etc. En la parte de nombre de dominio, cada uno de esos pedacitos se llama dominio. Estos nombres se eligen por motivos comerciales, o personales, o ambos. Generalmente se trata que estos dominios representen algo con lo que sea fácil asociar el servicio que la página web presta, como por ejemplo www.apuestasonline.com. A nadie le queda dudas que ese sitio maneja apuestas, ¿cierto?

Los distintos dominios están administrados por distintos organismos y cada uno de ellos decide qué nombres permitir o si decide cobrar por dar los nombres. Por ejemplo, el dominio “ar” está administrado por el Ministerio de Relaciones Exteriores, a través de un organismo llamado Nic.ar. De él dependen también “com.ar”, “org.ar”, “net.ar”, etc. Nic.ar no cobra por asignar los nombres pero otros
administradores de dominio como por ejemplo .com sí cobran.

Delegación de nombres

Como ya dije antes, los distintos dominios se asignan a distintos organismos que los controlan. Cada uno de ellos tiene a su vez autoridad para dar dominios a otros organismos para que los administren, como por ejemplo uba.ar para la Universidad de Buenos Aires. Este proceso se denomina delegación.

Funcionamiento del DNS

Pero todavía no explicamos cómo se hace para convertir un nombre como www.strellis.com.ar en una dirección IP como 200.123.133.98. Este proceso se llama resolución de nombres.

Resolución de nombres

Primero de todo, debemos decir que hay montones de computadoras en internet cuyo a veces único propósito es resolver nombres de dominio. Una de estas computadoras, por ejemplo, es administrada por mi proveedor de internet. Mi computadora la conoce porque
cuando esta se conectó a internet, mi proveedor le indicó, además de cuál iba a ser su propio número de IP, cuál es el IP de la computadora que se va a encargar de resolver nombres de dominio, supongamos 200.29.232.122. Entonces entre mi computadora y la de mi proveedor de internet se da el siguiente diálogo:

MiComputadora> www.strellis.com.ar IN A?
Proveedor> www.strellis.com.ar 85878 IN A 200.123.133.98 IN NS nrd.sysnetworks.com.ar

Lo cual en lenguaje humano se podría traducir así:

MiComputadora> Che, flaca, un usuario me pidió que le averigüe cuál es la computadora que atiende www.strellis.com.ar, pero yo no la sé. ¿Me la podés decir?
Proveedor> No hay problema, muchacha, te cuento: www.strellis.com.ar está atendido por una computadora cuya dirección IP es 200.123.133.98. A mí me lo contó nrd.sysnetworks.
com.ar, que es la computadora que dice que administra ese dominio, así que yo confío en ese dato. Hasta dentro de 85878 segundos te garantizo que esa va a ser la respuesta. Después si querés me preguntás de vuelta que te lo vuelvo a averiguar.

Root Servers

¿Y cómo hizo la computadora de mi proveedor para enterarse? Ella podría haber tenido guardado el dato, o podría habérselo contado otra computadora. Supongamos entonces que no sabía y que mientras mi computadora esperaba, la de mi proveedor tuvo que consultar. ¿A quén consulta? Ella dispone de una lista de direcciones IP conocidas como "Root Servers". Esas computadoras son las que conocen cómo encontrar los dominios que están a la derecha de todo, o "Top Level Domains", como por ejemplo .ar. Estos servidores en la actualidad son 13, 10 de ellos están en Estados Unidos, 2 en Europa y 1 en Japó
n. A su vez, hay “copias” o “instancias” de ellos en varios países de Europa y Asia. En la actualidad se está impulsando la iniciativa de crear una instancia de uno de esos servidores en Latinoamérica.

Bueno, como decía antes, la computadora de mi proveedor de internet consulta a uno de los 13 Root Servers, el que esté más cerca, en este caso M.ROOT-SERVERS.NET. Este le cuenta quién administra el dominio .ar. Luego le pregunta a esa computadora (athea.ar) quién administra .com.ar. Ella a su vez contesta, lo administro yo (pero podría ser otra). Le pregunta entonces quién administra strellis.com.ar, y ella le contesta que es nrd.sysnetworks.com.ar. Le pregunta a continuación a nrd.sysnetworks.com.ar quién atiende www.strellis.com.ar y es finalmente esa computadora la que contesta 200.123.133.98.

Time to Live

Como se ve, resolver un nombre puede ser un proceso largo, ya que podr&
iacute;a darse el caso de tener que preguntar a varias computadoras hasta dar con un nombre y una dirección IP asociada. Por eso, en el primer ejemplo, mi proveedor de internet consultó la primera vez que mi computadora preguntó por www.strellis.com.ar a todos los otros servidores. Pero la segunda vez, ya tenía guardado el dato y le contestó a mi computadora que iba a tenerlo por otros 85878 segundos. Ese tiempo se llama “TTL” o Time To Live y determina el tiempo que debe considerarse válida una respuesta a una consulta de nombres de dominio. Cada administrador de dominio elige un tiempo que considere adecuado, porque, por ejemplo, la computadora que atiende .com.ar no cambia todos los días ni tampoco la que atiende .ar. Eso sí, si realmente ocurre un cambio, ese cambio puede tardar un tiempo en “propagarse” hacia los distintos servidores de nombres de dominio. Y eso podría
llegar a ser un riesgo. Supongamos que (Dios no lo quiera) la
computadora que atiende www.strellis.com.ar se colgó o le pasó algo. Entonces ponen otra computadora con otro IP distinto. Mi computadora ya preguntó cuál era el IP para www.strellis.com.ar, 200.123.133.98. Y va a estar convencida durante otros ochenta y cinco mil y pico de segundos (casi un día entero) que esa es la computadora correcta. Por lo tanto durante casi un día mi computadora no se va a enterar de que hay otra computadora nueva que atiende www.strellis.com.ar. Va a querer hablar con la que se colgó y esa no le va a contestar. Entonces a mí me va a dar un error, como que el sitio no existe. Para evitar estos problemas los sitios más grandes suelen tener varias computadoras dedicadas a atender un determinado servicio, por ejemplo esta página web. Estas varias computadoras se reparten a los clientes y cuando una de ellas se muere no pasa nada, las otras pueden seguir
atendiendo clientes.

Resumen

En
fin, entonces, cuando yo quiero ver una página web, mi computadora realiza todo un proceso a fin de encontrar el número de IP de la computadora con la que quiero comunicarme. Mi computadora, entonces sigue los siguientes pasos:

  • Pregunta por el número de IP de la computadora con la que me quiero comunicar al servidor DNS de mi proveedor de internet.
  • Si esta lo sabe, me devuelve la respuesta. Si no sabe la respuesta o pasó el Time to live o TTL, va a preguntar a los Root Servers y a los distintos servidores DNS que atienden los dominios hasta encontrar el que necesita.
  • Mi computadora, ahora que tiene la dirección de la computadora que tiene la información que quiero ver, se comunica con ella y se la pide.

Este artículo se basa en las siguientes fuentes:

  • Charles L. Hendrick, “Introduction to The TCP/IP Protocol”, Rutgers University, con permiso del autor.

r

Be the first to comment

Leave a Reply

Your email address will not be published.


*