El nivel de transporte

Anuncio
El nivel de transporte
Jesús Moreno León
Alberto Molina Coballes
Redes de Área Local
Septiembre 2009
Nivel de transporte
Gobierna el acceso múltiple a la red de los diversos
procesos de la máquina que quieran usarla
Puede proporcionar distintos tipos de servicio: Fiable, no fiable
Realiza comunicación extremo a extremo, sin intermediarios
Gestiona puertos en máquinas multiproceso
Realiza control de flujo extremo a extremo
Cualquier proceso puede enviar datos a cualquier proceso en
cualquier máquina
Puertos
En una máquina multiproceso el nivel de transporte debe
preocuparse de saber a qué proceso va destinada la
información que acaba de llegar por la red
Por ello, los procesos que usan la red lo hacen a través de
puertos
Cada puerto del Nivel de Transporte proporciona a una
aplicación un punto de acceso a la red de
comunicaciones, con lo que ésta puede dialogar con otra
aplicación situada en un puerto de una máquina remota
Puertos
Los puertos se identifican por un número de 16 bits
Los puertos TCP y UDP se manejan por separado. El puerto
7 TCP y el puerto 7 UDP son distintos
Los puertos menores de 1024 (puertos privilegiados) están
asignados y reservados universalmente a aplicaciones de
red conocidas
Puertos
Un servidor www es un proceso esperando peticiones en el
puerto 80 de una máquina.
Un navegador desde otra máquina hará peticiones al puerto
80 del servidor, y escuchará las respuestas en un puerto
suyo no privilegiado
Puertos
Netstat (network statistics) es una herramienta de línea de
comandos que muestra un listado de las conexiones
activas de un ordenador, tanto entrantes como salientes.
UDP: User Datagram Protocol
UDP es un protocolo sencillo que implementa un nivel de
transporte orientado a datagramas
NO Fiable
NO Orientado a conexión
Los datagramas UDP se encapsulan dentro de la parte de
datos de un datagrama IP
Una aplicación que use UDP para transmitir datos producirá
exactamente un datagrama UDP cada vez que quiera
enviar datos.
Datagramas UDP
El checksum es opcional, aunque se recomienda que
siempre se uilice
Servicio ofrecido por UDP
El servicio ofrecido por UDP sólo aumenta el ofrecido por IP
en:
Número de puerto
Checksum opcional
Por ello el servicio ofrecido es NO fiable:
Pueden perderse datagramas
Pueden duplicarse datagramas
Pueden desordenarse datagramas
Servicio ofrecido por UDP
Es un protocolo mucho más ligero que TCP, y para
aplicaciones de red que se ejecuten dentro de una subred
(no hay encaminadores) puede compensar.
TCP
Transmission Control Protocol
Es un protocolo de nivel de Transporte
Ofrece un servicio Orientado a Conexión y Fiable
Unidad de datos: segmento
Se encapsula dentro de IP
Ofrece servicio de puertos (como UDP)
Servicio orientado a la conexión
La transmisión de datos TCP presenta las siguientes fases:
Establecimiento de la conexión
Transmisión de datos
Liberación de la transmisión
Ambos extremos pueden transmitir y recibir datos
simultáneamente
Servicio fiable
En TCP/IP éste es el primer nivel en el que se proporciona
fiabilidad
Objeto: recuperarse de pérdidas y desorden producido por
IP
Idea básica:
Los segmentos con datos llevan un número de secuencia
El receptor de los datos debe mandar asentimientos
(ACK)
Time Out y ventana
El receptor reordena segmentos y descarta duplicados
Segmentos TCP
Números de secuencia
Cada segmento con datos lleva un número de secuencia
El número de secuencia numera bytes y NO segmentos
Al establecerse la comunicación se elige un número de
secuencia inicial
Números de asentimiento (ACK)
El receptor tiene que asentir los datos que le llegan
correctamente
No es necesario enviar un asentimiento para cada segmento
con datos que se recibe
El número de asentimiento indica el número de secuencia
que se espera recibir, asintiendo de esta forma hasta el
byte anterior incluido
No hay rechazo selectivo
Asentimientos a recucas (piggybacking)
Ventana deslizante
Se usa un protocolo de ventana para coordinar el envío
de segmentos y asentimientos
El tamaño de la ventana permite hacer control de flujo
extremo a extremo
Establecimiento de la conexion
Es necesario ponerse de acuerdo en el número de
secuencia inicial de los dos sentidos de la transmisión
(triple apretón de manos, three-way handshake)
Liberación de la conexión
Es necesario cerrar cada sentido de la conexión
Plazos para asentimiento
Cuando se envía un segmento se arranca un temporizador
para esperar su asentimiento. ¿Qué plazo le ponemos?
Algoritmo adaptativo
Para cada segmento se calcula el Tiempo de Ronda (Round
Trip Time RTT)
Normalmente se usa un plazo de 2 veces el RTT
Entrega de datos a la aplicación
Cuando llega un segmento con la bandera PSH se está
indicando al receptor que pase esos datos a la
aplicación
Se pasan también todos los datos asentidos que el
receptor tuviera pendientes de pasar a la aplicación
Ejemplo de conexión
Descargar