Protocolo de Control de Congestión de Datagramas
Datagram Congestion Control Protocol (DCCP) o Protocolo de Control de Congestión de Datagramas es un protocolo de nivel de transporte orientado al mensaje.
Entre las aplicaciones que querrían implementar el DCCP se incluyen aquellas que tienen necesidad de entrega rápida de datos, y que combinada con la implementación de algún método de control de congestión, resulta generalmente en el arribo extemporáneo de la información, convirtiéndose en inútil. Esta categoría de aplicaciones incluye la telefonía en Internet y multimedia en tiempo real, entre otras. El control de congestión es la forma en que el protocolo de red descubre la capacidad disponible de la red para una ruta en particular. La motivación original para el desarrollo del DCCP es proveer a este tipo de aplicaciones una vía para acceder a los mecanismos estándar de control de congestión sin tener que implementarlos en el nivel de aplicación.
DCCP está pensado para aplicaciones que requieren la semántica basada en flujo de TCP pero no necesitan la entrega en orden ni la confiabilidad que ofrece TCP, o que quieren un control de congestión dinámico distinto del de TCP. De igual modo, DCCP está formulado para aplicaciones que no requieren de las características especiales de SCTP, como por ejemplo la entrega secuencial de flujo múltiple.
Hasta la fecha de aparición de este estándar, la mayoría de las aplicaciones han estado usando TCP, con los problemas arriba mencionados, o en su defecto han estado usando UDP implementando sus propios mecanismos de control de congestión, o no implementando ninguno. El propósito de DCCP es proveer a las aplicaciones que utilizan una red, de una metodología uniforme para la negociación del control de congestión, y la implementación de tal mecanismo. Otra de las motivaciones de DCCP es permitirle a las aplicaciones el uso de ECN (Explicit Congestion Notification o Notificación Explícita de Congestión), junto con el método de control de congestión negociado de extremo a extremo, en vez de usar UDP. Además, DCCP permite el establecimiento de conexiones confiables, la negociación de sus características y su desconexión.
Una conexión DCCP lleva junto con el tráfico de datos, los acuses de recibo necesarios para hacer de ella una conexión confiable. Los acuses de recibo informan al remitente si sus paquetes de datos arribaron exitosamente, así como si fueron marcados por ECN. Los acuses de recibo son transmitidos tan confiablemente como el mecanismo de control de congestión implementado lo requiera, posiblemente de un modo totalmente confiable.
DCCP fue publicada como RFC 4340, en la categoría de estándar propuesto, por el IETF en marzo del 2006, siendo sus autores E. Kohler, M. Handley y S. Floyd.
Linux implementó por primera vez el DCCP en la versión 2.6.14 de su kernel y ha continuado mejorando con cada nueva versión.