Qué es y para qué sirve el "simulador del caos" oculto en Linux

¿Sabías que Linux tiene un "caos oculto"? El problema de las aplicaciones que podría arruinar tu PC. Descubre por qué el desorden de paquetes afecta al rendimiento de tu equipo.
Lo sé, entender los términos de Linux es algo confuso cuando llevas tiempo siendo un usuario de Windows. De inmediato tienes que familiarizarte con conceptos como distribuciones, entornos de escritorio, paquetes y otras palabras nuevas.
Cuando llevas un rato usando las funciones de Ubuntu, Zorin OS u otras distros, finalmente piensas que ya lo tienes todo dominado, hasta que aparecen otras definiciones como los sistemas operativos inmutables y atómicos.
Pues bien, para errores silenciosos de Internet, tiempos de espera infinitos, reconexiones fallidas y mensajes genéricos como “algo salió mal en la red”, hay algo importante que deberías conocer: el "simulador del caos" oculto en Linux.
¿Por qué sucede esto y qué podrías hacer para solucionarlo? La mencionada herramienta va a cambiar para siempre la forma en la que trabajas, especialmente si te dedicas a la programación, eres gamer o estudias las conexiones de redes.
Cómo funciona el simulador del caos oculto en Linux

¿Qué es eso del simulador de caos de Linux? Sí, suena extraño hablar sobre eso, pero todo comienza con el kernel versión 2.6, donde se incorporó por primera vez una herramienta para hacer simulaciones de red para determinar las condiciones sin depender de software externo.
Se conoce como Netem, que es el componente "network emulator". Su funcionamiento se realiza a través del comando tc (traffic control) y la razón por la que no requiere de una instalación como programa adicional se debe a que es parte del paquete iproute2 (que está en casi todas las distros).
Básicamente, es una herramienta que sirve para que los programadores prueben aplicaciones. En palabras técnicas, fue creada para reemplazar las disciplinas de cola (qdiscs) con el fin de evaluar las interfaces de red para saber qué pasaría en situaciones adversas, por lo que es posible hacer cambios en los siguientes apartados:
- Latencia.
- Jitter.
- Pérdida
- Duplicación.
- Reordenamiento.
Esto se logra porque intercepta cada paquete para que la pila real del sistema se visualice en tiempo real y se determinen las capacidades bajo ciertas circunstancias. Por ejemplo, puedes agregar 200 ms de latencia, un 5 % de pérdida o simular un enlace satelital con ralentizaciones.
Con esto se comprueban los tiempos de espera alterados, desenlace de conexiones largas y otros errores que normalmente no verías. Gracias a esto, no se requieren otras herramientas de terceros, laboratorios complejos u otras cosas relevantes, ideal para la ingeniería del caos y demás pruebas.
Si bien es algo que principalmente es usado por desarrolladores que deben hacer tests en proyectos, para administradores de sistemas de internet en oficinas, estudiantes de redes y gamers también es importante. Hasta tú puedes hacerlo si quieres ver cómo se comporta la señal con un ping alto (latencia) en juegos o plataformas.
¿Para qué sirve realmente y cómo usarlo sin romper el sistema operativo?

Sirve para varias cosas, pues el netem permite saber cómo se maneja el timeout, solicitudes, sesiones y otras situaciones donde hay degradación de conexión.
Para usarlo, requieres de estas tres reglas: conocer tu IP Link, estados de comprobación pre y post uso y nunca cerrar la terminal sin antes hacer la limpieza.
Lo que debes saber es que estas implementaciones de tc se quedan incluso cuando se cierra la terminal o la sesión, por lo que se quedan ahí hasta que son desactivadas de manera directa.
Esto a veces genera confusiones o problemas futuros, siendo ideal que se ejecute el comando como "tc qdisc show dev" para saber qué está habilitado y qué no. Después hay que usar el código de limpieza como "tc-clear".
Al comienzo puede ser un poco complicado, pero se vuelve un conocimiento poderoso y seguro para no tener inconvenientes molestos con Internet en el futuro.

