Un milagro para el perezoso

Maximiliano Firtman
7 min readMar 12, 2017

Las cuerdas vocales comienzan a vibrar desde la boca, las cuales generan ondas de movimiento en el aire, rebotando por toda la habitación hasta llegar a la entrada del micrófono , el cual analiza la onda contra un patrón guardado en un chip especialmente diseñado para ello consumiendo energía de la red eléctrica para decidir que el patrón es suficientemente parecido para despertar al procesador principal.

El procesador principal se despierta de su hibernación, accedieron al programa en la memoria RAM compuesta por unas celdas de información binaria. El sistema operativo comienza a ejecutar las 350 instrucciones de ensamblador, cada una de ellas moviendo información de la memoria en forma de impulsos eléctricos a través de un circuito integrado de 14 nanometros de longitud hacia los registros principales.

Las instrucciones terminan encendiendo el micrófono principal en 12 milisegundos recibiendo las ondas del aire todavía en circulación, las cuales son digitalizadas con un software ocupando 50Kb en memoria RAM, o sea casi 410.000 registros lógicos. Otras 700 instrucciones en la CPU se ejecutan para comprimir la digitalización del audio, en 4 billones de operaciones que dejan finalmente en la memoria -siempre transportando bit a bit internamente- unos 5Kb de datos.

Las instrucciones del programa siguen ejecutando miles de procesos, que en este caso radican en la apertura de una sesión de red en el sistema operativo. El sistema operativo le envía instrucciones mediante pulsos eléctricos y un protocolo estándar de comunicación a la plaqueta WiFi, la cual emite señales de radio frecuencia. Estas miles de señales se esparcen por todo el ambiente, chocan contra las paredes, se repiten hasta que son recibidas por una antena conectada por una conexión metálica con una placa, que se ubica dentro de un dispositivo que conocemos como router WiFi, alias “el que reiniciamos cuando nada funciona”.

El router recibe constamente señales gracias a otro software grabado en una memoria ROM interna y su propia CPU. Luego de digitalizar las señales recibidas por ondas, las procesa, y reconoce que fueron enviadas para él. Allí las decodifica y se las envía a otro programa dentro de la misma memoria que comienza a procesar bit a bit para entender qué debe hacer. Allí se da cuenta que se requiere acceder a la salida externa y reenviar estos paquetes recibidos por allí. Esta salida está conectada a través de un cable coaxil, por lo que las señales son convertidas a impulsos eléctricos que se suman a miles de ellos siendo transportados por ese cable, incluyendo 350 canales de televisión, 60 de ellos en HD.

El paquete de bits viaja 89 metros hasta una caja central en el mismo edificio, cuyo hardware recibe las señales, detecta que son señales de subida y las envía mediante un cable de fibra óptica, convirtiendo cada uno de los millones de bits recibidos por impulsos eléctricos en señales luminosas que viajan rebotando sobre los bordes internos de un filamento dentro de un cable con cientos de ellos. ¿Cuánto viajan? Pasan por centenas de cables conectados por enrutadores, y luego de unos 26 kilómetros de viaje (que los recorre en 127 microsegundos) llega a una central del proveedor.

Al llegar a la central del proveedor lo recibe un equipo con otro software que en medio del proceso deja de funcionar por una falla y por lo tanto todo el software del equipo que emitió el paquete debe comenzar el proceso de nuevo. Al hacerlo, llega a la central nuevamente y esta vez otro equipo toma el control y recibe la información. Allí se da cuenta, después de procesar miles de instrucciones que se requiere abrir una conexión TCP a una dirección IP (el equipo no lo sabe, pero esa dirección IP está en otro continente).

En ese momento, la central genera nuevos paquetes que envía por dos salidas, otro cable de fibra óptica hacia otra empresa, y un cable que conecta con 15 equipos que terminan enviando por radio una señal a un satélite geoestacionario. La fibra óptica que lleva una de las copias de la transmisión termina conectándose después de unos 12 equipos intermedios (cada uno de los cuales revisó qué es lo que se transmitía consumiendo energía y transportando los bits d eun lugar a otro) a un canal que viaja por debajo del océano hacia el otro continente. El satélite por su lado recibe una señal de radio, entre decenas de miles de trillones de otras señales, que interpreta y re-emite hacia otro país. En ambos viajes la información sigue transportándose y diversificándose. Un 15% del tiempo, las señales tuvieron que reenviarse porque se han perdido o se han corrompido en el viaje.

Al final, después de un tiempo de que esa señal, llega a un equipo que dice conocer a esa dirección IP y que tiene un cable coaxil conectado con un equipo que llega a esa dirección. El paquete entonces finalmente llega a una placa de red, la cual lo interpreta como efectivamente para ese equipo, lo decodifica y lo envía en impulsos eléctricos a la CPU a medida que instrucciones programadas lo van solicitando, los van interpretando y deciden después de miles de idas y vueltas entre CPU, registro, memoria RAM y placa de red, que algo, del otro lado del mundo nos quiere enviar información. Este software decide aceptar el pedido y emite una respuesta: “Ok”. Y el mensaje es otra vez reconvertido a señales y comienza el recorrido de vuelta. Todo, completo. De vuelta.

Al llegar nuevamente al equipo original, éste decide entonces comenzar a enviar esos 5Kb de datos (¿te acuerdas?) en un paquete de información que comienza a enviarse otra vez por el camino que ahora al tener memoria sabe más rápido por qué vía llegar al destino pero eso no quita que alrededor de 41.000 bits son codificados y recodificados en impulsos eléctricos, señales luminosas y ondas electromagnéticas hasta llegar a destino, sin contar que en el medio algún equipo decidió separar el mensaje en 3 paquetes más pequeños, uno de los cuales se pierde y debe ser solicitado nuevamente.

¿Sigue ahí lector? Menos mal. Seguimos.

El software de destino final decodifica los 5Kb de audio comprimido y se lo envía mediante una red interna (si, otra vez impulsos, reenvíos, paquetes, cables, y eso) a otro equipo el cual comienza a ejecutar billones de instrucciones que comparan las ondas de audio codificadas con palabras y letras almacenadas en unas celdas de memoria en ese equipo. Al cabo de de 3 milisegundos de ejecutar trillones de operaciones consumiendo energía en una granja de 2 millones de servidores de un valor de 4000 dólares cada uno, el software decide que comprendió el texto del audio y codifica en 15 bytes usando el estándar ASCII el mensaje, el cual es enviado nuevamente al servidor central que, por suerte, se encontraba en el mismo país.

El servidor central se comunica, otra vez por TCP, con un servidor de base de datos, el cual consulta un conjunto de discos rígidos con trillones de bits almacenados magnéticamente la información buscada. El servidor de base de datos encuentra lo que el audio solicitó y se lo envía al servidor central, mediante cables, bits, protocolos y todo tipo de inconvenientes.

El servidor central toma la decisión en base a la información recibida de que debe comunicarse con otro servidor, que llamaremos el servidor de destino, que se encuentra en un tercer continente (y si, hay 5 continentes así que podía pasar). Por lo tanto, se inicia una comunicación siguiendo un camino muy parecido al descripto hasta ahora hasta que se conecta y envía el mensaje en cuestión. Por razones de salud mental del lector, no lo repetiremos.

El servidor destino recibe el pedido, busca en su propio servidor de base de datos (si, con datos magnéticos, impulsos eléctricos, envíos de red, reenvíos por error, accesos a memoria RAM, CPU, nanosegundos y todo ello) y decide que debe enviar un mensaje a una dirección IP.

Y entonces, todo vuelve a comenzar. Pero esta vez, la dirección IP apunta al mismo router del dispositivo de audio que inició todo, en la casa original. Los bits viajan nuevamente por continentes, aire, agua, luz, electricidad y demás, hasta llegar al router con el que todo comenzó. Este router revisa el mensaje recibido convirtiéndolo en bytes y decide que debe enviar un mensaje por WiFi a uno de sus dispositivos registrados, por lo que termina convirtiendo el mensaje final en señales electromagnéticas que viajan por toda la casa, rebotando por las paredes tratando de llegar a destino.

Muchos dispositivos que están consumiendo energía -15 para ser exactos- recibieron esta información pero al decodificarla decidieron que no eran para ellos y fueron descartados.

Hasta que finalmente llegó a un dispositivo que sí era el destinatario. Este dispositivo lee el mensaje y envía una señal eléctrica a un circuito interno que termina desconectando el puente de dos cables de electricidad, cortando la corriente eléctrica que viene desde la red hogareña y sigue por un cable de cobra hasta el techo del ambiente.

Ondas de audio, ondas electromagnéticas, impulsos eléctricos, haces de luz, señales de radio a la termósfera, señales magnéticas, celdas de memoria, 200 megámetros recorridos, 1500 copias de la información transmitida en 213 equipos funcionando en orquesta gracias al uso de 47 protocolos establecidos por la humanidad. ¿Para qué?

Sentado muy cómodamente en el sillón, uno analiza cuán lejos está el interruptor de la luz y dice en voz alta “Alexa, apaga la luz”. 1 segundo y 321 milésimas más tarde, se apaga la luz.

--

--

Maximiliano Firtman

Programador, Profesor y Autor. Director de ITMaster Academy, enseñando programación. Escribo hace 25 años. En inglés escribo de temas técnicos en firt.dev