Download
tema iii el nivel de transporte en internet n.
Skip this Video
Loading SlideShow in 5 Seconds..
Tema III: El nivel de transporte en Internet PowerPoint Presentation
Download Presentation
Tema III: El nivel de transporte en Internet

Tema III: El nivel de transporte en Internet

332 Vues Download Presentation
Télécharger la présentation

Tema III: El nivel de transporte en Internet

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Tema III:El nivel de transporte en Internet Luis López Fernández 2005

  2. Tema III: El nivel de transporte en Internet Conocimientos previos • Conocimientos adquiridos fuera de la asignatura • Conocimientos básicos sobre sistemas operativos • Conocimientos básicos sobre lenguajes de programación (sintaxis y semántica) • Conveniente conocimientos básicos del lenguaje Java y del lenguaje C • Capacidad de lectura de textos en el idioma inglés • Conocimientos adquiridos en el contexto de la asignatura • Contar con unas nociones básicas sobre arquitectura de redes de ordenadores • Comprender el concepto de protocolo • Comprender el concepto de servicio • Conocer los modelos de referencia OSI, TCP/IP e híbrido • Conocer los servicios prestados por la capa de transporte en los modelos de referencia • Conocer los servicios prestados por la capa de red en los modelos de referencia • Conocer la arquitectura básica de Internet • Conocer los requisitos que se imponen a la interfaz de la capa de transporte

  3. Tema III: El nivel de transporte en Internet Tema III: Contenidos • Lección 3.1: Protocolos y servicios del nivel de transporte • 3.1.1 El nivel de transporte Vs el nivel de red en Internet • 3.1.2 Servicios ofrecidos por el nivel de transporte en Internet • Lección 3.2: El protocolo UDP • 3.2.1 El servicio UDP y el protocolo UDP • 3.2.2 RTP como ejemplo de protocolo que utiliza los servicios de UDP • Lección 3.3: Transmisión fiable de datos • 3.3.1 Transmisión fiable: una visión software • 3.3.2 Protocolos básicos para la transmisión fiable de datos • 3.3.3 Protocolos de ventana deslizante • Lección 3.4: El protocolo TCP • 3.4.1 Formato del segmento TCP • 3.4.2 Ciclo de vida de la conexión TCP • 3.4.3 Gestión de temporizadores TCP • Lección 3.5: Control de congestión • 3.5.1 Conceptos básicos sobre congestión y colas • 3.5.2 Control de la congestión en TCP • 3.5.3 Reparto equitativo de recursos y TCP

  4. Aplicación Transporte Red Enlace Física Tema III: El nivel de transporte en Internet Introducción: Transporte y red Ofrece un servicio de comunicación de extremo-a-extremo (end-to-end) Se ocupa de el nivel de aplicación vea “la red” como “un cable” Utiliza los servicios del nivel de red para el envío de paquetes Ofrece un servicio de envío de paquetes no fiable (los paquetes pueden perderse) Se ocupa de que cada paquete sea encaminado de manera apropiada hacia su destino El servicio no es orientado a conexión (cada paquete debe contener la dirección de destino) Servicio ofrecido por el nivel de red

  5. Tema III: El nivel de transporte en Internet Protocolos y servicios del nivel de transporte • Objetivo • Proporcionar un “canal lógico” entre procesos de aplicación que residen en diferentes nodos de la red • Las propiedades de ese “canal lógico” dependen del protocolo utilizado y de las características de los servicios ofrecidos por el nivel de red • Función • Hacer que la red sea “invisible” para el nivel de aplicación • Los protocolos del nivel de transporte se ejecutan en los extremos de la comunicación (sistemas finales) • Extremo de envío: Parte los mensajes de aplicación en segmentos que son enviados al nivel de red • Extremo de recepción: Recupera los segmentos del nivel de red y los ensambla formando mensajes para el nivel de aplicación aplicación transp. red enlace físico aplicación Transp. red enlace físico

  6. 1 . red enlace físico . red enlace físico . red enlace físico . red enlace físico . red enlace físico . red enlace físico 4 3 3 2 500 Tema III: El nivel de transporte en Internet El nivel de transporte frente al nivel de red • El nivel de red • Se ocupa de enviar los paquetes desde el nodo que los origina hasta el nodo que debe recibirlos • Utiliza un mecanismo de direccionamiento (dirección IP) para determinar los nodos origen y destino • Todo paquete debe contener la dirección IP de su nodo origen y la dirección IP de su nodo destino • Analogía • Imaginemos que queremos enviar un documento muy grande (p.e. 500 páginas) a través de correo postal tradicional no certificado • Podemos enviar una página en cada sobre • Cada sobre contiene la dirección del destinatario • Cada sobre es enviado de manera independiente • Se pueden perder o retrasar envíos • No podemos garantizar que el envío del documento sea satisfactorio aplicación transp. red enlace físico … aplicación Transp. red enlace físico …

  7. 1 1 4 3 3 4 2 2 500 500 Tema III: El nivel de transporte en Internet El nivel de transporte frente al nivel de red • El nivel de transporte • Se ocupa de mejorar las propiedades del servicio ofrecido por el nivel de red • Puede ofrecer un servicio orientado a conexión, en el que el nivel de aplicación percibe la red como si fuese un canal (cable) dedicado • Analogía • Imaginemos que queremos enviar un documento muy grande (p.e. 500 páginas) a través de correo postal tradicional no certificado • El servicio de transporte es como dos secretarias que se encuentran en los extremos receptores y emisores • Se ocupan de meter en los sobres las páginas • Se ocupan de enviarlas al nivel de red • Se ocupan de ordenar los sobres de llegan desordenados • Se ocupan de que se repitan los envíos de sobres perdidos • Necesitan un acuerdo previo (establecimiento de conexión) aplicación transp. red enlace físico … aplicación Transp. red enlace físico …

  8. Tema III: El nivel de transporte en Internet Protocolos de nivel de transporte en Internet • El protocolo TCP (Transmission Control Protocol) • Servicio TCP • Orientado a conexión: Requiere el establecimiento de conexión entre los dos extremos • Transporte fiable: Toda información enviada por el emisor es recibida por el receptor en el mismo orden • Control de flujo: El emisor no saturará a un receptor más lento • Control de congestión: El emisor bajará su tasa si se detecta congestión en la red • No proporciona • Garantías de temporización • Garantías de ancho de banda • El protocolo UDP (User Datagram Protocol) • Servicio UDP • Transporte no fiable de datagramas: Los datagramas emitidos por el emisor podrán alcanzar eventualmente el receptor • No proporciona • Servicio orientado a conexión • Transporte fiable • Control de flujo • Control de congestión • Garantías de temporización • Garantías de ancho de banda • ¿Es UDP igual que IP? • ¿Por qué existe el servicio UDP?

  9. aplicación aplicación aplicación transporte transporte transporte P3 P1 P2 P4 P1 red red red enlace enlace enlace física física física Tema III: El nivel de transporte en Internet Multiplexación y demultipleación • La capa de transporte es la responsable de la multiplexación y demultiplexación • Consiste en la conversión del servicio de entrega de paquetes host a host, proporcionado por la capa de red, en un servicio de entrega proceso a proceso • La multiplexación y demultiplexación se realiza a través de los sockets • Cuando un paquete sale del host origen, este se entrega al socket apropiado • Cuando un paquete llega al host destino, este se entrega al socket apropiado • El socket actúa como intermediario entre el proceso y la capa de transporte = socket = proceso host 3 host 2 host 1

  10. Tema III: El nivel de transporte en Internet Multiplexación y demultiplexación cont. • Multiplexación: • Se realiza en emisión • Se reúnen los datos de los diferentes sockets y se entregan al nivel de transporte (que es único) • Se debe incluir la información necesaria para la demultiplexación • Demultiplexación: • Se realiza en recepción • Se extraen los segmentos del nivel de transporte y se entregan al socket apropiado • Utiliza la información incluida por el emisor para realizarlo P2 P5 P1 P3 P4 P6 transporte transporte red red enlace enlace Internet física física host 2 host 1

  11. Tema III: El nivel de transporte en Internet Cómo funciona la demultiplexación • La capa de transporte utiliza un identificador denominado puerto para realizar la demultiplexación • Cada socket está asociado a un número de puerto • El número de puerto de origen estará asociado con el socket que genera el segmento • El número de puerto de destino estará asociado con el socket que recibe el segmento Datos de aplicación Nivel de aplicación Socket Envío de datos Nivel de transporte Puerto origen Puerto destino Otros Campos Tx Datos Appl. Nivel de red IP origen IP destino Otros Campos red Puerto origen Puerto destino Otros Campos Tx Datos Appl. Niveles inferiores

  12. Tema III: El nivel de transporte en Internet Cómo funciona la demultiplexación • La capa de transporte utiliza un identificador denominado puerto para realizar la demultiplexación • Cada socket está asociado a un número de puerto • El número de puerto de origen estará asociado con el socket que genera el segmento • El número de puerto de destino estará asociado con el socket que recibe el segmento Datos de aplicación Nivel de aplicación Socket Recepción de datos Nivel de transporte Puerto origen Puerto destino Otros Campos Tx Datos Appl. Nivel de red IP origen IP destino Otros Campos red Puerto origen Puerto destino Otros Campos Tx Datos Appl. Niveles inferiores

  13. Tema III: El nivel de transporte en Internet Números de puerto en Internet • El número de puerto es un entero de 16 bits (0 .. 65535) • Los segmentos TCP y UDP contienen un puerto de origen y un puerto de destino • TCP y UDP tienen numeración de puertos independiente • Todo socket con capacidad de enviar – recibir datos debe estar asociado a un puerto • Los números de puerto 0 .. 1023 están restringidos (well-known ports) • Están reservados para protocolos de aplicación bien conocidos • La lista de números de puerto bien conocido se encuentra en • RFC 1700 • Actualizada en http://www.iana.org/assignments/port-numbers [RFC 3232] • Ejemplos • HTTP: 80/TCP • FTP: 21/TCP • SMTP: 25/TCP • DNS: 53/TCP, 53/UDP • SSH: 22/TCP • TELNET: 23/TCP

  14. Tema III: El nivel de transporte en Internet Multiplexación y demultiplexación sin conexión • Cuando trabajamos con UDP no hay noción de conexión • Para crear un socket con capacidad de envío – recepción basta con asignarle un puerto • Ejemplo java: • DatagramSocket miSocket = new DatagramSocket(); • Asignación de un puerto libre entre 1024 y 65535 • DatagramSocket miSocket = new DatagramSocket(19157); • Asignación del puerto 19157 si no está ocupado por otro socket • Todo socket UDP queda completamente identificado por el par • (dirección IP destino, número puerto destino) • Cuando en un host se recibe un datagrama UDP • - Se recupera el puerto de destino • - Se envía el datagrama al socket asociado al puerto de destino • La dirección IP de origen y el puerto de origen no son utilizados para realizar la demultiplexación • La dirección IP de origen y el puerto de origen se incluyen en los paquetes para proporcionar una dirección de respuesta (remitente) al proceso receptor

  15. P2 P1 P1 P3 SP: 9157 Cliente IP: A DP: 6428 Cliente IP:B servidor IP: C SP: 6428 SP: 5775 SP: 6428 DP: 5775 DP: 6428 DP: 9157 Tema III: El nivel de transporte en Internet Demultiplexación sin conexión DatagramSocket serverSocket = new DatagramSocket(6428); SP: Source port DP: Destination port

  16. Tema III: El nivel de transporte en Internet Multiplexación y demultiplexación orientado a conexión • Cuando trabajamos con TCP tenemos una noción de conexión • Para disponer de un socket con capacidad de envío – recepción hay que • Crearlo asignándolo un puerto • Conectarlo a un socket remoto (que tendrá su propio puerto) • Ejemplo java: • Socket miSocket = new Socket(“nombre de host”, 6789); • Creamos un nuevo socket asignándole un puerto libre entre 1024 .. 65535 y lo conectamos a un socket remoto que se encuentra en el host indicado y en el puerto 6789 • Socket miSocket = socketServidor.accept(); • Creamos un nuevo socket asignádole el mismo puerto que el socketServidor y lo conectamos con el socket remoto que ha solicitado la conexión • Todo socket TCP queda completamente identificado por una tupla de 4 elementos • (dirección IP origen, número puerto origen, • dirección IP destino, número puerto destino) • Cada socket con capacidad de envío – recepción queda entonces asociado con una conexión establecida (que queda definida a partir de sus dos puntos terminales)

  17. P4 P2 P1 P1 P3 Cliente IP: A SP: 5775 SP: 80 SP: 80 DP: 9157 DP: 5775 DP: 80 Tema III: El nivel de transporte en Internet Multiplexación y demultiplexación orientado a conexión cont. • Por tanto, pueden existir varios sockets TCP asignados al mismo puerto en un mismo host, siempre y cuando estos sockets pertenezcan a conexiones distintas: • Ejemplo: Un servidor HTTP • Un primer cliente (sckCli1.port = 5775) se conecta al servidor (sckSer1.port = 80) • Un segundo cliente (sckCli1.port = 9157) se conecta al servidor (sckSer2.port = 80) • Etc. SP: 9157 DP: 80 Cliente IP:B servidor IP: C

  18. Tema III: El nivel de transporte en Internet Multiplexación y demultiplexación orientado a conexión cont. • Hemos descrito cómo se realiza la multiplexación en sockets que actúan como extremo de una conexión • Existe otro tipo de socket TCP cuyo funcionamiento es sensiblemente diferente • Sockets de escucha y aceptación • Estos sockets no pueden funcionar como extremo de una conexión • Escuchan esperando solicitudes de conexión de sockets remotos • Al recibirlas, crean un nuevo socket (con su mismo puerto) y establecen la conexión entre el socket remoto y el recién creado • Los sockets de escucha y aceptación quedan determinados por el par • (dirección IP destino, número puerto destino)

  19. Tema III: El nivel de transporte en Internet Lección 3.1: Comentarios y referencias • Comentarios y reflexiones • Existe un tipo de tecnología de conmutación de paquetes que se denomina de “circuito virtual”. Investigue las diferencias entre esa tecnología y la de conmutación de paquetes habitual. ¿En qué se diferenciará el nivel de transporte asociado a dicha tecnología y el básico de Internet? • El sistema operativo ofrece mecanismos para averiguar en qué puertos se encuentran escuchando sockets a la espera de recibir solicitudes de conexión. Utilice dicho mecanismo para averiguar qué puertos están ocupados en su ordenador. Trate de crear un nuevo socket que “escuche” sobre un puerto ya ocupado y observe lo que sucede. ¿Por qué? • Decimos que TCP ofrece un servicio “fiable” de transferencia de datos. Reflexione sobre el significado de la palabra “fiable” en este contexto. ¿Se puede garantizar que toda información que ha salido del emisor llegará, tarde o temprano al emisor? ¿Se puede garantizar que si una parte de la información ha llegado, el resto llegará tarde o temprano? • Referencias • Redes de Computadores. Andrew S. Tanenbaum. Prentice Hall, Cuarta Edición, 2003 • Capítulo 6: La Capa de Transporte • Redes de Computadores, un enfoque descendente basado en Internet. James F. Kurose y Keith W. Ross. Addison Wesley, Segunda Edición, 2003 • Capítulo 3: La Capa de Transporte

  20. Tema III: El nivel de transporte en Internet Lección 3.1: Resumen • Contenidos • El nivel de transporte frente al nivel de red • El nivel de red como servicio insuficiente • Servicios y protocolos del nivel de transporte • Protocolos del nivel de transporte en Internet • Multiplexación y demultiplexación • Números de puerto • Demultiplexación sin conexión • Demultiplexación con conexión • ¿Qué hemos aprendido? • ¿Por qué decimos que TCP es un protocolo de “extremo a extremo”? • ¿Qué aporta TCP frente a IP y por qué es necesario añadirlo? • ¿Qué son los puertos TCP y UDP y para qué sirven? • ¿En qué se basa la multiplexación y demultiplexación de paquetes? • ¿Cómo decide el S.O. a qué socket TCP debe entregar el contenido de un paquete? • ¿Cómo decide el S.O. a qué socket UDP debe entregar el contenido de un paquete? • ¿Puede haber varios sockets asociados a un mismo puerto en un mismo host?

  21. Tema III: El nivel de transporte en Internet Tema III: Contenidos • Lección 3.1: Protocolos y servicios del nivel de transporte • 3.1.1 El nivel de transporte Vs el nivel de red en Internet • 3.1.2 Servicios ofrecidos por el nivel de transporte en Internet • Lección 3.2: El protocolo UDP • 3.2.1 El servicio UDP y el protocolo UDP • 3.2.2 RTP como ejemplo de protocolo que utiliza los servicios de UDP • Lección 3.3: Transmisión fiable de datos • 3.3.1 Transmisión fiable: una visión software • 3.3.2 Protocolos básicos para la transmisión fiable de datos • 3.3.3 Protocolos de ventana deslizante • Lección 3.4: El protocolo TCP • 3.4.1 Formato del segmento TCP • 3.4.2 Ciclo de vida de la conexión TCP • 3.4.3 Gestión de temporizadores TCP • Lección 3.5: Control de congestión • 3.5.1 Conceptos básicos sobre congestión y colas • 3.5.2 Control de la congestión en TCP • 3.5.3 Reparto equitativo de recursos y TCP

  22. Tema III: El nivel de transporte en Internet El protocolo UDP • Las aplicaciones de red pueden tener objetivos muy variados • Pueden requerir servicios de transporte también diversos • Servicio TCP: Transporte fiable orientado a conexión “best effort” • Sin garantías en la temporización • Sin garantías en el ancho de banda • Sin garantías de atomicidad ante fallos de red o en los nodos • ¿Qué sucede si nos interesa un protocolo de transporte con otras propiedades? • El protocolo UDP (User Datagram Protocol) [RFC 768]: • Protocolo de Datagramas de Usuario • Nos ofrece una interfaz sencilla para poder desarrollar protocolos basados en el concepto de la conmutación de paquetes • UDP = IP + Multiplexación/Demultiplexación • Servicio no orientado a conexión • Se pueden perder paquetes • Se pueden desordenar paquetes

  23. Tema III: El nivel de transporte en Internet ¿Por qué usar UDP? • UDP tiene propiedades que lo hacen interesante frente a TCP para algunas aplicaciones • No hay establecimiento de conexión •  se evita el retardo asociado • Emisores y receptores simples •  ocupan pocos recursos del sistema en términos de memoria y CPU • Añade una cabecera pequeña (8 bytes) •  añade menos sobrecarga en los paquetes • No impone ningún mecanismo de control de congestión •  los flujos de datos pueden seguir patrones de tiempo más flexibles y adaptables • La unidad de transferencia (el datagrama) es atómica y visible por el desarrollador •  mejor adaptado cuando la aplicación tiene requisitos transaccionales

  24. Tema III: El nivel de transporte en Internet Estructura de la cabecera UDP • Cada datagrama UDP tiene la estructura siguiente: • Cabecera (8 bytes) • Datos ( 0 o más bytes) • El tamaño máximo del datagrama puede venir limitado por el tamaño máximo del paquete IP (en cuyo caso, se podrían incluir hasta 65.507 bytes de datos) • El tamaño máximo puede venir limitado por la tecnología de enlace que se utilice • Vamos a analizar cada uno de los campos de la cabecera fija del datagrama UDP detalladamente 32 bits Puerto de origen Puerto de destino Longitud UDP Suma comprobación Datos

  25. Tema III: El nivel de transporte en Internet Estructura de la cabecera UDP • Puerto de origen y Puerto de destino (16 bits) • El puerto de origen y el puerto de destino son la parte de la dirección de red que identifica a un proceso dentro de un host • Como ya hemos visto en la introducción, el puerto de destino es utilizado por UDP para demultiplexar los datagramas que se reciben en un host • De este modo, los diferentes datagramas que se reciben se pueden enviar al socket UDP apropiado • El puerto de origen sólo será utilizado para responder al socket UDP que emitió el datagrama. 32 bits Puerto de origen Puerto de destino Longitud UDP Suma comprobación Datos

  26. Tema III: El nivel de transporte en Internet Estructura de la cabecera UDP • Longitud UDP(16 bits) • Indica la longitud del datagrama UDP en bytes incluyendo la cabecera y los datos • Por tanto, su valor mínimo debe ser 8 32 bits Puerto de origen Puerto de destino Longitud UDP Suma comprobación Datos

  27. Tema III: El nivel de transporte en Internet Estructura de la cabecera UDP • Suma de comprobación(16 bits) • Es un campo opcional • Si no se calcula, se almacena como cero • Sólo suele desactivarse cuando un paquete perdido es más dañino que un paquete corrompido (p.e. voz digitalizada) • Se proporciona una suma de comprobación para mejorar la confiabilidad • La suma de comprobación se calcula utilizando el encabezado, los datos y un pseudoencabezado conceptual que contiene información adicional • +--------+--------+--------+--------+ • | Dirección origen | • +--------+--------+--------+--------+ • | Dirección destino | • +--------+--------+--------+--------+ • | cero | Proto. | Long. UDP | • +--------+--------+--------+--------+ • Este pseudoencabezado tiene por objetivo detectar segmentos que hayan sido encaminados de manera incorrecta 32 bits Puerto de origen Puerto de destino Longitud UDP Suma comprobación Datos

  28. Tema III: El nivel de transporte en Internet Estructura de la cabecera UDP • Suma de comprobación(16 bits) • Se calcula del modo siguiente: • Se ponen en secuencia: el pseudoencabezado, la cabecera UDP (con suma de comprobación de cero) y los datos • Se rellena el campo de datos con un byte a cero adicional si el número de bytes del segmento es impar. Ese byte adicional no se transmite, sólo se usa para trabajar con palabras de 16 bits. • Se suman todas las palabras de 16 bits de la secuencia en complemento a 1 • La suma de comprobación es el complemento a 1 del resultado así obtenido • En el receptor, la suma de comprobación se utiliza para detectar errores de transmisión. • Para ello, se realiza un cálculo equivalente en el receptor, pero ahora incluyendo la suma de comprobación recibida (en vez ceros) • Si no hay errores en la transmisión, el resultado obtenido debe ser 0 32 bits Puerto de origen Puerto de destino Longitud UDP Suma comprobación Datos

  29. Tema III: El nivel de transporte en Internet Ejemplo de un protocolo basado en UDP: RTP • RTP (Protocolo de Tiempo Real - Real Time Protocol) • Se describe en la RFC 1889 • Es un protocolo de transporte de datos con restricciones de tiempo real • Se utiliza ampliamente en aplicaciones multimedia • Aunque es un protocolo de transporte (no está directamente asociado a ninguna aplicación concreta) se ubica en espacio de usuario • Es decir, RTP utiliza sockets para acceder a los servicios de UDP Aplicación Espacio de usuario RTP Sockets UDP Kernel del S.O. IP Niveles Inferiores

  30. Tema III: El nivel de transporte en Internet La cabecera RTP • La cabecera RTP tiene la estructura que aparece en la figura • Ver: Versión del protocolo (la 2 actualmente) • P: Indica que el paquete se ha rellenado a un múltiplo de 4 bytes • X: Hay una cabecera de extensión. El formato y significado de la extensión no se definen. Lo único que se define es que la primera palabra de la extensión proporciona la longitud • CC: Indica el número de orígenes de contribución que están presentes (de 0 a 15) • M: Es un marcador específico de la aplicación (la aplicación lo puede usar como desee). Por ejemplo, puede indicar el comienzo de un nuevo cuadro de vídeo, etc. • Tipo de carga útil: Indica la codificación de los datos del paquete RTP • Número de secuencia: Se incrementa en cada paquete enviado • Los otros campos los explicamos en más detalle a continuación 32 bits Tipo carga útil Número secuencia M P X CC Ver Marca de tiempo Id. origen sincronización Id. origen contribución

  31. Tema III: El nivel de transporte en Internet Funcionamiento de RTP • RTP multiplexa varios flujos de datos de tiempo real en un solo flujo UDP • El flujo UDP resultante puede • Ser enviado a un solo destino (unidifusión) • Ser enviado a múltiples destinos (multidifusión) • Cada paquete RTP lleva un número de secuencia que se incrementa • De este modo se pueden detectar pérdidas de paquetes • Si se produce alguna pérdida • NO hay repetición • El receptor puede tratar de “interpolar” los datos que a perdido desde su entorno • Cada paquete RTP indica el mecanismo de codificación de sus datos • PCM de 8 bits • MP3 • GSM • etc

  32. Tema III: El nivel de transporte en Internet Funcionamiento de RTP. Cont. • En RTP, los paquetes llevan una marca de tiempo • La marca de tiempo es relativa al origen del flujo • Indica el instante de tiempo asociado a la primera muestra del paquete • El objetivo de la marca de tiempo es doble • Reducir los efectos de la fluctuación (jitter) • Gracias a ella el receptor sabe en qué momento tiene que “reproducir” cada paquete • Esto permite la utilización de un buffer de compensación de la fluctuación • Sincronizar varios flujos • Las aplicaciones multimedia pueden contar con diversos flujos • Vídeo + dos canales de audio • Vídeo + 8 canales de audio • Las marcas de tiempo permiten sincronizar la reproducción de todos los flujos • Incluso si los flujos se transmiten de manera irregular

  33. Tema III: El nivel de transporte en Internet Funcionamiento de RTP. Cont. • La demultiplexación se realiza a través de un identificador de 32 bits: • Campo: identificador de origen de sincronización • Cada uno de los flujos que se transmiten por el mismo socket UDP tiene un valor de este campo distinto. Por ejemplo • Vídeo • Audio • Audio estéreo • Audio en varios idiomas • El campo identificador de origen de contribución se utiliza para mezclar flujos • Si dos o más flujos deben mezclarse, se listan en los campos reservados a tal efecto

  34. Funcionamiento de RTP: Ejemplo • Ejemplo de aplicación multimedia con vídeo y audio Flujo de Vídeo Flujo de audio

  35. Funcionamiento de RTP: Ejemplo • Establecemos un origen de tiempos común a todos los flujos Flujo de Vídeo Origen de tiempos en el emisor Flujo de audio

  36. Funcionamiento de RTP: Ejemplo • Muestreamos, codificamos y convertimos los flujos en una secuencia de paquetes T1 T2 T3 T0 Tiempo Origen de tiempos en el emisor t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13

  37. UDP IP Etc. Funcionamiento de RTP: Ejemplo • Los paquetes se envían por RTP incluyendo su marca de tiempos y su identificador T1 T2 T3 T0 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el emisor Flujo RTP audio t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13

  38. UDP IP Etc. UDP IP Etc. Funcionamiento de RTP: Ejemplo • Los paquetes se reciben, se demultiplexan y se almacenan en un búfer de compensación T1 T2 T3 T0 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el emisor Flujo RTP audio t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 Flujo RTP vídeo Socket UDP Flujo RTP audio

  39. UDP IP Etc. UDP IP Etc. Funcionamiento de RTP: Ejemplo • Cuando la aplic. receptora lo considera oportuno, empieza a reproducir T1 T2 T3 T0 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el emisor Flujo RTP audio t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 T0 T1 T2 T3 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el receptor Flujo RTP audio t0 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13

  40. UDP IP Etc. UDP IP Etc. Funcionamiento de RTP: Ejemplo • Los paquetes se van reproduciendo respetando el origen de tiempos del receptor T1 T2 T3 T0 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el emisor Flujo RTP audio t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 T0 T1 T2 T3 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el receptor Flujo RTP audio t0 t1 t2 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13

  41. UDP IP Etc. UDP IP Etc. Funcionamiento de RTP: Ejemplo • Los paquetes se van reproduciendo respetando el origen de tiempos del receptor T1 T2 T3 T0 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el emisor Flujo RTP audio t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 T0 T1 T2 T3 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el receptor Flujo RTP audio t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13

  42. UDP IP Etc. UDP IP Etc. Funcionamiento de RTP: Ejemplo • La emisión, recepción y reproducción puede continuar con el desfase que añaden los búferes T1 T2 T3 T0 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el emisor Flujo RTP audio t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 T0 T1 T2 Tiempo Flujo RTP vídeo Socket UDP Origen de tiempos en el receptor Flujo RTP audio t0 t1 t2 t3 t4 t5 t6 t7 t8 t9

  43. Tema III: El nivel de transporte en Internet El protocolo de control de RTP: RTCP • RTP viene acompañado de un protocolo de control que se denomina RTCP (Real Time Control Protocol) • Solo transporta información de control, no transporta datos “útiles” • Ofrece un mecanismo de realimentación que permite informar al emisor sobre • Retardos • Fluctuaciones • Ancho de banda disponible • Presencia de congestión • Esta información puede utilizarla el emisor para adaptarse a las condiciones de la red de modo que se proporcione el mejor servicio posible • RTCP también proporciona un servicio de sincronización de relojes • De este modo, flujos diferentes con diferentes relojes (granularidades, derivas, etc), pueden compartir una referencia común

  44. Tema III: El nivel de transporte en Internet Lección 3.2: Comentarios y referencias • Comentarios y reflexiones • Uno de los problemas más relevantes en las redes de conmutación de paquetes es el de la congestión. TCP ofrece mecanismos para el control de congestión en Internet, pero UDP no. ¿Cree que esto supone algún problema? • Si tenemos dos flujos TCP compitiendo por una misma línea, el protocolo TCP garantiza que los recursos se comparten de manera equitativa entre ambos. Si son dos flujos UDP, ¿cuál de los dos se llevará más recursos? ¿Es positivo este resultado? • UDP suele utilizarse como protocolo de preferencia para implementar mecanismos cliente servidor RPC (Remote Procedure Call) ¿Por qué? • A la hora de obtener un servicio multimedia de gran calidad en Internet ¿qué papel desempeña lo que sucede en el nivel de transporte y qué papel desempeña lo que sucede en el nivel de red? • Referencias • Redes de Computadores. Andrew S. Tanenbaum. Prentice Hall, Cuarta Edición, 2003 • Capítulo 6: La Capa de Transporte • Redes de Computadores, un enfoque descendente basado en Internet. James F. Kurose y Keith W. Ross. Addison Wesley, Segunda Edición, 2003 • Capítulo 3: La Capa de Transporte

  45. Tema III: El nivel de transporte en Internet Lección 3.2: Resumen • Contenidos • El protocolo UDP • Servicios UDP • Formato del datagrama UDP • RTP como ejemplo de protocolo basado en UDP • Formato de la cabecera RTP • Funcionamiento de RTP • Ejemplo de funcionamiento RTP • RTCP • ¿Qué hemos aprendido? • ¿Por qué decimos que TCP es un protocolo de “extremo a extremo”? • ¿Qué aporta TCP frente a IP y por qué es necesario añadirlo? • ¿Qué son los puertos TCP y UDP y para qué sirven? • ¿En qué se basa la multiplexación y demultiplexación de paquetes? • ¿Cómo decide el S.O. a qué socket TCP debe entregar el contenido de un paquete? • ¿Cómo decide el S.O. a qué socket UDP debe entregar el contenido de un paquete? • ¿Puede haber varios sockets asociados a un mismo puerto en un mismo host?

  46. Tema III: El nivel de transporte en Internet Tema III: Contenidos • Lección 3.1: Protocolos y servicios del nivel de transporte • 3.1.1 El nivel de transporte Vs el nivel de red en Internet • 3.1.2 Servicios ofrecidos por el nivel de transporte en Internet • Lección 3.2: El protocolo UDP • 3.2.1 El servicio UDP y el protocolo UDP • 3.2.2 RTP como ejemplo de protocolo que utiliza los servicios de UDP • Lección 3.3: Transmisión fiable de datos • 3.3.1 Transmisión fiable: una visión software • 3.3.2 Protocolos básicos para la transmisión fiable de datos • 3.3.3 Protocolos de ventana deslizante • Lección 3.4: El protocolo TCP • 3.4.1 Formato del segmento TCP • 3.4.2 Ciclo de vida de la conexión TCP • 3.4.3 Gestión de temporizadores TCP • Lección 3.5: Control de congestión • 3.5.1 Conceptos básicos sobre congestión y colas • 3.5.2 Control de la congestión en TCP • 3.5.3 Reparto equitativo de recursos y TCP

  47. Tema III: El nivel de transporte en Internet Transmisión fiable de datos: problema • Problema: • Disponemos de un servicio de envío de paquetes no fiable • Queremos un servicio de envío de mensajes fiable (sin pérdidas, en orden) • Aparece en: • Capa de aplicación (usando servicio UDP no fiable) • Capa de transporte (usando servicio IP no fiable) • Capa de enlace (usando servicio nivel físico no fiable) emisor receptor Capa superior que requiere el servicio fiable emisor receptor tfd_enviar( ) tfd_recibir( ) Protocolo de transferencia fiable (emisor) Protocolo de transferencia fiable (receptor) Capa intermedia que implementa el servicio fiable tnd_enviar( ) tnd_recibir( ) tnd_enviar( ) tnd_recibir( ) Capa inferior que proporciona el servicio no fiable canal no fiable canal no fiable

  48. Tema III: El nivel de transporte en Internet Principios de la transmisión fiable de datos • Es uno de los problemas de mayor relevancia en el ámbito de la telemática • El protocolo a implementar depende de las características del canal no fiable • Objetivo: ofrecer un servicio de transporte fiable de datos a la capa superior Implementación del servicio Servicio fiable emisor receptor emisor receptor tfd_enviar( ) tfd_recibir( ) tfd_enviar( ) tfd_recibir( ) Protocolo de transferencia fiable (emisor) Protocolo de transferencia fiable (receptor) canal lógico fiable tnd_enviar( ) tnd_recibir( ) canal no fiable

  49. Tema III: El nivel de transporte en Internet Primitivas de servicio • tfd_enviar( ): Servicio de Transporte Fiable de Datos (tfd). La capa superior llama a este servicio para enviar datos • tfd_evento_enviar( ): Función de la capa que implementa el protocolo fiable. Se desbloquea cuando la capa superior envía datos • tnd_enviar( ): Servicio de Transporte No fiable de Datos (tnd) que ofrece la capa inferior • tnd_evento_enviar( ): Función de la capa inferior que se desbloquea cuando hay un paquete que enviar • entregar_paquete( ): Función que la capa inferior invoca cuando se recibe un paquete del canal • tnd_recibir( ): Función de la capa que implementa el protocolo fiable que se desbloquea cuando se recibe un paquete de la capa inferior • entregar_datos( ): Función que la capa que implementa el protocolo fiable invoca cuando se han recibido nuevos datos • tfd_recibir( ): Función de la capa superior que se desbloquea cuando se reciben nuevos datos Implementación del servicio emisor receptor tfd_recibir( ) tfd_enviar( ) entregar_datos( ) tfd_evento_enviar( ) Protocolo de transferencia fiable (emisor) Protocolo de transferencia fiable (receptor) tnd_enviar( ) tnd_recibir( ) tnd_evento_enviar( ) entregar_paquete( ) canal no fiable

  50. evento acciones estado 1 estado 2 Tema III: El nivel de transporte en Internet Protocolos de envío fiable • La complejidad del protocolo depende de las características del canal no fiable subyacente • Iremos incrementando la complejidad del modelo de canal progresivamente, acercándonos a la realidad de Internet • Para simplificar, y sin pérdida de generalidad, consideraremos que los datos de aplicación fluyen en una sola dirección en el canal • La información de control del protocolo podrá viajar en ambas direcciones en el canal • Utilizaremos máquinas de estados finitos (FSM – Finite State Machines) para representar los protocolos tanto en el emisor como en el receptor evento que causa la transición acciones que se ejecutan en la transición estado: cuando estamos en un estado, el estado siguiente viene determinado, exclusivamente, por el evento siguiente