Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Material tomado de: CIS 81 Networking Fundamentals Rick Graziani Cabrillo College graziani@cabrillo.edu Otoo 2010
Capa de transporte
TCP UDP
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
o
Como se denomina la PDU de la capa de transporte? PDU: Segmento
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
IP Packet
IP Packet
IP Packet
IP Header
TCP Header
HTTP Header
Data
TCP
La capa de transporte
www.cisco.com
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 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
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
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
Los numeros de puertos son usados para conocer a que aplicacin del host receptor se le enviaran los datos
15
16
http://www.iana.org/assignments/port-numbers
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
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
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
Puerto de origen
Puerto de destino
Estado de la conexin
TCP o
UDP
C:\Users\rigrazia>
IP de origen
IP de destino
26
192.168.1.101
Puerto de destino
80 80 80
198.133.219.25
172.16.5.5
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
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
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
Cliente
Servidor
Time
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
Cliente
Servidor
Time
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
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
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
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
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
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
46
47
48
49
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
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
15 16
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.
University level text book Variety of networking topics. An excellent extension to CIS 81 material
53