Linux Adictos David Naranjo  

Microsoft libero el código fuente de MsQuic, un protocolo de red usado para HTTP3

Logo de Microsoft

Los desarrolladores de Microsoft anunciaron la liberación del código fuente de la biblioteca MsQuic con la implementación del protocolo de red QUIC. La biblioteca es multiplataforma y puede usarse no solo en Windows, sino también en Linux usando Schannel u OpenSSL para TLS 1.3, ademas de que se continúa trabajando para expandir en el futuro el soporte para otras plataformas.

La biblioteca se basa en el código del controlador msquic.sys proporcionado en el kernel de Windows 10 (Vista previa interna) para garantizar el funcionamiento de los protocolos HTTP y SMB sobre QUIC. La inclusión del código se usa para implementar HTTP / 3 en la pila interna de Windows y en .NET Core.

El desarrollo de la biblioteca MsQuic se realizará íntegramente en GitHub utilizando revisión pública, solicitudes de extracción y problemas de GitHub. Se ha preparado una infraestructura que verifica cada solicitud de confirmación y extracción en un conjunto de más de 4000 pruebas. Después de estabilizar el entorno de desarrollo, se planea aceptar cambios de desarrolladores externos.

Sobre MsQuic

MsQuic se puede usar para crear servidores y clientes, pero actualmente no está disponible toda la funcionalidad definida en la especificación IETF. Por ejemplo, no hay soporte para 0-RTT, migración de clientes, Path MTU Discovery o control de dirección preferida del servidor.

Entre las características implementadas, se destaca la optimización para lograr un rendimiento máximo y demoras mínimas, soporte para I/O asíncrona, RSS (Recibir escalamiento lateral), la capacidad de combinar flujos de entrada y salida UDP. La implementación de MsQuic ha sido probada para compatibilidad con las ramas experimentales de navegador Chrome y Edge.

También se destaca la capacidad de establecer una conexión al instante (0-RTT, en aproximadamente el 75% de los casos, los datos se pueden transmitir inmediatamente después de enviar el paquete de configuración de la conexión) y garantizar retrasos mínimos entre el envío de una solicitud y la recepción de una respuesta (RTT, Tiempo de ida y vuelta).

Ademas, cuenta con herramientas de corrección de errores que minimizan los retrasos debidos a la retransmisión de paquetes perdidos.

El uso de códigos especiales de corrección de errores a nivel de paquete para reducir situaciones que requieren la retransmisión de datos de paquetes perdidos usando la técnica para predecir el ancho de banda en cada dirección para asegurar una intensidad óptima de envío de paquetes, evitando que llegue a un estado de congestión en el que se observa la pérdida de paquetes.

De las demás características clave de QUIC:

  • Alta seguridad, similar a TLS (de hecho, QUIC proporciona la capacidad de usar TLS 1.3 sobre UDP).
  • Control de integridad de flujo que evita la pérdida de paquetes.
  • No usar el mismo número de secuencia al retransmitir un paquete, lo que evita la ambigüedad en la determinación de los paquetes recibidos y elimina los tiempos de espera.
  • La pérdida de un paquete afecta la entrega de solo el flujo asociado con él y no detiene la entrega de datos en flujos paralelos transmitidos a través de la conexión actual.
  • Los límites de los bloques criptográficos están alineados con los límites de los paquetes QUIC, lo que reduce el efecto de la pérdida de paquetes en la decodificación del contenido de los siguientes paquetes.
  • No hay problemas con el bloqueo de la cola TCP.
  • Soporte para identificador de conexión, que reduce el tiempo para establecer una reconexión para clientes móviles.
  • Cuenta con la capacidad de conectar mecanismos avanzados para controlar la congestión de la conexión.
  • Cuenta con un rendimiento notable y ganancias de rendimiento sobre TCP. Para servicios de video como YouTube, QUIC ha demostrado una reducción del 30% en las operaciones de re-almacenamiento en el búfer al mirar videos.

Finalmente para quienes estén interesados en conocer más al respecto sobre MsQuic o quieren echar un ojo al código fuente de este, deben saber que el código está escrito en C, es multiplataforma, de propósito general, está distribuido bajo la licencia MIT y el código liberado está alojado en GitHub.

Fuente: https://techcommunity.microsoft.com

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.