75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 1 Tema: Capa de Transporte Prof. Mara Feldgen 1 Laboratorio de Sistemas Distribuidos Heterogneos Capas de Transporte del modelo OSI y del Modelo TCP/IP Servicios y Protocolos Conceptos y caractersticas Prof. Mara Feldgen Facultad de Ingeniera Universidad de Buenos Aires Laboratorio de Sistemas Distribuidos Heterogneos 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I 2 Cuatrimestre de 2005 Tema: Capa de Transporte Prof. Mara Feldgen 2 Laboratorio de Sistemas Distribuidos Heterogneos Servicios que provee a las capas superiores Las capas de transporte, red y capas superiores. Capas superiores Aplicacin, presentacin y sesin Capa de red Entidad de transporte Direccin de transporte Direccin de red Capas superiores Aplicacin, presentacin y sesin Capa de red Entidad de transporte Direccin de red TPDU interfase interfase Host A Host B Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 2 Tema: Capa de Transporte Prof. Mara Feldgen 3 Laboratorio de Sistemas Distribuidos Heterogneos Relacin entre unidades Las cabeceras (headers) de TPDUs, paquetes y tramas (frames). (carga til o rea de datos) Tema: Capa de Transporte Prof. Mara Feldgen 4 Laboratorio de Sistemas Distribuidos Heterogneos Funciones de la Capa de Transporte ! Conexin: Mapeo de direcciones Conexin de red segun requerimientos Multiplexado o splitting Establecer unidad de transporte Funciones para la fase de transferencia Identificacin de las puntas de transporte Transferir datos iniciales ! Transferencia: Secuenciamiento, bloqueo, concatenacin, segmentacin Multiplexado o splitting Control de flujo Deteccin o recuperacin de errores Datos urgentes Delimitacin de segmento Identificacin de conexin de transporte ! Liberacin: Notificacin de desconexin Identificacin de la conexin liberada ! Transferencia limitada de datos OSI Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 3 Tema: Capa de Transporte Prof. Mara Feldgen 5 Laboratorio de Sistemas Distribuidos Heterogneos Caractersticas de un servicio CON CONEXION (Repaso) ! Establecimiento o conexin ! Transferencia ! Liberacin o desconexin ! Unidades relacionadas ! Los datos llegan en orden (N de secuencia) ! Control de errores ! Retransmisin ! Control de flujo Tema: Capa de Transporte Prof. Mara Feldgen 6 Laboratorio de Sistemas Distribuidos Heterogneos Modelo Cliente-Servidor ! Es un grupo de procesos cooperantes, llamados servers (servidores) que brindan servicios a los usuarios, llamados clients (clientes) ! La aplicacin se basan en un protocolo de pregunta/respuesta (request/reply) Request Reply Red Cliente Servidor 5 4 3 2 1 Request/Reply Capas 1 a 4 Capas 1 a 4 Modelo de Capas Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 4 Tema: Capa de Transporte Prof. Mara Feldgen 7 Laboratorio de Sistemas Distribuidos Heterogneos Cliente: inicia la interaccin ACTIVO Servidor: Espera por el cliente PASIVO REQUEST REPLY Modelo Cliente-Servidor Tema: Capa de Transporte Prof. Mara Feldgen 8 Laboratorio de Sistemas Distribuidos Heterogneos Distintos modelos 1. 2. Red Cliente Servidor Direccionamiento al server 1. Request a 243.0.0.1 2. Reply a 199.0.0.2 3. 4. Red Cliente Servidor 1. 2. Direccionamiento al proceso por broadcast 1. Broadcast 2. Respuesta al broadcast 3. Request 4. Reply 3. 4. Red Servidor Cliente Name Server 1. 2. Direccionamiento por Name Server 1. Lookup 2. NS reply 3. Request 4. Reply Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 5 Tema: Capa de Transporte Prof. Mara Feldgen 9 Laboratorio de Sistemas Distribuidos Heterogneos Primitivas de servicio de Transporte OSI IDLE Establecimiento pasivo pendiente Establecimiento activo pendiente Conectado Desconexin pasiva pendiente Desconexin activa pendiente IDLE Servidor Cliente Primitiva CONNECT REQUEST ejecutada TPDU del CONNECT REQUEST recibida TPDU del CONNECT ACCEPT recibida Primitiva CONNECT INDICATION ejecutada TPDU del DISCONNECT REQUEST recibida Primitiva DISCONNECT REQUEST ejecutada TPDU del DISCONNECT ACCEPT recibida Primitiva DISCONNECT INDICATION ejecutada Diagrama de estados de la administracin de la conexin y desconexin. Las transiciones en rojo son causadas por la llegada de un segmento. La zona en amarillo muestra el estado del servidor luego de cada interaccin. La zona en verde, la del cliente. Tema: Capa de Transporte Prof. Mara Feldgen 10 Laboratorio de Sistemas Distribuidos Heterogneos Direccionamiento en la capa de transporte OSI Proceso usuario (cliente) TSAPs 4 Transporte Proceso servidor 1 TSAPs TSAP 1243 TSAP 1888 NSAPs 3 Red 2 Enlace 1 Fsica NSAPs Proceso servidor 1 TSAP 1666 Relacin entre TSAPs y NSAPs en la conexiones de transporte Conexin de transporte Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 6 Tema: Capa de Transporte Prof. Mara Feldgen 11 Laboratorio de Sistemas Distribuidos Heterogneos Establecimiento de la conexin: Nmeros de secuencia (a) Los N de segmentos de las TPDUs no pueden estar en la regin prohibida (b) El problema de resincronizacin Grfico del libro de Tanenbaum Tema: Capa de Transporte Prof. Mara Feldgen 12 Laboratorio de Sistemas Distribuidos Heterogneos Control de Flujo y Buffering (a) Buffers de tamao fijo, encadenados. (b) Buffers de tamao variable encadenados. (c) Un buffer grande circular por conexin Espacio libre Grfico del libro de Tanenbaum Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 7 Tema: Capa de Transporte Prof. Mara Feldgen 13 Laboratorio de Sistemas Distribuidos Heterogneos RETRANSMISION ! Los mecanismos de retransmisin se conocen como: Automatic Repeat Request (ARQ): Stop and Wait ARQ Crditos (en la capa de transporte OSI) Go-Back N ARQ (en la capa transporte TCP) Selective Reject ARQ Tema: Capa de Transporte Prof. Mara Feldgen 14 Laboratorio de Sistemas Distribuidos Heterogneos 1 Establecimiento buf=8 A garantiza lugar para recibir 8 mensajes 2 Establecimiento ack buf=4 B garantiza lugar para recibir 4 mensajes 3 4 5 6 7 8 9 10 11 12 13 14 15 16 N sec=0 data =m0 N sec=1 data =m1 N sec=2 data =m2 Ack = 1 buf = 3 N sec=3 data =m3 N sec=1 data =m1 Ack = 4 buf = 2 N sec=4 data =m4 N sec=5 data =m5 Ack = 5 buf = 0 Ack = 6 buf = 1 N sec=6 data =m6 Ack = 6 buf = 0 Ack = 6 buf = 2 A puede enviar 3 mensajes mas A puede enviar 2 mensajes mas El mensaje se pierde, A puede enviar 1 mas B confirma mensaje 0, y permite el mensaje 1 a 3 A No puede enviar mas, bloqueado Timeout del mensaje 1, retransmisin B confirma mensaje 1 a 3 y permite el mensaje 4 a 5 A puede enviar 1 mas A no puede enviar mas, bloqueado B confirma mensaje 4 y permite 0 mensajes B confirma mensaje 5 y permite el mensaje 6 A no puede enviar mas, bloqueado B confirma mensaje 6 y permite 0 mensajes B confirma y se pierde: deadlock potencial
Crditos OSI y control de ujo
A Mensaje B Comentario En una transmisin de datos de un host A a un host B Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 8 Tema: Capa de Transporte Prof. Mara Feldgen 15 Laboratorio de Sistemas Distribuidos Heterogneos Tipos de redes Tasa error ACEPTABLE residual sealados ! A: CONS confiable SI SI ! B: CONS c/ errores SI NO ! C: CLNS NO NO Clases de protocolos Tipo de red ! 0 Clase simple A ! 1 Recup.bsica errores B ! 2 Clase multiplexado A ! 3 Recup. errores y Mux B ! 4 Deteccin y Recup errores C Tipos de TPDU ! CR: Connect Request ! CC: Connect Confirm ! 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. Capa de Transporte OSI Tema: Capa de Transporte Prof. Mara Feldgen 16 Laboratorio de Sistemas Distribuidos Heterogneos Capas de Transporte en TCP/IP PORT Request enviado al port y direccin de IP del servidor Reply enviado al port y direccin de IP del origen PORT (TCP/UDP) + IP Cliente Servidor ! CON CONEXIN: TCP (Transport Control Protocol) Similar a TP4 del modelo OSI ! SIN CONEXIN: UDP (User Datagram Protocolo) Modelo Cliente Servidor Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 9 Tema: Capa de Transporte Prof. Mara Feldgen 17 Laboratorio de Sistemas Distribuidos Heterogneos Host MAFALDA Socket o half association activo Socket o half association pasivo Port bien conocido Port asignado conexin Host SUSANITA (tcp, SUSANITA,1500) Cliente (tcp, * ; 21) Servidor Association (conexin): (tcp, MAFALDA,21, SUSANITA,1500) Dir local IPL+portL IPL+portL *.portL Dir remota IPR+portR *.* *.* Comportamiento del server: acepta a un solo cliente (*) acepta datagramas para IPL acepta todos los datagramas para portL Direccionamiento en TCP Tema: Capa de Transporte Prof. Mara Feldgen 18 Laboratorio de Sistemas Distribuidos Heterogneos User Datagram Protocol (UDP) ! Es un protocolo de datagramas (protocolo sin conexin). ! En cada operacin se procesa exactamente un datagrama, que se envia en un datagrama de IP. Header IP 20 bytes Header UDP (8 bytes) Datos UDP Datagrama UDP Datagrama IP RFC 768 Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 10 Tema: Capa de Transporte Prof. Mara Feldgen 19 Laboratorio de Sistemas Distribuidos Heterogneos Datagrama UDP cero Protocolo (8 bits) 17 Longitud de UDP (16 bits) Direccin de IP de origen (32 bits) Direccin de IP de destino (32 bits) Nro Port Origen (16 bits) Nro Port Destino (16 bits) Longitud de UDP (16 bits) Checksum (16 bits) Datos UDP Pseudo Header UDP Header 0 15 16 31 Tema: Capa de Transporte Prof. Mara Feldgen 20 Laboratorio de Sistemas Distribuidos Heterogneos Transport Control Protocol (TCP) ! Es un servicio con conexin, byte stream ! La conexin requiere de las tres etapas: Establecimiento de la conexin Transferencia de datos Liberacin de la conexin Header IP 20 bytes Header TCP (20 bytes) Datos TCP Segmento de TCP Datagrama IP RFC 793 Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 11 Tema: Capa de Transporte Prof. Mara Feldgen 21 Laboratorio de Sistemas Distribuidos Heterogneos Segmento TCP Nro. de ACK (32 bits) Nro de Secuencia (32 bits) Checksum (16 bits) Puntero a Urgente (16 bits) Opciones (si hay) TCP Header 0 15 16 31 Nro. de Port Origen (16 bits) Nro. de Port Destino (16 bits) Long.Header (4 bits) Reservado (6 bits) U R G A C K P S H P S T S Y N F I N Tamao ventana (16 bits) Datos Tema: Capa de Transporte Prof. Mara Feldgen 22 Laboratorio de Sistemas Distribuidos Heterogneos Establecimiento : three-way handshake ! Open Activo ! Open Pasivo ! Nde secuencia inicial ! Negociacin de MSS ! Open simultneo ! Backlog ! Timeout Liberacin : ! Half Close ! Estado 2MSL Wait ! Estados FIN_WAIT ! Close simultneo ! Timeout CONCEPTOS de TCP Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 12 Tema: Capa de Transporte Prof. Mara Feldgen 23 Laboratorio de Sistemas Distribuidos Heterogneos Establecimiento y Terminacin de una conexin TCP SYN ISNC = 1200 win = 4096 <mss = 1024> SYN ISNC = 8300 ACK = 1201 win = 4096 <mss = 1024> ACK = 8301 Terminacin: Establecimiento: segmento 1 segmento 2 segmento 3 FIN ISNC = 1201 ACK = 8301 ACK = 1202 FIN ISNC = 8301 ACK = 1202 ACK = 8302 segmento 1 segmento 2 segmento 4 segmento 3 Tema: Capa de Transporte Prof. Mara Feldgen 24 Laboratorio de Sistemas Distribuidos Heterogneos Diagrama de transicin de estados de TCP CLOSED SYN_RCVD SYN_SEND ESTABLISHED LISTEN CLOSE_WAIT LAST_ACK FIN_WAIT_1 FIN_WAIT_2 CLOSING TIME_WAIT (Comienzo) listen / (open pasivo) connect / SYN send / SYN SYN / SYN + ACK RST / SYN / SYN + ACK (open simultneo) SYN + ACK / ACK (open activo) (transf. datos) ACK / close / FIN close / FIN close / FIN (cierre simultneo) FIN / ACK FIN + ACK / ACK ACK / FIN / ACK ACK / FIN / ACK ACK / close o timeout (2MSL timeout) timeout (cierre activo) (cierre pasivo) Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 13 Tema: Capa de Transporte Prof. Mara Feldgen 25 Laboratorio de Sistemas Distribuidos Heterogneos Retransmisin en TCP: Sliding Windows ARQ ! Categoras de Transmisin: Cada una de las dos capas que estn conectadas deben controlar la cantidad de datos que envan y reciben del otro. Esto se realiza dividiendo los bytes en categoras. El transmisor debe dividir los datos enviados en categoras tal de diferenciar los datos enviados y ya confirmados de los enviados y no confirmados todava, ya que debe esperar la confirmacin (ACK) del receptor o puede ser necesario retransmitirlos. Para los datos de la capa superior que se transmitieron hay 4 categoras: 1. Transmit Category #1: Bytes Enviados y que fueron Confirmados (Acknowledged) 2. Transmit Category #2: Bytes Enviados pero que NO fueron confirmados todava (falta el ACK) 3. Transmit Category #3: Bytes que NO se enviaron todava y que el receptor esta dispuesto a acceptar (estn dentro de la ventana) 4. Transmit Category #4: Bytes que NO se enviaron todava y que estn en la siguiente ventana (el receptor NO permite an su envo) Tema: Capa de Transporte Prof. Mara Feldgen 26 Laboratorio de Sistemas Distribuidos Heterogneos Retransmisin en TCP: Sliding Windows ARQ ! Categoras de Recepcin: 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. Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 14 Tema: Capa de Transporte Prof. Mara Feldgen 27 Laboratorio de Sistemas Distribuidos Heterogneos # 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 tamao de la ventana de emisin en bytes que puede enviar sin esperar el ACK. La suma de (SND.UNA) + (SND.WND) marca el primer byte de Transmit Category #4. Sliding Windows en TCP Grfico de www.tcpipguide.com/free Tema: Capa de Transporte Prof. Mara Feldgen 28 Laboratorio de Sistemas Distribuidos Heterogneos Tipos de transferencia de datos ! Flujo de datos interactivo (Telnet y Rlogin) ! Flujo de datos masivo (Bulk data) (ftp, correo electrnico, etc) Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 15 Tema: Capa de Transporte Prof. Mara Feldgen 29 Laboratorio de Sistemas Distribuidos Heterogneos Caractersticas del ujo interactivo ! Algoritmo de Nagle ! Deshabilitacin del Algoritmo de Nagle Cliente Servidor tecla A display A A (PUSH) ack Monitor de consola procesa eco eco de A (PUSH) ack Tema: Capa de Transporte Prof. Mara Feldgen 30 Laboratorio de Sistemas Distribuidos Heterogneos Flujo de datos masivos ! Flujo de datos normal ! Retransmisin: Ventanas deslizantes (sliding window) Tamao de la ventana ! Control de congestin: Slow start: ventana del receptor (wnd) ventana de congestin (cwnd) ! Sndrome Silly Window (Clark 1982) ! Modo Urgente Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 16 Tema: Capa de Transporte Prof. Mara Feldgen 31 Laboratorio de Sistemas Distribuidos Heterogneos Comparacin TP4 - TCP ! TP4 Orientado a unidades desconexin abrupta Expedited Data ! Otras: Mltiples TPDUs Crditos Checksum (Fletcher) Retransmisin TS-Bridge(Internetworking) ! TCP Orientado a streams Graceful release Datos urgentes ! Otras: Una TPDU Ventanas deslizantes Checksum (compl. a 1) Retransm. (Jacobson) No existe Tema: Capa de Transporte Prof. Mara Feldgen 32 Laboratorio de Sistemas Distribuidos Heterogneos Tipos de servidores Iterativo SIN Conexin Iterativo CON Conexin Concurrente SIN Conexin Concurrente CON Conexin Capas de Transporte OSI y TCP 75.43 Introduccin a los Sistemas Distribuidos 75.33 Redes y Teleprocesamiento I (Prof. Mara Feldgen) 17 Tema: Capa de Transporte Prof. Mara Feldgen 33 Laboratorio de Sistemas Distribuidos Heterogneos Server Concurrente server server hijo fork Cliente Host MAFALDA Host Susanita (tcp, * ,21) (tcp, Susanita, 1500) (tcp, Mafalda, 21) Request Conexin Conexin Tema: Capa de Transporte Prof. Mara Feldgen 34 Laboratorio de Sistemas Distribuidos Heterogneos Server Concurrente Cliente Host Susanita (tcp, Susanita, 1500) server fork Host Mafalda (tcp, * ,21) server hijo (tcp, Mafalda, 21) Conexin Cliente Host Manolito (tcp, Manolito, 1500) server hijo (tcp, Mafalda, 21) Conexin Request Conexin Request Conexin