Está en la página 1de 54

Capitulo 4 Capa de Transporte

Material tomado de: CIS 81 Networking Fundamentals Rick Graziani Cabrillo College graziani@cabrillo.edu Otoo 2010

Vistazo general de la capa de Transporte

Capa de transporte
TCP UDP

Provee comunicacin lgica entre procesos de aplicaciones corriendo en diferentes hosts

Los 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
Lado Tx: divide el mensaje de la aplicacin en segmentos, y los pasa a la capa de red Lado Rx: re-ensambla los segmentos del mensaje , y lo pasa a la capa aplicacin Hay ms de un protocolo de capa de transporte disponible para las aplicaciones TCP Transmission Control Protocol (Protocolo de control de transmisin) UDP User Datagram Protocol (Protocolo de datagrama de usuario)
3

Encabezado TCP

Encabezado UDP

Como se nombra la PDU de la capa de aplicacin?

o
Como se denomina la PDU de la capa de transporte? PDU: Segmento

Application Header + data

PDU: Datos

UDP
TCP/UDP TCP/UDP

TCP

En la capa 4 se da un flujo de datos: A travs de una conexion logica entre los dispositivos finales Proporciona servicios de transporte Servicio de terminal a terminal
5

Recordatorio de encapsulacin/desencapsulacin
Data Link Header IP Header TCP Header HTTP Header

Data

Data Link Trailer

Data Link Header

IP Packet

Data Link Trailer

Data Link Header

IP Packet

Data Link Trailer

Data Link Header

IP Packet

Data Link Trailer

Data Link Header

IP Header

TCP Header

HTTP Header

Data

Data Link Trailer

Enfocarse en la capa de transporte


TCP

TCP

La capa de transporte
www.cisco.com

TCP Segment TCP Segment TCP Segment TCP Segment

Las responsabilidades principales que debe cumplir son: Dar seguimiento de la comunicacin individual entre aplicaciones Quin 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 segmento Reemsablaje de los segmentos

segmento

segmento

Cuales son los dos protocolos de la capa de transporte? TCP UDP IP es un servicio de entrega que realiza el mejor esfuerzo. Qu significa eso? No hay garantas Servicio de mejor esfuerzo Servicio no confiable TCP/UDP es responsable de extender los servicios de entrega de IP entre los dos sistemas terminales.
9

Streaming multimedia, juegos con multiples jugadores en tiempo real y Por qu debera una aplicacin usar UDP? Cul es el costo de todo esto, voz sobre IP (VoIP), son aplicaciones confiabilidad y control de flujo de TCP? que no requieren mecanismos de confiabilidad e incluso estos pueden afectarlas. TCP provides: UDP provides: Reliable delivery Unreliable delivery Error checking No error checking Flow control No flow control Congestion control No congestion control Ordered delivery No ordered delivery Connection establishment No connection establishment Applications: Aplicaciones HTTP DNS (usualmente) FTP DHCP SMTP RTP (Real-Time Protocol) Telnet VoIP MSN messenger
10

TCP vs. UDP

TCP vs. UDP

TCP proporciona: Entrega confiable Chequeo de errores Control de flujo Control de congestion Entrega ordenada (Establece conexin) Applicaciones: HTTP FTP Telnet MSN messenger

UDP: No proporciona entrega confiable No proporciona chequeo de errores No proporciona control de flujo No proporciona control de congestion No proporciona entrega ordenada (No establece conexin) Aplicaciones DNS (usualmente) SMTP RTP (Real-Time Protocol) VoIP
11

HTTP

HTTP SMTP FTP Servidor WEB de la UNI TCP TCP TCP TCP TCP UDP TCP UDP

Servidor de Email del ISP servidor FTP

Un simple cliente puede tener multiples conexiones de la capa de transporte con multiples. 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) . (Posteriormente)

12

Numeros de puertos: TCP y UDP

Tanto TCP como UDP usan numeros de puertos (o sockets) para pasar informacin a las capas superiores
14

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

Application Header + data

15

16

http://www.iana.org/assignments/port-numbers

La Agencia de Asignacin de Nmeros de Internet(IANA) asigna los numeros puertos.


17

Puertos bien conocidos (Nmeros del 0 al 1 023): estos nmeros se reservan para servicios y aplicaciones. Por lo general, se utilizan para aplicaciones como HTTP (servidor Web), POP3/SMTP (servidor de e-mail) y Telnet. 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.

18

Puertos Registrados (Nmeros 1024 al 49151): Son asignados a procesos o aplicaciones del usuario. Estos procesos son principalmente aplicaciones individuales que el usuario elige instalar en lugar de aplicaciones comunes que recibira un puerto bien conocido. Cuando no se utilizan para un recurso del servidor, estos puertos tambin pueden utilizarse si un usuario los selecciona de manera dinmica como puerto de origen.

19

Puertos dinmicos o privados (Nmeros del 49 152 al 65 535): Tambin conocidos como puertos efmeros, Suelen asignarse de manera dinmica a aplicaciones de cliente cuando se inicia una conexin. Cliente: Puerto de origen TCP 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).

20

Cliente

Servidor

Telnet

21

Encabezado TCP del cliente


23 1028

Data for Telnet

Cliente

Servidor

El cliente envia el segmento TCP con: Puerto de destino 23 (Numero de puerto bien conocido) Puerto de origen: 1028 (Numero de puerto dinamico asignado por el cliente)

22

Encabezado TCP del Servidor


23 1028

Data for Telnet

Cliente

Servidor

El servidor responde con un segmento TCP con: Puerto de destino 1028 (Numero de puerto dinamico asignado por el cliente) Puerto de origen: 23 (Numero de puerto bien conocido)

23

Cliente

Servidor

Note la diferencia en como los numeros 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 (dinamicamente asignado) Servidor (respodndiendo al servicio Telnet): Puerto de destino= 1028 (dinamicamente asignado) Puerto de origen= 23 (telnet)
24

49888

49890

El mismo cliente a al mismo servidor - Dos sesiones diferentes HTTP. Cliente: Usa el mismo numero puerto de destino Cliente: Usa diferente puerto de origen unicamente para identificar cada sesion web.

25

49888

49890

C:\Users\rigrazia>netstat -n Active Connections

Puerto de origen

Puerto de destino

Estado de la conexin

TCP o
UDP

Proto TCP TCP

Local Address 192.168.1.101:49888 192.168.1.101:49890

Foreign Address 198.133.219.25:80 198.133.219.25:80

State TIME_WAIT TIME_WAIT

C:\Users\rigrazia>

IP de origen

IP de destino
26

192.168.1.101

Puerto de origen 49888 49890

Puerto de destino
80 80 80

198.133.219.25

172.16.5.5

Puerto de origen 49888

www.cisco.com

Que hace a cada conexin unica? La conexin es definida por un par de numeros: Direccin IP de origen, Puerto de origen Direccin IP de destino, Puerto de destino Diferentes 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.. 27

TCP o UDP

Estado de la conexin IP de origen IP de destino Puerto de origen Puerto de destino

www.google.com

www.cisco.com

netstat n

Nota: cuando descarga un documento web y sus objetos es comun que habra varias sesiones TCP creadas.
28

Transporte sin conexin: UDP

UDP

Sin adornos, protocolo de transporte liviano. Puertos de origen y destino Longitud y checksum (usado para el chequeo de error) RFC 76 No orientado a conexin No handshaking (No establece conexin) como TCP (proximamente) No proporciona entrega confiable No proporciona chequeo de errores No proporciona control de flujo No proporciona control de congestion No proporciona entrega ordenada

30

UDP

Puerto de origen especifican el puerto de la aplicacin que genera el mensaje Puerto de destino -- especifican el puerto de la aplicacin que recibe el mensaje Longitud -- Indica la longitud del mensaje, incluyendo los campos de encabezado checksum -- 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 emisor datos -- contiene los datos a transmitir

31

UDP

Porque un desarrollador de una aplicacin escoge UDP en vez de TCP? Control de la capa de aplicacin menor TCP continuara enviando segmentos que no son reconozidos. Las aplicaciones que usan UDP pueden tolerar perdidas de datos: Streaming video (video simultaneo) VoIP (Voice sobre IP) La aplicacin decide si o no reenvia el archivo completo: TFTP

32

UDP

Cliente

Servidor

Tiempo

No establece conexin TCP usa un intercambio de seales de tres vas para establecer una conexin (prximamente) UDP no lo hace Solo envia los datos lejos del emisor. No existen retrasos para establecer conexin.
33

UDP

Cliente

Servidor

Tiempo

No mantiene estado de la conexin UDP no mantiene estado de la conecin como lo hace TCP (prximamente) El estado de la conexin es usado para brindar confiabilidad y control de flujo. Los servidores pueden soportar muchos clientes activos cuando no mantiene iformacion de estado Incremento en el encabezado es pequea TCP tiene un encabezado 20 bytes de incremento. UDP solo tiene un encabezado 8 bytes de incremento.

34

UDP

Nota: UDP y aplicaciones de multimedia Existe un asunto (controversial) con aplicaciones multimedia sobre UDP. UDP no ofrece control de congestion (con veremos con TCP) El control de congestion es necesario para prevenir a la red en caer y permanecer en un estado de congestin. Si todas las aplicaciones usaran UDP, debido a la congestion, muy pocos paquetes UDP serian entregados y esto tambien causaria que la tasa de trafico TCP decreciera dramaticamente. Muchas aplicaciones dan las opciones de escoger TCP o UDP.
35

Checksum UDP (FYI)

Cliente

Servidor

Time

Suma acumulativa: 1100101011001010 Complemento 1s : 0011010100110101

Total:

1111111111111111

El checksum UDP proporciona deteccion de errores, por cualquier cambio de bits o perdida de segmento. Explicacion simplificada (vea RFC 1071 para mas detalles): Emisor UDP agrega 16 bit de palabra manteniendo una suma acumulativa Realiza el complemento a unos de la suma de los bits de palabra en el segmento. Convertir 0s a 1s y 1s a 0s El resultado es puesto en el campo del checksum del segmento UDP. Receptor UDP agrega 16 bit de palabra manteniendo una suma acumulativa Agrega 1s (unos) al complemento Si no hay errores en el segmento, entonces el Total que el receptor recibira sera 1111111111111111.

36

Checksum UDP (FYI)

Cliente

Servidor

Time

Suma acumulativa: 1100101011001010 Complemento 1s : 0011010100110101

Total:

1111111111111111

Cuando hay un error? UDP no hace nada para recuperar el error. Son los protocolos de la capa de aplicacin (ejemplo TFTP) los que deciden que hacer, tal como instigar al usuario descargar/subir el archivo completo nuevamente.

37

38

Transporte orientado a la conexin: TCP

TCP

TCP proporciona entrega confiable encima del no confiable IP TCP proporciona: Entrega confiable Chequeo de errores Control de flujo Control de congestion Entrega ordenada (Establece conexin)
40

TCP

Puerto de origen Sesin TCP en el dispositivo que abrio una conexin. # aleatorio > a 1023 Puerto de destino identifica el protocolo de la capa suprerior o la aplicacion del sitio remoto Numero de secuencia especifica el numero del ultimo octeto (byte) en un segmento Numero de acuse de recibo especifia el proximo octeto esperado por el receptor HLEN especifica la longitud del encabezado del segmento en byte reservado puesto en 0 Bits de codigo utilizado en la administracion de sesiones y el tratamiento de segmentos Ventana el numero de octetos que el emisor espera aceptar checksum utilizado para la verificacion de errores del encabezado y el campo de datos Urgente utilizado unicamente con una sealizacion URG opciones por el momento define: el maximo tamao del segmento TCP datos datos de aplicacion 41

Establecimiento de la conexin TCP


0 16-bit Source Port Number 15 16 31 16-bit Destination Port Number 32-bit Sequence Number

32 bit Acknowledgement Number 4-bit Header Length 6-bit (Reserved)


U A P R S F R C S S Y I G K H T N N

16-bit Window Size

16-bit TCP Checksum

16-bit Urgent Pointer

Options (if any)

Data (if any)

Para que una conexin sea establecida, las dos estaciones terminales deben sincronizarse usando un nmero de secuencia inicial (ISN), TCP. Numeros de secuencias: Rastrea el orden de los segmentos Asegura 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 y se utiliza para comenzar a rastrear el flujo de datos desde el cliente al servidor para esta sesin. El intercambio de numeros de secuencia inicia durante el proceso de conexin para asegurar que los datos perdidos puedan ser recuperados.

42

Protocolo TCP de enlace de tres vas


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).

Paso 1 Un 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.
43

Protocolo TCP de enlace de tres vas

Paso 2 El 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.

44

Protocolo TCP de enlace de tres vas

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.
45

Paso 1: El cliente envia su ISN, SEQ=8563 (ultimos 4 digitos)

46

Paso 2: El servidor responde con un ACK=8564, y su ISN, SEQ=1678

47

Paso 3: El cliente envia ACK=1679

48

Client now sends HTTP Request (GET) to Web Server

49

Cerrando la sesin TCP

1. 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.

50

Control de flujo y confiabilidad

Confiabilidad Garantiza la entrega- Asegurando que todos los datos sean recibidos. Si hay perdidas de datos, se determina el byte que debe ser retransmitido. Control de flujo Cada host tiene un buffer receptor para la conexion TCP. El control de flujo asegura que estos buffres no reciban mas datos que los que pueda manejar la conexion.
51

0 16-bit Source Port Number

15 16

31 16-bit Destination Port Number

32-bit Sequence Number

32 bit Acknowledgement Number 4-bit Header Length 6-bit (Reserved)


U A P R S F R C S S Y I G K H T N N

16-bit Window Size

16-bit TCP Checksum

16-bit Urgent Pointer

Options (if any)

Data (if any)

Control de flujo y confiabilidad


Para 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. 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 vas TCP es un servicio de full dplex, el cliente y el servidor deben especificar el 52 tamao de sus propia ventana

TCP/IP Illustrated, Vol. 1 W. Richard Stevens Addison-Wesley Pub Co ISBN: 0201633469 Although, published in 1994, written by the late Richard Stevens, it is still regarded as the definitive book on TCP/IP.

Computer Networking James Kurose and Keith Ross ISBN 0321227352

University level text book Variety of networking topics. An excellent extension to CIS 81 material

53

Capitulo 4 Capa de Transporte


CIS 81 Networking Fundamentals Rick Graziani Cabrillo College graziani@cabrillo.edu Last Updated: 3/2/2008

También podría gustarte