# Conmutación de paquetes

La conmutación de paquetes es un método utilizado en las redes de datos, donde la información se divide en unidades más pequeñas llamadas paquetes. Cada paquete contiene un encabezado con la información necesaria para enrutarlo desde el origen hasta el destino (información de control). Los datos en el encabezado son utilizados por el hardware de red para dirigir el paquete a su destino donde la carga útil es extraída y utilizada por el software de la aplicación. Esta forma de conmutación surgió como respuesta a las deficiencias de la conmutación de mensajes en las redes.
En la conmutación de paquetes, los paquetes se transmiten de manera independiente a través de la red y pueden seguir diferentes rutas hacia su destino. Los dispositivos de red intermedios, como los conmutadores, almacenan y reenvían los paquetes según su información de control. Esta forma de conmutación es utilizada en redes corporativas e Internet, ya que es más fácil para los dispositivos de red manejar paquetes de pequeño tamaño y no requiere tantos recursos en la ruta o en la memoria interna.
La principal ventaja de la conmutación de paquetes es la multiplexación estadística, que permite compartir eficientemente los enlaces de comunicación entre paquetes de diferentes orígenes. Esto mejora la eficiencia de la línea y permite que múltiples flujos de datos sean transmitidos simultáneamente. Sin embargo, en caso de congestión de la red, los paquetes pueden experimentar retrasos o incluso ser descartados.
Además, la conmutación de paquetes permite la diferenciación de flujos de datos basados en prioridades. Los paquetes se almacenan y reenvían según su prioridad para garantizar la calidad de servicio. La conmutación de paquetes se ha convertido en la base principal de las comunicaciones de datos en redes informáticas a nivel mundial.
El concepto de conmutación de paquetes fue desarrollado por Paul Baran y Donald Davies en la década de 1960. Baran propuso el concepto de Distributed Adaptive Message Block Switching como un método de enrutamiento eficiente y tolerante a errores para las comunicaciones de telecomunicaciones. Davies, por su parte, acuñó el término "conmutación de paquetes" y contribuyó al desarrollo de redes de conmutación de paquetes, incluyendo la incorporación del concepto en los primeros ARPANET en Estados Unidos.

## Historia

A fines de la década de 1950, la Fuerza Aérea de los EE. UU. Estableció una amplia red aérea para el sistema de defensa radar semiautomático terrestre (SAGE). Buscaron un sistema que pudiera sobrevivir a un ataque nuclear para permitir una respuesta, disminuyendo así el atractivo de la primera ventaja de ataque de los enemigos.
Leonard Kleinrock realizó una investigación temprana en la teoría de colas y publicó un libro en el campo relacionado de la conmutación de mensajes digitales (sin paquetes) en 1961.
El concepto de cambiar pequeños bloques de datos fue explorado por primera vez de forma independiente por Paul Baran en la Corporación RAND desde finales de los años 1950 en Estados Unidos y posteriormente por Donald Davies en el National Physical Laboratory (NPL) en el Reino Unido.
Baran desarrolló el concepto de conmutación distribuida de bloques de mensajes adaptativos durante su investigación en la Corporación RAND para la Fuerza Aérea de los EE. UU. en redes de comunicaciones que podrían sobrevivir a las guerras nucleares. Presentado por primera vez a la Fuerza Aérea en el verano de 1961 como informe B-265, publicado posteriormente como informe RAND P-2626 en 1962, y finalmente en el informe RM 3420 en 1964, el informe P-2626 describió una arquitectura general para una red de comunicaciones distribuible y de supervivencia a gran escala. El trabajo se centra en tres ideas clave: el uso de una red descentralizada con múltiples rutas entre dos puntos cualquiera, dividir los mensajes del usuario en bloques de mensajes y la entrega de estos mensajes mediante el cambio de almacenamiento y reenvío.
Donald Davies en el National Physical Laboratory (Reino Unido) desarrolló un concepto similar de enrutamiento de mensajes en 1965. Lo llamó conmutación de paquetes, un nombre más accesible que la terminología de Baran, y propuso construir una red nacional en el Reino Unido. Dio una charla sobre la propuesta en 1966, después de la cual una persona del Ministerio de Defensa (MoD) le contó sobre el trabajo de Baran. Un miembro del equipo de Davies (Roger Scantlebury) se reunió con Lawrence Roberts en el Simposio ACM de 1967 sobre Principios del Sistema Operativo y lo sugirió para su uso en ARPANET. Davies había elegido algunos de los mismos parámetros para su diseño de red original como lo hizo Baran, como un tamaño de paquete de 1024 bits. En 1966, Davies propuso que se construyera una red en el laboratorio para atender las necesidades de la NPL y probar la viabilidad de la conmutación de paquetes. Después de un experimento piloto en 1967, la NPL Data Communications Network entró en servicio en 1969.
Sobre la base de su trabajo anterior sobre la teoría de colas, Leonard Kleinrock posteriormente llevó a cabo un trabajo teórico para modelar el rendimiento de las redes de conmutación de paquetes, lo que sirvió de base para el desarrollo de ARPANET. El equipo NPL también llevó a cabo trabajos de simulación en redes de paquetes.
En 1974, Vint Cerf y Bob Kahn publicaron las especificaciones para Transmission Control Protocol (TCP), un protocolo de internetworking para compartir recursos usando paquetes de conmutación entre los nodos (este protocolo monolítico se superpuso luego como TCP sobre el Protocolo de Internet, o IP).
En este contexto histórico de la evolución de la conmutación de paquetes, es importante mencionar el desarrollo de X.25. Este estándar de red, introducido en la década de 1970, proporcionó una infraestructura de conmutación de paquetes a nivel global. X.25 fue ampliamente utilizado en redes públicas de datos y se basaba en el enfoque de conmutación de paquetes, permitiendo la transmisión eficiente y confiable de datos a través de conexiones virtuales.
La red francesa CYCLADES, diseñada por Louis Pouzin a principios de los años 70, fue la primera en responsabilizar a los hosts por la entrega confiable de datos, en lugar de ser un servicio centralizado de la red en sí.

## Técnicas

La conmutación de paquetes se puede clasificar en conmutación de paquetes sin conexión, también conocida como conmutación de datagramas, y conmutación de paquetes orientada a la conexión, también conocida como conmutación de circuitos virtuales.

### Modo conmutación de paquetes sin conexión o datagramas

En modo sin conexión, cada paquete incluye información de direccionamiento completa. Los paquetes se enrutan individualmente, a veces dando como resultado rutas diferentes y entrega fuera de orden. Cada paquete está etiquetado con una dirección de destino, dirección de origen y números de puerto. También puede etiquetarse con el número de secuencia del paquete. Esto excluye la necesidad de una ruta dedicada para ayudar al paquete a llegar a su destino, pero significa que se necesita mucha más información en el encabezado del paquete, que, por lo tanto, es más grande, y esta información debe buscarse en un contenido de gran consumo de energía.
* El protocolo utilizado para transporte es UDP.
* UDP no tiene ninguna garantía.
* No todos los paquetes siguen una misma ruta.
* Un paquete se puede destruir en el camino, cuya recuperación es responsabilidad de la estación de origen (esto da a entender que el resto de paquetes están intactos).

### Modo conmutación de paquetes orientada a la conexión o conmutación de circuitos virtuales

La transmisión orientada a la conexión requiere una fase de configuración en cada nodo involucrado antes de que se transfiera cualquier paquete para establecer los parámetros de comunicación. Los paquetes incluyen un identificador de conexión en lugar de información de dirección y se negocian entre puntos finales para que se entreguen en orden y con verificación de errores. La información de dirección solo se transfiere a cada nodo durante la fase de configuración de la conexión, cuando se descubre la ruta al destino y se agrega una entrada a la tabla de conmutación en cada nodo de red por el que pasa la conexión. Los protocolos de señalización utilizados permiten a la aplicación especificar sus requisitos y descubrir los parámetros del enlace. Se pueden negociar valores aceptables para los parámetros del servicio. Enrutar un paquete requiere que el nodo busque el ID de conexión en una tabla. El encabezado del paquete puede ser pequeño, ya que solo necesita contener este código y cualquier información, como la longitud, la marca de tiempo o el número de secuencia, que es diferente para los diferentes paquetes.
* El protocolo utilizado para transporte es TCP.
* TCP garantiza que todos los datos lleguen correctamente y en orden.

## Conmutación de paquetes en redes

La conmutación de paquetes se usa para optimizar el uso de la capacidad de canal disponible en redes de telecomunicaciones digitales, como redes de computadoras, y minimizar la latencia de transmisión (el tiempo que tardan los datos en atravesar la red) y aumentar la solidez de la comunicación.
El uso más conocido de conmutación de paquetes es Internet y la mayoría de las redes de área local. Internet es implementado por Internet Protocol Suite utilizando una variedad de tecnologías Link Layer. Por ejemplo, Ethernet y Frame Relay son comunes. Las tecnologías de telefonía móvil más nuevas (por ejemplo, GPRS, i-mode) también usan conmutación de paquetes.

## Ejemplos

Internet: Cada vez que navegas en la web, las solicitudes y respuestas entre tu dispositivo y el servidor se dividen en paquetes. Estos paquetes pueden tomar diferentes rutas para llegar a su destino y luego se ensamblan de nuevo para mostrar la página web.
Correo electrónico: Cuando envías un correo electrónico, el mensaje se divide en paquetes, que viajan a través de diversas rutas hasta llegar al servidor de correo del destinatario. Una vez que los paquetes llegan, se ensamblan para recuperar el mensaje completo.
Videollamadas (como Zoom o Skype): Durante una videollamada, tanto el audio como el video se transmiten en paquetes que pueden tomar rutas diferentes en la red. Estos paquetes son recombinados en el dispositivo receptor para reproducir la llamada en tiempo real.
Streaming de video (como YouTube o Netflix): Los videos en línea se transmiten en pequeños paquetes que se entregan a tu dispositivo en intervalos. Aunque los paquetes pueden llegar de forma no secuencial o tomar diferentes rutas, el dispositivo receptores los reorganiza para crear una experiencia continua de visualización.
Redes móviles (4G, 5G): En las redes móviles, la transmisión de datos también se basa en la conmutación de paquetes, donde los datos (como mensajes de texto, navegación web o archivos) se dividen en paquetes pequeños y se envían a través de la red de manera eficiente.