Fundamentos de Unix e Internet. - Parte III


https://tutorialesenlinea.es/uploads/posts/2018-02/1517746844_linux-tutoriales.jpg
Eric Raymond
Traducción: Camilo Figueroa 

Revision History

Revision 2.9

Minor updates.

Revision 1.0

Initial revision.


Este documento describe en un lenguaje no técnico los fundamentos de trabajo de computadores tipo PC, sistemas operativos tipo Unix, y la Internet.

Tabla de contenido

 

Fundamentos de Unix e Internet. - Parte I


Fundamentos de Unix e Internet. - Parte II


12. ¿Que hace que internet trabaje?

12.1. Nombres y Ubicaciones

12.2. EL Sistema de Nombres de Dominio

12.3. Paquetes y enrutadores

12.4. TCP e IP

12.5. HTTP, un protocolo de aplicación

13. Para aprender más

 

12. Que hace que Internet trabaje?

Para ayudar a entender como Internet trabaja vamos a mirar las cosas que suceden cuando usted hace una tarea normal en Internet – Llegar con el navegador hasta la página de inicio de este documento en el sitio web del Proyecto de documentación de Linux (Linux Documentation Project - LDP). Este documento es:

www.tldp.org/HOWTO/...

Lo que significa que el se encuentra en el archivo HOWTO/Unix-and-Internet-Fundamentals-HOWTO/index.html accesible en la telaraña mundial (World Wide Web – WWW) en el host www.tldp.org

12.1. Nombres y Ubicaciones

La primer cosa que su navegador tiene que hacer es establecer una conexión con la maquina donde el documento se encuentra (el host. n. del t.), Para hacer esto el primero debe buscar en la red la ubicación de el host www.tldp.org ('host' se usa para abreviar 'maquina anfitriona'/'host machine' o 'red anfitriona'/'network host': www.tlpd.orges un común nombre de host). Su ubicación corresponde realmente a un número llamado 'dirección IP'/'IP adress' (explicaremos que significa IP más adelante).

Para hacer esto el navegador interroga a un programa llamado 'Servidor de nombres'/'name server'. El servidor de nombres puede encontrarse en su maquina, pero es mas probable que funcione en una maquina de servicios a la cual el navegador establece la conexión. Cuando usted ingresa con un ISP (Proveedor de servicios de internet / Internet Service Provider . ISP. n del t.), parte del procedimiento de configuración la mayoría de las veces involucrará indicarle al navegador la dirección IP del servidor de nombres en la red.

Los servidores de nombres ubicados en diferentes maquinas hablan entre si, intercambiando información y manteniendo actualizada toda la información que necesitan para resolver los nombres de host (relacionarlos con las direcciones IP). El servidor de nombres que usted usa, en el proceso de resolver la ubicación de www.tldp.org puede consultar a tres o cuatro diferentes sitios a través de la red, pero esto usualmente sucede muy rápido (en menos de un segundo). Veremos en detalle a los servidores de nombres en la próxima sección.

El servidor de nombres le dirá a su navegador que la dirección IP del host www.tldp.orges 152.19.254.81: conociendo esto el navegador nuestra maquina será capaz de intercambiar bits directamente con www.tldp.org.

12.2. El Sistema de Nombres de Dominio

La totalidad de los programas y bases de datos de red que cooperan en resolver los nombres de host a direcciones IP son llamados 'DNS' (Sistema de Nombres de Dominio). Cuando usted ve referencias a un 'servidor DNS'/'DNS Server' esto significa que estamos hablando de un servidor de dominios. Ahora vamos a ver como funciona todo esto.

En internet los nombres de host están compuestos de partes separadas por puntos. Un 'dominio'/'domain' es una colección de maquinas que comparten un sufijo como nombre en común. Los Dominios pueden estar dentro de otros dominios. Por ejemplo, la maquina www.tldp.orgse encuentra en la maquina .tldp.org subdomino del dominio .org.

Cada dominio esta definido por un servidor de nombres autorizado que conoce la dirección IP de las otras maquinas en el dominio. El servidor autorizado (o primario) de nombres puede tener backups en caso de alguna falla: si usted ve referencias a un 'servidor de nombres secundario'/'sencondary name server' (o 'secundario DNS'/'secondary DNS') es que se esta hablando de uno de esos bakups. Estos servidores secundarios a menudo refrescan su información desde sus servidores primarios cada pocas horas, así, un cambio hecho en el servidor primario a la relación nombre de host-IP será automáticamente propagado.

Ahora, aquí esta la parte importante. Los servidores de nombres de un dominio no tienen que saber la ubicación de todas las maquinas en otros dominios (incluyendo sus propios subdominios): él solo tiene que saber la ubicación de los servidores de nombres. En nuestro ejemplo, el servidor de nombres autorizado para administrar el dominio .org sabe la dirección IP de el servidor de nombres para .tlpd.org pero no la dirección de todas las demás maquinas en el dominio .tlpd.org.

Los dominios en el sistema DNS están organizados como un gran árbol invertido. En la cima se encuentran los 'servidores raíz'/'root servers' (administran los dominios .org .com. net, etc. n del t): ellos están conectados a su software DNS. El servidor raíz sabe las direcciones IP de los servidores de dominio para los 'dominios de nivel superior'/'top-levels domains' (tlpd.org, example.org, etc. n. del t.). Cada servidor de dominios de nivel superior conoce donde se encuentran los servidores de dominios directamente bajo ellos, y así sucesivamente.

DNS esta cuidadosamente diseñada para que cada maquina pueda funcionar con independencia con la mínima cantidad de conocimientos que necesite sobre la forma del árbol y para que los cambios locales a los arboles inferiores puedan ser hechos de manera simple al cambiar en la base de datos de un servidor de nombres autorizado las relaciones 'nombre de host'-'dirección IP'.

Cuando su navegador hace la consulta sobre la dirección IP de www.tlpd.orglo que sucede realmente es: primero su servidor de nombres (quizás el servidor del ISP de su cuenta de acceso a Internet. n. del t. )pregunta al servidor raíz para saber donde puede ubicar los servidores de nombres para los dominios .org. Una vez conoce esto, él entonces pregunta al servidor de nombres del dominio .org para saber donde la dirección IP de el servidor de nombres de .tldp.org. Una vez se ha hecho esto él pregunta al servidor de nombres .tldp.org para saber la dirección del host www.tldp.org.

La mayoría de las veces, su servidor de nombres no tiene que trabajar tan duro. Los servidores de nombres realizan mucho cache: cuando su servidor resuelve un nombre de host, el mantiene en memoria por un momento la asociación con la dirección IP resultante. Esto sucede por que, cuando usted navega un nuevo sitio web usualmente usted ve un mensaje de su navegador que indica 'buscando'/'looking up' el host para la primera página que usted encontró. Eventualmente el proceso de mapeo nombre-a-dirección expira y su DNS tiene que solicitar nuevamente este proceso – esto es importante para que no se conserve la antigua (e invalida) información cuando un nombre de host cambie de dirección. La dirección IP cacheada de un sitio web no será desplegada si el host es inalcanzable.

12.3. Paquetes y enrutadores

Lo que el navegador desea hacer es enviar un comando al servidor web en www.tldp.orgse parece a esto.

GET /LDP/HOWTO/Fundamentals.html HTTP/1.0

Esto es lo que sucede. El comando es preparado dentro de un 'paquete'/'packet', un bloque de bits como un telegrama que es empaquetado con tres importantes cosas: La dirección origen (la dirección de su maquina), la dirección destino (152.19.254.81), y un número de servicio o número de puerto (80 en este caso) que indica que es una solicitud hecha para la telaraña mundial World Wide Web.

Su maquina entonces envía el paquete por medio del cable (la conexión de su ISP o red local) hasta que llega a una maquina especializada llamada 'enrutador'/'router'. El enrutador tiene un mapa de Internet en su memoria – no siempre completo, pero describe por completo el vecindario de su red y sabe como conseguir los enrutadores de otros vecindarios en la Internet.

Su paquete puede pasar a través de varios enrutadores en la dirección de su destino. Los enrutadores son inteligentes. Ellos observan cuanto tardan otros enrutadores en avisar que han recibido un paquete. Ellos también usan esa información para dirigir el tráfico sobre conexiones rápidas. Los enrutadores usan estas conexiones para advertir cuando otro enrutador(o un cable) ha caído en la red y compensar dicha caída encontrando otro enrutador.

Hay una leyenda urbana que dice que la Internet fue diseñada para sobrevivir a una guerra nuclear. Esto no es cierto, pero el diseño de la Internet es extremadamente bueno en conseguir un desempeño confiable sobre hardware problemáticos y condiciones inciertas. Esto es principalmente debido al hecho de que su inteligencia esta distribuida a través de miles de enrutadores en lugar de estar concentrada en unos pocos gigantes interruptores (como en la red telefónica). Esto significa que las fallas tienden a ser bien localizadas y la red puede pasar al rededor de estas fallas.

Una vez que su paquete logra llegar a la maquina destino, esta maquina usa el numero de servicio para introducir el paquete al servidor web. El servidor web puede saber a donde responder al revisar en el paquete la orden con la dirección IP origen. Cuando el servidor web devuelve este documento (el que estas leyendo. n del t.), este documento sera dividido en paquetes que han sido numerados. El tamaño de los paquetes variará según el medio de transmisión en la red y el tipo de servicio.

12.4. TCP e IP

Para entender como sucede la transmisión de múltiples paquetes, usted necesita saber que la Internet actualmente usa dos protocolos (maneras de negociar e intercambiar la información n.del t.), organizados uno sobre otro.

En el nivel inferior, el IP ('Protocolo de Internet' /'Internet Protocol'), es el responsable de etiquetar individualmente los paquetes con las direcciones fuente y destino de dos computadores que intercambian información sobre una red. Por ejemplo, cuando usted accede a http://www.tldp.orgel paquete que usted envió tiene la dirección IP de su computador, como 192.168.0.101 y la dirección 152.19.254.81 del computador de www.tldp.org. Estas direcciones trabajan de la misma manera como la dirección de su casa trabaja cuando alguien envía a usted una carta. La oficina postal puede leer la dirección y determinar donde usted se encuentra y la mejor ruta para hacerle llegar su carta, como lo hace un enrutador con el trafico de Internet.

En el nivel superior, TCP (Protocolo de Control de Transmisión'/'Transmission Control Protocol') da la confiabilidad. Cuando dos maquinas negocian una conexión TCP (la cual hacen usando el protocolo IP), el receptor sabe que debe enviar acuses de recibo de el paquete que recibirá del remitente. Si el remitente no ve un acuse de recibo del paquete en un tiempo de espera determinado, él reenvía el paquete. Adicionalmente, el remitente da a cada paquete TCP una secuencia de números, la cual el receptor puede usar para rearmar los paquetes en caso de que ellos lleguen en desorden (esto fácilmente puede suceder si la velocidad de red varía durante la conexión).

Los paquetes IP también contienen un checksum (procedimiento de comprobación o suma de comprobación. n. del t.) para facilitar la detección de datos corruptos debido a problemas en la red (El checksum es calculado de el resto del paquete para saber si el resto del paquete o el checksum están corruptos; rehaciendo el calculo y comparando el checksum recibido es muy probable reconocer un error). Así, desde el punto de vista de cualquiera que usa TPC/IP y los servidores de nombre, esta parece una confiable manera de enviar flujos de bytes usando parejas de nombre-de-host/numero-de-servicio. Las personas que escriben protocolos de red casi nunca tienen que pensar sobre la definición del tamaño del paquete, como se rearma el paquete, la revisión de errores, el procedimiento checksum y la retransmisión que sucede bajo su nivel.

12.5. HTTP, un protocolo de aplicación

Ahora vamos a regresar a nuestro ejemplo. Los navegadores y servidores web hablan un 'protocolo de aplicación'/'application protocol' que funciona encima de TCP/IP, usándolo simplemente como una forma de enviar y recibir flujos de bytes. Este protocolo se llama HTTP ('Protocolo de Transferencia de Hipertexto'/'Hypertext Transfer Protocol') y ya hemos visto un comando de él – el GET mostrado anteriormente.

Cuando el comando GET interactua con es servidor web de www.tldp.org con el servicio número 80, él será despachado a un 'servidor demonio'/'server daemon' que escucha en el puerto 80. La mayoría de los servicios de Internet son implementados por servidores demonio que no hacen más que escuchar en puertos, esperando por la llegada de un comando de ejecución.

Si el diseño de la Internet tiene una regla por sobre todas, esta es que todas las partes deben ser tan simples y accesibles a seres humanos como sea posible. HTTP y sus parientes (como el Simple Mail Transfer Protocol SMTP, que es usado para mover electrónica mente mails entre host) tienden a usar simples comandos de texto de impresión que terminan con un a entrada de retorno de linea.

Esto es ligeramente ineficiente: en algunas circunstancias usted puede lograr más velocidad al usar un protocolo de código estrictamente binario. Pero la experiencia ha mostrado que los beneficios de tener comandos fáciles de describir y entender por seres humanos sobrepasa cualquier beneficio en eficiencia que usted puede lograr con el costo de hacer las cosas difíciles y opacas.

De esta manera lo que el servidor demonio envía de regreso a usted vía TCP/IP también es texto. El comienzo de la respuesta se parecerá a algo como esto:

HTTP/1.1 200 OK

Date: Sat, 10 Oct 1998 18:43:35 GMT

Server: Apache/1.2.6 Red Hat

Last-Modified: Thu, 27 Aug 1998 17:55:15 GMT

Content-Length: 2982

Content-Type: text/html

Estas cabeceras será seguida por una línea en blanco y el texto de la página web (después de lo cual la conexión es terminada). Su navegador solo desplegará la pagina. Las cabeceras le indicarán al navegador como (en particular, la cabecera Content-Type indica que el dato regresado es realmente html.


inicio

13. Para aprender más

Esta es una lista de lecturas de HOWTO que contiene libros que usted puede leer para aprender más sobre los tópicos que hemos tocado aquí. Quizás también quiera leer el documentoComo convertirse en un Hacker.