Capítulo 3: Capa Transporte - I

Slides:



Advertisements
Presentaciones similares
TEMA1. Servicios de Red e Internet
Advertisements

Capa de transporte.
MODELO TCP/IP.
7: Multimedia en Redes de Computadores7-1 Capítulo 7 Multimedia en Redes de Computadores Computer Networking: A Top Down Approach Featuring the Internet,
PROTOCOLO DE TRANSPORTE Profesor Daniel Díaz Ataucuri Introducción
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.
Capítulo 2: Capa Aplicación
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.
2: Capa Aplicación 1 Capa Aplicación: FTP ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
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.
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.
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.
2: Capa Aplicación 1 Capa Aplicación: File Transfer Protocol ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Protocolos del modelo TCP/IP
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.
Capítulo 3: Capa Transporte - I
Capa Aplicación: Programación de sockets
Capítulo 5: Capa Enlace de Datos - I
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.
Protocolos de Transporte y Aplicación Javier Rodríguez Granados.
5: Capa Enlace de Datos5-1 Capítulo 5: Capa Enlace de Datos - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Teoría sobre redes DNS DHCP UDP OSI HTTP MA C Switch Hub Router Ethernet IPIP LDA P Netbios BOOTP Puertos IMA P POP3 SMTP Telnet SSH Cortafuegos.
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capítulo 2: Capa Aplicación - I
Capítulo 2: Capa Aplicación - I
Capa Aplicación: Programación de sockets
Capítulo 5: Capa Enlace de Datos - I
Teleprocesos Ing. Leonardo Párraga.
Capítulo 3: Capa Transporte - I
Capítulo 3: Capa Transporte - I
Capítulo 5: Capa Enlace de Datos - I
Capítulo 5: Capa Enlace de Datos - I
Capítulo 8, Sección 8.6: IPsec
Capa Aplicación: Programación de sockets
Capítulo 3: Capa Transporte: Principios del control de congestión
Capítulo 4: Capa Red - II ELO322: Redes de Computadores
Capítulo 4: Capa Red - II ELO322: Redes de Computadores
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capítulo 8, Sección 8.6: IPsec
Capítulo 3: Capa Transporte - I
Capítulo 3: Capa Transporte - I
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capítulo 3: Capa Transporte: Principios del control de congestión
Capa Aplicación: File Transfer Protocol
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capítulo 5: Capa Enlace de Datos IV
Capa Aplicación: File Transfer Protocol
Capa Aplicación: Programación de sockets
Capítulo 4: Capa Red - II ELO322: Redes de Computadores
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capa Aplicación: File Transfer Protocol
Capa Aplicación: File Transfer Protocol
Capítulo 2: Capa Aplicación - I
Capítulo 3: Capa Transporte - I
Capítulo 3: Capa Transporte - I
Capítulo 2: Capa Aplicación - I
Capa Aplicación: Programación de sockets
Capítulo 6: Capa Enlace de Datos y LANS
8.6-1 Capítulo 8, Sección 8.6: IPsec Material basado en el Texto: Computer Networking: A Top Down Approach Featuring the Internet, Jim Kurose, Keith Ross.
Capítulo 3: Capa Transporte: Principios del control de congestión
Capa Aplicación: File Transfer Protocol
Capítulo 3: Capa Transporte: Principios del control de congestión
Capa Aplicación: File Transfer Protocol
Los protocolos de la capa de red del modelo OSI especifican el direccionamiento y los procesos que permiten que los datos de la capa de transporte sean.
En la familia de protocolos de Internet UDP proporciona una sencilla interfaz entre la capa de red y la capa de aplicación. UDP no otorga garantías para.
CAPA DE RED- OSI. Intercambiar secciones de datos individuales a través de la red entre dispositivos finales identificados. Provee servicios para:
Capa Aplicación: 2.7 Programación de sockets
Capítulo 6: Capa Enlace de Datos y LANS
Transcripción de la presentación:

Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en: Material de apoyo al texto Computer Networking: A Top Down Approach Featuring the Internet. Jim Kurose, Keith Ross. Capa Transporte

Capítulo 3: Capa Transporte Objetivos: Entender los principios detrás de los servicios de la capa transporte: Multiplexing / demultiplexing Transferencia confiable de datos Control de flujo Control de congestión Aprender sobre los protocolos de transporte en la Internet: UDP (User Datagram Protocol): es un protocolo de transporte sin conexión TCP (Transmission Control Protocol): es un protocolo de transporte orientado a la conexión Control de congestión en TCP Capa Transporte

Contenido de Capítulo 3 3.1 Servicios de la capa transporte 3.2 Multiplexing y demultiplexing 3.3 Transporte sin conexión: UDP 3.4 Principios de transferencia confiable de datos 3.5 Transporte orientado a la conexión: TCP Estructura de un segmento Transferencia confiable de datos Control de flujo Gestión de la conexión 3.6 Principios del control de congestión 3.7 Control de congestión en TCP Capa Transporte

Protocolos y servicios de transporte application transport network data link physical Proveer comunicación lógica entre procesos de aplicaciones corriendo en diferentes hosts Los protocolos de transporte corren en sistemas terminales (computadores y no son requeridos en equipos internos como routers) Hay más de un protocolo de transporte disponible para las aplicaciones Más comunes: TCP y UDP Hoy también SCTP (Stream Control Transmission Protocol, 2000), y DCCP (Datagram Congestion Control Protocol, 2005) logical end-end transport network data link physical network data link physical network data link physical application transport network data link physical Capa Transporte

Capa transporte vs. capa red Analogía: 12 niños en una casa envían cartas a 12 niños. en otra casa Ann y Bill recopilan las cartas en cada hogar y las envían por correo. También distribuyen las cartas que llegan. Procesos = niños Mensajes aplicación = cartas en sobres Hosts = casas Protocolo de transporte = Ann y Bill Protocolo capa red = servicio de correos Capa transporte: encargada de la comunicación lógica entre procesos Depende y mejora los servicios de la capa de red Capa de red: encargada de la comunicación lógica entre hosts Capa Transporte

Protocolos de capa transporte en Internet TCP: Entrega confiable y en orden‏ Tiene Control de flujo Tiene control de congestión Establecimiento de conexión UDP: Entrega no confiable, tal vez desordenada:‏ Básicamente el mismo servicio de IP: “mejor esfuerzo” (best- effort)‏ Qué servicios no se ofrecen: Garantías de retardo Garantías de ancho de banda No se ofrecen básicamente porque no es fácil -o posible- de implementar basándose en los servicios de IP.‏ application transport network data link physical logical end-end transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical network data link physical Capa Transporte

Contenido de Capítulo 3 3.1 Servicios de la capa transporte 3.2 Multiplexing y demultiplexing 3.3 Transporte sin conexión: UDP 3.4 Principios de transferencia confiable de datos 3.5 Transporte orientado a la conexión: TCP Estructura de un segmento Transferencia confiable de datos Control de flujo Gestión de la conexión 3.6 Principios del control de congestión 3.7 Control de congestión en TCP Capa Transporte

Multiplexación/demultiplexación Multiplexación en host Tx: Capa de transporte: Recopila datos desde múltiples sockets, pone info. en encabezado (puerto e IP origen‏, puerto e IP destino) Demultiplexación en host Rx: Entrega el segmento recibido al socket correcto Basado en puerto destino (UDP) Basado en 4-tupla (TCP) application application P1 P2 application socket P3 transport P4 process transport network transport link network network physical link link physical physical Capa Transporte Transport Layer 3-8

Cómo trabaja la demultiplexación? El host Rx recibe datagramas IP Cada datagrama tiene dirección IP fuente y dirección IP destino Cada datagrama lleva 1 segmento de la capa transporte Cada segmento tiene números de puerto fuente y destino Un host usa las direcciones IPs y números de puertos para conducir un segmento al socket apropiado Puertos 0-1023 están reservados para protocolos establecidos, HTTP: 80, ssh: 22, todos definidos en RFC 1700 32 bits # puerto fuente # puerto dest. Otros campos del encabezado Datos de la aplicación (mensaje)‏ Formato de segmento TCP/UDP Capa Transporte

Demultiplexación sin conexión (UDP)‏ Capa de transporte del receptor reconoce Socket destino por puerto destino y la aplicación reconocer remitente por la IP y puerto origen. Cuando la capa transporte recibe un segmento UDP (lado receptor): Chequea número de puerto destino en segmento Dirige el segmento UDP al socket con ese número de puerto Datagramas IP con direcciones IP y/o números de puerto origen diferentes pueden ser dirigidos al mismo socket destino. Capa Transporte

Re-visitemos: Código Cliente Socket UDP Cliente: Creamos socket y datagrama con núm. de puerto: serverName = 'hostname' serverPort = 12000 clientSocket = socket(AF_INET,SOCK_DGRAM) message = …... clientSocket.sendto(message,(serverName, serverPort)) Durante su transporte en la red, el Socket UDP destino queda identificado por (2-tuple): (Dirección IP destino, Número puerto destino)‏ Usado por capa de red para conducirlo al computador destino Usado por capa de transporte para entregarlo al socket adecuado Capa Transporte

Re-visitemos: Código Servidor Socket UDP Servidor crea el socket en un puerto específico: serverPort = 12000 serverSocket = socket(AF_INET, SOCK_DGRAM) serverSocket.bind(('', serverPort)) : Recibe paquete del cliente, usa dirección IP y puerto orígenes del mensaje para responder: message, clientAddress = serverSocket.recvfrom(2048) Servidor responde usando la información obtenida del paquete: serverSocket.sendto(modifiedMessage, clientAddress) Capa Transporte

Demultiplexión sin conexión (ejemplo) serverSocket=socket(AF_INET, SOCK_DGRAM) serverSocket.bind(('',12000)) : clientSocket = socket(AF_INET,SOCK_DGRAM) : clientSocket.sendto(message ,(serverName,12000)) clientSocket = socket(AF_INET,SOCK_DGRAM) : clientSocket.sendto(message ,(serverName,12000)) application application application P1 P3 P4 transport transport transport network network network link link link physical physical physical source port: 9157 dest port: 12000 source port: ? dest port: ? source port: 12000 dest port: 9157 source port: ? dest port: ? Un mismo socket recibe mensajes desde distintos hosts. La aplicación los distingue por la dirección IP y puerto origen de cada mensaje.

Demultiplexación orientada a la conexión (TCP) Un servidor puede mantener muchos sockets TCP simultáneos en un mismo puerto: Cada socket es identificado por su 4-tupla propia Un servidores Web tiene un socket diferente por cada cliente conectado HTTP no-persistente tendrá diferentes sockets por cada petición de datos, todos ellos con puerto 80 en servidor. Un socket maneja solo un cliente. Sockets TCP queda definido por (4-tupla): Dirección IP Origen Número de puerto Origen Dirección IP Destino Número de puerto Destino Host receptor usa los cuatro valores para dirigir los segmentos al socket apropiado. Capa Transporte

Re-visitemos: Código Cliente Socket TCP Cliente: Creamos socket con direc. IP y núm. de puerto: serverName ='hostname' serverPort = 12000 clientSocket = socket(AF_INET, SOCK_STREAM) clientSocket.connect((serverName,serverPort)) : La capa de transporte asigna un puerto local para el socket del cliente. Para enviar información vía un socket conectado sólo se envía el dato (no requiere indicar destino cada vez) sentence = raw_input('Input lowercase sentence: ') clientSocket.send(sentence) Capa Transporte

Re-visitemos: Código Servidor Socket TCP Servidor crea el “welcome socket” en un puerto específico: serverPort = 12000 serverSocket = socket(AF_INET,SOCK_STREAM) #welcome socket serverSocket.bind(('',serverPort)) serverSocket.listen(1) Al aceptar una conexión se crea un nuevo socket para este cliente específico: connectionSocket, addr = serverSocket.accept() Se lee desde socket de conexión: sentence = connectionSocket.recv(1024) Se responde usando el mismo socket de conexión: connectionSocket.send(capitalizedSentence) Capa Transporte

Demultiplexación orientada a la conexión (cont.)‏ server: IP address=B host: IP address=C host: IP address=A application application application P4 P5 P6 P3 P2 P3 transport transport transport network network network link link link physical physical physical source IP,port: A,9157 dest IP, port: B,80 source IP,port: C,5775 dest IP,port: B,80 source IP,port: B,80 dest IP,port: A,9157 source IP,port: C,9157 dest IP,port: B,80 Tres segmentos destinados a IP address: B, dest port: 80 son demultiplexados a sockets diferentes. Esto es muy distinto a UDP Capa Transporte

Demultiplexación orientada a la conexión (cont.)‏ server: IP address B Servidor con hebras host: IP address C host: IP address A application application application P4 P3 P2 P3 transport transport transport network network network link link link physical physical physical source IP,port: A,9157 dest IP, port: B,80 source IP,port: C,5775 dest IP,port: B,80 source IP,port: B,80 dest IP,port: A,9157 source IP,port: C,9157 dest IP,port: B,80 Aquí un único proceso maneja distintos sockets para cada cliente, uno en cada hebra. La programación de esto se estudia en ELO330 Capa Transporte

Un autodidacta de Internet dice “Como el campo número de puerto es de 16 bits, un servidor TCP no pueden atender más de 216 clientes simultáneamente.” ¿Está usted de acuerdo? Justifique. No es correcto. El rango para el número de puerto no limita el número de clientes conectados a un servidor. En general los clientes vienen desde distintas máquinas y el servidor creará un nuevo socket (no puerto) por cada cliente. Ciertamente hay un límite pero no está relacionado con el rango para los puertos pues todos los sockets usan un único puerto en el servidor. Cada conexión TCP queda definida por la 4-tupla: (IP_Origen, Puerto_origen, IP_destino, Puerto_destino)

Contenido de Capítulo 3 3.1 Servicios de la capa transporte 3.2 Multiplexing y demultiplexing 3.3 Transporte sin conexión: UDP 3.4 Principios de transferencia confiable de datos 3.5 Transporte orientado a la conexión: TCP Estructura de un segmento Transferencia confiable de datos Control de flujo Gestión de la conexión 3.6 Principios del control de congestión 3.7 Control de congestión en TCP Capa Transporte

UDP: User Datagram Protocol [RFC 768] Básicamente agrega puerto a paquete IP Servicio de “mejor esfuerzo”, un segmento UDP se puede: perder Entregar a la aplicación fuera de orden Sin conexión: No hay handshaking (establecimiento de conexión) entre servidor y receptor UDP Cada segmento UDP es manejado en forma independiente de los otros Usos de UDP Streaming de multimedios toleran pérdidas les afecta la tasa de transmisión DNS SNMP (Simple Network Management Protocol)‏ Transferencia confiable sobre UDP: Confiabilidad implementada en aplicación “Mejor esfuerzo”: Haré todo lo posible por entregarlo, pero no lo garantizo. Capa Transporte

UDP: más detalle Por qué existe UDP? Largo, en bytes del segmento UDP, incluyendo encabezado Por qué existe UDP? No requiere establecimiento de conexión (lo cual agregaría retardo)‏ Simple: no se requiere mantener estado en el Tx y el Rx Encabezado pequeño => menor overhead Al no tener control de congestión puede tratar de transmitir tanto como se desee. 32 bits = 4 bytes # puerto origen # puerto dest. largo checksum Datos de la Aplicación (mensaje)‏ Formato segmento UDP “muy simple” Capa Transporte

Checksum UDP (suma de chequeo)‏ Objetivo: detectar “errores” (e.g., bits cambiados) en segmentos transmitidos Transmisor: Trata el contenido de cada segmento como una secuencia de enteros de 16 bits checksum: “suma” del contenido del segmento y luego invierte cada bits (se conoce como tomar el complemento 1). Transmisor pone el valor del checksum en el campo checksum del datagrama UDP Incluye algunos campos del Protocolo IP (para los que quieren comprobarlo con wireshark). Receptor: Calcula el checksum del segmento recibido Chequea si el checksum calculado corresponde al valor de checksum recibido en el campo: NO corresponde => error detectado, se descarta paquete Sí => no hay error detectado. Pero podrían haber errores sin embargo! Capa Transporte

Ejemplo Checksum en Internet Notar Cuando sumamos números, la reserva del bit más significativo debe ser sumada al resultados Luego se invierte cada bit (esto es tomar el complemento 1 del resultado). Ejemplo: sumar dos enteros de 16-bits 1 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 Kurose and Ross forgot to say anything about wrapping the carry and adding it to low order bit Sumar reserva “suma” checksum Capa Transporte

Contenido de Capítulo 3 3.1 Servicios de la capa transporte 3.2 Multiplexing y demultiplexing 3.3 Transporte sin conexión: UDP 3.4 Principios de transferencia confiable de datos 3.5 Transporte orientado a la conexión: TCP Estructura de un segmento Transferencia confiable de datos Control de flujo Gestión de la conexión 3.6 Principios del control de congestión 3.7 Control de congestión en TCP Capa Transporte