Clase 5 y 6 - Capa de Transporte

51
Redes Computadoras Ing. Carlos Ortega H. 1 Universidad Nacional de Ingenieria Redes de Computadoras Unidad II: Capa de Transporte. Comunicación y Reensamble de Información

description

Clase sobre redes de computadoras, de la capa de transporte, para los interesados en aprender un poco mas del mundo de las redes (y)

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)