Capa de transporte Capa de transporte Los protocolos

  • Slides: 19
Download presentation
Capa de transporte

Capa de transporte

Capa de transporte • Los protocolos de capa de transporte proveen comunicaciones lógicas entre

Capa de transporte • Los protocolos de capa de transporte proveen comunicaciones lógicas entre aplicaciones ejecutándose en diferentes hosts. • Existen dos protocolos principales – TCP (TANSMISSION CONTROL PROTOCOL) – UDP (USER DATAGRAM PROTOCOL)

Relación con las capas vecinas

Relación con las capas vecinas

Servicios Proporcionados a las Capas Superiores • Ofrece servicios especiales que no están en

Servicios Proporcionados a las Capas Superiores • Ofrece servicios especiales que no están en la capa de red. • Proporciona primitivas independientes de la capa de red. • Aísla las capas superiores de la tecnología, el diseño y las imperfecciones de la subred. • Se pueden tener servicios orientados a conexiones (confiable) o sin conexiones.

Servicios de transporte y protocolos • Provee comunicación lógica entre aplicaciones corriendo en diferentes

Servicios de transporte y protocolos • Provee comunicación lógica entre aplicaciones corriendo en diferentes máquinas • Los protocolos de transporte sólo corren en los sistemas finales • Lado emisor: divide el mensaje de la aplicación en segmentos y los pasa a la capa de red • Lado receptor: reensambla los segmentos en forma de mensajes y los pasa a la capa de aplicación • U Se cuenta con más de un protocolo de transporte disponible para las aplicaciones en Internet • TCP y UDP

IDENTIFICACION DE CONVERSACIONES • • Existen distintos tipos de números de puerto: Puertos bien

IDENTIFICACION DE CONVERSACIONES • • Existen distintos tipos de números de puerto: Puertos bien conocidos (Números del 0 al 1 023): estos números se reservan para servicios y aplicaciones. Por lo general, se utilizan para aplicaciones como HTTP (servidor Web), POP 3/SMTP (servidor de email) y Telnet. Al definir estos puertos conocidos para las aplicaciones del servidor, las aplicaciones del cliente pueden ser programadas para solicitar una conexión a un puerto específico y su servicio asociado. Puertos Registrados (Números 1024 al 49151): estos números de puertos están asignados a procesos o aplicaciones del usuario. Estos procesos son principalmente aplicaciones individuales que el usuario elige instalar en lugar de aplicaciones comunes que recibiría un puerto bien conocido. Cuando no se utilizan para un recurso del servidor, estos puertos también pueden utilizarse si un usuario los selecciona de manera dinámica como puerto de origen. Puertos dinámicos o privados (Números del 49 152 al 65 535): también conocidos como puertos efímeros, suelen asignarse de manera dinámica a aplicaciones de cliente cuando se inicia una conexión. No es muy común que un cliente se conecte a un servicio utilizando un puerto dinámico o privado (aunque algunos programas que comparten archivos punto a punto lo hacen)

Multiplexación y demultiplexación • Pueden existir varias aplicaciones o servicios ejecutándose en cada host

Multiplexación y demultiplexación • Pueden existir varias aplicaciones o servicios ejecutándose en cada host de la red. A cada una de estas aplicaciones o servicios se les asigna una dirección conocida como puerto para que la capa de Transporte pueda determinar con qué aplicación o servicio se identifican los datos. Además de utilizar la información contenida en los encabezados para las funciones básicas de segmentación y reensamblaje de datos, algunos protocolos de la capa de Transporte proveen: • Conversaciones orientadas a la conexión • Entrega confiable • Reconstrucción ordenada de datos • Control del flujo

Multiplexación y demultiplexación

Multiplexación y demultiplexación

UDP (USER DATAGRAM PROTOCOL) • Protocolo de transporte muy ligero! • Servicio con filosofía

UDP (USER DATAGRAM PROTOCOL) • Protocolo de transporte muy ligero! • Servicio con filosofía del “mejor esfuerzo”. Los segmentos UDP pudieran: – perderse – Llegar en desorden a la aplicación • sin conexión refiere a: – No hay previo acuerdo (handshaking) entre emisor y receptor • Cada segmento UDP es manejado sin considerar a los demás

¿Porqué usar UDP? • No pierde tiempo en establecer una conexión • Es simple:

¿Porqué usar UDP? • No pierde tiempo en establecer una conexión • Es simple: no se mantiene un estado de la conexión en el emisor ni el receptor • Cabecera muy pequeña (igual a menos carga) • No hay control de congestión: con lo cual se pueden emitir paquetes tan rápido como los requiera la aplicación.

UDP • U Es muy popular en aplicaciones multimedia, las cuales son: • Tolerantes

UDP • U Es muy popular en aplicaciones multimedia, las cuales son: • Tolerantes a pérdidas • Sensibles a la tasa de transferencia • Otros usos de UDP – DNS – SNMP • Si queremos dar confiabilidad de transmisión utilizando UDP, tenemos que hacer lo que corresponda en la capa de aplicación • Recuperación de errores específicos de la aplicación.

ESTRUCTURA DEL DATAGRAMA

ESTRUCTURA DEL DATAGRAMA

TCP (TRANSMISSION CONTROL PROTOCOL) • • Punto a punto Fiable. Esquema de control de

TCP (TRANSMISSION CONTROL PROTOCOL) • • Punto a punto Fiable. Esquema de control de congestión y flujo. Datos en full-duplex. – Flujo de datos en forma bidireccional en la misma conexión – MSS (maximum segment size) • Orientado a conexión • Flujo controlado. El emisor no saturara al receptor

TCP

TCP

CAMPOS TCP • Puerto origen (16 bits): Identifica el puerto emisor. • Puerto destino

CAMPOS TCP • Puerto origen (16 bits): Identifica el puerto emisor. • Puerto destino (16 bits): Identifica el puerto receptor. • Estos dos valores identifican la aplicación receptora y la emisora, junto con las direcciones IP del emisor y receptor identifican de forma unívoca cada conexión. La combinación de una dirección IP y un puerto es llamado socket. Es el par de sockets (dirección IP + puerto del emisor y dirección IP+ puerto del receptor) emisor y receptor el que especifica los dos puntos finales que unívocamente se corresponden con cada conexión TCP en internet. • Número de secuencia (32 bits): Identifica el byte del flujo de datos enviado por el emisor TCP al receptor TCP que representa el primer byte de datos del segmento. • Número de acuse de recibo (32 bits): Contiene el valor del siguiente número de secuencia que el emisor del segmento espera recibir.

 • • • Longitud de cabecera (4 bits): especifica el tamaño de la

• • • Longitud de cabecera (4 bits): especifica el tamaño de la cabecera en palabras de 32 bits. Flags (9 bits): NS (1 bit): ECN-nonce concealment protection. Para proteger frente a paquetes accidentales o maliciosos que se aprovechan del control de congestión para ganar ancho de banda de la red. CWR (1 bit): Congestion Window Reduced. El flag se activa por el host emisor para indicar que ha recibido un segmento TCP con el flag ECE activado y ha respondido con el mecanismo de control de congestión. ECE (1 bit): Para dar indicaciones sobre congestión. URG (1 bit): Indica que el campo del puntero urgente es válido. ACK (1 bit): Indica que el campo de asentimiento es válido. Todos lo paquetes enviados después del paquete SYN inicial deben tener activo este flag. PSH (1 bit): Push. El receptor debe pasar los datos a la aplicación tan pronto como sea posible. RST (1 bit): Reset. Reinicia la conexión. SYN (1 bit): Synchronice. Sincroniza los números de secuencia para iniciar la conexión. FIN (1 bit): El emisor finaliza el envío de datos.

Tamaño de ventana (16 bits): Tamaño de la ventana de recepción que especifica el

Tamaño de ventana (16 bits): Tamaño de la ventana de recepción que especifica el número máximo de bytes que pueden ser metidos en el buffer de recepción o dicho de otro modo, el número máximo de bytes pendientes de asentimiento. • Suma de verificación (16 bits): Checksum utilizado para la comprobación de errores tanto en la cabecera como en los datos. • Puntero urgente (16 bits): Cantidad de bytes desde el número de secuencia que indica el lugar donde acaban los datos urgentes. • Opciones: Para poder añadir características no cubiertas por la cabecera fija. • Relleno: Se utiliza para asegurarse que la cabecera acaba con un tamaño múltiplo de 32 bits.