Capas de Transporte OSI y TCP Facultad de Ingeniería Universidad de Buenos Aires Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I Capas de Transporte del modelo OSI y del Modelo TCP/IP Servicios y Protocolos Conceptos y características Prof. María Feldgen 2º Cuatrimestre de 2005 Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 1 Servicios que provee a las capas superiores Host A Host B Capas superiores Capas superiores Aplicación, presentación y Dirección de sesión transporte Entidad de transporte Dirección de red Aplicación, presentación y sesión interfase TPDU interfase Capa de red Entidad de transporte Dirección de red Capa de red Las capas de transporte, red y capas superiores. Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 2 1 Capas de Transporte OSI y TCP Relación entre unidades (carga útil o área de datos) Las cabeceras (headers) de TPDUs, paquetes y tramas (frames). Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 3 Funciones de la Capa de Transporte Conexión: – – – – – – – Mapeo de direcciones Conexión de red segun requerimientos Multiplexado o splitting Establecer unidad de transporte Funciones para la fase de transferencia Identificación de las puntas de transporte Transferir datos iniciales Liberación: OSI Transferencia: – Secuenciamiento, bloqueo, concatenación, segmentación – Multiplexado o splitting – Control de flujo – Detección o recuperación de errores – Datos urgentes – Delimitación de segmento – Identificación de conexión de transporte – Transferencia limitada de datos – Notificación de desconexión – Identificación de la conexión liberada Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 4 2 Capas de Transporte OSI y TCP Características de un servicio CON CONEXION (Repaso) Establecimiento o conexión Transferencia Liberación o desconexión Unidades relacionadas Los datos llegan en orden (Nº de secuencia) Control de errores Retransmisión Control de flujo Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 5 Modelo Cliente-Servidor Es un grupo de procesos cooperantes, llamados servers (servidores) que brindan servicios a los usuarios, llamados clients (clientes) La aplicación se basan en un protocolo de pregunta/respuesta (request/reply) Request Cliente Servidor Reply Capas 1 a 4 Capas 1 a 4 5 Request/Reply 4 3 2 Red Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) 1 Modelo de Capas Prof. María Feldgen 6 3 Capas de Transporte OSI y TCP Modelo Cliente-Servidor REQUEST REPLY Cliente: inicia la interacción Servidor: Espera por el cliente ACTIVO PASIVO Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 7 Distintos modelos 1. Cliente Direccionamiento al server 1. Request a 243.0.0.1 2. Reply a 199.0.0.2 Servidor 2. Red 3. Cliente 1. Servidor 4. 2. Red Servidor 3. 1. Cliente 4. Red Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) 2. Direccionamiento al proceso por broadcast 1. Broadcast 2. Respuesta al broadcast 3. Request 4. Reply Direccionamiento Name Server por Name Server 1. Lookup 2. NS reply 3. Request 4. Reply Prof. María Feldgen 8 4 Capas de Transporte OSI y TCP Primitivas de servicio de Transporte OSI Servidor TPDU del CONNECT REQUEST recibida IDLE Primitiva CONNECT REQUEST ejecutada Establecimiento pasivo pendiente Cliente Establecimiento activo pendiente Primitiva CONNECT INDICATION ejecutada TPDU del CONNECT ACCEPT recibida Conectado TPDU del DISCONNECT REQUEST recibida Primitiva DISCONNECT REQUEST ejecutada Desconexión pasiva pendiente Desconexión activa pendiente Primitiva DISCONNECT INDICATION ejecutada IDLE TPDU del DISCONNECT ACCEPT recibida Diagrama de estados de la administración de la conexión y desconexión. Las transiciones en rojo son causadas por la llegada de un segmento. La zona en amarillo muestra el estado del servidor luego de cada interacción. La zona en verde, la del cliente. Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 9 Direccionamiento en la capa de transporte OSI TSAPs Proceso usuario (cliente) Proceso servidor 1 TSAP 1243 Conexión de transporte NSAPs TSAP 1888 Proceso servidor 1 TSAPs TSAP 1666 4 Transporte NSAPs 3 Red 2 Enlace 1 Física Relación entre TSAPs y NSAPs en la conexiones de transporte Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 10 5 Capas de Transporte OSI y TCP Establecimiento de la conexión: Números de secuencia Gráfico del libro de Tanenbaum (a) (b) Los Nº de segmentos de las TPDUs no pueden estar en la región prohibida El problema de resincronización Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 11 Control de Flujo y Buffering Espacio libre Gráfico del libro de Tanenbaum (a) Buffers de tamaño fijo, encadenados. (b) Buffers de tamaño variable encadenados. (c) Un buffer grande circular por conexión Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 12 6 Capas de Transporte OSI y TCP RETRANSMISION Los mecanismos de retransmisión se conocen como: Automatic Repeat Request (ARQ): – Stop and Wait ARQ – Créditos (en la capa de transporte OSI) – Go-Back N ARQ (en la capa transporte TCP) – Selective Reject ARQ Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 13 Créditos OSI y control de flujo En una transmisión de datos de un host A a un host B Mensaje Comentario A B 1 Establecimiento buf=8 A garantiza lugar para recibir 8 mensajes 2 3 Establecimiento ack buf=4 Nº sec=0 data =m0 B garantiza lugar para recibir 4 mensajes A puede enviar 3 mensajes mas 4 Nº sec=1 data =m1 5 Nº sec=2 data =m2 6 Ack = 1 buf = 3 B confirma mensaje 0, y permite el mensaje 1 a 3 7 Nº sec=3 data =m3 A No puede enviar mas, bloqueado 8 Nº sec=1 data =m1 Timeout del mensaje 1, retransmisión 9 Ack = 4 buf = 2 B confirma mensaje 1 a 3 y permite el mensaje 4 a 5 10 Nº sec=4 data =m4 A puede enviar 1 mas 11 Nº sec=5 data =m5 A no puede enviar mas, bloqueado 12 Ack = 5 buf = 0 B confirma mensaje 4 y permite 0 mensajes 13 Ack = 6 buf = 1 B confirma mensaje 5 y permite el mensaje 6 14 Nº sec=6 data =m6 A no puede enviar mas, bloqueado 15 Ack = 6 buf = 0 B confirma mensaje 6 y permite 0 mensajes Ack = 6 buf = 2 B confirma y se pierde: deadlock potencial 16 … A puede enviar 2 mensajes mas … Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) El mensaje se pierde, A puede enviar 1 mas Prof. María Feldgen 14 7 Capas de Transporte OSI y TCP Capa de Transporte OSI Tipos de redes A: CONS confiable B: CONS c/ errores C: CLNS Tasa error CR: Connect Request ACEPTABLE residual señalados CC: Connect Confirm SI SI NO Clases de protocolos Tipos de TPDU SI NO NO Tipo de red 0 Clase simple 1 Recup.básica errores 2 Clase multiplexado 3 Recup. errores y Mux 4 Detección y Recup errores A B A B C DR: Disconnect Request DC: Disconnect Confirm DT: Datos ED: Expedited Data AK: ACK de datos EA: ACK Expedited Data RJ: Reject ER: Error en TPDU PI: Ident. de transp. Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 15 Capas de Transporte en TCP/IP CON CONEXIÓN: TCP (Transport Control Protocol) Similar a TP4 del modelo OSI SIN CONEXIÓN: UDP (User Datagram Protocolo) Modelo Cliente Servidor Cliente Servidor Request enviado al port y dirección de IP del servidor PORT (TCP/UDP) + IP PORT Reply enviado al port y dirección de IP del origen Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 16 8 Capas de Transporte OSI y TCP Direccionamiento en TCP Host MAFALDA Servidor Host SUSANITA conexión Cliente (tcp, * ; 21) (tcp, SUSANITA,1500) Port bien conocido Port asignado Socket o half association pasivo Socket o half association activo Association (conexión): (tcp, MAFALDA,21, SUSANITA,1500) Dir local Dir remota Comportamiento del server: IPL+portL IPL+portL *.portL IPR+portR acepta a un solo cliente (*) *.* acepta datagramas para IPL *.* acepta todos los datagramas para portL Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 17 User Datagram Protocol (UDP) Es un protocolo de datagramas (protocolo sin conexión). En cada operación se procesa exactamente un datagrama, que se envia en un datagrama de IP. RFC 768 Header IP Header UDP 20 bytes (8 bytes) Datos UDP Datagrama UDP Datagrama IP Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 18 9 Capas de Transporte OSI y TCP Datagrama UDP 0 31 15 16 Dirección de IP de origen (32 bits) UDP Pseudo Header Dirección de IP de destino (32 bits) cero Protocolo (8 bits) Longitud de UDP (16 bits) 17 Nro Port Origen (16 bits) Nro Port Destino (16 bits) Longitud de UDP (16 bits) Checksum (16 bits) UDP Header Datos Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 19 Transport Control Protocol (TCP) Es un servicio con conexión, byte stream La conexión requiere de las tres etapas: – Establecimiento de la conexión – Transferencia de datos – Liberación de la conexión Header IP Header TCP 20 bytes (20 bytes) RFC 793 Datos TCP Segmento de TCP Datagrama IP Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 20 10 Capas de Transporte OSI y TCP Segmento TCP 0 31 15 16 Nro. de Port Origen (16 bits) Nro. de Port Destino (16 bits) Nro de Secuencia (32 bits) Nro. de ACK (32 bits) Long.Header Reservado U A P P S F (4 bits) (6 bits) R C S S Y I G K H T N N Checksum (16 bits) TCP Header Tamaño ventana (16 bits) Puntero a Urgente (16 bits) Opciones (si hay) Datos Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 21 CONCEPTOS de TCP Establecimiento : three-way handshake Open Activo Open Pasivo N°de secuencia inicial Negociación de MSS Open simultáneo Backlog Timeout Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Liberación : Half Close Estado 2MSL Wait Estados FIN_WAIT Close simultáneo Timeout Prof. María Feldgen 22 11 Capas de Transporte OSI y TCP Establecimiento y Terminación de una conexión TCP Establecimiento: segmento 1 SYN ISNC = 1200 win = 4096 <mss = 1024> SYN ISNC = 8300 ACK = 1201 win = 4096 <mss = 1024> segmento 3 segmento 2 ACK = 8301 Terminación: FIN ISNC = 1201 ACK = 8301 segmento 1 segmento 2 ACK = 1202 segmento 4 FIN ISNC = 8301 segmento 3 ACK = 1202 ACK = 8302 Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen (Comienzo) Diagrama de transición de estados de TCP CLOSED connect / SYN listen / LISTEN SYN / SYN + ACK RST / SYN_RCVD ACK / close / FIN close / FIN FIN_WAIT_1 FIN / ACK (open pasivo) FIN_WAIT_2 ESTABLISHED SYN_SEND (open activo) SYN + ACK / ACK FIN / ACK (transf. datos) (cierre simultáneo) FIN / ACK CLOSING (2MSL timeout) (cierre activo) 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) CLOSE_WAIT close / FIN ACK / TIME_WAIT Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos close o timeout send / SYN SYN / SYN + ACK (open simultáneo) FIN + ACK / ACK ACK / 23 LAST_ACK ACK / timeout (cierre pasivo) Prof. María Feldgen 24 12 Capas de Transporte OSI y TCP Retransmisión en TCP: Sliding Windows ARQ Categorías de Transmisión: – Cada una de las dos capas que están conectadas deben controlar la cantidad de datos que envían y reciben del otro. Esto se realiza dividiendo los bytes en categorías. El transmisor debe dividir los datos enviados en categorías tal de diferenciar los datos enviados y ya confirmados de los enviados y no confirmados todavía, ya que debe esperar la confirmación (ACK) del receptor o puede ser necesario retransmitirlos. – Para los datos de la capa superior que se transmitieron hay 4 categorías: 1. Transmit Category #1: Bytes Enviados y que fueron Confirmados (Acknowledged) 2. Transmit Category #2: Bytes Enviados pero que NO fueron confirmados todavía (falta el ACK) 3. Transmit Category #3: Bytes que NO se enviaron todavía y que el receptor esta dispuesto a acceptar (están dentro de la ventana) 4. Transmit Category #4: Bytes que NO se enviaron todavía y que están en la siguiente ventana (el receptor NO permite aún su envío) Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 25 Retransmisión en TCP: Sliding Windows ARQ Categorías de Recepción: – Para los datos que se reciben no es necesario separar entre datos recibidos y confirmados y datos recibidos y no confirmados como hace el transmisor, ya que no debe esperar por los ACKs. 1. Receive Category #1+2: Bytes Recibidos y confirmados al transmisor. Son las complementarias de las Transmit Categories #1 and #2 del transmisor. 2. Receive Category #3: Bytes que no se recibieron todavia, pero que está dentro de la ventana (Receptor listo para recibirlas). Es la complementaria a Transmit Category #3. 3. Receive Category #4: Bytes que no se recibieron y que marcan el comienzo de la siguiente ventana (Receptor NO está listo para recibirlos todavia). Es la complementaria a Transmit Category #4. Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 26 13 Capas de Transporte OSI y TCP Sliding Windows en TCP # Send Unacknowledged (SND.UNA): Es el Nº de secuencia del 1º byte de datos enviado sin ACK. Es el primer byte de la Transmit Category #2; todos los Nº de secuencia anteriores corresponden a bytes en Transmit Category #1. # Send Next (SND.NXT): Es el Nº de secuencia del siguiente byte de datos a enviar. Esto marca el primer byte de Transmit Category #3. # Send Window (SND.WND): El tamaño de la ventana de emisión en bytes que puede enviar sin esperar el ACK. La suma de (SND.UNA) + (SND.WND) marca el primer byte de Transmit Category #4. Gráfico de www.tcpipguide.com/free Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 27 Tipos de transferencia de datos Flujo de datos interactivo (Telnet y Rlogin) Flujo de datos masivo (Bulk data) (ftp, correo electrónico, etc) Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 28 14 Capas de Transporte OSI y TCP Características del flujo interactivo Cliente tecla A Servidor “A” (PUSH) Monitor de consola procesa eco ack eco de “A” (PUSH) display A ack Algoritmo de Nagle Deshabilitación del Algoritmo de Nagle Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos Prof. María Feldgen 29 Flujo de datos masivos Flujo de datos normal Retransmisión: – Ventanas deslizantes (sliding window) – Tamaño de la ventana Control de congestión: – Slow start: • ventana del receptor (wnd) • ventana de congestión (cwnd) Síndrome Silly Window (Clark 1982) Modo Urgente Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 30 15 Capas de Transporte OSI y TCP Comparación TP4 - TCP TP4 – Orientado a unidades – desconexión abrupta – Expedited Data Otras: – – – – – – Orientado a streams – Graceful release – Datos urgentes Múltiples TPDU’s Créditos Checksum (Fletcher) Retransmisión TS-Bridge(Internetworking) Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos TCP Otras: – – – – – Una TPDU Ventanas deslizantes Checksum (compl. a 1) Retransm. (Jacobson) No existe Prof. María Feldgen 31 Tipos de servidores Iterativo SIN Conexión Iterativo CON Conexión Concurrente SIN Conexión Concurrente CON Conexión Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) Prof. María Feldgen 32 16 Capas de Transporte OSI y TCP Server Concurrente Host MAFALDA Request Conexión server Host Susanita (tcp, * ,21) Cliente fork server hijo (tcp, Mafalda, 21) Conexión Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos (tcp, Susanita, 1500) Prof. María Feldgen 33 Server Concurrente Host Mafalda Request Conexión server (tcp, * ,21) Conexión fork server hijo (tcp, Mafalda, 21) server hijo (tcp, Mafalda, 21) Host Susanita Cliente (tcp, Susanita, 1500) Host Manolito Request Conexión Cliente Conexión Tema: Capa de Transporte Laboratorio de Sistemas Distribuidos Heterogéneos 75.43 Introducción a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. María Feldgen) (tcp, Manolito, 1500) Prof. María Feldgen 34 17