Microsoft ha abierto su implementación del protocolo QUIC utilizado en HTTP/3

Microsoft anunció el sobre abrir el código de la biblioteca MsQuic con la implementación del protocolo de red QUIC. El código está escrito en C y distribuido por bajo licencia MIT. La biblioteca es multiplataforma y se puede usar no solo en Windows, sino también en Linux usando Schannel u OpenSSL para TLS 1.3. En el futuro, está previsto admitir otras plataformas.

La biblioteca se basa en el código del controlador msquic.sys proporcionado en el kernel de Windows 10 (Insider Preview) para habilitar HTTP y PYME encima de QUIC. El código también se utiliza para implementar HTTP/3 en la pila interna de Windows y en .NET Core. El desarrollo de la biblioteca MsQuic se llevará a cabo íntegramente en GitHub mediante revisión pública por pares, solicitudes de extracción y problemas de GitHub. Se ha preparado una infraestructura que verifica cada confirmación y solicitud de extracción en un conjunto de más de 4000 pruebas. Después de estabilizar el entorno de desarrollo, se prevé aceptar cambios de desarrolladores externos.

MsQuic ya se puede utilizar para crear servidores y clientes, pero no todas las funciones definidas en la especificación IETF están disponibles actualmente. Por ejemplo, no hay soporte para 0-RTT, migración de clientes, descubrimiento de MTU de ruta o control de dirección preferida del servidor. Entre las características implementadas, se destaca la optimización para lograr el máximo rendimiento y retrasos mínimos, soporte para entrada/salida asíncrona, RSS (Receive Side Scaling) y la capacidad de combinar flujos UDP de entrada y salida. Se ha probado la compatibilidad de la implementación MsQuic con versiones experimentales de los navegadores Chrome y Edge.

Recuerde que HTTP/3 estandariza el uso del protocolo QUIC como transporte para HTTP/2. Protocolo QUIC (Quick UDP Internet Connections) ha sido desarrollado por Google desde 2013 como una alternativa a la combinación TCP+TLS para la Web, solucionando problemas con largos tiempos de configuración y negociación de conexiones en TCP y eliminando retrasos cuando se pierden paquetes durante la transferencia de datos. QUIC es una extensión del protocolo UDP que admite la multiplexación de múltiples conexiones y proporciona métodos de cifrado equivalentes a TLS/SSL.

El principal Características RÁPIDO:

  • Alta seguridad similar a TLS (esencialmente QUIC brinda la capacidad de usar TLS 1.3 sobre UDP);
  • Control de integridad de transmisión para evitar la pérdida de paquetes;
  • La capacidad de establecer una conexión instantáneamente (0-RTT, en aproximadamente el 75 % de los casos, los datos se pueden transmitir inmediatamente después de enviar un paquete de configuración de conexión) y garantizar demoras mínimas entre el envío de una solicitud y la recepción de una respuesta (RTT, tiempo de ida y vuelta) ;
    Microsoft ha abierto su implementación del protocolo QUIC utilizado en HTTP/3

  • No utilice el mismo número de secuencia al retransmitir un paquete, lo que le permite evitar la ambigüedad al determinar los paquetes recibidos y deshacerse de los tiempos de espera;
  • La pérdida de paquetes solo afecta la entrega del flujo asociado con él y no detiene la entrega de datos en flujos transmitidos en paralelo a través de la conexión actual;
  • Herramientas de corrección de errores que minimizan los retrasos debidos a la retransmisión de paquetes perdidos. Uso de códigos especiales de corrección de errores a nivel de paquete para reducir las situaciones que requieren la retransmisión de datos de paquetes perdidos.
  • Los límites de los bloques criptográficos están alineados con los límites de los paquetes QUIC, lo que reduce el impacto de las pérdidas de paquetes en la decodificación del contenido de los paquetes posteriores;
  • No hay problemas con el bloqueo de la cola TCP;
  • Soporte de ID de conexión para reducir el tiempo de reconexión para clientes móviles;
  • Posibilidad de conectar mecanismos avanzados para control de sobrecarga de conexión;
  • Usar técnicas de predicción de ancho de banda en cada dirección para garantizar la intensidad óptima de envío de paquetes, evitando caer en un estado de congestión, en el que hay una pérdida de paquetes;
  • Perceptible incremento rendimiento y rendimiento en comparación con TCP. Para servicios de video como YouTube, se ha demostrado que QUIC reduce las operaciones de almacenamiento en búfer de video en un 30 %.

Fuente: opennet.ru

Añadir un comentario