Nivel 4: Transporte Protocolos End-to-End Teoría de las Comunicaciones – Octubre de 2011.

Slides:



Advertisements
Presentaciones similares
CAPA DE TRANSPORTE MODELO OSI
Advertisements

TEMA1. Servicios de Red e Internet
CAPA DE TRANSPORTE DEL MODELO OSI
Trabajo Practico Grupo 1 NFS – TCP - UDP
OSI TCP/IP MODELO Ing. Camilo Jaramillo Ing. Wilmer Onofre García
SOCKETS INTRODUCCIÓN DEFINICIÓN TIPOS DE SOCKETS USO DE SOCKETS.
Protocolos de transporte y aplicación
Ingeniería en Automática Industrial Software para Aplicaciones Industriales I Ingeniería en Automática Industrial Software para Aplicaciones Industriales.
Capa de transporte.
MODELO TCP/IP Conectividad de extremo a extremo especificando como los datos deberian ser formateados,direccionados,transmitidos,enrutados y recibidos.
MODELO TCP/IP.
TCP/IP V4 Redes de Computadoras uclv.
Sebastián Barbieri IP - ICMP Comunicación de Datos II Ingeniería en Sistemas – Facultad Cs. Exactas Universidad Nacional de Centro de la Prov. de Bs. As.
SISTEMAS DISTRIBUIDOS
PROTOCOLO DE TRANSPORTE Profesor Daniel Díaz Ataucuri Introducción
7: Multimedia en Redes de Computadores 7-1 Capítulo 7 Multimedia en Redes de Computadores Este material está basado en el texto: Computer Networking: A.
Universidad Nacional de Luján - Asignatura Teleinformática y Redes Tema: Capa de Transporte - TCP 1 Capa de Transporte “Ofrece a sus usuarios un sistema.
Control de Congestion. Muchos paquetes en la red se retrasan o pierden provocando que se degrade el desempeño de la red. Congestión.
S Capacitación Técnica Capítulo 4 Q O S Calidad de Servicio.
Teoría de Sistemas Operativos
1 Control de Congestión Adaptación de Agustín J. González de la versión por Jennifer Rexford os461/
Funciones Capa de Transporte
Conceptos avanzados Dr. Daniel Morató Area de Ingeniería Telemática Departamento de Automática y Computación Universidad Pública de Navarra
1 MENSAJES DE CONTROL Y ERROR DE LA PILA TCP/IP Semestre 2 Capítulo 8 Carlos Bran
CAPA DE RED  Aquí se lleva a cabo el direccionamiento lógico que tiene carácter jerárquico, se selecciona la mejor ruta hacia el destino mediante el.
TCP/IP Introducción TCP/IP Introducción. TCP/IP vs OSI Aplicación Presentación Sesión Transporte Red Enlace Física Aplicación Acceso a la red Física TCP/IP.
Introducción1-1 Capítulo 1: Introducción ELO322: Redes de Computadores Agustín J. González Este material está basado en el material preparado como apoyo.
Fundamentos de TCP/IP.
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
ELO3091 Interfaz de Socket Agustín J. González ELO309.
1s2002ElO 3221 Conectividad de Redes Internetworking Contenidos Modelo de servicio del mejor esfuerzo (Best Effort Service) Esquema de direccionamiento.
REDES 315. capa de transporte (L4) host  En el ámbito de Internet, un puerto es el valor que se usa, en el modelo de la capa de transporte (L4), para.
Capa Transporte 3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capa Transporte3-1 Capítulo 3: Capa transporte ELO322: Redes de Computadores Agustín J. González Este material está basado en el material preparado como.
Universidad de Chile - Tupper 2007, Santiago - Fono: Fax: Módulo 9: Desarrollo de Aplicaciones.
Capa Transporte1 Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
Temario Introducción Clientes TCP Servidores Iterativos TCP Servidores Concurrentes UDP Multicasting Sincronización de procesos distr. Objetos remotos.
Universidad de Chile - Tupper 2007, Santiago - Fono: Fax: Módulo 9: Desarrollo de Aplicaciones.
Modelo TCP / IP Conjunto de protocolos. La sigla TCP/IP significa "Protocolo de control de transmisión/Protocolo de Internet" y se pronuncia "T-C-P-I-P".
Capítulo 7: Capa de transporte
INTEGRANTES: VERONICA SANCHEZ GOMEZ MARIA REBECA PEREZ MONTENEGRO VIRIDIANA MICHELLE JUAREZ GONZALEZ.
LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.
Redes de Datos Integrantes: Guízar Gómez Gerardo Nassir López Ortega Juan Manuel Rodríguez Castro Ronald Michel Silva Rangel Ángel Eduardo Capa 5. Sesión.
ElO3091 Conectividad de Redes Internetworking Contenidos Modelo de servicio del mejor esfuerzo (Best Effort Service) Esquema de direccionamiento Global.
Conceptos de protocolos de red
Introducción Nivel 4. Modelo OSI Propiedades Nivel 4 Entrega de mensajes garantizada. Entrega de mensajes en el mismo orden en el que fueron enviados.
Protocolos del modelo TCP/IP
Ing. Elizabeth Guerrero V.
2: Capa Aplicación 1 Capítulo 2: Capa Aplicación - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
4. Introducción a IP,TCP,UDP,ARP,ICMP
Capítulo 3: Capa Transporte - I
Jean Carlo Fernandez C.I Cesar Arismendi C.I
UD 1: “Introducción a los servicios de red e Internet”
PROTOCOLO TCP Y UDP.
Protocolos de comunicación TCP/IP
Ing. Elizabeth Guerrero V.
Protocolos de Transporte y Aplicación. – TCP y UDP
Tema 1 – Introducción a las Redes informáticas
Capa Aplicación: Programación de sockets
Nivel de Transporte en Internet
PROTOCOLOS Modelo TCP/IP
Gabriel Montañés León. TCP es un protocolo orientado a conexión es decir, que permite que dos máquinas que están comunicadas controlen el estado de la.
Modelo OSI Para redes………
TECNOLOGIAS INTEGRADAS DE INTERNET. CIRLEY CASTILLO MÓNICA MANTILLA DERLY VARGAS Aprendices: ING. BLANCA NUBIA CHITIVA Instructora: CENTRO DE INDUSTRIA.
Protocolo RTP Real-time Transport Protocol. RTP Videoconferencias Fue creado para cubrir la demanda de recursos en tiempo real por parte de los usuarios:
Protocolos de Transporte y Aplicación
Capa Transporte 1 Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
¿Qué es una red? Una red es la unión de dos o más ordenadores de manera que sean capaces de compartir recursos, ficheros, directorios, discos, programas,
Protocolos de Transporte y Aplicación Javier Rodríguez Granados.
Transcripción de la presentación:

Nivel 4: Transporte Protocolos End-to-End Teoría de las Comunicaciones – Octubre de 2011

Nivel de Red milagros.dc.uba.ar stone.ac.upc.es Nivel de Red Nivel de Enlace HD HD HD HDHD HD Host a Host

Nivel de Transporte EnriLean Nivel de Red Nivel de Enlace Nivel de Aplicación Nivel de Transporte O.S. HeaderDataHeaderData HD HD HD HDHD HD Canal Proceso a Proceso milagros.dc.uba.ar stone.ac.upc.es

Modelo OSI Session Network Link Physical Application Presentation Transport Network Link Network Transport Session Presentation Application Network Link Physical Peer-layer communication layer-to-layer communication Router

Modelo TCP/IP / UDP Datagram

Protocolos End-to-End Se apoyan en la Capa de Red, la cual es de mejor esfuerzo (Best-Effort) –Descarta mensajes –Reordena mensajes –Puede entregar múltiples copias de un mensaje dado –Limita los mensajes a algún tamaño finito –Entrega mensajes después de un tiempo arbitrariamente largo Sin embargo, pretendemos otro tipo de Servicios End-to-End para las Aplicaciones –Garantía de entrega de mensajes –Entrega de mensajes en el mismo orden que son enviados –Entrega de no más de una copia de cada mensaje –Soporte para mensajes arbitrariamente largos –Soporte de sincronización –Permitir al receptor controlar el flujo de datos del transmisor –Soportar múltiples procesos de nivel aplicación en cada máquina Protocolos End-to-End: Algoritmos para proveer “Sevicios End-to-End sobre Servicios de Red Best Effort”

Primer paso: Servicio No Confiable de Entrega de Mensajes Proceso a Proceso Comunicación no costosa entre procesos –Soportar múltiples procesos de nivel aplicación en cada máquina –Evitar la sobrecarga y las demoras propias de la entrega ordenada y confiable de mensajes –Enviar mensajes desde y hacia sockets (“enchufes”) User Datagram Protocol (UDP) –IP + Número de Puerto (socket) para proveer demultiplexado hacia procesos destino –Control de error opcional

El Demultiplexor Simple UDP: User Datagram Protocol Provee comunicación Proceso a Proceso Multiplexación/demultiplexación de mensajes -> Múltiples Procesos compartiendo la misma red. SrcPortDstPort ChecksumLength Data UDP Message QueuesUDP Message Header (8 bytes)  ?

Características de UDP Servicio de entrega no confiable y no ordenado de datagramas Sin control de congestión –No reacciona ante señalizaciones de estado de congestión –Puede congestionar las colas de entrada y salida en los routers -> Tráfico egoísta –Soluciones posibles: Implementar el control de congestión en las Capas de Aplicación Implementar el control de congestión en los Routers –DCCP (Datagram Congestion Control Protocol) (experimental) No provee Control de Flujo –El destinatario puede verse saturado, perdiendo información No establece una conexión … mantiene varias características best-effort de IP !

Razones para adoptar UDP Control preciso sobre qué información se envía y cuándo se envía –Inmediatamente que un proceso escribe en el socket –… UDP lo empaqueta y lo envía a IP Sin demoras para establecimiento de conexión –UDP no contempla ningún procedimiento preliminar formal –… los cual evita cualquier tipo de demora extra Sin “estado de conexión” –No se reservan parámetros, números de secuencia, etc. –… lo cual facilita manipular muchos clientes activos simultáneamente Pequeño overhead por encabezado –UDP header de solo 8 bytes

Puertos y Aplicaciones UDP maneja Puertos definidos en cada extremo. (2^16 Ports) –El lado servidor posee (“expone”) puertos “bien conocidos” –Ver numbers/service-names-port-numbers.xml –En un host Linux ver /etc/services –Ej: smtp 25/tcp mail Utilizando getservicebyname() : pedro:~# telnet miservidor smtp Trying Connected to miservidor. Escape character is '^]'. 220 miservidor ESMTP Sendmail 8.9.1b+Sun/8.9.1; Sun, 31 Oct :43:20 GMT quit 221 miservidor closing connection Connection closed by foreign host. pedro:~# pedro:~# telnet miservidor 25 Trying Connected to miservidor. Escape character is '^]'. 220 miservidor ESMTP Sendmail 8.9.1b+Sun/8.9.1; Sun, 31 Oct :43:06 GMT quit 221 miservidor closing connection Connection closed by foreign host. pedro:~# pedromiservidor IANA: Internet Assigned Numbers Authority

Puertos y Rangos …

Aplicaciones DHCPNTPVoIP

User process Web server (port 80) Client host Server host Echo server (port 7) Service request for socket (i.e., the Web server) Web server (port 80) Echo server (port 7) Service request for socket (i.e., the echo server) OS Client Client host Server Socket Client Socket Canal Proceso a Proceso:

VersionHLen TOSLength IdentFlagsOffset TTLProtocolChecksum SourceAddr DestinationAddr Options (variable) Pad (variable) Contexto para encabezado UDP SrcPortDstPort ChecksumLength Data IP UDP Pseudo encabezado Largo de encabezado + datos (UDP) – 8 (UDPh) – 20 (IPh) = (UDPd) Chequeo de suma opcional: Psuedo header (IP) + UDP header + Data

Máquinas de Estado Port asignado automáticamente por el kernel Cada socket UDP provee un modelo de Server iterativo El buffer de recepción opera en modo FIFO Cuando el proceso llama recvfrom(), obtiene el datagrama tomado con disciplina FIFO. Buffer limitado Cada socket UDP provee un modelo de Server iterativo El buffer de recepción opera en modo FIFO Cuando el proceso llama recvfrom(), obtiene el datagrama tomado con disciplina FIFO. Buffer limitado

udp-client.c #include int main(int argc, char**argv) { int sockfd,n; struct sockaddr_in servaddr,cliaddr; char sendline[1000]; char recvline[1000]; // Leo los argumentos de la linea de comando. if (argc != 3) { Uso: udp-client printf("Uso: udp-client \n"); exit(1); } // Creo un socket de UDP (SOCK_DGRAM). sockfd=socket(AF_INET,SOCK_DGRAM,0); // Especifico la dirección y puerto del servidor. bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr=inet_addr(argv[1]); servaddr.sin_port=htons(atoi(argv[2])); // Envio y recibo mensajes hasta que el usuario entre CTRL-D. while (fgets(sendline,10000,stdin)!= NULL) { sendto(sockfd,sendline,strlen(sendline),0, (struct sockaddr *)&servaddr,sizeof(servaddr)); // Me bloqueo, esperando un mensaje. n=recvfrom(sockfd,recvline,10000,0,NULL,NULL); recvline[n]=0; fputs(recvline,stdout); } socket pointer to buffer for data size of buffer flags MSG_PEEK, MSG_OOB, MSG_WAITALL address struct of sending peer length of address struct of sending peer socket pointer to buffer for data size of buffer flags MSG_PEEK, MSG_OOB, MSG_WAITALL address struct of sending peer length of address struct of sending peer Si no se especifica MSG_WAITALL se devolverá solamente los bytes hasta el final del primer mensaje.

udp-server.c #include int main(int argc, char**argv) { int sockfd,n; struct sockaddr_in servaddr,cliaddr; socklen_t len; char mesg[1000]; // Leo los argumentos de la linea de comando. if (argc != 2) { Uso: udp-server \n printf("Uso: udp-server \n"); exit(1); } // Creo un socket de UDP (SOCK_DGRAM). sockfd=socket(AF_INET,SOCK_DGRAM,0); // Ligo el socket al puerto elegido. bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr=htonl(INADDR_ANY); servaddr.sin_port=htons(atoi(argv[1])); bind(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr)); for (;;) { len = sizeof(cliaddr); // Me bloqueo, esperando un mensaje. printf("Esperando un mensaje...\n"); n = recvfrom(sockfd,mesg,1000,0,(struct sockaddr *)&cliaddr,&len); // Llegó un mensaje; envio respuesta al cliente. sendto(sockfd,mesg,n,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr)); mesg[n] = 0; Mensaje recibido: %s",mesg printf("Mensaje recibido: %s",mesg); } }

Multicast y Broadcast TCP y UDP UDP Solamente con UDP No es posible con TCP –Sería ineficiente sostener para cada posible host destino (es decir, para cada “conexión”) los mecanismos de retransmisión, ordenamiento de paquetes, control de flujo, etc. –Atentaría contra el objetivo principal de aliviar la utilización de la red –Imposible sostener una conexión con estado, ya que se desconoce el destino

Otro protocolo de transporte: Remote Procedure Call (RPC) Paradigma clásico de Pedido/Respuesta o Transacción orientada a Mensajes Mecanismo bien conocido para estructurar sistemas distribuidos Abstrae las llamadas locales: El Server puede ser local o remoto El Cliente se bloquea esperando la respuesta No alcanza con UDP: Se deben identificar los correctos procesos en los hosts destino y origen para entregar debidamente pedidos y respuestas. TCP podría solucionarlo, pero a un costo demasiado alto (overhead) RPC es confiable y soporta tamaños grandes de mensajes. Implementaciones más conocidas: SunRPC, DCE-RPC

Mapeo Automático de Puertos Puerto bien Conocido (111)

Real Time Protocol (RTP) UDP ideal por su simpleza y bajo overhead RTP sobre UDP Aplicaciones (voz, video) con requerimientos temporales estrictos (80’s) Información de tiempo (timestamps) Orden Tipo de codificación/compresión de la señal analógica Negociación RTCP (Control) (<5% del BW RTP) Información periódica de control acerca del flujo RTP Performance Sincronización Identidad

Real Time Protocol (RTP) RTP + RTCP (Control) (<5% del BW RTP) Información periódica de control acerca del flujo RTP Performance Sincronización Identidad +RTCP