Transparencias de Redes de Ordenadores. Tema 10 Nivel de Transporte: TCP 1ª Parte TCP. Uploaded by. IngTeleco

Documentos relacionados
Redes de Computadores Más sobre TCP. Área de Ingeniería Telemática Dpto. Automática y Computación

TCP Transmission Control Protocol

Tema 14: El protocolo TCP

Bibliografía [COM06] Internetworking with TCP/IP, Cap. 12. Arquitectura de Redes y Servicios de Telecomunicación (ARST)

TCP. Temario. Temario

Problema de agotamiento de direcciones

Bloque III: El nivel de transporte. Tema 5: UDP y TCP

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP

Capa de Transporte, TCP y UDP

Capítulo 3: Capa Transporte - III

ELO322 Redes de Computadores I 07/06/2013. Segundo Certamen ACK1 ACK1 ACK1 ACK1 ACK5

Tema 3: El protocolo TCP

Bloque III: El nivel de transporte. Tema 8: Retransmisiones y temporizadores en TCP

La tarea de esta capa es proporcionar un transporte de datos confiable de la máquina de origen a la máquina de destino, independientemente de la red

TEMA 3. Conceptos Avanzados del Protocolo TCP

Bloque III: El nivel de transporte. Tema 8: Retransmisiones y temporizadores en TCP

Redes de Ordenadores Control de congestión en TCP. Mikel Izal Azcárate

Tema 1bis. TCP y UDP (aka Tema 5. TCP y UDP)

Sistemas de Transportes de Datos (STD) Tema III: UDP Y TCP (Entrega 3) Grupo de Aplicaciones Telemáticas. Grupo de Aplicaciones Telemáticas

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas. Capa de Transporte. Mérida - Venezuela Prof. Gilberto Díaz

Transporte: Servicios y Protocolos. Prof. Wílmer Pereira

TCP Tema 3.- Nivel de transporte en Internet

Bloque III: El nivel de transporte. Tema 7: Intercambio de datos TCP

TCP: Características Establecimiento y finalización de conexiones Tema 4.- Nivel de transporte en Internet

Bloque III: El nivel de transporte. Tema 7: Intercambio de datos TCP

El nivel de transporte

REDES DE ORDENADORES HOJA DE PROBLEMAS 3

Propósito de la capa de transporte

Nivel de Transporte en Internet

Tema 4 CURSO 2015/16 (PLAN 2009) PRIMER SEMESTRE. Internet

Sistemas de Transportes de Datos (STD) Tema III: UDP Y TCP (Entrega 2) Maximum Segment Size (MSS) No fragmentar datagrama IP

Redes de Computadores - Problemas y cuestiones

Contenido. UDP y TCP NAT Proxy El Laboratorio de Telemática. 17 Nov Conceptos avanzados 1/21

Protocolos de ventana deslizante (sliding-window protocols)

Planificación y Administración de Redes: El nivel de Transporte. Jesús Moreno León Raúl Ruiz Padilla Septiembre 2010

Sistemas de Transportes de Datos (STD) Tema III: UDP Y TCP (Entrega 1) Nivel de. Proceso. Nivel de Transporte. Nivel de Red.

Control de flujo en TCP

Redes de computadores. Práctica 3

Tarea N 2 5, 27, 28, 33 para corrección.

TCP Control de Congestión Teoría de la Comunicaciones. 05 de Junio de 2012

GUÍA DE ESTUDIO TEMA 2. MODELO OSI. ESTÁNDARES Y PROTOCOLOS. MODELO TCP/IP.

Principios del Control de Congestión

Nivel de enlace. Teoría de la Comunicaciones. 28 de Marzo de 2012

Conceptos avanzados. Contenido

Capítulo 3 Capa de Transporte

Capas de Transporte del modelo OSI y del Modelo TCP/IP Servicios y Protocolos Conceptos y características

Transmisión de secuencia de bytes confiablemente (Transission Control Protocol, TCP)

Protocolos de Extremo a Extremo (Transmission Control Protocol, TCP)

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

ARQUITECTURA DE REDES Laboratorio

Protocolos punto a punto Teoría de la Comunicaciones. 23 de Marzo de 2016

Control de Congestión en TCP Teoría de la Comunicaciones. 05 de Junio de 2013

Transporte en Internet

Redes de Computadoras Septiembre de Teoría y problemas (75 %).

Nivel de enlace. Teoría de la Comunicaciones. 27 de Marzo de 2013

15/06/14. Principios del Control de la Congestión. Causas y Costos de la Congestión. Escenario 1: 2 emisores, 1 enrutador con buffer infinito.

Protocolo de Ventana Deslizante 2008

Escola Tècnica Superior d Enginyeria Informàtica Universitat Politècnica de València

Introducción (I) La capa de transporte en Internet: TCP es: UDP es:

TCP/IP e Internet. Eytan Modiano MIT. Eytan Modiano. Slide 1

Gestión de cola. Area de Ingeniería Telemática Grado en Ingeniería en Tecnologías de Telecomunicación, 3º

Protocolo TCP (Transmission Control Protocol)

Control de Congestión en TCP Teoría de la Comunicaciones. 21 de Mayo de 2014

Andres Arcia Moret 1 Algunas láminas y/o gráficos son tomandos exactamente del laminario K-R

BLOQUE I. Introducción a la Telemática

TCP: Carácterísticas Establecimiento y finalización de conexiones

CUESTIONARIO PARA EL PROTOCOLO TCP/IP PREGUNTAS

Datos de usuario. Tipos de paquetes de la arquitectura TCP/IP. Telnet, FTP, , etc Aplicación. TCP, UDP Transporte. IP, ICMP, IGMP Red

Capa de transporte Nivel 4

CAPÍTULO X TCP Sockets.

TEMA 7 PROTOCOLOS DE TRANSPORTE. TCP Y UDP.

Examen Febrero 2002 Test Resuelto Temas 9-13

ARQUITECTURA DE REDES DE COMUNICACIONES 17 de junio de 2008

TRANSFERENCIA DE FLUJO DE OCTETOS

El Nivel de Transporte en Internet

Práctica N 5: Wireshark TCP

Ilustración 1: Contexto de los Protocolos del nivel de transporte.

CONTROL DE ERRORES DETECCIÓN DE ERRORES

Redes de Comunicaciones. Ejercicios de clase Tema 3

Figura 4.1: Niveles del TCP/IP

Tema 8: Frame Relay Ejercicios Resueltos

Nuevos Protocolos de Transporte para Acceso a Internet en Redes Inalámbricas

Transporte fiable Ventana deslizante y go-back-n

2 El protocolo TCP 2.1 INTRODUCCIÓN

Redes de Computadoras Junio de Teoría y problemas (75 %)

ÍNDICE TEMÁTICO I. ARQUITECTURA TCP/IP

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE TRANSPORTE

Gestión de cola. Area de Ingeniería Telemática Grado en Ingeniería en Tecnologías de Telecomunicación, 3º

Bloque IV: El nivel de red. Tema 9: IP

La capa de transporte

Figura 6.3 Descripción de la ventana deslizante.

Objetivos. Comprender el funcionamiento de Internet y los protocolos que la hacen funcionar

5 Compresión de Cabeceras de Van Jacobson

UDP Tema 3.- Nivel de transporte en Internet

INGENIERÍA INFORMÁTICA LABORATORIO DE REDES

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA TCP AVANZADO. Celeste Campo ÍNDICE

Seminario de Redes TRABAJO PRACTICO Nº 3. UDP y TCP. deimos_azul@yahoo.com Padrón: gonzalojosa@hotmail.

Bloque IV: El nivel de red. Tema 12: ICMP

Dirección donde conecta el nivel de aplicación: esto es el puerto.

Transcripción:

Transparencias de Redes de Ordenadores Tema 10 Nivel de Transporte: TCP 1ª Parte TCP Uploaded by IngTeleco http://ingteleco.iespana.es ingtelecoweb@hotmail.com La dirección URL puede sufrir modificaciones en el futuro. Si no funciona contacta por email

TCP: Características Orientado a la conexión. Utiliza 3-way handshake para el establecimiento y liberación de la conexión. Servicio de transmisión de una cadena de bytes. La aplicación emisora escribe un número de bytes. TCP los divide en segmentos y los envía mediante IP. La aplicación receptora lee la secuencia de bytes TCP (VAL) 1 TCP: Características (II) Servicio fiable: Uso de reconocimientos de datos recibidos. Uso de Checksums para detectar datos corrompidos. Nº de secuencia para detectar pérdidas (temporizadores de retransmisión) o desorden. Control de flujo de ventana deslizante para evita el desbordamiento del receptor. Control de congestion para repartir la capacidad de la red entre los usuarios. TCP (VAL) 2 1

Byte 80 Byte 3 Byte 2 Byte 1 Byte 0 Byte 80 Byte 3 Byte 2 Byte 1 Byte 0 Flujo continuo de octetos Nodo A TCP Data Segmento enviado cuando: Segmento lleno (MSS bytes), Pushed por la aplicación, o Temporizador. Nodo B TCP Data TCP (VAL) 3 El formato de los segmentos IP Data TCP Data TCP Hdr IP Hdr Cabecera TCP y Datos + Direcciones IP 0 15 31 HLEN 4 Src port RSVD 6 Checksum Sequence # Ack Sequence # Flags URG ACK PSH RST SYN FIN Dst port (TCP Options) TCP Data Tamaño de ventana Urg Pointer Los números de puerto Src/dst y la dirección IP identifican un socket TCP (VAL) 4 2

El formato de los segmentos URG: datos urgentes (No usado en general) ACK: Nº ACK válido PSH: Push de datos (No usado en general) RST, SYN, FIN: Establecimiento de conexión Cuenta de bytes de datos (no segmentos) Número de bytes que el receptor está dispuesto a aceptar Checksum Internet (como en UDP) TCP (VAL) 5 Nodo A Números de secuencia ISN (Número inicial de secuencia) Número de secuencia = 1 º byte TCP Data TCP HDR Nº de secuencia Ack = siguiente byte esperado Nodo B TCP Data TCP HDR TCP (VAL) 6 3

Números de secuencia (II) Números de secuencia Número de secuencia del primer byte en el segmento de datos ACKs Número de secuencia del siguiente byte esperado del otro extremo Acumulativos Cómo gestiona el receptor los segmentos desordenados). TCP no lo especifica, depende del implementador TCP (VAL) 7 Transferencia de datos fiable TCP (VAL) 8 4

TCP: generación de ACK [RFC 1122, RFC 2581] Evento Acción receptor TCP Llegada de segmento en orden, sin saltos, todo lo demás ya reconocido Llegada de segmento en orden, sin saltos, un ACK retrasado pendiente Llegada de segmento no en secuencia, con número de secuencia mayor de lo esperado, salto detectado Llegada de un segmento que llena el salto parcial o completamento ACK retrasado. Espera hasta 500 ms al siguiente segmento. Si no hay próximo segmento envía ACK Envía un segmento ACK acumulativo inmediatamente Envía un ACK acumulativo, indicando el número de secuencia del siguiente byte esperado ACK inmediato si el segmento empieza en el extremo inferior del hueco TCP (VAL) 9 TCP: retransmisión TCP (VAL) 10 5

TCP: Gestión de la Conexión (Activo) Cliente Syn (Pasivo) Servidor (Activo) Cliente Fin (Pasivo) Servidor Syn + Ack (Data +) Ack Ack Fin Ack Establecimiento de conexión 3-way handshake Liberación de conexión 2 x 2-way handshake TCP (VAL) 11 Establecimiento de la conexión 3-way handshake Paso 1: el cliente envía un segmento TCP SYN al servidor (número inicial de secuencia elegido aleatoriamente) Paso 2: el servidor recibe el SYN, responde con SYN+ACK Asigna buffers Elige aleatoriamente su nº inicial de secuencia Paso 3: el cliente responde con ack. TCP (VAL) 12 6

Establecimiento de la conexión (II) TCP A TCP B SEQ ACK CTL 1. CLOSED LISTEN 2. SYN-SENT <100> <SYN> SYN-RECEIVED 3. ESTABLISHED <300> <101> <SYN,ACK> SYN-RECEIVED 4. ESTABLISHED <101> <301> <ACK> ESTABLISHED 5. ESTABLISHED <101> <301> <ACK> DATA ESTABLISHED TCP (VAL) 13 Liberación de la conexión 2x2-way handshake Paso 1: el cliente envía un segmento TCP FIN al servidor Paso 2: el servidor recibe el FIN, responde con ACK. Después cierra la conexión y envía FIN. Paso 3: el cliente recibe FIN y responde con ACK. Entra en tiempo de espera responderá con ACK a FIN retransmitidos Paso 4: el servidor recibe ACK. Cierre de la conexión El protocolo contempla FIN simultáneos TCP (VAL) 14 7

Liberación de la conexión (II) TCP A TCP B SEQ ACK CTL 1. ESTABLISHED ESTABLISHED 2. (Close) FIN-WAIT-1 <100> <300> <FIN,ACK> CLOSE-WAIT 3. FIN-WAIT-2 <300> <101> <ACK> CLOSE-WAIT 4. (Close) TIME-WAIT <300> <101> <FIN,ACK> LAST-ACK 5. TIME-WAIT <101> <301> <ACK> CLOSED TCP (VAL) 15 6. (2 MSL) - CLOSED Apertura simultánea de una conexión TCP A TCP B SEQ ACK CTL 1. CLOSED CLOSED 2. SYN-SENT <100> <SYN>... 3. SYN-RECEIVED <300> <SYN> SYN-SENT 4.... <100> <SYN> SYN-RECEIVED 5. SYN-RECEIVED <100> <301> <SYN,ACK>... 6. ESTABLISHED <300> <101> <SYN,ACK> SYN-RECEIVED 7. ESTABLISHED <101> <301> <ACK> ESTABLISHED TCP (VAL) 16 8

Recuperación de un SYN antiguo duplicado TCP A TCP B SEQ ACK CTL 1. CLOSED LISTEN 2. SYN-SENT <100> <SYN>... 3. (duplicate)... <90> <SYN> SYN-RECEIVED 4. SYN-SENT <300> <91> <SYN,ACK> SYN-RECEIVED 5. SYN-SENT <91> <RST> LISTEN 6.... <100> <SYN> SYN-RECEIVED 7. SYN-SENT <400> <101> <SYN,ACK> SYN-RECEIVED 8. ESTABLISHED <101> <401> <ACK> ESTABLISHED TCP (VAL) 17 Descubrimiento de una conexión semiabierta TCP A TCP B SEQ ACK CTL 1. (Crash) (Send 300, receive 100) 2. CLOSED ESTABLISHED 3. SYN-SENT <400> <SYN> (??) 4. (!!) <300> <100> <ACK> ESTABLISHED 5. SYN-SENT <100> <RST> (Abort!!) 6. SYN-SENT CLOSED 7. SYN-SENT <400> <SYN> TCP (VAL) 18 9

Un SYN antiguo duplicado inicia un Reset en dos conexiones pasivas TCP A TCP B SEQ ACK CTL 1. LISTEN LISTEN 2.... < Z > <SYN> SYN-RECEIVED 3. (??) < X > <Z+1> <SYN,ACK> SYN-RECEIVED 4. <Z+1> <RST> (vuelta a LISTEN) 5. LISTEN LISTEN TCP (VAL) 19 Secuencia de cierre simultáneo TCP A TCP B SEQ ACK CTL 1. ESTABLISHED ESTABLISHED 2. (Close) (Close) FIN-WAIT-1 <100> <300> <FIN,ACK>... FIN-WAIT-1 <300> <100> <FIN,ACK>... <100> <300> <FIN,ACK> 3. CLOSING <101> <301> <ACK>... CLOSING <301> <101> <ACK>... <101> <301> <ACK> 4. TIME-WAIT TIME-WAIT (2 MSL) (2 MSL) CLOSED CLOSED TCP (VAL) 20 10

Diagrama de Transición de Estados TCP (VAL) 21 TCP: control de flujo Se basa en el mecanismo de ventana deslizante pero la situación es diferente al nivel de enlace de datos. Puede conectar muchos nodos diferentes Necesita establecimiento y liberación explícita de la conexión Diferentes RTT potenciales Necesita un mecanismo adaptativo de timeout Retraso elevado en la red Necesita estar preparado para la llegada de segmentos muy antiguos Diferente capacidad en el destino Necesita acomodar diferentes capacidades de almacenamiento Diferente capacidad de red Necesita estar preparado para la congestión de la red TCP (VAL) 22 11

TCP: Control de flujo (II) Mecanismo de ventana deslizante. Receptor: informa explícitamente al emisor del espacio libre en el buffer (dinámico) Rcvr window Size en el segmento TCP Emisor: cantidad de datos transmitidos no reconocidos, menor que Rcvr window Size más reciente. TCP (VAL) 23 Ventana deslizante TCP Tamaño de ventana Datos reconocidos Datos no reconcidos Datos que se pueden enviar Datos que no se pueden enviar todavía La retransmisión es con Retroceso a N El receptor notifica el tamaño actual de la ventana (generalmente 4k 8kbytes al iniciar la conexión). TCP (VAL) 24 12

Ventana deslizante TCP (II) RTT RTT Nodo A Tamaño ventana??? Tamaño ventana Tamaño ventana Nodo B ACK (1) RTT > Tamaño de ventana ACK ACK (2) RTT = Tamaño de ventana TCP (VAL) 25 Cuándo acepta un segmento el receptor? Longitud Ventana Prueba Segmento Recepción ----------- ----------- --------------------------------------------------- 0 0 SEG.SEQ = = RCV.NXT 0 >0 RCV.NXT <= SEG.SEQ < RCV.NXT+RCV.WND >0 0 no aceptable >0 >0 RCV.NXT <= SEG.SEQ < RCV.NXT+RCV.WND or RCV.NXT <= SEG.SEQ+SEG.LEN-1 < RCV.NXT+RCV.WND TCP (VAL) 26 13

Cuando llegan segmentos erróneos Envía RST (permanece en el mismo estado) Estado closed y llega cualquier cosa salvo RST Estados listen, syn-sent, syn-received y ACKS recibidos acerca de algo no enviado Envía ACK established y otros estados sincronizados Utiliza seq, números ack que otro lado creerá (p.e., de los ACK entrantes o datos) TCP (VAL) 27 Temporizador y RTT Cómo ajustar el valor del temporizador? Mayor que RTT ( variable ) Demasiado corto: expiración prematura y retransmisiones innecesarias Demasiado largo: reacción lenta frente a la pérdida de segmentos Cómo estimar RTT? Muestreo de RTT: Medir el tiempo desde la transmisión de un segmento hasta la recepción del ACK (Algoritmo de Karn/Partridge) Ignorar la retransmisiones y ACKs acumulativos de segmentos TCP (VAL) 28 14

Temporizador y RTT (II) Algoritmo de Jacobson/Karels Las muestras de RTT varían en cada instante, una estimación de RTT menos variable: Utilizar varias mediciones recientes no sólo el último muestreo RTTestimada =(1-x) * RTTestimada + x * RTTmuestreada La influencia de un muestreo decrece con rapidez exponencial Un valor típico de x es 0,1 Para fijar el temporizador se tiene en cuanta la desviación del valor de RTT: RTT más un margen de seguridad A mayor variación de RTTestimada margen de seguridad mayor Timeout = RTTestimado + 4 * Desviación Desviación = (1-x) * desviación + x * abs(rttmuestreada- RTTestimada) TCP (VAL) 29 Rendimiento TCP (sin errores) Ventana max TCP = 64KB Rendimiento max TCP internacional - 100ms RTT - 5.2Mbps metropolitano - 1ms RTT - 520Mbps local - 0.1ms RTT - 5.2Gbps El problema es el tamaño máximo de ventana de 64KB Solución: Añadir la opción window scale Ambos extremos de la conexión TCP acuerdan al establecerla utilizar factores de escala Cada extremo informa al otro del factor de escala que aceptará Ventana de recepción real = Ventana Recibida Segmento * 2**shift-cnt Max shift-cnt = 14 Ventana max = 64KB * 2**14 = ~8Gb Rendimiento max TCP internacional = 80Gbps TCP (VAL) 30 15

Control de Congestión La red no es capaz de gestionar todos los datos cursados. Uno de los problemas principales Diferente del control de flujo Manifestaciones: Pérdidas de paquetes ( se sobrepasa el buffer de los routers ) Retrasos elevados (encolamiento en los routers) Costo de la congestión: Cuando un paquete se elimina, la capacidad de transmisión usada por dicho paquete se desperdicia Enfoques: Control de congestión extremo a extremo NO es preciso una realimentación explícita de la red La congestión se infiere de la pérdida o retraso observado en los sistemas finales Enfoque adoptado por TCP Control de congestión asistido por la red Los routers proporcionan información a los sistemas finales Un bit indicando la congestión (SNA, DECbit, TCP/IP ECN, ATM) Se indica explícitamente la velocidad al emisor TCP (VAL) 31 Control de Congestión (II) Control extremo a extremo, sin actuación en la red. Velocidad de transmisión limitado por el tamaño de la ventana de congestión ( Congwin ) WinSize =Min(Congwin,Rcvwinsize) donde RcvWinSize es la ventana notificada por el receptor a efectos de control de flujo. W segmentos, cada uno con MSS bytes enviados en un RTT: Rendimiento = W * MSS / RTT ( bytes / seg ) TCP (VAL) 32 16

Control de congestión (III) TCP utiliza una ventana que superpone a la ventana notificada por el receptor: Window = min ( Rcvr window Size, Cong window ) Transmitir tan rápido como se pueda sin pérdidas (Congwin tan grande como sea posible) Incrementar Congwin hasta que se produzcan pérdidas (congestión) Pérdidas: decrementar Congwin, y comenzar el incremento de nuevo Dos fases: Arranque lento Anulación de Congestión ( Congestion avoidance ) Variables importantes Congwin Threshold: ½ del valor de Congwin previo a la congestión Congwin cuenta bytes en TCP (aquí por comodidad lo haremos en segmentos TCP (VAL) 33 Arranque lento Algoritm0: Inicializar: Congwin=1 Con cada segmento reconocido Congwin=Congwin+1 Hasta (pérdida o Congwin>Threshold) El tamaño de ventana se duplica por cada RTT (no demasido lento) Evento Pérdida: timeout (Tahoe TCP), timeout o tres ACKs duplicados (Reno TCP) El arranque lento sigue hasta que se produce una pérdida desde el inicio de la conéxión Problema: Pérdida de datos hasta la mitad de Congwin TCP (VAL) 34 17

Anulación de Congestión Algoritmo Finaliza arranque lento Congwin>Threshold Hasta evento pérdida Cada segmento Congwin reconocido Congwin ++ Threshold = Congwin/2 Congwin=1 Arranque lento Reno TCP evita el arranque lento (recuperación rápida) después de tres ACKs duplicados TCP (VAL) 35 Aumento aditivo/disminución multiplicativa Incrementar Congwin cuando la congestión disminuye Decrementar Congwin cuando la congestión aumenta Cómo determina el emisor si la red está o no congestionada? Se produce un timeout Un timeout señala la pérdida de un paquete Los paquetes se pierden raras veces por errores de transmisión La pérdida de un paquete indica una congestión Algoritmo: Incrementar Congwin en 1 paquete por RTT (aumento lineal) Dividir Congwin entre 2 cuando se produce una pérdida (disminución multiplicativa) TCP (VAL) 36 18

Retransmisión y recuperación rápida Problema: Los temporizadores TCP conducen a periodos desocupados Retransmisión rápida: utilizar ACKs duplicados para disparar la retransmisión Resultado Recuperación rápida: elimina la fase de arranque lento; ir directamente a la mitad del último Congwin con éxito TCP (VAL) 37 19