El protocolo TCP Joaquín Salvachúa Rodríguez jsr@dit.upm.es -1- Propiedades u Direccionamiento u Semántica de entrega. u Semántica de ordenación en la entrega u Control de flujo: velocidad de envío. u Control de congestión: no una conexión en el universo. u Segmentación: Optimización del tamaño de envío. -2- Desarrollo u Conjunto con IP. u Uno de los muchos desarrollados 4Otros eliminados por competencia. u Múltiples versiones: ajuste por heurísticos. u Diseñado para Internet: 4Problemas en otros tipos de redes. 4Heurísticos especiales (ppp, atm, etc). -3- Características u TCP es orientado a conexión y “full duplex”. u La negociación del máximo tamaño de segmento es en la conexión. u Fiabilidad implementada por asentimiento, estimación del tiempo del tiempo de ida y retransmisión. u Cambio de tamaño en la ventana para control de flujo. u Control de congestión por “slow start” y detección de congestión. -4- Propiedades u Orientado a conexión. u Entrega Fiable, Ordenada sin duplicación. u Control de flujo. u Indicación de mensajes “fuera de banda” u Control de congestión. -5- Arquitectura TCP/IP Aplicación Aplicación UDP TCP ICMP Ethernet -6- Internet Protocol (IP) AAL 5 / ATM IGMP FDDI Punto de vista del usuario u Protocolo que force unh stream ordeando de octetos binarios bidireccional entre dos puntos de conxión (sockets). u No está orientado a paquete, no garantiza la entrega de paquetes si no de flujos de datos. -7- Control de flujo u Utiliza una ventana deslizante de asentimientos. u Todos los paquetes llevan una indicación de la posición en la ventana (16 bits). -8- Algoritmos u Eventos posibles: 4Enviado por el Usuario 4Recepción de un paquete. 4Vencimiento de un temporizador. -9- Problemas de congestión u Políticas de envío: 4Ancho de banda fijo. 4Estimación dinámica del ancho de banda. • Comenzar lentamente • Aumentar el ancho de banda hasta el limite - 10 - Cabecera TCP 16 0 Puerto Origen 31 Puerto Destino Número de secuencia Número de asentimiento hleng reservado Bits de 6 4 control Checksum - 11 - Ventana Puntero Urgente Desmultiplexación u Se diseñarón otros protocolos, u Basado en direcciones IP + Puerto. u Servicios en Puertos bien conocidos 4/etc/services u Uso de enrutado definido por ICMP - 12 - Autómata u Ver fotocopia - 13 - Conexión u Envío de un SYN con una Inital sequence number (ISN) +/- aleatorio y un Maximun Segment Size (MSS). u Responde con un ack y con otro ISN y MSS. u Protección contra ataque malévolos. u Tras Asentir el ACK comienza la transmisión. - 14 - Finalización de la conexión u Uno de los participantes envia un segmento marcado con FIN. u Cuando a sido asentido el receptor puede aún enviar datos (half close). u La conexión puede desconectarse con un RST. - 15 - Intercambio de datos u Se utiliza un cierto tamaño de paquetes. u Algoritmo de Nagle: un envío puede tener un solo paquete pequeño sin asentir. u Limitar los paquetes pequeños en WAN. u Programable para programas interactivos (rlogin telnet ≠ ftp). - 16 - Control de flujo u Separado de tamaño de paquete: asentimiento por bytes. u Posibilidad de múltiples asentimientos en 1 (rangos). u Tamaño de la ventana: Nº de asentimientos pendientes. u Tamaño de paquetes variables. - 17 - Temporizaciones u Solo asiente el último byte correcto (supone que bien todos los anteriores). u Calculo dinámico de RTT (media estadística). u Si vence la temporización se retransmite. - 18 - Calculo del RTT u Unidad de tiempo = 500 ms. u Solo se realiza una medición por vez. u Al enviar una pdu se inicia el contador. u Al recibir el ACK. u No se recalcula si no se recibe un ack por un paquete no retransmitido (alg. Karns). - 19 - Control de congestión u Ancho de banda: función de ventana y RTT. u Perdidas de paquetes y retransmisiones indicación de congestión. u Intento de tener el tamaño optimo de la conexión (problema de múltiples conexiones). - 20 - Slow start u Por si la moscas comenzamos despacio. u Según se reciben paquetes sin necesidad de retransmisión se incrementa el tamaño de la ventana. u Se supone que alcanzamos el óptimo. u Tras un timeout se resetea. - 21 - Problemas u Redes de banda ancha. u Sobrecarga de conexión con HTTP. u Todos los algoritmos son resultados de medidas y simulaciones. u Convergencia hasta la versión actual. - 22 -