TCP: Transporte orientado a la conexión y mecanismos de control de congestión
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,62 KB
Transporte orientado a la conexión: TCP
Servicio fiable que tiene, estado control de flujo y de congestión, garantía, establecimiento de conexión y segmentación de datos. Desarrolla las funciones mínimas de un protocolo de transporte. Una conexión TCP es full-duplex y punto a punto por lo que no permite transferir datos a varios receptores. En una conexión TCP, los procesos de aplicación en ambos hosts deben 1º establecer la comunicación. Los sistemas intermedios no mantienen estados de la conexión TCP. Es un acuerdo en tres fases; intercambio de 3 segmentos especiales; definición de las variables de estado y retardo de establecimiento previo a la transferencia de datos. Una vez establecida, el proceso de aplicación cliente pasa los datos a través del socket al buffer de emisión. TCP irá enviando segmentos de datos a la capa de red según su conveniencia. La cantidad max de datos que lleva un segmento TCP está limitada por MSS. Depende del tamaño de la MTU para garantizar que el segmento TCP se ajuste a una trama y evitar la segmentación. La estructura del segmento TCP es (cabecera de 20 bytes), num de puerto de origen y de destino (16 bits), num de secuencia, SN de 12 byte del segmento (32), num de reconocimiento, SN del siguiente byte (32), longitud de cabecera (4 bits), Flags ( 1bit), ventana de recepción (16 bits), suma de verificación (checksum), puntero de datos urgente (16 bits), opciones (longitud variable). ACK(validez del campo num de reconocimiento), SYN, FIN (establece y cierre), URG (contenido urgente), PSH (pasar de inmediato los datos a la capa superior), RST (rechazo de conexión) Las funciones del emisor; recepción de PDUs de la capa superior (TCP encapsula datos en un segmento, los pasa a la capa IP y se inicia el temporizador); recepción de ACK (se compara el valor del ACK con la variable BaseEmision (SN más antiguo pendiente de ACK). Si el valor del ACK> BaseEmision, el ACK confirma el segmento y los anteriores; y fin de temporizador (timeout), TCP retransmite el segmento asociado y se reinicia el temporizador. Cada vez que TCP retransmite el timeout se duplica. Retransmisión rápida es la solución ante los problemas de retardos que se producen en timeout largos. Un emisor detecta la pérdida de paquetes si recibe 3 ACK duplicados del último byte recibido. Para la resolución de errores en cadena se usa una solución híbrida de GBN, con reconocimientos acumulativos y ACK duplicados y SR, con retransmisión selectiva y almacenamiento en el buffer del receptor de segmentos con SN fuera de orden. Control de flujo, procedimiento de TCP para regular la velocidad entre emisor y receptor con el fin de no desbordar el buffer del receptor. Se supone que se descartan los segmentos fuera de orden y que el emisor conoce el valor de la ventana de recepción (W). Si el buffer está lleno, la ventana es nula y entonces el emisor es notificado para que deje de enviar segmentos. El proceso de aplicación saca segmentos del buffer y los lee y el receptor deja de actualizar el valor de la ventana al emisor. Cuando el emisor sepa que la ventana es cero debe continuar enviando segmentos de un byte por minuto para no bloquear.
Mecanismos de control de congestión
TCP utiliza el control de congestión terminal a terminal, ya que los routers IP no proveen realimentación al emisor para indicar el estado de congestión. El emisor TCP regula la Vtrans con la variable ventana congestión (VC) en función de la congestión observada. La VC supone la restricción de velocidad max que da el emisor. La ventana del emisor (VE) es > o = al num de bytes que se envían sin esperar ACK. Representa el valor min de VC o ventana de recepción. VE=min{VC, W}. Si el buffer del receptor tiene mucha capacidad, no requiere control de flujo, y VE>=VC. Si apenas hay congestión, Vtrans=VC/ RTT. El emisor TCP percibe la congestión mediante sucesos como el vencimiento del timeout o tres ACKs duplicados, entonces reduce la Vtrans. Si no hay congestión si se reciben de forma normal y correcta los ACKs. En función de su frecuencia hay un incremento rápido o lento de VC y de Vtrans. Algoritmo de control de congestión (tres modos); Arranque lento, cuando se inicia una conexión TCP, el VC inicial < 1mss.como el ancho de banda disponible para el emisor puede ser más grande que vtrans=MSS rtt, en el estado de arranque lento, se establece VC inicial=1MSS y se incrementa en un 1mss por cada primer ack de un segmento transmitido. Por lo tanto, Vtrans se duplica en cada periodo rtt durante la fase de arranque lento. Esta fase termina si: vencimiento del timeout, se pierde un paquete, entonces el emisor da el 1mss a VC vuelve a iniciar un proceso de arranque lento. Umbral=VCmax/2 (umbral de arranque lento). VCmax indica el valor de VC cuando se detecta congestión; VC=Umbral, se deja de incrementar VC, por lo que termina la fase de arranque lento y se pasa al modo de evitación de la congestión; y recepción de tres acks duplicados, TCP realiza una retransmisión rápida y entra en el modo de recuperación rápida. Evitación de la congestión, se pasa a este estado al estar al borde de la congestión. Por ello, VC se incrementa en 1MSS por RTT. Esta fase termina si vence la temporización (se pasa al arranque lento) o si se reciben tres ACKs duplicados (Umbral = VCpost3ack/2 y se entra en recuperación rápida). Recuperación rápida, VC se incrementa en 1MSS por cada ACK duplicado recibido correspondiente al segmento perdido. Cuando se recibe el ACK del segmento que falta, el Umbral = VCmax/2 y se vuelve al estado de evitación de la congestión. Si se produce un fin de temporización, VC=1MSS y cambia al estado de arranque lento. El control de congestión TCP es de la forma AIMD (crec. aditivo y decre.multipli). Tasa de transferencia, si se omiten las fases de arranque lento, en TCP la Vtrans se comporta de la forma de dientes de sierra y varía entre W/2RTT y W/RTT, siendo W el tamaño de VC cuando se pierde un segmento. Por ello, la tasa de transferencia media es TTM=0,75W/RTT. Equidad (en AIMD), si hay k conexiones TCP con rutas diferentes que atraviesan un enlace de cuello de botella con distintas Vtrans, se dice que el mecanismo de control de congestión es equitativo si cada conexión obtiene la misma partición de ancho de banda del enlace. Por ello, Vtrans=Vtrans total/k. Las conexiones TCP en paralelo y UDP no son equitativas.