Conjunto de protocolos de Internet |
---|
Capa de aplicación |
Capa de transporte |
Capa de Internet |
Capa de enlace |
En redes informáticas , el Protocolo de control de congestión de datagramas ( DCCP ) es un protocolo de capa de transporte orientado a mensajes . El DCCP implementa la configuración y desconexión de conexiones confiables, la notificación explícita de congestión (ECN), el control de congestión y la negociación de características. La IETF publicó el DCCP como RFC 4340, un estándar propuesto , en marzo de 2006. El RFC 4336 proporciona una introducción.
DCCP proporciona una forma de acceder a mecanismos de control de congestión sin tener que implementarlos en la capa de aplicación . Permite una semántica basada en flujo como en el Protocolo de control de transmisión (TCP), pero no proporciona una entrega en orden confiable. La entrega secuenciada dentro de múltiples flujos como en el Protocolo de transmisión de control de flujo (SCTP) no está disponible en DCCP. Una conexión DCCP contiene tráfico de reconocimiento , así como tráfico de datos. Los reconocimientos informan al remitente si sus paquetes han llegado y si fueron marcados por Notificación explícita de congestión (ECN). Los reconocimientos se transmiten de manera tan confiable como lo requiera el mecanismo de control de congestión en uso, posiblemente de manera completamente confiable.
DCCP tiene la opción de utilizar números de secuencia muy largos (48 bits) que corresponden a un identificador de paquete, en lugar de un identificador de byte como en TCP. La gran longitud de los números de secuencia tiene como objetivo proteger contra "algunos ataques ciegos, como la inyección de reinicios DCCP en la conexión". [1]
El protocolo DCCP es útil para aplicaciones con restricciones de tiempo en la entrega de datos. Dichas aplicaciones incluyen transmisión de medios , juegos en línea multijugador y telefonía por Internet . En dichas aplicaciones, los mensajes antiguos se vuelven inútiles rápidamente, por lo que se prefiere obtener mensajes nuevos en lugar de reenviar los mensajes perdidos. A partir de 2017, [update]dichas aplicaciones a menudo se han conformado con TCP o han utilizado el Protocolo de datagramas de usuario (UDP) e implementado sus propios mecanismos de control de congestión, o no tienen ningún control de congestión en absoluto. Si bien es útil para estas aplicaciones, el protocolo DCCP también puede servir como un mecanismo general de control de congestión para aplicaciones basadas en UDP, al agregar, según sea necesario, mecanismos para una entrega confiable o en orden sobre UDP/DCCP. En este contexto, el protocolo DCCP permite el uso de mecanismos de control de congestión diferentes, pero generalmente compatibles con TCP .
Los siguientes sistemas operativos implementan DCCP:
Biblioteca de espacio de usuario:
El encabezado genérico DCCP adopta distintas formas según el valor de X, el bit de números de secuencia extendidos. Si X es uno, el campo de número de secuencia tiene una longitud de 48 bits y el encabezado genérico ocupa 16 bytes, como se muestra a continuación.
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Puerto de origen | Puerto de destino | ||||||||||||||||||||||||||||||
4 | 32 | Desplazamiento de datos | CCVal | CsCoV | Suma de comprobación | ||||||||||||||||||||||||||||
8 | 64 | Res | Tipo | incógnita | Reservado | Número de secuencia (bits altos)↴ | |||||||||||||||||||||||||||
12 | 96 | ↪Número de secuencia |
Si X es cero, solo se transmiten los 24 bits bajos del número de secuencia y el encabezado genérico tiene una longitud de 12 bytes.
Compensar | Octeto | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octeto | Poco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Puerto de origen | Puerto de destino | ||||||||||||||||||||||||||||||
4 | 32 | Desplazamiento de datos | CCVal | CsCoV | Suma de comprobación | ||||||||||||||||||||||||||||
8 | 64 | Res | Tipo | incógnita | Número de secuencia |
De manera similar a la extensión del protocolo TCP mediante la capacidad de trayectos múltiples ( MPTCP ), también para DCCP la característica de trayectos múltiples se está debatiendo en el IETF [6], que se denomina MP-DCCP. Las primeras implementaciones ya se han desarrollado, probado y presentado en un enfoque colaborativo entre operadores y el mundo académico [7] y están disponibles como una solución de código abierto.