Tema 8. El nivel de transporte en Internet

Anuncio
Redes (IS20)
Ingeniería Técnica en Informática de Sistemas
http://www.icc.uji.es
ÍNDICE
CAPÍTULO 8: El nivel de transporte en Internet
1. Introducción
2. Protocolo UDP
3. Protocolo TCP
Curso 2002-2003 - Redes (IS20) -Capítulo 8
1
1.Introducción
• Capa de transporte: proporciona transporte de datos confiable y
económico entre máquina independiente de la red física.
1. Introducción
– Servicio eficiente, confiable y económico a usuarios (p.ejemplo procesos
de capa de aplicación
• A nivel IP se identifica:
– El host que recibirá el datagrama (nº IP)
– Pero no se identifica la aplicación concreta que lo recibe
• Ahora necesitamos:
– Identificar los destinos a nivel de las funciones que implementan, sin
conocer el proceso concreto, que ejecuta la aplicación
• Se definen direcciones de transporte en las que los procesos
pueden estar a la escucha de solicitudes de conexión
– Se proporciona una serie de destinos abstractos (identificados por un
número) llamados “puertos de protocolos”
– Estos puertos están asociados a servicios o aplicaciones concretas
Curso 2002-2003 - Redes (IS20) -Capítulo 8
2
1
1.Introducción
• Para obtener un servicio de una máquina necesitamos un par
(puntos de acceso al servicio de transporte TSAP)
1. Introducción
– dirección IP de la máquina
– número de puerto de protocolo asociado al servicio
• En la capa de transporte cada mensaje lleva:
– Número de puerto de destino y número de puerto fuente de la máquina
fuente (para permitir replica)
• En internet hay servicios de transporte:
– Orientados a conexión (protocolo TCP): con tres fases,
establecimiento, transferencia y liberación de conexión
– Sin conexión (protocolo UDP)
• Ejemplo de primitivas de transporte: socket
– Socket (crea punto terminal de comunicación), bind (conecta dirección
local a un socket), listen (cola de aceptación de conexiones), accept
(bloquea hasta intento de conexión), connect (intento de establecer
conexión), send y receiver (envía y recibir datos), close (liberar
conexión)
Curso 2002-2003 - Redes (IS20) -Capítulo 8
3
2. Protocolo UDP
2. Protocolo UDP
2.1. Introducción
2.2. Formato del mensaje UDP
2.3. Particularidades
Curso 2002-2003 - Redes (IS20) -Capítulo 8
4
2
2.1. Introducción
• UDP (User Datagram Protocol, RFC 768): Utiliza el mecanismo de
puertos para distinguir entre servicios:
– El puerto destino:
2. Protocolo UDP
• El área de datos se envía a un servicio concreto en la capa de aplicación
– El puerto fuente:
• El servicio del destino puede responder a la aplicación que genero el mensaje
• Proporciona el mismo tipo de envío que IP:
– Inseguro y No orientado a conexión
•
•
•
•
No usa sistemas de acuse de recibo
No ordena los mensajes que llegan
No controla el flujo de información entre fuente y destino
Los mensajes pueden perderse, duplicarse, llegar desordenados
• Como consecuencia de la inseguridad:
– Los programas de aplicación son responsables de manejar estos
problemas
Curso 2002-2003 - Redes (IS20) -Capítulo 8
5
2.2. Formato del mensaje UDP
2. Protocolo UDP
• Cada mensaje UDP consta de encabezado y área de datos
• Formato del encabezado (8 bytes)
– Puerto fuente UDP
• Número de puerto asociado a la aplicación que envía el mensaje
– Puerto destino UDP
• Número de puerto para identificar el servicio (la aplicación) destino
– Longitud del mensaje UDP
• Número de bytes incluyendo el encabezado
• Mínimo 8 bytes
– UDP cheksum (opcional)
• Suma de comprobación del contenido del mensaje UDP. Cero sino se usa.
Curso 2002-2003 - Redes (IS20) -Capítulo 8
6
3
2.3. Particularidades
• Encapsulación:
2. Protocolo UDP
– Dentro del área de datos del datagrama IP:
• UDP proporciona multiplexación y demultiplexación a través de
mecanismo de puertos:
– Varias conexiones de transporte usan la misma conexión de red
• Transmisión de datos desde aplicaciones: desde puerto los pasan a IP
• Recibe datagramas IP y los destina a la aplicación en función del puerto.
– Chequea si el número de puerto coincide con uno en uso
– Si no existe:
» ICMP envía el mensaje puerto inalcanzable ydescarta el datagrama
Curso 2002-2003 - Redes (IS20) -Capítulo 8
7
2. Protocolo UDP
¿Cómo se asignan los números de puertos?
• Una autoridad central asigna Puertos a Aplicaciones o Servicios
(Puertos “Bien conocidos”)
• O Mediante asignación dinámica:
– Puertos no conocidos globalmente:
• Un programa necesita un puerto y el software de red se lo asigna
• Queremos conocer el número de puerto que está utilizando una aplicación y
hacemos una petición ¿Qué puerto está usando el servicio?
• En redes TCP/IP se utiliza un mecanismo híbrido entre las dos
soluciones
Curso 2002-2003 - Redes (IS20) -Capítulo 8
8
4
2. Protocolo UDP
• Ejemplo de puertos UDP actualmente asignados
Curso 2002-2003 - Redes (IS20) -Capítulo 8
9
3. Protocolo TCP
3. TCP
3.1. Modelo de servicio TCP
3.2. Protocolo TCP
3.3. Formato de segmento
3.4. Gestión de conexión
Curso 2002-2003 - Redes (IS20) -Capítulo 8
10
5
3.1. Modelo de servicio TCP
3. Protocolo TCP
• TCP (Transmision control protocol, RFC 793, 1122, 1323):
– Proporciona transferencia segura y orientada a conexión
– La entidad de transporte TCP del emisor entrega datos a la entidad TCP
en receptor
• Entidad de transporte (parte del software), protocolo (conjunto de reglas)
– IP no ofrece seguridad de entrega de datagrama, TCP debe garantizar
mecanismos para una transmisión segura
• El emisor conserva una copia de cada paquete que envía
• Espera un mensaje de confirmación de recepción (acknowledgement)
• Inicia un timer
– Si sobrepasa un tiempo antes de confirmación: retransmite
• Detecta duplicados con un número de secuencia para cada paquete
Curso 2002-2003 - Redes (IS20) -Capítulo 8
11
3.1. Modelo de servicio TCP
3. Protocolo TCP
• Transmisor y receptor crean puntos terminales (TSAP de 48
bits) sockets
• TCP utiliza números de puertos de protocolo:
– Para identificar la aplicación destino (igual que UDP)
– Usa el concepto de “punto final” (endpoint) de una conexión:
• Punto final:
– Es la combinación del número IP de la máquina y del puerto:
(128.9.0.32 , 1184) y (128.10.2.3 , 25)
• Una máquina puede tener varias conexiones que usen el mismo puerto (Un
socket destino puede aceptar varias conexiones):
(128.9.0.32 , 25) y (128.10.2.3 , 25)
Curso 2002-2003 - Redes (IS20) -Capítulo 8
12
6
• Números de puertos TCP:
– Se usa un esquema de puertos asignados (“bien conocidos”) y números
de puertos libres
– Los números de puerto inferiores a 256 se llaman puertos bien conocidos
(well-known ports) y se reservan para servicios estándar (RFC 1700)
3. Protocolo TCP
• Ejemplo: conexión puerto 21 para transferir archivos (FTP), puerto 23 para establecer
conexión remota (TELNET)
Curso 2002-2003 - Redes (IS20) -Capítulo 8
13
3.2. El protocolo TCP
• Las entidades emisora y receptora intercambian datos en
forma de segmentos:
3. Protocolo TCP
– Cabecera de 20 bytes+bytes opcionales+bytes de datos
• Tamaño del segmento limitado por:
– (Cabecera TCP+ datos) inferior a 65535 bytes que caben en datos IP
– El segmento debe caber en la MTU (unidad de transferencia máxima
de la red) sino se debe fragmentar.
• El protocolo básico usado por entidades TCP es el protocolo
de la ventana corrediza o deslizante.
–
–
–
–
Permite la transmisión de varios paquetes antes de recibir confirmación
Paquetes numerados (número de secuencia)
El transmisor inicia temporizador por cada paquete que envía (timer)
El receptor devuelve paquetes en las que puede haber datos y/o acuse
de recibo (siguiente número de secuencia que espera recibir)
– Si expira temporizador sin recibir ACK se retransmite
Curso 2002-2003 - Redes (IS20) -Capítulo 8
14
7
3. Protocolo TCP
• Tenemos una ventana de tamaño determinado y podemos
transmitir todos los paquetes dentro de ella
• Cuando se recibe la confirmación del paquete 1 y se desplaza la
ventana
• De esta forma los paquetes se dividen en:
– Dentro de la ventana: enviados y no confirmados (un timer por paquete)
– A la derecha de la ventana: enviados y confirmados
– A la izquierda de la ventana: no enviados
Curso 2002-2003 - Redes (IS20) -Capítulo 8
15
• Matizaciones sobre las ventanas deslizantes en TCP
3. Protocolo TCP
– TCP ve la secuencia de datos a transmitir como un conjunto ordenado
de bytes (numerados secuencialmente)
– La divide en segmentos para transmitirla y viajan en un datagrama IP
– Usa el mecanismo de ventana deslizante para:
• Proporcionar una transmisión segura
• Control de flujo
– Ventana deslizante TCP
• Bytes a la derecha (1,2): enviados y confirmados
• Bytes 3-7: enviados y no confirmados
• Bytes 8-11: no han sido enviados, pueden enviarse
– El receptor tiene un buffer para recomponer la secuencia de datos
– Una conexión TCP es “full-duplex” las dos partes tienen ventanas
• Control de flujo:
– Se permite que el tamaño de la ventana varíe dinámicamente
– Con cada confirmación se envía el tamaño de la ventana
• Indica los bytes adicionales que el receptor está preparado para recibir
• El emisor varía su ventana en función de esas peticiones
Curso 2002-2003 - Redes (IS20) -Capítulo 8
16
8
3.3. Formato del segmento TCP
3. Protocolo TCP
20 bytes
• Existen segmentos sin datos: acuses y mensajes de control
• Puerto Fuente y Destino: Contiene los puertos fuente y destino de TCP
(puertos locales de conexión)
• Número de Secuencia: Posición en la secuencia de bytes del emisor que
corresponde al primer dato del área de datos del segmento
• Número de confirmación: Número de bytes que el receptor espera
recibir a continuación. Se realiza así porque:
• Los segmentos que se envían tienen longitud variable
• Los segmentos retransmitidos pueden tener mayor número de datos que original,etc
Curso 2002-2003 - Redes (IS20) -Capítulo 8
17
3. Protocolo TCP
• Longitud del encabezado: Longitud encabezado en palabras de 32 bits
• Bit de código (6 bits): Especifica propósito y contenido del segmento
– URG a 1 si está en uso el puntero urgente (sirve para indicar desplazamiento en
bytes a partir del número actual de secuencia en que se encuentra datos
urgentes, p.ej. Mensaje de interrupción)
– ACK a 1 para indicar número de acuse de recibo válido, a 0 el segmento no
contiene acuse (se ignora el campo)
– PSH a 1 se indica a receptor entregar los datos a la aplicación a su llegada (no
ponerlos en buffer)
– RST sirve para reestablecer una conexión o para rechazar un segmento, etc
– SYN a 1 se usa para establecer conexiones
– FIN a 1 se usa para liberar conexiones
Curso 2002-2003 - Redes (IS20) -Capítulo 8
18
9
3. Protocolo TCP
• Ventana: Número de datos que el receptor está dispuesto a admitir
• Suma de comprobación: para control de errores
• Opciones:
– Ejemplo: host especifica carga útil TCP máxima que está dispuesto a aceptar.
Curso 2002-2003 - Redes (IS20) -Capítulo 8
19
3.4. Gestión de conexión
• Establecimiento de una conexión TCP: Se utiliza un protocolo de
3. Protocolo TCP
tipo Handsake (acuerdo de 3 vías)
– El servidor espera conexión entrante:
• Listen, accept SYN=1, ACK=1 o RST para rechazar conexión
– Cliente ejecuta connect con IP y puerto de conexión
• SYN=1, ACK=0
– Una vez establecida la conexión los datos pueden circular en ambas
direcciones (no hay maestro y esclavo)
– En el protocolo se acuerdan los números de secuencia iniciales de
ambas partes
Curso 2002-2003 - Redes (IS20) -Capítulo 8
20
10
3.4. Gestión de conexión
• Cierre de una conexión TCP: Se utiliza también un protocolo de tipo
3. Protocolo TCP
Handsake
– Las conexiones TCP son “full-duplex” por lo que hay que cerrar la
conexión en ambos sentidos
• Al enviar FIN en un sentido se desconecta
• En el otro sentido puede seguir habiendo flujo de datos entrante pero nadie
escucha
• Cuando ambos sentidos desconectados FIN de conexión
Curso 2002-2003 - Redes (IS20) -Capítulo 8
21
3. Protocolo TCP
• Resumen de una conexión TCP:
Curso 2002-2003 - Redes (IS20) -Capítulo 8
22
11
Descargar