Clase 5 y 6 - Capa de Transporte
description
Transcript of Clase 5 y 6 - Capa de Transporte
Slide 1
Redes Computadoras Ing. Carlos Ortega H.1Universidad Nacional de IngenieriaRedes de Computadoras
Unidad II: Capa de Transporte.Comunicacin y Reensamble de Informacin
Capa de TransporteTx: divide el mensaje de la aplicacin en segmentos, y los pasa a la capa de red.Rx: re-ensambla los segmentos del mensaje y los pasa a la capa aplicacin
TCP UDP
Provee comunicacin lgica entre procesos de aplicaciones corriendo en diferentes hostsLos protocolos de la capa transporte corren en sistemas terminales (computadores, no equipos internos como routers). Brindan un servicio que algunas veces se denomina servicio de terminal a terminal Redes Computadoras Ing. Carlos Ortega H.2
UDPTCP
TCP/UDPTCP/UDPEn la capa 4 se da un flujo de datos:A travs de una conexin lgica entre los dispositivos finalesProporciona servicios de transporteServicio de terminal a terminalRedes Computadoras Ing. Carlos Ortega H.3TCP Transmission Control ProtocolUDP User Datagram ProtocolProtocolos en la Capa de Transporte
Application Header + data
Encabezado TCP
Encabezado UDP
PDU: SegmentoPDU: DatosComo se nombra la PDU de la capa de aplicacin?Como se denomina la PDU de la capa de transporte? Redes Computadoras Ing. Carlos Ortega H.4Encabezados en la Capa de Transporte
4
Enfocarse en la capa de transporte
TCPTCP
5Redes Computadoras Ing. Carlos Ortega H.
La Capa de TransporteLas responsabilidades principales que debe cumplir son:Dar seguimiento de la comunicacin individual entre aplicacionesQuin es el cliente? Cul es la aplicacin? Cul es el proceso?Identificar las diferentes aplicaciones (HTTP, FTP, etc.)Segmentacin de datos Tener control de cada segmentoReensamblaje de los segmentos
www.cisco.com
TCP SegmentTCP Segment6Redes Computadoras Ing. Carlos Ortega H.
6
IP es un servicio de entrega que realiza el mejor esfuerzo. Qu significa eso?No hay garantasServicio no confiableTCP/UDP es responsable de extender los servicios de entrega de IP entre los dos sistemas terminales.
segmentosegmento
7Redes Computadoras Ing. Carlos Ortega H.Capa de Transporte
7
TCP vs. UDPTCP provee:Entrega ConfiableChequeo de erroresControl de FlujoControl de CongestinEntrega OrdenadaEstablecimiento de ConexinAplicaciones:HTTPSMTPFTPTelnetMSN messengerUDP provee:Entrega no ConfiableNo chequea erroresSin Control de FlujoSin control de CongestionamientoSin orden de entregaNo existe Establecimiento de la conexin.AplicacionesDNS (usualmente)DHCP RTP (Real-Time Protocol)VoIP
Por qu debera una aplicacin usar UDP? Cul es el costo de todo esto, confiabilidad y control de flujo de TCP? Streaming multimedia, juegos con mltiples usuarios en tiempo real y voz sobre IP (VoIP), son aplicaciones que no requieren mecanismos de confiabilidad e incluso estos pueden afectarlas.
8Redes Computadoras Ing. Carlos Ortega H.
8
TCP vs. UDP9Redes Computadoras Ing. Carlos Ortega H.
Un simple cliente puede tener mltiples conexiones de la capa de transporte con mltiples.Note que TCP es un servicio orientado a conexin (flechas en ambos sentidos) entre los host, mientras que UDP es un servicio no orientado a conexin (flechas en un solo sentido).10
TCPTCPTCP
TCPTCPTCP
HTTPHTTPFTPUDP
SMTPUDPServidor WEB de la UNIServidor de Email del ISP servidor FTP
Tanto TCP como UDP usan nmeros de puertos (o sockets) para pasar informacin a las capas superiores
Nmeros de Puertos TCP y UDP11Redes Computadoras Ing. Carlos Ortega H.
11
12
Application Header + data
Los numeros de puertos son usados para conocer a que aplicacin del host receptor se le enviaran los datos
Application Header + data
Los numeros de puertos son usados para conocer a que aplicacin del host receptor se le enviaran los datos
12
Nmeros de Puertos TCP y UDP
13Redes Computadoras Ing. Carlos Ortega H.
http://www.iana.org/assignments/port-numbersLa Agencia de Asignacin de Nmeros de Internet(IANA) asigna los nmeros puertos.
14Redes Computadoras Ing. Carlos Ortega H.
Puertos bien conocidos (Nmeros del 0 al 1023): estos nmeros se reservan para servicios y aplicaciones. Al definir estos puertos conocidos para las aplicaciones del servidor, las aplicaciones del cliente pueden ser programadas para solicitar una conexin a un puerto especfico y su servicio asociado.
15Redes Computadoras Ing. Carlos Ortega H.
15
Puertos Registrados (Nmeros 1024 al 49151): Son asignados a procesos o aplicaciones del usuario. Son principalmente aplicaciones individuales que el usuario elige instalar en lugar de aplicaciones comunes que recibira un puerto bien conocido.
16Redes Computadoras Ing. Carlos Ortega H.
16
Puertos dinmicos o privados (Nmeros del 49152 al 65535): Tambin conocidos como puertos efmeros. Suelen asignarse de manera dinmica a aplicaciones de cliente cuando se inicia una conexin. No es muy comn que un cliente se conecte a un servicio utilizando un puerto dinmico o privado (aunque algunos programas que comparten archivos punto a punto lo hacen).
17Redes Computadoras Ing. Carlos Ortega H.
ClienteServidorTelnet18
El cliente enva el segmento TCP con: Puerto de destino 23 (Nmero de puerto bien conocido)Puerto de origen: 1028 (Nmero de puerto dinmico asignado por el cliente)19
231028
Data for TelnetClienteServidor
Encabezado TCP del Cliente
19Redes Computadoras Ing. Carlos Ortega H.
19
El servidor responde con un segmento TCP con: Puerto de destino 1028 (Numero de puerto dinmico asignado por el cliente)Puerto de origen: 23 (Numero de puerto bien conocido)
ClienteServidor
102823Data for Telnet
Encabezado TCP del Servidor
20Redes Computadoras Ing. Carlos Ortega H.
20
Note la diferencia en como los nmeros de puertos de origen y destino son usados por el cliente y el servidor:Cliente (Iniciando el servicio Telnet):Puerto de destino= 23 (telnet)Puerto de origen= 1028 (dinmicamente asignado)Servidor (respondiendo al servicio Telnet):Puerto de destino= 1028 (dinmicamente asignado)Puerto de origen= 23 (telnet)
ClienteServidor
21Redes Computadoras Ing. Carlos Ortega H.
21
Cliente: Usa el mismo numero puerto de destinoCliente: Usa diferente puerto de origen nicamente para identificar cada sesin web.
4989049888
22Redes Computadoras Ing. Carlos Ortega H.
C:\Users\rigrazia>netstat -nActive Connections Proto Local Address Foreign Address State TCP 192.168.1.101:49888 198.133.219.25:80 TIME_WAIT TCP 192.168.1.101:49890 198.133.219.25:80 TIME_WAITC:\Users\rigrazia>
TCP oUDP
Puerto de origen
IP de destino
Puerto de destino
Estado de la conexinIP de origen
4989049888
23Redes Computadoras Ing. Carlos Ortega H.
Que hace a cada conexin nica?La conexin es definida por un par de nmeros:Direccin IP de origen, Puerto de origenDireccin IP de destino, Puerto de destinoDiferentes conexiones pueden usar el mismo puerto de destino en el mismo servidor siempre y cuando el puerto de origen o direccin IP de origen sean diferentes.
192.168.1.101172.16.5.5
Puerto de destino808080Puerto de origen4989049888Puerto de origen198.133.219.2549888
www.cisco.com24Redes Computadoras Ing. Carlos Ortega H.
Nota: cuando descarga un documento web y sus objetos es comn que habr varias sesiones TCP creadas. netstat n
www.cisco.comwww.google.com
TCP o UDP
Puerto de origen
IP de destino
Puerto de destino
Estado de la conexinIP de origen
25Redes Computadoras Ing. Carlos Ortega H.
25
Transporte sin conexin: UDP
26
UDPSin adornos, protocolo de transporte liviano (RFC 768)Puertos de origen y destinoLongitud y checksum (usado para el chequeo de error)No orientado a conexin No handshaking (No establece conexin) como TCP No proporciona entrega confiableNo proporciona chequeo de erroresNo proporciona control de flujoNo proporciona control de congestinNo proporciona entrega ordenada
27Redes Computadoras Ing. Carlos Ortega H.
Puerto de origenPuerto de destino Longitud -- Indica la longitud del mensaje, incluyendo los campos de encabezadochecksum -- Su uso es opcional en IPv4 y obligatorio en IPv6, ya que en ese caso se ha suprimido el checksum a nivel de red. Cuando se enva informacin en tiempo real su uso puede omitirse. Si la verificacin del checksum en el receptor arroja un error, el mensaje es descartado sin notificarlo al nivel de aplicacin ni al emisordatos -- contiene los datos a transmitir
28Redes Computadoras Ing. Carlos Ortega H.UDP
Porque un desarrollador de una aplicacin escoge UDP en vez de TCP?Control de la capa de aplicacin menorTCP continuar enviando segmentos que no son reconocidos.Las aplicaciones que usan UDP pueden tolerar prdidas de datos:Streaming video (video simultaneo)VoIP (Voice sobre IP) La aplicacin decide si o no reenva el archivo completo: TFTP
29Redes Computadoras Ing. Carlos Ortega H.
No establece conexinTCP usa un intercambio de seales de tres vas para establecer una conexin UDP no lo hace Solo enva los datos lejos del emisor.No existen retrasos para establecer conexin.
Tiempo
Datagrama UDP
ClienteServidor
Datagrama UDPDatagrama UDPDatagrama UDP30Redes Computadoras Ing. Carlos Ortega H.
No mantiene estado de la conexinUDP no mantiene estado de la conexin como lo hace TCP El estado de la conexin es usado para brindar confiabilidad y control de flujo.Los servidores pueden soportar muchos clientes activos cuando no mantiene informacin de estadoIncremento en el encabezado es pequeaTCP tiene un encabezado 20 bytes de incremento.UDP solo tiene un encabezado 8 bytes de incremento.
Tiempo
Datagrama UDP
ClienteServidor
Datagrama UDPDatagrama UDPDatagrama UDP31Redes Computadoras Ing. Carlos Ortega H.
Existe un asunto (controversial) con aplicaciones multimedia sobre UDP.UDP no ofrece control de congestin (como veremos con TCP)El control de congestin es necesario para prevenir que la red entre y permanezca en un estado de congestin.Si todas las aplicaciones usaran UDP, debido a la congestin, muy pocos paquetes UDP serian entregados y esto tambin causara que la tasa de trafico TCP decreciera dramticamente.
UDP y Aplicaciones Multimedias32Redes Computadoras Ing. Carlos Ortega H.
33
33
Transporte orientado a la conexin: TCP
34
TCP proporciona entrega confiable encima del no confiable IPTCP proporciona:Entrega confiableControl de congestinChequeo de erroresEntrega ordenadaControl de flujo(Establece conexin)TCP35Redes Computadoras Ing. Carlos Ortega H.
Puerto de origenDispositivo que abri una conexin. # aleatorio > a 1023Puerto de destino identifica el protocolo de la capa superior o la aplicacin del sitio remotoNumero de secuencia especifica el numero del ultimo octeto (byte) en un segmentoNumero de acuse de recibo especifica el prximo octeto esperado por el receptorHLEN especifica la longitud del encabezado del segmento en bytereservado puesto en 0 36Redes Computadoras Ing. Carlos Ortega H.Segmento TCP
Bits de cdigo utilizado en la administracin de sesiones y el tratamiento de segmentosVentana el nmero de octetos que el emisor espera aceptarchecksum utilizado para la verificacin de errores del encabezado y el campo de datos Urgente utilizado nicamente con una sealizacin URGopciones por el momento define: el mximo tamao del segmento TCPdatos datos de aplicacin
37Redes Computadoras Ing. Carlos Ortega H.Segmento TCP
Establecimiento de la conexin TCPPara que una conexin sea establecida, las dos terminales deben sincronizarse usando un nmero de secuencia inicial (ISN), TCP. Nmeros de secuencias:Rastrea el orden de los segmentosAsegura que no se pierdan los paquetes en la transmisin. El valor inicial para el nmero de secuencia, conocido como ISN, se elige de manera aleatoria.
38Redes Computadoras Ing. Carlos Ortega H.
Enlace de tres vasPaso 1Un cliente TCP comienza el enlace de tres vas enviando un segmento con el sealizador de control SYN (Sincronizar nmeros de secuencia) establecido, indicando un valor inicial en el campo de nmero de secuencia del encabezado. El nmero de secuencia, conocido como nmero de secuencia inicial (ISN), se elige de manera aleatoria y se utiliza para comenzar a rastrear el flujo de datos desde el cliente al servidor para esta sesin.
Nota: Los nmeros de secuencia no comienzan en el cero. Por qu se procede as? Uno de los motivos es para evitar conflictos: supongamos que la conexin en un ordenador se interrumpe nada ms empezar y se crea una nueva. Si ambas han empezado en el cero es posible que el receptor entienda que la segunda conexin es una continuacin de la primera (si utilizan los mismos puertos).39Redes Computadoras Ing. Carlos Ortega H.
Paso 2El servidor TCP necesita reconocer la recepcin del segmento SYN :El servidor enva un segmento al cliente con:El sealizador ACK establecido indicando que el nmero de acuse de recibo es significativo.El valor del nmero de campo del acuse de recibo es igual al nmero de secuencia inicial del cliente ms 1.El valor es uno mayor que el nmero de secuencia porque el ACK es siempre el prximo Byte u Octeto esperado.Un sealizador SYN de la misma manera en que lo hizo el cliente. Establece el sealizador de control SYN en el encabezado para establecer una sesin del servidor al cliente.
Enlace de tres vas
40Redes Computadoras Ing. Carlos Ortega H.
Paso 3:El cliente TCP responde con un segmento que contiene un ACK que acta como respuesta al SYN de TCP enviado por el servidor. El valor del campo nmero de acuse de recibo contiene uno ms que el nmero de secuencia inicial recibido del servidor.. Una vez establecidas ambas sesiones entre el cliente y el servidor, todos los segmentos adicionales que se intercambien en la comunicacin tendrn establecido el sealizador ACK.
Enlace de tres vas41Redes Computadoras Ing. Carlos Ortega H.
Paso 1: El cliente envia su ISN, SEQ=8563 (ultimos 4 digitos)42
Paso 2: El servidor responde con un ACK=8564, y su ISN, SEQ=167843
Paso 3: El cliente envia ACK=167944
Ahora el Cliente enva solicitudes HTTP (GET) al Servidor Web45
Fin de la sesin TCP1. Cuando el cliente no tiene ms datos para enviar al stream, enva un segmento con el sealizador FIN establecido.2.El servidor enva un ACK para acusar recibo de FIN y terminar la sesin del cliente al servidor.3. El servidor enva un FIN al cliente para finalizar la sesin del servidor al cliente.4. El cliente responde con un ACK para dar acuse de recibo de FIN desde el servidor.46Redes Computadoras Ing. Carlos Ortega H.
Control de flujo y confiabilidadConfiabilidadGarantiza la entrega- Asegurando que todos los datos sean recibidos.Si hay perdidas de datos, se determina el byte que debe ser retransmitido.Control de flujoCada host tiene un buffer receptor para la conexin TCP.El control de flujo asegura que estos bufferes no reciban mas datos que los que pueda manejar la conexin.47
Client Window Size=5,000Server Window Size=10,000Control de flujo y confiabilidadPara gobernar el flujo de datos entre dispositivos, TCP utiliza un mecanismo de control de flujo de igual a igual. La capa TCP del host emisor informa de un tamao de la ventana a la capa TCP del host de receptor.Este tamao de la ventana especifica el nmero de bytes, empezando por el nmero de reconocimiento, que la capa de host de recepcin de TCP est preparado para recibir.48Redes Computadoras Ing. Carlos Ortega H.
El tamao de la ventana est incluido en todos los segmentos TCP enviados desde el cliente o el servidor en el intercambio de seales tres vasTCP es un servicio de full dplex, el cliente y el servidor deben especificar el tamao de sus propia ventana
Client Window Size=5,000Server Window Size=10,000Control de flujo y confiabilidad49Redes Computadoras Ing. Carlos Ortega H.
Si se pierden segmentos debido a la saturacin, el receptor acusara recibo del ultimo segmento secuencial recibido y responder con un tamao de ventana reducido.Reduccin del tamao de la ventana50Redes Computadoras Ing. Carlos Ortega H.
Muchas Graciaspor su AtencinRedes Computadoras Ing. Carlos Ortega H.51
0151631
16-bit Source Port Number
16-bit Destination Port Number
32-bit Sequence Number
32 bit Acknowledgement Number
4-bit Header Length6-bit
(Reserved)
URGACKPSHRSTSYNFIN16-bit Window Size
16-bit TCP Checksum
16-bit Urgent Pointer
Options (if any)
Data (if any)
0151631
16-bit Source Port Number
16-bit Destination Port Number
32-bit Sequence Number
32 bit Acknowledgement Number
4-bit Header Length6-bit
(Reserved)
URGACKPSHRSTSYNFIN16-bit Window Size
16-bit TCP Checksum
16-bit Urgent Pointer
Options (if any)
Data (if any)
0151631
16-bit Source Port Number
16-bit Destination Port Number
32-bit Sequence Number
32 bit Acknowledgement Number
4-bit Header Length6-bit
(Reserved)
URGACKPSHRSTSYNFIN16-bit Window Size
16-bit TCP Checksum
16-bit Urgent Pointer
Options (if any)
Data (if any)