140 likes | 313 Vues
Capítulo 20: TCP Servicio de transporte confiable. ICD-327 Redes de Computadores Agustín J. González. Introducción. TCP (Transmission Control Protocol) es el protocolo de la familia TCP/IP que provee servicio de transporte de datos en forma confiable.
E N D
Capítulo 20: TCP Servicio de transporte confiable ICD-327 Redes de Computadores Agustín J. González
Introducción • TCP (Transmission Control Protocol) es el protocolo de la familia TCP/IP que provee servicio de transporte de datos en forma confiable. • TCP está implementado sobre IP, por lo tanto debe resolver los problemas no resueltos por IP -datagramas se pueden perder, estar duplicados, llegar fuera de orden. • Este protocolo es fundamental en sistemas de computación ya que modela el comportamiento de un canal ideal, como el supuesto en la comunicaciones con otros dispositivos de I/O. • TCP resuelve el problema de muy buena forma, por ello ha perdurado por varias décadas, y ningún otro protocolo con iguales servicios ha probado ser mejor.
Servicios ofrecidos por TCP • Orientación a conexión (Connection Orientation): La aplicación debe requerir una conexión primero. Una vez establecida la usa. Finalmente la cierra. • Comunicación Punto-a-Punto: Cada conexión tiene exactamente dos terminales (comparar con comunicación multipunto -multicast) • Confiabilidad total (Complete Reliability): Se garantiza entrega de los datos sin pérdidas ni duplicados y en orden. • Comunicación dúplex integral (Full Duplex): Hay un buffer de envío y otro e recepción. El protocolo efectúa estas tareas en trasfondo y sin bloquear la aplicación -salvo para recepción de datos que aún no han llegado.
Servicios ofrecidos por TCP (cont...) • Interfaz de flujo (Stream Interfaz): Las aplicaciones envían una secuencia continua de bytes a través de la conexión. Consecuencia: No hay garantía que la entrega se hará en unidades de igual tamaño a aquellas enviadas. Comparar con transferencia de datagramas. • Arranque confiable de la conexión (Reliable connection startup): Los dos puntos extremos deben acordar el establecimiento de la conexión. Paquetes de conexiones pasadas no causan confusión. • Término honroso de la conexión (Graceful connection shutdown): Los datos ya enviados son transmitidos por el protocolo incluso si la conexión ya ha sido cerrada por el Tx. Si el Rx ya cerró la conexión el Tx es informado.
Modelo virtual • TCP se dice que es un protocolo de extremo a extremo (end-to-end protocol) porque provee conexión directa entre una aplicación en un computador y una aplicación en un computador remoto. • Se habla que la comunicación ofrecida es de conexión virtual (virtual conecction)
Pérdida y retransmisión de paquetes • Con el envío de cada mensaje TCP inicia un timer. Si éste expira antes de la recepción de el acuse de recibo correspondiente, se envía una retransmisión. • ¿Qué valor usar para el timeout? Depende de distancia y congestión.Recordar tarea. • ¿Cómo TCP logra la confiabilidad? Hace uso de acuses de recibo y retransmisón.
Retransmisiones adaptivas • En TCP el tiempo de espera para efectuar una retransmisión es adaptivo. TCP monitorea el retardo actual en cada conexión y adapta el timer de retransmisión para acomodarse a las condiciones actuales. • TCP estima el tiempo de ida y vuelta (round-trip delay o round-trip time RTT) para cada conexión midiendo el tiempo de llegada de acuses de recibo. • TCP produce un promedio ponderado de los tiempos RTT. • Al mismo tiempo TCP estima la varianza y usa una combinación del promedio y varainza para determinar el tiempo de retransmisión. • Así, si el RTT varía poco el timer es levemente mayor, si RTT varía mucho el RTT es mayor.
Constantes: g = 1/8 = 0.125 h = 1/4 = 0.25 • A: Average ; D: Deviation • RTO: Retransmission TimeOut Efecto de la adaptación • Estimadores: • Ai = Ai-1 + g*(RTT i - Ai-1 ) • Di = Di-1 + h*(| RTT i - Ai-1| - Di-1) • RTO = Ai+ 4Di
Buffers, control de flujo y ventana • TCP usa una ventana deslizante para el control del flujo. • Cada acuse de recibo especifica el espacio restante del buffer de recepción. Este espacio disponible es llamado la ventana. Y la notificación de su tamaño es conocido como el aviso de ventana (window advertisement) • Cuando el receptor no tiene más espacio, éste esvía una valor cero de ventana, el cual detiene al transmisor.
Three-way Handshake (Acuerdo de tres vías. • TCP marca un paquete especial para iniciar una conexión. Éste se conoce como segmento de sincronización (SYN de synchronization segment)). • Para cerrar una conexión TCP una un segmento de término de conexión (FIN de finish segment) • Se ha probado que el acuerdo de tres vías es suficiente y necesario para asegurar un acuerdo no ambiguo a pesar de retardo, duplicación y pérdidas de paquetes.
Control de congestión • Cuando hay pérdidas de paquetes, el transmisor debe efectuar retransmisiones. Sin embargo, las pérdidas de paquetes hoy se deben principalmente a congestión en routers. Por ello la retransmisión sin otras consideraciones no hace más de agravar la situación. • Cuando un paquete se pierde, TCP envía sólo un único segmento con datos. Se llega el acuse de recibo, TCP dobla la cantidad de datos a ser enviados enviado dos segmentos. • Si se recibe acuse de recibo, se envian cuatro y así hasta ocupar la mitad de la ventana. En esta situación TCP retorna a una tasa de aumento de segmento normal.