Un Connection ID (CID) es un identificador único y opaco asignado a una conexión de red, utilizado por los endpoints para referirse a dicha conexión. A diferencia de los identificadores tradicionales basados en la tupla de direcciones IP y puertos (IP de origen, puerto de origen, IP de destino, puerto de destino), un CID desacopla la identidad de la conexión de la información de la capa de red y transporte subyacente. Esto significa que la dirección IP o el puerto de un endpoint pueden cambiar sin que la conexión se rompa, siempre y cuando el CID se mantenga y sea reconocido por ambos extremos. Los CIDs pueden ser generados por cualquiera de los endpoints y son intercambiados durante el establecimiento de la conexión, permitiendo que cada parte mantenga un conjunto de CIDs válidos para la conexión.
La implementación más prominente de Connection IDs se encuentra en el protocolo QUIC (Quick UDP Internet Connections). En QUIC, cada endpoint puede generar y anunciar múltiples CIDs para una sola conexión. Esto es fundamental para características como la migración de conexión (connection migration), donde un cliente puede cambiar de red (por ejemplo, de Wi-Fi a datos móviles) y mantener su conexión QUIC activa. Otros sistemas, aunque no lo llamen explícitamente 'Connection ID', utilizan conceptos similares para la persistencia de sesión o la identificación de flujos en entornos con NAT (Network Address Translation) o balanceadores de carga avanzados, donde la tupla IP/puerto puede variar. Por ejemplo, algunos balanceadores de carga de capa 4 o 7 pueden inyectar o utilizar identificadores de sesión para mantener la afinidad de un cliente a un servidor específico a pesar de cambios en la red subyacente.
Para un arquitecto, el uso de Connection IDs es crucial para diseñar sistemas resilientes y de alto rendimiento en entornos dinámicos. Permite la creación de aplicaciones que pueden soportar cambios de red sin interrupción, mejorando significativamente la experiencia del usuario en dispositivos móviles o en escenarios de 'roaming'. Estratégicamente, facilita la implementación de arquitecturas de microservicios y 'edge computing' donde los clientes pueden cambiar de punto de acceso o de servidor sin perder el estado de su conexión. Los trade-offs incluyen una ligera sobrecarga en el establecimiento de la conexión y en la gestión de los CIDs, así como la necesidad de que los dispositivos de red intermedios (como firewalls o balanceadores de carga) sean 'CID-aware' o, al menos, no interfieran con el tráfico QUIC. La elección de la longitud y la opacidad del CID también impacta la seguridad y la eficiencia, ya que un CID más largo ofrece mayor entropía pero consume más ancho de banda.