Documente Academic
Documente Profesional
Documente Cultură
Antonio J
J. Rivera Rivas
Contenidos
• Introducción
• Multiplexación
M lti l ió
• Protocolo UDP
– Introducción
– Características y usos
– Formato del segmento
• Protocolo TCP
– Introducción
– Formato del segmento
– C
Controll de
d errores
– Temporizadores
– Envío fiable de datos
– Control del flujo
– Gestión de la conexión
– Control
ontrol de la congest
congestión
ón
se ejecutan en diferentes
datos
Fí i
Física
hosts. Red
p
• Hace transparente para
p
Enlace de
datos
Física Red
características))
Enlace de
datos
Física
atravesadas Aplicación
• Protocolos usados: Transporte
Red
Multiplexación
Multiplexación en la capa de
transporte de Internet
• Problema: En un equipo se
pueden
d estar
st ejecutando
j t d P1 Aplicación P2
• Solución:
l ó Consiste en Física
implementar un mecanismo Host
que permita la entrega = socket
correcta de datos (al
socket correspondiente)
p ) = proceso
entre lla capa de
d aplicación
l ó y
la capa de transporte.
PO: 6428
PD: 9157
PO: 9157
Cliente
l PD 6428
PD: Servidor
IP: A IP: C
Redes II. La capa de transporte en Internet 5
UDP
UDP: User Data Protocol
• Se define en el RFC 768
• Se dice que ofrece un servicio “best-
effort
effort”
– Añade muy pocas funcionalidades y es muy
limitado Prácticamente entrega los datos de
la capa de aplicación a la de red
– Ofrece un servicio no orientado a conexión
– Servicio no fiable: se pueden perder paquetes
– No se garantiza que los paquetes lleguen
ordenados
– No se realiza control de la congestión
Redes II. La capa de transporte en Internet 6
UDP
Características y usos de UDP
• Sus limitaciones le confieren características deseables:
– Si
Sin establecimiento
st bl imi t d de lla conexión
xió (l
(lo que elimina
limi ell retardo
t d
asociado).
– Simple: sin estado de conexión en el emisor y el receptor (se
eliminan buffers,
buffers variables de estado,
estado …))
– UDP añade un encabezamiento muy pequeño.
– Al no haber control de congestión también se elimina el gasto
asociado
• Usos:
– Frecuentemente utilizado para la transmisión de datos multimedia
(vídeo o audiconferencia) donde hay:
• Tolerancia a pérdidas.
• Mucha sensibilidad a retardos
– También se usa en DNS
DNS, SNMP,
SNMP RIP.
RIP
• Si se quiere una transferencia fiable con UDP debe
implementarla la capa de aplicación (recuperando errores,
etc.)
t )
UDP
Formato del segmento
g UDP
• Se encapsula
p u en unu datagrama
g m IP.. Campo
mp
protocolo = 17.
32 bits
TCP
TCP
Transmision Control Protocol
• Ofrece un servicio orientado a conexión
– Cuando se establece, se inicializan unas variables en ambos
equipos para mantener los estados por los que pasará la conexión
• El servicio que se ofrece es fiable
– Los segmentos se reciben ordenadamente
– Control de errores
– Control
C t l ded flujo
fl j
• Características de la transferencia de datos:
– Full
Full-duplex
duplex
– Uno a uno (no se permite uno a varios)
– Se mantienen unos buffers en el emisor y receptor aunque no se
especifica
s ifi como
m sse vacían/llenan
í /ll
– Se define un tamaño máximo aplicación aplicación
de p
paquete:
q
escribe datos lee datos
socket socket
segmento
Control de
errores en TCP Control de errores en TCP
• Campo Suma de Comprobación:
– Sirve para detectar errores igual que en UDP
• Campo Secuencia:
– El host que emite indica el número de byte, dentro de todo el conjunto de bytes
que se van a enviar, y que corresponde al primero de los bytes del campo de datos
que se está enviando
• Campo Reconocimiento (ACK):
– El host que ha recibido asiente e indica el siguiente byte que se espera dentro de
la secuencia de bytes recibidos
• Bit A:
– Indica si es válido el campo (de Reconocimiento) anterior (A=1) o no (A=0)
– Es necesario ya que TCP implementa la técnica de superposición o piggybacking
(envío de segmentos full duplex con datos y asentimientos)
• Características generales del control de errores:
– Se ponen en marcha temporizadores
– TCP permite reconocimientos acumulativos (reconocer a la vez varios segmentos)
– No hay reconocimientos negativos.
– El receptor no puede explicitar claramente al emisor la existencia de datos
desordenados.
• Ejemplo:
– El host A hace un telnet al El host ACKs
ttiempo
host B recibe
– El usuario del host A solo ‘C’ repetida
teclea el carácter C
– El host B utiliza
superposición para Seq: campo secuencia
reconocer. El host A no ACK: campo reconocimiento
puede
d utilizarla
tili l porque ell
usuario no ha tecleado más Datos: campo de datos
Temporizadores
en TCP Temporizadores
p en TCP
• Temporizador: Tiempo límite de espera desde que
se envía
í un paquete hasta que se retransmite
porque no llega su asentimiento
• RTT: Round-Trip
d Time. Tiempo que transcurre
desde que se envía un paquete hasta que se
recibe
ib ssu asentimiento
s ntimi nt
• El tiempo del temporizador debe ser mayor que el
RTT ¿pero
¿p r cuanto?
cu nt ?
– Si es demasiado pequeño habrá retransmisiones
innecesarias
– Si es demasiado grande estaremos perdiendo el tiempo,
el ancho de banda, etc.
Temporizadores
en TCP Ejemplo
j p de estimación de RTT
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
350
300
undos)
250
RTT (milisegu
200
150
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
tiempo (segundos)
MuestraRTT EstimadoRTT
datos de Datos
Espacio
p libre Proceso de
la red TCP en aplicación
li ió
el búfer
BúferRecepción
Redes II. La capa de transporte en Internet 19
Control de flujo
en TCP Control de flujo
j en TCP
• El receptor
p envía al emisor la
VentanaRecepcion en campo Window del
segmento
g TCP,, cuando se envían acuses de
recibo
• El emisor mantendrá las variables:
– UltimoByteEnviado
– UltimoByteReconocido
• La diferencia ente estas dos variables son
l bytes
los b t enviados
i d y no reconocidos.
id El
emisor tiene que cumplir que:
UltimoByteEnviado-UltimoByteReconocido ≤ VentanaRecepcion
Transmisión
fiable en TCP Transmisión fiable en TCP
• Con los elementos anteriores TCP crea un servicio de
transferencia fiable de datos sobre el servicio IP no
fiable. Características del servicio:
– Sin errores
– Sin
Si pérdidas
é did
– Manteniendo el orden
• Este servicio se implementa
p utilizando
– ACKs acumulativos.
– TCP utiliza un único temporizador de retransmisión.
– Las retransmisiones se desencadenan por:
• Los sucesos del tiempo límite de espera (Temporizador).
• ACKs duplicados.
– Inicialmente
Inicialmente, consideraremos un emisor TCP simplificado donde
pueden ocurrir tres eventos e ignoraremos
• ACKs duplicados.
j y el control de congestión.
• Control de flujo g
Transmisión
fiable en TCP Ejemplos
j p
Host A Host B Host A Host B
Sec=92 tiempo de espera
pera
Tiempo de esp
X
pérdida
BaseEnvío=
100
Sec=92 tiempo de espera
BaseEnvío
= 120
BaseEnvío
BaseEnvío
= 100
= 120
tiempo tiempo
pérdida de ACK tiempo de espera prematuro
Redes II. La capa de transporte en Internet 24
Transmisión
fiable en TCP Ejemplos
j p
Host A Host B
o de espera
tiempo
X
pérdida
BaseEnvío
= 120
tiempo
Ej
Ejemplo
l de
d ACK acumulado
l d
Transmisión
fiable en TCP Generación de ACKs en TCP
Evento en el receptor Acción en el receptor TCP
Llegada de un segmento con el número de ACK retardado. Esperar hasta 500 milisegundos el
secuencia esperado y en orden. Todos los siguiente segmento. Si no hay siguiente segmento,
datos hasta el núm de secuencia ya envíar ACK.
reconocidos
reconocidos.
Llegada de un segmento cuando existe un Si ese segmento empieza en el extremo inferior del
agujero detectado agujero, enviar inmediatamente un ACK hasta
d d ttengamos completo,
donde l t sii no enviar
i iinmediat.
di t
ACK duplicado indicando segmento que se
esperaba en parte inferior de agujero
Redes II. La capa de transporte en Internet 26
Transmisión
fiable en TCP Retransmisión rápida
p
• Vamos a intentar hacer más eficiente la respuesta ante la pérdida
de uno o varios segmentos enviados por un emisor.
emisor
• El emisor no retransmitirá el paquete hasta que se cumpla el
período de espera fijado por el temporizador (que suele ser
relativamente largo)
• Cuando el receptor se da cuenta de que se ha perdido un segmento
(no hay una continuidad en los números de secuencia) lo único que
puede hacer es mandar un reconocimiento
reconoc m ento (ACK) dupl
duplicado
cado donde
se indique la secuencia del segmento perdido. En TCP no hay
reconocimientos negativos.
• Según
g vayay enviando el emisor segmentos
g irá recibiendo ACKs
duplicados requiriendo el primer segmento perdido. A partir de
estos ACKs duplicados intentaremos anticiparnos al temporizador
• Si el emisor recibe 3 ACKs p para los mismos datos, se supone
p que
q el
segmento se perdió
d ó tras ell reconocimiento de
d datos
d entonces:
– Retransmisión rápida: reenviar el segmento antes de que el
temporizador expire.
Transmisión
fiable en TCP Algoritmo
g de retransmisión rápida
p
• Sustituye al evento de ACK recibido del algoritmo general anterior
Un ACK duplicado
p para
p un Retransmisión rápida
segmento reconcido
previamente
Redes II. La capa de transporte en Internet 28
Gestión de la
conexión TCP Gestión de la conexión en TCP
• Para que un emisor y un receptor TCP puedan intercambiar
d t d
datos deben
b establecer
t bl antes
t una ““conexión”
ió ”
• La petición de conexión la realiza siempre el cliente.
Desde el punto de vista de la programación cliente
cliente-
servidor se crearán sockets o puntos de conexión:
– En el cliente se ejecuta algo parecido a:
Socket socketCliente = nuevo Socket(”host",”puerto");
– En el servidor se ejecutará algo como:
Socket socketConexión = socketBienvenida.aceptar();
p
• Esta conexión va a quedar especificada por dos parejas de
números (dirección IP origen, puerto origen) (dirección IP
destino puerto destino)
destino,
• En cualquier caso y cuando se establece una conexión TCP
hay que inicializar todas la variables que la controlan
(Números de secuencia, Búferes, …)
Redes II. La capa de transporte en Internet 29
Gestión de la
conexión TCP Establecimiento de la conexión
Paso 1: El cliente envía un segmento especial
((segmento
g SYN)) al servidor:
cliente
l servidor
– Bit SYN = 1
ción de
(clienteNis).
– Sin datos.
d
Petic
concedida
c
Conexión
– Bit SYN = 0
– Campo de reconocimiento = servidorNis+1
– Campo de secuencia = clienteNis+1
– El cliente reserva los buffers
al
a tempora
– R
Responderá
d á con ACK a otros
t
posibles segmentos FINs recibidos.
– Después de esto se cierra
d finiti m nt lla conexión
definitivamente n xión
espera
Paso 4: El servidor recibe el ACK. Se
cierra la conexión.
cerrado
d
envíar SYN
ESPERA_TEMPORAL SYN_ENVIADO
recibir
ibi FIN recibir SYN y ACK
envíar ACK envíar ACK
cliente TCP
ÚLTIMO_ACK ESCUCHA
• Estas figuras
recibir SYN
envíar FIN envíar SYN Y ACK
servidor
no envíar nada
recibir FIN ESTABLECIDO
envíar ACK
Ventana de
congestión
24 Kbytes
16 Kbytes
8 Kb
Kbytes
t
tiempo
Control de la
g
congestión TCP Arranque
q lento
• Cuando la conexión comienza,
se fija
fij VentanaCongestion
V t C ti Host A Host B
a un valor bajo (1 MSS):
– Ejemplo:
Ejemplo MSS = 500 Bytes y
RTT
T
12 Tras triple
p ACK duplicado
p
segmentos)
10
Tras pérdida de ACK
8
6
(en s
4 umbral
2
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Ciclo de transmisión