Entras a Hotmail, Gmail o lo que sea desde tu laptop. Escribes tu nombre de ususario, contraseña, y presionas Enter…
¿Qué sucede después de eso?
Al presionarlo, haces un corto circuito en esa tecla que produce una caida de voltaje. Esta caída de voltaje produce que un pequeño chip en el teclado envíe una cadena de 1’s y 0’s hacia la computadora y se queden almacenados en un bufer, que son una serie de transistores que al usarlos en pareja, “atrapan” o crean una ‘trampa’ a la corriente, dejandola circulando entre ellos dos, permitiendo así grabar temporalmente el 1 o 0 que se haya enviado (se envían 7 en total).
Una vez hecho esto se produce una interrupción, la 21h, que hace que el manejador de interrupciones le indique al CPU que el usuario ha tecleado algo. Acto seguido el CPU guarda todos los datos de lo que está haciendo en ese momento, como el puntero de instruccion, los registros, el puntero a la pila, etc.y con ayuda del sistema operativo (windows, seguramente) determina a qué aplicación corresponde indicarle que se presionó Enter. Sea el Internet Explorer o Firefox, ambos generan texto en el protocolo HTTP, seguramente un “método GET”, el cual es una petición al servidor de correo electrónico.
Una vez generado el texto HTTP, el CPU comienza a repartir este texto en pequeños paquetes para enviar, llamados TCP. Estos paquetes están enumerados para que se pueda saber en qué orden reconstruir la información. Además el paquete también indica que debe llegar al puerto 443 del servidor. Teniendo estos paquetes, prepara a la tarjeta de red WiFi para enviarle estos datos, junto con la dirección en Internet de Hotmail o Gmail, etc. Esta dirección de Internet es llamada IP y la dirección de tu laptop (en la red local).
Con esos datos, la tarjeta de red comienza a generar ondas electromagnéticas en la frecuencia de 2.4 GHz, pero cifrándolos previamente para que nadie pueda interceptarlos. Estas ondas rebotan por toda tu casa hasta que llegan al ruteador de tu casa, el cual registra cuál de todas las computadoras de tu casa generó esas ondas, mediante la IP de tu laptop. El ruteador convierte esa señal de 2.4GHz en una señal eléctrica en algún lugar entre 3 y 20 MHz, que viajarán modulados en frecuencia por tu cable de teléfono. Al otro lado llegan a otro ruteador, el cual combina lo que tu enviaste junto con lo de otras personas. La información que enviaste, representada en 1’s y 0’s, prende y apaga un láser a una velocidad de 10′000′000′000 por segundo el cual está conectado a una fibra óptica. Es una señal infrarroja, alrededor de los 1200 nanómetros de longitud de onda. Esta onda viaja en un cable de fibra óptica, rebotando en el núcleo de la fibra, gracias a la diferencia en los índices de refracción del núcleo con el revestimiento. Esta luz infrarroja llega probablemente a Monterrey, donde está un centro de datos del señor Slim. En ese extremo, un dispositivo semiconductor absorbe los fotones de la luz y esto produce una corriente eléctrica, donde un ruteador mucho más veloz que el de tu casa envía los paquetes TCP a otros ruteadores que estén disponibles en ese momento. En este momento, es probable que cada paquete tome caminos diferentes, convirtiéndose en señal de microondas, en una señal eléctrica, en otra luz roja por otra fibra óptica, etc.
En la ultima traza que hice hacia Facebook, por ejemplo, un paquete llegó a infinitum, luego a los Angeles, luego a San José, y ahi está Facebook, pasando en su camino por 13 computadoras o ruteadores distintos.
Poco a poco la computadora donde está Hotmail o Gmail, va recibiendo los paquetes y cuando los tiene todos, los arma en el orden en que están numerados, y con esto tiene la petición HTTP que le enviaste. Todo esto sucedió en aproximadamente 60 milisegundos.
Después, el programa de Hotmail o Gmail, asigna una computadora a tu petición que llegó por el puerto 443 de su tarjeta de red, ya que funcionan todas en cluster como una sola entidad. La computadora que atiende a tu petición, con unos 32 Gigabytes de memoria RAM y 8 CPU’s, ejecutando Windows Server para Hotmail y quien sabe qué para Gmail, asigna uno de sus CPU’s el proceso de responderte.
Este CPU determina que necesita leer información del disco duro de la computadora, el cual, girando a 10 mil revoluciones por minuto, en un proceso parecido a un viejo tornamesas (discos de acetato) mueve un cabezal a un sector y pista determinados, en donde las moléculas ferromagnéticas están orientadas “horizontal” o “verticalmente”, induciendo o no electricidad en el cabezal, generando así 1’s y 0’s. El proceso de leer datos del disco duro es lentísimo, toma 10 milisegundos, por lo que el CPU puede hacer, en esos 10 milisegundos, otras 30 millones de instrucciones, atentiendo a otros usuarios. Una vez que recupera la información, la coloca directamente en la memoria RAM y le avisa al CPU que ya hizo su trabajo. El CPU entonces lee tu usuario, hace una operación matemática a tu contraseña y verifica que el resultado sea el mismo al que estaba almacenado en el disco duro. Nunca se almacena tu contraseña en Hotmail o Gmail, sino el resultado de la operación matemática aplicada a tu contraseña. Así, si alguien roba la base de datos de usuarios/password, no le serviría de mucho pues ahi no está la contraseña.
Si no escribiste mal tu contraseña, esto provoca que se ponga a 0 un bit en un registro del CPU, indicando que son iguales. El CPU entonces ejecuta el código para el caso en que escribiste bien tu contraseña, haciendo entonces más accesos al disco duro, los cuales, como te digo, son lentísimos. Pone en memoria los datos de tu cuenta, como los correos que va a mostrar en pantalla, tu configuración personal, además de generar la página en el idioma en que configuraste tu cuenta. El disco duro es el que retrasa toda la operación, convirtiéndola en algo de algunos segundos, los que esperas a que cargue la página.
Creada la sesión temporal, el CPU genera una página en HTML, Javascript, CSS, XML, y varios lenguajes de este tipo, genera paquetes TCP de respuesta y los envía de regreso a tu computadora, repitiendo el mismo proceso, pero a la inversa.
En 2 segundos aproximadamente.
El nivel de detalle aquí dado es muy superficial, cada párrafo puede extenderse a una cuartilla o más, pero entonces el post sería enorme.
Todo esto lo entiendo, pero lo que no entiendo es por qué nunca he visto gatos muertos en la calle.
