ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática TCP: Características Establecimiento y finalización de conexiones Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios 3º Ingeniería de Telecomunicación ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Temario 1. 2. 3. 4. 5. 6. 7. 8. Introducción Protocolos y arquitectura Redes de área local Protocolos de Internet Conmutación de circuitos Conmutación de paquetes Gestión de recursos en conmutadores Protocolos de control de acceso al medio 1 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Temario 1. 2. 3. 4. Introducción Protocolos y arquitectura Redes de área local Protocolos de Internet • • Nivel de red Nivel de transporte • • • 5. 6. 7. 8. UDP TCP Servicios Conmutación de circuitos Conmutación de paquetes Gestión de recursos en conmutadores Protocolos de control de acceso al medio 2 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Objetivos • Ver las características de TCP • Especialmente qué quiere decir que sea “orientado a conexión” 3 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Contenido • • • • Introducción Demultiplexación en TCP Formato del segmento TCP Gestión de conexiones 4 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Contenido • • • • Introducción Demultiplexación en TCP Formato del segmento TCP Gestión de conexiones 5 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática TCP • • • • • Transmission Control Protocol Nivel de transporte RFCs 793, 1122, 1323, 2018, 2581 Orientado a conexión Flujo de datos: – – – – • Control de flujo – Evitar congestionar al receptor • Control de congestión – Evitar congestionar la red AS 2 Stream de bytes Fiable Ordenado Full duplex AS 1 Transporte UDP TCP Red IP Enlace ICMP ARP Protocolo= 6 AS 3 Segmento TCP Paquete IP Físico 6 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Demultiplexación con conexión • • • • Conexión identificada por 2 sockets Cada socket identificado por: Dirección IP y Puerto TCP Es decir, la conexión viene identificada por: • Cada host soporta múltiples conexiones TCP simultáneas • Con que uno de los 4 valores sea diferente la conexión ya es diferente – Dirección IP (1), Puerto TCP (1) – Dirección IP (2), Puerto TCP (2) • Well-known ports, registrados, efímeros, igual que para UDP El receptor emplea la cuaterna para demultiplexar 32 bits puerto origen puerto dest. otros campos campos de otros de la cabecera cabecera la AS 2 AS 1 AS 3 datos de la aplicación (mensaje) 7 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Demultiplexación: Ejemplo App 4 App 5 App 6 App 1 Transporte Transporte Red Red Enlace Enlace Físico App 2 S-IP: B D-IP: C SP: 5775 DP: 80 S-IP: A D-IP: C SP: 9157 DP: 80 Transporte Red Enlace Físico Físico IP: A App 3 IP: C S-IP: B D-IP: C SP: 9157 DP: 80 IP: B 8 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Demultiplexación: otro ejemplo App 4 App 1 Transporte Transporte Red Red Enlace Enlace Físico App 2 S-IP: B D-IP: C SP: 5775 DP: 80 S-IP: A D-IP: C SP: 9157 DP: 80 Transporte Red Enlace Físico Físico IP: A App 3 IP: C S-IP: B D-IP: C SP: 9157 DP: 80 IP: B 9 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Contenido • • • • Introducción Demultiplexación en TCP Formato del segmento TCP Gestión de conexiones 10 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Segmento TCP 32 bits Tamaño cabecera (palabras de 32bits) URG: datos urgentes (casi no se usa) ACK: El nº ACK es válido PSH: Push Entregar datos a App Número de secuencia Número de confirmación Long No cab. usado U A P R S F Ventana Checksum Puntero a urgentes Cuenta en bytes de datos (no en segmentos) Tamaño de la ventana que se anuncia al emisor Opciones (longitud variable) Datos de aplicación (longitud variable) Paquete IP Internet checksum (como en UDP) Puerto destino Segmento TCP RST, SYN, FIN: establecimiento y fin de la conexión Puerto origen 11 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Contenido • • • • Introducción Demultiplexación en TCP Formato del segmento TCP Gestión de conexiones 12 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Gestión de conexiones Estableciendo una conexión: • Three way handshake Paso 1: • El extremo cliente envía un segmento solicitando una conexión al servidor • El segmento no tiene datos, solo cabecera • SYN cliente servidor SYN 13 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Gestión de conexiones Paso 2: • • • El extremo servidor envía un segmento al cliente confirmando (acknowledgement) la recepción del SYN En el mismo segmento el servidor indica su deseo de establecer la conexión (SYN) El segmento no tiene datos, solo cabecera cliente servidor SYN K , AC N Y S 14 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Gestión de conexiones Paso 3: • • • El extremo cliente envía una confirmación al SYN del servidor El segmento no tiene datos, solo cabecera Conexión establecida cliente SYN K , AC N Y S conectado Transferencia de datos… servidor ACK conectado 15 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Gestión de conexiones Cerrando una conexión Paso 1: • Un extremo envía un segmento solicitando el cierre de la conexión • El segmento no tiene datos, solo cabecera • FIN FIN 16 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Gestión de conexiones Paso 2: • • • El otro extremo confirma (ACK) la recepción del FIN El extremo que ha enviado el FIN ya no puede enviar más datos nuevos Cierre solo de un sentido de la comunicación FIN ACK 17 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Gestión de conexiones Paso 3: • • El otro extremo envía un segmento solicitando el cierre de la conexión El segmento no tiene datos, solo cabecera FIN ACK FIN 18 Paso 4: • • • Confirmación de ese segundo FIN Por si ese último ACK se pierde, el que lo envió espera un tiempo (podría tener que volverlo a enviar) Conexión cerrada FIN ACK FIN time wait ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Gestión de conexiones ACK cerrada cerrada 19 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Diagrama de estados CLOSED SYN SENT SYN Open activo, snd SYN CLOSED LISTEN CLOSED Open pasivo SYN, ACK SYN RCVD ESTABLISHED ACK Close Close LISTEN rcv SYN / snd SYN snd SYN,ACK ESTABLISHED SYN RCVD Close, snd FIN SYN SENT rcv SYN, ACK / snd ACK rcv SYN / snd ACK rcv ACK ESTABLISHED rcv FIN / snd ACK Close, snd FIN FIN WAIT-1 rcv ACK FIN WAIT-2 rcv FIN / snd ACK CLOSING CLOSE WAIT Close, snd FIN rcv FIN, ACK / snd ACK LASTACK rcv ACK rcv ACK TIMEWAIT CLOSED Timeout rcv FIN /snd ACK 2xMSL 20 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Diagrama de estados CLOSED SYN SYN SENT Open activo, snd SYN CLOSED LISTEN CLOSED Open pasivo SYN, ACK SYN RCVD ACK ESTABLISHED Datos ACK Close Close LISTEN rcv SYN / snd SYN snd SYN,ACK ESTABLISHED SYN RCVD Close, snd FIN SYN SENT rcv SYN, ACK / snd ACK rcv SYN / snd ACK rcv ACK ESTABLISHED rcv FIN / snd ACK Close, snd FIN . . FIN WAIT-1 rcv ACK FIN WAIT-2 rcv FIN / snd ACK CLOSING CLOSE WAIT Close, snd FIN rcv FIN, ACK / snd ACK LASTACK rcv ACK rcv ACK TIMEWAIT CLOSED Timeout rcv FIN /snd ACK 2xMSL 21 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Diagrama de estados CLOSED SYN SYN SENT Open activo, snd SYN CLOSED LISTEN CLOSED Open pasivo SYN, ACK SYN RCVD ACK ESTABLISHED ACK CLOSED FIN WAIT-1 FIN WAIT-2 FIN ACK SYN SENT rcv SYN, ACK / snd ACK rcv SYN / snd ACK rcv ACK ESTABLISHED rcv FIN / snd ACK Close, snd FIN . . FIN LAST ACK SYN RCVD Close, snd FIN ACK CLOSE WAIT LISTEN rcv SYN / snd SYN snd SYN,ACK ESTABLISHED Datos Close Close TIMEWAIT CLOSED FIN WAIT-1 rcv ACK FIN WAIT-2 rcv FIN / snd ACK CLOSING CLOSE WAIT Close, snd FIN rcv FIN, ACK / snd ACK LASTACK rcv ACK rcv ACK TIMEWAIT CLOSED Timeout rcv FIN /snd ACK 2xMSL 22 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Servidor Cliente Open activo, snd SYN Open activo, snd SYN CLOSED Open pasivo CLOSED Close Close LISTEN rcv SYN / snd SYN snd SYN,ACK SYN SYN rcv SYN / snd ACK RCVD SENT Close, snd FIN rcv ACK rcv SYN, ACK / snd ACK ESTABLISHED rcv FIN / snd ACK Close, snd FIN FIN WAIT-1 rcv ACK FIN WAIT-2 rcv FIN / snd ACK CLOSING CLOSE WAIT Close, snd FIN rcv FIN, ACK / snd ACK LASTACK rcv ACK rcv ACK TIMEWAIT CLOSED Timeout rcv FIN /snd ACK 2xMSL Open pasivo Close Close LISTEN rcv SYN / snd SYN snd SYN,ACK SYN SYN rcv SYN / snd ACK RCVD SENT Close, snd FIN rcv ACK rcv SYN, ACK / snd ACK ESTABLISHED rcv FIN / snd ACK Close, snd FIN FIN WAIT-1 rcv ACK FIN WAIT-2 rcv FIN / snd ACK CLOSING CLOSE WAIT Close, snd FIN rcv FIN, ACK / snd ACK LASTACK rcv ACK rcv ACK TIMEWAIT CLOSED Timeout rcv FIN /snd ACK 2xMSL 23 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Ejemplo $ tcpdump -ttnlS tcp and host 10.1.11.1 Kernel filter, protocol ALL, datagram packet socket tcpdump: listening on all devices 54.171 1.1.1.12.1798 > 10.1.11.1.telnet: S 3462181145:3462181145(0) 54.175 10.1.11.1.telnet > 1.1.1.12.1798: S 1997882026:1997882026(0) ack 3462181146 54.175 1.1.1.12.1798 > 10.1.11.1.telnet: . 3462181146:3462181146(0) ack 1997882027 54.177 1.1.1.12.1798 > 10.1.11.1.telnet: P 3462181146:3462181173(27) ack 1997882027 54.178 10.1.11.1.telnet > 1.1.1.12.1798: . 1997882027:1997882027(0) ack 3462181173 ... 66.816 66.816 66.817 66.818 10.1.11.1.telnet > 1.1.1.12.1798: 1.1.1.12.1798 > 10.1.11.1.telnet: 1.1.1.12.1798 > 10.1.11.1.telnet: 10.1.11.1.telnet > 1.1.1.12.1798: FP 1997882551:1997882559(8) ack 3462181333 . 3462181333:3462181333(0) ack 1997882560 F 3462181333:3462181333(0) ack 1997882560 . 1997882560:1997882560(0) ack 3462181334 24 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Resumen • • • • • Fiable, mantiene el orden, flujo en stream… TCP emplea el concepto de conexión Three-way handshake (IP_1, puerto_1, IP_2, puerto_2) Mantiene estado 25 ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS Área de Ingeniería Telemática Próxima clase Servicios en Internet: WWW • Lecturas recomendadas: – [Kurose05] 2.2 26